ERC-20
Overview
Max Total Supply
420,690,000,000 BUCK
Holders
126
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
8,840,490,019.208022513420040027 BUCKValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0x57F57dDD...B2951415F The constructor portion of the code might be different and could alter the actual behaviour of the contract
Contract Name:
BuckTheBunny
Compiler Version
v0.8.20+commit.a1b79de6
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-12-12 */ // SPDX-License-Identifier: MIT /** X - https://x.com/buckcoineth We own the domain Website - https://www.buckmeme.com/ TG - https://t.me/BuckMascot Thesis on why Buck The Bunny will become one of the Biggest memecoin - https://medium.com/@buckthebunny/thesis-on-why-gamestops-mascot-buck-the-bunny-will-be-the-next-big-memecoin-30100bbacec2 **/ pragma solidity ^0.8.20; interface IERC20 { event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address to, uint256 value) external returns (bool); function allowance( address owner, address spender ) external view returns (uint256); function approve(address spender, uint256 value) external returns (bool); function transferFrom( address from, address to, uint256 value ) external returns (bool); } interface IERC20Metadata is IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } function _contextSuffixLength() internal view virtual returns (uint256) { return 0; } } interface IERC20Errors { error ERC20InsufficientBalance( address sender, uint256 balance, uint256 needed ); error ERC20InvalidSender(address sender); error ERC20InvalidReceiver(address receiver); error ERC20InsufficientAllowance( address spender, uint256 allowance, uint256 needed ); error ERC20InvalidApprover(address approver); error ERC20InvalidSpender(address spender); error MaxTxAmountReached(); error MaxWalletLimitReached(); error InValidTax(); } abstract contract Ownable is Context { address private _owner; error OwnableUnauthorizedAccount(address account); error OwnableInvalidOwner(address owner); event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor(address initialOwner) { if (initialOwner == address(0)) { revert OwnableInvalidOwner(address(0)); } _transferOwnership(initialOwner); } modifier onlyOwner() { _checkOwner(); _; } function owner() public view virtual returns (address) { return _owner; } function _checkOwner() internal view virtual { if (owner() != _msgSender()) { revert OwnableUnauthorizedAccount(_msgSender()); } } function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { if (newOwner == address(0)) { revert OwnableInvalidOwner(address(0)); } _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function WETH() external pure returns (address); } contract BuckTheBunny is Ownable, IERC20, IERC20Metadata, IERC20Errors { mapping(address account => uint256) private _balances; mapping(address account => mapping(address spender => uint256)) private _allowances; uint256 private _totalSupply; uint256 private buyTax; uint256 private sellTax; uint256 public _maxTxAmount; uint256 public _maxWalletSize; uint256 private minimumSAmount; bool private inSwap = false; bool private swapEnabled = true; string private _name; string private _symbol; mapping(address => bool) private isPairAddress; mapping(address => bool) private _isExcludedFromFee; IUniswapV2Router02 public uniswapV2Router; address payable private taxWallet; modifier lockTheSwap() { inSwap = true; _; inSwap = false; } constructor( string memory name_, string memory symbol_, uint256 tSupply, address _taxWallet, uint256 bTax, uint256 sTax, uint256 _mTxAmount, uint256 _mWalletAmount ) Ownable(msg.sender) { uniswapV2Router = IUniswapV2Router02( 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D ); if (bTax > 100 || sTax > 100) { revert InValidTax(); } _name = name_; _symbol = symbol_; taxWallet = payable(_taxWallet); buyTax = bTax; sellTax = sTax; _maxTxAmount = _mTxAmount; _maxWalletSize = _mWalletAmount; _isExcludedFromFee[msg.sender] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[taxWallet] = true; _mint(msg.sender, tSupply); _approve(address(this), address(uniswapV2Router), type(uint256).max); minimumSAmount = (totalSupply() * 5) / 1000; } receive() external payable {} function name() public view virtual returns (string memory) { return _name; } function symbol() public view virtual returns (string memory) { return _symbol; } function decimals() public view virtual returns (uint8) { return 18; } function totalSupply() public view virtual returns (uint256) { return _totalSupply; } function balanceOf(address account) public view virtual returns (uint256) { return _balances[account]; } function allowance( address owner, address spender ) public view virtual returns (uint256) { return _allowances[owner][spender]; } function transfer(address to, uint256 value) public virtual returns (bool) { address owner = _msgSender(); _transfer(owner, to, value); return true; } function setTaxWallet(address payable _newWallet) public onlyOwner { taxWallet = _newWallet; } function updateTaxAmount(uint8 _buy, uint8 _sell) public onlyOwner { if (_buy > 100 || _sell > 100) { revert InValidTax(); } buyTax = _buy; sellTax = _sell; } function excludeFromFee(address[] memory _wallets) public onlyOwner { for (uint256 i = 0; i < _wallets.length; i++) { _isExcludedFromFee[_wallets[i]] = true; } } function includeInFee(address _wallet) public onlyOwner { _isExcludedFromFee[_wallet] = false; } function updateLimits(uint256 _tx, uint256 _wallet) public onlyOwner { _maxTxAmount = _tx; _maxWalletSize = _wallet; } function setPairContract(address _pair, bool _isPair) public onlyOwner { _isExcludedFromFee[_pair] = _isPair; isPairAddress[_pair] = _isPair; } function updateRouterContract(address _router) public onlyOwner { uniswapV2Router = IUniswapV2Router02(_router); } function disableSwap(bool _swapEnabled) public onlyOwner { swapEnabled = _swapEnabled; } function updateMinimumSAmount(uint256 _minimumSAmount) public onlyOwner { minimumSAmount = _minimumSAmount; } function withdrawStuckAsset(address _token) external { uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) { bool success; (success, ) = address(taxWallet).call{value: contractETHBalance}( "" ); } if (_token != address(0)) { uint256 tb = IERC20(_token).balanceOf(address(this)); if (tb > 0) { IERC20(_token).transfer(taxWallet, tb); } } } function manualswap(bool ethTransfer, uint256 _amount) external { if (_allowances[address(this)][address(uniswapV2Router)] < _amount) { _approve( address(this), address(uniswapV2Router), type(uint256).max ); } swapTokensForEth(_amount); if (ethTransfer) { uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) { taxWallet.transfer(address(this).balance); } } } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function approve( address spender, uint256 value ) public virtual returns (bool) { address owner = _msgSender(); _approve(owner, spender, value); return true; } function transferFrom( address from, address to, uint256 value ) public virtual returns (bool) { address spender = _msgSender(); _spendAllowance(from, spender, value); _transfer(from, to, value); return true; } function _transfer(address from, address to, uint256 value) internal { if (from == address(0)) { revert ERC20InvalidSender(address(0)); } if (to == address(0)) { revert ERC20InvalidReceiver(address(0)); } _update(from, to, value); } function _update(address from, address to, uint256 value) internal virtual { address owner__ = owner(); if (from != owner__ && !_isExcludedFromFee[to]) { if (_balances[to] + value > _maxWalletSize) { revert MaxWalletLimitReached(); } if (value > _maxTxAmount) { revert MaxTxAmountReached(); } } uint256 taxAmount; bool shouldSwap = false; if (from != owner__ && to != owner__) { if (isPairAddress[from] && !_isExcludedFromFee[to]) { taxAmount = (value * buyTax) / (100); } if (isPairAddress[to] && !_isExcludedFromFee[from]) { taxAmount = (value * sellTax) / (100); } } if (isPairAddress[to]) { shouldSwap = true; } if (taxAmount > 0) { _balances[address(this)] += taxAmount; emit Transfer(from, address(this), taxAmount); } uint256 contractTokenBalance = balanceOf(address(this)); if (contractTokenBalance > 0 && shouldSwap && !inSwap && swapEnabled) { swapTokensForEth( contractTokenBalance > minimumSAmount ? minimumSAmount : contractTokenBalance ); uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) { taxWallet.transfer(address(this).balance); } } if (from == address(0)) { _totalSupply += value; } else { uint256 fromBalance = _balances[from]; if (fromBalance < value) { revert ERC20InsufficientBalance(from, fromBalance, value); } unchecked { _balances[from] = fromBalance - value; } } if (to == address(0)) { unchecked { _totalSupply -= value; } } else { unchecked { _balances[to] += value - taxAmount; } } emit Transfer(from, to, value - taxAmount); } function _mint(address account, uint256 value) internal { if (account == address(0)) { revert ERC20InvalidReceiver(address(0)); } _update(address(0), account, value); } function _burn(address account, uint256 value) internal { if (account == address(0)) { revert ERC20InvalidSender(address(0)); } _update(account, address(0), value); } function _approve(address owner, address spender, uint256 value) internal { _approve(owner, spender, value, true); } function _approve( address owner, address spender, uint256 value, bool emitEvent ) internal virtual { if (owner == address(0)) { revert ERC20InvalidApprover(address(0)); } if (spender == address(0)) { revert ERC20InvalidSpender(address(0)); } _allowances[owner][spender] = value; if (emitEvent) { emit Approval(owner, spender, value); } } function _spendAllowance( address owner, address spender, uint256 value ) internal virtual { uint256 currentAllowance = allowance(owner, spender); if (currentAllowance != type(uint256).max) { if (currentAllowance < value) { revert ERC20InsufficientAllowance( spender, currentAllowance, value ); } unchecked { _approve(owner, spender, currentAllowance - value, false); } } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"uint256","name":"tSupply","type":"uint256"},{"internalType":"address","name":"_taxWallet","type":"address"},{"internalType":"uint256","name":"bTax","type":"uint256"},{"internalType":"uint256","name":"sTax","type":"uint256"},{"internalType":"uint256","name":"_mTxAmount","type":"uint256"},{"internalType":"uint256","name":"_mWalletAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientAllowance","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientBalance","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC20InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC20InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC20InvalidSender","type":"error"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"ERC20InvalidSpender","type":"error"},{"inputs":[],"name":"InValidTax","type":"error"},{"inputs":[],"name":"MaxTxAmountReached","type":"error"},{"inputs":[],"name":"MaxWalletLimitReached","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"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":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","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":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"value","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":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"disableSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_wallets","type":"address[]"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_wallet","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"ethTransfer","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"},{"internalType":"bool","name":"_isPair","type":"bool"}],"name":"setPairContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_newWallet","type":"address"}],"name":"setTaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tx","type":"uint256"},{"internalType":"uint256","name":"_wallet","type":"uint256"}],"name":"updateLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_minimumSAmount","type":"uint256"}],"name":"updateMinimumSAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_router","type":"address"}],"name":"updateRouterContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_buy","type":"uint8"},{"internalType":"uint8","name":"_sell","type":"uint8"}],"name":"updateTaxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"withdrawStuckAsset","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040525f60095f6101000a81548160ff0219169083151502179055506001600960016101000a81548160ff02191690831515021790555034801562000044575f80fd5b506040516200456e3803806200456e83398181016040528101906200006a91906200139c565b335f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620000de575f6040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401620000d59190620014af565b60405180910390fd5b620000ef81620003d360201b60201c565b50737a250d5630b4cf539739df2c5dacb4c659f2488d600e5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506064841180620001545750606483115b156200018c576040517f0bb9788b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b87600a90816200019d9190620016f8565b5086600b9081620001af9190620016f8565b5084600f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550836004819055508260058190555081600681905550806007819055506001600d5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600d5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600d5f600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506200033e33876200049460201b60201c565b6200039230600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6200051e60201b60201c565b6103e86005620003a76200053860201b60201c565b620003b3919062001809565b620003bf919062001880565b600881905550505050505050505062001b59565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000507575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401620004fe9190620014af565b60405180910390fd5b6200051a5f83836200054160201b60201c565b5050565b62000533838383600162000ceb60201b60201c565b505050565b5f600354905090565b5f6200055262000ec360201b60201c565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015620005d85750600d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15620006a3576007548260015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546200062c9190620018b7565b111562000665576040517f154d174800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600654821115620006a2576040517f44e6f00300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b5f805f90508273ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141580156200071157508273ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b15620008a257600c5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015620007b55750600d5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15620007dc57606460045485620007cd919062001809565b620007d9919062001880565b91505b600c5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156200087a5750600d5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15620008a15760646005548562000892919062001809565b6200089e919062001880565b91505b5b600c5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615620008f757600190505b5f821115620009bd578160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546200094e9190620018b7565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051620009b4919062001902565b60405180910390a35b5f620009cf3062000eea60201b60201c565b90505f81118015620009de5750815b8015620009f7575060095f9054906101000a900460ff16155b801562000a105750600960019054906101000a900460ff165b1562000ab15762000a3b600854821162000a2b578162000a2f565b6008545b62000f3060201b60201c565b5f4790505f81111562000aaf57600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f1935050505015801562000aad573d5f803e3d5ffd5b505b505b5f73ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff160362000b05578460035f82825462000af89190620018b7565b9250508190555062000bd8565b5f60015f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508581101562000b92578781876040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040162000b89939291906200191d565b60405180910390fd5b85810360015f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff160362000c21578460035f828254039250508190555062000c6e565b82850360015f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef858862000ccb919062001958565b60405162000cda919062001902565b60405180910390a350505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160362000d5e575f6040517fe602df0500000000000000000000000000000000000000000000000000000000815260040162000d559190620014af565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000dd1575f6040517f94280d6200000000000000000000000000000000000000000000000000000000815260040162000dc89190620014af565b60405180910390fd5b8160025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550801562000ebd578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405162000eb4919062001902565b60405180910390a35b50505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b600160095f6101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111562000f695762000f68620011a7565b5b60405190808252806020026020018201604052801562000f985781602001602082028036833780820191505090505b50905030815f8151811062000fb25762000fb162001992565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001057573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200107d9190620019bf565b8160018151811062001094576200109362001992565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016200113295949392919062001af7565b5f604051808303815f87803b1580156200114a575f80fd5b505af11580156200115d573d5f803e3d5ffd5b50505050505f60095f6101000a81548160ff02191690831515021790555050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b620011df8262001197565b810181811067ffffffffffffffff82111715620012015762001200620011a7565b5b80604052505050565b5f620012156200117e565b9050620012238282620011d4565b919050565b5f67ffffffffffffffff821115620012455762001244620011a7565b5b620012508262001197565b9050602081019050919050565b5f5b838110156200127c5780820151818401526020810190506200125f565b5f8484015250505050565b5f6200129d620012978462001228565b6200120a565b905082815260208101848484011115620012bc57620012bb62001193565b5b620012c98482856200125d565b509392505050565b5f82601f830112620012e857620012e76200118f565b5b8151620012fa84826020860162001287565b91505092915050565b5f819050919050565b620013178162001303565b811462001322575f80fd5b50565b5f8151905062001335816200130c565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62001366826200133b565b9050919050565b62001378816200135a565b811462001383575f80fd5b50565b5f8151905062001396816200136d565b92915050565b5f805f805f805f80610100898b031215620013bc57620013bb62001187565b5b5f89015167ffffffffffffffff811115620013dc57620013db6200118b565b5b620013ea8b828c01620012d1565b985050602089015167ffffffffffffffff8111156200140e576200140d6200118b565b5b6200141c8b828c01620012d1565b97505060406200142f8b828c0162001325565b9650506060620014428b828c0162001386565b9550506080620014558b828c0162001325565b94505060a0620014688b828c0162001325565b93505060c06200147b8b828c0162001325565b92505060e06200148e8b828c0162001325565b9150509295985092959890939650565b620014a9816200135a565b82525050565b5f602082019050620014c45f8301846200149e565b92915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200151957607f821691505b6020821081036200152f576200152e620014d4565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620015937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262001556565b6200159f868362001556565b95508019841693508086168417925050509392505050565b5f819050919050565b5f620015e0620015da620015d48462001303565b620015b7565b62001303565b9050919050565b5f819050919050565b620015fb83620015c0565b620016136200160a82620015e7565b84845462001562565b825550505050565b5f90565b620016296200161b565b62001636818484620015f0565b505050565b5b818110156200165d57620016515f826200161f565b6001810190506200163c565b5050565b601f821115620016ac57620016768162001535565b620016818462001547565b8101602085101562001691578190505b620016a9620016a08562001547565b8301826200163b565b50505b505050565b5f82821c905092915050565b5f620016ce5f1984600802620016b1565b1980831691505092915050565b5f620016e88383620016bd565b9150826002028217905092915050565b6200170382620014ca565b67ffffffffffffffff8111156200171f576200171e620011a7565b5b6200172b825462001501565b6200173882828562001661565b5f60209050601f8311600181146200176e575f841562001759578287015190505b620017658582620016db565b865550620017d4565b601f1984166200177e8662001535565b5f5b82811015620017a75784890151825560018201915060208501945060208101905062001780565b86831015620017c75784890151620017c3601f891682620016bd565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f620018158262001303565b9150620018228362001303565b9250828202620018328162001303565b915082820484148315176200184c576200184b620017dc565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6200188c8262001303565b9150620018998362001303565b925082620018ac57620018ab62001853565b5b828204905092915050565b5f620018c38262001303565b9150620018d08362001303565b9250828201905080821115620018eb57620018ea620017dc565b5b92915050565b620018fc8162001303565b82525050565b5f602082019050620019175f830184620018f1565b92915050565b5f606082019050620019325f8301866200149e565b620019416020830185620018f1565b620019506040830184620018f1565b949350505050565b5f620019648262001303565b9150620019718362001303565b92508282039050818111156200198c576200198b620017dc565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f60208284031215620019d757620019d662001187565b5b5f620019e68482850162001386565b91505092915050565b5f819050919050565b5f62001a1862001a1262001a0c84620019ef565b620015b7565b62001303565b9050919050565b62001a2a81620019f8565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b62001a64816200135a565b82525050565b5f62001a77838362001a59565b60208301905092915050565b5f602082019050919050565b5f62001a9b8262001a30565b62001aa7818562001a3a565b935062001ab48362001a4a565b805f5b8381101562001aea57815162001ace888262001a6a565b975062001adb8362001a83565b92505060018101905062001ab7565b5085935050505092915050565b5f60a08201905062001b0c5f830188620018f1565b62001b1b602083018762001a1f565b818103604083015262001b2f818662001a8f565b905062001b4060608301856200149e565b62001b4f6080830184620018f1565b9695505050505050565b612a078062001b675f395ff3fe608060405260043610610184575f3560e01c80638da5cb5b116100d0578063db520cbd11610089578063ea2f0b3711610063578063ea2f0b3714610561578063ea414b2814610589578063f2fde38b146105b1578063f5f92709146105d95761018b565b8063db520cbd146104d5578063dd62ed3e146104fd578063de7a1c2d146105395761018b565b80638da5cb5b146103cb5780638f9a55c0146103f557806395d89b411461041f57806398a0a3b514610449578063a2240e1914610471578063a9059cbb146104995761018b565b80633a8738981161013d578063715018a611610117578063715018a61461033b57806371b9189c146103515780637d1db4a5146103795780637f32315c146103a35761018b565b80633a873898146102af5780635f2dfa57146102d757806370a08231146102ff5761018b565b806306fdde031461018f578063095ea7b3146101b95780631694505e146101f557806318160ddd1461021f57806323b872dd14610249578063313ce567146102855761018b565b3661018b57005b5f80fd5b34801561019a575f80fd5b506101a3610601565b6040516101b09190611e9e565b60405180910390f35b3480156101c4575f80fd5b506101df60048036038101906101da9190611f5c565b610691565b6040516101ec9190611fb4565b60405180910390f35b348015610200575f80fd5b506102096106b3565b6040516102169190612028565b60405180910390f35b34801561022a575f80fd5b506102336106d8565b6040516102409190612050565b60405180910390f35b348015610254575f80fd5b5061026f600480360381019061026a9190612069565b6106e1565b60405161027c9190611fb4565b60405180910390f35b348015610290575f80fd5b5061029961070f565b6040516102a691906120d4565b60405180910390f35b3480156102ba575f80fd5b506102d560048036038101906102d091906120ed565b610717565b005b3480156102e2575f80fd5b506102fd60048036038101906102f891906120ed565b61090a565b005b34801561030a575f80fd5b50610325600480360381019061032091906120ed565b610955565b6040516103329190612050565b60405180910390f35b348015610346575f80fd5b5061034f61099b565b005b34801561035c575f80fd5b5061037760048036038101906103729190612258565b6109ae565b005b348015610384575f80fd5b5061038d610a47565b60405161039a9190612050565b60405180910390f35b3480156103ae575f80fd5b506103c960048036038101906103c491906122c9565b610a4d565b005b3480156103d6575f80fd5b506103df610ab9565b6040516103ec9190612316565b60405180910390f35b348015610400575f80fd5b50610409610ae0565b6040516104169190612050565b60405180910390f35b34801561042a575f80fd5b50610433610ae6565b6040516104409190611e9e565b60405180910390f35b348015610454575f80fd5b5061046f600480360381019061046a9190612359565b610b76565b005b34801561047c575f80fd5b5061049760048036038101906104929190612397565b610ceb565b005b3480156104a4575f80fd5b506104bf60048036038101906104ba9190611f5c565b610d05565b6040516104cc9190611fb4565b60405180910390f35b3480156104e0575f80fd5b506104fb60048036038101906104f691906123d5565b610d27565b005b348015610508575f80fd5b50610523600480360381019061051e9190612400565b610d4c565b6040516105309190612050565b60405180910390f35b348015610544575f80fd5b5061055f600480360381019061055a919061243e565b610dce565b005b34801561056c575f80fd5b50610587600480360381019061058291906120ed565b610de0565b005b348015610594575f80fd5b506105af60048036038101906105aa91906124a4565b610e3f565b005b3480156105bc575f80fd5b506105d760048036038101906105d291906120ed565b610e8a565b005b3480156105e4575f80fd5b506105ff60048036038101906105fa91906124cf565b610f0e565b005b6060600a80546106109061253a565b80601f016020809104026020016040519081016040528092919081815260200182805461063c9061253a565b80156106875780601f1061065e57610100808354040283529160200191610687565b820191905f5260205f20905b81548152906001019060200180831161066a57829003601f168201915b5050505050905090565b5f8061069b610fc2565b90506106a8818585610fc9565b600191505092915050565b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600354905090565b5f806106eb610fc2565b90506106f8858285610fdb565b61070385858561106d565b60019150509392505050565b5f6012905090565b5f4790505f8111156107b0575f600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260405161076990612597565b5f6040518083038185875af1925050503d805f81146107a3576040519150601f19603f3d011682016040523d82523d5f602084013e6107a8565b606091505b505080915050505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614610906575f8273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161081d9190612316565b602060405180830381865afa158015610838573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061085c91906125bf565b90505f811115610904578273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b81526004016108c292919061260a565b6020604051808303815f875af11580156108de573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109029190612645565b505b505b5050565b61091261115d565b80600e5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6109a361115d565b6109ac5f6111e4565b565b6109b661115d565b5f5b8151811015610a43576001600d5f8484815181106109d9576109d8612670565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080610a3b906126ca565b9150506109b8565b5050565b60065481565b610a5561115d565b60648260ff161180610a6a575060648160ff16115b15610aa1576040517f0bb9788b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8160ff166004819055508060ff166005819055505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60075481565b6060600b8054610af59061253a565b80601f0160208091040260200160405190810160405280929190818152602001828054610b219061253a565b8015610b6c5780601f10610b4357610100808354040283529160200191610b6c565b820191905f5260205f20905b815481529060010190602001808311610b4f57829003601f168201915b5050505050905090565b8060025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015610c6457610c6330600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610fc9565b5b610c6d816112a5565b8115610ce7575f4790505f811115610ce557600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610ce3573d5f803e3d5ffd5b505b505b5050565b610cf361115d565b81600681905550806007819055505050565b5f80610d0f610fc2565b9050610d1c81858561106d565b600191505092915050565b610d2f61115d565b80600960016101000a81548160ff02191690831515021790555050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610dd661115d565b8060088190555050565b610de861115d565b5f600d5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b610e4761115d565b80600f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610e9261115d565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610f02575f6040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610ef99190612316565b60405180910390fd5b610f0b816111e4565b50565b610f1661115d565b80600d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f33905090565b610fd683838360016114e2565b505050565b5f610fe68484610d4c565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146110675781811015611058578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161104f93929190612711565b60405180910390fd5b61106684848484035f6114e2565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110dd575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016110d49190612316565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361114d575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016111449190612316565b60405180910390fd5b6111588383836116b1565b505050565b611165610fc2565b73ffffffffffffffffffffffffffffffffffffffff16611183610ab9565b73ffffffffffffffffffffffffffffffffffffffff16146111e2576111a6610fc2565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016111d99190612316565b60405180910390fd5b565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600160095f6101000a81548160ff0219169083151502179055505f600267ffffffffffffffff8111156112db576112da61211c565b5b6040519080825280602002602001820160405280156113095781602001602082028036833780820191505090505b50905030815f815181106113205761131f612670565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113c4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113e8919061275a565b816001815181106113fc576113fb612670565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611498959493929190612875565b5f604051808303815f87803b1580156114af575f80fd5b505af11580156114c1573d5f803e3d5ffd5b50505050505f60095f6101000a81548160ff02191690831515021790555050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611552575f6040517fe602df050000000000000000000000000000000000000000000000000000000081526004016115499190612316565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115c2575f6040517f94280d620000000000000000000000000000000000000000000000000000000081526004016115b99190612316565b60405180910390fd5b8160025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555080156116ab578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516116a29190612050565b60405180910390a35b50505050565b5f6116ba610ab9565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561173f5750600d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611805576007548260015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461179091906128cd565b11156117c8576040517f154d174800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600654821115611804576040517f44e6f00300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b5f805f90508273ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415801561187257508273ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b156119f657600c5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156119145750600d5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611936576064600454856119299190612900565b611933919061296e565b91505b600c5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156119d35750600d5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156119f5576064600554856119e89190612900565b6119f2919061296e565b91505b5b600c5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615611a4a57600190505b5f821115611b0b578160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611a9e91906128cd565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611b029190612050565b60405180910390a35b5f611b1530610955565b90505f81118015611b235750815b8015611b3b575060095f9054906101000a900460ff16155b8015611b535750600960019054906101000a900460ff165b15611be757611b736008548211611b6a5781611b6e565b6008545b6112a5565b5f4790505f811115611be557600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015611be3573d5f803e3d5ffd5b505b505b5f73ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1603611c37578460035f828254611c2b91906128cd565b92505081905550611d07565b5f60015f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905085811015611cc1578781876040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401611cb893929190612711565b60405180910390fd5b85810360015f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1603611d4e578460035f8282540392505081905550611d9b565b82850360015f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8588611df6919061299e565b604051611e039190612050565b60405180910390a350505050505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611e4b578082015181840152602081019050611e30565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611e7082611e14565b611e7a8185611e1e565b9350611e8a818560208601611e2e565b611e9381611e56565b840191505092915050565b5f6020820190508181035f830152611eb68184611e66565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611ef882611ecf565b9050919050565b611f0881611eee565b8114611f12575f80fd5b50565b5f81359050611f2381611eff565b92915050565b5f819050919050565b611f3b81611f29565b8114611f45575f80fd5b50565b5f81359050611f5681611f32565b92915050565b5f8060408385031215611f7257611f71611ec7565b5b5f611f7f85828601611f15565b9250506020611f9085828601611f48565b9150509250929050565b5f8115159050919050565b611fae81611f9a565b82525050565b5f602082019050611fc75f830184611fa5565b92915050565b5f819050919050565b5f611ff0611feb611fe684611ecf565b611fcd565b611ecf565b9050919050565b5f61200182611fd6565b9050919050565b5f61201282611ff7565b9050919050565b61202281612008565b82525050565b5f60208201905061203b5f830184612019565b92915050565b61204a81611f29565b82525050565b5f6020820190506120635f830184612041565b92915050565b5f805f606084860312156120805761207f611ec7565b5b5f61208d86828701611f15565b935050602061209e86828701611f15565b92505060406120af86828701611f48565b9150509250925092565b5f60ff82169050919050565b6120ce816120b9565b82525050565b5f6020820190506120e75f8301846120c5565b92915050565b5f6020828403121561210257612101611ec7565b5b5f61210f84828501611f15565b91505092915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61215282611e56565b810181811067ffffffffffffffff821117156121715761217061211c565b5b80604052505050565b5f612183611ebe565b905061218f8282612149565b919050565b5f67ffffffffffffffff8211156121ae576121ad61211c565b5b602082029050602081019050919050565b5f80fd5b5f6121d56121d084612194565b61217a565b905080838252602082019050602084028301858111156121f8576121f76121bf565b5b835b81811015612221578061220d8882611f15565b8452602084019350506020810190506121fa565b5050509392505050565b5f82601f83011261223f5761223e612118565b5b813561224f8482602086016121c3565b91505092915050565b5f6020828403121561226d5761226c611ec7565b5b5f82013567ffffffffffffffff81111561228a57612289611ecb565b5b6122968482850161222b565b91505092915050565b6122a8816120b9565b81146122b2575f80fd5b50565b5f813590506122c38161229f565b92915050565b5f80604083850312156122df576122de611ec7565b5b5f6122ec858286016122b5565b92505060206122fd858286016122b5565b9150509250929050565b61231081611eee565b82525050565b5f6020820190506123295f830184612307565b92915050565b61233881611f9a565b8114612342575f80fd5b50565b5f813590506123538161232f565b92915050565b5f806040838503121561236f5761236e611ec7565b5b5f61237c85828601612345565b925050602061238d85828601611f48565b9150509250929050565b5f80604083850312156123ad576123ac611ec7565b5b5f6123ba85828601611f48565b92505060206123cb85828601611f48565b9150509250929050565b5f602082840312156123ea576123e9611ec7565b5b5f6123f784828501612345565b91505092915050565b5f806040838503121561241657612415611ec7565b5b5f61242385828601611f15565b925050602061243485828601611f15565b9150509250929050565b5f6020828403121561245357612452611ec7565b5b5f61246084828501611f48565b91505092915050565b5f61247382611ecf565b9050919050565b61248381612469565b811461248d575f80fd5b50565b5f8135905061249e8161247a565b92915050565b5f602082840312156124b9576124b8611ec7565b5b5f6124c684828501612490565b91505092915050565b5f80604083850312156124e5576124e4611ec7565b5b5f6124f285828601611f15565b925050602061250385828601612345565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061255157607f821691505b6020821081036125645761256361250d565b5b50919050565b5f81905092915050565b50565b5f6125825f8361256a565b915061258d82612574565b5f82019050919050565b5f6125a182612577565b9150819050919050565b5f815190506125b981611f32565b92915050565b5f602082840312156125d4576125d3611ec7565b5b5f6125e1848285016125ab565b91505092915050565b5f6125f482611ff7565b9050919050565b612604816125ea565b82525050565b5f60408201905061261d5f8301856125fb565b61262a6020830184612041565b9392505050565b5f8151905061263f8161232f565b92915050565b5f6020828403121561265a57612659611ec7565b5b5f61266784828501612631565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6126d482611f29565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036127065761270561269d565b5b600182019050919050565b5f6060820190506127245f830186612307565b6127316020830185612041565b61273e6040830184612041565b949350505050565b5f8151905061275481611eff565b92915050565b5f6020828403121561276f5761276e611ec7565b5b5f61277c84828501612746565b91505092915050565b5f819050919050565b5f6127a86127a361279e84612785565b611fcd565b611f29565b9050919050565b6127b88161278e565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6127f081611eee565b82525050565b5f61280183836127e7565b60208301905092915050565b5f602082019050919050565b5f612823826127be565b61282d81856127c8565b9350612838836127d8565b805f5b8381101561286857815161284f88826127f6565b975061285a8361280d565b92505060018101905061283b565b5085935050505092915050565b5f60a0820190506128885f830188612041565b61289560208301876127af565b81810360408301526128a78186612819565b90506128b66060830185612307565b6128c36080830184612041565b9695505050505050565b5f6128d782611f29565b91506128e283611f29565b92508282019050808211156128fa576128f961269d565b5b92915050565b5f61290a82611f29565b915061291583611f29565b925082820261292381611f29565b9150828204841483151761293a5761293961269d565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61297882611f29565b915061298383611f29565b92508261299357612992612941565b5b828204905092915050565b5f6129a882611f29565b91506129b383611f29565b92508282039050818111156129cb576129ca61269d565b5b9291505056fea2646970667358221220f62a8417d98cb6b005459ec939f2afac4bdee76076c20774ed7d46bdc988948964736f6c634300081400330000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000054f529ca52576bc6892000000000000000000000000000000d4a89e24262fb99e83a9330ae4c46f4e88626eea0000000000000000000000000000000000000000000000000000000000000019000000000000000000000000000000000000000000000000000000000000003200000000000000000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000000064000000000000000000000000000000000000000000000000000000000000000c4275636b54686542756e6e79000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044255434b00000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x608060405260043610610184575f3560e01c80638da5cb5b116100d0578063db520cbd11610089578063ea2f0b3711610063578063ea2f0b3714610561578063ea414b2814610589578063f2fde38b146105b1578063f5f92709146105d95761018b565b8063db520cbd146104d5578063dd62ed3e146104fd578063de7a1c2d146105395761018b565b80638da5cb5b146103cb5780638f9a55c0146103f557806395d89b411461041f57806398a0a3b514610449578063a2240e1914610471578063a9059cbb146104995761018b565b80633a8738981161013d578063715018a611610117578063715018a61461033b57806371b9189c146103515780637d1db4a5146103795780637f32315c146103a35761018b565b80633a873898146102af5780635f2dfa57146102d757806370a08231146102ff5761018b565b806306fdde031461018f578063095ea7b3146101b95780631694505e146101f557806318160ddd1461021f57806323b872dd14610249578063313ce567146102855761018b565b3661018b57005b5f80fd5b34801561019a575f80fd5b506101a3610601565b6040516101b09190611e9e565b60405180910390f35b3480156101c4575f80fd5b506101df60048036038101906101da9190611f5c565b610691565b6040516101ec9190611fb4565b60405180910390f35b348015610200575f80fd5b506102096106b3565b6040516102169190612028565b60405180910390f35b34801561022a575f80fd5b506102336106d8565b6040516102409190612050565b60405180910390f35b348015610254575f80fd5b5061026f600480360381019061026a9190612069565b6106e1565b60405161027c9190611fb4565b60405180910390f35b348015610290575f80fd5b5061029961070f565b6040516102a691906120d4565b60405180910390f35b3480156102ba575f80fd5b506102d560048036038101906102d091906120ed565b610717565b005b3480156102e2575f80fd5b506102fd60048036038101906102f891906120ed565b61090a565b005b34801561030a575f80fd5b50610325600480360381019061032091906120ed565b610955565b6040516103329190612050565b60405180910390f35b348015610346575f80fd5b5061034f61099b565b005b34801561035c575f80fd5b5061037760048036038101906103729190612258565b6109ae565b005b348015610384575f80fd5b5061038d610a47565b60405161039a9190612050565b60405180910390f35b3480156103ae575f80fd5b506103c960048036038101906103c491906122c9565b610a4d565b005b3480156103d6575f80fd5b506103df610ab9565b6040516103ec9190612316565b60405180910390f35b348015610400575f80fd5b50610409610ae0565b6040516104169190612050565b60405180910390f35b34801561042a575f80fd5b50610433610ae6565b6040516104409190611e9e565b60405180910390f35b348015610454575f80fd5b5061046f600480360381019061046a9190612359565b610b76565b005b34801561047c575f80fd5b5061049760048036038101906104929190612397565b610ceb565b005b3480156104a4575f80fd5b506104bf60048036038101906104ba9190611f5c565b610d05565b6040516104cc9190611fb4565b60405180910390f35b3480156104e0575f80fd5b506104fb60048036038101906104f691906123d5565b610d27565b005b348015610508575f80fd5b50610523600480360381019061051e9190612400565b610d4c565b6040516105309190612050565b60405180910390f35b348015610544575f80fd5b5061055f600480360381019061055a919061243e565b610dce565b005b34801561056c575f80fd5b50610587600480360381019061058291906120ed565b610de0565b005b348015610594575f80fd5b506105af60048036038101906105aa91906124a4565b610e3f565b005b3480156105bc575f80fd5b506105d760048036038101906105d291906120ed565b610e8a565b005b3480156105e4575f80fd5b506105ff60048036038101906105fa91906124cf565b610f0e565b005b6060600a80546106109061253a565b80601f016020809104026020016040519081016040528092919081815260200182805461063c9061253a565b80156106875780601f1061065e57610100808354040283529160200191610687565b820191905f5260205f20905b81548152906001019060200180831161066a57829003601f168201915b5050505050905090565b5f8061069b610fc2565b90506106a8818585610fc9565b600191505092915050565b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600354905090565b5f806106eb610fc2565b90506106f8858285610fdb565b61070385858561106d565b60019150509392505050565b5f6012905090565b5f4790505f8111156107b0575f600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260405161076990612597565b5f6040518083038185875af1925050503d805f81146107a3576040519150601f19603f3d011682016040523d82523d5f602084013e6107a8565b606091505b505080915050505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614610906575f8273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161081d9190612316565b602060405180830381865afa158015610838573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061085c91906125bf565b90505f811115610904578273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b81526004016108c292919061260a565b6020604051808303815f875af11580156108de573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109029190612645565b505b505b5050565b61091261115d565b80600e5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6109a361115d565b6109ac5f6111e4565b565b6109b661115d565b5f5b8151811015610a43576001600d5f8484815181106109d9576109d8612670565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080610a3b906126ca565b9150506109b8565b5050565b60065481565b610a5561115d565b60648260ff161180610a6a575060648160ff16115b15610aa1576040517f0bb9788b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8160ff166004819055508060ff166005819055505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60075481565b6060600b8054610af59061253a565b80601f0160208091040260200160405190810160405280929190818152602001828054610b219061253a565b8015610b6c5780601f10610b4357610100808354040283529160200191610b6c565b820191905f5260205f20905b815481529060010190602001808311610b4f57829003601f168201915b5050505050905090565b8060025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015610c6457610c6330600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610fc9565b5b610c6d816112a5565b8115610ce7575f4790505f811115610ce557600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610ce3573d5f803e3d5ffd5b505b505b5050565b610cf361115d565b81600681905550806007819055505050565b5f80610d0f610fc2565b9050610d1c81858561106d565b600191505092915050565b610d2f61115d565b80600960016101000a81548160ff02191690831515021790555050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610dd661115d565b8060088190555050565b610de861115d565b5f600d5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b610e4761115d565b80600f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610e9261115d565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610f02575f6040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610ef99190612316565b60405180910390fd5b610f0b816111e4565b50565b610f1661115d565b80600d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f33905090565b610fd683838360016114e2565b505050565b5f610fe68484610d4c565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146110675781811015611058578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161104f93929190612711565b60405180910390fd5b61106684848484035f6114e2565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110dd575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016110d49190612316565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361114d575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016111449190612316565b60405180910390fd5b6111588383836116b1565b505050565b611165610fc2565b73ffffffffffffffffffffffffffffffffffffffff16611183610ab9565b73ffffffffffffffffffffffffffffffffffffffff16146111e2576111a6610fc2565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016111d99190612316565b60405180910390fd5b565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600160095f6101000a81548160ff0219169083151502179055505f600267ffffffffffffffff8111156112db576112da61211c565b5b6040519080825280602002602001820160405280156113095781602001602082028036833780820191505090505b50905030815f815181106113205761131f612670565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113c4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113e8919061275a565b816001815181106113fc576113fb612670565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611498959493929190612875565b5f604051808303815f87803b1580156114af575f80fd5b505af11580156114c1573d5f803e3d5ffd5b50505050505f60095f6101000a81548160ff02191690831515021790555050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611552575f6040517fe602df050000000000000000000000000000000000000000000000000000000081526004016115499190612316565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115c2575f6040517f94280d620000000000000000000000000000000000000000000000000000000081526004016115b99190612316565b60405180910390fd5b8160025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555080156116ab578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516116a29190612050565b60405180910390a35b50505050565b5f6116ba610ab9565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561173f5750600d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611805576007548260015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461179091906128cd565b11156117c8576040517f154d174800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600654821115611804576040517f44e6f00300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b5f805f90508273ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415801561187257508273ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b156119f657600c5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156119145750600d5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611936576064600454856119299190612900565b611933919061296e565b91505b600c5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156119d35750600d5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156119f5576064600554856119e89190612900565b6119f2919061296e565b91505b5b600c5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615611a4a57600190505b5f821115611b0b578160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611a9e91906128cd565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611b029190612050565b60405180910390a35b5f611b1530610955565b90505f81118015611b235750815b8015611b3b575060095f9054906101000a900460ff16155b8015611b535750600960019054906101000a900460ff165b15611be757611b736008548211611b6a5781611b6e565b6008545b6112a5565b5f4790505f811115611be557600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015611be3573d5f803e3d5ffd5b505b505b5f73ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1603611c37578460035f828254611c2b91906128cd565b92505081905550611d07565b5f60015f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905085811015611cc1578781876040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401611cb893929190612711565b60405180910390fd5b85810360015f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1603611d4e578460035f8282540392505081905550611d9b565b82850360015f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8588611df6919061299e565b604051611e039190612050565b60405180910390a350505050505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611e4b578082015181840152602081019050611e30565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611e7082611e14565b611e7a8185611e1e565b9350611e8a818560208601611e2e565b611e9381611e56565b840191505092915050565b5f6020820190508181035f830152611eb68184611e66565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611ef882611ecf565b9050919050565b611f0881611eee565b8114611f12575f80fd5b50565b5f81359050611f2381611eff565b92915050565b5f819050919050565b611f3b81611f29565b8114611f45575f80fd5b50565b5f81359050611f5681611f32565b92915050565b5f8060408385031215611f7257611f71611ec7565b5b5f611f7f85828601611f15565b9250506020611f9085828601611f48565b9150509250929050565b5f8115159050919050565b611fae81611f9a565b82525050565b5f602082019050611fc75f830184611fa5565b92915050565b5f819050919050565b5f611ff0611feb611fe684611ecf565b611fcd565b611ecf565b9050919050565b5f61200182611fd6565b9050919050565b5f61201282611ff7565b9050919050565b61202281612008565b82525050565b5f60208201905061203b5f830184612019565b92915050565b61204a81611f29565b82525050565b5f6020820190506120635f830184612041565b92915050565b5f805f606084860312156120805761207f611ec7565b5b5f61208d86828701611f15565b935050602061209e86828701611f15565b92505060406120af86828701611f48565b9150509250925092565b5f60ff82169050919050565b6120ce816120b9565b82525050565b5f6020820190506120e75f8301846120c5565b92915050565b5f6020828403121561210257612101611ec7565b5b5f61210f84828501611f15565b91505092915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61215282611e56565b810181811067ffffffffffffffff821117156121715761217061211c565b5b80604052505050565b5f612183611ebe565b905061218f8282612149565b919050565b5f67ffffffffffffffff8211156121ae576121ad61211c565b5b602082029050602081019050919050565b5f80fd5b5f6121d56121d084612194565b61217a565b905080838252602082019050602084028301858111156121f8576121f76121bf565b5b835b81811015612221578061220d8882611f15565b8452602084019350506020810190506121fa565b5050509392505050565b5f82601f83011261223f5761223e612118565b5b813561224f8482602086016121c3565b91505092915050565b5f6020828403121561226d5761226c611ec7565b5b5f82013567ffffffffffffffff81111561228a57612289611ecb565b5b6122968482850161222b565b91505092915050565b6122a8816120b9565b81146122b2575f80fd5b50565b5f813590506122c38161229f565b92915050565b5f80604083850312156122df576122de611ec7565b5b5f6122ec858286016122b5565b92505060206122fd858286016122b5565b9150509250929050565b61231081611eee565b82525050565b5f6020820190506123295f830184612307565b92915050565b61233881611f9a565b8114612342575f80fd5b50565b5f813590506123538161232f565b92915050565b5f806040838503121561236f5761236e611ec7565b5b5f61237c85828601612345565b925050602061238d85828601611f48565b9150509250929050565b5f80604083850312156123ad576123ac611ec7565b5b5f6123ba85828601611f48565b92505060206123cb85828601611f48565b9150509250929050565b5f602082840312156123ea576123e9611ec7565b5b5f6123f784828501612345565b91505092915050565b5f806040838503121561241657612415611ec7565b5b5f61242385828601611f15565b925050602061243485828601611f15565b9150509250929050565b5f6020828403121561245357612452611ec7565b5b5f61246084828501611f48565b91505092915050565b5f61247382611ecf565b9050919050565b61248381612469565b811461248d575f80fd5b50565b5f8135905061249e8161247a565b92915050565b5f602082840312156124b9576124b8611ec7565b5b5f6124c684828501612490565b91505092915050565b5f80604083850312156124e5576124e4611ec7565b5b5f6124f285828601611f15565b925050602061250385828601612345565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061255157607f821691505b6020821081036125645761256361250d565b5b50919050565b5f81905092915050565b50565b5f6125825f8361256a565b915061258d82612574565b5f82019050919050565b5f6125a182612577565b9150819050919050565b5f815190506125b981611f32565b92915050565b5f602082840312156125d4576125d3611ec7565b5b5f6125e1848285016125ab565b91505092915050565b5f6125f482611ff7565b9050919050565b612604816125ea565b82525050565b5f60408201905061261d5f8301856125fb565b61262a6020830184612041565b9392505050565b5f8151905061263f8161232f565b92915050565b5f6020828403121561265a57612659611ec7565b5b5f61266784828501612631565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6126d482611f29565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036127065761270561269d565b5b600182019050919050565b5f6060820190506127245f830186612307565b6127316020830185612041565b61273e6040830184612041565b949350505050565b5f8151905061275481611eff565b92915050565b5f6020828403121561276f5761276e611ec7565b5b5f61277c84828501612746565b91505092915050565b5f819050919050565b5f6127a86127a361279e84612785565b611fcd565b611f29565b9050919050565b6127b88161278e565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6127f081611eee565b82525050565b5f61280183836127e7565b60208301905092915050565b5f602082019050919050565b5f612823826127be565b61282d81856127c8565b9350612838836127d8565b805f5b8381101561286857815161284f88826127f6565b975061285a8361280d565b92505060018101905061283b565b5085935050505092915050565b5f60a0820190506128885f830188612041565b61289560208301876127af565b81810360408301526128a78186612819565b90506128b66060830185612307565b6128c36080830184612041565b9695505050505050565b5f6128d782611f29565b91506128e283611f29565b92508282019050808211156128fa576128f961269d565b5b92915050565b5f61290a82611f29565b915061291583611f29565b925082820261292381611f29565b9150828204841483151761293a5761293961269d565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61297882611f29565b915061298383611f29565b92508261299357612992612941565b5b828204905092915050565b5f6129a882611f29565b91506129b383611f29565b92508282039050818111156129cb576129ca61269d565b5b9291505056fea2646970667358221220f62a8417d98cb6b005459ec939f2afac4bdee76076c20774ed7d46bdc988948964736f6c63430008140033
Deployed Bytecode Sourcemap
4007:10473:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5941:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9723:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4696:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6235:99;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9946:283;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6143:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8190:528;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7815:128;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6342:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3157:103;;;;;;;;;;;;;:::i;:::-;;7169:197;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4342:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6949:212;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2888:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4376:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6040:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8726:569;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7492:141;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6643:182;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7951:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6468:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8059:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7374:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6833:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3268:220;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7641:166;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5941:91;5986:13;6019:5;6012:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5941:91;:::o;9723:215::-;9821:4;9838:13;9854:12;:10;:12::i;:::-;9838:28;;9877:31;9886:5;9893:7;9902:5;9877:8;:31::i;:::-;9926:4;9919:11;;;9723:215;;;;:::o;4696:41::-;;;;;;;;;;;;;:::o;6235:99::-;6287:7;6314:12;;6307:19;;6235:99;:::o;9946:283::-;10067:4;10084:15;10102:12;:10;:12::i;:::-;10084:30;;10125:37;10141:4;10147:7;10156:5;10125:15;:37::i;:::-;10173:26;10183:4;10189:2;10193:5;10173:9;:26::i;:::-;10217:4;10210:11;;;9946:283;;;;;:::o;6143:84::-;6192:5;6217:2;6210:9;;6143:84;:::o;8190:528::-;8254:26;8283:21;8254:50;;8340:1;8319:18;:22;8315:182;;;8358:12;8407:9;;;;;;;;;;;8399:23;;8430:18;8399:86;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8385:100;;;;;8343:154;8315:182;8529:1;8511:20;;:6;:20;;;8507:204;;8548:10;8568:6;8561:24;;;8594:4;8561:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8548:52;;8624:1;8619:2;:6;8615:85;;;8653:6;8646:23;;;8670:9;;;;;;;;;;;8681:2;8646:38;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8615:85;8533:178;8507:204;8243:475;8190:528;:::o;7815:128::-;2847:13;:11;:13::i;:::-;7927:7:::1;7890:15;;:45;;;;;;;;;;;;;;;;;;7815:128:::0;:::o;6342:118::-;6407:7;6434:9;:18;6444:7;6434:18;;;;;;;;;;;;;;;;6427:25;;6342:118;;;:::o;3157:103::-;2847:13;:11;:13::i;:::-;3222:30:::1;3249:1;3222:18;:30::i;:::-;3157:103::o:0;7169:197::-;2847:13;:11;:13::i;:::-;7253:9:::1;7248:111;7272:8;:15;7268:1;:19;7248:111;;;7343:4;7309:18;:31;7328:8;7337:1;7328:11;;;;;;;;:::i;:::-;;;;;;;;7309:31;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;7289:3;;;;;:::i;:::-;;;;7248:111;;;;7169:197:::0;:::o;4342:27::-;;;;:::o;6949:212::-;2847:13;:11;:13::i;:::-;7038:3:::1;7031:4;:10;;;:25;;;;7053:3;7045:5;:11;;;7031:25;7027:77;;;7080:12;;;;;;;;;;;;;;7027:77;7123:4;7114:13;;:6;:13;;;;7148:5;7138:15;;:7;:15;;;;6949:212:::0;;:::o;2888:87::-;2934:7;2961:6;;;;;;;;;;;2954:13;;2888:87;:::o;4376:29::-;;;;:::o;6040:95::-;6087:13;6120:7;6113:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6040:95;:::o;8726:569::-;8860:7;8805:11;:26;8825:4;8805:26;;;;;;;;;;;;;;;:52;8840:15;;;;;;;;;;;8805:52;;;;;;;;;;;;;;;;:62;8801:229;;;8884:134;8919:4;8951:15;;;;;;;;;;;8986:17;8884:8;:134::i;:::-;8801:229;9040:25;9057:7;9040:16;:25::i;:::-;9080:11;9076:212;;;9108:26;9137:21;9108:50;;9198:1;9177:18;:22;9173:104;;;9220:9;;;;;;;;;;;:18;;:41;9239:21;9220:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9173:104;9093:195;9076:212;8726:569;;:::o;7492:141::-;2847:13;:11;:13::i;:::-;7587:3:::1;7572:12;:18;;;;7618:7;7601:14;:24;;;;7492:141:::0;;:::o;6643:182::-;6712:4;6729:13;6745:12;:10;:12::i;:::-;6729:28;;6768:27;6778:5;6785:2;6789:5;6768:9;:27::i;:::-;6813:4;6806:11;;;6643:182;;;;:::o;7951:102::-;2847:13;:11;:13::i;:::-;8033:12:::1;8019:11;;:26;;;;;;;;;;;;;;;;;;7951:102:::0;:::o;6468:167::-;6573:7;6600:11;:18;6612:5;6600:18;;;;;;;;;;;;;;;:27;6619:7;6600:27;;;;;;;;;;;;;;;;6593:34;;6468:167;;;;:::o;8059:123::-;2847:13;:11;:13::i;:::-;8159:15:::1;8142:14;:32;;;;8059:123:::0;:::o;7374:110::-;2847:13;:11;:13::i;:::-;7471:5:::1;7441:18;:27;7460:7;7441:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;7374:110:::0;:::o;6833:108::-;2847:13;:11;:13::i;:::-;6923:10:::1;6911:9;;:22;;;;;;;;;;;;;;;;;;6833:108:::0;:::o;3268:220::-;2847:13;:11;:13::i;:::-;3373:1:::1;3353:22;;:8;:22;;::::0;3349:93:::1;;3427:1;3399:31;;;;;;;;;;;:::i;:::-;;;;;;;;3349:93;3452:28;3471:8;3452:18;:28::i;:::-;3268:220:::0;:::o;7641:166::-;2847:13;:11;:13::i;:::-;7751:7:::1;7723:18;:25;7742:5;7723:25;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;7792:7;7769:13;:20;7783:5;7769:20;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;7641:166:::0;;:::o;1421:98::-;1474:7;1501:10;1494:17;;1421:98;:::o;13242:130::-;13327:37;13336:5;13343:7;13352:5;13359:4;13327:8;:37::i;:::-;13242:130;;;:::o;13874:603::-;14008:24;14035:25;14045:5;14052:7;14035:9;:25::i;:::-;14008:52;;14095:17;14075:16;:37;14071:399;;14152:5;14133:16;:24;14129:214;;;14234:7;14264:16;14303:5;14185:142;;;;;;;;;;;;;:::i;:::-;;;;;;;;14129:214;14386:57;14395:5;14402:7;14430:5;14411:16;:24;14437:5;14386:8;:57::i;:::-;14071:399;13997:480;13874:603;;;:::o;10237:308::-;10337:1;10321:18;;:4;:18;;;10317:88;;10390:1;10363:30;;;;;;;;;;;:::i;:::-;;;;;;;;10317:88;10433:1;10419:16;;:2;:16;;;10415:88;;10488:1;10459:32;;;;;;;;;;;:::i;:::-;;;;;;;;10415:88;10513:24;10521:4;10527:2;10531:5;10513:7;:24::i;:::-;10237:308;;;:::o;2983:166::-;3054:12;:10;:12::i;:::-;3043:23;;:7;:5;:7::i;:::-;:23;;;3039:103;;3117:12;:10;:12::i;:::-;3090:40;;;;;;;;;;;:::i;:::-;;;;;;;;3039:103;2983:166::o;3496:191::-;3570:16;3589:6;;;;;;;;;;;3570:25;;3615:8;3606:6;;:17;;;;;;;;;;;;;;;;;;3670:8;3639:40;;3660:8;3639:40;;;;;;;;;;;;3559:128;3496:191;:::o;9303:412::-;4829:4;4820:6;;:13;;;;;;;;;;;;;;;;;;9381:21:::1;9419:1;9405:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9381:40;;9450:4;9432;9437:1;9432:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9476:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9466:4;9471:1;9466:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9511:15;;;;;;;;;;;:66;;;9592:11;9618:1;9634:4;9661;9681:15;9511:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9370:345;4865:5:::0;4856:6;;:14;;;;;;;;;;;;;;;;;;9303:412;:::o;13380:486::-;13553:1;13536:19;;:5;:19;;;13532:91;;13608:1;13579:32;;;;;;;;;;;:::i;:::-;;;;;;;;13532:91;13656:1;13637:21;;:7;:21;;;13633:92;;13710:1;13682:31;;;;;;;;;;;:::i;:::-;;;;;;;;13633:92;13765:5;13735:11;:18;13747:5;13735:18;;;;;;;;;;;;;;;:27;13754:7;13735:27;;;;;;;;;;;;;;;:35;;;;13785:9;13781:78;;;13832:7;13816:31;;13825:5;13816:31;;;13841:5;13816:31;;;;;;:::i;:::-;;;;;;;;13781:78;13380:486;;;;:::o;10553:2241::-;10639:15;10657:7;:5;:7::i;:::-;10639:25;;10687:7;10679:15;;:4;:15;;;;:42;;;;;10699:18;:22;10718:2;10699:22;;;;;;;;;;;;;;;;;;;;;;;;;10698:23;10679:42;10675:285;;;10766:14;;10758:5;10742:9;:13;10752:2;10742:13;;;;;;;;;;;;;;;;:21;;;;:::i;:::-;:38;10738:109;;;10808:23;;;;;;;;;;;;;;10738:109;10873:12;;10865:5;:20;10861:88;;;10913:20;;;;;;;;;;;;;;10861:88;10675:285;10970:17;10998:15;11016:5;10998:23;;11044:7;11036:15;;:4;:15;;;;:32;;;;;11061:7;11055:13;;:2;:13;;;;11036:32;11032:327;;;11089:13;:19;11103:4;11089:19;;;;;;;;;;;;;;;;;;;;;;;;;:46;;;;;11113:18;:22;11132:2;11113:22;;;;;;;;;;;;;;;;;;;;;;;;;11112:23;11089:46;11085:123;;;11188:3;11177:6;;11169:5;:14;;;;:::i;:::-;11168:24;;;;:::i;:::-;11156:36;;11085:123;11228:13;:17;11242:2;11228:17;;;;;;;;;;;;;;;;;;;;;;;;;:46;;;;;11250:18;:24;11269:4;11250:24;;;;;;;;;;;;;;;;;;;;;;;;;11249:25;11228:46;11224:124;;;11328:3;11316:7;;11308:5;:15;;;;:::i;:::-;11307:25;;;;:::i;:::-;11295:37;;11224:124;11032:327;11373:13;:17;11387:2;11373:17;;;;;;;;;;;;;;;;;;;;;;;;;11369:67;;;11420:4;11407:17;;11369:67;11462:1;11450:9;:13;11446:143;;;11508:9;11480;:24;11498:4;11480:24;;;;;;;;;;;;;;;;:37;;;;;;;:::i;:::-;;;;;;;;11560:4;11537:40;;11546:4;11537:40;;;11567:9;11537:40;;;;;;:::i;:::-;;;;;;;;11446:143;11599:28;11630:24;11648:4;11630:9;:24::i;:::-;11599:55;;11694:1;11671:20;:24;:38;;;;;11699:10;11671:38;:49;;;;;11714:6;;;;;;;;;;;11713:7;11671:49;:64;;;;;11724:11;;;;;;;;;;;11671:64;11667:449;;;11752:169;11810:14;;11787:20;:37;:119;;11886:20;11787:119;;;11848:14;;11787:119;11752:16;:169::i;:::-;11936:26;11965:21;11936:50;;12026:1;12005:18;:22;12001:104;;;12048:9;;;;;;;;;;;:18;;:41;12067:21;12048:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12001:104;11737:379;11667:449;12146:1;12130:18;;:4;:18;;;12126:369;;12181:5;12165:12;;:21;;;;;;;:::i;:::-;;;;;;;;12126:369;;;12219:19;12241:9;:15;12251:4;12241:15;;;;;;;;;;;;;;;;12219:37;;12289:5;12275:11;:19;12271:117;;;12347:4;12353:11;12366:5;12322:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;12271:117;12463:5;12449:11;:19;12431:9;:15;12441:4;12431:15;;;;;;;;;;;;;;;:37;;;;12204:291;12126:369;12525:1;12511:16;;:2;:16;;;12507:225;;12589:5;12573:12;;:21;;;;;;;;;;;12507:225;;;12696:9;12688:5;:17;12671:9;:13;12681:2;12671:13;;;;;;;;;;;;;;;;:34;;;;;;;;;;;12507:225;12764:2;12749:37;;12758:4;12749:37;;;12776:9;12768:5;:17;;;;:::i;:::-;12749:37;;;;;;:::i;:::-;;;;;;;;10628:2166;;;;10553:2241;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:60::-;3474:3;3495:5;3488:12;;3446:60;;;:::o;3512:142::-;3562:9;3595:53;3613:34;3622:24;3640:5;3622:24;:::i;:::-;3613:34;:::i;:::-;3595:53;:::i;:::-;3582:66;;3512:142;;;:::o;3660:126::-;3710:9;3743:37;3774:5;3743:37;:::i;:::-;3730:50;;3660:126;;;:::o;3792:152::-;3868:9;3901:37;3932:5;3901:37;:::i;:::-;3888:50;;3792:152;;;:::o;3950:183::-;4063:63;4120:5;4063:63;:::i;:::-;4058:3;4051:76;3950:183;;:::o;4139:274::-;4258:4;4296:2;4285:9;4281:18;4273:26;;4309:97;4403:1;4392:9;4388:17;4379:6;4309:97;:::i;:::-;4139:274;;;;:::o;4419:118::-;4506:24;4524:5;4506:24;:::i;:::-;4501:3;4494:37;4419:118;;:::o;4543:222::-;4636:4;4674:2;4663:9;4659:18;4651:26;;4687:71;4755:1;4744:9;4740:17;4731:6;4687:71;:::i;:::-;4543:222;;;;:::o;4771:619::-;4848:6;4856;4864;4913:2;4901:9;4892:7;4888:23;4884:32;4881:119;;;4919:79;;:::i;:::-;4881:119;5039:1;5064:53;5109:7;5100:6;5089:9;5085:22;5064:53;:::i;:::-;5054:63;;5010:117;5166:2;5192:53;5237:7;5228:6;5217:9;5213:22;5192:53;:::i;:::-;5182:63;;5137:118;5294:2;5320:53;5365:7;5356:6;5345:9;5341:22;5320:53;:::i;:::-;5310:63;;5265:118;4771:619;;;;;:::o;5396:86::-;5431:7;5471:4;5464:5;5460:16;5449:27;;5396:86;;;:::o;5488:112::-;5571:22;5587:5;5571:22;:::i;:::-;5566:3;5559:35;5488:112;;:::o;5606:214::-;5695:4;5733:2;5722:9;5718:18;5710:26;;5746:67;5810:1;5799:9;5795:17;5786:6;5746:67;:::i;:::-;5606:214;;;;:::o;5826:329::-;5885:6;5934:2;5922:9;5913:7;5909:23;5905:32;5902:119;;;5940:79;;:::i;:::-;5902:119;6060:1;6085:53;6130:7;6121:6;6110:9;6106:22;6085:53;:::i;:::-;6075:63;;6031:117;5826:329;;;;:::o;6161:117::-;6270:1;6267;6260:12;6284:180;6332:77;6329:1;6322:88;6429:4;6426:1;6419:15;6453:4;6450:1;6443:15;6470:281;6553:27;6575:4;6553:27;:::i;:::-;6545:6;6541:40;6683:6;6671:10;6668:22;6647:18;6635:10;6632:34;6629:62;6626:88;;;6694:18;;:::i;:::-;6626:88;6734:10;6730:2;6723:22;6513:238;6470:281;;:::o;6757:129::-;6791:6;6818:20;;:::i;:::-;6808:30;;6847:33;6875:4;6867:6;6847:33;:::i;:::-;6757:129;;;:::o;6892:311::-;6969:4;7059:18;7051:6;7048:30;7045:56;;;7081:18;;:::i;:::-;7045:56;7131:4;7123:6;7119:17;7111:25;;7191:4;7185;7181:15;7173:23;;6892:311;;;:::o;7209:117::-;7318:1;7315;7308:12;7349:710;7445:5;7470:81;7486:64;7543:6;7486:64;:::i;:::-;7470:81;:::i;:::-;7461:90;;7571:5;7600:6;7593:5;7586:21;7634:4;7627:5;7623:16;7616:23;;7687:4;7679:6;7675:17;7667:6;7663:30;7716:3;7708:6;7705:15;7702:122;;;7735:79;;:::i;:::-;7702:122;7850:6;7833:220;7867:6;7862:3;7859:15;7833:220;;;7942:3;7971:37;8004:3;7992:10;7971:37;:::i;:::-;7966:3;7959:50;8038:4;8033:3;8029:14;8022:21;;7909:144;7893:4;7888:3;7884:14;7877:21;;7833:220;;;7837:21;7451:608;;7349:710;;;;;:::o;8082:370::-;8153:5;8202:3;8195:4;8187:6;8183:17;8179:27;8169:122;;8210:79;;:::i;:::-;8169:122;8327:6;8314:20;8352:94;8442:3;8434:6;8427:4;8419:6;8415:17;8352:94;:::i;:::-;8343:103;;8159:293;8082:370;;;;:::o;8458:539::-;8542:6;8591:2;8579:9;8570:7;8566:23;8562:32;8559:119;;;8597:79;;:::i;:::-;8559:119;8745:1;8734:9;8730:17;8717:31;8775:18;8767:6;8764:30;8761:117;;;8797:79;;:::i;:::-;8761:117;8902:78;8972:7;8963:6;8952:9;8948:22;8902:78;:::i;:::-;8892:88;;8688:302;8458:539;;;;:::o;9003:118::-;9074:22;9090:5;9074:22;:::i;:::-;9067:5;9064:33;9054:61;;9111:1;9108;9101:12;9054:61;9003:118;:::o;9127:135::-;9171:5;9209:6;9196:20;9187:29;;9225:31;9250:5;9225:31;:::i;:::-;9127:135;;;;:::o;9268:466::-;9332:6;9340;9389:2;9377:9;9368:7;9364:23;9360:32;9357:119;;;9395:79;;:::i;:::-;9357:119;9515:1;9540:51;9583:7;9574:6;9563:9;9559:22;9540:51;:::i;:::-;9530:61;;9486:115;9640:2;9666:51;9709:7;9700:6;9689:9;9685:22;9666:51;:::i;:::-;9656:61;;9611:116;9268:466;;;;;:::o;9740:118::-;9827:24;9845:5;9827:24;:::i;:::-;9822:3;9815:37;9740:118;;:::o;9864:222::-;9957:4;9995:2;9984:9;9980:18;9972:26;;10008:71;10076:1;10065:9;10061:17;10052:6;10008:71;:::i;:::-;9864:222;;;;:::o;10092:116::-;10162:21;10177:5;10162:21;:::i;:::-;10155:5;10152:32;10142:60;;10198:1;10195;10188:12;10142:60;10092:116;:::o;10214:133::-;10257:5;10295:6;10282:20;10273:29;;10311:30;10335:5;10311:30;:::i;:::-;10214:133;;;;:::o;10353:468::-;10418:6;10426;10475:2;10463:9;10454:7;10450:23;10446:32;10443:119;;;10481:79;;:::i;:::-;10443:119;10601:1;10626:50;10668:7;10659:6;10648:9;10644:22;10626:50;:::i;:::-;10616:60;;10572:114;10725:2;10751:53;10796:7;10787:6;10776:9;10772:22;10751:53;:::i;:::-;10741:63;;10696:118;10353:468;;;;;:::o;10827:474::-;10895:6;10903;10952:2;10940:9;10931:7;10927:23;10923:32;10920:119;;;10958:79;;:::i;:::-;10920:119;11078:1;11103:53;11148:7;11139:6;11128:9;11124:22;11103:53;:::i;:::-;11093:63;;11049:117;11205:2;11231:53;11276:7;11267:6;11256:9;11252:22;11231:53;:::i;:::-;11221:63;;11176:118;10827:474;;;;;:::o;11307:323::-;11363:6;11412:2;11400:9;11391:7;11387:23;11383:32;11380:119;;;11418:79;;:::i;:::-;11380:119;11538:1;11563:50;11605:7;11596:6;11585:9;11581:22;11563:50;:::i;:::-;11553:60;;11509:114;11307:323;;;;:::o;11636:474::-;11704:6;11712;11761:2;11749:9;11740:7;11736:23;11732:32;11729:119;;;11767:79;;:::i;:::-;11729:119;11887:1;11912:53;11957:7;11948:6;11937:9;11933:22;11912:53;:::i;:::-;11902:63;;11858:117;12014:2;12040:53;12085:7;12076:6;12065:9;12061:22;12040:53;:::i;:::-;12030:63;;11985:118;11636:474;;;;;:::o;12116:329::-;12175:6;12224:2;12212:9;12203:7;12199:23;12195:32;12192:119;;;12230:79;;:::i;:::-;12192:119;12350:1;12375:53;12420:7;12411:6;12400:9;12396:22;12375:53;:::i;:::-;12365:63;;12321:117;12116:329;;;;:::o;12451:104::-;12496:7;12525:24;12543:5;12525:24;:::i;:::-;12514:35;;12451:104;;;:::o;12561:138::-;12642:32;12668:5;12642:32;:::i;:::-;12635:5;12632:43;12622:71;;12689:1;12686;12679:12;12622:71;12561:138;:::o;12705:155::-;12759:5;12797:6;12784:20;12775:29;;12813:41;12848:5;12813:41;:::i;:::-;12705:155;;;;:::o;12866:345::-;12933:6;12982:2;12970:9;12961:7;12957:23;12953:32;12950:119;;;12988:79;;:::i;:::-;12950:119;13108:1;13133:61;13186:7;13177:6;13166:9;13162:22;13133:61;:::i;:::-;13123:71;;13079:125;12866:345;;;;:::o;13217:468::-;13282:6;13290;13339:2;13327:9;13318:7;13314:23;13310:32;13307:119;;;13345:79;;:::i;:::-;13307:119;13465:1;13490:53;13535:7;13526:6;13515:9;13511:22;13490:53;:::i;:::-;13480:63;;13436:117;13592:2;13618:50;13660:7;13651:6;13640:9;13636:22;13618:50;:::i;:::-;13608:60;;13563:115;13217:468;;;;;:::o;13691:180::-;13739:77;13736:1;13729:88;13836:4;13833:1;13826:15;13860:4;13857:1;13850:15;13877:320;13921:6;13958:1;13952:4;13948:12;13938:22;;14005:1;13999:4;13995:12;14026:18;14016:81;;14082:4;14074:6;14070:17;14060:27;;14016:81;14144:2;14136:6;14133:14;14113:18;14110:38;14107:84;;14163:18;;:::i;:::-;14107:84;13928:269;13877:320;;;:::o;14203:147::-;14304:11;14341:3;14326:18;;14203:147;;;;:::o;14356:114::-;;:::o;14476:398::-;14635:3;14656:83;14737:1;14732:3;14656:83;:::i;:::-;14649:90;;14748:93;14837:3;14748:93;:::i;:::-;14866:1;14861:3;14857:11;14850:18;;14476:398;;;:::o;14880:379::-;15064:3;15086:147;15229:3;15086:147;:::i;:::-;15079:154;;15250:3;15243:10;;14880:379;;;:::o;15265:143::-;15322:5;15353:6;15347:13;15338:22;;15369:33;15396:5;15369:33;:::i;:::-;15265:143;;;;:::o;15414:351::-;15484:6;15533:2;15521:9;15512:7;15508:23;15504:32;15501:119;;;15539:79;;:::i;:::-;15501:119;15659:1;15684:64;15740:7;15731:6;15720:9;15716:22;15684:64;:::i;:::-;15674:74;;15630:128;15414:351;;;;:::o;15771:134::-;15829:9;15862:37;15893:5;15862:37;:::i;:::-;15849:50;;15771:134;;;:::o;15911:147::-;16006:45;16045:5;16006:45;:::i;:::-;16001:3;15994:58;15911:147;;:::o;16064:348::-;16193:4;16231:2;16220:9;16216:18;16208:26;;16244:79;16320:1;16309:9;16305:17;16296:6;16244:79;:::i;:::-;16333:72;16401:2;16390:9;16386:18;16377:6;16333:72;:::i;:::-;16064:348;;;;;:::o;16418:137::-;16472:5;16503:6;16497:13;16488:22;;16519:30;16543:5;16519:30;:::i;:::-;16418:137;;;;:::o;16561:345::-;16628:6;16677:2;16665:9;16656:7;16652:23;16648:32;16645:119;;;16683:79;;:::i;:::-;16645:119;16803:1;16828:61;16881:7;16872:6;16861:9;16857:22;16828:61;:::i;:::-;16818:71;;16774:125;16561:345;;;;:::o;16912:180::-;16960:77;16957:1;16950:88;17057:4;17054:1;17047:15;17081:4;17078:1;17071:15;17098:180;17146:77;17143:1;17136:88;17243:4;17240:1;17233:15;17267:4;17264:1;17257:15;17284:233;17323:3;17346:24;17364:5;17346:24;:::i;:::-;17337:33;;17392:66;17385:5;17382:77;17379:103;;17462:18;;:::i;:::-;17379:103;17509:1;17502:5;17498:13;17491:20;;17284:233;;;:::o;17523:442::-;17672:4;17710:2;17699:9;17695:18;17687:26;;17723:71;17791:1;17780:9;17776:17;17767:6;17723:71;:::i;:::-;17804:72;17872:2;17861:9;17857:18;17848:6;17804:72;:::i;:::-;17886;17954:2;17943:9;17939:18;17930:6;17886:72;:::i;:::-;17523:442;;;;;;:::o;17971:143::-;18028:5;18059:6;18053:13;18044:22;;18075:33;18102:5;18075:33;:::i;:::-;17971:143;;;;:::o;18120:351::-;18190:6;18239:2;18227:9;18218:7;18214:23;18210:32;18207:119;;;18245:79;;:::i;:::-;18207:119;18365:1;18390:64;18446:7;18437:6;18426:9;18422:22;18390:64;:::i;:::-;18380:74;;18336:128;18120:351;;;;:::o;18477:85::-;18522:7;18551:5;18540:16;;18477:85;;;:::o;18568:158::-;18626:9;18659:61;18677:42;18686:32;18712:5;18686:32;:::i;:::-;18677:42;:::i;:::-;18659:61;:::i;:::-;18646:74;;18568:158;;;:::o;18732:147::-;18827:45;18866:5;18827:45;:::i;:::-;18822:3;18815:58;18732:147;;:::o;18885:114::-;18952:6;18986:5;18980:12;18970:22;;18885:114;;;:::o;19005:184::-;19104:11;19138:6;19133:3;19126:19;19178:4;19173:3;19169:14;19154:29;;19005:184;;;;:::o;19195:132::-;19262:4;19285:3;19277:11;;19315:4;19310:3;19306:14;19298:22;;19195:132;;;:::o;19333:108::-;19410:24;19428:5;19410:24;:::i;:::-;19405:3;19398:37;19333:108;;:::o;19447:179::-;19516:10;19537:46;19579:3;19571:6;19537:46;:::i;:::-;19615:4;19610:3;19606:14;19592:28;;19447:179;;;;:::o;19632:113::-;19702:4;19734;19729:3;19725:14;19717:22;;19632:113;;;:::o;19781:732::-;19900:3;19929:54;19977:5;19929:54;:::i;:::-;19999:86;20078:6;20073:3;19999:86;:::i;:::-;19992:93;;20109:56;20159:5;20109:56;:::i;:::-;20188:7;20219:1;20204:284;20229:6;20226:1;20223:13;20204:284;;;20305:6;20299:13;20332:63;20391:3;20376:13;20332:63;:::i;:::-;20325:70;;20418:60;20471:6;20418:60;:::i;:::-;20408:70;;20264:224;20251:1;20248;20244:9;20239:14;;20204:284;;;20208:14;20504:3;20497:10;;19905:608;;;19781:732;;;;:::o;20519:831::-;20782:4;20820:3;20809:9;20805:19;20797:27;;20834:71;20902:1;20891:9;20887:17;20878:6;20834:71;:::i;:::-;20915:80;20991:2;20980:9;20976:18;20967:6;20915:80;:::i;:::-;21042:9;21036:4;21032:20;21027:2;21016:9;21012:18;21005:48;21070:108;21173:4;21164:6;21070:108;:::i;:::-;21062:116;;21188:72;21256:2;21245:9;21241:18;21232:6;21188:72;:::i;:::-;21270:73;21338:3;21327:9;21323:19;21314:6;21270:73;:::i;:::-;20519:831;;;;;;;;:::o;21356:191::-;21396:3;21415:20;21433:1;21415:20;:::i;:::-;21410:25;;21449:20;21467:1;21449:20;:::i;:::-;21444:25;;21492:1;21489;21485:9;21478:16;;21513:3;21510:1;21507:10;21504:36;;;21520:18;;:::i;:::-;21504:36;21356:191;;;;:::o;21553:410::-;21593:7;21616:20;21634:1;21616:20;:::i;:::-;21611:25;;21650:20;21668:1;21650:20;:::i;:::-;21645:25;;21705:1;21702;21698:9;21727:30;21745:11;21727:30;:::i;:::-;21716:41;;21906:1;21897:7;21893:15;21890:1;21887:22;21867:1;21860:9;21840:83;21817:139;;21936:18;;:::i;:::-;21817:139;21601:362;21553:410;;;;:::o;21969:180::-;22017:77;22014:1;22007:88;22114:4;22111:1;22104:15;22138:4;22135:1;22128:15;22155:185;22195:1;22212:20;22230:1;22212:20;:::i;:::-;22207:25;;22246:20;22264:1;22246:20;:::i;:::-;22241:25;;22285:1;22275:35;;22290:18;;:::i;:::-;22275:35;22332:1;22329;22325:9;22320:14;;22155:185;;;;:::o;22346:194::-;22386:4;22406:20;22424:1;22406:20;:::i;:::-;22401:25;;22440:20;22458:1;22440:20;:::i;:::-;22435:25;;22484:1;22481;22477:9;22469:17;;22508:1;22502:4;22499:11;22496:37;;;22513:18;;:::i;:::-;22496:37;22346:194;;;;:::o
Swarm Source
ipfs://f62a8417d98cb6b005459ec939f2afac4bdee76076c20774ed7d46bdc9889489
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.