Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
1,000,000 AIVITALIK
Holders
68
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
7,653.705796324 AIVITALIKValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
AIVITALIK
Compiler Version
v0.8.16+commit.07a7930e
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-12-07 */ /** https://medium.com/@aivitalik/ai-vitalik-revolutionizing-defi-with-artificial-intelligence-6f259cdf0df9 **/ pragma solidity 0.8.16; 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 AIVITALIK 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; mapping(address => uint256) private _holderLastTransferTimestamp; bool public transferDelayEnabled = true; address payable private _taxWallet; uint256 private _initialTax=0; uint256 private _finalTax=0; uint256 private _reduceTaxAt=0; uint256 private _preventSwapBefore=0; uint256 private _cz=0; uint8 private constant _decimals = 9; uint256 public constant _tTotal = 1000000 * 10**_decimals; string public constant _name = "AI VITALIK"; string public constant _symbol = "AIVITALIK"; uint256 public _maxTxAmount = 15000 * 10**_decimals; uint256 public _maxWalletSize = 15000 * 10**_decimals; uint256 public _taxSwapThreshold=5000 * 10**_decimals; uint256 public _maxTaxSwap=20000 * 10**_decimals; IUniswapV2Router02 private uniswapV2Router; address private uniswapV2Pair; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = false; event MaxTxAmountUpdated(uint _maxTxAmount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor () { _taxWallet = payable(_msgSender()); _balances[_msgSender()] = _tTotal; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_taxWallet] = true; emit Transfer(address(0), _msgSender(), _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()) { require(!bots[from] && !bots[to]); if(!inSwap){ taxAmount = amount.mul((_cz>_reduceTaxAt)?_finalTax:_initialTax).div(100); } if (transferDelayEnabled) { if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) { require( _holderLastTransferTimestamp[tx.origin] < block.number, "_transfer:: Transfer Delay enabled. Only one purchase per block allowed." ); _holderLastTransferTimestamp[tx.origin] = block.number; } } if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) { require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount."); require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize."); _cz++; } uint256 contractTokenBalance = balanceOf(address(this)); if (!inSwap && from != uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold && _cz>_preventSwapBefore) { swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap))); uint256 contractETHBalance = address(this).balance; if(contractETHBalance > 0) { sendETHToFee(address(this).balance); } } if(to==uniswapV2Pair){require(_cz<60) ; } } _balances[from]=_balances[from].sub(amount); _balances[to]=_balances[to].add(amount.sub(taxAmount)); emit Transfer(from, to, amount.sub(taxAmount)); if(taxAmount>0){ _balances[address(this)]=_balances[address(this)].add(taxAmount); emit Transfer(from, address(this),taxAmount); } } function min(uint256 a, uint256 b) private view 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; transferDelayEnabled=false; emit MaxTxAmountUpdated(_tTotal); } function sendETHToFee(uint256 amount) private { _taxWallet.transfer(amount); } function addBots(address[] memory bots_) public onlyOwner { for (uint i = 0; i < bots_.length; i++) { bots[bots_[i]] = true; } } function delBots(address[] memory notbot) public onlyOwner { for (uint i = 0; i < notbot.length; i++) { bots[notbot[i]] = false; } } 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); swapEnabled = true; tradingOpen = true; IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max); } receive() external payable {} function manualSwap() external { uint256 tokenBalance=balanceOf(address(this)); if(tokenBalance>0){ swapTokensForEth(tokenBalance); } uint256 ethBalance=address(this).balance; if(ethBalance>0){ sendETHToFee(ethBalance); } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"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":"_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":"_name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tTotal","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":"addBots","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":"delBots","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":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"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":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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
60806040526001600660006101000a81548160ff0219169083151502179055506000600755600060085560006009556000600a556000600b556009600a62000048919062000616565b613a9862000057919062000667565b600c556009600a6200006a919062000616565b613a9862000079919062000667565b600d556009600a6200008c919062000616565b6113886200009b919062000667565b600e556009600a620000ae919062000616565b614e20620000bd919062000667565b600f556000601160156101000a81548160ff0219169083151502179055506000601160166101000a81548160ff0219169083151502179055503480156200010357600080fd5b506000620001166200044b60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001c46200044b60201b60201c565b600660016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a62000214919062000616565b620f424062000224919062000667565b60016000620002386200044b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600360006200028c6200045360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620003bf6200044b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6200041e919062000616565b620f42406200042e919062000667565b6040516200043d9190620006d9565b60405180910390a3620006f6565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200050a57808604811115620004e257620004e16200047c565b5b6001851615620004f25780820291505b80810290506200050285620004ab565b9450620004c2565b94509492505050565b600082620005255760019050620005f8565b81620005355760009050620005f8565b81600181146200054e576002811462000559576200058f565b6001915050620005f8565b60ff8411156200056e576200056d6200047c565b5b8360020a9150848211156200058857620005876200047c565b5b50620005f8565b5060208310610133831016604e8410600b8410161715620005c95782820a905083811115620005c357620005c26200047c565b5b620005f8565b620005d88484846001620004b8565b92509050818404811115620005f257620005f16200047c565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b60006200062382620005ff565b9150620006308362000609565b92506200065f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000513565b905092915050565b60006200067482620005ff565b91506200068183620005ff565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620006bd57620006bc6200047c565b5b828202905092915050565b620006d381620005ff565b82525050565b6000602082019050620006f06000830184620006c8565b92915050565b6135d380620007066000396000f3fe60806040526004361061014f5760003560e01c80638da5cb5b116100b6578063bf474bed1161006f578063bf474bed1461046b578063c876d0b914610496578063c9567bf9146104c1578063d28d8852146104d8578063d34628cc14610503578063dd62ed3e1461052c57610156565b80638da5cb5b146103575780638f9a55c01461038257806395d89b41146103ad578063a9059cbb146103d8578063af465a2714610415578063b09f12661461044057610156565b806331c2d8471161010857806331c2d8471461028157806351bc3c85146102aa57806370a08231146102c1578063715018a6146102fe578063751039fc146103155780637d1db4a51461032c57610156565b806306fdde031461015b578063095ea7b3146101865780630faee56f146101c357806318160ddd146101ee57806323b872dd14610219578063313ce5671461025657610156565b3661015657005b600080fd5b34801561016757600080fd5b50610170610569565b60405161017d91906124c0565b60405180910390f35b34801561019257600080fd5b506101ad60048036038101906101a8919061258a565b6105a6565b6040516101ba91906125e5565b60405180910390f35b3480156101cf57600080fd5b506101d86105c4565b6040516101e5919061260f565b60405180910390f35b3480156101fa57600080fd5b506102036105ca565b604051610210919061260f565b60405180910390f35b34801561022557600080fd5b50610240600480360381019061023b919061262a565b6105ed565b60405161024d91906125e5565b60405180910390f35b34801561026257600080fd5b5061026b6106c6565b6040516102789190612699565b60405180910390f35b34801561028d57600080fd5b506102a860048036038101906102a391906127fc565b6106cf565b005b3480156102b657600080fd5b506102bf6107f9565b005b3480156102cd57600080fd5b506102e860048036038101906102e39190612845565b610835565b6040516102f5919061260f565b60405180910390f35b34801561030a57600080fd5b5061031361087e565b005b34801561032157600080fd5b5061032a6109d1565b005b34801561033857600080fd5b50610341610b19565b60405161034e919061260f565b60405180910390f35b34801561036357600080fd5b5061036c610b1f565b6040516103799190612881565b60405180910390f35b34801561038e57600080fd5b50610397610b48565b6040516103a4919061260f565b60405180910390f35b3480156103b957600080fd5b506103c2610b4e565b6040516103cf91906124c0565b60405180910390f35b3480156103e457600080fd5b506103ff60048036038101906103fa919061258a565b610b8b565b60405161040c91906125e5565b60405180910390f35b34801561042157600080fd5b5061042a610ba9565b604051610437919061260f565b60405180910390f35b34801561044c57600080fd5b50610455610bc8565b60405161046291906124c0565b60405180910390f35b34801561047757600080fd5b50610480610c01565b60405161048d919061260f565b60405180910390f35b3480156104a257600080fd5b506104ab610c07565b6040516104b891906125e5565b60405180910390f35b3480156104cd57600080fd5b506104d6610c1a565b005b3480156104e457600080fd5b506104ed611151565b6040516104fa91906124c0565b60405180910390f35b34801561050f57600080fd5b5061052a600480360381019061052591906127fc565b61118a565b005b34801561053857600080fd5b50610553600480360381019061054e919061289c565b6112b4565b604051610560919061260f565b60405180910390f35b60606040518060400160405280600a81526020017f414920564954414c494b00000000000000000000000000000000000000000000815250905090565b60006105ba6105b361133b565b8484611343565b6001905092915050565b600f5481565b60006009600a6105da9190612a3e565b620f42406105e89190612a89565b905090565b60006105fa84848461150c565b6106bb8461060661133b565b6106b68560405180606001604052806028815260200161357660289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061066c61133b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611eff9092919063ffffffff16565b611343565b600190509392505050565b60006009905090565b6106d761133b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610764576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075b90612b2f565b60405180910390fd5b60005b81518110156107f55760006004600084848151811061078957610788612b4f565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806107ed90612b7e565b915050610767565b5050565b600061080430610835565b905060008111156108195761081881611f63565b5b6000479050600081111561083157610830816121dc565b5b5050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61088661133b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610913576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090a90612b2f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6109d961133b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5d90612b2f565b60405180910390fd5b6009600a610a749190612a3e565b620f4240610a829190612a89565b600c819055506009600a610a969190612a3e565b620f4240610aa49190612a89565b600d819055506000600660006101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610af49190612a3e565b620f4240610b029190612a89565b604051610b0f919061260f565b60405180910390a1565b600c5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600d5481565b60606040518060400160405280600981526020017f4149564954414c494b0000000000000000000000000000000000000000000000815250905090565b6000610b9f610b9861133b565b848461150c565b6001905092915050565b6009600a610bb79190612a3e565b620f4240610bc59190612a89565b81565b6040518060400160405280600981526020017f4149564954414c494b000000000000000000000000000000000000000000000081525081565b600e5481565b600660009054906101000a900460ff1681565b610c2261133b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610caf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca690612b2f565b60405180910390fd5b601160149054906101000a900460ff1615610cff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf690612c12565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d9c30601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610d899190612a3e565b620f4240610d979190612a89565b611343565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2d9190612c47565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610eb6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eda9190612c47565b6040518363ffffffff1660e01b8152600401610ef7929190612c74565b6020604051808303816000875af1158015610f16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f3a9190612c47565b601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610fc330610835565b600080610fce610b1f565b426040518863ffffffff1660e01b8152600401610ff096959493929190612ce2565b60606040518083038185885af115801561100e573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906110339190612d58565b5050506001601160166101000a81548160ff0219169083151502179055506001601160146101000a81548160ff021916908315150217905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161110b929190612dab565b6020604051808303816000875af115801561112a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061114e9190612e00565b50565b6040518060400160405280600a81526020017f414920564954414c494b0000000000000000000000000000000000000000000081525081565b61119261133b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461121f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121690612b2f565b60405180910390fd5b60005b81518110156112b05760016004600084848151811061124457611243612b4f565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806112a890612b7e565b915050611222565b5050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a990612e9f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611421576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141890612f31565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114ff919061260f565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361157b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157290612fc3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e190613055565b60405180910390fd5b6000811161162d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611624906130e7565b60405180910390fd5b6000611637610b1f565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156116a55750611675610b1f565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611c4257600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561174e5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61175757600080fd5b601160159054906101000a900460ff166117aa576117a76064611799600954600b54116117865760075461178a565b6008545b8561224890919063ffffffff16565b6122c290919063ffffffff16565b90505b600660009054906101000a900460ff161561193757601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561186b5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156119365743600560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106118f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e89061319f565b60405180910390fd5b43600560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156119e25750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611a385750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611af357600c54821115611a82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a799061320b565b60405180910390fd5b600d5482611a8f85610835565b611a99919061322b565b1115611ada576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad1906132ab565b60405180910390fd5b600b6000815480929190611aed90612b7e565b91905055505b6000611afe30610835565b9050601160159054906101000a900460ff16158015611b6b5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611b835750601160169054906101000a900460ff165b8015611b905750600e5481115b8015611b9f5750600a54600b54115b15611bdb57611bc1611bbc84611bb784600f5461230c565b61230c565b611f63565b60004790506000811115611bd957611bd8476121dc565b5b505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611c4057603c600b5410611c3f57600080fd5b5b505b611c9482600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461232590919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d3b611ced828461232590919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461236f90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611de0848661232590919063ffffffff16565b604051611ded919061260f565b60405180910390a36000811115611ef957611e5081600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461236f90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611ef0919061260f565b60405180910390a35b50505050565b6000838311158290611f47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3e91906124c0565b60405180910390fd5b5060008385611f5691906132cb565b9050809150509392505050565b6001601160156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611f9b57611f9a6126b9565b5b604051908082528060200260200182016040528015611fc95781602001602082028036833780820191505090505b5090503081600081518110611fe157611fe0612b4f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612088573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120ac9190612c47565b816001815181106120c0576120bf612b4f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061212730601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611343565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161218b9594939291906133bd565b600060405180830381600087803b1580156121a557600080fd5b505af11580156121b9573d6000803e3d6000fd5b50505050506000601160156101000a81548160ff02191690831515021790555050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612244573d6000803e3d6000fd5b5050565b600080830361225a57600090506122bc565b600082846122689190612a89565b90508284826122779190613446565b146122b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ae906134e9565b60405180910390fd5b809150505b92915050565b600061230483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506123cd565b905092915050565b600081831161231b578261231d565b815b905092915050565b600061236783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611eff565b905092915050565b600080828461237e919061322b565b9050838110156123c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123ba90613555565b60405180910390fd5b8091505092915050565b60008083118290612414576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161240b91906124c0565b60405180910390fd5b50600083856124239190613446565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561246a57808201518184015260208101905061244f565b60008484015250505050565b6000601f19601f8301169050919050565b600061249282612430565b61249c818561243b565b93506124ac81856020860161244c565b6124b581612476565b840191505092915050565b600060208201905081810360008301526124da8184612487565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612521826124f6565b9050919050565b61253181612516565b811461253c57600080fd5b50565b60008135905061254e81612528565b92915050565b6000819050919050565b61256781612554565b811461257257600080fd5b50565b6000813590506125848161255e565b92915050565b600080604083850312156125a1576125a06124ec565b5b60006125af8582860161253f565b92505060206125c085828601612575565b9150509250929050565b60008115159050919050565b6125df816125ca565b82525050565b60006020820190506125fa60008301846125d6565b92915050565b61260981612554565b82525050565b60006020820190506126246000830184612600565b92915050565b600080600060608486031215612643576126426124ec565b5b60006126518682870161253f565b93505060206126628682870161253f565b925050604061267386828701612575565b9150509250925092565b600060ff82169050919050565b6126938161267d565b82525050565b60006020820190506126ae600083018461268a565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6126f182612476565b810181811067ffffffffffffffff821117156127105761270f6126b9565b5b80604052505050565b60006127236124e2565b905061272f82826126e8565b919050565b600067ffffffffffffffff82111561274f5761274e6126b9565b5b602082029050602081019050919050565b600080fd5b600061277861277384612734565b612719565b9050808382526020820190506020840283018581111561279b5761279a612760565b5b835b818110156127c457806127b0888261253f565b84526020840193505060208101905061279d565b5050509392505050565b600082601f8301126127e3576127e26126b4565b5b81356127f3848260208601612765565b91505092915050565b600060208284031215612812576128116124ec565b5b600082013567ffffffffffffffff8111156128305761282f6124f1565b5b61283c848285016127ce565b91505092915050565b60006020828403121561285b5761285a6124ec565b5b60006128698482850161253f565b91505092915050565b61287b81612516565b82525050565b60006020820190506128966000830184612872565b92915050565b600080604083850312156128b3576128b26124ec565b5b60006128c18582860161253f565b92505060206128d28582860161253f565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156129625780860481111561293e5761293d6128dc565b5b600185161561294d5780820291505b808102905061295b8561290b565b9450612922565b94509492505050565b60008261297b5760019050612a37565b816129895760009050612a37565b816001811461299f57600281146129a9576129d8565b6001915050612a37565b60ff8411156129bb576129ba6128dc565b5b8360020a9150848211156129d2576129d16128dc565b5b50612a37565b5060208310610133831016604e8410600b8410161715612a0d5782820a905083811115612a0857612a076128dc565b5b612a37565b612a1a8484846001612918565b92509050818404811115612a3157612a306128dc565b5b81810290505b9392505050565b6000612a4982612554565b9150612a548361267d565b9250612a817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461296b565b905092915050565b6000612a9482612554565b9150612a9f83612554565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612ad857612ad76128dc565b5b828202905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612b1960208361243b565b9150612b2482612ae3565b602082019050919050565b60006020820190508181036000830152612b4881612b0c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612b8982612554565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612bbb57612bba6128dc565b5b600182019050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612bfc60178361243b565b9150612c0782612bc6565b602082019050919050565b60006020820190508181036000830152612c2b81612bef565b9050919050565b600081519050612c4181612528565b92915050565b600060208284031215612c5d57612c5c6124ec565b5b6000612c6b84828501612c32565b91505092915050565b6000604082019050612c896000830185612872565b612c966020830184612872565b9392505050565b6000819050919050565b6000819050919050565b6000612ccc612cc7612cc284612c9d565b612ca7565b612554565b9050919050565b612cdc81612cb1565b82525050565b600060c082019050612cf76000830189612872565b612d046020830188612600565b612d116040830187612cd3565b612d1e6060830186612cd3565b612d2b6080830185612872565b612d3860a0830184612600565b979650505050505050565b600081519050612d528161255e565b92915050565b600080600060608486031215612d7157612d706124ec565b5b6000612d7f86828701612d43565b9350506020612d9086828701612d43565b9250506040612da186828701612d43565b9150509250925092565b6000604082019050612dc06000830185612872565b612dcd6020830184612600565b9392505050565b612ddd816125ca565b8114612de857600080fd5b50565b600081519050612dfa81612dd4565b92915050565b600060208284031215612e1657612e156124ec565b5b6000612e2484828501612deb565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612e8960248361243b565b9150612e9482612e2d565b604082019050919050565b60006020820190508181036000830152612eb881612e7c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612f1b60228361243b565b9150612f2682612ebf565b604082019050919050565b60006020820190508181036000830152612f4a81612f0e565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612fad60258361243b565b9150612fb882612f51565b604082019050919050565b60006020820190508181036000830152612fdc81612fa0565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061303f60238361243b565b915061304a82612fe3565b604082019050919050565b6000602082019050818103600083015261306e81613032565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006130d160298361243b565b91506130dc82613075565b604082019050919050565b60006020820190508181036000830152613100816130c4565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b600061318960498361243b565b915061319482613107565b606082019050919050565b600060208201905081810360008301526131b88161317c565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b60006131f560198361243b565b9150613200826131bf565b602082019050919050565b60006020820190508181036000830152613224816131e8565b9050919050565b600061323682612554565b915061324183612554565b9250828201905080821115613259576132586128dc565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000613295601a8361243b565b91506132a08261325f565b602082019050919050565b600060208201905081810360008301526132c481613288565b9050919050565b60006132d682612554565b91506132e183612554565b92508282039050818111156132f9576132f86128dc565b5b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61333481612516565b82525050565b6000613346838361332b565b60208301905092915050565b6000602082019050919050565b600061336a826132ff565b613374818561330a565b935061337f8361331b565b8060005b838110156133b0578151613397888261333a565b97506133a283613352565b925050600181019050613383565b5085935050505092915050565b600060a0820190506133d26000830188612600565b6133df6020830187612cd3565b81810360408301526133f1818661335f565b90506134006060830185612872565b61340d6080830184612600565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061345182612554565b915061345c83612554565b92508261346c5761346b613417565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006134d360218361243b565b91506134de82613477565b604082019050919050565b60006020820190508181036000830152613502816134c6565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061353f601b8361243b565b915061354a82613509565b602082019050919050565b6000602082019050818103600083015261356e81613532565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212208d891f6d6ecd1d9d05cdae6513620064099ff1fee33b9729a2494a4b133b813864736f6c63430008100033
Deployed Bytecode
0x60806040526004361061014f5760003560e01c80638da5cb5b116100b6578063bf474bed1161006f578063bf474bed1461046b578063c876d0b914610496578063c9567bf9146104c1578063d28d8852146104d8578063d34628cc14610503578063dd62ed3e1461052c57610156565b80638da5cb5b146103575780638f9a55c01461038257806395d89b41146103ad578063a9059cbb146103d8578063af465a2714610415578063b09f12661461044057610156565b806331c2d8471161010857806331c2d8471461028157806351bc3c85146102aa57806370a08231146102c1578063715018a6146102fe578063751039fc146103155780637d1db4a51461032c57610156565b806306fdde031461015b578063095ea7b3146101865780630faee56f146101c357806318160ddd146101ee57806323b872dd14610219578063313ce5671461025657610156565b3661015657005b600080fd5b34801561016757600080fd5b50610170610569565b60405161017d91906124c0565b60405180910390f35b34801561019257600080fd5b506101ad60048036038101906101a8919061258a565b6105a6565b6040516101ba91906125e5565b60405180910390f35b3480156101cf57600080fd5b506101d86105c4565b6040516101e5919061260f565b60405180910390f35b3480156101fa57600080fd5b506102036105ca565b604051610210919061260f565b60405180910390f35b34801561022557600080fd5b50610240600480360381019061023b919061262a565b6105ed565b60405161024d91906125e5565b60405180910390f35b34801561026257600080fd5b5061026b6106c6565b6040516102789190612699565b60405180910390f35b34801561028d57600080fd5b506102a860048036038101906102a391906127fc565b6106cf565b005b3480156102b657600080fd5b506102bf6107f9565b005b3480156102cd57600080fd5b506102e860048036038101906102e39190612845565b610835565b6040516102f5919061260f565b60405180910390f35b34801561030a57600080fd5b5061031361087e565b005b34801561032157600080fd5b5061032a6109d1565b005b34801561033857600080fd5b50610341610b19565b60405161034e919061260f565b60405180910390f35b34801561036357600080fd5b5061036c610b1f565b6040516103799190612881565b60405180910390f35b34801561038e57600080fd5b50610397610b48565b6040516103a4919061260f565b60405180910390f35b3480156103b957600080fd5b506103c2610b4e565b6040516103cf91906124c0565b60405180910390f35b3480156103e457600080fd5b506103ff60048036038101906103fa919061258a565b610b8b565b60405161040c91906125e5565b60405180910390f35b34801561042157600080fd5b5061042a610ba9565b604051610437919061260f565b60405180910390f35b34801561044c57600080fd5b50610455610bc8565b60405161046291906124c0565b60405180910390f35b34801561047757600080fd5b50610480610c01565b60405161048d919061260f565b60405180910390f35b3480156104a257600080fd5b506104ab610c07565b6040516104b891906125e5565b60405180910390f35b3480156104cd57600080fd5b506104d6610c1a565b005b3480156104e457600080fd5b506104ed611151565b6040516104fa91906124c0565b60405180910390f35b34801561050f57600080fd5b5061052a600480360381019061052591906127fc565b61118a565b005b34801561053857600080fd5b50610553600480360381019061054e919061289c565b6112b4565b604051610560919061260f565b60405180910390f35b60606040518060400160405280600a81526020017f414920564954414c494b00000000000000000000000000000000000000000000815250905090565b60006105ba6105b361133b565b8484611343565b6001905092915050565b600f5481565b60006009600a6105da9190612a3e565b620f42406105e89190612a89565b905090565b60006105fa84848461150c565b6106bb8461060661133b565b6106b68560405180606001604052806028815260200161357660289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061066c61133b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611eff9092919063ffffffff16565b611343565b600190509392505050565b60006009905090565b6106d761133b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610764576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075b90612b2f565b60405180910390fd5b60005b81518110156107f55760006004600084848151811061078957610788612b4f565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806107ed90612b7e565b915050610767565b5050565b600061080430610835565b905060008111156108195761081881611f63565b5b6000479050600081111561083157610830816121dc565b5b5050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61088661133b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610913576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090a90612b2f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6109d961133b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5d90612b2f565b60405180910390fd5b6009600a610a749190612a3e565b620f4240610a829190612a89565b600c819055506009600a610a969190612a3e565b620f4240610aa49190612a89565b600d819055506000600660006101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610af49190612a3e565b620f4240610b029190612a89565b604051610b0f919061260f565b60405180910390a1565b600c5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600d5481565b60606040518060400160405280600981526020017f4149564954414c494b0000000000000000000000000000000000000000000000815250905090565b6000610b9f610b9861133b565b848461150c565b6001905092915050565b6009600a610bb79190612a3e565b620f4240610bc59190612a89565b81565b6040518060400160405280600981526020017f4149564954414c494b000000000000000000000000000000000000000000000081525081565b600e5481565b600660009054906101000a900460ff1681565b610c2261133b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610caf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca690612b2f565b60405180910390fd5b601160149054906101000a900460ff1615610cff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf690612c12565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d9c30601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610d899190612a3e565b620f4240610d979190612a89565b611343565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2d9190612c47565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610eb6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eda9190612c47565b6040518363ffffffff1660e01b8152600401610ef7929190612c74565b6020604051808303816000875af1158015610f16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f3a9190612c47565b601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610fc330610835565b600080610fce610b1f565b426040518863ffffffff1660e01b8152600401610ff096959493929190612ce2565b60606040518083038185885af115801561100e573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906110339190612d58565b5050506001601160166101000a81548160ff0219169083151502179055506001601160146101000a81548160ff021916908315150217905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161110b929190612dab565b6020604051808303816000875af115801561112a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061114e9190612e00565b50565b6040518060400160405280600a81526020017f414920564954414c494b0000000000000000000000000000000000000000000081525081565b61119261133b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461121f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121690612b2f565b60405180910390fd5b60005b81518110156112b05760016004600084848151811061124457611243612b4f565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806112a890612b7e565b915050611222565b5050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a990612e9f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611421576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141890612f31565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114ff919061260f565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361157b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157290612fc3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e190613055565b60405180910390fd5b6000811161162d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611624906130e7565b60405180910390fd5b6000611637610b1f565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156116a55750611675610b1f565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611c4257600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561174e5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61175757600080fd5b601160159054906101000a900460ff166117aa576117a76064611799600954600b54116117865760075461178a565b6008545b8561224890919063ffffffff16565b6122c290919063ffffffff16565b90505b600660009054906101000a900460ff161561193757601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561186b5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156119365743600560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106118f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e89061319f565b60405180910390fd5b43600560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156119e25750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611a385750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611af357600c54821115611a82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a799061320b565b60405180910390fd5b600d5482611a8f85610835565b611a99919061322b565b1115611ada576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad1906132ab565b60405180910390fd5b600b6000815480929190611aed90612b7e565b91905055505b6000611afe30610835565b9050601160159054906101000a900460ff16158015611b6b5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611b835750601160169054906101000a900460ff165b8015611b905750600e5481115b8015611b9f5750600a54600b54115b15611bdb57611bc1611bbc84611bb784600f5461230c565b61230c565b611f63565b60004790506000811115611bd957611bd8476121dc565b5b505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611c4057603c600b5410611c3f57600080fd5b5b505b611c9482600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461232590919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d3b611ced828461232590919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461236f90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611de0848661232590919063ffffffff16565b604051611ded919061260f565b60405180910390a36000811115611ef957611e5081600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461236f90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611ef0919061260f565b60405180910390a35b50505050565b6000838311158290611f47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3e91906124c0565b60405180910390fd5b5060008385611f5691906132cb565b9050809150509392505050565b6001601160156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611f9b57611f9a6126b9565b5b604051908082528060200260200182016040528015611fc95781602001602082028036833780820191505090505b5090503081600081518110611fe157611fe0612b4f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612088573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120ac9190612c47565b816001815181106120c0576120bf612b4f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061212730601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611343565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161218b9594939291906133bd565b600060405180830381600087803b1580156121a557600080fd5b505af11580156121b9573d6000803e3d6000fd5b50505050506000601160156101000a81548160ff02191690831515021790555050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612244573d6000803e3d6000fd5b5050565b600080830361225a57600090506122bc565b600082846122689190612a89565b90508284826122779190613446565b146122b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ae906134e9565b60405180910390fd5b809150505b92915050565b600061230483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506123cd565b905092915050565b600081831161231b578261231d565b815b905092915050565b600061236783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611eff565b905092915050565b600080828461237e919061322b565b9050838110156123c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123ba90613555565b60405180910390fd5b8091505092915050565b60008083118290612414576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161240b91906124c0565b60405180910390fd5b50600083856124239190613446565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561246a57808201518184015260208101905061244f565b60008484015250505050565b6000601f19601f8301169050919050565b600061249282612430565b61249c818561243b565b93506124ac81856020860161244c565b6124b581612476565b840191505092915050565b600060208201905081810360008301526124da8184612487565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612521826124f6565b9050919050565b61253181612516565b811461253c57600080fd5b50565b60008135905061254e81612528565b92915050565b6000819050919050565b61256781612554565b811461257257600080fd5b50565b6000813590506125848161255e565b92915050565b600080604083850312156125a1576125a06124ec565b5b60006125af8582860161253f565b92505060206125c085828601612575565b9150509250929050565b60008115159050919050565b6125df816125ca565b82525050565b60006020820190506125fa60008301846125d6565b92915050565b61260981612554565b82525050565b60006020820190506126246000830184612600565b92915050565b600080600060608486031215612643576126426124ec565b5b60006126518682870161253f565b93505060206126628682870161253f565b925050604061267386828701612575565b9150509250925092565b600060ff82169050919050565b6126938161267d565b82525050565b60006020820190506126ae600083018461268a565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6126f182612476565b810181811067ffffffffffffffff821117156127105761270f6126b9565b5b80604052505050565b60006127236124e2565b905061272f82826126e8565b919050565b600067ffffffffffffffff82111561274f5761274e6126b9565b5b602082029050602081019050919050565b600080fd5b600061277861277384612734565b612719565b9050808382526020820190506020840283018581111561279b5761279a612760565b5b835b818110156127c457806127b0888261253f565b84526020840193505060208101905061279d565b5050509392505050565b600082601f8301126127e3576127e26126b4565b5b81356127f3848260208601612765565b91505092915050565b600060208284031215612812576128116124ec565b5b600082013567ffffffffffffffff8111156128305761282f6124f1565b5b61283c848285016127ce565b91505092915050565b60006020828403121561285b5761285a6124ec565b5b60006128698482850161253f565b91505092915050565b61287b81612516565b82525050565b60006020820190506128966000830184612872565b92915050565b600080604083850312156128b3576128b26124ec565b5b60006128c18582860161253f565b92505060206128d28582860161253f565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156129625780860481111561293e5761293d6128dc565b5b600185161561294d5780820291505b808102905061295b8561290b565b9450612922565b94509492505050565b60008261297b5760019050612a37565b816129895760009050612a37565b816001811461299f57600281146129a9576129d8565b6001915050612a37565b60ff8411156129bb576129ba6128dc565b5b8360020a9150848211156129d2576129d16128dc565b5b50612a37565b5060208310610133831016604e8410600b8410161715612a0d5782820a905083811115612a0857612a076128dc565b5b612a37565b612a1a8484846001612918565b92509050818404811115612a3157612a306128dc565b5b81810290505b9392505050565b6000612a4982612554565b9150612a548361267d565b9250612a817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461296b565b905092915050565b6000612a9482612554565b9150612a9f83612554565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612ad857612ad76128dc565b5b828202905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612b1960208361243b565b9150612b2482612ae3565b602082019050919050565b60006020820190508181036000830152612b4881612b0c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612b8982612554565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612bbb57612bba6128dc565b5b600182019050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612bfc60178361243b565b9150612c0782612bc6565b602082019050919050565b60006020820190508181036000830152612c2b81612bef565b9050919050565b600081519050612c4181612528565b92915050565b600060208284031215612c5d57612c5c6124ec565b5b6000612c6b84828501612c32565b91505092915050565b6000604082019050612c896000830185612872565b612c966020830184612872565b9392505050565b6000819050919050565b6000819050919050565b6000612ccc612cc7612cc284612c9d565b612ca7565b612554565b9050919050565b612cdc81612cb1565b82525050565b600060c082019050612cf76000830189612872565b612d046020830188612600565b612d116040830187612cd3565b612d1e6060830186612cd3565b612d2b6080830185612872565b612d3860a0830184612600565b979650505050505050565b600081519050612d528161255e565b92915050565b600080600060608486031215612d7157612d706124ec565b5b6000612d7f86828701612d43565b9350506020612d9086828701612d43565b9250506040612da186828701612d43565b9150509250925092565b6000604082019050612dc06000830185612872565b612dcd6020830184612600565b9392505050565b612ddd816125ca565b8114612de857600080fd5b50565b600081519050612dfa81612dd4565b92915050565b600060208284031215612e1657612e156124ec565b5b6000612e2484828501612deb565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612e8960248361243b565b9150612e9482612e2d565b604082019050919050565b60006020820190508181036000830152612eb881612e7c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612f1b60228361243b565b9150612f2682612ebf565b604082019050919050565b60006020820190508181036000830152612f4a81612f0e565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612fad60258361243b565b9150612fb882612f51565b604082019050919050565b60006020820190508181036000830152612fdc81612fa0565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061303f60238361243b565b915061304a82612fe3565b604082019050919050565b6000602082019050818103600083015261306e81613032565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006130d160298361243b565b91506130dc82613075565b604082019050919050565b60006020820190508181036000830152613100816130c4565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b600061318960498361243b565b915061319482613107565b606082019050919050565b600060208201905081810360008301526131b88161317c565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b60006131f560198361243b565b9150613200826131bf565b602082019050919050565b60006020820190508181036000830152613224816131e8565b9050919050565b600061323682612554565b915061324183612554565b9250828201905080821115613259576132586128dc565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000613295601a8361243b565b91506132a08261325f565b602082019050919050565b600060208201905081810360008301526132c481613288565b9050919050565b60006132d682612554565b91506132e183612554565b92508282039050818111156132f9576132f86128dc565b5b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61333481612516565b82525050565b6000613346838361332b565b60208301905092915050565b6000602082019050919050565b600061336a826132ff565b613374818561330a565b935061337f8361331b565b8060005b838110156133b0578151613397888261333a565b97506133a283613352565b925050600181019050613383565b5085935050505092915050565b600060a0820190506133d26000830188612600565b6133df6020830187612cd3565b81810360408301526133f1818661335f565b90506134006060830185612872565b61340d6080830184612600565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061345182612554565b915061345c83612554565b92508261346c5761346b613417565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006134d360218361243b565b91506134de82613477565b604082019050919050565b60006020820190508181036000830152613502816134c6565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061353f601b8361243b565b915061354a82613509565b602082019050919050565b6000602082019050818103600083015261356e81613532565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212208d891f6d6ecd1d9d05cdae6513620064099ff1fee33b9729a2494a4b133b813864736f6c63430008100033
Deployed Bytecode Sourcemap
3557:8048:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5326:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6159:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4605:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5603:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6328:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5512:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10402:162;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11298:304;;;;;;;;;;;;;:::i;:::-;;5706:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2638:148;;;;;;;;;;;;;:::i;:::-;;9926:196;;;;;;;;;;;;;:::i;:::-;;4425:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2424:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4485:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5417:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5833:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4260:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4374:44;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4545:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3948:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10574:671;;;;;;;;;;;;;:::i;:::-;;4324:43;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10230:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6008:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5326:83;5363:13;5396:5;;;;;;;;;;;;;;;;;5389:12;;5326:83;:::o;6159:161::-;6234:4;6251:39;6260:12;:10;:12::i;:::-;6274:7;6283:6;6251:8;:39::i;:::-;6308:4;6301:11;;6159:161;;;;:::o;4605:48::-;;;;:::o;5603:95::-;5656:7;4252:1;4304:2;:13;;;;:::i;:::-;4294:7;:23;;;;:::i;:::-;5676:14;;5603:95;:::o;6328:313::-;6426:4;6443:36;6453:6;6461:9;6472:6;6443:9;:36::i;:::-;6490:121;6499:6;6507:12;:10;:12::i;:::-;6521:89;6559:6;6521:89;;;;;;;;;;;;;;;;;:11;:19;6533:6;6521:19;;;;;;;;;;;;;;;:33;6541:12;:10;:12::i;:::-;6521:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6490:8;:121::i;:::-;6629:4;6622:11;;6328:313;;;;;:::o;5512:83::-;5553:5;4252:1;5571:16;;5512:83;:::o;10402:162::-;2561:12;:10;:12::i;:::-;2551:22;;:6;;;;;;;;;;:22;;;2543:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10475:6:::1;10470:87;10491:6;:13;10487:1;:17;10470:87;;;10542:5;10524:4;:15;10529:6;10536:1;10529:9;;;;;;;;:::i;:::-;;;;;;;;10524:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;10506:3;;;;;:::i;:::-;;;;10470:87;;;;10402:162:::0;:::o;11298:304::-;11340:20;11361:24;11379:4;11361:9;:24::i;:::-;11340:45;;11412:1;11399:12;:14;11396:73;;;11427:30;11444:12;11427:16;:30::i;:::-;11396:73;11479:18;11498:21;11479:40;;11544:1;11533:10;:12;11530:65;;;11559:24;11572:10;11559:12;:24::i;:::-;11530:65;11329:273;;11298:304::o;5706:119::-;5772:7;5799:9;:18;5809:7;5799:18;;;;;;;;;;;;;;;;5792:25;;5706:119;;;:::o;2638:148::-;2561:12;:10;:12::i;:::-;2551:22;;:6;;;;;;;;;;:22;;;2543:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2745:1:::1;2708:40;;2729:6;::::0;::::1;;;;;;;;2708:40;;;;;;;;;;;;2776:1;2759:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2638:148::o:0;9926:196::-;2561:12;:10;:12::i;:::-;2551:22;;:6;;;;;;;;;;:22;;;2543:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4252:1:::1;4304:2;:13;;;;:::i;:::-;4294:7;:23;;;;:::i;:::-;9979:12;:22;;;;4252:1;4304:2;:13;;;;:::i;:::-;4294:7;:23;;;;:::i;:::-;10012:14;:22;;;;10066:5;10045:20;;:26;;;;;;;;;;;;;;;;;;10087:27;4252:1;4304:2;:13;;;;:::i;:::-;4294:7;:23;;;;:::i;:::-;10087:27;;;;;;:::i;:::-;;;;;;;;9926:196::o:0;4425:53::-;;;;:::o;2424:79::-;2462:7;2489:6;;;;;;;;;;;2482:13;;2424:79;:::o;4485:53::-;;;;:::o;5417:87::-;5456:13;5489:7;;;;;;;;;;;;;;;;;5482:14;;5417:87;:::o;5833:167::-;5911:4;5928:42;5938:12;:10;:12::i;:::-;5952:9;5963:6;5928:9;:42::i;:::-;5988:4;5981:11;;5833:167;;;;:::o;4260:57::-;4252:1;4304:2;:13;;;;:::i;:::-;4294:7;:23;;;;:::i;:::-;4260:57;:::o;4374:44::-;;;;;;;;;;;;;;;;;;;:::o;4545:53::-;;;;:::o;3948:39::-;;;;;;;;;;;;;:::o;10574:671::-;2561:12;:10;:12::i;:::-;2551:22;;:6;;;;;;;;;;:22;;;2543:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10638:11:::1;;;;;;;;;;;10637:12;10629:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;10724:42;10687:15;;:80;;;;;;;;;;;;;;;;;;10778:58;10795:4;10810:15;;;;;;;;;;;4252:1;4304:2;:13;;;;:::i;:::-;4294:7;:23;;;;:::i;:::-;10778:8;:58::i;:::-;10881:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10863:55;;;10927:4;10934:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10863:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10847:13;;:110;;;;;;;;;;;;;;;;;;10968:15;;;;;;;;;;;:31;;;11007:21;11038:4;11044:24;11062:4;11044:9;:24::i;:::-;11069:1;11071::::0;11073:7:::1;:5;:7::i;:::-;11081:15;10968:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11122:4;11108:11;;:18;;;;;;;;;;;;;;;;;;11151:4;11137:11;;:18;;;;;;;;;;;;;;;;;;11173:13;;;;;;;;;;;11166:29;;;11204:15;;;;;;;;;;;11222:14;11166:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10574:671::o:0;4324:43::-;;;;;;;;;;;;;;;;;;;:::o;10230:164::-;2561:12;:10;:12::i;:::-;2551:22;;:6;;;;;;;;;;:22;;;2543:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10304:6:::1;10299:88;10320:5;:12;10316:1;:16;10299:88;;;10371:4;10354;:14;10359:5;10365:1;10359:8;;;;;;;;:::i;:::-;;;;;;;;10354:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;10334:3;;;;;:::i;:::-;;;;10299:88;;;;10230:164:::0;:::o;6008:143::-;6089:7;6116:11;:18;6128:5;6116:18;;;;;;;;;;;;;;;:27;6135:7;6116:27;;;;;;;;;;;;;;;;6109:34;;6008:143;;;;:::o;179:98::-;232:7;259:10;252:17;;179:98;:::o;6649:335::-;6759:1;6742:19;;:5;:19;;;6734:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6840:1;6821:21;;:7;:21;;;6813:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6922:6;6892:11;:18;6904:5;6892:18;;;;;;;;;;;;;;;:27;6911:7;6892:27;;;;;;;;;;;;;;;:36;;;;6960:7;6944:32;;6953:5;6944:32;;;6969:6;6944:32;;;;;;:::i;:::-;;;;;;;;6649:335;;;:::o;6992:2329::-;7096:1;7080:18;;:4;:18;;;7072:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7173:1;7159:16;;:2;:16;;;7151:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7243:1;7234:6;:10;7226:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7301:17;7343:7;:5;:7::i;:::-;7335:15;;:4;:15;;;;:32;;;;;7360:7;:5;:7::i;:::-;7354:13;;:2;:13;;;;7335:32;7331:1634;;;7393:4;:10;7398:4;7393:10;;;;;;;;;;;;;;;;;;;;;;;;;7392:11;:24;;;;;7408:4;:8;7413:2;7408:8;;;;;;;;;;;;;;;;;;;;;;;;;7407:9;7392:24;7384:33;;;;;;7436:6;;;;;;;;;;;7432:117;;7472:61;7529:3;7472:52;7488:12;;7484:3;;:16;7483:40;;7512:11;;7483:40;;;7502:9;;7483:40;7472:6;:10;;:52;;;;:::i;:::-;:56;;:61;;;;:::i;:::-;7460:73;;7432:117;7569:20;;;;;;;;;;;7565:508;;;7630:15;;;;;;;;;;;7616:30;;:2;:30;;;;:62;;;;;7664:13;;;;;;;;;;;7650:28;;:2;:28;;;;7616:62;7612:444;;;7814:12;7741:28;:39;7770:9;7741:39;;;;;;;;;;;;;;;;:85;7705:250;;;;;;;;;;;;:::i;:::-;;;;;;;;;8022:12;7980:28;:39;8009:9;7980:39;;;;;;;;;;;;;;;:54;;;;7612:444;7565:508;8101:13;;;;;;;;;;;8093:21;;:4;:21;;;:55;;;;;8132:15;;;;;;;;;;;8118:30;;:2;:30;;;;8093:55;:83;;;;;8154:18;:22;8173:2;8154:22;;;;;;;;;;;;;;;;;;;;;;;;;8152:24;8093:83;8089:307;;;8216:12;;8206:6;:22;;8198:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8311:14;;8301:6;8285:13;8295:2;8285:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8277:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8375:3;;:5;;;;;;;;;:::i;:::-;;;;;;8089:307;8412:28;8443:24;8461:4;8443:9;:24::i;:::-;8412:55;;8487:6;;;;;;;;;;;8486:7;:32;;;;;8505:13;;;;;;;;;;;8497:21;;:4;:21;;;;8486:32;:47;;;;;8522:11;;;;;;;;;;;8486:47;:89;;;;;8558:17;;8537:20;:38;8486:89;:115;;;;;8583:18;;8579:3;;:22;8486:115;8482:415;;;8622:67;8639:49;8643:6;8650:37;8654:20;8675:11;;8650:3;:37::i;:::-;8639:3;:49::i;:::-;8622:16;:67::i;:::-;8708:26;8737:21;8708:50;;8801:1;8780:18;:22;8777:105;;;8827:35;8840:21;8827:12;:35::i;:::-;8777:105;8603:294;8482:415;8920:13;;;;;;;;;;;8916:17;;:2;:17;;;8913:41;;8947:2;8943:3;;:6;8935:15;;;;;;8913:41;7369:1596;7331:1634;8993:27;9013:6;8993:9;:15;9003:4;8993:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;8977:9;:15;8987:4;8977:15;;;;;;;;;;;;;;;:43;;;;9045:40;9063:21;9074:9;9063:6;:10;;:21;;;;:::i;:::-;9045:9;:13;9055:2;9045:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9031:9;:13;9041:2;9031:13;;;;;;;;;;;;;;;:54;;;;9116:2;9101:41;;9110:4;9101:41;;;9120:21;9131:9;9120:6;:10;;:21;;;;:::i;:::-;9101:41;;;;;;:::i;:::-;;;;;;;;9166:1;9156:9;:11;9153:161;;;9206:39;9235:9;9206;:24;9224:4;9206:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9181:9;:24;9199:4;9181:24;;;;;;;;;;;;;;;:64;;;;9286:4;9263:39;;9272:4;9263:39;;;9292:9;9263:39;;;;;;:::i;:::-;;;;;;;;9153:161;7061:2260;6992:2329;;;:::o;1316:190::-;1402:7;1435:1;1430;:6;;1438:12;1422:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1462:9;1478:1;1474;:5;;;;:::i;:::-;1462:17;;1497:1;1490:8;;;1316:190;;;;;:::o;9435:483::-;4944:4;4935:6;;:13;;;;;;;;;;;;;;;;;;9513:21:::1;9551:1;9537:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9513:40;;9582:4;9564;9569:1;9564:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9608:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9598:4;9603:1;9598:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9641:62;9658:4;9673:15;;;;;;;;;;;9691:11;9641:8;:62::i;:::-;9714:15;;;;;;;;;;;:66;;;9795:11;9821:1;9837:4;9864;9884:15;9714:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9502:416;4980:5:::0;4971:6;;:14;;;;;;;;;;;;;;;;;;9435:483;:::o;10130:92::-;10187:10;;;;;;;;;;;:19;;:27;10207:6;10187:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10130:92;:::o;1514:246::-;1572:7;1601:1;1596;:6;1592:47;;1626:1;1619:8;;;;1592:47;1649:9;1665:1;1661;:5;;;;:::i;:::-;1649:17;;1694:1;1689;1685;:5;;;;:::i;:::-;:10;1677:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1751:1;1744:8;;;1514:246;;;;;:::o;1768:132::-;1826:7;1853:39;1857:1;1860;1853:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1846:46;;1768:132;;;;:::o;9329:98::-;9386:7;9413:1;9411;:3;9410:9;;9418:1;9410:9;;;9416:1;9410:9;9403:16;;9329:98;;;;:::o;1172:136::-;1230:7;1257:43;1261:1;1264;1257:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1250:50;;1172:136;;;;:::o;985:179::-;1043:7;1063:9;1079:1;1075;:5;;;;:::i;:::-;1063:17;;1104:1;1099;:6;;1091:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1155:1;1148:8;;;985:179;;;;:::o;1908:189::-;1994:7;2026:1;2022;:5;2029:12;2014:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2053:9;2069:1;2065;:5;;;;:::i;:::-;2053:17;;2088:1;2081:8;;;1908: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:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:117::-;4962:1;4959;4952:12;4976:180;5024:77;5021:1;5014:88;5121:4;5118:1;5111:15;5145:4;5142:1;5135:15;5162:281;5245:27;5267:4;5245:27;:::i;:::-;5237:6;5233:40;5375:6;5363:10;5360:22;5339:18;5327:10;5324:34;5321:62;5318:88;;;5386:18;;:::i;:::-;5318:88;5426:10;5422:2;5415:22;5205:238;5162:281;;:::o;5449:129::-;5483:6;5510:20;;:::i;:::-;5500:30;;5539:33;5567:4;5559:6;5539:33;:::i;:::-;5449:129;;;:::o;5584:311::-;5661:4;5751:18;5743:6;5740:30;5737:56;;;5773:18;;:::i;:::-;5737:56;5823:4;5815:6;5811:17;5803:25;;5883:4;5877;5873:15;5865:23;;5584:311;;;:::o;5901:117::-;6010:1;6007;6000:12;6041:710;6137:5;6162:81;6178:64;6235:6;6178:64;:::i;:::-;6162:81;:::i;:::-;6153:90;;6263:5;6292:6;6285:5;6278:21;6326:4;6319:5;6315:16;6308:23;;6379:4;6371:6;6367:17;6359:6;6355:30;6408:3;6400:6;6397:15;6394:122;;;6427:79;;:::i;:::-;6394:122;6542:6;6525:220;6559:6;6554:3;6551:15;6525:220;;;6634:3;6663:37;6696:3;6684:10;6663:37;:::i;:::-;6658:3;6651:50;6730:4;6725:3;6721:14;6714:21;;6601:144;6585:4;6580:3;6576:14;6569:21;;6525:220;;;6529:21;6143:608;;6041:710;;;;;:::o;6774:370::-;6845:5;6894:3;6887:4;6879:6;6875:17;6871:27;6861:122;;6902:79;;:::i;:::-;6861:122;7019:6;7006:20;7044:94;7134:3;7126:6;7119:4;7111:6;7107:17;7044:94;:::i;:::-;7035:103;;6851:293;6774:370;;;;:::o;7150:539::-;7234:6;7283:2;7271:9;7262:7;7258:23;7254:32;7251:119;;;7289:79;;:::i;:::-;7251:119;7437:1;7426:9;7422:17;7409:31;7467:18;7459:6;7456:30;7453:117;;;7489:79;;:::i;:::-;7453:117;7594:78;7664:7;7655:6;7644:9;7640:22;7594:78;:::i;:::-;7584:88;;7380:302;7150:539;;;;:::o;7695:329::-;7754:6;7803:2;7791:9;7782:7;7778:23;7774:32;7771:119;;;7809:79;;:::i;:::-;7771:119;7929:1;7954:53;7999:7;7990:6;7979:9;7975:22;7954:53;:::i;:::-;7944:63;;7900:117;7695:329;;;;:::o;8030:118::-;8117:24;8135:5;8117:24;:::i;:::-;8112:3;8105:37;8030:118;;:::o;8154:222::-;8247:4;8285:2;8274:9;8270:18;8262:26;;8298:71;8366:1;8355:9;8351:17;8342:6;8298:71;:::i;:::-;8154:222;;;;:::o;8382:474::-;8450:6;8458;8507:2;8495:9;8486:7;8482:23;8478:32;8475:119;;;8513:79;;:::i;:::-;8475:119;8633:1;8658:53;8703:7;8694:6;8683:9;8679:22;8658:53;:::i;:::-;8648:63;;8604:117;8760:2;8786:53;8831:7;8822:6;8811:9;8807:22;8786:53;:::i;:::-;8776:63;;8731:118;8382:474;;;;;:::o;8862:180::-;8910:77;8907:1;8900:88;9007:4;9004:1;8997:15;9031:4;9028:1;9021:15;9048:102;9090:8;9137:5;9134:1;9130:13;9109:34;;9048:102;;;:::o;9156:848::-;9217:5;9224:4;9248:6;9239:15;;9272:5;9263:14;;9286:712;9307:1;9297:8;9294:15;9286:712;;;9402:4;9397:3;9393:14;9387:4;9384:24;9381:50;;;9411:18;;:::i;:::-;9381:50;9461:1;9451:8;9447:16;9444:451;;;9876:4;9869:5;9865:16;9856:25;;9444:451;9926:4;9920;9916:15;9908:23;;9956:32;9979:8;9956:32;:::i;:::-;9944:44;;9286:712;;;9156:848;;;;;;;:::o;10010:1073::-;10064:5;10255:8;10245:40;;10276:1;10267:10;;10278:5;;10245:40;10304:4;10294:36;;10321:1;10312:10;;10323:5;;10294:36;10390:4;10438:1;10433:27;;;;10474:1;10469:191;;;;10383:277;;10433:27;10451:1;10442:10;;10453:5;;;10469:191;10514:3;10504:8;10501:17;10498:43;;;10521:18;;:::i;:::-;10498:43;10570:8;10567:1;10563:16;10554:25;;10605:3;10598:5;10595:14;10592:40;;;10612:18;;:::i;:::-;10592:40;10645:5;;;10383:277;;10769:2;10759:8;10756:16;10750:3;10744:4;10741:13;10737:36;10719:2;10709:8;10706:16;10701:2;10695:4;10692:12;10688:35;10672:111;10669:246;;;10825:8;10819:4;10815:19;10806:28;;10860:3;10853:5;10850:14;10847:40;;;10867:18;;:::i;:::-;10847:40;10900:5;;10669:246;10940:42;10978:3;10968:8;10962:4;10959:1;10940:42;:::i;:::-;10925:57;;;;11014:4;11009:3;11005:14;10998:5;10995:25;10992:51;;;11023:18;;:::i;:::-;10992:51;11072:4;11065:5;11061:16;11052:25;;10010:1073;;;;;;:::o;11089:281::-;11147:5;11171:23;11189:4;11171:23;:::i;:::-;11163:31;;11215:25;11231:8;11215:25;:::i;:::-;11203:37;;11259:104;11296:66;11286:8;11280:4;11259:104;:::i;:::-;11250:113;;11089:281;;;;:::o;11376:348::-;11416:7;11439:20;11457:1;11439:20;:::i;:::-;11434:25;;11473:20;11491:1;11473:20;:::i;:::-;11468:25;;11661:1;11593:66;11589:74;11586:1;11583:81;11578:1;11571:9;11564:17;11560:105;11557:131;;;11668:18;;:::i;:::-;11557:131;11716:1;11713;11709:9;11698:20;;11376:348;;;;:::o;11730:182::-;11870:34;11866:1;11858:6;11854:14;11847:58;11730:182;:::o;11918:366::-;12060:3;12081:67;12145:2;12140:3;12081:67;:::i;:::-;12074:74;;12157:93;12246:3;12157:93;:::i;:::-;12275:2;12270:3;12266:12;12259:19;;11918:366;;;:::o;12290:419::-;12456:4;12494:2;12483:9;12479:18;12471:26;;12543:9;12537:4;12533:20;12529:1;12518:9;12514:17;12507:47;12571:131;12697:4;12571:131;:::i;:::-;12563:139;;12290:419;;;:::o;12715:180::-;12763:77;12760:1;12753:88;12860:4;12857:1;12850:15;12884:4;12881:1;12874:15;12901:233;12940:3;12963:24;12981:5;12963:24;:::i;:::-;12954:33;;13009:66;13002:5;12999:77;12996:103;;13079:18;;:::i;:::-;12996:103;13126:1;13119:5;13115:13;13108:20;;12901:233;;;:::o;13140:173::-;13280:25;13276:1;13268:6;13264:14;13257:49;13140:173;:::o;13319:366::-;13461:3;13482:67;13546:2;13541:3;13482:67;:::i;:::-;13475:74;;13558:93;13647:3;13558:93;:::i;:::-;13676:2;13671:3;13667:12;13660:19;;13319:366;;;:::o;13691:419::-;13857:4;13895:2;13884:9;13880:18;13872:26;;13944:9;13938:4;13934:20;13930:1;13919:9;13915:17;13908:47;13972:131;14098:4;13972:131;:::i;:::-;13964:139;;13691:419;;;:::o;14116:143::-;14173:5;14204:6;14198:13;14189:22;;14220:33;14247:5;14220:33;:::i;:::-;14116:143;;;;:::o;14265:351::-;14335:6;14384:2;14372:9;14363:7;14359:23;14355:32;14352:119;;;14390:79;;:::i;:::-;14352:119;14510:1;14535:64;14591:7;14582:6;14571:9;14567:22;14535:64;:::i;:::-;14525:74;;14481:128;14265:351;;;;:::o;14622:332::-;14743:4;14781:2;14770:9;14766:18;14758:26;;14794:71;14862:1;14851:9;14847:17;14838:6;14794:71;:::i;:::-;14875:72;14943:2;14932:9;14928:18;14919:6;14875:72;:::i;:::-;14622:332;;;;;:::o;14960:85::-;15005:7;15034:5;15023:16;;14960:85;;;:::o;15051:60::-;15079:3;15100:5;15093:12;;15051:60;;;:::o;15117:158::-;15175:9;15208:61;15226:42;15235:32;15261:5;15235:32;:::i;:::-;15226:42;:::i;:::-;15208:61;:::i;:::-;15195:74;;15117:158;;;:::o;15281:147::-;15376:45;15415:5;15376:45;:::i;:::-;15371:3;15364:58;15281:147;;:::o;15434:807::-;15683:4;15721:3;15710:9;15706:19;15698:27;;15735:71;15803:1;15792:9;15788:17;15779:6;15735:71;:::i;:::-;15816:72;15884:2;15873:9;15869:18;15860:6;15816:72;:::i;:::-;15898:80;15974:2;15963:9;15959:18;15950:6;15898:80;:::i;:::-;15988;16064:2;16053:9;16049:18;16040:6;15988:80;:::i;:::-;16078:73;16146:3;16135:9;16131:19;16122:6;16078:73;:::i;:::-;16161;16229:3;16218:9;16214:19;16205:6;16161:73;:::i;:::-;15434:807;;;;;;;;;:::o;16247:143::-;16304:5;16335:6;16329:13;16320:22;;16351:33;16378:5;16351:33;:::i;:::-;16247:143;;;;:::o;16396:663::-;16484:6;16492;16500;16549:2;16537:9;16528:7;16524:23;16520:32;16517:119;;;16555:79;;:::i;:::-;16517:119;16675:1;16700:64;16756:7;16747:6;16736:9;16732:22;16700:64;:::i;:::-;16690:74;;16646:128;16813:2;16839:64;16895:7;16886:6;16875:9;16871:22;16839:64;:::i;:::-;16829:74;;16784:129;16952:2;16978:64;17034:7;17025:6;17014:9;17010:22;16978:64;:::i;:::-;16968:74;;16923:129;16396:663;;;;;:::o;17065:332::-;17186:4;17224:2;17213:9;17209:18;17201:26;;17237:71;17305:1;17294:9;17290:17;17281:6;17237:71;:::i;:::-;17318:72;17386:2;17375:9;17371:18;17362:6;17318:72;:::i;:::-;17065:332;;;;;:::o;17403:116::-;17473:21;17488:5;17473:21;:::i;:::-;17466:5;17463:32;17453:60;;17509:1;17506;17499:12;17453:60;17403:116;:::o;17525:137::-;17579:5;17610:6;17604:13;17595:22;;17626:30;17650:5;17626:30;:::i;:::-;17525:137;;;;:::o;17668:345::-;17735:6;17784:2;17772:9;17763:7;17759:23;17755:32;17752:119;;;17790:79;;:::i;:::-;17752:119;17910:1;17935:61;17988:7;17979:6;17968:9;17964:22;17935:61;:::i;:::-;17925:71;;17881:125;17668:345;;;;:::o;18019:223::-;18159:34;18155:1;18147:6;18143:14;18136:58;18228:6;18223:2;18215:6;18211:15;18204:31;18019:223;:::o;18248:366::-;18390:3;18411:67;18475:2;18470:3;18411:67;:::i;:::-;18404:74;;18487:93;18576:3;18487:93;:::i;:::-;18605:2;18600:3;18596:12;18589:19;;18248:366;;;:::o;18620:419::-;18786:4;18824:2;18813:9;18809:18;18801:26;;18873:9;18867:4;18863:20;18859:1;18848:9;18844:17;18837:47;18901:131;19027:4;18901:131;:::i;:::-;18893:139;;18620:419;;;:::o;19045:221::-;19185:34;19181:1;19173:6;19169:14;19162:58;19254:4;19249:2;19241:6;19237:15;19230:29;19045:221;:::o;19272:366::-;19414:3;19435:67;19499:2;19494:3;19435:67;:::i;:::-;19428:74;;19511:93;19600:3;19511:93;:::i;:::-;19629:2;19624:3;19620:12;19613:19;;19272:366;;;:::o;19644:419::-;19810:4;19848:2;19837:9;19833:18;19825:26;;19897:9;19891:4;19887:20;19883:1;19872:9;19868:17;19861:47;19925:131;20051:4;19925:131;:::i;:::-;19917:139;;19644:419;;;:::o;20069:224::-;20209:34;20205:1;20197:6;20193:14;20186:58;20278:7;20273:2;20265:6;20261:15;20254:32;20069:224;:::o;20299:366::-;20441:3;20462:67;20526:2;20521:3;20462:67;:::i;:::-;20455:74;;20538:93;20627:3;20538:93;:::i;:::-;20656:2;20651:3;20647:12;20640:19;;20299:366;;;:::o;20671:419::-;20837:4;20875:2;20864:9;20860:18;20852:26;;20924:9;20918:4;20914:20;20910:1;20899:9;20895:17;20888:47;20952:131;21078:4;20952:131;:::i;:::-;20944:139;;20671:419;;;:::o;21096:222::-;21236:34;21232:1;21224:6;21220:14;21213:58;21305:5;21300:2;21292:6;21288:15;21281:30;21096:222;:::o;21324:366::-;21466:3;21487:67;21551:2;21546:3;21487:67;:::i;:::-;21480:74;;21563:93;21652:3;21563:93;:::i;:::-;21681:2;21676:3;21672:12;21665:19;;21324:366;;;:::o;21696:419::-;21862:4;21900:2;21889:9;21885:18;21877:26;;21949:9;21943:4;21939:20;21935:1;21924:9;21920:17;21913:47;21977:131;22103:4;21977:131;:::i;:::-;21969:139;;21696:419;;;:::o;22121:228::-;22261:34;22257:1;22249:6;22245:14;22238:58;22330:11;22325:2;22317:6;22313:15;22306:36;22121:228;:::o;22355:366::-;22497:3;22518:67;22582:2;22577:3;22518:67;:::i;:::-;22511:74;;22594:93;22683:3;22594:93;:::i;:::-;22712:2;22707:3;22703:12;22696:19;;22355:366;;;:::o;22727:419::-;22893:4;22931:2;22920:9;22916:18;22908:26;;22980:9;22974:4;22970:20;22966:1;22955:9;22951:17;22944:47;23008:131;23134:4;23008:131;:::i;:::-;23000:139;;22727:419;;;:::o;23152:297::-;23292:34;23288:1;23280:6;23276:14;23269:58;23361:34;23356:2;23348:6;23344:15;23337:59;23430:11;23425:2;23417:6;23413:15;23406:36;23152:297;:::o;23455:366::-;23597:3;23618:67;23682:2;23677:3;23618:67;:::i;:::-;23611:74;;23694:93;23783:3;23694:93;:::i;:::-;23812:2;23807:3;23803:12;23796:19;;23455:366;;;:::o;23827:419::-;23993:4;24031:2;24020:9;24016:18;24008:26;;24080:9;24074:4;24070:20;24066:1;24055:9;24051:17;24044:47;24108:131;24234:4;24108:131;:::i;:::-;24100:139;;23827:419;;;:::o;24252:175::-;24392:27;24388:1;24380:6;24376:14;24369:51;24252:175;:::o;24433:366::-;24575:3;24596:67;24660:2;24655:3;24596:67;:::i;:::-;24589:74;;24672:93;24761:3;24672:93;:::i;:::-;24790:2;24785:3;24781:12;24774:19;;24433:366;;;:::o;24805:419::-;24971:4;25009:2;24998:9;24994:18;24986:26;;25058:9;25052:4;25048:20;25044:1;25033:9;25029:17;25022:47;25086:131;25212:4;25086:131;:::i;:::-;25078:139;;24805:419;;;:::o;25230:191::-;25270:3;25289:20;25307:1;25289:20;:::i;:::-;25284:25;;25323:20;25341:1;25323:20;:::i;:::-;25318:25;;25366:1;25363;25359:9;25352:16;;25387:3;25384:1;25381:10;25378:36;;;25394:18;;:::i;:::-;25378:36;25230:191;;;;:::o;25427:176::-;25567:28;25563:1;25555:6;25551:14;25544:52;25427:176;:::o;25609:366::-;25751:3;25772:67;25836:2;25831:3;25772:67;:::i;:::-;25765:74;;25848:93;25937:3;25848:93;:::i;:::-;25966:2;25961:3;25957:12;25950:19;;25609:366;;;:::o;25981:419::-;26147:4;26185:2;26174:9;26170:18;26162:26;;26234:9;26228:4;26224:20;26220:1;26209:9;26205:17;26198:47;26262:131;26388:4;26262:131;:::i;:::-;26254:139;;25981:419;;;:::o;26406:194::-;26446:4;26466:20;26484:1;26466:20;:::i;:::-;26461:25;;26500:20;26518:1;26500:20;:::i;:::-;26495:25;;26544:1;26541;26537:9;26529:17;;26568:1;26562:4;26559:11;26556:37;;;26573:18;;:::i;:::-;26556:37;26406:194;;;;:::o;26606:114::-;26673:6;26707:5;26701:12;26691:22;;26606:114;;;:::o;26726:184::-;26825:11;26859:6;26854:3;26847:19;26899:4;26894:3;26890:14;26875:29;;26726:184;;;;:::o;26916:132::-;26983:4;27006:3;26998:11;;27036:4;27031:3;27027:14;27019:22;;26916:132;;;:::o;27054:108::-;27131:24;27149:5;27131:24;:::i;:::-;27126:3;27119:37;27054:108;;:::o;27168:179::-;27237:10;27258:46;27300:3;27292:6;27258:46;:::i;:::-;27336:4;27331:3;27327:14;27313:28;;27168:179;;;;:::o;27353:113::-;27423:4;27455;27450:3;27446:14;27438:22;;27353:113;;;:::o;27502:732::-;27621:3;27650:54;27698:5;27650:54;:::i;:::-;27720:86;27799:6;27794:3;27720:86;:::i;:::-;27713:93;;27830:56;27880:5;27830:56;:::i;:::-;27909:7;27940:1;27925:284;27950:6;27947:1;27944:13;27925:284;;;28026:6;28020:13;28053:63;28112:3;28097:13;28053:63;:::i;:::-;28046:70;;28139:60;28192:6;28139:60;:::i;:::-;28129:70;;27985:224;27972:1;27969;27965:9;27960:14;;27925:284;;;27929:14;28225:3;28218:10;;27626:608;;;27502:732;;;;:::o;28240:831::-;28503:4;28541:3;28530:9;28526:19;28518:27;;28555:71;28623:1;28612:9;28608:17;28599:6;28555:71;:::i;:::-;28636:80;28712:2;28701:9;28697:18;28688:6;28636:80;:::i;:::-;28763:9;28757:4;28753:20;28748:2;28737:9;28733:18;28726:48;28791:108;28894:4;28885:6;28791:108;:::i;:::-;28783:116;;28909:72;28977:2;28966:9;28962:18;28953:6;28909:72;:::i;:::-;28991:73;29059:3;29048:9;29044:19;29035:6;28991:73;:::i;:::-;28240:831;;;;;;;;:::o;29077:180::-;29125:77;29122:1;29115:88;29222:4;29219:1;29212:15;29246:4;29243:1;29236:15;29263:185;29303:1;29320:20;29338:1;29320:20;:::i;:::-;29315:25;;29354:20;29372:1;29354:20;:::i;:::-;29349:25;;29393:1;29383:35;;29398:18;;:::i;:::-;29383:35;29440:1;29437;29433:9;29428:14;;29263:185;;;;:::o;29454:220::-;29594:34;29590:1;29582:6;29578:14;29571:58;29663:3;29658:2;29650:6;29646:15;29639:28;29454:220;:::o;29680:366::-;29822:3;29843:67;29907:2;29902:3;29843:67;:::i;:::-;29836:74;;29919:93;30008:3;29919:93;:::i;:::-;30037:2;30032:3;30028:12;30021:19;;29680:366;;;:::o;30052:419::-;30218:4;30256:2;30245:9;30241:18;30233:26;;30305:9;30299:4;30295:20;30291:1;30280:9;30276:17;30269:47;30333:131;30459:4;30333:131;:::i;:::-;30325:139;;30052:419;;;:::o;30477:177::-;30617:29;30613:1;30605:6;30601:14;30594:53;30477:177;:::o;30660:366::-;30802:3;30823:67;30887:2;30882:3;30823:67;:::i;:::-;30816:74;;30899:93;30988:3;30899:93;:::i;:::-;31017:2;31012:3;31008:12;31001:19;;30660:366;;;:::o;31032:419::-;31198:4;31236:2;31225:9;31221:18;31213:26;;31285:9;31279:4;31275:20;31271:1;31260:9;31256:17;31249:47;31313:131;31439:4;31313:131;:::i;:::-;31305:139;;31032:419;;;:::o
Swarm Source
ipfs://8d891f6d6ecd1d9d05cdae6513620064099ff1fee33b9729a2494a4b133b8138
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.