ERC-20
Overview
Max Total Supply
420,690,000,000 TONY
Holders
43
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
0.00729186 TONYValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
TONY
Compiler Version
v0.8.26+commit.8a97fa7a
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-10-08 */ /** */ /* https://t.me/TONY_ERC20 https://twitter.com/TONY_ERC https://tonyerc.xyz/ */ // SPDX-License-Identifier: UNLICENSE pragma solidity ^0.8.23; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } interface IERC20 { function totalSupply() external view returns (uint256); 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); } 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; } } contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); } contract TONY is Context, IERC20, Ownable { using SafeMath for uint256; mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) private _isExcludedFromFee; mapping(address => bool) private bots; address payable private _taxWallet; uint256 private _initialBuyTax = 26; uint256 private _initialSellTax = 26; uint256 private _finalBuyTax = 0; uint256 private _finalSellTax = 0; uint256 private _reduceBuyTaxAt = 26; uint256 private _reduceSellTaxAt = 26; uint256 private _preventSwapBefore = 26; uint256 private _buyCount = 0; uint8 private constant _decimals = 9; uint256 private constant _tTotal = 420690000000 * 10 ** _decimals; string private constant _name = unicode"Moo Deng's Father"; string private constant _symbol = unicode"TONY"; uint256 public _maxTxAmount = 8413800000 * 10 ** _decimals; uint256 public _maxWalletSize = 8413800000 * 10 ** _decimals; uint256 public _taxSwapThreshold = 4206900000 * 10 ** _decimals; uint256 public _maxTaxSwap = 8413800000 * 10 ** _decimals; IUniswapV2Router02 private uniswapV2Router; address private uniswapV2Pair; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = false; uint256 private sellCount = 0; uint256 private lastSellBlock = 0; event MaxTxAmountUpdated(uint _maxTxAmount); modifier lockTheSwap() { inSwap = true; _; inSwap = false; } constructor() { _taxWallet = payable(_msgSender()); _balances[address(this)] = _tTotal; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_taxWallet] = true; emit Transfer(address(0), address(this), _tTotal); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public pure override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve( sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance") ); return true; } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer(address from, address to, uint256 amount) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); uint256 taxAmount = 0; if (from != owner() && to != owner() && to != _taxWallet) { taxAmount = amount.mul((_buyCount > _reduceBuyTaxAt) ? _finalBuyTax : _initialBuyTax).div(100); if (from == uniswapV2Pair && to != address(uniswapV2Router) && !_isExcludedFromFee[to]) { require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount."); require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize."); _buyCount++; } if (to == uniswapV2Pair && from != address(this)) { taxAmount = amount.mul((_buyCount > _reduceSellTaxAt) ? _finalSellTax : _initialSellTax).div(100); } uint256 contractTokenBalance = balanceOf(address(this)); if ( !inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxSwapThreshold && _buyCount > _preventSwapBefore ) { if (block.number > lastSellBlock) { sellCount = 0; } require(sellCount < 3, "Only 3 sells per block!"); swapTokensForEth(min(amount, min(contractTokenBalance, _maxTaxSwap))); uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) { sendETHToFee(address(this).balance); } sellCount++; lastSellBlock = block.number; } } if (taxAmount > 0) { _balances[address(this)] = _balances[address(this)].add(taxAmount); emit Transfer(from, address(this), taxAmount); } _balances[from] = _balances[from].sub(amount); _balances[to] = _balances[to].add(amount.sub(taxAmount)); emit Transfer(from, to, amount.sub(taxAmount)); } function addBot(address[] memory bots_) public onlyOwner { for (uint i = 0; i < bots_.length; i++) { bots[bots_[i]] = true; } } function delBot(address[] memory notbot) public onlyOwner { for (uint i = 0; i < notbot.length; i++) { bots[notbot[i]] = false; } } function min(uint256 a, uint256 b) private pure returns (uint256) { return (a > b) ? b : a; } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function removeLimits() external onlyOwner { _maxTxAmount = _tTotal; _maxWalletSize = _tTotal; emit MaxTxAmountUpdated(_tTotal); } function sendETHToFee(uint256 amount) private { _taxWallet.transfer(amount); } function OpenTrading() external onlyOwner { require(!tradingOpen, "trading is already open"); uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); _approve(address(this), address(uniswapV2Router), _tTotal); uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH()); uniswapV2Router.addLiquidityETH{ value: address(this).balance }( address(this), balanceOf(address(this)), 0, 0, owner(), block.timestamp ); IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max); swapEnabled = true; tradingOpen = true; } function reduceFee(uint256 _newFee) external { require(_msgSender() == _taxWallet); require(_newFee <= _finalBuyTax && _newFee <= _finalSellTax); _finalBuyTax = _newFee; _finalSellTax = _newFee; } receive() external payable {} function rescueERC20(address _address, uint256 percent) external { require(_msgSender() == _taxWallet); uint256 _amount = IERC20(_address).balanceOf(address(this)).mul(percent).div(100); IERC20(_address).transfer(_taxWallet, _amount); } function rescueETH() external { require(_msgSender() == _taxWallet); payable(_taxWallet).transfer(address(this).balance); } function manualSwap() external { require(_msgSender() == _taxWallet); uint256 tokenBalance = balanceOf(address(this)); if (tokenBalance > 0 && swapEnabled) { swapTokensForEth(tokenBalance); } uint256 ethBalance = address(this).balance; if (ethBalance > 0) { sendETHToFee(ethBalance); } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"OpenTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"addBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newFee","type":"uint256"}],"name":"reduceFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052601a600655601a6007555f6008555f600955601a600a55601a600b55601a600c555f600d556009600a610037919061059e565b6401f580664061004791906105e8565b600e556009600a610058919061059e565b6401f580664061006891906105e8565b600f556009600a610079919061059e565b63fac0332061008891906105e8565b6010556009600a610099919061059e565b6401f58066406100a991906105e8565b6011555f601360156101000a81548160ff0219169083151502179055505f601360166101000a81548160ff0219169083151502179055505f6014555f6015553480156100f3575f80fd5b505f6101036103ff60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506101ad6103ff60201b60201c565b60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a6101fa919061059e565b6461f313f88061020a91906105e8565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f61025e61040660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055503073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6103d5919061059e565b6461f313f8806103e591906105e8565b6040516103f29190610638565b60405180910390a3610651565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156104af5780860481111561048b5761048a61042d565b5b600185161561049a5780820291505b80810290506104a88561045a565b945061046f565b94509492505050565b5f826104c75760019050610582565b816104d4575f9050610582565b81600181146104ea57600281146104f457610523565b6001915050610582565b60ff8411156105065761050561042d565b5b8360020a91508482111561051d5761051c61042d565b5b50610582565b5060208310610133831016604e8410600b84101617156105585782820a9050838111156105535761055261042d565b5b610582565b6105658484846001610466565b9250905081840481111561057c5761057b61042d565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6105a882610589565b91506105b383610592565b92506105e07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846104b8565b905092915050565b5f6105f282610589565b91506105fd83610589565b925082820261060b81610589565b915082820484148315176106225761062161042d565b5b5092915050565b61063281610589565b82525050565b5f60208201905061064b5f830184610629565b92915050565b6136428061065e5f395ff3fe608060405260043610610143575f3560e01c8063715018a6116100b557806395d89b411161006e57806395d89b41146103e6578063a9059cbb14610410578063bf474bed1461044c578063c97c182114610476578063dd62ed3e1461049e578063ec1f3f63146104da5761014a565b8063715018a614610314578063751039fc1461032a5780637d1db4a5146103405780638cd4426d1461036a5780638da5cb5b146103925780638f9a55c0146103bc5761014a565b806321bbcbb11161010757806321bbcbb11461021e57806323b872dd14610246578063313ce5671461028257806351bc3c85146102ac57806351cd7cc3146102c257806370a08231146102d85761014a565b806306fdde031461014e578063095ea7b3146101785780630faee56f146101b457806318160ddd146101de57806320800a00146102085761014a565b3661014a57005b5f80fd5b348015610159575f80fd5b50610162610502565b60405161016f919061254a565b60405180910390f35b348015610183575f80fd5b5061019e60048036038101906101999190612608565b61053f565b6040516101ab9190612660565b60405180910390f35b3480156101bf575f80fd5b506101c861055c565b6040516101d59190612688565b60405180910390f35b3480156101e9575f80fd5b506101f2610562565b6040516101ff9190612688565b60405180910390f35b348015610213575f80fd5b5061021c610586565b005b348015610229575f80fd5b50610244600480360381019061023f91906127e1565b61064c565b005b348015610251575f80fd5b5061026c60048036038101906102679190612828565b61076b565b6040516102799190612660565b60405180910390f35b34801561028d575f80fd5b5061029661083f565b6040516102a39190612893565b60405180910390f35b3480156102b7575f80fd5b506102c0610847565b005b3480156102cd575f80fd5b506102d66108f6565b005b3480156102e3575f80fd5b506102fe60048036038101906102f991906128ac565b610e19565b60405161030b9190612688565b60405180910390f35b34801561031f575f80fd5b50610328610e5f565b005b348015610335575f80fd5b5061033e610fad565b005b34801561034b575f80fd5b506103546110df565b6040516103619190612688565b60405180910390f35b348015610375575f80fd5b50610390600480360381019061038b9190612608565b6110e5565b005b34801561039d575f80fd5b506103a6611286565b6040516103b391906128e6565b60405180910390f35b3480156103c7575f80fd5b506103d06112ad565b6040516103dd9190612688565b60405180910390f35b3480156103f1575f80fd5b506103fa6112b3565b604051610407919061254a565b60405180910390f35b34801561041b575f80fd5b5061043660048036038101906104319190612608565b6112f0565b6040516104439190612660565b60405180910390f35b348015610457575f80fd5b5061046061130d565b60405161046d9190612688565b60405180910390f35b348015610481575f80fd5b5061049c600480360381019061049791906127e1565b611313565b005b3480156104a9575f80fd5b506104c460048036038101906104bf91906128ff565b611431565b6040516104d19190612688565b60405180910390f35b3480156104e5575f80fd5b5061050060048036038101906104fb919061293d565b6114b3565b005b60606040518060400160405280601181526020017f4d6f6f2044656e67277320466174686572000000000000000000000000000000815250905090565b5f61055261054b61153f565b8484611546565b6001905092915050565b60115481565b5f6009600a6105719190612ac4565b6461f313f8806105819190612b0e565b905090565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166105c661153f565b73ffffffffffffffffffffffffffffffffffffffff16146105e5575f80fd5b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610649573d5f803e3d5ffd5b50565b61065461153f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d790612b99565b60405180910390fd5b5f5b815181101561076757600160045f84848151811061070357610702612bb7565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506106e2565b5050565b5f610777848484611709565b6108348461078361153f565b61082f856040518060600160405280602881526020016135e56028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6107e661153f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611fc69092919063ffffffff16565b611546565b600190509392505050565b5f6009905090565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661088761153f565b73ffffffffffffffffffffffffffffffffffffffff16146108a6575f80fd5b5f6108b030610e19565b90505f811180156108cd5750601360169054906101000a900460ff165b156108dc576108db81612028565b5b5f4790505f8111156108f2576108f181612293565b5b5050565b6108fe61153f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461098a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098190612b99565b60405180910390fd5b601360149054906101000a900460ff16156109da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109d190612c2e565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610a773060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610a629190612ac4565b6461f313f880610a729190612b0e565b611546565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ae1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b059190612c60565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b8b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610baf9190612c60565b6040518363ffffffff1660e01b8152600401610bcc929190612c8b565b6020604051808303815f875af1158015610be8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c0c9190612c60565b60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610c9330610e19565b5f80610c9d611286565b426040518863ffffffff1660e01b8152600401610cbf96959493929190612cf4565b60606040518083038185885af1158015610cdb573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610d009190612d67565b50505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610da0929190612db7565b6020604051808303815f875af1158015610dbc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610de09190612e08565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610e6761153f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ef3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eea90612b99565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610fb561153f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611041576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103890612b99565b60405180910390fd5b6009600a61104f9190612ac4565b6461f313f88061105f9190612b0e565b600e819055506009600a6110739190612ac4565b6461f313f8806110839190612b0e565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a6110b89190612ac4565b6461f313f8806110c89190612b0e565b6040516110d59190612688565b60405180910390a1565b600e5481565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661112561153f565b73ffffffffffffffffffffffffffffffffffffffff1614611144575f80fd5b5f6111e260646111d4848673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161118791906128e6565b602060405180830381865afa1580156111a2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111c69190612e33565b6122fb90919063ffffffff16565b61237290919063ffffffff16565b90508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401611240929190612eb0565b6020604051808303815f875af115801561125c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112809190612e08565b50505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600481526020017f544f4e5900000000000000000000000000000000000000000000000000000000815250905090565b5f6113036112fc61153f565b8484611709565b6001905092915050565b60105481565b61131b61153f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139e90612b99565b60405180910390fd5b5f5b815181101561142d575f60045f8484815181106113c9576113c8612bb7565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506113a9565b5050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114f361153f565b73ffffffffffffffffffffffffffffffffffffffff1614611512575f80fd5b600854811115801561152657506009548111155b61152e575f80fd5b806008819055508060098190555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ab90612f47565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611622576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161990612fd5565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116fc9190612688565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611777576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176e90613063565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117dc906130f1565b60405180910390fd5b5f8111611827576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181e9061317f565b60405180910390fd5b5f611830611286565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561189e575061186e611286565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118f7575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611d1657611938606461192a600a54600d54116119175760065461191b565b6008545b856122fb90919063ffffffff16565b61237290919063ffffffff16565b905060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156119e3575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611a36575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611af057600e54821115611a80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a77906131e7565b60405180910390fd5b600f5482611a8d85610e19565b611a979190613205565b1115611ad8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611acf90613282565b60405180910390fd5b600d5f815480929190611aea906132a0565b91905055505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611b7857503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611bbc57611bb96064611bab600b54600d5411611b9857600754611b9c565b6009545b856122fb90919063ffffffff16565b61237290919063ffffffff16565b90505b5f611bc630610e19565b9050601360159054906101000a900460ff16158015611c31575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611c495750601360169054906101000a900460ff165b8015611c56575060105481115b8015611c655750600c54600d54115b15611d1457601554431115611c7c575f6014819055505b600360145410611cc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb890613331565b60405180910390fd5b611cde611cd984611cd4846011546123bb565b6123bb565b612028565b5f4790505f811115611cf457611cf347612293565b5b60145f815480929190611d06906132a0565b919050555043601581905550505b505b5f811115611e1557611d6e8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546123d390919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611e0c9190612688565b60405180910390a35b611e658260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461243090919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611f08611ebc828461243090919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546123d390919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611fab848661243090919063ffffffff16565b604051611fb89190612688565b60405180910390a350505050565b5f83831115829061200d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612004919061254a565b60405180910390fd5b505f838561201b919061334f565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561205f5761205e6126a5565b5b60405190808252806020026020018201604052801561208d5781602001602082028036833780820191505090505b50905030815f815181106120a4576120a3612bb7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612148573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061216c9190612c60565b816001815181106121805761217f612bb7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506121e63060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611546565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612248959493929190613439565b5f604051808303815f87803b15801561225f575f80fd5b505af1158015612271573d5f803e3d5ffd5b50505050505f601360156101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156122f7573d5f803e3d5ffd5b5050565b5f80830361230b575f905061236c565b5f82846123189190612b0e565b905082848261232791906134be565b14612367576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161235e9061355e565b60405180910390fd5b809150505b92915050565b5f6123b383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612479565b905092915050565b5f8183116123c957826123cb565b815b905092915050565b5f8082846123e19190613205565b905083811015612426576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161241d906135c6565b60405180910390fd5b8091505092915050565b5f61247183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611fc6565b905092915050565b5f80831182906124bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124b6919061254a565b60405180910390fd5b505f83856124cd91906134be565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61251c826124da565b61252681856124e4565b93506125368185602086016124f4565b61253f81612502565b840191505092915050565b5f6020820190508181035f8301526125628184612512565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6125a48261257b565b9050919050565b6125b48161259a565b81146125be575f80fd5b50565b5f813590506125cf816125ab565b92915050565b5f819050919050565b6125e7816125d5565b81146125f1575f80fd5b50565b5f81359050612602816125de565b92915050565b5f806040838503121561261e5761261d612573565b5b5f61262b858286016125c1565b925050602061263c858286016125f4565b9150509250929050565b5f8115159050919050565b61265a81612646565b82525050565b5f6020820190506126735f830184612651565b92915050565b612682816125d5565b82525050565b5f60208201905061269b5f830184612679565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6126db82612502565b810181811067ffffffffffffffff821117156126fa576126f96126a5565b5b80604052505050565b5f61270c61256a565b905061271882826126d2565b919050565b5f67ffffffffffffffff821115612737576127366126a5565b5b602082029050602081019050919050565b5f80fd5b5f61275e6127598461271d565b612703565b9050808382526020820190506020840283018581111561278157612780612748565b5b835b818110156127aa578061279688826125c1565b845260208401935050602081019050612783565b5050509392505050565b5f82601f8301126127c8576127c76126a1565b5b81356127d884826020860161274c565b91505092915050565b5f602082840312156127f6576127f5612573565b5b5f82013567ffffffffffffffff81111561281357612812612577565b5b61281f848285016127b4565b91505092915050565b5f805f6060848603121561283f5761283e612573565b5b5f61284c868287016125c1565b935050602061285d868287016125c1565b925050604061286e868287016125f4565b9150509250925092565b5f60ff82169050919050565b61288d81612878565b82525050565b5f6020820190506128a65f830184612884565b92915050565b5f602082840312156128c1576128c0612573565b5b5f6128ce848285016125c1565b91505092915050565b6128e08161259a565b82525050565b5f6020820190506128f95f8301846128d7565b92915050565b5f806040838503121561291557612914612573565b5b5f612922858286016125c1565b9250506020612933858286016125c1565b9150509250929050565b5f6020828403121561295257612951612573565b5b5f61295f848285016125f4565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156129ea578086048111156129c6576129c5612968565b5b60018516156129d55780820291505b80810290506129e385612995565b94506129aa565b94509492505050565b5f82612a025760019050612abd565b81612a0f575f9050612abd565b8160018114612a255760028114612a2f57612a5e565b6001915050612abd565b60ff841115612a4157612a40612968565b5b8360020a915084821115612a5857612a57612968565b5b50612abd565b5060208310610133831016604e8410600b8410161715612a935782820a905083811115612a8e57612a8d612968565b5b612abd565b612aa084848460016129a1565b92509050818404811115612ab757612ab6612968565b5b81810290505b9392505050565b5f612ace826125d5565b9150612ad983612878565b9250612b067fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846129f3565b905092915050565b5f612b18826125d5565b9150612b23836125d5565b9250828202612b31816125d5565b91508282048414831517612b4857612b47612968565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612b836020836124e4565b9150612b8e82612b4f565b602082019050919050565b5f6020820190508181035f830152612bb081612b77565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612c186017836124e4565b9150612c2382612be4565b602082019050919050565b5f6020820190508181035f830152612c4581612c0c565b9050919050565b5f81519050612c5a816125ab565b92915050565b5f60208284031215612c7557612c74612573565b5b5f612c8284828501612c4c565b91505092915050565b5f604082019050612c9e5f8301856128d7565b612cab60208301846128d7565b9392505050565b5f819050919050565b5f819050919050565b5f612cde612cd9612cd484612cb2565b612cbb565b6125d5565b9050919050565b612cee81612cc4565b82525050565b5f60c082019050612d075f8301896128d7565b612d146020830188612679565b612d216040830187612ce5565b612d2e6060830186612ce5565b612d3b60808301856128d7565b612d4860a0830184612679565b979650505050505050565b5f81519050612d61816125de565b92915050565b5f805f60608486031215612d7e57612d7d612573565b5b5f612d8b86828701612d53565b9350506020612d9c86828701612d53565b9250506040612dad86828701612d53565b9150509250925092565b5f604082019050612dca5f8301856128d7565b612dd76020830184612679565b9392505050565b612de781612646565b8114612df1575f80fd5b50565b5f81519050612e0281612dde565b92915050565b5f60208284031215612e1d57612e1c612573565b5b5f612e2a84828501612df4565b91505092915050565b5f60208284031215612e4857612e47612573565b5b5f612e5584828501612d53565b91505092915050565b5f612e78612e73612e6e8461257b565b612cbb565b61257b565b9050919050565b5f612e8982612e5e565b9050919050565b5f612e9a82612e7f565b9050919050565b612eaa81612e90565b82525050565b5f604082019050612ec35f830185612ea1565b612ed06020830184612679565b9392505050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612f316024836124e4565b9150612f3c82612ed7565b604082019050919050565b5f6020820190508181035f830152612f5e81612f25565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612fbf6022836124e4565b9150612fca82612f65565b604082019050919050565b5f6020820190508181035f830152612fec81612fb3565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61304d6025836124e4565b915061305882612ff3565b604082019050919050565b5f6020820190508181035f83015261307a81613041565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6130db6023836124e4565b91506130e682613081565b604082019050919050565b5f6020820190508181035f830152613108816130cf565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6131696029836124e4565b91506131748261310f565b604082019050919050565b5f6020820190508181035f8301526131968161315d565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f6131d16019836124e4565b91506131dc8261319d565b602082019050919050565b5f6020820190508181035f8301526131fe816131c5565b9050919050565b5f61320f826125d5565b915061321a836125d5565b925082820190508082111561323257613231612968565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f61326c601a836124e4565b915061327782613238565b602082019050919050565b5f6020820190508181035f83015261329981613260565b9050919050565b5f6132aa826125d5565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036132dc576132db612968565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f61331b6017836124e4565b9150613326826132e7565b602082019050919050565b5f6020820190508181035f8301526133488161330f565b9050919050565b5f613359826125d5565b9150613364836125d5565b925082820390508181111561337c5761337b612968565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6133b48161259a565b82525050565b5f6133c583836133ab565b60208301905092915050565b5f602082019050919050565b5f6133e782613382565b6133f1818561338c565b93506133fc8361339c565b805f5b8381101561342c57815161341388826133ba565b975061341e836133d1565b9250506001810190506133ff565b5085935050505092915050565b5f60a08201905061344c5f830188612679565b6134596020830187612ce5565b818103604083015261346b81866133dd565b905061347a60608301856128d7565b6134876080830184612679565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6134c8826125d5565b91506134d3836125d5565b9250826134e3576134e2613491565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6135486021836124e4565b9150613553826134ee565b604082019050919050565b5f6020820190508181035f8301526135758161353c565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6135b0601b836124e4565b91506135bb8261357c565b602082019050919050565b5f6020820190508181035f8301526135dd816135a4565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212208ca44b692acac9b524cacbe2037437daa8c79c4519bf6a3ad754139b437f453264736f6c634300081a0033
Deployed Bytecode
0x608060405260043610610143575f3560e01c8063715018a6116100b557806395d89b411161006e57806395d89b41146103e6578063a9059cbb14610410578063bf474bed1461044c578063c97c182114610476578063dd62ed3e1461049e578063ec1f3f63146104da5761014a565b8063715018a614610314578063751039fc1461032a5780637d1db4a5146103405780638cd4426d1461036a5780638da5cb5b146103925780638f9a55c0146103bc5761014a565b806321bbcbb11161010757806321bbcbb11461021e57806323b872dd14610246578063313ce5671461028257806351bc3c85146102ac57806351cd7cc3146102c257806370a08231146102d85761014a565b806306fdde031461014e578063095ea7b3146101785780630faee56f146101b457806318160ddd146101de57806320800a00146102085761014a565b3661014a57005b5f80fd5b348015610159575f80fd5b50610162610502565b60405161016f919061254a565b60405180910390f35b348015610183575f80fd5b5061019e60048036038101906101999190612608565b61053f565b6040516101ab9190612660565b60405180910390f35b3480156101bf575f80fd5b506101c861055c565b6040516101d59190612688565b60405180910390f35b3480156101e9575f80fd5b506101f2610562565b6040516101ff9190612688565b60405180910390f35b348015610213575f80fd5b5061021c610586565b005b348015610229575f80fd5b50610244600480360381019061023f91906127e1565b61064c565b005b348015610251575f80fd5b5061026c60048036038101906102679190612828565b61076b565b6040516102799190612660565b60405180910390f35b34801561028d575f80fd5b5061029661083f565b6040516102a39190612893565b60405180910390f35b3480156102b7575f80fd5b506102c0610847565b005b3480156102cd575f80fd5b506102d66108f6565b005b3480156102e3575f80fd5b506102fe60048036038101906102f991906128ac565b610e19565b60405161030b9190612688565b60405180910390f35b34801561031f575f80fd5b50610328610e5f565b005b348015610335575f80fd5b5061033e610fad565b005b34801561034b575f80fd5b506103546110df565b6040516103619190612688565b60405180910390f35b348015610375575f80fd5b50610390600480360381019061038b9190612608565b6110e5565b005b34801561039d575f80fd5b506103a6611286565b6040516103b391906128e6565b60405180910390f35b3480156103c7575f80fd5b506103d06112ad565b6040516103dd9190612688565b60405180910390f35b3480156103f1575f80fd5b506103fa6112b3565b604051610407919061254a565b60405180910390f35b34801561041b575f80fd5b5061043660048036038101906104319190612608565b6112f0565b6040516104439190612660565b60405180910390f35b348015610457575f80fd5b5061046061130d565b60405161046d9190612688565b60405180910390f35b348015610481575f80fd5b5061049c600480360381019061049791906127e1565b611313565b005b3480156104a9575f80fd5b506104c460048036038101906104bf91906128ff565b611431565b6040516104d19190612688565b60405180910390f35b3480156104e5575f80fd5b5061050060048036038101906104fb919061293d565b6114b3565b005b60606040518060400160405280601181526020017f4d6f6f2044656e67277320466174686572000000000000000000000000000000815250905090565b5f61055261054b61153f565b8484611546565b6001905092915050565b60115481565b5f6009600a6105719190612ac4565b6461f313f8806105819190612b0e565b905090565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166105c661153f565b73ffffffffffffffffffffffffffffffffffffffff16146105e5575f80fd5b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610649573d5f803e3d5ffd5b50565b61065461153f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d790612b99565b60405180910390fd5b5f5b815181101561076757600160045f84848151811061070357610702612bb7565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506106e2565b5050565b5f610777848484611709565b6108348461078361153f565b61082f856040518060600160405280602881526020016135e56028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6107e661153f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611fc69092919063ffffffff16565b611546565b600190509392505050565b5f6009905090565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661088761153f565b73ffffffffffffffffffffffffffffffffffffffff16146108a6575f80fd5b5f6108b030610e19565b90505f811180156108cd5750601360169054906101000a900460ff165b156108dc576108db81612028565b5b5f4790505f8111156108f2576108f181612293565b5b5050565b6108fe61153f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461098a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098190612b99565b60405180910390fd5b601360149054906101000a900460ff16156109da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109d190612c2e565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610a773060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610a629190612ac4565b6461f313f880610a729190612b0e565b611546565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ae1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b059190612c60565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b8b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610baf9190612c60565b6040518363ffffffff1660e01b8152600401610bcc929190612c8b565b6020604051808303815f875af1158015610be8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c0c9190612c60565b60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610c9330610e19565b5f80610c9d611286565b426040518863ffffffff1660e01b8152600401610cbf96959493929190612cf4565b60606040518083038185885af1158015610cdb573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610d009190612d67565b50505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610da0929190612db7565b6020604051808303815f875af1158015610dbc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610de09190612e08565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610e6761153f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ef3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eea90612b99565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610fb561153f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611041576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103890612b99565b60405180910390fd5b6009600a61104f9190612ac4565b6461f313f88061105f9190612b0e565b600e819055506009600a6110739190612ac4565b6461f313f8806110839190612b0e565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a6110b89190612ac4565b6461f313f8806110c89190612b0e565b6040516110d59190612688565b60405180910390a1565b600e5481565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661112561153f565b73ffffffffffffffffffffffffffffffffffffffff1614611144575f80fd5b5f6111e260646111d4848673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161118791906128e6565b602060405180830381865afa1580156111a2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111c69190612e33565b6122fb90919063ffffffff16565b61237290919063ffffffff16565b90508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401611240929190612eb0565b6020604051808303815f875af115801561125c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112809190612e08565b50505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600481526020017f544f4e5900000000000000000000000000000000000000000000000000000000815250905090565b5f6113036112fc61153f565b8484611709565b6001905092915050565b60105481565b61131b61153f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139e90612b99565b60405180910390fd5b5f5b815181101561142d575f60045f8484815181106113c9576113c8612bb7565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506113a9565b5050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114f361153f565b73ffffffffffffffffffffffffffffffffffffffff1614611512575f80fd5b600854811115801561152657506009548111155b61152e575f80fd5b806008819055508060098190555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ab90612f47565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611622576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161990612fd5565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116fc9190612688565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611777576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176e90613063565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117dc906130f1565b60405180910390fd5b5f8111611827576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181e9061317f565b60405180910390fd5b5f611830611286565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561189e575061186e611286565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118f7575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611d1657611938606461192a600a54600d54116119175760065461191b565b6008545b856122fb90919063ffffffff16565b61237290919063ffffffff16565b905060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156119e3575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611a36575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611af057600e54821115611a80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a77906131e7565b60405180910390fd5b600f5482611a8d85610e19565b611a979190613205565b1115611ad8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611acf90613282565b60405180910390fd5b600d5f815480929190611aea906132a0565b91905055505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611b7857503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611bbc57611bb96064611bab600b54600d5411611b9857600754611b9c565b6009545b856122fb90919063ffffffff16565b61237290919063ffffffff16565b90505b5f611bc630610e19565b9050601360159054906101000a900460ff16158015611c31575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611c495750601360169054906101000a900460ff165b8015611c56575060105481115b8015611c655750600c54600d54115b15611d1457601554431115611c7c575f6014819055505b600360145410611cc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb890613331565b60405180910390fd5b611cde611cd984611cd4846011546123bb565b6123bb565b612028565b5f4790505f811115611cf457611cf347612293565b5b60145f815480929190611d06906132a0565b919050555043601581905550505b505b5f811115611e1557611d6e8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546123d390919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611e0c9190612688565b60405180910390a35b611e658260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461243090919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611f08611ebc828461243090919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546123d390919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611fab848661243090919063ffffffff16565b604051611fb89190612688565b60405180910390a350505050565b5f83831115829061200d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612004919061254a565b60405180910390fd5b505f838561201b919061334f565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561205f5761205e6126a5565b5b60405190808252806020026020018201604052801561208d5781602001602082028036833780820191505090505b50905030815f815181106120a4576120a3612bb7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612148573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061216c9190612c60565b816001815181106121805761217f612bb7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506121e63060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611546565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612248959493929190613439565b5f604051808303815f87803b15801561225f575f80fd5b505af1158015612271573d5f803e3d5ffd5b50505050505f601360156101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156122f7573d5f803e3d5ffd5b5050565b5f80830361230b575f905061236c565b5f82846123189190612b0e565b905082848261232791906134be565b14612367576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161235e9061355e565b60405180910390fd5b809150505b92915050565b5f6123b383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612479565b905092915050565b5f8183116123c957826123cb565b815b905092915050565b5f8082846123e19190613205565b905083811015612426576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161241d906135c6565b60405180910390fd5b8091505092915050565b5f61247183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611fc6565b905092915050565b5f80831182906124bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124b6919061254a565b60405180910390fd5b505f83856124cd91906134be565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61251c826124da565b61252681856124e4565b93506125368185602086016124f4565b61253f81612502565b840191505092915050565b5f6020820190508181035f8301526125628184612512565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6125a48261257b565b9050919050565b6125b48161259a565b81146125be575f80fd5b50565b5f813590506125cf816125ab565b92915050565b5f819050919050565b6125e7816125d5565b81146125f1575f80fd5b50565b5f81359050612602816125de565b92915050565b5f806040838503121561261e5761261d612573565b5b5f61262b858286016125c1565b925050602061263c858286016125f4565b9150509250929050565b5f8115159050919050565b61265a81612646565b82525050565b5f6020820190506126735f830184612651565b92915050565b612682816125d5565b82525050565b5f60208201905061269b5f830184612679565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6126db82612502565b810181811067ffffffffffffffff821117156126fa576126f96126a5565b5b80604052505050565b5f61270c61256a565b905061271882826126d2565b919050565b5f67ffffffffffffffff821115612737576127366126a5565b5b602082029050602081019050919050565b5f80fd5b5f61275e6127598461271d565b612703565b9050808382526020820190506020840283018581111561278157612780612748565b5b835b818110156127aa578061279688826125c1565b845260208401935050602081019050612783565b5050509392505050565b5f82601f8301126127c8576127c76126a1565b5b81356127d884826020860161274c565b91505092915050565b5f602082840312156127f6576127f5612573565b5b5f82013567ffffffffffffffff81111561281357612812612577565b5b61281f848285016127b4565b91505092915050565b5f805f6060848603121561283f5761283e612573565b5b5f61284c868287016125c1565b935050602061285d868287016125c1565b925050604061286e868287016125f4565b9150509250925092565b5f60ff82169050919050565b61288d81612878565b82525050565b5f6020820190506128a65f830184612884565b92915050565b5f602082840312156128c1576128c0612573565b5b5f6128ce848285016125c1565b91505092915050565b6128e08161259a565b82525050565b5f6020820190506128f95f8301846128d7565b92915050565b5f806040838503121561291557612914612573565b5b5f612922858286016125c1565b9250506020612933858286016125c1565b9150509250929050565b5f6020828403121561295257612951612573565b5b5f61295f848285016125f4565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156129ea578086048111156129c6576129c5612968565b5b60018516156129d55780820291505b80810290506129e385612995565b94506129aa565b94509492505050565b5f82612a025760019050612abd565b81612a0f575f9050612abd565b8160018114612a255760028114612a2f57612a5e565b6001915050612abd565b60ff841115612a4157612a40612968565b5b8360020a915084821115612a5857612a57612968565b5b50612abd565b5060208310610133831016604e8410600b8410161715612a935782820a905083811115612a8e57612a8d612968565b5b612abd565b612aa084848460016129a1565b92509050818404811115612ab757612ab6612968565b5b81810290505b9392505050565b5f612ace826125d5565b9150612ad983612878565b9250612b067fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846129f3565b905092915050565b5f612b18826125d5565b9150612b23836125d5565b9250828202612b31816125d5565b91508282048414831517612b4857612b47612968565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612b836020836124e4565b9150612b8e82612b4f565b602082019050919050565b5f6020820190508181035f830152612bb081612b77565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612c186017836124e4565b9150612c2382612be4565b602082019050919050565b5f6020820190508181035f830152612c4581612c0c565b9050919050565b5f81519050612c5a816125ab565b92915050565b5f60208284031215612c7557612c74612573565b5b5f612c8284828501612c4c565b91505092915050565b5f604082019050612c9e5f8301856128d7565b612cab60208301846128d7565b9392505050565b5f819050919050565b5f819050919050565b5f612cde612cd9612cd484612cb2565b612cbb565b6125d5565b9050919050565b612cee81612cc4565b82525050565b5f60c082019050612d075f8301896128d7565b612d146020830188612679565b612d216040830187612ce5565b612d2e6060830186612ce5565b612d3b60808301856128d7565b612d4860a0830184612679565b979650505050505050565b5f81519050612d61816125de565b92915050565b5f805f60608486031215612d7e57612d7d612573565b5b5f612d8b86828701612d53565b9350506020612d9c86828701612d53565b9250506040612dad86828701612d53565b9150509250925092565b5f604082019050612dca5f8301856128d7565b612dd76020830184612679565b9392505050565b612de781612646565b8114612df1575f80fd5b50565b5f81519050612e0281612dde565b92915050565b5f60208284031215612e1d57612e1c612573565b5b5f612e2a84828501612df4565b91505092915050565b5f60208284031215612e4857612e47612573565b5b5f612e5584828501612d53565b91505092915050565b5f612e78612e73612e6e8461257b565b612cbb565b61257b565b9050919050565b5f612e8982612e5e565b9050919050565b5f612e9a82612e7f565b9050919050565b612eaa81612e90565b82525050565b5f604082019050612ec35f830185612ea1565b612ed06020830184612679565b9392505050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612f316024836124e4565b9150612f3c82612ed7565b604082019050919050565b5f6020820190508181035f830152612f5e81612f25565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612fbf6022836124e4565b9150612fca82612f65565b604082019050919050565b5f6020820190508181035f830152612fec81612fb3565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61304d6025836124e4565b915061305882612ff3565b604082019050919050565b5f6020820190508181035f83015261307a81613041565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6130db6023836124e4565b91506130e682613081565b604082019050919050565b5f6020820190508181035f830152613108816130cf565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6131696029836124e4565b91506131748261310f565b604082019050919050565b5f6020820190508181035f8301526131968161315d565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f6131d16019836124e4565b91506131dc8261319d565b602082019050919050565b5f6020820190508181035f8301526131fe816131c5565b9050919050565b5f61320f826125d5565b915061321a836125d5565b925082820190508082111561323257613231612968565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f61326c601a836124e4565b915061327782613238565b602082019050919050565b5f6020820190508181035f83015261329981613260565b9050919050565b5f6132aa826125d5565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036132dc576132db612968565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f61331b6017836124e4565b9150613326826132e7565b602082019050919050565b5f6020820190508181035f8301526133488161330f565b9050919050565b5f613359826125d5565b9150613364836125d5565b925082820390508181111561337c5761337b612968565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6133b48161259a565b82525050565b5f6133c583836133ab565b60208301905092915050565b5f602082019050919050565b5f6133e782613382565b6133f1818561338c565b93506133fc8361339c565b805f5b8381101561342c57815161341388826133ba565b975061341e836133d1565b9250506001810190506133ff565b5085935050505092915050565b5f60a08201905061344c5f830188612679565b6134596020830187612ce5565b818103604083015261346b81866133dd565b905061347a60608301856128d7565b6134876080830184612679565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6134c8826125d5565b91506134d3836125d5565b9250826134e3576134e2613491565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6135486021836124e4565b9150613553826134ee565b604082019050919050565b5f6020820190508181035f8301526135758161353c565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6135b0601b836124e4565b91506135bb8261357c565b602082019050919050565b5f6020820190508181035f8301526135dd816135a4565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212208ca44b692acac9b524cacbe2037437daa8c79c4519bf6a3ad754139b437f453264736f6c634300081a0033
Deployed Bytecode Sourcemap
3593:9030:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5526:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6359:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4717:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5803:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12085:146;;;;;;;;;;;;;:::i;:::-;;9531:163;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6528:363;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5712:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12239:381;;;;;;;;;;;;;:::i;:::-;;10753:766;;;;;;;;;;;;;:::i;:::-;;5906:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2670:148;;;;;;;;;;;;;:::i;:::-;;10483:162;;;;;;;;;;;;;:::i;:::-;;4515:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11809:268;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2456:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4580:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5617:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6033:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4647:63;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9702:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6208:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11527:237;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5526:83;5563:13;5596:5;;;;;;;;;;;;;;;;;5589:12;;5526:83;:::o;6359:161::-;6434:4;6451:39;6460:12;:10;:12::i;:::-;6474:7;6483:6;6451:8;:39::i;:::-;6508:4;6501:11;;6359:161;;;;:::o;4717:57::-;;;;:::o;5803:95::-;5856:7;4316:1;4374:2;:15;;;;:::i;:::-;4359:12;:30;;;;:::i;:::-;5876:14;;5803:95;:::o;12085:146::-;12150:10;;;;;;;;;;;12134:26;;:12;:10;:12::i;:::-;:26;;;12126:35;;;;;;12180:10;;;;;;;;;;;12172:28;;:51;12201:21;12172:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12085:146::o;9531:163::-;2593:12;:10;:12::i;:::-;2583:22;;:6;;;;;;;;;;:22;;;2575:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9604:6:::1;9599:88;9620:5;:12;9616:1;:16;9599:88;;;9671:4;9654;:14;9659:5;9665:1;9659:8;;;;;;;;:::i;:::-;;;;;;;;9654:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;9634:3;;;;;;;9599:88;;;;9531:163:::0;:::o;6528:363::-;6626:4;6643:36;6653:6;6661:9;6672:6;6643:9;:36::i;:::-;6690:171;6713:6;6734:12;:10;:12::i;:::-;6761:89;6799:6;6761:89;;;;;;;;;;;;;;;;;:11;:19;6773:6;6761:19;;;;;;;;;;;;;;;:33;6781:12;:10;:12::i;:::-;6761:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6690:8;:171::i;:::-;6879:4;6872:11;;6528:363;;;;;:::o;5712:83::-;5753:5;4316:1;5771:16;;5712:83;:::o;12239:381::-;12305:10;;;;;;;;;;;12289:26;;:12;:10;:12::i;:::-;:26;;;12281:35;;;;;;12327:20;12350:24;12368:4;12350:9;:24::i;:::-;12327:47;;12404:1;12389:12;:16;:31;;;;;12409:11;;;;;;;;;;;12389:31;12385:94;;;12437:30;12454:12;12437:16;:30::i;:::-;12385:94;12489:18;12510:21;12489:42;;12559:1;12546:10;:14;12542:71;;;12577:24;12590:10;12577:12;:24::i;:::-;12542:71;12270:350;;12239:381::o;10753:766::-;2593:12;:10;:12::i;:::-;2583:22;;:6;;;;;;;;;;:22;;;2575:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10815:11:::1;;;;;;;;;;;10814:12;10806:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;10902:42;10865:15;;:80;;;;;;;;;;;;;;;;;;10956:58;10973:4;10988:15;;;;;;;;;;;4316:1;4374:2;:15;;;;:::i;:::-;4359:12;:30;;;;:::i;:::-;10956:8;:58::i;:::-;11059:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11041:55;;;11105:4;11112:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11041:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11025:13;;:110;;;;;;;;;;;;;;;;;;11146:15;;;;;;;;;;;:31;;;11186:21;11232:4;11252:24;11270:4;11252:9;:24::i;:::-;11291:1;11307::::0;11323:7:::1;:5;:7::i;:::-;11345:15;11146:225;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11389:13;;;;;;;;;;;11382:29;;;11420:15;;;;;;;;;;;11438:14;11382:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11478:4;11464:11;;:18;;;;;;;;;;;;;;;;;;11507:4;11493:11;;:18;;;;;;;;;;;;;;;;;;10753:766::o:0;5906:119::-;5972:7;5999:9;:18;6009:7;5999:18;;;;;;;;;;;;;;;;5992:25;;5906:119;;;:::o;2670:148::-;2593:12;:10;:12::i;:::-;2583:22;;:6;;;;;;;;;;:22;;;2575:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2777:1:::1;2740:40;;2761:6;::::0;::::1;;;;;;;;2740:40;;;;;;;;;;;;2808:1;2791:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2670:148::o:0;10483:162::-;2593:12;:10;:12::i;:::-;2583:22;;:6;;;;;;;;;;:22;;;2575:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4316:1:::1;4374:2;:15;;;;:::i;:::-;4359:12;:30;;;;:::i;:::-;10537:12;:22;;;;4316:1;4374:2;:15;;;;:::i;:::-;4359:12;:30;;;;:::i;:::-;10570:14;:24;;;;10610:27;4316:1;4374:2;:15;;;;:::i;:::-;4359:12;:30;;;;:::i;:::-;10610:27;;;;;;:::i;:::-;;;;;;;;10483:162::o:0;4515:58::-;;;;:::o;11809:268::-;11909:10;;;;;;;;;;;11893:26;;:12;:10;:12::i;:::-;:26;;;11885:35;;;;;;11931:15;11949:63;12008:3;11949:54;11995:7;11956:8;11949:26;;;11984:4;11949:41;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:45;;:54;;;;:::i;:::-;:58;;:63;;;;:::i;:::-;11931:81;;12030:8;12023:25;;;12049:10;;;;;;;;;;;12061:7;12023:46;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11874:203;11809:268;;:::o;2456:79::-;2494:7;2521:6;;;;;;;;;;;2514:13;;2456:79;:::o;4580:60::-;;;;:::o;5617:87::-;5656:13;5689:7;;;;;;;;;;;;;;;;;5682:14;;5617:87;:::o;6033:167::-;6111:4;6128:42;6138:12;:10;:12::i;:::-;6152:9;6163:6;6128:9;:42::i;:::-;6188:4;6181:11;;6033:167;;;;:::o;4647:63::-;;;;:::o;9702:167::-;2593:12;:10;:12::i;:::-;2583:22;;:6;;;;;;;;;;:22;;;2575:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9776:6:::1;9771:91;9792:6;:13;9788:1;:17;9771:91;;;9845:5;9827:4;:15;9832:6;9839:1;9832:9;;;;;;;;:::i;:::-;;;;;;;;9827:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;9807:3;;;;;;;9771:91;;;;9702:167:::0;:::o;6208:143::-;6289:7;6316:11;:18;6328:5;6316:18;;;;;;;;;;;;;;;:27;6335:7;6316:27;;;;;;;;;;;;;;;;6309:34;;6208:143;;;;:::o;11527:237::-;11607:10;;;;;;;;;;;11591:26;;:12;:10;:12::i;:::-;:26;;;11583:35;;;;;;11648:12;;11637:7;:23;;:51;;;;;11675:13;;11664:7;:24;;11637:51;11629:60;;;;;;11715:7;11700:12;:22;;;;11749:7;11733:13;:23;;;;11527:237;:::o;202:98::-;255:7;282:10;275:17;;202:98;:::o;6899:335::-;7009:1;6992:19;;:5;:19;;;6984:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7090:1;7071:21;;:7;:21;;;7063:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7172:6;7142:11;:18;7154:5;7142:18;;;;;;;;;;;;;;;:27;7161:7;7142:27;;;;;;;;;;;;;;;:36;;;;7210:7;7194:32;;7203:5;7194:32;;;7219:6;7194:32;;;;;;:::i;:::-;;;;;;;;6899:335;;;:::o;7242:2281::-;7346:1;7330:18;;:4;:18;;;7322:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7423:1;7409:16;;:2;:16;;;7401:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7493:1;7484:6;:10;7476:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7551:17;7595:7;:5;:7::i;:::-;7587:15;;:4;:15;;;;:32;;;;;7612:7;:5;:7::i;:::-;7606:13;;:2;:13;;;;7587:32;:52;;;;;7629:10;;;;;;;;;;;7623:16;;:2;:16;;;;7587:52;7583:1569;;;7668:82;7746:3;7668:73;7692:15;;7680:9;;:27;7679:61;;7726:14;;7679:61;;;7711:12;;7679:61;7668:6;:10;;:73;;;;:::i;:::-;:77;;:82;;;;:::i;:::-;7656:94;;7779:13;;;;;;;;;;;7771:21;;:4;:21;;;:55;;;;;7810:15;;;;;;;;;;;7796:30;;:2;:30;;;;7771:55;:82;;;;;7831:18;:22;7850:2;7831:22;;;;;;;;;;;;;;;;;;;;;;;;;7830:23;7771:82;7767:311;;;7892:12;;7882:6;:22;;7874:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;7987:14;;7977:6;7961:13;7971:2;7961:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;7953:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8051:9;;:11;;;;;;;;;:::i;:::-;;;;;;7767:311;8104:13;;;;;;;;;;;8098:19;;:2;:19;;;:44;;;;;8137:4;8121:21;;:4;:21;;;;8098:44;8094:182;;;8175:85;8256:3;8175:76;8199:16;;8187:9;;:28;8186:64;;8235:15;;8186:64;;;8219:13;;8186:64;8175:6;:10;;:76;;;;:::i;:::-;:80;;:85;;;;:::i;:::-;8163:97;;8094:182;8292:28;8323:24;8341:4;8323:9;:24::i;:::-;8292:55;;8385:6;;;;;;;;;;;8384:7;:47;;;;;8418:13;;;;;;;;;;;8412:19;;:2;:19;;;8384:47;:79;;;;;8452:11;;;;;;;;;;;8384:79;:140;;;;;8507:17;;8484:20;:40;8384:140;:191;;;;;8557:18;;8545:9;;:30;8384:191;8362:779;;;8629:13;;8614:12;:28;8610:90;;;8679:1;8667:9;:13;;;;8610:90;8738:1;8726:9;;:13;8718:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;8786:69;8803:51;8807:6;8815:38;8819:20;8841:11;;8815:3;:38::i;:::-;8803:3;:51::i;:::-;8786:16;:69::i;:::-;8874:26;8903:21;8874:50;;8968:1;8947:18;:22;8943:106;;;8994:35;9007:21;8994:12;:35::i;:::-;8943:106;9067:9;;:11;;;;;;;;;:::i;:::-;;;;;;9113:12;9097:13;:28;;;;8591:550;8362:779;7641:1511;7583:1569;9180:1;9168:9;:13;9164:172;;;9225:39;9254:9;9225;:24;9243:4;9225:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9198:9;:24;9216:4;9198:24;;;;;;;;;;;;;;;:66;;;;9307:4;9284:40;;9293:4;9284:40;;;9314:9;9284:40;;;;;;:::i;:::-;;;;;;;;9164:172;9364:27;9384:6;9364:9;:15;9374:4;9364:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9346:9;:15;9356:4;9346:15;;;;;;;;;;;;;;;:45;;;;9418:40;9436:21;9447:9;9436:6;:10;;:21;;;;:::i;:::-;9418:9;:13;9428:2;9418:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9402:9;:13;9412:2;9402:13;;;;;;;;;;;;;;;:56;;;;9489:2;9474:41;;9483:4;9474:41;;;9493:21;9504:9;9493:6;:10;;:21;;;;:::i;:::-;9474:41;;;;;;:::i;:::-;;;;;;;;7311:2212;7242:2281;;;:::o;1351:190::-;1437:7;1470:1;1465;:6;;1473:12;1457:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1497:9;1513:1;1509;:5;;;;:::i;:::-;1497:17;;1532:1;1525:8;;;1351:190;;;;;:::o;9992:483::-;5143:4;5134:6;;:13;;;;;;;;;;;;;;;;;;10070:21:::1;10108:1;10094:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10070:40;;10139:4;10121;10126:1;10121:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10165:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10155:4;10160:1;10155:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10198:62;10215:4;10230:15;;;;;;;;;;;10248:11;10198:8;:62::i;:::-;10271:15;;;;;;;;;;;:66;;;10352:11;10378:1;10394:4;10421;10441:15;10271:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10059:416;5179:5:::0;5170:6;;:14;;;;;;;;;;;;;;;;;;9992:483;:::o;10653:92::-;10710:10;;;;;;;;;;;:19;;:27;10730:6;10710:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10653:92;:::o;1549:246::-;1607:7;1636:1;1631;:6;1627:47;;1661:1;1654:8;;;;1627:47;1684:9;1700:1;1696;:5;;;;:::i;:::-;1684:17;;1729:1;1724;1720;:5;;;;:::i;:::-;:10;1712:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1786:1;1779:8;;;1549:246;;;;;:::o;1803:132::-;1861:7;1888:39;1892:1;1895;1888:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1881:46;;1803:132;;;;:::o;9877:107::-;9934:7;9966:1;9962;:5;9961:15;;9975:1;9961:15;;;9971:1;9961:15;9954:22;;9877:107;;;;:::o;1020:179::-;1078:7;1098:9;1114:1;1110;:5;;;;:::i;:::-;1098:17;;1139:1;1134;:6;;1126:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1190:1;1183:8;;;1020:179;;;;:::o;1207:136::-;1265:7;1292:43;1296:1;1299;1292:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1285:50;;1207:136;;;;:::o;1943:189::-;2029:7;2061:1;2057;:5;2064:12;2049:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2088:9;2104:1;2100;:5;;;;:::i;:::-;2088:17;;2123:1;2116:8;;;1943:189;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1242:75::-;1275:6;1308:2;1302:9;1292:19;;1242:75;:::o;1323:117::-;1432:1;1429;1422:12;1446:117;1555:1;1552;1545:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:118::-;3426:24;3444:5;3426:24;:::i;:::-;3421:3;3414:37;3339:118;;:::o;3463:222::-;3556:4;3594:2;3583:9;3579:18;3571:26;;3607:71;3675:1;3664:9;3660:17;3651:6;3607:71;:::i;:::-;3463:222;;;;:::o;3691:117::-;3800:1;3797;3790:12;3814:180;3862:77;3859:1;3852:88;3959:4;3956:1;3949:15;3983:4;3980:1;3973:15;4000:281;4083:27;4105:4;4083:27;:::i;:::-;4075:6;4071:40;4213:6;4201:10;4198:22;4177:18;4165:10;4162:34;4159:62;4156:88;;;4224:18;;:::i;:::-;4156:88;4264:10;4260:2;4253:22;4043:238;4000:281;;:::o;4287:129::-;4321:6;4348:20;;:::i;:::-;4338:30;;4377:33;4405:4;4397:6;4377:33;:::i;:::-;4287:129;;;:::o;4422:311::-;4499:4;4589:18;4581:6;4578:30;4575:56;;;4611:18;;:::i;:::-;4575:56;4661:4;4653:6;4649:17;4641:25;;4721:4;4715;4711:15;4703:23;;4422:311;;;:::o;4739:117::-;4848:1;4845;4838:12;4879:710;4975:5;5000:81;5016:64;5073:6;5016:64;:::i;:::-;5000:81;:::i;:::-;4991:90;;5101:5;5130:6;5123:5;5116:21;5164:4;5157:5;5153:16;5146:23;;5217:4;5209:6;5205:17;5197:6;5193:30;5246:3;5238:6;5235:15;5232:122;;;5265:79;;:::i;:::-;5232:122;5380:6;5363:220;5397:6;5392:3;5389:15;5363:220;;;5472:3;5501:37;5534:3;5522:10;5501:37;:::i;:::-;5496:3;5489:50;5568:4;5563:3;5559:14;5552:21;;5439:144;5423:4;5418:3;5414:14;5407:21;;5363:220;;;5367:21;4981:608;;4879:710;;;;;:::o;5612:370::-;5683:5;5732:3;5725:4;5717:6;5713:17;5709:27;5699:122;;5740:79;;:::i;:::-;5699:122;5857:6;5844:20;5882:94;5972:3;5964:6;5957:4;5949:6;5945:17;5882:94;:::i;:::-;5873:103;;5689:293;5612:370;;;;:::o;5988:539::-;6072:6;6121:2;6109:9;6100:7;6096:23;6092:32;6089:119;;;6127:79;;:::i;:::-;6089:119;6275:1;6264:9;6260:17;6247:31;6305:18;6297:6;6294:30;6291:117;;;6327:79;;:::i;:::-;6291:117;6432:78;6502:7;6493:6;6482:9;6478:22;6432:78;:::i;:::-;6422:88;;6218:302;5988:539;;;;:::o;6533:619::-;6610:6;6618;6626;6675:2;6663:9;6654:7;6650:23;6646:32;6643:119;;;6681:79;;:::i;:::-;6643:119;6801:1;6826:53;6871:7;6862:6;6851:9;6847:22;6826:53;:::i;:::-;6816:63;;6772:117;6928:2;6954:53;6999:7;6990:6;6979:9;6975:22;6954:53;:::i;:::-;6944:63;;6899:118;7056:2;7082:53;7127:7;7118:6;7107:9;7103:22;7082:53;:::i;:::-;7072:63;;7027:118;6533:619;;;;;:::o;7158:86::-;7193:7;7233:4;7226:5;7222:16;7211:27;;7158:86;;;:::o;7250:112::-;7333:22;7349:5;7333:22;:::i;:::-;7328:3;7321:35;7250:112;;:::o;7368:214::-;7457:4;7495:2;7484:9;7480:18;7472:26;;7508:67;7572:1;7561:9;7557:17;7548:6;7508:67;:::i;:::-;7368:214;;;;:::o;7588:329::-;7647:6;7696:2;7684:9;7675:7;7671:23;7667:32;7664:119;;;7702:79;;:::i;:::-;7664:119;7822:1;7847:53;7892:7;7883:6;7872:9;7868:22;7847:53;:::i;:::-;7837:63;;7793:117;7588:329;;;;:::o;7923:118::-;8010:24;8028:5;8010:24;:::i;:::-;8005:3;7998:37;7923:118;;:::o;8047:222::-;8140:4;8178:2;8167:9;8163:18;8155:26;;8191:71;8259:1;8248:9;8244:17;8235:6;8191:71;:::i;:::-;8047:222;;;;:::o;8275:474::-;8343:6;8351;8400:2;8388:9;8379:7;8375:23;8371:32;8368:119;;;8406:79;;:::i;:::-;8368:119;8526:1;8551:53;8596:7;8587:6;8576:9;8572:22;8551:53;:::i;:::-;8541:63;;8497:117;8653:2;8679:53;8724:7;8715:6;8704:9;8700:22;8679:53;:::i;:::-;8669:63;;8624:118;8275:474;;;;;:::o;8755:329::-;8814:6;8863:2;8851:9;8842:7;8838:23;8834:32;8831:119;;;8869:79;;:::i;:::-;8831:119;8989:1;9014:53;9059:7;9050:6;9039:9;9035:22;9014:53;:::i;:::-;9004:63;;8960:117;8755:329;;;;:::o;9090:180::-;9138:77;9135:1;9128:88;9235:4;9232:1;9225:15;9259:4;9256:1;9249:15;9276:102;9318:8;9365:5;9362:1;9358:13;9337:34;;9276:102;;;:::o;9384:848::-;9445:5;9452:4;9476:6;9467:15;;9500:5;9491:14;;9514:712;9535:1;9525:8;9522:15;9514:712;;;9630:4;9625:3;9621:14;9615:4;9612:24;9609:50;;;9639:18;;:::i;:::-;9609:50;9689:1;9679:8;9675:16;9672:451;;;10104:4;10097:5;10093:16;10084:25;;9672:451;10154:4;10148;10144:15;10136:23;;10184:32;10207:8;10184:32;:::i;:::-;10172:44;;9514:712;;;9384:848;;;;;;;:::o;10238:1073::-;10292:5;10483:8;10473:40;;10504:1;10495:10;;10506:5;;10473:40;10532:4;10522:36;;10549:1;10540:10;;10551:5;;10522:36;10618:4;10666:1;10661:27;;;;10702:1;10697:191;;;;10611:277;;10661:27;10679:1;10670:10;;10681:5;;;10697:191;10742:3;10732:8;10729:17;10726:43;;;10749:18;;:::i;:::-;10726:43;10798:8;10795:1;10791:16;10782:25;;10833:3;10826:5;10823:14;10820:40;;;10840:18;;:::i;:::-;10820:40;10873:5;;;10611:277;;10997:2;10987:8;10984:16;10978:3;10972:4;10969:13;10965:36;10947:2;10937:8;10934:16;10929:2;10923:4;10920:12;10916:35;10900:111;10897:246;;;11053:8;11047:4;11043:19;11034:28;;11088:3;11081:5;11078:14;11075:40;;;11095:18;;:::i;:::-;11075:40;11128:5;;10897:246;11168:42;11206:3;11196:8;11190:4;11187:1;11168:42;:::i;:::-;11153:57;;;;11242:4;11237:3;11233:14;11226:5;11223:25;11220:51;;;11251:18;;:::i;:::-;11220:51;11300:4;11293:5;11289:16;11280:25;;10238:1073;;;;;;:::o;11317:281::-;11375:5;11399:23;11417:4;11399:23;:::i;:::-;11391:31;;11443:25;11459:8;11443:25;:::i;:::-;11431:37;;11487:104;11524:66;11514:8;11508:4;11487:104;:::i;:::-;11478:113;;11317:281;;;;:::o;11604:410::-;11644:7;11667:20;11685:1;11667:20;:::i;:::-;11662:25;;11701:20;11719:1;11701:20;:::i;:::-;11696:25;;11756:1;11753;11749:9;11778:30;11796:11;11778:30;:::i;:::-;11767:41;;11957:1;11948:7;11944:15;11941:1;11938:22;11918:1;11911:9;11891:83;11868:139;;11987:18;;:::i;:::-;11868:139;11652:362;11604:410;;;;:::o;12020:182::-;12160:34;12156:1;12148:6;12144:14;12137:58;12020:182;:::o;12208:366::-;12350:3;12371:67;12435:2;12430:3;12371:67;:::i;:::-;12364:74;;12447:93;12536:3;12447:93;:::i;:::-;12565:2;12560:3;12556:12;12549:19;;12208:366;;;:::o;12580:419::-;12746:4;12784:2;12773:9;12769:18;12761:26;;12833:9;12827:4;12823:20;12819:1;12808:9;12804:17;12797:47;12861:131;12987:4;12861:131;:::i;:::-;12853:139;;12580:419;;;:::o;13005:180::-;13053:77;13050:1;13043:88;13150:4;13147:1;13140:15;13174:4;13171:1;13164:15;13191:173;13331:25;13327:1;13319:6;13315:14;13308:49;13191:173;:::o;13370:366::-;13512:3;13533:67;13597:2;13592:3;13533:67;:::i;:::-;13526:74;;13609:93;13698:3;13609:93;:::i;:::-;13727:2;13722:3;13718:12;13711:19;;13370:366;;;:::o;13742:419::-;13908:4;13946:2;13935:9;13931:18;13923:26;;13995:9;13989:4;13985:20;13981:1;13970:9;13966:17;13959:47;14023:131;14149:4;14023:131;:::i;:::-;14015:139;;13742:419;;;:::o;14167:143::-;14224:5;14255:6;14249:13;14240:22;;14271:33;14298:5;14271:33;:::i;:::-;14167:143;;;;:::o;14316:351::-;14386:6;14435:2;14423:9;14414:7;14410:23;14406:32;14403:119;;;14441:79;;:::i;:::-;14403:119;14561:1;14586:64;14642:7;14633:6;14622:9;14618:22;14586:64;:::i;:::-;14576:74;;14532:128;14316:351;;;;:::o;14673:332::-;14794:4;14832:2;14821:9;14817:18;14809:26;;14845:71;14913:1;14902:9;14898:17;14889:6;14845:71;:::i;:::-;14926:72;14994:2;14983:9;14979:18;14970:6;14926:72;:::i;:::-;14673:332;;;;;:::o;15011:85::-;15056:7;15085:5;15074:16;;15011:85;;;:::o;15102:60::-;15130:3;15151:5;15144:12;;15102:60;;;:::o;15168:158::-;15226:9;15259:61;15277:42;15286:32;15312:5;15286:32;:::i;:::-;15277:42;:::i;:::-;15259:61;:::i;:::-;15246:74;;15168:158;;;:::o;15332:147::-;15427:45;15466:5;15427:45;:::i;:::-;15422:3;15415:58;15332:147;;:::o;15485:807::-;15734:4;15772:3;15761:9;15757:19;15749:27;;15786:71;15854:1;15843:9;15839:17;15830:6;15786:71;:::i;:::-;15867:72;15935:2;15924:9;15920:18;15911:6;15867:72;:::i;:::-;15949:80;16025:2;16014:9;16010:18;16001:6;15949:80;:::i;:::-;16039;16115:2;16104:9;16100:18;16091:6;16039:80;:::i;:::-;16129:73;16197:3;16186:9;16182:19;16173:6;16129:73;:::i;:::-;16212;16280:3;16269:9;16265:19;16256:6;16212:73;:::i;:::-;15485:807;;;;;;;;;:::o;16298:143::-;16355:5;16386:6;16380:13;16371:22;;16402:33;16429:5;16402:33;:::i;:::-;16298:143;;;;:::o;16447:663::-;16535:6;16543;16551;16600:2;16588:9;16579:7;16575:23;16571:32;16568:119;;;16606:79;;:::i;:::-;16568:119;16726:1;16751:64;16807:7;16798:6;16787:9;16783:22;16751:64;:::i;:::-;16741:74;;16697:128;16864:2;16890:64;16946:7;16937:6;16926:9;16922:22;16890:64;:::i;:::-;16880:74;;16835:129;17003:2;17029:64;17085:7;17076:6;17065:9;17061:22;17029:64;:::i;:::-;17019:74;;16974:129;16447:663;;;;;:::o;17116:332::-;17237:4;17275:2;17264:9;17260:18;17252:26;;17288:71;17356:1;17345:9;17341:17;17332:6;17288:71;:::i;:::-;17369:72;17437:2;17426:9;17422:18;17413:6;17369:72;:::i;:::-;17116:332;;;;;:::o;17454:116::-;17524:21;17539:5;17524:21;:::i;:::-;17517:5;17514:32;17504:60;;17560:1;17557;17550:12;17504:60;17454:116;:::o;17576:137::-;17630:5;17661:6;17655:13;17646:22;;17677:30;17701:5;17677:30;:::i;:::-;17576:137;;;;:::o;17719:345::-;17786:6;17835:2;17823:9;17814:7;17810:23;17806:32;17803:119;;;17841:79;;:::i;:::-;17803:119;17961:1;17986:61;18039:7;18030:6;18019:9;18015:22;17986:61;:::i;:::-;17976:71;;17932:125;17719:345;;;;:::o;18070:351::-;18140:6;18189:2;18177:9;18168:7;18164:23;18160:32;18157:119;;;18195:79;;:::i;:::-;18157:119;18315:1;18340:64;18396:7;18387:6;18376:9;18372:22;18340:64;:::i;:::-;18330:74;;18286:128;18070:351;;;;:::o;18427:142::-;18477:9;18510:53;18528:34;18537:24;18555:5;18537:24;:::i;:::-;18528:34;:::i;:::-;18510:53;:::i;:::-;18497:66;;18427:142;;;:::o;18575:126::-;18625:9;18658:37;18689:5;18658:37;:::i;:::-;18645:50;;18575:126;;;:::o;18707:134::-;18765:9;18798:37;18829:5;18798:37;:::i;:::-;18785:50;;18707:134;;;:::o;18847:147::-;18942:45;18981:5;18942:45;:::i;:::-;18937:3;18930:58;18847:147;;:::o;19000:348::-;19129:4;19167:2;19156:9;19152:18;19144:26;;19180:79;19256:1;19245:9;19241:17;19232:6;19180:79;:::i;:::-;19269:72;19337:2;19326:9;19322:18;19313:6;19269:72;:::i;:::-;19000:348;;;;;:::o;19354:223::-;19494:34;19490:1;19482:6;19478:14;19471:58;19563:6;19558:2;19550:6;19546:15;19539:31;19354:223;:::o;19583:366::-;19725:3;19746:67;19810:2;19805:3;19746:67;:::i;:::-;19739:74;;19822:93;19911:3;19822:93;:::i;:::-;19940:2;19935:3;19931:12;19924:19;;19583:366;;;:::o;19955:419::-;20121:4;20159:2;20148:9;20144:18;20136:26;;20208:9;20202:4;20198:20;20194:1;20183:9;20179:17;20172:47;20236:131;20362:4;20236:131;:::i;:::-;20228:139;;19955:419;;;:::o;20380:221::-;20520:34;20516:1;20508:6;20504:14;20497:58;20589:4;20584:2;20576:6;20572:15;20565:29;20380:221;:::o;20607:366::-;20749:3;20770:67;20834:2;20829:3;20770:67;:::i;:::-;20763:74;;20846:93;20935:3;20846:93;:::i;:::-;20964:2;20959:3;20955:12;20948:19;;20607:366;;;:::o;20979:419::-;21145:4;21183:2;21172:9;21168:18;21160:26;;21232:9;21226:4;21222:20;21218:1;21207:9;21203:17;21196:47;21260:131;21386:4;21260:131;:::i;:::-;21252:139;;20979:419;;;:::o;21404:224::-;21544:34;21540:1;21532:6;21528:14;21521:58;21613:7;21608:2;21600:6;21596:15;21589:32;21404:224;:::o;21634:366::-;21776:3;21797:67;21861:2;21856:3;21797:67;:::i;:::-;21790:74;;21873:93;21962:3;21873:93;:::i;:::-;21991:2;21986:3;21982:12;21975:19;;21634:366;;;:::o;22006:419::-;22172:4;22210:2;22199:9;22195:18;22187:26;;22259:9;22253:4;22249:20;22245:1;22234:9;22230:17;22223:47;22287:131;22413:4;22287:131;:::i;:::-;22279:139;;22006:419;;;:::o;22431:222::-;22571:34;22567:1;22559:6;22555:14;22548:58;22640:5;22635:2;22627:6;22623:15;22616:30;22431:222;:::o;22659:366::-;22801:3;22822:67;22886:2;22881:3;22822:67;:::i;:::-;22815:74;;22898:93;22987:3;22898:93;:::i;:::-;23016:2;23011:3;23007:12;23000:19;;22659:366;;;:::o;23031:419::-;23197:4;23235:2;23224:9;23220:18;23212:26;;23284:9;23278:4;23274:20;23270:1;23259:9;23255:17;23248:47;23312:131;23438:4;23312:131;:::i;:::-;23304:139;;23031:419;;;:::o;23456:228::-;23596:34;23592:1;23584:6;23580:14;23573:58;23665:11;23660:2;23652:6;23648:15;23641:36;23456:228;:::o;23690:366::-;23832:3;23853:67;23917:2;23912:3;23853:67;:::i;:::-;23846:74;;23929:93;24018:3;23929:93;:::i;:::-;24047:2;24042:3;24038:12;24031:19;;23690:366;;;:::o;24062:419::-;24228:4;24266:2;24255:9;24251:18;24243:26;;24315:9;24309:4;24305:20;24301:1;24290:9;24286:17;24279:47;24343:131;24469:4;24343:131;:::i;:::-;24335:139;;24062:419;;;:::o;24487:175::-;24627:27;24623:1;24615:6;24611:14;24604:51;24487:175;:::o;24668:366::-;24810:3;24831:67;24895:2;24890:3;24831:67;:::i;:::-;24824:74;;24907:93;24996:3;24907:93;:::i;:::-;25025:2;25020:3;25016:12;25009:19;;24668:366;;;:::o;25040:419::-;25206:4;25244:2;25233:9;25229:18;25221:26;;25293:9;25287:4;25283:20;25279:1;25268:9;25264:17;25257:47;25321:131;25447:4;25321:131;:::i;:::-;25313:139;;25040:419;;;:::o;25465:191::-;25505:3;25524:20;25542:1;25524:20;:::i;:::-;25519:25;;25558:20;25576:1;25558:20;:::i;:::-;25553:25;;25601:1;25598;25594:9;25587:16;;25622:3;25619:1;25616:10;25613:36;;;25629:18;;:::i;:::-;25613:36;25465:191;;;;:::o;25662:176::-;25802:28;25798:1;25790:6;25786:14;25779:52;25662:176;:::o;25844:366::-;25986:3;26007:67;26071:2;26066:3;26007:67;:::i;:::-;26000:74;;26083:93;26172:3;26083:93;:::i;:::-;26201:2;26196:3;26192:12;26185:19;;25844:366;;;:::o;26216:419::-;26382:4;26420:2;26409:9;26405:18;26397:26;;26469:9;26463:4;26459:20;26455:1;26444:9;26440:17;26433:47;26497:131;26623:4;26497:131;:::i;:::-;26489:139;;26216:419;;;:::o;26641:233::-;26680:3;26703:24;26721:5;26703:24;:::i;:::-;26694:33;;26749:66;26742:5;26739:77;26736:103;;26819:18;;:::i;:::-;26736:103;26866:1;26859:5;26855:13;26848:20;;26641:233;;;:::o;26880:173::-;27020:25;27016:1;27008:6;27004:14;26997:49;26880:173;:::o;27059:366::-;27201:3;27222:67;27286:2;27281:3;27222:67;:::i;:::-;27215:74;;27298:93;27387:3;27298:93;:::i;:::-;27416:2;27411:3;27407:12;27400:19;;27059:366;;;:::o;27431:419::-;27597:4;27635:2;27624:9;27620:18;27612:26;;27684:9;27678:4;27674:20;27670:1;27659:9;27655:17;27648:47;27712:131;27838:4;27712:131;:::i;:::-;27704:139;;27431:419;;;:::o;27856:194::-;27896:4;27916:20;27934:1;27916:20;:::i;:::-;27911:25;;27950:20;27968:1;27950:20;:::i;:::-;27945:25;;27994:1;27991;27987:9;27979:17;;28018:1;28012:4;28009:11;28006:37;;;28023:18;;:::i;:::-;28006:37;27856:194;;;;:::o;28056:114::-;28123:6;28157:5;28151:12;28141:22;;28056:114;;;:::o;28176:184::-;28275:11;28309:6;28304:3;28297:19;28349:4;28344:3;28340:14;28325:29;;28176:184;;;;:::o;28366:132::-;28433:4;28456:3;28448:11;;28486:4;28481:3;28477:14;28469:22;;28366:132;;;:::o;28504:108::-;28581:24;28599:5;28581:24;:::i;:::-;28576:3;28569:37;28504:108;;:::o;28618:179::-;28687:10;28708:46;28750:3;28742:6;28708:46;:::i;:::-;28786:4;28781:3;28777:14;28763:28;;28618:179;;;;:::o;28803:113::-;28873:4;28905;28900:3;28896:14;28888:22;;28803:113;;;:::o;28952:732::-;29071:3;29100:54;29148:5;29100:54;:::i;:::-;29170:86;29249:6;29244:3;29170:86;:::i;:::-;29163:93;;29280:56;29330:5;29280:56;:::i;:::-;29359:7;29390:1;29375:284;29400:6;29397:1;29394:13;29375:284;;;29476:6;29470:13;29503:63;29562:3;29547:13;29503:63;:::i;:::-;29496:70;;29589:60;29642:6;29589:60;:::i;:::-;29579:70;;29435:224;29422:1;29419;29415:9;29410:14;;29375:284;;;29379:14;29675:3;29668:10;;29076:608;;;28952:732;;;;:::o;29690:831::-;29953:4;29991:3;29980:9;29976:19;29968:27;;30005:71;30073:1;30062:9;30058:17;30049:6;30005:71;:::i;:::-;30086:80;30162:2;30151:9;30147:18;30138:6;30086:80;:::i;:::-;30213:9;30207:4;30203:20;30198:2;30187:9;30183:18;30176:48;30241:108;30344:4;30335:6;30241:108;:::i;:::-;30233:116;;30359:72;30427:2;30416:9;30412:18;30403:6;30359:72;:::i;:::-;30441:73;30509:3;30498:9;30494:19;30485:6;30441:73;:::i;:::-;29690:831;;;;;;;;:::o;30527:180::-;30575:77;30572:1;30565:88;30672:4;30669:1;30662:15;30696:4;30693:1;30686:15;30713:185;30753:1;30770:20;30788:1;30770:20;:::i;:::-;30765:25;;30804:20;30822:1;30804:20;:::i;:::-;30799:25;;30843:1;30833:35;;30848:18;;:::i;:::-;30833:35;30890:1;30887;30883:9;30878:14;;30713:185;;;;:::o;30904:220::-;31044:34;31040:1;31032:6;31028:14;31021:58;31113:3;31108:2;31100:6;31096:15;31089:28;30904:220;:::o;31130:366::-;31272:3;31293:67;31357:2;31352:3;31293:67;:::i;:::-;31286:74;;31369:93;31458:3;31369:93;:::i;:::-;31487:2;31482:3;31478:12;31471:19;;31130:366;;;:::o;31502:419::-;31668:4;31706:2;31695:9;31691:18;31683:26;;31755:9;31749:4;31745:20;31741:1;31730:9;31726:17;31719:47;31783:131;31909:4;31783:131;:::i;:::-;31775:139;;31502:419;;;:::o;31927:177::-;32067:29;32063:1;32055:6;32051:14;32044:53;31927:177;:::o;32110:366::-;32252:3;32273:67;32337:2;32332:3;32273:67;:::i;:::-;32266:74;;32349:93;32438:3;32349:93;:::i;:::-;32467:2;32462:3;32458:12;32451:19;;32110:366;;;:::o;32482:419::-;32648:4;32686:2;32675:9;32671:18;32663:26;;32735:9;32729:4;32725:20;32721:1;32710:9;32706:17;32699:47;32763:131;32889:4;32763:131;:::i;:::-;32755:139;;32482:419;;;:::o
Swarm Source
ipfs://8ca44b692acac9b524cacbe2037437daa8c79c4519bf6a3ad754139b437f4532
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.