ERC-20
Overview
Max Total Supply
100,000,000,000 HARAMBE
Holders
70
Total Transfers
-
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
Harambe
Compiler Version
v0.8.24+commit.e11b9ed9
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-02-12 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.21; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } interface IUniswapV2Router02 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint256 amountADesired, uint256 amountBDesired, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns ( uint256 amountA, uint256 amountB, uint256 liquidity ); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } interface IUniswapV2Pair { event Approval( address indexed owner, address indexed spender, uint256 value ); event Transfer(address indexed from, address indexed to, uint256 value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint256); function balanceOf(address owner) external view returns (uint256); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 value) external returns (bool); function transfer(address to, uint256 value) external returns (bool); function transferFrom( address from, address to, uint256 value ) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint256); function permit( address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) external; event Mint(address indexed sender, uint256 amount0, uint256 amount1); event Swap( address indexed sender, uint256 amount0In, uint256 amount1In, uint256 amount0Out, uint256 amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint256); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns ( uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast ); function price0CumulativeLast() external view returns (uint256); function price1CumulativeLast() external view returns (uint256); function kLast() external view returns (uint256); function mint(address to) external returns (uint256 liquidity); function swap( uint256 amount0Out, uint256 amount1Out, address to, bytes calldata data ) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } interface IUniswapV2Factory { event PairCreated( address indexed token0, address indexed token1, address pair, uint256 ); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint256) external view returns (address pair); function allPairsLength() external view returns (uint256); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } 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 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address from, address to, uint256 amount ) 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 Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _transferOwnership(_msgSender()); } modifier onlyOwner() { _checkOwner(); _; } function owner() public view virtual returns (address) { return _owner; } function _checkOwner() internal view virtual { require(owner() == _msgSender(), "Ownable: caller is not the owner"); } function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function decimals() public view virtual override returns (uint8) { return 18; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } function transfer(address to, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _transfer(owner, to, amount); return true; } function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _approve(owner, spender, amount); return true; } function transferFrom( address from, address to, uint256 amount ) public virtual override returns (bool) { address spender = _msgSender(); _spendAllowance(from, spender, amount); _transfer(from, to, amount); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { address owner = _msgSender(); _approve(owner, spender, allowance(owner, spender) + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { address owner = _msgSender(); uint256 currentAllowance = allowance(owner, spender); require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(owner, spender, currentAllowance - subtractedValue); } return true; } function _transfer( address from, address to, uint256 amount ) internal virtual { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(from, to, amount); uint256 fromBalance = _balances[from]; require(fromBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[from] = fromBalance - amount; _balances[to] += amount; } emit Transfer(from, to, amount); _afterTokenTransfer(from, to, amount); } function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; _balances[account] += amount; emit Transfer(address(0), account, amount); _afterTokenTransfer(address(0), account, amount); } function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; _totalSupply -= amount; } emit Transfer(account, address(0), amount); _afterTokenTransfer(account, address(0), amount); } function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _spendAllowance( address owner, address spender, uint256 amount ) internal virtual { uint256 currentAllowance = allowance(owner, spender); if (currentAllowance != type(uint256).max) { require(currentAllowance >= amount, "ERC20: insufficient allowance"); unchecked { _approve(owner, spender, currentAllowance - amount); } } } function _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} function _afterTokenTransfer( address from, address to, uint256 amount ) internal virtual {} } contract Harambe is ERC20, Ownable { IUniswapV2Router02 public immutable _uniswapV2Router; address private uniswapV2Pair; address private marketingWallet; address private constant deadAddress = address(0xdead); bool private swapping; string private constant _name = "Harambe"; string private constant _symbol = "HARAMBE"; uint256 public initialTotalSupply = 100_000_000_000 * 1e18; uint256 public maxTransactionAmount = initialTotalSupply / 100; uint256 public maxWallet = initialTotalSupply / 100; uint256 public swapTokensAtAmount = 5000000 * 1e18; uint256 private blockStart; uint256 private blockAdd; uint256 private blockSnipe; bool public tradingOpen = false; bool public swapEnabled = false; bool public limitsInEffect = true; mapping(uint256 => uint256) private swapInBlock; uint256 public BuyFee = 20; uint256 public SellFee = 30; mapping(address => bool) private _isExcludedFromFees; mapping(address => bool) private _isExcludedMaxTransactionAmount; mapping(address => bool) private automatedMarketMakerPairs; event ExcludeFromFees(address indexed account, bool isExcluded); event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value); constructor(address wallet) ERC20(_name, _symbol) { _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH()); _setAutomatedMarketMakerPair(address(uniswapV2Pair), true); excludeFromMaxTransaction(address(uniswapV2Pair), true); excludeFromMaxTransaction(address(_uniswapV2Router), true); marketingWallet = payable(wallet); excludeFromFees(owner(), true); excludeFromFees(address(this), true); excludeFromFees(address(wallet), true); excludeFromFees(address(0xdead), true); excludeFromMaxTransaction(owner(), true); excludeFromMaxTransaction(address(this), true); excludeFromMaxTransaction(address(wallet), true); excludeFromMaxTransaction(address(0xdead), true); _mint(_msgSender(), initialTotalSupply * 88 / 100); _mint(marketingWallet, initialTotalSupply * 12 / 100); } receive() external payable {} function openTrading(uint256 openingFee, uint256 maxOpen, uint256 _blocksnipe) external onlyOwner() { require(!tradingOpen,"Trading is already open"); BuyFee = openingFee; SellFee = openingFee; maxTransactionAmount = initialTotalSupply / maxOpen; maxWallet = initialTotalSupply / maxOpen; blockSnipe = _blocksnipe; blockStart = block.number; swapEnabled = true; tradingOpen = true; } function excludeFromMaxTransaction(address updAds, bool isEx) public onlyOwner { _isExcludedMaxTransactionAmount[updAds] = isEx; } function setAutomatedMarketMakerPair(address pair, bool value) public onlyOwner { require(pair != uniswapV2Pair, "The pair cannot be removed from automatedMarketMakerPairs"); _setAutomatedMarketMakerPair(pair, value); } function _setAutomatedMarketMakerPair(address pair, bool value) private { automatedMarketMakerPairs[pair] = value; emit SetAutomatedMarketMakerPair(pair, value); } function excludeFromFees(address account, bool excluded) public onlyOwner { _isExcludedFromFees[account] = excluded; emit ExcludeFromFees(account, excluded); } function _transfer(address from, address to, uint256 amount) internal override { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); if (amount == 0) { super._transfer(from, to, 0); return; } uint256 blockNum = block.number; if (limitsInEffect) { if(blockNum > (blockStart + blockSnipe)) { BuyFee = 40; SellFee = 40; maxTransactionAmount = initialTotalSupply / 200; maxWallet = initialTotalSupply / 100; } if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping) { if (!tradingOpen) { require(_isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not active."); } if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to] ) { require(amount <= maxTransactionAmount, "Buy transfer amount exceeds the maxTransactionAmount."); require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded"); } else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) { require(amount <= maxTransactionAmount, "Sell transfer amount exceeds the maxTransactionAmount."); } else if (!_isExcludedMaxTransactionAmount[to]) { require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded"); } } } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= swapTokensAtAmount; if (canSwap && swapEnabled && !swapping && !automatedMarketMakerPairs[from] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to] && (swapInBlock[blockNum] < 3)) { swapping = true; swapBack(); ++swapInBlock[blockNum]; swapping = false; } bool takeFee = !swapping; if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) { takeFee = false; } uint256 fees = 0; if (takeFee) { if (automatedMarketMakerPairs[to]) { fees = amount * SellFee / 100; } else { fees = amount * BuyFee / 100; } if (fees > 0) { super._transfer(from, address(this), fees); } amount -= fees; } super._transfer(from, to, amount); } function swapTokensForEth(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = _uniswapV2Router.WETH(); _approve(address(this), address(_uniswapV2Router), tokenAmount); _uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, marketingWallet, block.timestamp ); } function removeLimits() external onlyOwner { limitsInEffect = false; } function clearStuckEth() external { require(_msgSender() == marketingWallet); require(address(this).balance > 0, "Token: no ETH to clear"); payable(msg.sender).transfer(address(this).balance); } function clearStuckTokens(uint256 amount) external { require(_msgSender() == marketingWallet); swapTokensForEth(amount * (10 ** 18)); } function setFee(uint256 _buyFee, uint256 _sellFee) external onlyOwner { require(_buyFee <= 50 && _sellFee <= 50, "Fees cannot exceed 30%"); BuyFee = _buyFee; SellFee = _sellFee; } function updateMarketingWallet(address newMarketingWallet) external onlyOwner { marketingWallet = newMarketingWallet; } function setSwapTokensAtAmount(uint256 _amount) external onlyOwner { swapTokensAtAmount = _amount * (10 ** 18); } function swapBack() private { uint256 contractBalance = balanceOf(address(this)); uint256 tokensToSwap; if (contractBalance == 0) { return; } if (contractBalance > swapTokensAtAmount * 100) { contractBalance = swapTokensAtAmount * 100; } tokensToSwap = contractBalance; swapTokensForEth(tokensToSwap); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","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":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","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":"BuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearStuckEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"clearStuckTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initialTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"openingFee","type":"uint256"},{"internalType":"uint256","name":"maxOpen","type":"uint256"},{"internalType":"uint256","name":"_blocksnipe","type":"uint256"}],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","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":"amount","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":[{"internalType":"address","name":"newMarketingWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60a06040526c01431e0fae6d7217caa0000000600855606460085462000026919062000a9d565b60095560646008546200003a919062000a9d565b600a556a0422ca8b0a00a425000000600b555f600f5f6101000a81548160ff0219169083151502179055505f600f60016101000a81548160ff0219169083151502179055506001600f60026101000a81548160ff0219169083151502179055506014601155601e601255348015620000b0575f80fd5b5060405162004584380380620045848339818101604052810190620000d6919062000b39565b6040518060400160405280600781526020017f486172616d6265000000000000000000000000000000000000000000000000008152506040518060400160405280600781526020017f484152414d424500000000000000000000000000000000000000000000000000815250816003908162000153919062000dc4565b50806004908162000165919062000dc4565b505050620001886200017c6200057f60201b60201c565b6200058660201b60201c565b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505060805173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200021c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000242919062000b39565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060805173ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002aa573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002d0919062000b39565b6040518363ffffffff1660e01b8152600401620002ef92919062000eb9565b6020604051808303815f875af11580156200030c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000332919062000b39565b60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620003a560065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200064960201b60201c565b620003d960065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001620006e760201b60201c565b620003ee6080516001620006e760201b60201c565b8060075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000450620004426200074f60201b60201c565b60016200077760201b60201c565b620004633060016200077760201b60201c565b620004768160016200077760201b60201c565b6200048b61dead60016200077760201b60201c565b620004ad6200049f6200074f60201b60201c565b6001620006e760201b60201c565b620004c0306001620006e760201b60201c565b620004d3816001620006e760201b60201c565b620004e861dead6001620006e760201b60201c565b62000527620004fc6200057f60201b60201c565b606460586008546200050f919062000ee4565b6200051b919062000a9d565b6200082f60201b60201c565b6200057860075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166064600c60085462000560919062000ee4565b6200056c919062000a9d565b6200082f60201b60201c565b50620010b7565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8060155f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b620006f76200099f60201b60201c565b8060145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620007876200099f60201b60201c565b8060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405162000823919062000f4a565b60405180910390a25050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620008a0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008979062000fc3565b60405180910390fd5b620008b35f838362000a3060201b60201c565b8060025f828254620008c6919062000fe3565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546200091a919062000fe3565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200098091906200102e565b60405180910390a36200099b5f838362000a3560201b60201c565b5050565b620009af6200057f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620009d56200074f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000a2e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a259062001097565b60405180910390fd5b565b505050565b505050565b5f819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f62000aa98262000a3a565b915062000ab68362000a3a565b92508262000ac95762000ac862000a43565b5b828204905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000b038262000ad8565b9050919050565b62000b158162000af7565b811462000b20575f80fd5b50565b5f8151905062000b338162000b0a565b92915050565b5f6020828403121562000b515762000b5062000ad4565b5b5f62000b608482850162000b23565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168062000be557607f821691505b60208210810362000bfb5762000bfa62000ba0565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830262000c5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000c22565b62000c6b868362000c22565b95508019841693508086168417925050509392505050565b5f819050919050565b5f62000cac62000ca662000ca08462000a3a565b62000c83565b62000a3a565b9050919050565b5f819050919050565b62000cc78362000c8c565b62000cdf62000cd68262000cb3565b84845462000c2e565b825550505050565b5f90565b62000cf562000ce7565b62000d0281848462000cbc565b505050565b5b8181101562000d295762000d1d5f8262000ceb565b60018101905062000d08565b5050565b601f82111562000d785762000d428162000c01565b62000d4d8462000c13565b8101602085101562000d5d578190505b62000d7562000d6c8562000c13565b83018262000d07565b50505b505050565b5f82821c905092915050565b5f62000d9a5f198460080262000d7d565b1980831691505092915050565b5f62000db4838362000d89565b9150826002028217905092915050565b62000dcf8262000b69565b67ffffffffffffffff81111562000deb5762000dea62000b73565b5b62000df7825462000bcd565b62000e0482828562000d2d565b5f60209050601f83116001811462000e3a575f841562000e25578287015190505b62000e31858262000da7565b86555062000ea0565b601f19841662000e4a8662000c01565b5f5b8281101562000e735784890151825560018201915060208501945060208101905062000e4c565b8683101562000e93578489015162000e8f601f89168262000d89565b8355505b6001600288020188555050505b505050505050565b62000eb38162000af7565b82525050565b5f60408201905062000ece5f83018562000ea8565b62000edd602083018462000ea8565b9392505050565b5f62000ef08262000a3a565b915062000efd8362000a3a565b925082820262000f0d8162000a3a565b9150828204841483151762000f275762000f2662000a70565b5b5092915050565b5f8115159050919050565b62000f448162000f2e565b82525050565b5f60208201905062000f5f5f83018462000f39565b92915050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f62000fab601f8362000f65565b915062000fb88262000f75565b602082019050919050565b5f6020820190508181035f83015262000fdc8162000f9d565b9050919050565b5f62000fef8262000a3a565b915062000ffc8362000a3a565b925082820190508082111562001017576200101662000a70565b5b92915050565b620010288162000a3a565b82525050565b5f602082019050620010435f8301846200101d565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6200107f60208362000f65565b91506200108c8262001049565b602082019050919050565b5f6020820190508181035f830152620010b08162001071565b9050919050565b60805161349f620010e55f395f8181610a4d01528181611f500152818161202f0152612056015261349f5ff3fe6080604052600436106101fc575f3560e01c80638da5cb5b1161010c578063c8c8ebe41161009f578063e2f456051161006e578063e2f45605146106fd578063f2fde38b14610727578063f82d36e81461074f578063f8b45b0514610777578063ffb54a99146107a157610203565b8063c8c8ebe414610643578063cf9522fd1461066d578063dd62ed3e14610697578063dd854652146106d357610203565b8063a9059cbb116100db578063a9059cbb1461058f578063aacebbe3146105cb578063afa4f3b2146105f3578063c02466681461061b57610203565b80638da5cb5b146104d757806395d89b41146105015780639a7a23d61461052b578063a457c2d71461055357610203565b80634a62bb651161018f57806370a082311161015e57806370a0823114610431578063715018a61461046d578063751039fc146104835780637571336a1461049957806389291a8f146104c157610203565b80634a62bb651461038b57806352f7c988146103b5578063583e0568146103dd5780636ddd17131461040757610203565b8063311028af116101cb578063311028af146102d3578063313ce567146102fd57806334848b9a14610327578063395093511461034f57610203565b806306fdde0314610207578063095ea7b31461023157806318160ddd1461026d57806323b872dd1461029757610203565b3661020357005b5f80fd5b348015610212575f80fd5b5061021b6107cb565b604051610228919061245b565b60405180910390f35b34801561023c575f80fd5b506102576004803603810190610252919061250c565b61085b565b6040516102649190612564565b60405180910390f35b348015610278575f80fd5b5061028161087d565b60405161028e919061258c565b60405180910390f35b3480156102a2575f80fd5b506102bd60048036038101906102b891906125a5565b610886565b6040516102ca9190612564565b60405180910390f35b3480156102de575f80fd5b506102e76108b4565b6040516102f4919061258c565b60405180910390f35b348015610308575f80fd5b506103116108ba565b60405161031e9190612610565b60405180910390f35b348015610332575f80fd5b5061034d60048036038101906103489190612629565b6108c2565b005b34801561035a575f80fd5b506103756004803603810190610370919061250c565b610997565b6040516103829190612564565b60405180910390f35b348015610396575f80fd5b5061039f6109cd565b6040516103ac9190612564565b60405180910390f35b3480156103c0575f80fd5b506103db60048036038101906103d69190612679565b6109e0565b005b3480156103e8575f80fd5b506103f1610a4b565b6040516103fe9190612712565b60405180910390f35b348015610412575f80fd5b5061041b610a6f565b6040516104289190612564565b60405180910390f35b34801561043c575f80fd5b506104576004803603810190610452919061272b565b610a82565b604051610464919061258c565b60405180910390f35b348015610478575f80fd5b50610481610ac7565b005b34801561048e575f80fd5b50610497610ada565b005b3480156104a4575f80fd5b506104bf60048036038101906104ba9190612780565b610afe565b005b3480156104cc575f80fd5b506104d5610b5e565b005b3480156104e2575f80fd5b506104eb610c45565b6040516104f891906127cd565b60405180910390f35b34801561050c575f80fd5b50610515610c6d565b604051610522919061245b565b60405180910390f35b348015610536575f80fd5b50610551600480360381019061054c9190612780565b610cfd565b005b34801561055e575f80fd5b506105796004803603810190610574919061250c565b610da2565b6040516105869190612564565b60405180910390f35b34801561059a575f80fd5b506105b560048036038101906105b0919061250c565b610e17565b6040516105c29190612564565b60405180910390f35b3480156105d6575f80fd5b506105f160048036038101906105ec919061272b565b610e39565b005b3480156105fe575f80fd5b50610619600480360381019061061491906127e6565b610e84565b005b348015610626575f80fd5b50610641600480360381019061063c9190612780565b610ea9565b005b34801561064e575f80fd5b50610657610f57565b604051610664919061258c565b60405180910390f35b348015610678575f80fd5b50610681610f5d565b60405161068e919061258c565b60405180910390f35b3480156106a2575f80fd5b506106bd60048036038101906106b89190612811565b610f63565b6040516106ca919061258c565b60405180910390f35b3480156106de575f80fd5b506106e7610fe5565b6040516106f4919061258c565b60405180910390f35b348015610708575f80fd5b50610711610feb565b60405161071e919061258c565b60405180910390f35b348015610732575f80fd5b5061074d6004803603810190610748919061272b565b610ff1565b005b34801561075a575f80fd5b50610775600480360381019061077091906127e6565b611073565b005b348015610782575f80fd5b5061078b6110f1565b604051610798919061258c565b60405180910390f35b3480156107ac575f80fd5b506107b56110f7565b6040516107c29190612564565b60405180910390f35b6060600380546107da9061287c565b80601f01602080910402602001604051908101604052809291908181526020018280546108069061287c565b80156108515780601f1061082857610100808354040283529160200191610851565b820191905f5260205f20905b81548152906001019060200180831161083457829003601f168201915b5050505050905090565b5f80610865611109565b9050610872818585611110565b600191505092915050565b5f600254905090565b5f80610890611109565b905061089d8582856112d3565b6108a885858561135e565b60019150509392505050565b60085481565b5f6012905090565b6108ca611cd4565b600f5f9054906101000a900460ff1615610919576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610910906128f6565b60405180910390fd5b826011819055508260128190555081600854610935919061296e565b60098190555081600854610949919061296e565b600a8190555080600e8190555043600c819055506001600f60016101000a81548160ff0219169083151502179055506001600f5f6101000a81548160ff021916908315150217905550505050565b5f806109a1611109565b90506109c28185856109b38589610f63565b6109bd919061299e565b611110565b600191505092915050565b600f60029054906101000a900460ff1681565b6109e8611cd4565b603282111580156109fa575060328111155b610a39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3090612a1b565b60405180910390fd5b81601181905550806012819055505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600f60019054906101000a900460ff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610acf611cd4565b610ad85f611d52565b565b610ae2611cd4565b5f600f60026101000a81548160ff021916908315150217905550565b610b06611cd4565b8060145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b9e611109565b73ffffffffffffffffffffffffffffffffffffffff1614610bbd575f80fd5b5f4711610bff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf690612a83565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610c42573d5f803e3d5ffd5b50565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610c7c9061287c565b80601f0160208091040260200160405190810160405280929190818152602001828054610ca89061287c565b8015610cf35780601f10610cca57610100808354040283529160200191610cf3565b820191905f5260205f20905b815481529060010190602001808311610cd657829003601f168201915b5050505050905090565b610d05611cd4565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8b90612b11565b60405180910390fd5b610d9e8282611e15565b5050565b5f80610dac611109565b90505f610db98286610f63565b905083811015610dfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df590612b9f565b60405180910390fd5b610e0b8286868403611110565b60019250505092915050565b5f80610e21611109565b9050610e2e81858561135e565b600191505092915050565b610e41611cd4565b8060075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610e8c611cd4565b670de0b6b3a764000081610ea09190612bbd565b600b8190555050565b610eb1611cd4565b8060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051610f4b9190612564565b60405180910390a25050565b60095481565b60125481565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60115481565b600b5481565b610ff9611cd4565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611067576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105e90612c6e565b60405180910390fd5b61107081611d52565b50565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110b3611109565b73ffffffffffffffffffffffffffffffffffffffff16146110d2575f80fd5b6110ee670de0b6b3a7640000826110e99190612bbd565b611eb3565b50565b600a5481565b600f5f9054906101000a900460ff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361117e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117590612cfc565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e390612d8a565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112c6919061258c565b60405180910390a3505050565b5f6112de8484610f63565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611358578181101561134a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134190612df2565b60405180910390fd5b6113578484848403611110565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c390612e80565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361143a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143190612f0e565b60405180910390fd5b5f81036114515761144c83835f612107565b611ccf565b5f439050600f60029054906101000a900460ff161561198b57600e54600c5461147a919061299e565b8111156114bc576028601181905550602860128190555060c86008546114a0919061296e565b60098190555060646008546114b5919061296e565b600a819055505b6114c4610c45565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156115325750611502610c45565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561156a57505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156115a4575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156115bd5750600760149054906101000a900460ff16155b1561198a57600f5f9054906101000a900460ff166116b05760135f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611670575060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b6116af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a690612f76565b60405180910390fd5b5b60155f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16801561174d575060145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156117f457600954821115611797576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178e90613004565b60405180910390fd5b600a546117a384610a82565b836117ae919061299e565b11156117ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e69061306c565b60405180910390fd5b611989565b60155f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611891575060145f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156118e0576009548211156118db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d2906130fa565b60405180910390fd5b611988565b60145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1661198757600a5461193a84610a82565b83611945919061299e565b1115611986576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197d9061306c565b60405180910390fd5b5b5b5b5b5b5f61199530610a82565b90505f600b5482101590508080156119b95750600f60019054906101000a900460ff165b80156119d25750600760149054906101000a900460ff16155b8015611a25575060155f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611a78575060135f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611acb575060135f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611ae85750600360105f8581526020019081526020015f2054105b15611b4f576001600760146101000a81548160ff021916908315150217905550611b10612373565b60105f8481526020019081526020015f205f8154611b2d90613118565b919050819055505f600760146101000a81548160ff0219169083151502179055505b5f600760149054906101000a900460ff1615905060135f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611bfe575060135f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15611c07575f90505b5f8115611cbe5760155f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615611c7e57606460125487611c6d9190612bbd565b611c77919061296e565b9050611c9b565b606460115487611c8e9190612bbd565b611c98919061296e565b90505b5f811115611caf57611cae883083612107565b5b8086611cbb919061315f565b95505b611cc9888888612107565b50505050505b505050565b611cdc611109565b73ffffffffffffffffffffffffffffffffffffffff16611cfa610c45565b73ffffffffffffffffffffffffffffffffffffffff1614611d50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d47906131dc565b60405180910390fd5b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8060155f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f600267ffffffffffffffff811115611ecf57611ece6131fa565b5b604051908082528060200260200182016040528015611efd5781602001602082028036833780820191505090505b50905030815f81518110611f1457611f13613227565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611fb7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611fdb9190613268565b81600181518110611fef57611fee613227565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612054307f000000000000000000000000000000000000000000000000000000000000000084611110565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8460075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016120d6959493929190613383565b5f604051808303815f87803b1580156120ed575f80fd5b505af11580156120ff573d5f803e3d5ffd5b505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612175576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161216c90612e80565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036121e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121da90612f0e565b60405180910390fd5b6121ee8383836123c7565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015612271576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122689061344b565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161235a919061258c565b60405180910390a361236d8484846123cc565b50505050565b5f61237d30610a82565b90505f80820361238e5750506123c5565b6064600b5461239d9190612bbd565b8211156123b6576064600b546123b39190612bbd565b91505b8190506123c281611eb3565b50505b565b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156124085780820151818401526020810190506123ed565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61242d826123d1565b61243781856123db565b93506124478185602086016123eb565b61245081612413565b840191505092915050565b5f6020820190508181035f8301526124738184612423565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6124a88261247f565b9050919050565b6124b88161249e565b81146124c2575f80fd5b50565b5f813590506124d3816124af565b92915050565b5f819050919050565b6124eb816124d9565b81146124f5575f80fd5b50565b5f81359050612506816124e2565b92915050565b5f80604083850312156125225761252161247b565b5b5f61252f858286016124c5565b9250506020612540858286016124f8565b9150509250929050565b5f8115159050919050565b61255e8161254a565b82525050565b5f6020820190506125775f830184612555565b92915050565b612586816124d9565b82525050565b5f60208201905061259f5f83018461257d565b92915050565b5f805f606084860312156125bc576125bb61247b565b5b5f6125c9868287016124c5565b93505060206125da868287016124c5565b92505060406125eb868287016124f8565b9150509250925092565b5f60ff82169050919050565b61260a816125f5565b82525050565b5f6020820190506126235f830184612601565b92915050565b5f805f606084860312156126405761263f61247b565b5b5f61264d868287016124f8565b935050602061265e868287016124f8565b925050604061266f868287016124f8565b9150509250925092565b5f806040838503121561268f5761268e61247b565b5b5f61269c858286016124f8565b92505060206126ad858286016124f8565b9150509250929050565b5f819050919050565b5f6126da6126d56126d08461247f565b6126b7565b61247f565b9050919050565b5f6126eb826126c0565b9050919050565b5f6126fc826126e1565b9050919050565b61270c816126f2565b82525050565b5f6020820190506127255f830184612703565b92915050565b5f602082840312156127405761273f61247b565b5b5f61274d848285016124c5565b91505092915050565b61275f8161254a565b8114612769575f80fd5b50565b5f8135905061277a81612756565b92915050565b5f80604083850312156127965761279561247b565b5b5f6127a3858286016124c5565b92505060206127b48582860161276c565b9150509250929050565b6127c78161249e565b82525050565b5f6020820190506127e05f8301846127be565b92915050565b5f602082840312156127fb576127fa61247b565b5b5f612808848285016124f8565b91505092915050565b5f80604083850312156128275761282661247b565b5b5f612834858286016124c5565b9250506020612845858286016124c5565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061289357607f821691505b6020821081036128a6576128a561284f565b5b50919050565b7f54726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6128e06017836123db565b91506128eb826128ac565b602082019050919050565b5f6020820190508181035f83015261290d816128d4565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612978826124d9565b9150612983836124d9565b92508261299357612992612914565b5b828204905092915050565b5f6129a8826124d9565b91506129b3836124d9565b92508282019050808211156129cb576129ca612941565b5b92915050565b7f466565732063616e6e6f742065786365656420333025000000000000000000005f82015250565b5f612a056016836123db565b9150612a10826129d1565b602082019050919050565b5f6020820190508181035f830152612a32816129f9565b9050919050565b7f546f6b656e3a206e6f2045544820746f20636c656172000000000000000000005f82015250565b5f612a6d6016836123db565b9150612a7882612a39565b602082019050919050565b5f6020820190508181035f830152612a9a81612a61565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f612afb6039836123db565b9150612b0682612aa1565b604082019050919050565b5f6020820190508181035f830152612b2881612aef565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f612b896025836123db565b9150612b9482612b2f565b604082019050919050565b5f6020820190508181035f830152612bb681612b7d565b9050919050565b5f612bc7826124d9565b9150612bd2836124d9565b9250828202612be0816124d9565b91508282048414831517612bf757612bf6612941565b5b5092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612c586026836123db565b9150612c6382612bfe565b604082019050919050565b5f6020820190508181035f830152612c8581612c4c565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612ce66024836123db565b9150612cf182612c8c565b604082019050919050565b5f6020820190508181035f830152612d1381612cda565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612d746022836123db565b9150612d7f82612d1a565b604082019050919050565b5f6020820190508181035f830152612da181612d68565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f612ddc601d836123db565b9150612de782612da8565b602082019050919050565b5f6020820190508181035f830152612e0981612dd0565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612e6a6025836123db565b9150612e7582612e10565b604082019050919050565b5f6020820190508181035f830152612e9781612e5e565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612ef86023836123db565b9150612f0382612e9e565b604082019050919050565b5f6020820190508181035f830152612f2581612eec565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f612f606016836123db565b9150612f6b82612f2c565b602082019050919050565b5f6020820190508181035f830152612f8d81612f54565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b5f612fee6035836123db565b9150612ff982612f94565b604082019050919050565b5f6020820190508181035f83015261301b81612fe2565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f6130566013836123db565b915061306182613022565b602082019050919050565b5f6020820190508181035f8301526130838161304a565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b5f6130e46036836123db565b91506130ef8261308a565b604082019050919050565b5f6020820190508181035f830152613111816130d8565b9050919050565b5f613122826124d9565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361315457613153612941565b5b600182019050919050565b5f613169826124d9565b9150613174836124d9565b925082820390508181111561318c5761318b612941565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6131c66020836123db565b91506131d182613192565b602082019050919050565b5f6020820190508181035f8301526131f3816131ba565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050613262816124af565b92915050565b5f6020828403121561327d5761327c61247b565b5b5f61328a84828501613254565b91505092915050565b5f819050919050565b5f6132b66132b16132ac84613293565b6126b7565b6124d9565b9050919050565b6132c68161329c565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6132fe8161249e565b82525050565b5f61330f83836132f5565b60208301905092915050565b5f602082019050919050565b5f613331826132cc565b61333b81856132d6565b9350613346836132e6565b805f5b8381101561337657815161335d8882613304565b97506133688361331b565b925050600181019050613349565b5085935050505092915050565b5f60a0820190506133965f83018861257d565b6133a360208301876132bd565b81810360408301526133b58186613327565b90506133c460608301856127be565b6133d1608083018461257d565b9695505050505050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f6134356026836123db565b9150613440826133db565b604082019050919050565b5f6020820190508181035f83015261346281613429565b905091905056fea2646970667358221220334f463d387e7da51e3989f24079da1f3219e9650568b65ababa8efeb9f6034064736f6c6343000818003300000000000000000000000000cf34c2906acab9555b72540dc794cd0c233e9a
Deployed Bytecode
0x6080604052600436106101fc575f3560e01c80638da5cb5b1161010c578063c8c8ebe41161009f578063e2f456051161006e578063e2f45605146106fd578063f2fde38b14610727578063f82d36e81461074f578063f8b45b0514610777578063ffb54a99146107a157610203565b8063c8c8ebe414610643578063cf9522fd1461066d578063dd62ed3e14610697578063dd854652146106d357610203565b8063a9059cbb116100db578063a9059cbb1461058f578063aacebbe3146105cb578063afa4f3b2146105f3578063c02466681461061b57610203565b80638da5cb5b146104d757806395d89b41146105015780639a7a23d61461052b578063a457c2d71461055357610203565b80634a62bb651161018f57806370a082311161015e57806370a0823114610431578063715018a61461046d578063751039fc146104835780637571336a1461049957806389291a8f146104c157610203565b80634a62bb651461038b57806352f7c988146103b5578063583e0568146103dd5780636ddd17131461040757610203565b8063311028af116101cb578063311028af146102d3578063313ce567146102fd57806334848b9a14610327578063395093511461034f57610203565b806306fdde0314610207578063095ea7b31461023157806318160ddd1461026d57806323b872dd1461029757610203565b3661020357005b5f80fd5b348015610212575f80fd5b5061021b6107cb565b604051610228919061245b565b60405180910390f35b34801561023c575f80fd5b506102576004803603810190610252919061250c565b61085b565b6040516102649190612564565b60405180910390f35b348015610278575f80fd5b5061028161087d565b60405161028e919061258c565b60405180910390f35b3480156102a2575f80fd5b506102bd60048036038101906102b891906125a5565b610886565b6040516102ca9190612564565b60405180910390f35b3480156102de575f80fd5b506102e76108b4565b6040516102f4919061258c565b60405180910390f35b348015610308575f80fd5b506103116108ba565b60405161031e9190612610565b60405180910390f35b348015610332575f80fd5b5061034d60048036038101906103489190612629565b6108c2565b005b34801561035a575f80fd5b506103756004803603810190610370919061250c565b610997565b6040516103829190612564565b60405180910390f35b348015610396575f80fd5b5061039f6109cd565b6040516103ac9190612564565b60405180910390f35b3480156103c0575f80fd5b506103db60048036038101906103d69190612679565b6109e0565b005b3480156103e8575f80fd5b506103f1610a4b565b6040516103fe9190612712565b60405180910390f35b348015610412575f80fd5b5061041b610a6f565b6040516104289190612564565b60405180910390f35b34801561043c575f80fd5b506104576004803603810190610452919061272b565b610a82565b604051610464919061258c565b60405180910390f35b348015610478575f80fd5b50610481610ac7565b005b34801561048e575f80fd5b50610497610ada565b005b3480156104a4575f80fd5b506104bf60048036038101906104ba9190612780565b610afe565b005b3480156104cc575f80fd5b506104d5610b5e565b005b3480156104e2575f80fd5b506104eb610c45565b6040516104f891906127cd565b60405180910390f35b34801561050c575f80fd5b50610515610c6d565b604051610522919061245b565b60405180910390f35b348015610536575f80fd5b50610551600480360381019061054c9190612780565b610cfd565b005b34801561055e575f80fd5b506105796004803603810190610574919061250c565b610da2565b6040516105869190612564565b60405180910390f35b34801561059a575f80fd5b506105b560048036038101906105b0919061250c565b610e17565b6040516105c29190612564565b60405180910390f35b3480156105d6575f80fd5b506105f160048036038101906105ec919061272b565b610e39565b005b3480156105fe575f80fd5b50610619600480360381019061061491906127e6565b610e84565b005b348015610626575f80fd5b50610641600480360381019061063c9190612780565b610ea9565b005b34801561064e575f80fd5b50610657610f57565b604051610664919061258c565b60405180910390f35b348015610678575f80fd5b50610681610f5d565b60405161068e919061258c565b60405180910390f35b3480156106a2575f80fd5b506106bd60048036038101906106b89190612811565b610f63565b6040516106ca919061258c565b60405180910390f35b3480156106de575f80fd5b506106e7610fe5565b6040516106f4919061258c565b60405180910390f35b348015610708575f80fd5b50610711610feb565b60405161071e919061258c565b60405180910390f35b348015610732575f80fd5b5061074d6004803603810190610748919061272b565b610ff1565b005b34801561075a575f80fd5b50610775600480360381019061077091906127e6565b611073565b005b348015610782575f80fd5b5061078b6110f1565b604051610798919061258c565b60405180910390f35b3480156107ac575f80fd5b506107b56110f7565b6040516107c29190612564565b60405180910390f35b6060600380546107da9061287c565b80601f01602080910402602001604051908101604052809291908181526020018280546108069061287c565b80156108515780601f1061082857610100808354040283529160200191610851565b820191905f5260205f20905b81548152906001019060200180831161083457829003601f168201915b5050505050905090565b5f80610865611109565b9050610872818585611110565b600191505092915050565b5f600254905090565b5f80610890611109565b905061089d8582856112d3565b6108a885858561135e565b60019150509392505050565b60085481565b5f6012905090565b6108ca611cd4565b600f5f9054906101000a900460ff1615610919576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610910906128f6565b60405180910390fd5b826011819055508260128190555081600854610935919061296e565b60098190555081600854610949919061296e565b600a8190555080600e8190555043600c819055506001600f60016101000a81548160ff0219169083151502179055506001600f5f6101000a81548160ff021916908315150217905550505050565b5f806109a1611109565b90506109c28185856109b38589610f63565b6109bd919061299e565b611110565b600191505092915050565b600f60029054906101000a900460ff1681565b6109e8611cd4565b603282111580156109fa575060328111155b610a39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3090612a1b565b60405180910390fd5b81601181905550806012819055505050565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b600f60019054906101000a900460ff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610acf611cd4565b610ad85f611d52565b565b610ae2611cd4565b5f600f60026101000a81548160ff021916908315150217905550565b610b06611cd4565b8060145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b9e611109565b73ffffffffffffffffffffffffffffffffffffffff1614610bbd575f80fd5b5f4711610bff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf690612a83565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610c42573d5f803e3d5ffd5b50565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610c7c9061287c565b80601f0160208091040260200160405190810160405280929190818152602001828054610ca89061287c565b8015610cf35780601f10610cca57610100808354040283529160200191610cf3565b820191905f5260205f20905b815481529060010190602001808311610cd657829003601f168201915b5050505050905090565b610d05611cd4565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8b90612b11565b60405180910390fd5b610d9e8282611e15565b5050565b5f80610dac611109565b90505f610db98286610f63565b905083811015610dfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df590612b9f565b60405180910390fd5b610e0b8286868403611110565b60019250505092915050565b5f80610e21611109565b9050610e2e81858561135e565b600191505092915050565b610e41611cd4565b8060075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610e8c611cd4565b670de0b6b3a764000081610ea09190612bbd565b600b8190555050565b610eb1611cd4565b8060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051610f4b9190612564565b60405180910390a25050565b60095481565b60125481565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60115481565b600b5481565b610ff9611cd4565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611067576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105e90612c6e565b60405180910390fd5b61107081611d52565b50565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110b3611109565b73ffffffffffffffffffffffffffffffffffffffff16146110d2575f80fd5b6110ee670de0b6b3a7640000826110e99190612bbd565b611eb3565b50565b600a5481565b600f5f9054906101000a900460ff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361117e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117590612cfc565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e390612d8a565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112c6919061258c565b60405180910390a3505050565b5f6112de8484610f63565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611358578181101561134a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134190612df2565b60405180910390fd5b6113578484848403611110565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c390612e80565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361143a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143190612f0e565b60405180910390fd5b5f81036114515761144c83835f612107565b611ccf565b5f439050600f60029054906101000a900460ff161561198b57600e54600c5461147a919061299e565b8111156114bc576028601181905550602860128190555060c86008546114a0919061296e565b60098190555060646008546114b5919061296e565b600a819055505b6114c4610c45565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156115325750611502610c45565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561156a57505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156115a4575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156115bd5750600760149054906101000a900460ff16155b1561198a57600f5f9054906101000a900460ff166116b05760135f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611670575060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b6116af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a690612f76565b60405180910390fd5b5b60155f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16801561174d575060145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156117f457600954821115611797576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178e90613004565b60405180910390fd5b600a546117a384610a82565b836117ae919061299e565b11156117ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e69061306c565b60405180910390fd5b611989565b60155f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611891575060145f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156118e0576009548211156118db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d2906130fa565b60405180910390fd5b611988565b60145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1661198757600a5461193a84610a82565b83611945919061299e565b1115611986576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197d9061306c565b60405180910390fd5b5b5b5b5b5b5f61199530610a82565b90505f600b5482101590508080156119b95750600f60019054906101000a900460ff165b80156119d25750600760149054906101000a900460ff16155b8015611a25575060155f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611a78575060135f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611acb575060135f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611ae85750600360105f8581526020019081526020015f2054105b15611b4f576001600760146101000a81548160ff021916908315150217905550611b10612373565b60105f8481526020019081526020015f205f8154611b2d90613118565b919050819055505f600760146101000a81548160ff0219169083151502179055505b5f600760149054906101000a900460ff1615905060135f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611bfe575060135f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15611c07575f90505b5f8115611cbe5760155f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615611c7e57606460125487611c6d9190612bbd565b611c77919061296e565b9050611c9b565b606460115487611c8e9190612bbd565b611c98919061296e565b90505b5f811115611caf57611cae883083612107565b5b8086611cbb919061315f565b95505b611cc9888888612107565b50505050505b505050565b611cdc611109565b73ffffffffffffffffffffffffffffffffffffffff16611cfa610c45565b73ffffffffffffffffffffffffffffffffffffffff1614611d50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d47906131dc565b60405180910390fd5b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8060155f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f600267ffffffffffffffff811115611ecf57611ece6131fa565b5b604051908082528060200260200182016040528015611efd5781602001602082028036833780820191505090505b50905030815f81518110611f1457611f13613227565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611fb7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611fdb9190613268565b81600181518110611fef57611fee613227565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612054307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611110565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8460075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016120d6959493929190613383565b5f604051808303815f87803b1580156120ed575f80fd5b505af11580156120ff573d5f803e3d5ffd5b505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612175576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161216c90612e80565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036121e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121da90612f0e565b60405180910390fd5b6121ee8383836123c7565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015612271576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122689061344b565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161235a919061258c565b60405180910390a361236d8484846123cc565b50505050565b5f61237d30610a82565b90505f80820361238e5750506123c5565b6064600b5461239d9190612bbd565b8211156123b6576064600b546123b39190612bbd565b91505b8190506123c281611eb3565b50505b565b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156124085780820151818401526020810190506123ed565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61242d826123d1565b61243781856123db565b93506124478185602086016123eb565b61245081612413565b840191505092915050565b5f6020820190508181035f8301526124738184612423565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6124a88261247f565b9050919050565b6124b88161249e565b81146124c2575f80fd5b50565b5f813590506124d3816124af565b92915050565b5f819050919050565b6124eb816124d9565b81146124f5575f80fd5b50565b5f81359050612506816124e2565b92915050565b5f80604083850312156125225761252161247b565b5b5f61252f858286016124c5565b9250506020612540858286016124f8565b9150509250929050565b5f8115159050919050565b61255e8161254a565b82525050565b5f6020820190506125775f830184612555565b92915050565b612586816124d9565b82525050565b5f60208201905061259f5f83018461257d565b92915050565b5f805f606084860312156125bc576125bb61247b565b5b5f6125c9868287016124c5565b93505060206125da868287016124c5565b92505060406125eb868287016124f8565b9150509250925092565b5f60ff82169050919050565b61260a816125f5565b82525050565b5f6020820190506126235f830184612601565b92915050565b5f805f606084860312156126405761263f61247b565b5b5f61264d868287016124f8565b935050602061265e868287016124f8565b925050604061266f868287016124f8565b9150509250925092565b5f806040838503121561268f5761268e61247b565b5b5f61269c858286016124f8565b92505060206126ad858286016124f8565b9150509250929050565b5f819050919050565b5f6126da6126d56126d08461247f565b6126b7565b61247f565b9050919050565b5f6126eb826126c0565b9050919050565b5f6126fc826126e1565b9050919050565b61270c816126f2565b82525050565b5f6020820190506127255f830184612703565b92915050565b5f602082840312156127405761273f61247b565b5b5f61274d848285016124c5565b91505092915050565b61275f8161254a565b8114612769575f80fd5b50565b5f8135905061277a81612756565b92915050565b5f80604083850312156127965761279561247b565b5b5f6127a3858286016124c5565b92505060206127b48582860161276c565b9150509250929050565b6127c78161249e565b82525050565b5f6020820190506127e05f8301846127be565b92915050565b5f602082840312156127fb576127fa61247b565b5b5f612808848285016124f8565b91505092915050565b5f80604083850312156128275761282661247b565b5b5f612834858286016124c5565b9250506020612845858286016124c5565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061289357607f821691505b6020821081036128a6576128a561284f565b5b50919050565b7f54726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6128e06017836123db565b91506128eb826128ac565b602082019050919050565b5f6020820190508181035f83015261290d816128d4565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612978826124d9565b9150612983836124d9565b92508261299357612992612914565b5b828204905092915050565b5f6129a8826124d9565b91506129b3836124d9565b92508282019050808211156129cb576129ca612941565b5b92915050565b7f466565732063616e6e6f742065786365656420333025000000000000000000005f82015250565b5f612a056016836123db565b9150612a10826129d1565b602082019050919050565b5f6020820190508181035f830152612a32816129f9565b9050919050565b7f546f6b656e3a206e6f2045544820746f20636c656172000000000000000000005f82015250565b5f612a6d6016836123db565b9150612a7882612a39565b602082019050919050565b5f6020820190508181035f830152612a9a81612a61565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f612afb6039836123db565b9150612b0682612aa1565b604082019050919050565b5f6020820190508181035f830152612b2881612aef565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f612b896025836123db565b9150612b9482612b2f565b604082019050919050565b5f6020820190508181035f830152612bb681612b7d565b9050919050565b5f612bc7826124d9565b9150612bd2836124d9565b9250828202612be0816124d9565b91508282048414831517612bf757612bf6612941565b5b5092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612c586026836123db565b9150612c6382612bfe565b604082019050919050565b5f6020820190508181035f830152612c8581612c4c565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612ce66024836123db565b9150612cf182612c8c565b604082019050919050565b5f6020820190508181035f830152612d1381612cda565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612d746022836123db565b9150612d7f82612d1a565b604082019050919050565b5f6020820190508181035f830152612da181612d68565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f612ddc601d836123db565b9150612de782612da8565b602082019050919050565b5f6020820190508181035f830152612e0981612dd0565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612e6a6025836123db565b9150612e7582612e10565b604082019050919050565b5f6020820190508181035f830152612e9781612e5e565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612ef86023836123db565b9150612f0382612e9e565b604082019050919050565b5f6020820190508181035f830152612f2581612eec565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f612f606016836123db565b9150612f6b82612f2c565b602082019050919050565b5f6020820190508181035f830152612f8d81612f54565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b5f612fee6035836123db565b9150612ff982612f94565b604082019050919050565b5f6020820190508181035f83015261301b81612fe2565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f6130566013836123db565b915061306182613022565b602082019050919050565b5f6020820190508181035f8301526130838161304a565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b5f6130e46036836123db565b91506130ef8261308a565b604082019050919050565b5f6020820190508181035f830152613111816130d8565b9050919050565b5f613122826124d9565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361315457613153612941565b5b600182019050919050565b5f613169826124d9565b9150613174836124d9565b925082820390508181111561318c5761318b612941565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6131c66020836123db565b91506131d182613192565b602082019050919050565b5f6020820190508181035f8301526131f3816131ba565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050613262816124af565b92915050565b5f6020828403121561327d5761327c61247b565b5b5f61328a84828501613254565b91505092915050565b5f819050919050565b5f6132b66132b16132ac84613293565b6126b7565b6124d9565b9050919050565b6132c68161329c565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6132fe8161249e565b82525050565b5f61330f83836132f5565b60208301905092915050565b5f602082019050919050565b5f613331826132cc565b61333b81856132d6565b9350613346836132e6565b805f5b8381101561337657815161335d8882613304565b97506133688361331b565b925050600181019050613349565b5085935050505092915050565b5f60a0820190506133965f83018861257d565b6133a360208301876132bd565b81810360408301526133b58186613327565b90506133c460608301856127be565b6133d1608083018461257d565b9695505050505050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f6134356026836123db565b9150613440826133db565b604082019050919050565b5f6020820190508181035f83015261346281613429565b905091905056fea2646970667358221220334f463d387e7da51e3989f24079da1f3219e9650568b65ababa8efeb9f6034064736f6c63430008180033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000000cf34c2906acab9555b72540dc794cd0c233e9a
-----Decoded View---------------
Arg [0] : wallet (address): 0x00cF34c2906AcaB9555B72540dC794CD0C233e9a
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000000cf34c2906acab9555b72540dc794cd0c233e9a
Deployed Bytecode Sourcemap
12242:8483:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7300:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8232:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7621:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8441:295;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12612:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7520:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14665:469;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8744:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13038:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19811:211;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12286:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13000:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7737:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6376:103;;;;;;;;;;;;;:::i;:::-;;19319:84;;;;;;;;;;;;;:::i;:::-;;15140:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19411:226;;;;;;;;;;;;;:::i;:::-;;6141:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7408:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15315:265;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8990:436;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7872:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20030:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20171:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15782:182;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12677:62;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13167:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8073:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13134:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12804:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6487:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19645:158;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12746:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12962:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7300:100;7354:13;7387:5;7380:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7300:100;:::o;8232:201::-;8315:4;8332:13;8348:12;:10;:12::i;:::-;8332:28;;8371:32;8380:5;8387:7;8396:6;8371:8;:32::i;:::-;8421:4;8414:11;;;8232:201;;;;:::o;7621:108::-;7682:7;7709:12;;7702:19;;7621:108;:::o;8441:295::-;8572:4;8589:15;8607:12;:10;:12::i;:::-;8589:30;;8630:38;8646:4;8652:7;8661:6;8630:15;:38::i;:::-;8679:27;8689:4;8695:2;8699:6;8679:9;:27::i;:::-;8724:4;8717:11;;;8441:295;;;;;:::o;12612:58::-;;;;:::o;7520:93::-;7578:5;7603:2;7596:9;;7520:93;:::o;14665:469::-;6100:13;:11;:13::i;:::-;14785:11:::1;;;;;;;;;;;14784:12;14776:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;14843:10;14834:6;:19;;;;14874:10;14864:7;:20;;;;14939:7;14918:18;;:28;;;;:::i;:::-;14895:20;:51;;;;14990:7;14969:18;;:28;;;;:::i;:::-;14957:9;:40;;;;15021:11;15008:10;:24;;;;15056:12;15043:10;:25;;;;15093:4;15079:11;;:18;;;;;;;;;;;;;;;;;;15122:4;15108:11;;:18;;;;;;;;;;;;;;;;;;14665:469:::0;;;:::o;8744:238::-;8832:4;8849:13;8865:12;:10;:12::i;:::-;8849:28;;8888:64;8897:5;8904:7;8941:10;8913:25;8923:5;8930:7;8913:9;:25::i;:::-;:38;;;;:::i;:::-;8888:8;:64::i;:::-;8970:4;8963:11;;;8744:238;;;;:::o;13038:33::-;;;;;;;;;;;;;:::o;19811:211::-;6100:13;:11;:13::i;:::-;19911:2:::1;19900:7;:13;;:31;;;;;19929:2;19917:8;:14;;19900:31;19892:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;19978:7;19969:6;:16;;;;20006:8;19996:7;:18;;;;19811:211:::0;;:::o;12286:52::-;;;:::o;13000:31::-;;;;;;;;;;;;;:::o;7737:127::-;7811:7;7838:9;:18;7848:7;7838:18;;;;;;;;;;;;;;;;7831:25;;7737:127;;;:::o;6376:103::-;6100:13;:11;:13::i;:::-;6441:30:::1;6468:1;6441:18;:30::i;:::-;6376:103::o:0;19319:84::-;6100:13;:11;:13::i;:::-;19390:5:::1;19373:14;;:22;;;;;;;;;;;;;;;;;;19319:84::o:0;15140:167::-;6100:13;:11;:13::i;:::-;15295:4:::1;15253:31;:39;15285:6;15253:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;15140:167:::0;;:::o;19411:226::-;19480:15;;;;;;;;;;;19464:31;;:12;:10;:12::i;:::-;:31;;;19456:40;;;;;;19539:1;19515:21;:25;19507:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;19586:10;19578:28;;:51;19607:21;19578:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19411:226::o;6141:87::-;6187:7;6214:6;;;;;;;;;;;6207:13;;6141:87;:::o;7408:104::-;7464:13;7497:7;7490:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7408:104;:::o;15315:265::-;6100:13;:11;:13::i;:::-;15445::::1;;;;;;;;;;;15437:21;;:4;:21;;::::0;15429:91:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;15531:41;15560:4;15566:5;15531:28;:41::i;:::-;15315:265:::0;;:::o;8990:436::-;9083:4;9100:13;9116:12;:10;:12::i;:::-;9100:28;;9139:24;9166:25;9176:5;9183:7;9166:9;:25::i;:::-;9139:52;;9230:15;9210:16;:35;;9202:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;9323:60;9332:5;9339:7;9367:15;9348:16;:34;9323:8;:60::i;:::-;9414:4;9407:11;;;;8990:436;;;;:::o;7872:193::-;7951:4;7968:13;7984:12;:10;:12::i;:::-;7968:28;;8007;8017:5;8024:2;8028:6;8007:9;:28::i;:::-;8053:4;8046:11;;;7872:193;;;;:::o;20030:133::-;6100:13;:11;:13::i;:::-;20137:18:::1;20119:15;;:36;;;;;;;;;;;;;;;;;;20030:133:::0;:::o;20171:127::-;6100:13;:11;:13::i;:::-;20281:8:::1;20270:7;:20;;;;:::i;:::-;20249:18;:41;;;;20171:127:::0;:::o;15782:182::-;6100:13;:11;:13::i;:::-;15898:8:::1;15867:19;:28;15887:7;15867:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;15938:7;15922:34;;;15947:8;15922:34;;;;;;:::i;:::-;;;;;;;;15782:182:::0;;:::o;12677:62::-;;;;:::o;13167:27::-;;;;:::o;8073:151::-;8162:7;8189:11;:18;8201:5;8189:18;;;;;;;;;;;;;;;:27;8208:7;8189:27;;;;;;;;;;;;;;;;8182:34;;8073:151;;;;:::o;13134:26::-;;;;:::o;12804:50::-;;;;:::o;6487:201::-;6100:13;:11;:13::i;:::-;6596:1:::1;6576:22;;:8;:22;;::::0;6568:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;6652:28;6671:8;6652:18;:28::i;:::-;6487:201:::0;:::o;19645:158::-;19731:15;;;;;;;;;;;19715:31;;:12;:10;:12::i;:::-;:31;;;19707:40;;;;;;19758:37;19785:8;19775:6;:19;;;;:::i;:::-;19758:16;:37::i;:::-;19645:158;:::o;12746:51::-;;;;:::o;12962:31::-;;;;;;;;;;;;;:::o;96:98::-;149:7;176:10;169:17;;96:98;:::o;11129:380::-;11282:1;11265:19;;:5;:19;;;11257:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11363:1;11344:21;;:7;:21;;;11336:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11447:6;11417:11;:18;11429:5;11417:18;;;;;;;;;;;;;;;:27;11436:7;11417:27;;;;;;;;;;;;;;;:36;;;;11485:7;11469:32;;11478:5;11469:32;;;11494:6;11469:32;;;;;;:::i;:::-;;;;;;;;11129:380;;;:::o;11517:453::-;11652:24;11679:25;11689:5;11696:7;11679:9;:25::i;:::-;11652:52;;11739:17;11719:16;:37;11715:248;;11801:6;11781:16;:26;;11773:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11885:51;11894:5;11901:7;11929:6;11910:16;:25;11885:8;:51::i;:::-;11715:248;11641:329;11517:453;;;:::o;15972:2850::-;16088:1;16072:18;;:4;:18;;;16064:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16165:1;16151:16;;:2;:16;;;16143:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;16234:1;16224:6;:11;16220:93;;16252:28;16268:4;16274:2;16278:1;16252:15;:28::i;:::-;16295:7;;16220:93;16325:16;16344:12;16325:31;;16381:14;;;;;;;;;;;16377:1416;;;16449:10;;16436;;:23;;;;:::i;:::-;16424:8;:36;16421:294;;;16517:2;16508:6;:11;;;;16554:2;16544:7;:12;;;;16627:3;16606:18;;:24;;;;:::i;:::-;16583:20;:47;;;;16688:3;16667:18;;:24;;;;:::i;:::-;16655:9;:36;;;;16421:294;16749:7;:5;:7::i;:::-;16741:15;;:4;:15;;;;:32;;;;;16766:7;:5;:7::i;:::-;16760:13;;:2;:13;;;;16741:32;:52;;;;;16791:1;16777:16;;:2;:16;;;;16741:52;:77;;;;;16811:6;16797:21;;:2;:21;;;;16741:77;:90;;;;;16823:8;;;;;;;;;;;16822:9;16741:90;16737:1043;;;16859:11;;;;;;;;;;;16854:148;;16903:19;:25;16923:4;16903:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;16932:19;:23;16952:2;16932:23;;;;;;;;;;;;;;;;;;;;;;;;;16903:52;16895:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;16854:148;17026:25;:31;17052:4;17026:31;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;17062:31;:35;17094:2;17062:35;;;;;;;;;;;;;;;;;;;;;;;;;17061:36;17026:71;17022:743;;;17158:20;;17148:6;:30;;17140:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;17293:9;;17276:13;17286:2;17276:9;:13::i;:::-;17267:6;:22;;;;:::i;:::-;:35;;17259:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17022:743;;;17375:25;:29;17401:2;17375:29;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;17409:31;:37;17441:4;17409:37;;;;;;;;;;;;;;;;;;;;;;;;;17408:38;17375:71;17371:394;;;17489:20;;17479:6;:30;;17471:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;17371:394;;;17618:31;:35;17650:2;17618:35;;;;;;;;;;;;;;;;;;;;;;;;;17613:152;;17712:9;;17695:13;17705:2;17695:9;:13::i;:::-;17686:6;:22;;;;:::i;:::-;:35;;17678:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17613:152;17371:394;17022:743;16737:1043;16377:1416;17805:28;17836:24;17854:4;17836:9;:24::i;:::-;17805:55;;17873:12;17912:18;;17888:20;:42;;17873:57;;17947:7;:22;;;;;17958:11;;;;;;;;;;;17947:22;:35;;;;;17974:8;;;;;;;;;;;17973:9;17947:35;:71;;;;;17987:25;:31;18013:4;17987:31;;;;;;;;;;;;;;;;;;;;;;;;;17986:32;17947:71;:101;;;;;18023:19;:25;18043:4;18023:25;;;;;;;;;;;;;;;;;;;;;;;;;18022:26;17947:101;:129;;;;;18053:19;:23;18073:2;18053:23;;;;;;;;;;;;;;;;;;;;;;;;;18052:24;17947:129;:160;;;;;18105:1;18081:11;:21;18093:8;18081:21;;;;;;;;;;;;:25;17947:160;17943:302;;;18135:4;18124:8;;:15;;;;;;;;;;;;;;;;;;18154:10;:8;:10::i;:::-;18181:11;:21;18193:8;18181:21;;;;;;;;;;;;18179:23;;;;;:::i;:::-;;;;;;;;18228:5;18217:8;;:16;;;;;;;;;;;;;;;;;;17943:302;18257:12;18273:8;;;;;;;;;;;18272:9;18257:24;;18298:19;:25;18318:4;18298:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;18327:19;:23;18347:2;18327:23;;;;;;;;;;;;;;;;;;;;;;;;;18298:52;18294:100;;;18377:5;18367:15;;18294:100;18406:12;18439:7;18435:336;;;18467:25;:29;18493:2;18467:29;;;;;;;;;;;;;;;;;;;;;;;;;18463:181;;;18543:3;18533:7;;18524:6;:16;;;;:::i;:::-;:22;;;;:::i;:::-;18517:29;;18463:181;;;18625:3;18616:6;;18607;:15;;;;:::i;:::-;:21;;;;:::i;:::-;18600:28;;18463:181;18667:1;18660:4;:8;18656:83;;;18685:42;18701:4;18715;18722;18685:15;:42::i;:::-;18656:83;18759:4;18749:14;;;;;:::i;:::-;;;18435:336;18781:33;18797:4;18803:2;18807:6;18781:15;:33::i;:::-;16051:2771;;;;;15972:2850;;;;:::o;6236:132::-;6311:12;:10;:12::i;:::-;6300:23;;:7;:5;:7::i;:::-;:23;;;6292:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6236:132::o;6696:191::-;6770:16;6789:6;;;;;;;;;;;6770:25;;6815:8;6806:6;;:17;;;;;;;;;;;;;;;;;;6870:8;6839:40;;6860:8;6839:40;;;;;;;;;;;;6759:128;6696:191;:::o;15588:186::-;15705:5;15671:25;:31;15697:4;15671:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;15760:5;15726:40;;15754:4;15726:40;;;;;;;;;;;;15588:186;;:::o;18830:482::-;18898:21;18936:1;18922:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18898:40;;18967:4;18949;18954:1;18949:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;18993:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18983:4;18988:1;18983:7;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;;;;;;19029:63;19046:4;19061:16;19080:11;19029:8;:63::i;:::-;19105:16;:67;;;19187:11;19213:1;19229:4;19248:15;;;;;;;;;;;19278;19105:199;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18885:427;18830:482;:::o;9434:675::-;9581:1;9565:18;;:4;:18;;;9557:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9658:1;9644:16;;:2;:16;;;9636:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9713:38;9734:4;9740:2;9744:6;9713:20;:38::i;:::-;9764:19;9786:9;:15;9796:4;9786:15;;;;;;;;;;;;;;;;9764:37;;9835:6;9820:11;:21;;9812:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;9952:6;9938:11;:20;9920:9;:15;9930:4;9920:15;;;;;;;;;;;;;;;:38;;;;9990:6;9973:9;:13;9983:2;9973:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;10040:2;10025:26;;10034:4;10025:26;;;10044:6;10025:26;;;;;;:::i;:::-;;;;;;;;10064:37;10084:4;10090:2;10094:6;10064:19;:37::i;:::-;9546:563;9434:675;;;:::o;20308:414::-;20347:23;20373:24;20391:4;20373:9;:24::i;:::-;20347:50;;20408:20;20464:1;20445:15;:20;20441:59;;20482:7;;;;20441:59;20555:3;20534:18;;:24;;;;:::i;:::-;20516:15;:42;20512:117;;;20614:3;20593:18;;:24;;;;:::i;:::-;20575:42;;20512:117;20656:15;20641:30;;20682;20699:12;20682:16;:30::i;:::-;20336:386;;20308:414;:::o;11978:125::-;;;;:::o;12111:124::-;;;;:::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;1430:117::-;1539:1;1536;1529: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:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:619::-;4930:6;4938;4946;4995:2;4983:9;4974:7;4970:23;4966:32;4963:119;;;5001:79;;:::i;:::-;4963:119;5121:1;5146:53;5191:7;5182:6;5171:9;5167:22;5146:53;:::i;:::-;5136:63;;5092:117;5248:2;5274:53;5319:7;5310:6;5299:9;5295:22;5274:53;:::i;:::-;5264:63;;5219:118;5376:2;5402:53;5447:7;5438:6;5427:9;5423:22;5402:53;:::i;:::-;5392:63;;5347:118;4853:619;;;;;:::o;5478:474::-;5546:6;5554;5603:2;5591:9;5582:7;5578:23;5574:32;5571:119;;;5609:79;;:::i;:::-;5571:119;5729:1;5754:53;5799:7;5790:6;5779:9;5775:22;5754:53;:::i;:::-;5744:63;;5700:117;5856:2;5882:53;5927:7;5918:6;5907:9;5903:22;5882:53;:::i;:::-;5872:63;;5827:118;5478:474;;;;;:::o;5958:60::-;5986:3;6007:5;6000:12;;5958:60;;;:::o;6024:142::-;6074:9;6107:53;6125:34;6134:24;6152:5;6134:24;:::i;:::-;6125:34;:::i;:::-;6107:53;:::i;:::-;6094:66;;6024:142;;;:::o;6172:126::-;6222:9;6255:37;6286:5;6255:37;:::i;:::-;6242:50;;6172:126;;;:::o;6304:151::-;6379:9;6412:37;6443:5;6412:37;:::i;:::-;6399:50;;6304:151;;;:::o;6461:181::-;6573:62;6629:5;6573:62;:::i;:::-;6568:3;6561:75;6461:181;;:::o;6648:272::-;6766:4;6804:2;6793:9;6789:18;6781:26;;6817:96;6910:1;6899:9;6895:17;6886:6;6817:96;:::i;:::-;6648:272;;;;:::o;6926:329::-;6985:6;7034:2;7022:9;7013:7;7009:23;7005:32;7002:119;;;7040:79;;:::i;:::-;7002:119;7160:1;7185:53;7230:7;7221:6;7210:9;7206:22;7185:53;:::i;:::-;7175:63;;7131:117;6926:329;;;;:::o;7261:116::-;7331:21;7346:5;7331:21;:::i;:::-;7324:5;7321:32;7311:60;;7367:1;7364;7357:12;7311:60;7261:116;:::o;7383:133::-;7426:5;7464:6;7451:20;7442:29;;7480:30;7504:5;7480:30;:::i;:::-;7383:133;;;;:::o;7522:468::-;7587:6;7595;7644:2;7632:9;7623:7;7619:23;7615:32;7612:119;;;7650:79;;:::i;:::-;7612:119;7770:1;7795:53;7840:7;7831:6;7820:9;7816:22;7795:53;:::i;:::-;7785:63;;7741:117;7897:2;7923:50;7965:7;7956:6;7945:9;7941:22;7923:50;:::i;:::-;7913:60;;7868:115;7522:468;;;;;:::o;7996:118::-;8083:24;8101:5;8083:24;:::i;:::-;8078:3;8071:37;7996:118;;:::o;8120:222::-;8213:4;8251:2;8240:9;8236:18;8228:26;;8264:71;8332:1;8321:9;8317:17;8308:6;8264:71;:::i;:::-;8120:222;;;;:::o;8348:329::-;8407:6;8456:2;8444:9;8435:7;8431:23;8427:32;8424:119;;;8462:79;;:::i;:::-;8424:119;8582:1;8607:53;8652:7;8643:6;8632:9;8628:22;8607:53;:::i;:::-;8597:63;;8553:117;8348:329;;;;:::o;8683:474::-;8751:6;8759;8808:2;8796:9;8787:7;8783:23;8779:32;8776:119;;;8814:79;;:::i;:::-;8776:119;8934:1;8959:53;9004:7;8995:6;8984:9;8980:22;8959:53;:::i;:::-;8949:63;;8905:117;9061:2;9087:53;9132:7;9123:6;9112:9;9108:22;9087:53;:::i;:::-;9077:63;;9032:118;8683:474;;;;;:::o;9163:180::-;9211:77;9208:1;9201:88;9308:4;9305:1;9298:15;9332:4;9329:1;9322:15;9349:320;9393:6;9430:1;9424:4;9420:12;9410:22;;9477:1;9471:4;9467:12;9498:18;9488:81;;9554:4;9546:6;9542:17;9532:27;;9488:81;9616:2;9608:6;9605:14;9585:18;9582:38;9579:84;;9635:18;;:::i;:::-;9579:84;9400:269;9349:320;;;:::o;9675:173::-;9815:25;9811:1;9803:6;9799:14;9792:49;9675:173;:::o;9854:366::-;9996:3;10017:67;10081:2;10076:3;10017:67;:::i;:::-;10010:74;;10093:93;10182:3;10093:93;:::i;:::-;10211:2;10206:3;10202:12;10195:19;;9854:366;;;:::o;10226:419::-;10392:4;10430:2;10419:9;10415:18;10407:26;;10479:9;10473:4;10469:20;10465:1;10454:9;10450:17;10443:47;10507:131;10633:4;10507:131;:::i;:::-;10499:139;;10226:419;;;:::o;10651:180::-;10699:77;10696:1;10689:88;10796:4;10793:1;10786:15;10820:4;10817:1;10810:15;10837:180;10885:77;10882:1;10875:88;10982:4;10979:1;10972:15;11006:4;11003:1;10996:15;11023:185;11063:1;11080:20;11098:1;11080:20;:::i;:::-;11075:25;;11114:20;11132:1;11114:20;:::i;:::-;11109:25;;11153:1;11143:35;;11158:18;;:::i;:::-;11143:35;11200:1;11197;11193:9;11188:14;;11023:185;;;;:::o;11214:191::-;11254:3;11273:20;11291:1;11273:20;:::i;:::-;11268:25;;11307:20;11325:1;11307:20;:::i;:::-;11302:25;;11350:1;11347;11343:9;11336:16;;11371:3;11368:1;11365:10;11362:36;;;11378:18;;:::i;:::-;11362:36;11214:191;;;;:::o;11411:172::-;11551:24;11547:1;11539:6;11535:14;11528:48;11411:172;:::o;11589:366::-;11731:3;11752:67;11816:2;11811:3;11752:67;:::i;:::-;11745:74;;11828:93;11917:3;11828:93;:::i;:::-;11946:2;11941:3;11937:12;11930:19;;11589:366;;;:::o;11961:419::-;12127:4;12165:2;12154:9;12150:18;12142:26;;12214:9;12208:4;12204:20;12200:1;12189:9;12185:17;12178:47;12242:131;12368:4;12242:131;:::i;:::-;12234:139;;11961:419;;;:::o;12386:172::-;12526:24;12522:1;12514:6;12510:14;12503:48;12386:172;:::o;12564:366::-;12706:3;12727:67;12791:2;12786:3;12727:67;:::i;:::-;12720:74;;12803:93;12892:3;12803:93;:::i;:::-;12921:2;12916:3;12912:12;12905:19;;12564:366;;;:::o;12936:419::-;13102:4;13140:2;13129:9;13125:18;13117:26;;13189:9;13183:4;13179:20;13175:1;13164:9;13160:17;13153:47;13217:131;13343:4;13217:131;:::i;:::-;13209:139;;12936:419;;;:::o;13361:244::-;13501:34;13497:1;13489:6;13485:14;13478:58;13570:27;13565:2;13557:6;13553:15;13546:52;13361:244;:::o;13611:366::-;13753:3;13774:67;13838:2;13833:3;13774:67;:::i;:::-;13767:74;;13850:93;13939:3;13850:93;:::i;:::-;13968:2;13963:3;13959:12;13952:19;;13611:366;;;:::o;13983:419::-;14149:4;14187:2;14176:9;14172:18;14164:26;;14236:9;14230:4;14226:20;14222:1;14211:9;14207:17;14200:47;14264:131;14390:4;14264:131;:::i;:::-;14256:139;;13983:419;;;:::o;14408:224::-;14548:34;14544:1;14536:6;14532:14;14525:58;14617:7;14612:2;14604:6;14600:15;14593:32;14408:224;:::o;14638:366::-;14780:3;14801:67;14865:2;14860:3;14801:67;:::i;:::-;14794:74;;14877:93;14966:3;14877:93;:::i;:::-;14995:2;14990:3;14986:12;14979:19;;14638:366;;;:::o;15010:419::-;15176:4;15214:2;15203:9;15199:18;15191:26;;15263:9;15257:4;15253:20;15249:1;15238:9;15234:17;15227:47;15291:131;15417:4;15291:131;:::i;:::-;15283:139;;15010:419;;;:::o;15435:410::-;15475:7;15498:20;15516:1;15498:20;:::i;:::-;15493:25;;15532:20;15550:1;15532:20;:::i;:::-;15527:25;;15587:1;15584;15580:9;15609:30;15627:11;15609:30;:::i;:::-;15598:41;;15788:1;15779:7;15775:15;15772:1;15769:22;15749:1;15742:9;15722:83;15699:139;;15818:18;;:::i;:::-;15699:139;15483:362;15435:410;;;;:::o;15851:225::-;15991:34;15987:1;15979:6;15975:14;15968:58;16060:8;16055:2;16047:6;16043:15;16036:33;15851:225;:::o;16082:366::-;16224:3;16245:67;16309:2;16304:3;16245:67;:::i;:::-;16238:74;;16321:93;16410:3;16321:93;:::i;:::-;16439:2;16434:3;16430:12;16423:19;;16082:366;;;:::o;16454:419::-;16620:4;16658:2;16647:9;16643:18;16635:26;;16707:9;16701:4;16697:20;16693:1;16682:9;16678:17;16671:47;16735:131;16861:4;16735:131;:::i;:::-;16727:139;;16454:419;;;:::o;16879:223::-;17019:34;17015:1;17007:6;17003:14;16996:58;17088:6;17083:2;17075:6;17071:15;17064:31;16879:223;:::o;17108:366::-;17250:3;17271:67;17335:2;17330:3;17271:67;:::i;:::-;17264:74;;17347:93;17436:3;17347:93;:::i;:::-;17465:2;17460:3;17456:12;17449:19;;17108:366;;;:::o;17480:419::-;17646:4;17684:2;17673:9;17669:18;17661:26;;17733:9;17727:4;17723:20;17719:1;17708:9;17704:17;17697:47;17761:131;17887:4;17761:131;:::i;:::-;17753:139;;17480:419;;;:::o;17905:221::-;18045:34;18041:1;18033:6;18029:14;18022:58;18114:4;18109:2;18101:6;18097:15;18090:29;17905:221;:::o;18132:366::-;18274:3;18295:67;18359:2;18354:3;18295:67;:::i;:::-;18288:74;;18371:93;18460:3;18371:93;:::i;:::-;18489:2;18484:3;18480:12;18473:19;;18132:366;;;:::o;18504:419::-;18670:4;18708:2;18697:9;18693:18;18685:26;;18757:9;18751:4;18747:20;18743:1;18732:9;18728:17;18721:47;18785:131;18911:4;18785:131;:::i;:::-;18777:139;;18504:419;;;:::o;18929:179::-;19069:31;19065:1;19057:6;19053:14;19046:55;18929:179;:::o;19114:366::-;19256:3;19277:67;19341:2;19336:3;19277:67;:::i;:::-;19270:74;;19353:93;19442:3;19353:93;:::i;:::-;19471:2;19466:3;19462:12;19455:19;;19114:366;;;:::o;19486:419::-;19652:4;19690:2;19679:9;19675:18;19667:26;;19739:9;19733:4;19729:20;19725:1;19714:9;19710:17;19703:47;19767:131;19893:4;19767:131;:::i;:::-;19759:139;;19486:419;;;:::o;19911:224::-;20051:34;20047:1;20039:6;20035:14;20028:58;20120:7;20115:2;20107:6;20103:15;20096:32;19911:224;:::o;20141:366::-;20283:3;20304:67;20368:2;20363:3;20304:67;:::i;:::-;20297:74;;20380:93;20469:3;20380:93;:::i;:::-;20498:2;20493:3;20489:12;20482:19;;20141:366;;;:::o;20513:419::-;20679:4;20717:2;20706:9;20702:18;20694:26;;20766:9;20760:4;20756:20;20752:1;20741:9;20737:17;20730:47;20794:131;20920:4;20794:131;:::i;:::-;20786:139;;20513:419;;;:::o;20938:222::-;21078:34;21074:1;21066:6;21062:14;21055:58;21147:5;21142:2;21134:6;21130:15;21123:30;20938:222;:::o;21166:366::-;21308:3;21329:67;21393:2;21388:3;21329:67;:::i;:::-;21322:74;;21405:93;21494:3;21405:93;:::i;:::-;21523:2;21518:3;21514:12;21507:19;;21166:366;;;:::o;21538:419::-;21704:4;21742:2;21731:9;21727:18;21719:26;;21791:9;21785:4;21781:20;21777:1;21766:9;21762:17;21755:47;21819:131;21945:4;21819:131;:::i;:::-;21811:139;;21538:419;;;:::o;21963:172::-;22103:24;22099:1;22091:6;22087:14;22080:48;21963:172;:::o;22141:366::-;22283:3;22304:67;22368:2;22363:3;22304:67;:::i;:::-;22297:74;;22380:93;22469:3;22380:93;:::i;:::-;22498:2;22493:3;22489:12;22482:19;;22141:366;;;:::o;22513:419::-;22679:4;22717:2;22706:9;22702:18;22694:26;;22766:9;22760:4;22756:20;22752:1;22741:9;22737:17;22730:47;22794:131;22920:4;22794:131;:::i;:::-;22786:139;;22513:419;;;:::o;22938:240::-;23078:34;23074:1;23066:6;23062:14;23055:58;23147:23;23142:2;23134:6;23130:15;23123:48;22938:240;:::o;23184:366::-;23326:3;23347:67;23411:2;23406:3;23347:67;:::i;:::-;23340:74;;23423:93;23512:3;23423:93;:::i;:::-;23541:2;23536:3;23532:12;23525:19;;23184:366;;;:::o;23556:419::-;23722:4;23760:2;23749:9;23745:18;23737:26;;23809:9;23803:4;23799:20;23795:1;23784:9;23780:17;23773:47;23837:131;23963:4;23837:131;:::i;:::-;23829:139;;23556:419;;;:::o;23981:169::-;24121:21;24117:1;24109:6;24105:14;24098:45;23981:169;:::o;24156:366::-;24298:3;24319:67;24383:2;24378:3;24319:67;:::i;:::-;24312:74;;24395:93;24484:3;24395:93;:::i;:::-;24513:2;24508:3;24504:12;24497:19;;24156:366;;;:::o;24528:419::-;24694:4;24732:2;24721:9;24717:18;24709:26;;24781:9;24775:4;24771:20;24767:1;24756:9;24752:17;24745:47;24809:131;24935:4;24809:131;:::i;:::-;24801:139;;24528:419;;;:::o;24953:241::-;25093:34;25089:1;25081:6;25077:14;25070:58;25162:24;25157:2;25149:6;25145:15;25138:49;24953:241;:::o;25200:366::-;25342:3;25363:67;25427:2;25422:3;25363:67;:::i;:::-;25356:74;;25439:93;25528:3;25439:93;:::i;:::-;25557:2;25552:3;25548:12;25541:19;;25200:366;;;:::o;25572:419::-;25738:4;25776:2;25765:9;25761:18;25753:26;;25825:9;25819:4;25815:20;25811:1;25800:9;25796:17;25789:47;25853:131;25979:4;25853:131;:::i;:::-;25845:139;;25572:419;;;:::o;25997:233::-;26036:3;26059:24;26077:5;26059:24;:::i;:::-;26050:33;;26105:66;26098:5;26095:77;26092:103;;26175:18;;:::i;:::-;26092:103;26222:1;26215:5;26211:13;26204:20;;25997:233;;;:::o;26236:194::-;26276:4;26296:20;26314:1;26296:20;:::i;:::-;26291:25;;26330:20;26348:1;26330:20;:::i;:::-;26325:25;;26374:1;26371;26367:9;26359:17;;26398:1;26392:4;26389:11;26386:37;;;26403:18;;:::i;:::-;26386:37;26236:194;;;;:::o;26436:182::-;26576:34;26572:1;26564:6;26560:14;26553:58;26436:182;:::o;26624:366::-;26766:3;26787:67;26851:2;26846:3;26787:67;:::i;:::-;26780:74;;26863:93;26952:3;26863:93;:::i;:::-;26981:2;26976:3;26972:12;26965:19;;26624:366;;;:::o;26996:419::-;27162:4;27200:2;27189:9;27185:18;27177:26;;27249:9;27243:4;27239:20;27235:1;27224:9;27220:17;27213:47;27277:131;27403:4;27277:131;:::i;:::-;27269:139;;26996:419;;;:::o;27421:180::-;27469:77;27466:1;27459:88;27566:4;27563:1;27556:15;27590:4;27587:1;27580:15;27607:180;27655:77;27652:1;27645:88;27752:4;27749:1;27742:15;27776:4;27773:1;27766:15;27793:143;27850:5;27881:6;27875:13;27866:22;;27897:33;27924:5;27897:33;:::i;:::-;27793:143;;;;:::o;27942:351::-;28012:6;28061:2;28049:9;28040:7;28036:23;28032:32;28029:119;;;28067:79;;:::i;:::-;28029:119;28187:1;28212:64;28268:7;28259:6;28248:9;28244:22;28212:64;:::i;:::-;28202:74;;28158:128;27942:351;;;;:::o;28299:85::-;28344:7;28373:5;28362:16;;28299:85;;;:::o;28390:158::-;28448:9;28481:61;28499:42;28508:32;28534:5;28508:32;:::i;:::-;28499:42;:::i;:::-;28481:61;:::i;:::-;28468:74;;28390:158;;;:::o;28554:147::-;28649:45;28688:5;28649:45;:::i;:::-;28644:3;28637:58;28554:147;;:::o;28707:114::-;28774:6;28808:5;28802:12;28792:22;;28707:114;;;:::o;28827:184::-;28926:11;28960:6;28955:3;28948:19;29000:4;28995:3;28991:14;28976:29;;28827:184;;;;:::o;29017:132::-;29084:4;29107:3;29099:11;;29137:4;29132:3;29128:14;29120:22;;29017:132;;;:::o;29155:108::-;29232:24;29250:5;29232:24;:::i;:::-;29227:3;29220:37;29155:108;;:::o;29269:179::-;29338:10;29359:46;29401:3;29393:6;29359:46;:::i;:::-;29437:4;29432:3;29428:14;29414:28;;29269:179;;;;:::o;29454:113::-;29524:4;29556;29551:3;29547:14;29539:22;;29454:113;;;:::o;29603:732::-;29722:3;29751:54;29799:5;29751:54;:::i;:::-;29821:86;29900:6;29895:3;29821:86;:::i;:::-;29814:93;;29931:56;29981:5;29931:56;:::i;:::-;30010:7;30041:1;30026:284;30051:6;30048:1;30045:13;30026:284;;;30127:6;30121:13;30154:63;30213:3;30198:13;30154:63;:::i;:::-;30147:70;;30240:60;30293:6;30240:60;:::i;:::-;30230:70;;30086:224;30073:1;30070;30066:9;30061:14;;30026:284;;;30030:14;30326:3;30319:10;;29727:608;;;29603:732;;;;:::o;30341:831::-;30604:4;30642:3;30631:9;30627:19;30619:27;;30656:71;30724:1;30713:9;30709:17;30700:6;30656:71;:::i;:::-;30737:80;30813:2;30802:9;30798:18;30789:6;30737:80;:::i;:::-;30864:9;30858:4;30854:20;30849:2;30838:9;30834:18;30827:48;30892:108;30995:4;30986:6;30892:108;:::i;:::-;30884:116;;31010:72;31078:2;31067:9;31063:18;31054:6;31010:72;:::i;:::-;31092:73;31160:3;31149:9;31145:19;31136:6;31092:73;:::i;:::-;30341:831;;;;;;;;:::o;31178:225::-;31318:34;31314:1;31306:6;31302:14;31295:58;31387:8;31382:2;31374:6;31370:15;31363:33;31178:225;:::o;31409:366::-;31551:3;31572:67;31636:2;31631:3;31572:67;:::i;:::-;31565:74;;31648:93;31737:3;31648:93;:::i;:::-;31766:2;31761:3;31757:12;31750:19;;31409:366;;;:::o;31781:419::-;31947:4;31985:2;31974:9;31970:18;31962:26;;32034:9;32028:4;32024:20;32020:1;32009:9;32005:17;31998:47;32062:131;32188:4;32062:131;:::i;:::-;32054:139;;31781:419;;;:::o
Swarm Source
ipfs://334f463d387e7da51e3989f24079da1f3219e9650568b65ababa8efeb9f60340
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.