Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
100,000,000 TAI
Holders
92
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
299,955.439611153 TAIValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
TRUMPAI
Compiler Version
v0.8.23+commit.f704f362
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-02-27 */ /** Website : https://trumpai.org/ X (Twitter) : https://twitter.com/trumpaiproject TG : https://t.me/trumpaiproject **/ pragma solidity 0.8.23; // SPDX-License-Identifier: MIT 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 TRUMPAI is Context, IERC20, Ownable { using SafeMath for uint256; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _isExcludedFromFee; mapping (address => bool) private bots; mapping(address => uint256) private _holderLastTransferTimestamp; bool public transferDelayEnabled = true; address payable private _taxWallet; address private constant deadAddress = address(0xdead); uint256 private _initialBuyTax=35; uint256 private _initialSellTax=40; uint256 private _finalBuyTax=2; uint256 private _finalSellTax=2; uint256 private _reduceBuyTaxAt=25; uint256 private _reduceSellTaxAt=35; uint256 private _preventSwapBefore=25; uint256 private _buyCount=0; string private constant _name = unicode"Trump AI"; string private constant _symbol = unicode"TAI"; uint8 private constant _decimals = 9; uint256 private constant _tTotal = 100000000 * 10**_decimals; uint256 public _maxTxAmount = 2000000 * 10**_decimals; uint256 public _maxWalletSize = 2000000 * 10**_decimals; uint256 public _taxSwapThreshold= 0 * 10**_decimals; uint256 public _maxTaxSwap= 1000000 * 10**_decimals; IUniswapV2Router02 private uniswapV2Router; address private uniswapV2Pair; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = false; event MaxTxAmountUpdated(uint _maxTxAmount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor () { _taxWallet = payable(_msgSender()); _balances[_msgSender()] = _tTotal; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[deadAddress]= 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 balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public pure override returns (uint256) { return _tTotal; } 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()) { if (transferDelayEnabled) { if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) { require( _holderLastTransferTimestamp[tx.origin] < block.number, "_transfer:: Transfer Delay enabled. Only one purchase per block allowed." ); _holderLastTransferTimestamp[tx.origin] = block.number; } } if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) { require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount."); require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize."); _buyCount++; } if ( to == uniswapV2Pair && from!= address(this) ){ taxAmount = amount.mul ((_buyCount>_reduceSellTaxAt) ?_finalSellTax:_initialSellTax).div(100 ); } else if (from == uniswapV2Pair && to!= address(this) ){ taxAmount = amount.mul ((_buyCount>_reduceBuyTaxAt) ?_finalBuyTax:_initialBuyTax).div(100 ); } uint256 contractTokenBalance = balanceOf(address(this)); if ( !inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxSwapThreshold && _buyCount>_preventSwapBefore ) { swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap))); uint256 contractETHBalance = address(this).balance; if(contractETHBalance > 50000000000000000) { sendETHToFee(address(this).balance); } } } 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; transferDelayEnabled=false; emit MaxTxAmountUpdated(_tTotal); } function sendETHToFee(uint256 _amount) private { _taxWallet.transfer(_amount); } function openTrading() external onlyOwner() { require(!tradingOpen,"trading is already open"); uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); _approve(address(this), address(uniswapV2Router), _tTotal); uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH()); uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp); IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max); swapEnabled = true; tradingOpen = true; } function changeTaxToFinal(uint256 buyTax, uint256 sellTax) external onlyOwner() { require(buyTax <= 10 && sellTax <= 10 && tradingOpen, "Exceeds value"); _initialBuyTax = buyTax; _initialSellTax = sellTax; _finalBuyTax = buyTax; _finalSellTax = sellTax; } 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); } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":[{"internalType":"uint256","name":"buyTax","type":"uint256"},{"internalType":"uint256","name":"sellTax","type":"uint256"}],"name":"changeTaxToFinal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052600160065f6101000a81548160ff0219169083151502179055506023600755602860085560026009556002600a556019600b556023600c556019600d555f600e556009600a62000055919062000660565b621e8480620000659190620006b0565b600f556009600a62000078919062000660565b621e8480620000889190620006b0565b6010556009600a6200009b919062000660565b5f620000a89190620006b0565b6011556009600a620000bb919062000660565b620f4240620000cb9190620006b0565b6012555f601460156101000a81548160ff0219169083151502179055505f601460166101000a81548160ff0219169083151502179055503480156200010e575f80fd5b505f62000120620004a060201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001cc620004a060201b60201c565b600660016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a6200021c919062000660565b6305f5e1006200022d9190620006b0565b60015f62000240620004a060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f62000292620004a760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f61dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555062000414620004a060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a62000472919062000660565b6305f5e100620004839190620006b0565b6040516200049291906200070b565b60405180910390a362000726565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115620005585780860481111562000530576200052f620004ce565b5b6001851615620005405780820291505b80810290506200055085620004fb565b945062000510565b94509492505050565b5f8262000572576001905062000644565b8162000581575f905062000644565b81600181146200059a5760028114620005a557620005db565b600191505062000644565b60ff841115620005ba57620005b9620004ce565b5b8360020a915084821115620005d457620005d3620004ce565b5b5062000644565b5060208310610133831016604e8410600b8410161715620006155782820a9050838111156200060f576200060e620004ce565b5b62000644565b62000624848484600162000507565b925090508184048111156200063e576200063d620004ce565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6200066c826200064b565b9150620006798362000654565b9250620006a87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000561565b905092915050565b5f620006bc826200064b565b9150620006c9836200064b565b9250828202620006d9816200064b565b91508282048414831517620006f357620006f2620004ce565b5b5092915050565b62000705816200064b565b82525050565b5f602082019050620007205f830184620006fa565b92915050565b6131dd80620007345f395ff3fe608060405260043610610122575f3560e01c80637d1db4a51161009f578063bf474bed11610063578063bf474bed146103af578063c876d0b9146103d9578063c9567bf914610403578063dd62ed3e14610419578063e6927f6f1461045557610129565b80637d1db4a5146102cb5780638da5cb5b146102f55780638f9a55c01461031f57806395d89b4114610349578063a9059cbb1461037357610129565b8063313ce567116100e6578063313ce5671461022357806351bc3c851461024d57806370a0823114610263578063715018a61461029f578063751039fc146102b557610129565b806306fdde031461012d578063095ea7b3146101575780630faee56f1461019357806318160ddd146101bd57806323b872dd146101e757610129565b3661012957005b5f80fd5b348015610138575f80fd5b5061014161047d565b60405161014e9190612229565b60405180910390f35b348015610162575f80fd5b5061017d600480360381019061017891906122da565b6104ba565b60405161018a9190612332565b60405180910390f35b34801561019e575f80fd5b506101a76104d7565b6040516101b4919061235a565b60405180910390f35b3480156101c8575f80fd5b506101d16104dd565b6040516101de919061235a565b60405180910390f35b3480156101f2575f80fd5b5061020d60048036038101906102089190612373565b610500565b60405161021a9190612332565b60405180910390f35b34801561022e575f80fd5b506102376105d4565b60405161024491906123de565b60405180910390f35b348015610258575f80fd5b506102616105dc565b005b34801561026e575f80fd5b50610289600480360381019061028491906123f7565b610674565b604051610296919061235a565b60405180910390f35b3480156102aa575f80fd5b506102b36106ba565b005b3480156102c0575f80fd5b506102c9610808565b005b3480156102d6575f80fd5b506102df610950565b6040516102ec919061235a565b60405180910390f35b348015610300575f80fd5b50610309610956565b6040516103169190612431565b60405180910390f35b34801561032a575f80fd5b5061033361097d565b604051610340919061235a565b60405180910390f35b348015610354575f80fd5b5061035d610983565b60405161036a9190612229565b60405180910390f35b34801561037e575f80fd5b50610399600480360381019061039491906122da565b6109c0565b6040516103a69190612332565b60405180910390f35b3480156103ba575f80fd5b506103c36109dd565b6040516103d0919061235a565b60405180910390f35b3480156103e4575f80fd5b506103ed6109e3565b6040516103fa9190612332565b60405180910390f35b34801561040e575f80fd5b506104176109f5565b005b348015610424575f80fd5b5061043f600480360381019061043a919061244a565b610f14565b60405161044c919061235a565b60405180910390f35b348015610460575f80fd5b5061047b60048036038101906104769190612488565b610f96565b005b60606040518060400160405280600881526020017f5472756d70204149000000000000000000000000000000000000000000000000815250905090565b5f6104cd6104c66110b1565b84846110b8565b6001905092915050565b60125481565b5f6009600a6104ec9190612622565b6305f5e1006104fb919061266c565b905090565b5f61050c84848461127b565b6105c9846105186110b1565b6105c4856040518060600160405280602881526020016131806028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61057b6110b1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611c8a9092919063ffffffff16565b6110b8565b600190509392505050565b5f6009905090565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661061d6110b1565b73ffffffffffffffffffffffffffffffffffffffff161461063c575f80fd5b5f61064630610674565b90505f81111561065a5761065981611cec565b5b5f4790505f8111156106705761066f81611f57565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6106c26110b1565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461074e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610745906126f7565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6108106110b1565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461089c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610893906126f7565b60405180910390fd5b6009600a6108aa9190612622565b6305f5e1006108b9919061266c565b600f819055506009600a6108cd9190612622565b6305f5e1006108dc919061266c565b6010819055505f60065f6101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a61092a9190612622565b6305f5e100610939919061266c565b604051610946919061235a565b60405180910390a1565b600f5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600381526020017f5441490000000000000000000000000000000000000000000000000000000000815250905090565b5f6109d36109cc6110b1565b848461127b565b6001905092915050565b60115481565b60065f9054906101000a900460ff1681565b6109fd6110b1565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a80906126f7565b60405180910390fd5b60148054906101000a900460ff1615610ad7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ace9061275f565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610b733060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610b5f9190612622565b6305f5e100610b6e919061266c565b6110b8565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bdd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c019190612791565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c87573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cab9190612791565b6040518363ffffffff1660e01b8152600401610cc89291906127bc565b6020604051808303815f875af1158015610ce4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d089190612791565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610d8f30610674565b5f80610d99610956565b426040518863ffffffff1660e01b8152600401610dbb96959493929190612825565b60606040518083038185885af1158015610dd7573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610dfc9190612898565b50505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610e9c9291906128e8565b6020604051808303815f875af1158015610eb8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610edc9190612939565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610f9e6110b1565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461102a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611021906126f7565b60405180910390fd5b600a821115801561103c5750600a8111155b8015611052575060148054906101000a900460ff165b611091576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611088906129ae565b60405180910390fd5b81600781905550806008819055508160098190555080600a819055505050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611126576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111d90612a3c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611194576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118b90612aca565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161126e919061235a565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e090612b58565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611357576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134e90612be6565b60405180910390fd5b5f8111611399576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139090612c74565b60405180910390fd5b5f6113a2610956565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561141057506113e0610956565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156119da5760065f9054906101000a900460ff161561159b5760135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156114d3575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561159a574360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410611557576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154e90612d28565b60405180910390fd5b4360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611644575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611697575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561175157600f548211156116e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d890612d90565b60405180910390fd5b601054826116ee85610674565b6116f89190612dae565b1115611739576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173090612e2b565b60405180910390fd5b600e5f81548092919061174b90612e49565b91905055505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156117d957503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156118215761181a606461180c600c54600e54116117f9576008546117fd565b600a545b85611fc090919063ffffffff16565b61203790919063ffffffff16565b90506118ee565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156118a957503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156118ed576118ea60646118dc600b54600e54116118c9576007546118cd565b6009545b85611fc090919063ffffffff16565b61203790919063ffffffff16565b90505b5b5f6118f830610674565b9050601460159054906101000a900460ff16158015611963575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b801561197b5750601460169054906101000a900460ff165b8015611988575060115481115b80156119975750600d54600e54115b156119d8576119b96119b4846119af84601254612080565b612080565b611cec565b5f47905066b1a2bc2ec500008111156119d6576119d547611f57565b5b505b505b5f811115611ad957611a328160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461209890919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611ad0919061235a565b60405180910390a35b611b298260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120f590919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611bcc611b8082846120f590919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461209890919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611c6f84866120f590919063ffffffff16565b604051611c7c919061235a565b60405180910390a350505050565b5f838311158290611cd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc89190612229565b60405180910390fd5b505f8385611cdf9190612e90565b9050809150509392505050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611d2357611d22612ec3565b5b604051908082528060200260200182016040528015611d515781602001602082028036833780820191505090505b50905030815f81518110611d6857611d67612ef0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e0c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e309190612791565b81600181518110611e4457611e43612ef0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611eaa3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846110b8565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611f0c959493929190612fd4565b5f604051808303815f87803b158015611f23575f80fd5b505af1158015611f35573d5f803e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611fbc573d5f803e3d5ffd5b5050565b5f808303611fd0575f9050612031565b5f8284611fdd919061266c565b9050828482611fec9190613059565b1461202c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612023906130f9565b60405180910390fd5b809150505b92915050565b5f61207883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061213e565b905092915050565b5f81831161208e5782612090565b815b905092915050565b5f8082846120a69190612dae565b9050838110156120eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120e290613161565b60405180910390fd5b8091505092915050565b5f61213683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c8a565b905092915050565b5f8083118290612184576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161217b9190612229565b60405180910390fd5b505f83856121929190613059565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156121d65780820151818401526020810190506121bb565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6121fb8261219f565b61220581856121a9565b93506122158185602086016121b9565b61221e816121e1565b840191505092915050565b5f6020820190508181035f83015261224181846121f1565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6122768261224d565b9050919050565b6122868161226c565b8114612290575f80fd5b50565b5f813590506122a18161227d565b92915050565b5f819050919050565b6122b9816122a7565b81146122c3575f80fd5b50565b5f813590506122d4816122b0565b92915050565b5f80604083850312156122f0576122ef612249565b5b5f6122fd85828601612293565b925050602061230e858286016122c6565b9150509250929050565b5f8115159050919050565b61232c81612318565b82525050565b5f6020820190506123455f830184612323565b92915050565b612354816122a7565b82525050565b5f60208201905061236d5f83018461234b565b92915050565b5f805f6060848603121561238a57612389612249565b5b5f61239786828701612293565b93505060206123a886828701612293565b92505060406123b9868287016122c6565b9150509250925092565b5f60ff82169050919050565b6123d8816123c3565b82525050565b5f6020820190506123f15f8301846123cf565b92915050565b5f6020828403121561240c5761240b612249565b5b5f61241984828501612293565b91505092915050565b61242b8161226c565b82525050565b5f6020820190506124445f830184612422565b92915050565b5f80604083850312156124605761245f612249565b5b5f61246d85828601612293565b925050602061247e85828601612293565b9150509250929050565b5f806040838503121561249e5761249d612249565b5b5f6124ab858286016122c6565b92505060206124bc858286016122c6565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561254857808604811115612524576125236124c6565b5b60018516156125335780820291505b8081029050612541856124f3565b9450612508565b94509492505050565b5f82612560576001905061261b565b8161256d575f905061261b565b8160018114612583576002811461258d576125bc565b600191505061261b565b60ff84111561259f5761259e6124c6565b5b8360020a9150848211156125b6576125b56124c6565b5b5061261b565b5060208310610133831016604e8410600b84101617156125f15782820a9050838111156125ec576125eb6124c6565b5b61261b565b6125fe84848460016124ff565b92509050818404811115612615576126146124c6565b5b81810290505b9392505050565b5f61262c826122a7565b9150612637836123c3565b92506126647fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612551565b905092915050565b5f612676826122a7565b9150612681836122a7565b925082820261268f816122a7565b915082820484148315176126a6576126a56124c6565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6126e16020836121a9565b91506126ec826126ad565b602082019050919050565b5f6020820190508181035f83015261270e816126d5565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6127496017836121a9565b915061275482612715565b602082019050919050565b5f6020820190508181035f8301526127768161273d565b9050919050565b5f8151905061278b8161227d565b92915050565b5f602082840312156127a6576127a5612249565b5b5f6127b38482850161277d565b91505092915050565b5f6040820190506127cf5f830185612422565b6127dc6020830184612422565b9392505050565b5f819050919050565b5f819050919050565b5f61280f61280a612805846127e3565b6127ec565b6122a7565b9050919050565b61281f816127f5565b82525050565b5f60c0820190506128385f830189612422565b612845602083018861234b565b6128526040830187612816565b61285f6060830186612816565b61286c6080830185612422565b61287960a083018461234b565b979650505050505050565b5f81519050612892816122b0565b92915050565b5f805f606084860312156128af576128ae612249565b5b5f6128bc86828701612884565b93505060206128cd86828701612884565b92505060406128de86828701612884565b9150509250925092565b5f6040820190506128fb5f830185612422565b612908602083018461234b565b9392505050565b61291881612318565b8114612922575f80fd5b50565b5f815190506129338161290f565b92915050565b5f6020828403121561294e5761294d612249565b5b5f61295b84828501612925565b91505092915050565b7f457863656564732076616c7565000000000000000000000000000000000000005f82015250565b5f612998600d836121a9565b91506129a382612964565b602082019050919050565b5f6020820190508181035f8301526129c58161298c565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612a266024836121a9565b9150612a31826129cc565b604082019050919050565b5f6020820190508181035f830152612a5381612a1a565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612ab46022836121a9565b9150612abf82612a5a565b604082019050919050565b5f6020820190508181035f830152612ae181612aa8565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612b426025836121a9565b9150612b4d82612ae8565b604082019050919050565b5f6020820190508181035f830152612b6f81612b36565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612bd06023836121a9565b9150612bdb82612b76565b604082019050919050565b5f6020820190508181035f830152612bfd81612bc4565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612c5e6029836121a9565b9150612c6982612c04565b604082019050919050565b5f6020820190508181035f830152612c8b81612c52565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c5f8201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b5f612d126049836121a9565b9150612d1d82612c92565b606082019050919050565b5f6020820190508181035f830152612d3f81612d06565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612d7a6019836121a9565b9150612d8582612d46565b602082019050919050565b5f6020820190508181035f830152612da781612d6e565b9050919050565b5f612db8826122a7565b9150612dc3836122a7565b9250828201905080821115612ddb57612dda6124c6565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612e15601a836121a9565b9150612e2082612de1565b602082019050919050565b5f6020820190508181035f830152612e4281612e09565b9050919050565b5f612e53826122a7565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612e8557612e846124c6565b5b600182019050919050565b5f612e9a826122a7565b9150612ea5836122a7565b9250828203905081811115612ebd57612ebc6124c6565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612f4f8161226c565b82525050565b5f612f608383612f46565b60208301905092915050565b5f602082019050919050565b5f612f8282612f1d565b612f8c8185612f27565b9350612f9783612f37565b805f5b83811015612fc7578151612fae8882612f55565b9750612fb983612f6c565b925050600181019050612f9a565b5085935050505092915050565b5f60a082019050612fe75f83018861234b565b612ff46020830187612816565b81810360408301526130068186612f78565b90506130156060830185612422565b613022608083018461234b565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613063826122a7565b915061306e836122a7565b92508261307e5761307d61302c565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6130e36021836121a9565b91506130ee82613089565b604082019050919050565b5f6020820190508181035f830152613110816130d7565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61314b601b836121a9565b915061315682613117565b602082019050919050565b5f6020820190508181035f8301526131788161313f565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220fca72789ce7ef77c72915d634a81f1535c7cbafd79abbd7f24426235972791bf64736f6c63430008170033
Deployed Bytecode
0x608060405260043610610122575f3560e01c80637d1db4a51161009f578063bf474bed11610063578063bf474bed146103af578063c876d0b9146103d9578063c9567bf914610403578063dd62ed3e14610419578063e6927f6f1461045557610129565b80637d1db4a5146102cb5780638da5cb5b146102f55780638f9a55c01461031f57806395d89b4114610349578063a9059cbb1461037357610129565b8063313ce567116100e6578063313ce5671461022357806351bc3c851461024d57806370a0823114610263578063715018a61461029f578063751039fc146102b557610129565b806306fdde031461012d578063095ea7b3146101575780630faee56f1461019357806318160ddd146101bd57806323b872dd146101e757610129565b3661012957005b5f80fd5b348015610138575f80fd5b5061014161047d565b60405161014e9190612229565b60405180910390f35b348015610162575f80fd5b5061017d600480360381019061017891906122da565b6104ba565b60405161018a9190612332565b60405180910390f35b34801561019e575f80fd5b506101a76104d7565b6040516101b4919061235a565b60405180910390f35b3480156101c8575f80fd5b506101d16104dd565b6040516101de919061235a565b60405180910390f35b3480156101f2575f80fd5b5061020d60048036038101906102089190612373565b610500565b60405161021a9190612332565b60405180910390f35b34801561022e575f80fd5b506102376105d4565b60405161024491906123de565b60405180910390f35b348015610258575f80fd5b506102616105dc565b005b34801561026e575f80fd5b50610289600480360381019061028491906123f7565b610674565b604051610296919061235a565b60405180910390f35b3480156102aa575f80fd5b506102b36106ba565b005b3480156102c0575f80fd5b506102c9610808565b005b3480156102d6575f80fd5b506102df610950565b6040516102ec919061235a565b60405180910390f35b348015610300575f80fd5b50610309610956565b6040516103169190612431565b60405180910390f35b34801561032a575f80fd5b5061033361097d565b604051610340919061235a565b60405180910390f35b348015610354575f80fd5b5061035d610983565b60405161036a9190612229565b60405180910390f35b34801561037e575f80fd5b50610399600480360381019061039491906122da565b6109c0565b6040516103a69190612332565b60405180910390f35b3480156103ba575f80fd5b506103c36109dd565b6040516103d0919061235a565b60405180910390f35b3480156103e4575f80fd5b506103ed6109e3565b6040516103fa9190612332565b60405180910390f35b34801561040e575f80fd5b506104176109f5565b005b348015610424575f80fd5b5061043f600480360381019061043a919061244a565b610f14565b60405161044c919061235a565b60405180910390f35b348015610460575f80fd5b5061047b60048036038101906104769190612488565b610f96565b005b60606040518060400160405280600881526020017f5472756d70204149000000000000000000000000000000000000000000000000815250905090565b5f6104cd6104c66110b1565b84846110b8565b6001905092915050565b60125481565b5f6009600a6104ec9190612622565b6305f5e1006104fb919061266c565b905090565b5f61050c84848461127b565b6105c9846105186110b1565b6105c4856040518060600160405280602881526020016131806028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61057b6110b1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611c8a9092919063ffffffff16565b6110b8565b600190509392505050565b5f6009905090565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661061d6110b1565b73ffffffffffffffffffffffffffffffffffffffff161461063c575f80fd5b5f61064630610674565b90505f81111561065a5761065981611cec565b5b5f4790505f8111156106705761066f81611f57565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6106c26110b1565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461074e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610745906126f7565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6108106110b1565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461089c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610893906126f7565b60405180910390fd5b6009600a6108aa9190612622565b6305f5e1006108b9919061266c565b600f819055506009600a6108cd9190612622565b6305f5e1006108dc919061266c565b6010819055505f60065f6101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a61092a9190612622565b6305f5e100610939919061266c565b604051610946919061235a565b60405180910390a1565b600f5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600381526020017f5441490000000000000000000000000000000000000000000000000000000000815250905090565b5f6109d36109cc6110b1565b848461127b565b6001905092915050565b60115481565b60065f9054906101000a900460ff1681565b6109fd6110b1565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a80906126f7565b60405180910390fd5b60148054906101000a900460ff1615610ad7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ace9061275f565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610b733060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610b5f9190612622565b6305f5e100610b6e919061266c565b6110b8565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bdd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c019190612791565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c87573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cab9190612791565b6040518363ffffffff1660e01b8152600401610cc89291906127bc565b6020604051808303815f875af1158015610ce4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d089190612791565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610d8f30610674565b5f80610d99610956565b426040518863ffffffff1660e01b8152600401610dbb96959493929190612825565b60606040518083038185885af1158015610dd7573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610dfc9190612898565b50505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610e9c9291906128e8565b6020604051808303815f875af1158015610eb8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610edc9190612939565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610f9e6110b1565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461102a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611021906126f7565b60405180910390fd5b600a821115801561103c5750600a8111155b8015611052575060148054906101000a900460ff165b611091576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611088906129ae565b60405180910390fd5b81600781905550806008819055508160098190555080600a819055505050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611126576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111d90612a3c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611194576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118b90612aca565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161126e919061235a565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e090612b58565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611357576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134e90612be6565b60405180910390fd5b5f8111611399576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139090612c74565b60405180910390fd5b5f6113a2610956565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561141057506113e0610956565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156119da5760065f9054906101000a900460ff161561159b5760135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156114d3575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561159a574360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410611557576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154e90612d28565b60405180910390fd5b4360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611644575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611697575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561175157600f548211156116e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d890612d90565b60405180910390fd5b601054826116ee85610674565b6116f89190612dae565b1115611739576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173090612e2b565b60405180910390fd5b600e5f81548092919061174b90612e49565b91905055505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156117d957503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156118215761181a606461180c600c54600e54116117f9576008546117fd565b600a545b85611fc090919063ffffffff16565b61203790919063ffffffff16565b90506118ee565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156118a957503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156118ed576118ea60646118dc600b54600e54116118c9576007546118cd565b6009545b85611fc090919063ffffffff16565b61203790919063ffffffff16565b90505b5b5f6118f830610674565b9050601460159054906101000a900460ff16158015611963575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b801561197b5750601460169054906101000a900460ff165b8015611988575060115481115b80156119975750600d54600e54115b156119d8576119b96119b4846119af84601254612080565b612080565b611cec565b5f47905066b1a2bc2ec500008111156119d6576119d547611f57565b5b505b505b5f811115611ad957611a328160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461209890919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611ad0919061235a565b60405180910390a35b611b298260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120f590919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611bcc611b8082846120f590919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461209890919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611c6f84866120f590919063ffffffff16565b604051611c7c919061235a565b60405180910390a350505050565b5f838311158290611cd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc89190612229565b60405180910390fd5b505f8385611cdf9190612e90565b9050809150509392505050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611d2357611d22612ec3565b5b604051908082528060200260200182016040528015611d515781602001602082028036833780820191505090505b50905030815f81518110611d6857611d67612ef0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e0c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e309190612791565b81600181518110611e4457611e43612ef0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611eaa3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846110b8565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611f0c959493929190612fd4565b5f604051808303815f87803b158015611f23575f80fd5b505af1158015611f35573d5f803e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611fbc573d5f803e3d5ffd5b5050565b5f808303611fd0575f9050612031565b5f8284611fdd919061266c565b9050828482611fec9190613059565b1461202c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612023906130f9565b60405180910390fd5b809150505b92915050565b5f61207883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061213e565b905092915050565b5f81831161208e5782612090565b815b905092915050565b5f8082846120a69190612dae565b9050838110156120eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120e290613161565b60405180910390fd5b8091505092915050565b5f61213683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c8a565b905092915050565b5f8083118290612184576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161217b9190612229565b60405180910390fd5b505f83856121929190613059565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156121d65780820151818401526020810190506121bb565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6121fb8261219f565b61220581856121a9565b93506122158185602086016121b9565b61221e816121e1565b840191505092915050565b5f6020820190508181035f83015261224181846121f1565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6122768261224d565b9050919050565b6122868161226c565b8114612290575f80fd5b50565b5f813590506122a18161227d565b92915050565b5f819050919050565b6122b9816122a7565b81146122c3575f80fd5b50565b5f813590506122d4816122b0565b92915050565b5f80604083850312156122f0576122ef612249565b5b5f6122fd85828601612293565b925050602061230e858286016122c6565b9150509250929050565b5f8115159050919050565b61232c81612318565b82525050565b5f6020820190506123455f830184612323565b92915050565b612354816122a7565b82525050565b5f60208201905061236d5f83018461234b565b92915050565b5f805f6060848603121561238a57612389612249565b5b5f61239786828701612293565b93505060206123a886828701612293565b92505060406123b9868287016122c6565b9150509250925092565b5f60ff82169050919050565b6123d8816123c3565b82525050565b5f6020820190506123f15f8301846123cf565b92915050565b5f6020828403121561240c5761240b612249565b5b5f61241984828501612293565b91505092915050565b61242b8161226c565b82525050565b5f6020820190506124445f830184612422565b92915050565b5f80604083850312156124605761245f612249565b5b5f61246d85828601612293565b925050602061247e85828601612293565b9150509250929050565b5f806040838503121561249e5761249d612249565b5b5f6124ab858286016122c6565b92505060206124bc858286016122c6565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561254857808604811115612524576125236124c6565b5b60018516156125335780820291505b8081029050612541856124f3565b9450612508565b94509492505050565b5f82612560576001905061261b565b8161256d575f905061261b565b8160018114612583576002811461258d576125bc565b600191505061261b565b60ff84111561259f5761259e6124c6565b5b8360020a9150848211156125b6576125b56124c6565b5b5061261b565b5060208310610133831016604e8410600b84101617156125f15782820a9050838111156125ec576125eb6124c6565b5b61261b565b6125fe84848460016124ff565b92509050818404811115612615576126146124c6565b5b81810290505b9392505050565b5f61262c826122a7565b9150612637836123c3565b92506126647fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612551565b905092915050565b5f612676826122a7565b9150612681836122a7565b925082820261268f816122a7565b915082820484148315176126a6576126a56124c6565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6126e16020836121a9565b91506126ec826126ad565b602082019050919050565b5f6020820190508181035f83015261270e816126d5565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6127496017836121a9565b915061275482612715565b602082019050919050565b5f6020820190508181035f8301526127768161273d565b9050919050565b5f8151905061278b8161227d565b92915050565b5f602082840312156127a6576127a5612249565b5b5f6127b38482850161277d565b91505092915050565b5f6040820190506127cf5f830185612422565b6127dc6020830184612422565b9392505050565b5f819050919050565b5f819050919050565b5f61280f61280a612805846127e3565b6127ec565b6122a7565b9050919050565b61281f816127f5565b82525050565b5f60c0820190506128385f830189612422565b612845602083018861234b565b6128526040830187612816565b61285f6060830186612816565b61286c6080830185612422565b61287960a083018461234b565b979650505050505050565b5f81519050612892816122b0565b92915050565b5f805f606084860312156128af576128ae612249565b5b5f6128bc86828701612884565b93505060206128cd86828701612884565b92505060406128de86828701612884565b9150509250925092565b5f6040820190506128fb5f830185612422565b612908602083018461234b565b9392505050565b61291881612318565b8114612922575f80fd5b50565b5f815190506129338161290f565b92915050565b5f6020828403121561294e5761294d612249565b5b5f61295b84828501612925565b91505092915050565b7f457863656564732076616c7565000000000000000000000000000000000000005f82015250565b5f612998600d836121a9565b91506129a382612964565b602082019050919050565b5f6020820190508181035f8301526129c58161298c565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612a266024836121a9565b9150612a31826129cc565b604082019050919050565b5f6020820190508181035f830152612a5381612a1a565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612ab46022836121a9565b9150612abf82612a5a565b604082019050919050565b5f6020820190508181035f830152612ae181612aa8565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612b426025836121a9565b9150612b4d82612ae8565b604082019050919050565b5f6020820190508181035f830152612b6f81612b36565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612bd06023836121a9565b9150612bdb82612b76565b604082019050919050565b5f6020820190508181035f830152612bfd81612bc4565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612c5e6029836121a9565b9150612c6982612c04565b604082019050919050565b5f6020820190508181035f830152612c8b81612c52565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c5f8201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b5f612d126049836121a9565b9150612d1d82612c92565b606082019050919050565b5f6020820190508181035f830152612d3f81612d06565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612d7a6019836121a9565b9150612d8582612d46565b602082019050919050565b5f6020820190508181035f830152612da781612d6e565b9050919050565b5f612db8826122a7565b9150612dc3836122a7565b9250828201905080821115612ddb57612dda6124c6565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612e15601a836121a9565b9150612e2082612de1565b602082019050919050565b5f6020820190508181035f830152612e4281612e09565b9050919050565b5f612e53826122a7565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612e8557612e846124c6565b5b600182019050919050565b5f612e9a826122a7565b9150612ea5836122a7565b9250828203905081811115612ebd57612ebc6124c6565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612f4f8161226c565b82525050565b5f612f608383612f46565b60208301905092915050565b5f602082019050919050565b5f612f8282612f1d565b612f8c8185612f27565b9350612f9783612f37565b805f5b83811015612fc7578151612fae8882612f55565b9750612fb983612f6c565b925050600181019050612f9a565b5085935050505092915050565b5f60a082019050612fe75f83018861234b565b612ff46020830187612816565b81810360408301526130068186612f78565b90506130156060830185612422565b613022608083018461234b565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613063826122a7565b915061306e836122a7565b92508261307e5761307d61302c565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6130e36021836121a9565b91506130ee82613089565b604082019050919050565b5f6020820190508181035f830152613110816130d7565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61314b601b836121a9565b915061315682613117565b602082019050919050565b5f6020820190508181035f8301526131788161313f565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220fca72789ce7ef77c72915d634a81f1535c7cbafd79abbd7f24426235972791bf64736f6c63430008170033
Deployed Bytecode Sourcemap
3599:8733:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5646:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6479:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4868:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6050:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6652:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5959:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11981:348;;;;;;;;;;;;;:::i;:::-;;5832:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2680:148;;;;;;;;;;;;;:::i;:::-;;10642:196;;;;;;;;;;;;;:::i;:::-;;4688:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2466:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4748:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5737:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6153:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4810:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3992:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10948:671;;;;;;;;;;;;;:::i;:::-;;6328:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11631:305;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5646:83;5683:13;5716:5;;;;;;;;;;;;;;;;;5709:12;;5646:83;:::o;6479:161::-;6554:4;6571:39;6580:12;:10;:12::i;:::-;6594:7;6603:6;6571:8;:39::i;:::-;6628:4;6621:11;;6479:161;;;;:::o;4868:51::-;;;;:::o;6050:95::-;6103:7;4611:1;4666:2;:13;;;;:::i;:::-;4654:9;:25;;;;:::i;:::-;6123:14;;6050:95;:::o;6652:313::-;6750:4;6767:36;6777:6;6785:9;6796:6;6767:9;:36::i;:::-;6814:121;6823:6;6831:12;:10;:12::i;:::-;6845:89;6883:6;6845:89;;;;;;;;;;;;;;;;;:11;:19;6857:6;6845:19;;;;;;;;;;;;;;;:33;6865:12;:10;:12::i;:::-;6845:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6814:8;:121::i;:::-;6953:4;6946:11;;6652:313;;;;;:::o;5959:83::-;6000:5;4611:1;6018:16;;5959:83;:::o;11981:348::-;12045:10;;;;;;;;;;;12031:24;;:12;:10;:12::i;:::-;:24;;;12023:33;;;;;;12067:20;12088:24;12106:4;12088:9;:24::i;:::-;12067:45;;12139:1;12126:12;:14;12123:73;;;12154:30;12171:12;12154:16;:30::i;:::-;12123:73;12206:18;12225:21;12206:40;;12271:1;12260:10;:12;12257:65;;;12286:24;12299:10;12286:12;:24::i;:::-;12257:65;12012:317;;11981:348::o;5832:119::-;5898:7;5925:9;:18;5935:7;5925:18;;;;;;;;;;;;;;;;5918:25;;5832:119;;;:::o;2680:148::-;2603:12;:10;:12::i;:::-;2593:22;;:6;;;;;;;;;;:22;;;2585:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2787:1:::1;2750:40;;2771:6;::::0;::::1;;;;;;;;2750:40;;;;;;;;;;;;2818:1;2801:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2680:148::o:0;10642:196::-;2603:12;:10;:12::i;:::-;2593:22;;:6;;;;;;;;;;:22;;;2585:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4611:1:::1;4666:2;:13;;;;:::i;:::-;4654:9;:25;;;;:::i;:::-;10695:12;:22;;;;4611:1;4666:2;:13;;;;:::i;:::-;4654:9;:25;;;;:::i;:::-;10728:14;:22;;;;10782:5;10761:20;;:26;;;;;;;;;;;;;;;;;;10803:27;4611:1;4666:2;:13;;;;:::i;:::-;4654:9;:25;;;;:::i;:::-;10803:27;;;;;;:::i;:::-;;;;;;;;10642:196::o:0;4688:53::-;;;;:::o;2466:79::-;2504:7;2531:6;;;;;;;;;;;2524:13;;2466:79;:::o;4748:55::-;;;;:::o;5737:87::-;5776:13;5809:7;;;;;;;;;;;;;;;;;5802:14;;5737:87;:::o;6153:167::-;6231:4;6248:42;6258:12;:10;:12::i;:::-;6272:9;6283:6;6248:9;:42::i;:::-;6308:4;6301:11;;6153:167;;;;:::o;4810:51::-;;;;:::o;3992:39::-;;;;;;;;;;;;;:::o;10948:671::-;2603:12;:10;:12::i;:::-;2593:22;;:6;;;;;;;;;;:22;;;2585:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11012:11:::1;::::0;::::1;;;;;;;;11011:12;11003:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11098:42;11061:15;;:80;;;;;;;;;;;;;;;;;;11152:58;11169:4;11184:15;;;;;;;;;;;4611:1;4666:2;:13;;;;:::i;:::-;4654:9;:25;;;;:::i;:::-;11152:8;:58::i;:::-;11255:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11237:55;;;11301:4;11308:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11237:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11221:13;;:110;;;;;;;;;;;;;;;;;;11342:15;;;;;;;;;;;:31;;;11381:21;11412:4;11418:24;11436:4;11418:9;:24::i;:::-;11443:1;11445::::0;11447:7:::1;:5;:7::i;:::-;11455:15;11342:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11489:13;;;;;;;;;;;11482:29;;;11520:15;;;;;;;;;;;11538:14;11482:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11578:4;11564:11;;:18;;;;;;;;;;;;;;;;;;11607:4;11593:11;::::0;:18:::1;;;;;;;;;;;;;;;;;;10948:671::o:0;6328:143::-;6409:7;6436:11;:18;6448:5;6436:18;;;;;;;;;;;;;;;:27;6455:7;6436:27;;;;;;;;;;;;;;;;6429:34;;6328:143;;;;:::o;11631:305::-;2603:12;:10;:12::i;:::-;2593:22;;:6;;;;;;;;;;:22;;;2585:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11740:2:::1;11730:6;:12;;:29;;;;;11757:2;11746:7;:13;;11730:29;:44;;;;;11763:11;::::0;::::1;;;;;;;;11730:44;11722:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;11820:6;11803:14;:23;;;;11855:7;11837:15;:25;;;;11888:6;11873:12;:21;;;;11921:7;11905:13;:23;;;;11631:305:::0;;:::o;221:98::-;274:7;301:10;294:17;;221:98;:::o;6973:335::-;7083:1;7066:19;;:5;:19;;;7058:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7164:1;7145:21;;:7;:21;;;7137:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7246:6;7216:11;:18;7228:5;7216:18;;;;;;;;;;;;;;;:27;7235:7;7216:27;;;;;;;;;;;;;;;:36;;;;7284:7;7268:32;;7277:5;7268:32;;;7293:6;7268:32;;;;;;:::i;:::-;;;;;;;;6973:335;;;:::o;7316:2716::-;7420:1;7404:18;;:4;:18;;;7396:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7497:1;7483:16;;:2;:16;;;7475:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7567:1;7558:6;:10;7550:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7627:17;7671:7;:5;:7::i;:::-;7663:15;;:4;:15;;;;:32;;;;;7688:7;:5;:7::i;:::-;7682:13;;:2;:13;;;;7663:32;7659:2017;;;7718:20;;;;;;;;;;;7714:508;;;7779:15;;;;;;;;;;;7765:30;;:2;:30;;;;:62;;;;;7813:13;;;;;;;;;;;7799:28;;:2;:28;;;;7765:62;7761:444;;;7963:12;7890:28;:39;7919:9;7890:39;;;;;;;;;;;;;;;;:85;7854:250;;;;;;;;;;;;:::i;:::-;;;;;;;;;8171:12;8129:28;:39;8158:9;8129:39;;;;;;;;;;;;;;;:54;;;;7761:444;7714:508;8250:13;;;;;;;;;;;8242:21;;:4;:21;;;:55;;;;;8281:15;;;;;;;;;;;8267:30;;:2;:30;;;;8242:55;:83;;;;;8303:18;:22;8322:2;8303:22;;;;;;;;;;;;;;;;;;;;;;;;;8301:24;8242:83;8238:313;;;8365:12;;8355:6;:22;;8347:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8460:14;;8450:6;8434:13;8444:2;8434:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8426:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8524:9;;:11;;;;;;;;;:::i;:::-;;;;;;8238:313;8578:13;;;;;;;;;;;8572:19;;:2;:19;;;:43;;;;;8610:4;8595:20;;:4;:20;;;;8572:43;8567:471;;;8648:138;8764:3;8648:111;8689:16;;8679:9;;:26;8678:80;;8743:15;;8678:80;;;8729:13;;8678:80;8648:6;:10;;:111;;;;:::i;:::-;:115;;:138;;;;:::i;:::-;8636:150;;8567:471;;;8820:13;;;;;;;;;;;8812:21;;:4;:21;;;:43;;;;;8850:4;8837:18;;:2;:18;;;;8812:43;8808:230;;;8888:134;9000:3;8888:107;8928:15;;8918:9;;:25;8917:77;;8980:14;;8917:77;;;8967:12;;8917:77;8888:6;:10;;:107;;;;:::i;:::-;:111;;:134;;;;:::i;:::-;8876:146;;8808:230;8567:471;9054:28;9085:24;9103:4;9085:9;:24::i;:::-;9054:55;;9147:6;;;;;;;;;;;9146:7;:48;;;;;9181:13;;;;;;;;;;;9175:19;;:2;:19;;;9146:48;:81;;;;;9216:11;;;;;;;;;;;9146:81;:143;;;;;9272:17;;9249:20;:40;9146:143;:193;;;;;9321:18;;9311:9;;:28;9146:193;9124:541;;;9374:67;9391:49;9395:6;9402:37;9406:20;9427:11;;9402:3;:37::i;:::-;9391:3;:49::i;:::-;9374:16;:67::i;:::-;9460:26;9489:21;9460:50;;9553:17;9532:18;:38;9529:121;;;9595:35;9608:21;9595:12;:35::i;:::-;9529:121;9355:310;9124:541;7697:1979;7659:2017;9701:1;9691:9;:11;9688:161;;;9741:39;9770:9;9741;:24;9759:4;9741:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9716:9;:24;9734:4;9716:24;;;;;;;;;;;;;;;:64;;;;9821:4;9798:39;;9807:4;9798:39;;;9827:9;9798:39;;;;;;:::i;:::-;;;;;;;;9688:161;9875:27;9895:6;9875:9;:15;9885:4;9875:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9859:9;:15;9869:4;9859:15;;;;;;;;;;;;;;;:43;;;;9927:40;9945:21;9956:9;9945:6;:10;;:21;;;;:::i;:::-;9927:9;:13;9937:2;9927:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9913:9;:13;9923:2;9913:13;;;;;;;;;;;;;;;:54;;;;9998:2;9983:41;;9992:4;9983:41;;;10002:21;10013:9;10002:6;:10;;:21;;;;:::i;:::-;9983:41;;;;;;:::i;:::-;;;;;;;;7385:2647;7316:2716;;;:::o;1358:190::-;1444:7;1477:1;1472;:6;;1480:12;1464:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1504:9;1520:1;1516;:5;;;;:::i;:::-;1504:17;;1539:1;1532:8;;;1358:190;;;;;:::o;10148:486::-;5216:4;5207:6;;:13;;;;;;;;;;;;;;;;;;10227:21:::1;10265:1;10251:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10227:40;;10296:4;10278;10283:1;10278:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10322:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10312:4;10317:1;10312:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10355:63;10372:4;10387:15;;;;;;;;;;;10405:12;10355:8;:63::i;:::-;10429:15;;;;;;;;;;;:66;;;10510:12;10537:1;10553:4;10580;10600:15;10429:197;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10216:418;5252:5:::0;5243:6;;:14;;;;;;;;;;;;;;;;;;10148:486;:::o;10846:94::-;10904:10;;;;;;;;;;;:19;;:28;10924:7;10904:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10846:94;:::o;1556:246::-;1614:7;1643:1;1638;:6;1634:47;;1668:1;1661:8;;;;1634:47;1691:9;1707:1;1703;:5;;;;:::i;:::-;1691:17;;1736:1;1731;1727;:5;;;;:::i;:::-;:10;1719:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1793:1;1786:8;;;1556:246;;;;;:::o;1810:132::-;1868:7;1895:39;1899:1;1902;1895:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1888:46;;1810:132;;;;:::o;10042:98::-;10099:7;10126:1;10124;:3;10123:9;;10131:1;10123:9;;;10129:1;10123:9;10116:16;;10042:98;;;;:::o;1027:179::-;1085:7;1105:9;1121:1;1117;:5;;;;:::i;:::-;1105:17;;1146:1;1141;:6;;1133:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1197:1;1190:8;;;1027:179;;;;:::o;1214:136::-;1272:7;1299:43;1303:1;1306;1299:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1292:50;;1214:136;;;;:::o;1950:189::-;2036:7;2068:1;2064;:5;2071:12;2056:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2095:9;2111:1;2107;:5;;;;:::i;:::-;2095:17;;2130:1;2123:8;;;1950:189;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:118::-;5275:24;5293:5;5275:24;:::i;:::-;5270:3;5263:37;5188:118;;:::o;5312:222::-;5405:4;5443:2;5432:9;5428:18;5420:26;;5456:71;5524:1;5513:9;5509:17;5500:6;5456:71;:::i;:::-;5312:222;;;;:::o;5540:474::-;5608:6;5616;5665:2;5653:9;5644:7;5640:23;5636:32;5633:119;;;5671:79;;:::i;:::-;5633:119;5791:1;5816:53;5861:7;5852:6;5841:9;5837:22;5816:53;:::i;:::-;5806:63;;5762:117;5918:2;5944:53;5989:7;5980:6;5969:9;5965:22;5944:53;:::i;:::-;5934:63;;5889:118;5540:474;;;;;:::o;6020:::-;6088:6;6096;6145:2;6133:9;6124:7;6120:23;6116:32;6113:119;;;6151:79;;:::i;:::-;6113:119;6271:1;6296:53;6341:7;6332:6;6321:9;6317:22;6296:53;:::i;:::-;6286:63;;6242:117;6398:2;6424:53;6469:7;6460:6;6449:9;6445:22;6424:53;:::i;:::-;6414:63;;6369:118;6020:474;;;;;:::o;6500:180::-;6548:77;6545:1;6538:88;6645:4;6642:1;6635:15;6669:4;6666:1;6659:15;6686:102;6728:8;6775:5;6772:1;6768:13;6747:34;;6686:102;;;:::o;6794:848::-;6855:5;6862:4;6886:6;6877:15;;6910:5;6901:14;;6924:712;6945:1;6935:8;6932:15;6924:712;;;7040:4;7035:3;7031:14;7025:4;7022:24;7019:50;;;7049:18;;:::i;:::-;7019:50;7099:1;7089:8;7085:16;7082:451;;;7514:4;7507:5;7503:16;7494:25;;7082:451;7564:4;7558;7554:15;7546:23;;7594:32;7617:8;7594:32;:::i;:::-;7582:44;;6924:712;;;6794:848;;;;;;;:::o;7648:1073::-;7702:5;7893:8;7883:40;;7914:1;7905:10;;7916:5;;7883:40;7942:4;7932:36;;7959:1;7950:10;;7961:5;;7932:36;8028:4;8076:1;8071:27;;;;8112:1;8107:191;;;;8021:277;;8071:27;8089:1;8080:10;;8091:5;;;8107:191;8152:3;8142:8;8139:17;8136:43;;;8159:18;;:::i;:::-;8136:43;8208:8;8205:1;8201:16;8192:25;;8243:3;8236:5;8233:14;8230:40;;;8250:18;;:::i;:::-;8230:40;8283:5;;;8021:277;;8407:2;8397:8;8394:16;8388:3;8382:4;8379:13;8375:36;8357:2;8347:8;8344:16;8339:2;8333:4;8330:12;8326:35;8310:111;8307:246;;;8463:8;8457:4;8453:19;8444:28;;8498:3;8491:5;8488:14;8485:40;;;8505:18;;:::i;:::-;8485:40;8538:5;;8307:246;8578:42;8616:3;8606:8;8600:4;8597:1;8578:42;:::i;:::-;8563:57;;;;8652:4;8647:3;8643:14;8636:5;8633:25;8630:51;;;8661:18;;:::i;:::-;8630:51;8710:4;8703:5;8699:16;8690:25;;7648:1073;;;;;;:::o;8727:281::-;8785:5;8809:23;8827:4;8809:23;:::i;:::-;8801:31;;8853:25;8869:8;8853:25;:::i;:::-;8841:37;;8897:104;8934:66;8924:8;8918:4;8897:104;:::i;:::-;8888:113;;8727:281;;;;:::o;9014:410::-;9054:7;9077:20;9095:1;9077:20;:::i;:::-;9072:25;;9111:20;9129:1;9111:20;:::i;:::-;9106:25;;9166:1;9163;9159:9;9188:30;9206:11;9188:30;:::i;:::-;9177:41;;9367:1;9358:7;9354:15;9351:1;9348:22;9328:1;9321:9;9301:83;9278:139;;9397:18;;:::i;:::-;9278:139;9062:362;9014:410;;;;:::o;9430:182::-;9570:34;9566:1;9558:6;9554:14;9547:58;9430:182;:::o;9618:366::-;9760:3;9781:67;9845:2;9840:3;9781:67;:::i;:::-;9774:74;;9857:93;9946:3;9857:93;:::i;:::-;9975:2;9970:3;9966:12;9959:19;;9618:366;;;:::o;9990:419::-;10156:4;10194:2;10183:9;10179:18;10171:26;;10243:9;10237:4;10233:20;10229:1;10218:9;10214:17;10207:47;10271:131;10397:4;10271:131;:::i;:::-;10263:139;;9990:419;;;:::o;10415:173::-;10555:25;10551:1;10543:6;10539:14;10532:49;10415:173;:::o;10594:366::-;10736:3;10757:67;10821:2;10816:3;10757:67;:::i;:::-;10750:74;;10833:93;10922:3;10833:93;:::i;:::-;10951:2;10946:3;10942:12;10935:19;;10594:366;;;:::o;10966:419::-;11132:4;11170:2;11159:9;11155:18;11147:26;;11219:9;11213:4;11209:20;11205:1;11194:9;11190:17;11183:47;11247:131;11373:4;11247:131;:::i;:::-;11239:139;;10966:419;;;:::o;11391:143::-;11448:5;11479:6;11473:13;11464:22;;11495:33;11522:5;11495:33;:::i;:::-;11391:143;;;;:::o;11540:351::-;11610:6;11659:2;11647:9;11638:7;11634:23;11630:32;11627:119;;;11665:79;;:::i;:::-;11627:119;11785:1;11810:64;11866:7;11857:6;11846:9;11842:22;11810:64;:::i;:::-;11800:74;;11756:128;11540:351;;;;:::o;11897:332::-;12018:4;12056:2;12045:9;12041:18;12033:26;;12069:71;12137:1;12126:9;12122:17;12113:6;12069:71;:::i;:::-;12150:72;12218:2;12207:9;12203:18;12194:6;12150:72;:::i;:::-;11897:332;;;;;:::o;12235:85::-;12280:7;12309:5;12298:16;;12235:85;;;:::o;12326:60::-;12354:3;12375:5;12368:12;;12326:60;;;:::o;12392:158::-;12450:9;12483:61;12501:42;12510:32;12536:5;12510:32;:::i;:::-;12501:42;:::i;:::-;12483:61;:::i;:::-;12470:74;;12392:158;;;:::o;12556:147::-;12651:45;12690:5;12651:45;:::i;:::-;12646:3;12639:58;12556:147;;:::o;12709:807::-;12958:4;12996:3;12985:9;12981:19;12973:27;;13010:71;13078:1;13067:9;13063:17;13054:6;13010:71;:::i;:::-;13091:72;13159:2;13148:9;13144:18;13135:6;13091:72;:::i;:::-;13173:80;13249:2;13238:9;13234:18;13225:6;13173:80;:::i;:::-;13263;13339:2;13328:9;13324:18;13315:6;13263:80;:::i;:::-;13353:73;13421:3;13410:9;13406:19;13397:6;13353:73;:::i;:::-;13436;13504:3;13493:9;13489:19;13480:6;13436:73;:::i;:::-;12709:807;;;;;;;;;:::o;13522:143::-;13579:5;13610:6;13604:13;13595:22;;13626:33;13653:5;13626:33;:::i;:::-;13522:143;;;;:::o;13671:663::-;13759:6;13767;13775;13824:2;13812:9;13803:7;13799:23;13795:32;13792:119;;;13830:79;;:::i;:::-;13792:119;13950:1;13975:64;14031:7;14022:6;14011:9;14007:22;13975:64;:::i;:::-;13965:74;;13921:128;14088:2;14114:64;14170:7;14161:6;14150:9;14146:22;14114:64;:::i;:::-;14104:74;;14059:129;14227:2;14253:64;14309:7;14300:6;14289:9;14285:22;14253:64;:::i;:::-;14243:74;;14198:129;13671:663;;;;;:::o;14340:332::-;14461:4;14499:2;14488:9;14484:18;14476:26;;14512:71;14580:1;14569:9;14565:17;14556:6;14512:71;:::i;:::-;14593:72;14661:2;14650:9;14646:18;14637:6;14593:72;:::i;:::-;14340:332;;;;;:::o;14678:116::-;14748:21;14763:5;14748:21;:::i;:::-;14741:5;14738:32;14728:60;;14784:1;14781;14774:12;14728:60;14678:116;:::o;14800:137::-;14854:5;14885:6;14879:13;14870:22;;14901:30;14925:5;14901:30;:::i;:::-;14800:137;;;;:::o;14943:345::-;15010:6;15059:2;15047:9;15038:7;15034:23;15030:32;15027:119;;;15065:79;;:::i;:::-;15027:119;15185:1;15210:61;15263:7;15254:6;15243:9;15239:22;15210:61;:::i;:::-;15200:71;;15156:125;14943:345;;;;:::o;15294:163::-;15434:15;15430:1;15422:6;15418:14;15411:39;15294:163;:::o;15463:366::-;15605:3;15626:67;15690:2;15685:3;15626:67;:::i;:::-;15619:74;;15702:93;15791:3;15702:93;:::i;:::-;15820:2;15815:3;15811:12;15804:19;;15463:366;;;:::o;15835:419::-;16001:4;16039:2;16028:9;16024:18;16016:26;;16088:9;16082:4;16078:20;16074:1;16063:9;16059:17;16052:47;16116:131;16242:4;16116:131;:::i;:::-;16108:139;;15835:419;;;:::o;16260:223::-;16400:34;16396:1;16388:6;16384:14;16377:58;16469:6;16464:2;16456:6;16452:15;16445:31;16260:223;:::o;16489:366::-;16631:3;16652:67;16716:2;16711:3;16652:67;:::i;:::-;16645:74;;16728:93;16817:3;16728:93;:::i;:::-;16846:2;16841:3;16837:12;16830:19;;16489:366;;;:::o;16861:419::-;17027:4;17065:2;17054:9;17050:18;17042:26;;17114:9;17108:4;17104:20;17100:1;17089:9;17085:17;17078:47;17142:131;17268:4;17142:131;:::i;:::-;17134:139;;16861:419;;;:::o;17286:221::-;17426:34;17422:1;17414:6;17410:14;17403:58;17495:4;17490:2;17482:6;17478:15;17471:29;17286:221;:::o;17513:366::-;17655:3;17676:67;17740:2;17735:3;17676:67;:::i;:::-;17669:74;;17752:93;17841:3;17752:93;:::i;:::-;17870:2;17865:3;17861:12;17854:19;;17513:366;;;:::o;17885:419::-;18051:4;18089:2;18078:9;18074:18;18066:26;;18138:9;18132:4;18128:20;18124:1;18113:9;18109:17;18102:47;18166:131;18292:4;18166:131;:::i;:::-;18158:139;;17885:419;;;:::o;18310:224::-;18450:34;18446:1;18438:6;18434:14;18427:58;18519:7;18514:2;18506:6;18502:15;18495:32;18310:224;:::o;18540:366::-;18682:3;18703:67;18767:2;18762:3;18703:67;:::i;:::-;18696:74;;18779:93;18868:3;18779:93;:::i;:::-;18897:2;18892:3;18888:12;18881:19;;18540:366;;;:::o;18912:419::-;19078:4;19116:2;19105:9;19101:18;19093:26;;19165:9;19159:4;19155:20;19151:1;19140:9;19136:17;19129:47;19193:131;19319:4;19193:131;:::i;:::-;19185:139;;18912:419;;;:::o;19337:222::-;19477:34;19473:1;19465:6;19461:14;19454:58;19546:5;19541:2;19533:6;19529:15;19522:30;19337:222;:::o;19565:366::-;19707:3;19728:67;19792:2;19787:3;19728:67;:::i;:::-;19721:74;;19804:93;19893:3;19804:93;:::i;:::-;19922:2;19917:3;19913:12;19906:19;;19565:366;;;:::o;19937:419::-;20103:4;20141:2;20130:9;20126:18;20118:26;;20190:9;20184:4;20180:20;20176:1;20165:9;20161:17;20154:47;20218:131;20344:4;20218:131;:::i;:::-;20210:139;;19937:419;;;:::o;20362:228::-;20502:34;20498:1;20490:6;20486:14;20479:58;20571:11;20566:2;20558:6;20554:15;20547:36;20362:228;:::o;20596:366::-;20738:3;20759:67;20823:2;20818:3;20759:67;:::i;:::-;20752:74;;20835:93;20924:3;20835:93;:::i;:::-;20953:2;20948:3;20944:12;20937:19;;20596:366;;;:::o;20968:419::-;21134:4;21172:2;21161:9;21157:18;21149:26;;21221:9;21215:4;21211:20;21207:1;21196:9;21192:17;21185:47;21249:131;21375:4;21249:131;:::i;:::-;21241:139;;20968:419;;;:::o;21393:297::-;21533:34;21529:1;21521:6;21517:14;21510:58;21602:34;21597:2;21589:6;21585:15;21578:59;21671:11;21666:2;21658:6;21654:15;21647:36;21393:297;:::o;21696:366::-;21838:3;21859:67;21923:2;21918:3;21859:67;:::i;:::-;21852:74;;21935:93;22024:3;21935:93;:::i;:::-;22053:2;22048:3;22044:12;22037:19;;21696:366;;;:::o;22068:419::-;22234:4;22272:2;22261:9;22257:18;22249:26;;22321:9;22315:4;22311:20;22307:1;22296:9;22292:17;22285:47;22349:131;22475:4;22349:131;:::i;:::-;22341:139;;22068:419;;;:::o;22493:175::-;22633:27;22629:1;22621:6;22617:14;22610:51;22493:175;:::o;22674:366::-;22816:3;22837:67;22901:2;22896:3;22837:67;:::i;:::-;22830:74;;22913:93;23002:3;22913:93;:::i;:::-;23031:2;23026:3;23022:12;23015:19;;22674:366;;;:::o;23046:419::-;23212:4;23250:2;23239:9;23235:18;23227:26;;23299:9;23293:4;23289:20;23285:1;23274:9;23270:17;23263:47;23327:131;23453:4;23327:131;:::i;:::-;23319:139;;23046:419;;;:::o;23471:191::-;23511:3;23530:20;23548:1;23530:20;:::i;:::-;23525:25;;23564:20;23582:1;23564:20;:::i;:::-;23559:25;;23607:1;23604;23600:9;23593:16;;23628:3;23625:1;23622:10;23619:36;;;23635:18;;:::i;:::-;23619:36;23471:191;;;;:::o;23668:176::-;23808:28;23804:1;23796:6;23792:14;23785:52;23668:176;:::o;23850:366::-;23992:3;24013:67;24077:2;24072:3;24013:67;:::i;:::-;24006:74;;24089:93;24178:3;24089:93;:::i;:::-;24207:2;24202:3;24198:12;24191:19;;23850:366;;;:::o;24222:419::-;24388:4;24426:2;24415:9;24411:18;24403:26;;24475:9;24469:4;24465:20;24461:1;24450:9;24446:17;24439:47;24503:131;24629:4;24503:131;:::i;:::-;24495:139;;24222:419;;;:::o;24647:233::-;24686:3;24709:24;24727:5;24709:24;:::i;:::-;24700:33;;24755:66;24748:5;24745:77;24742:103;;24825:18;;:::i;:::-;24742:103;24872:1;24865:5;24861:13;24854:20;;24647:233;;;:::o;24886:194::-;24926:4;24946:20;24964:1;24946:20;:::i;:::-;24941:25;;24980:20;24998:1;24980:20;:::i;:::-;24975:25;;25024:1;25021;25017:9;25009:17;;25048:1;25042:4;25039:11;25036:37;;;25053:18;;:::i;:::-;25036:37;24886:194;;;;:::o;25086:180::-;25134:77;25131:1;25124:88;25231:4;25228:1;25221:15;25255:4;25252:1;25245:15;25272:180;25320:77;25317:1;25310:88;25417:4;25414:1;25407:15;25441:4;25438:1;25431:15;25458:114;25525:6;25559:5;25553:12;25543:22;;25458:114;;;:::o;25578:184::-;25677:11;25711:6;25706:3;25699:19;25751:4;25746:3;25742:14;25727:29;;25578:184;;;;:::o;25768:132::-;25835:4;25858:3;25850:11;;25888:4;25883:3;25879:14;25871:22;;25768:132;;;:::o;25906:108::-;25983:24;26001:5;25983:24;:::i;:::-;25978:3;25971:37;25906:108;;:::o;26020:179::-;26089:10;26110:46;26152:3;26144:6;26110:46;:::i;:::-;26188:4;26183:3;26179:14;26165:28;;26020:179;;;;:::o;26205:113::-;26275:4;26307;26302:3;26298:14;26290:22;;26205:113;;;:::o;26354:732::-;26473:3;26502:54;26550:5;26502:54;:::i;:::-;26572:86;26651:6;26646:3;26572:86;:::i;:::-;26565:93;;26682:56;26732:5;26682:56;:::i;:::-;26761:7;26792:1;26777:284;26802:6;26799:1;26796:13;26777:284;;;26878:6;26872:13;26905:63;26964:3;26949:13;26905:63;:::i;:::-;26898:70;;26991:60;27044:6;26991:60;:::i;:::-;26981:70;;26837:224;26824:1;26821;26817:9;26812:14;;26777:284;;;26781:14;27077:3;27070:10;;26478:608;;;26354:732;;;;:::o;27092:831::-;27355:4;27393:3;27382:9;27378:19;27370:27;;27407:71;27475:1;27464:9;27460:17;27451:6;27407:71;:::i;:::-;27488:80;27564:2;27553:9;27549:18;27540:6;27488:80;:::i;:::-;27615:9;27609:4;27605:20;27600:2;27589:9;27585:18;27578:48;27643:108;27746:4;27737:6;27643:108;:::i;:::-;27635:116;;27761:72;27829:2;27818:9;27814:18;27805:6;27761:72;:::i;:::-;27843:73;27911:3;27900:9;27896:19;27887:6;27843:73;:::i;:::-;27092:831;;;;;;;;:::o;27929:180::-;27977:77;27974:1;27967:88;28074:4;28071:1;28064:15;28098:4;28095:1;28088:15;28115:185;28155:1;28172:20;28190:1;28172:20;:::i;:::-;28167:25;;28206:20;28224:1;28206:20;:::i;:::-;28201:25;;28245:1;28235:35;;28250:18;;:::i;:::-;28235:35;28292:1;28289;28285:9;28280:14;;28115:185;;;;:::o;28306:220::-;28446:34;28442:1;28434:6;28430:14;28423:58;28515:3;28510:2;28502:6;28498:15;28491:28;28306:220;:::o;28532:366::-;28674:3;28695:67;28759:2;28754:3;28695:67;:::i;:::-;28688:74;;28771:93;28860:3;28771:93;:::i;:::-;28889:2;28884:3;28880:12;28873:19;;28532:366;;;:::o;28904:419::-;29070:4;29108:2;29097:9;29093:18;29085:26;;29157:9;29151:4;29147:20;29143:1;29132:9;29128:17;29121:47;29185:131;29311:4;29185:131;:::i;:::-;29177:139;;28904:419;;;:::o;29329:177::-;29469:29;29465:1;29457:6;29453:14;29446:53;29329:177;:::o;29512:366::-;29654:3;29675:67;29739:2;29734:3;29675:67;:::i;:::-;29668:74;;29751:93;29840:3;29751:93;:::i;:::-;29869:2;29864:3;29860:12;29853:19;;29512:366;;;:::o;29884:419::-;30050:4;30088:2;30077:9;30073:18;30065:26;;30137:9;30131:4;30127:20;30123:1;30112:9;30108:17;30101:47;30165:131;30291:4;30165:131;:::i;:::-;30157:139;;29884:419;;;:::o
Swarm Source
ipfs://fca72789ce7ef77c72915d634a81f1535c7cbafd79abbd7f24426235972791bf
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.