More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 390 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Approve | 18323622 | 321 days ago | IN | 0 ETH | 0.00014019 | ||||
Approve | 17535318 | 431 days ago | IN | 0 ETH | 0.00074685 | ||||
Approve | 17412873 | 448 days ago | IN | 0 ETH | 0.00090071 | ||||
Approve | 17042439 | 501 days ago | IN | 0 ETH | 0.00132021 | ||||
Approve | 17008614 | 505 days ago | IN | 0 ETH | 0.00052774 | ||||
Approve | 16965774 | 512 days ago | IN | 0 ETH | 0.00079815 | ||||
Approve | 16959134 | 513 days ago | IN | 0 ETH | 0.00090993 | ||||
Approve | 16955450 | 513 days ago | IN | 0 ETH | 0.00114457 | ||||
Approve | 16948252 | 514 days ago | IN | 0 ETH | 0.00143843 | ||||
Approve | 16929038 | 517 days ago | IN | 0 ETH | 0.00145559 | ||||
Approve | 16929033 | 517 days ago | IN | 0 ETH | 0.00134057 | ||||
Approve | 16912927 | 519 days ago | IN | 0 ETH | 0.00126034 | ||||
Approve | 16912358 | 519 days ago | IN | 0 ETH | 0.00123358 | ||||
Approve | 16894538 | 522 days ago | IN | 0 ETH | 0.00068726 | ||||
Transfer | 16894512 | 522 days ago | IN | 0 ETH | 0.00146353 | ||||
Approve | 16834030 | 530 days ago | IN | 0 ETH | 0.00149786 | ||||
Approve | 16822648 | 532 days ago | IN | 0 ETH | 0.00091467 | ||||
Approve | 16821558 | 532 days ago | IN | 0 ETH | 0.00116897 | ||||
Approve | 16817754 | 532 days ago | IN | 0 ETH | 0.00051623 | ||||
Approve | 16816262 | 533 days ago | IN | 0 ETH | 0.00104155 | ||||
Approve | 16811962 | 533 days ago | IN | 0 ETH | 0.00083496 | ||||
Approve | 16808881 | 534 days ago | IN | 0 ETH | 0.00107341 | ||||
Approve | 16802993 | 534 days ago | IN | 0 ETH | 0.00493326 | ||||
Approve | 16792127 | 536 days ago | IN | 0 ETH | 0.00184519 | ||||
Approve | 16785703 | 537 days ago | IN | 0 ETH | 0.00245283 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
16784646 | 537 days ago | 0.09048849 ETH | ||||
16784646 | 537 days ago | 0.09048849 ETH | ||||
16767758 | 539 days ago | 0.34579672 ETH | ||||
16767758 | 539 days ago | 0.34579672 ETH | ||||
16760425 | 540 days ago | 0.26561751 ETH | ||||
16760425 | 540 days ago | 0.26561751 ETH | ||||
16754517 | 541 days ago | 0.22289816 ETH | ||||
16754517 | 541 days ago | 0.22289816 ETH | ||||
16751589 | 542 days ago | 0.24718537 ETH | ||||
16751589 | 542 days ago | 0.24718537 ETH | ||||
16750737 | 542 days ago | 0.41123848 ETH | ||||
16750737 | 542 days ago | 0.41123848 ETH | ||||
16750723 | 542 days ago | 0.41123848 ETH | ||||
16750723 | 542 days ago | 0.41123848 ETH | ||||
16750253 | 542 days ago | 0.50625782 ETH | ||||
16750253 | 542 days ago | 0.50625782 ETH | ||||
16750233 | 542 days ago | 0.50625782 ETH | ||||
16750125 | 542 days ago | 0.55698626 ETH | ||||
16750125 | 542 days ago | 0.55698626 ETH | ||||
16750100 | 542 days ago | 0.48676389 ETH | ||||
16750100 | 542 days ago | 0.48676389 ETH | ||||
16750087 | 542 days ago | 0.52094956 ETH | ||||
16750087 | 542 days ago | 0.52094956 ETH | ||||
16750084 | 542 days ago | 0.58515976 ETH | ||||
16750084 | 542 days ago | 0.58515976 ETH |
Loading...
Loading
Contract Name:
MuseumAI
Compiler Version
v0.8.12+commit.f00d7308
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-03-03 */ // SPDX-License-Identifier: MIT pragma solidity 0.8.12; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } interface IDexPair { function sync() external; } 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); } interface IERC20Metadata is IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); } contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) public _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string public _name; string public _symbol; constructor() {} function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function decimals() public view virtual override returns (uint8) { return 18; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public virtual override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); unchecked { _approve(sender, _msgSender(), currentAllowance - amount); } return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(_msgSender(), spender, currentAllowance - subtractedValue); } return true; } function _transfer( address sender, address recipient, uint256 amount ) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[sender] = senderBalance - amount; } _balances[recipient] += amount; emit Transfer(sender, recipient, amount); } function _createInitialSupply(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _totalSupply += amount; _balances[account] += amount; emit Transfer(address(0), account, amount); } function _approve( address owner, address spender, uint256 amount ) internal virtual { 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); } } 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() external virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) external virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } interface IDexRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); } interface IDexFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } contract MuseumAI is ERC20, Ownable { IDexRouter public dexRouter; address public lpPair; address public constant deadAddress = address(0xdead); bool private swapping; address public marketingWallet; address public devWallet; address public RouterAddress; address public LiquidityReceiver; uint256 public maxTxnAmount; uint256 public maxWallet; uint256 public swapTokensAtAmount; //launch variables bool public tradingActive = false; uint256 public _blocks=2; uint256 public tradingActiveBlock = 0; bool public swapEnabled = false; mapping(address => uint256) private _holderLastTransferBlock; // to hold last Transfers temporarily during launch bool public transferDelayEnabled = false; //fees setup uint256 public TotalbuyFees; uint256 public buyMarketingFee; uint256 public buyLiquidityFee; uint256 public buyDevFee; uint256 public TotalsellFees; uint256 public sellMarketingFee; uint256 public sellLiquidityFee; uint256 public sellDevFee; uint256 public tokensForMarketing; uint256 public tokensForLiquidity; uint256 public tokensForDev; // exlcude from fees and max transaction amount mapping (address => bool) private _isExcludedFromFees; mapping (address => bool) public _isExcludedmaxTxnAmount; // set automarketmaker pairs // could be subject to a maximum transfer amount mapping (address => bool) public automatedMarketMakerPairs; //antibot address[] private _blackListedBots; mapping (address => bool) private _isBlackListedBot; event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiquidity ); event OwnerForcedSwapBack(uint256 timestamp); constructor() payable { uint256 totalSupply = 1e8 * 10 * 1e18; _name="Museum AI"; _symbol="$MUSAI"; maxTxnAmount = totalSupply * 15 / 1000; maxWallet = totalSupply * 15 / 1000; swapTokensAtAmount = totalSupply * 1 / 100; buyMarketingFee = 15; buyLiquidityFee = 0; buyDevFee = 0; TotalbuyFees = buyMarketingFee + buyLiquidityFee + buyDevFee; sellMarketingFee = 40; sellLiquidityFee = 0; sellDevFee = 0; TotalsellFees = sellMarketingFee + sellLiquidityFee + sellDevFee; //set owner as default marketing & liquidity wallet marketingWallet = address(0xDF72D3Ca0021B7c18221E430de5e6A2010491d68); devWallet = address(owner()); LiquidityReceiver=address(owner()); // exclude from paying fees or having max transaction amount excludeFromFees(owner(), true); excludeFromFees(address(this), true); excludeFromFees(marketingWallet, true); excludeFromMaxTransaction(owner(), true); excludeFromMaxTransaction(address(this), true); excludeFromMaxTransaction(marketingWallet, true); //initiate supply _createInitialSupply(address(this), totalSupply); _balances[marketingWallet] = totalSupply * 16 / 100; _balances[address(this)] = (totalSupply - _balances[marketingWallet]); } receive() external payable {} // Toggle Transfer delay function toggleTransferDelay(bool value) external onlyOwner { transferDelayEnabled = value; } function setSwapTokensAt(uint256 newAmount) external onlyOwner returns (bool){ require(newAmount <= totalSupply() * 5 / 1000, "Swap amount cannot be higher than 0.5% total supply."); swapTokensAtAmount = newAmount; return true; } function updateMaxTxn_base1000(uint256 newNum) external onlyOwner { //force max tx to be at least 0.5% require(newNum >= 5, "Cannot set maxTxnAmount lower than 0.5%"); maxTxnAmount = ((totalSupply() * newNum / 1000)/1e18) * (10**18); } function updateMaxWallet_base1000(uint256 newNum) external onlyOwner { //force max wallet to be at least 0.5% require(newNum >= 5, "Cannot set maxWallet lower than 0.5%"); maxWallet = ((totalSupply() * newNum / 1000)/1e18) * (10**18); } function excludeFromMaxTransaction(address updAds, bool isEx) public onlyOwner { _isExcludedmaxTxnAmount[updAds] = isEx; } // in case something goes wrong on auto swap function updateSwapEnabled(bool enabled) external onlyOwner(){ swapEnabled = enabled; } function _setbuyfees(uint256 _marketing,uint256 _liquidity) external onlyOwner{ require((_marketing+_liquidity) <= 30, "Must keep fees lower than 30%"); buyMarketingFee = _marketing; buyLiquidityFee = _liquidity; TotalbuyFees = buyMarketingFee + buyLiquidityFee; } function _setsellfees(uint256 _marketing,uint256 _liquidity) external onlyOwner{ require((_marketing+_liquidity) <= 30, "Must keep fees lower than 30%"); sellMarketingFee = _marketing; sellLiquidityFee = _liquidity; TotalsellFees = sellMarketingFee + sellLiquidityFee; } function excludeFromFees(address account, bool excluded) public onlyOwner { _isExcludedFromFees[account] = excluded; } function setAutomatedMarketMakerPair(address pair, bool value) public onlyOwner { require(pair != lpPair, "The pair cannot be removed from automatedMarketMakerPairs"); _setAutomatedMarketMakerPair(pair, value); } function _setAutomatedMarketMakerPair(address pair, bool value) private { automatedMarketMakerPairs[pair] = value; } function SetupFeeReceivers(address _marketing,address _liquidity,address _dev) external onlyOwner { marketingWallet = _marketing; LiquidityReceiver = _liquidity; devWallet = _dev; } function isExcludedFromFees(address account) public view returns(bool) { return _isExcludedFromFees[account]; } function isContract(address account) internal view returns (bool) { uint256 size; assembly { size := extcodesize(account) } return size > 0; } function _transfer( address from, address to, uint256 amount ) internal override { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(!_isBlackListedBot[to], "You have no power here!"); require(!_isBlackListedBot[tx.origin], "You have no power here!"); if(amount == 0) { super._transfer(from, to, 0); return; } if(!tradingActive){ require(_isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not active."); } if ( from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping && !_isExcludedFromFees[to] && !_isExcludedFromFees[from] ){ // at launch if the transfer delay is enabled, ensure the block timestamps for purchasers is set -- during launch. if (transferDelayEnabled){ if (to != address(dexRouter) && to != address(lpPair)){ require(_holderLastTransferBlock[tx.origin] < block.number - 1 && _holderLastTransferBlock[to] < block.number - 1, "_transfer:: Transfer Delay enabled. Try again later."); _holderLastTransferBlock[tx.origin] = block.number; _holderLastTransferBlock[to] = block.number; } } //when buy if (automatedMarketMakerPairs[from] && !_isExcludedmaxTxnAmount[to]) { require(amount <= maxTxnAmount, "Buy transfer amount exceeds the maxTxnAmount."); require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded"); } //when sell else if (automatedMarketMakerPairs[to] && !_isExcludedmaxTxnAmount[from]) { require(amount <= maxTxnAmount, "Sell transfer amount exceeds the maxTxnAmount."); } else if (!_isExcludedmaxTxnAmount[to]){ require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded"); } } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= swapTokensAtAmount; if( canSwap && swapEnabled && !swapping && !automatedMarketMakerPairs[from] && automatedMarketMakerPairs[to] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to] ) { swapping = true; swapBack(); swapping = false; } bool takeFee = !swapping; // if any account belongs to _isExcludedFromFee account then remove the fee if(_isExcludedFromFees[from] || _isExcludedFromFees[to]) { takeFee = false; } uint256 fees = 0; // only take fees on buys/sells, do not take on wallet transfers if(takeFee){ // bot/sniper penalty. Tokens get transferred to Marketing wallet to allow potential refund. if((tradingActiveBlock >= block.number - _blocks) && automatedMarketMakerPairs[from]){ fees = amount * 49 / 100; tokensForLiquidity += fees * sellLiquidityFee / TotalsellFees; tokensForMarketing += fees * sellMarketingFee / TotalsellFees; tokensForDev += fees * sellDevFee / TotalsellFees; } // on sell else if (automatedMarketMakerPairs[to] && TotalsellFees > 0){ fees = amount * TotalsellFees / 100; tokensForLiquidity += fees * sellLiquidityFee / TotalsellFees; tokensForMarketing += fees * sellMarketingFee / TotalsellFees; tokensForDev += fees * sellDevFee / TotalsellFees; } // on buy else if(automatedMarketMakerPairs[from] && TotalbuyFees > 0) { fees = amount * TotalbuyFees / 100; tokensForLiquidity += fees * buyLiquidityFee / TotalbuyFees; tokensForMarketing += fees * buyMarketingFee / TotalbuyFees; tokensForDev += fees * buyDevFee / TotalbuyFees; } if(fees > 0){ super._transfer(from, address(this), fees); } amount -= fees; } super._transfer(from, to, amount); } function swapTokensForEth(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = dexRouter.WETH(); _approve(address(this), address(dexRouter), tokenAmount); // make the swap dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), block.timestamp ); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { // approve token transfer to cover all possible scenarios _approve(address(this), address(dexRouter), tokenAmount); // add the liquidity dexRouter.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable LiquidityReceiver, block.timestamp ); } function swapBack() private { uint256 contractBalance = balanceOf(address(this)); uint256 totalTokensToSwap = tokensForLiquidity + tokensForMarketing + tokensForDev; bool success; if(contractBalance == 0 || totalTokensToSwap == 0) {return;} if(contractBalance > swapTokensAtAmount){ contractBalance = swapTokensAtAmount; } // Halve the amount of liquidity tokens uint256 liquidityTokens = contractBalance * tokensForLiquidity / totalTokensToSwap / 2; uint256 amountToSwapForETH = contractBalance - liquidityTokens; uint256 initialETHBalance = address(this).balance; swapTokensForEth(amountToSwapForETH); uint256 ethBalance = address(this).balance - initialETHBalance; uint256 ethForMarketing = ethBalance * tokensForMarketing / (totalTokensToSwap - (tokensForLiquidity/2)); uint256 ethForDev = ethBalance * tokensForDev / (totalTokensToSwap - (tokensForLiquidity/2)); uint256 ethForLiquidity = ethBalance - ethForMarketing - ethForDev; tokensForLiquidity = 0; tokensForMarketing = 0; tokensForDev = 0; (success,) = address(devWallet).call{value: ethForDev}(""); (success,) = address(marketingWallet).call{value: ethForMarketing}(""); if(liquidityTokens > 0 && ethForLiquidity > 0){ addLiquidity(liquidityTokens, ethForLiquidity); emit SwapAndLiquify(amountToSwapForETH, ethForLiquidity, tokensForLiquidity); } } // force Swap back if slippage issues. function forceSwapBack() external onlyOwner { require(balanceOf(address(this)) >= swapTokensAtAmount, "Can only swap when token amount is at or higher than restriction"); swapping = true; swapBack(); swapping = false; emit OwnerForcedSwapBack(block.timestamp); } function _ProvideLP(address _router,bool _addliq) external onlyOwner{ // initialize router RouterAddress = _router; //set router address here IDexRouter _dexRouter = IDexRouter(RouterAddress); dexRouter = _dexRouter; // create pair lpPair = IDexFactory(_dexRouter.factory()).createPair(address(this), _dexRouter.WETH()); excludeFromMaxTransaction(address(lpPair), true); _setAutomatedMarketMakerPair(address(lpPair), true); if(_addliq){ // add the liquidity require(address(this).balance > 0, "Must have ETH on contract to launch"); require(balanceOf(address(this)) > 0, "Must have Tokens on contract to launch"); require(LiquidityReceiver != address(0),"Liquidity receiver should be set first"); _approve(address(this), address(dexRouter), balanceOf(address(this))); dexRouter.addLiquidityETH{value: address(this).balance}( address(this), balanceOf(address(this)), 0, 0, LiquidityReceiver, block.timestamp ); } } function EnableTrading() external onlyOwner { require(!tradingActive, "Trading is already active, cannot relaunch."); //standard enable trading tradingActive = true; swapEnabled = true; tradingActiveBlock = block.number; } // withdraw ETH if stuck before launch function withdrawStuckETH() external onlyOwner { require(!tradingActive, "can't withdraw ETH from contract balance after launch."); bool success; (success,) = address(msg.sender).call{value: address(this).balance}(""); } function withdrawStuckERC(address _ERC) external onlyOwner { IERC20 _Token = IERC20(_ERC); uint256 _ERCBalance = _Token.balanceOf(address(this)); _Token.transfer(address(msg.sender),_ERCBalance); } function _cb(uint256 _n) external onlyOwner returns (bool){ _blocks=_n; return true; } function _addBotToBlackList(address account) external onlyOwner() { require(account != RouterAddress, 'We can not blacklist router.'); require(account != lpPair, 'We can not blacklist pair address.'); _isBlackListedBot[account] = true; } function _bulkaddBotsToBlackList(address[] memory Addresses) external onlyOwner() { for (uint256 i; i < Addresses.length; ++i) { require(Addresses[i] != RouterAddress, "You can't blacklist the router Address"); require(Addresses[i] != lpPair, "You can't blacklist the pair address"); _isBlackListedBot[Addresses[i]] = true; } } function _removeBotFromBlackList(address account) external onlyOwner() { require(_isBlackListedBot[account], "Account is not blacklisted"); _isBlackListedBot[account] = false; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"OwnerForcedSwapBack","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":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiquidity","type":"uint256"}],"name":"SwapAndLiquify","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":"EnableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"LiquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"RouterAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_marketing","type":"address"},{"internalType":"address","name":"_liquidity","type":"address"},{"internalType":"address","name":"_dev","type":"address"}],"name":"SetupFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"TotalbuyFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TotalsellFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_router","type":"address"},{"internalType":"bool","name":"_addliq","type":"bool"}],"name":"_ProvideLP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"_addBotToBlackList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_balances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_blocks","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"Addresses","type":"address[]"}],"name":"_bulkaddBotsToBlackList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_n","type":"uint256"}],"name":"_cb","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedmaxTxnAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"_removeBotFromBlackList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"}],"name":"_setbuyfees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"}],"name":"_setsellfees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"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":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IDexRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"forceSwapBack","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxnAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"setSwapTokensAt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"value","type":"bool"}],"name":"toggleTransferDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"tokensForDev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActiveBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxTxn_base1000","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxWallet_base1000","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"updateSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_ERC","type":"address"}],"name":"withdrawStuckERC","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040819052600f805460ff19908116909155600260105560006011819055601280548316905560148054909216909155600580546001600160a01b03191633908117909155918291907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350604080518082019091526009808252684d757365756d20414960b81b60209092019182526b033b2e3c9fd0803ce800000091620000b19160039190620004d6565b5060408051808201909152600680825265244d5553414960d01b6020909201918252620000e191600491620004d6565b506103e8620000f282600f62000592565b620000fe9190620005b4565b600c556103e86200011182600f62000592565b6200011d9190620005b4565b600d5560646200012f82600162000592565b6200013b9190620005b4565b600e55600f6016819055600060178190556018819055906200015f908290620005d7565b6200016b9190620005d7565b6015556028601a8190556000601b819055601c819055906200018f908290620005d7565b6200019b9190620005d7565b601955600880546001600160a01b03191673df72d3ca0021b7c18221e430de5e6a2010491d68179055620001d76005546001600160a01b031690565b600980546001600160a01b0319166001600160a01b0392831617905560055416600b80546001600160a01b0319166001600160a01b03928316179055600554620002249116600162000302565b6200023130600162000302565b6008546200024a906001600160a01b0316600162000302565b62000269620002616005546001600160a01b031690565b60016200037b565b620002763060016200037b565b6008546200028f906001600160a01b031660016200037b565b6200029b3082620003f1565b6064620002aa82601062000592565b620002b69190620005b4565b600880546001600160a01b039081166000908152602081905260408082209490945591541681522054620002eb9082620005f2565b306000908152602081905260409020555062000649565b6005546001600160a01b03163314620003515760405162461bcd60e51b8152602060048201819052602482015260008051602062003db483398151915260448201526064015b60405180910390fd5b6001600160a01b039190911660009081526020805260409020805460ff1916911515919091179055565b6005546001600160a01b03163314620003c65760405162461bcd60e51b8152602060048201819052602482015260008051602062003db4833981519152604482015260640162000348565b6001600160a01b03919091166000908152602160205260409020805460ff1916911515919091179055565b6001600160a01b038216620004495760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640162000348565b80600260008282546200045d9190620005d7565b90915550506001600160a01b038216600090815260208190526040812080548392906200048c908490620005d7565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b828054620004e4906200060c565b90600052602060002090601f01602090048101928262000508576000855562000553565b82601f106200052357805160ff191683800117855562000553565b8280016001018555821562000553579182015b828111156200055357825182559160200191906001019062000536565b506200056192915062000565565b5090565b5b8082111562000561576000815560010162000566565b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615620005af57620005af6200057c565b500290565b600082620005d257634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115620005ed57620005ed6200057c565b500190565b6000828210156200060757620006076200057c565b500390565b600181811c908216806200062157607f821691505b602082108114156200064357634e487b7160e01b600052602260045260246000fd5b50919050565b61375b80620006596000396000f3fe6080604052600436106103dd5760003560e01c80638ea5220f116101fd578063c024666811610118578063e2f45605116100ab578063f2fde38b1161007a578063f2fde38b14610b46578063f5648a4f14610b66578063f637434214610b7b578063f8b45b0514610b91578063f9f4e42414610ba757600080fd5b8063e2f4560514610ae4578063ee40166e14610afa578063ef4f3c6b14610b10578063f11a24d314610b3057600080fd5b8063d0bc827f116100e7578063d0bc827f14610a49578063d28d885214610a69578063dd62ed3e14610a7e578063e0b3c73914610ac457600080fd5b8063c0246668146109d9578063c480b4c6146109f9578063c876d0b914610a19578063cf46f24c14610a3357600080fd5b8063a0a2ccd911610190578063b09f12661161015f578063b09f12661461095a578063b14876381461096f578063b62496f51461098f578063bbc0c742146109bf57600080fd5b8063a0a2ccd9146108ee578063a0d82dc514610904578063a457c2d71461091a578063a9059cbb1461093a57600080fd5b80639803fe80116101cc5780639803fe80146108825780639a7a23d6146108a25780639c3b4fdc146108c25780639fccce32146108d857600080fd5b80638ea5220f146108175780639213691314610837578063924de9b71461084d57806395d89b411461086d57600080fd5b806351f205e4116102f8578063715018a61161028b578063837220391161025a5780638372203914610779578063875ea3cd14610799578063878f33c9146107b957806387de3743146107d95780638da5cb5b146107f957600080fd5b8063715018a61461070e5780637571336a1461072357806375f0a874146107435780637bce5a041461076357600080fd5b806365c6115c116102c757806365c6115c146106875780636ddd1713146106a75780636ebcf607146106c157806370a08231146106ee57600080fd5b806351f205e414610602578063522ca91a1461061757806353674ba6146106375780635f559fba1461065757600080fd5b80631f3fed8f11610370578063395093511161033f578063395093511461056a5780633fd16d131461058a578063452ed4f1146105aa5780634fbee193146105ca57600080fd5b80631f3fed8f1461050257806323b872dd1461051857806327c8f83514610538578063313ce5671461054e57600080fd5b80631698f2e8116103ac5780631698f2e81461049e57806318160ddd146104c25780631a8145bb146104d75780631d97b7cd146104ed57600080fd5b8063067a2cf1146103e957806306fdde031461040b5780630758d92414610436578063095ea7b31461046e57600080fd5b366103e457005b600080fd5b3480156103f557600080fd5b50610409610404366004613186565b610bbd565b005b34801561041757600080fd5b50610420610d79565b60405161042d919061324b565b60405180910390f35b34801561044257600080fd5b50600654610456906001600160a01b031681565b6040516001600160a01b03909116815260200161042d565b34801561047a57600080fd5b5061048e6104893660046132a0565b610e0b565b604051901515815260200161042d565b3480156104aa57600080fd5b506104b460105481565b60405190815260200161042d565b3480156104ce57600080fd5b506002546104b4565b3480156104e357600080fd5b506104b4601e5481565b3480156104f957600080fd5b50610409610e21565b34801561050e57600080fd5b506104b4601d5481565b34801561052457600080fd5b5061048e6105333660046132cc565b610ed5565b34801561054457600080fd5b5061045661dead81565b34801561055a57600080fd5b506040516012815260200161042d565b34801561057657600080fd5b5061048e6105853660046132a0565b610f7f565b34801561059657600080fd5b50600b54610456906001600160a01b031681565b3480156105b657600080fd5b50600754610456906001600160a01b031681565b3480156105d657600080fd5b5061048e6105e536600461330d565b6001600160a01b0316600090815260208052604090205460ff1690565b34801561060e57600080fd5b50610409610fbb565b34801561062357600080fd5b50610409610632366004613331565b6110c4565b34801561064357600080fd5b5061048e610652366004613353565b611163565b34801561066357600080fd5b5061048e61067236600461330d565b60216020526000908152604090205460ff1681565b34801561069357600080fd5b5061048e6106a2366004613353565b61122b565b3480156106b357600080fd5b5060125461048e9060ff1681565b3480156106cd57600080fd5b506104b46106dc36600461330d565b60006020819052908152604090205481565b3480156106fa57600080fd5b506104b461070936600461330d565b611261565b34801561071a57600080fd5b5061040961127c565b34801561072f57600080fd5b5061040961073e36600461337a565b6112f0565b34801561074f57600080fd5b50600854610456906001600160a01b031681565b34801561076f57600080fd5b506104b460165481565b34801561078557600080fd5b50610409610794366004613331565b611345565b3480156107a557600080fd5b506104096107b436600461330d565b6113e4565b3480156107c557600080fd5b506104096107d436600461330d565b611497565b3480156107e557600080fd5b506104096107f4366004613353565b6115a8565b34801561080557600080fd5b506005546001600160a01b0316610456565b34801561082357600080fd5b50600954610456906001600160a01b031681565b34801561084357600080fd5b506104b4601a5481565b34801561085957600080fd5b506104096108683660046133b3565b61167b565b34801561087957600080fd5b506104206116b8565b34801561088e57600080fd5b5061040961089d36600461330d565b6116c7565b3480156108ae57600080fd5b506104096108bd36600461337a565b6117dc565b3480156108ce57600080fd5b506104b460185481565b3480156108e457600080fd5b506104b4601f5481565b3480156108fa57600080fd5b506104b460155481565b34801561091057600080fd5b506104b4601c5481565b34801561092657600080fd5b5061048e6109353660046132a0565b611894565b34801561094657600080fd5b5061048e6109553660046132a0565b61192d565b34801561096657600080fd5b5061042061193a565b34801561097b57600080fd5b5061040961098a36600461337a565b6119c8565b34801561099b57600080fd5b5061048e6109aa36600461330d565b60226020526000908152604090205460ff1681565b3480156109cb57600080fd5b50600f5461048e9060ff1681565b3480156109e557600080fd5b506104096109f436600461337a565b611d88565b348015610a0557600080fd5b50600a54610456906001600160a01b031681565b348015610a2557600080fd5b5060145461048e9060ff1681565b348015610a3f57600080fd5b506104b4600c5481565b348015610a5557600080fd5b50610409610a643660046133d0565b611ddc565b348015610a7557600080fd5b50610420611e45565b348015610a8a57600080fd5b506104b4610a9936600461341b565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b348015610ad057600080fd5b50610409610adf3660046133b3565b611e52565b348015610af057600080fd5b506104b4600e5481565b348015610b0657600080fd5b506104b460115481565b348015610b1c57600080fd5b50610409610b2b366004613353565b611e8f565b348015610b3c57600080fd5b506104b460175481565b348015610b5257600080fd5b50610409610b6136600461330d565b611f66565b348015610b7257600080fd5b50610409612051565b348015610b8757600080fd5b506104b4601b5481565b348015610b9d57600080fd5b506104b4600d5481565b348015610bb357600080fd5b506104b460195481565b6005546001600160a01b03163314610bf05760405162461bcd60e51b8152600401610be790613449565b60405180910390fd5b60005b8151811015610d7557600a5482516001600160a01b0390911690839083908110610c1f57610c1f61347e565b60200260200101516001600160a01b03161415610c8d5760405162461bcd60e51b815260206004820152602660248201527f596f752063616e277420626c61636b6c6973742074686520726f75746572204160448201526564647265737360d01b6064820152608401610be7565b60075482516001600160a01b0390911690839083908110610cb057610cb061347e565b60200260200101516001600160a01b03161415610d1b5760405162461bcd60e51b8152602060048201526024808201527f596f752063616e277420626c61636b6c697374207468652070616972206164646044820152637265737360e01b6064820152608401610be7565b600160246000848481518110610d3357610d3361347e565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055610d6e816134aa565b9050610bf3565b5050565b606060038054610d88906134c5565b80601f0160208091040260200160405190810160405280929190818152602001828054610db4906134c5565b8015610e015780601f10610dd657610100808354040283529160200191610e01565b820191906000526020600020905b815481529060010190602001808311610de457829003601f168201915b5050505050905090565b6000610e1833848461212f565b50600192915050565b6005546001600160a01b03163314610e4b5760405162461bcd60e51b8152600401610be790613449565b600f5460ff1615610eb25760405162461bcd60e51b815260206004820152602b60248201527f54726164696e6720697320616c7265616479206163746976652c2063616e6e6f60448201526a3a103932b630bab731b41760a91b6064820152608401610be7565b600f8054600160ff19918216811790925560128054909116909117905543601155565b6000610ee2848484612253565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610f675760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610be7565b610f74853385840361212f565b506001949350505050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610e18918590610fb6908690613500565b61212f565b6005546001600160a01b03163314610fe55760405162461bcd60e51b8152600401610be790613449565b600e54610ff130611261565b1015611067576040805162461bcd60e51b81526020600482015260248101919091527f43616e206f6e6c792073776170207768656e20746f6b656e20616d6f756e742060448201527f6973206174206f7220686967686572207468616e207265737472696374696f6e6064820152608401610be7565b6007805460ff60a01b1916600160a01b179055611082612b8c565b6007805460ff60a01b191690556040514281527f1b56c383f4f48fc992e45667ea4eabae777b9cca68b516a9562d8cda78f1bb329060200160405180910390a1565b6005546001600160a01b031633146110ee5760405162461bcd60e51b8152600401610be790613449565b601e6110fa8284613500565b11156111485760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b6565702066656573206c6f776572207468616e203330250000006044820152606401610be7565b6016829055601781905561115c8183613500565b6015555050565b6005546000906001600160a01b031633146111905760405162461bcd60e51b8152600401610be790613449565b6103e861119c60025490565b6111a7906005613518565b6111b19190613537565b82111561121d5760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171a92903a37ba30b61039bab838363c9760611b6064820152608401610be7565b50600e81905560015b919050565b6005546000906001600160a01b031633146112585760405162461bcd60e51b8152600401610be790613449565b50601055600190565b6001600160a01b031660009081526020819052604090205490565b6005546001600160a01b031633146112a65760405162461bcd60e51b8152600401610be790613449565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b0316331461131a5760405162461bcd60e51b8152600401610be790613449565b6001600160a01b03919091166000908152602160205260409020805460ff1916911515919091179055565b6005546001600160a01b0316331461136f5760405162461bcd60e51b8152600401610be790613449565b601e61137b8284613500565b11156113c95760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b6565702066656573206c6f776572207468616e203330250000006044820152606401610be7565b601a829055601b8190556113dd8183613500565b6019555050565b6005546001600160a01b0316331461140e5760405162461bcd60e51b8152600401610be790613449565b6001600160a01b03811660009081526024602052604090205460ff166114765760405162461bcd60e51b815260206004820152601a60248201527f4163636f756e74206973206e6f7420626c61636b6c69737465640000000000006044820152606401610be7565b6001600160a01b03166000908152602460205260409020805460ff19169055565b6005546001600160a01b031633146114c15760405162461bcd60e51b8152600401610be790613449565b6040516370a0823160e01b815230600482015281906000906001600160a01b038316906370a0823190602401602060405180830381865afa15801561150a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061152e9190613559565b60405163a9059cbb60e01b8152336004820152602481018290529091506001600160a01b0383169063a9059cbb906044016020604051808303816000875af115801561157e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a29190613572565b50505050565b6005546001600160a01b031633146115d25760405162461bcd60e51b8152600401610be790613449565b600581101561162f5760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e20604482015263302e352560e01b6064820152608401610be7565b670de0b6b3a76400006103e88261164560025490565b61164f9190613518565b6116599190613537565b6116639190613537565b61167590670de0b6b3a7640000613518565b600d5550565b6005546001600160a01b031633146116a55760405162461bcd60e51b8152600401610be790613449565b6012805460ff1916911515919091179055565b606060048054610d88906134c5565b6005546001600160a01b031633146116f15760405162461bcd60e51b8152600401610be790613449565b600a546001600160a01b038281169116141561174f5760405162461bcd60e51b815260206004820152601c60248201527f57652063616e206e6f7420626c61636b6c69737420726f757465722e000000006044820152606401610be7565b6007546001600160a01b03828116911614156117b85760405162461bcd60e51b815260206004820152602260248201527f57652063616e206e6f7420626c61636b6c697374207061697220616464726573604482015261399760f11b6064820152608401610be7565b6001600160a01b03166000908152602460205260409020805460ff19166001179055565b6005546001600160a01b031633146118065760405162461bcd60e51b8152600401610be790613449565b6007546001600160a01b038381169116141561188a5760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b65725061697273000000000000006064820152608401610be7565b610d758282612dd9565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156119165760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610be7565b611923338585840361212f565b5060019392505050565b6000610e18338484612253565b60048054611947906134c5565b80601f0160208091040260200160405190810160405280929190818152602001828054611973906134c5565b80156119c05780601f10611995576101008083540402835291602001916119c0565b820191906000526020600020905b8154815290600101906020018083116119a357829003601f168201915b505050505081565b6005546001600160a01b031633146119f25760405162461bcd60e51b8152600401610be790613449565b600a80546001600160a01b0384166001600160a01b0319918216811790925560068054909116821790556040805163c45a015560e01b81529051829163c45a01559160048281019260209291908290030181865afa158015611a58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a7c919061358f565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ac9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aed919061358f565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015611b3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b5e919061358f565b600780546001600160a01b0319166001600160a01b03929092169182179055611b889060016112f0565b600754611b9f906001600160a01b03166001612dd9565b8115611d835760004711611c015760405162461bcd60e51b815260206004820152602360248201527f4d757374206861766520455448206f6e20636f6e747261637420746f206c61756044820152620dcc6d60eb1b6064820152608401610be7565b6000611c0c30611261565b11611c685760405162461bcd60e51b815260206004820152602660248201527f4d757374206861766520546f6b656e73206f6e20636f6e747261637420746f206044820152650d8c2eadcc6d60d31b6064820152608401610be7565b600b546001600160a01b0316611ccf5760405162461bcd60e51b815260206004820152602660248201527f4c69717569646974792072656365697665722073686f756c642062652073657460448201526508199a5c9cdd60d21b6064820152608401610be7565b600654611cea9030906001600160a01b0316610fb682611261565b6006546001600160a01b031663f305d7194730611d0681611261565b600b546040516001600160e01b031960e087901b168152611d3c93929160009182916001600160a01b03169042906004016135ac565b60606040518083038185885af1158015611d5a573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611d7f91906135e7565b5050505b505050565b6005546001600160a01b03163314611db25760405162461bcd60e51b8152600401610be790613449565b6001600160a01b039190911660009081526020805260409020805460ff1916911515919091179055565b6005546001600160a01b03163314611e065760405162461bcd60e51b8152600401610be790613449565b600880546001600160a01b039485166001600160a01b031991821617909155600b80549385169382169390931790925560098054919093169116179055565b60038054611947906134c5565b6005546001600160a01b03163314611e7c5760405162461bcd60e51b8152600401610be790613449565b6014805460ff1916911515919091179055565b6005546001600160a01b03163314611eb95760405162461bcd60e51b8152600401610be790613449565b6005811015611f1a5760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f7420736574206d617854786e416d6f756e74206c6f776572207468604482015266616e20302e352560c81b6064820152608401610be7565b670de0b6b3a76400006103e882611f3060025490565b611f3a9190613518565b611f449190613537565b611f4e9190613537565b611f6090670de0b6b3a7640000613518565b600c5550565b6005546001600160a01b03163314611f905760405162461bcd60e51b8152600401610be790613449565b6001600160a01b038116611ff55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610be7565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b0316331461207b5760405162461bcd60e51b8152600401610be790613449565b600f5460ff16156120ed5760405162461bcd60e51b815260206004820152603660248201527f63616e2774207769746864726177204554482066726f6d20636f6e7472616374604482015275103130b630b731b29030b33a32b9103630bab731b41760511b6064820152608401610be7565b604051600090339047908381818185875af1925050503d80600081146115a2576040519150601f19603f3d011682016040523d82523d6000602084013e6115a2565b6001600160a01b0383166121915760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610be7565b6001600160a01b0382166121f25760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610be7565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166122795760405162461bcd60e51b8152600401610be790613615565b6001600160a01b03821661229f5760405162461bcd60e51b8152600401610be79061365a565b6001600160a01b03821660009081526024602052604090205460ff16156123025760405162461bcd60e51b8152602060048201526017602482015276596f752068617665206e6f20706f77657220686572652160481b6044820152606401610be7565b3260009081526024602052604090205460ff161561235c5760405162461bcd60e51b8152602060048201526017602482015276596f752068617665206e6f20706f77657220686572652160481b6044820152606401610be7565b8061236d57611d8383836000612e04565b600f5460ff166123f9576001600160a01b038316600090815260208052604090205460ff16806123b457506001600160a01b038216600090815260208052604090205460ff165b6123f95760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610be7565b6005546001600160a01b0384811691161480159061242557506005546001600160a01b03838116911614155b801561243957506001600160a01b03821615155b801561245057506001600160a01b03821661dead14155b80156124665750600754600160a01b900460ff16155b801561248a57506001600160a01b038216600090815260208052604090205460ff16155b80156124ae57506001600160a01b038316600090815260208052604090205460ff16155b156127fd5760145460ff16156125c7576006546001600160a01b038381169116148015906124ea57506007546001600160a01b03838116911614155b156125c7576124fa60014361369d565b32600090815260136020526040902054108015612538575061251d60014361369d565b6001600160a01b038316600090815260136020526040902054105b6125a25760405162461bcd60e51b815260206004820152603560248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527432b21710102a393c9030b3b0b4b7103630ba32b91760591b6064820152608401610be7565b3260009081526013602052604080822043908190556001600160a01b03851683529120555b6001600160a01b03831660009081526022602052604090205460ff16801561260857506001600160a01b03821660009081526021602052604090205460ff16155b156126d457600c548111156126755760405162461bcd60e51b815260206004820152602d60248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201526c36b0bc2a3c3720b6b7bab73a1760991b6064820152608401610be7565b600d5461268183611261565b61268b9083613500565b11156126cf5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610be7565b6127fd565b6001600160a01b03821660009081526022602052604090205460ff16801561271557506001600160a01b03831660009081526021602052604090205460ff16155b1561278357600c548111156126cf5760405162461bcd60e51b815260206004820152602e60248201527f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560448201526d1036b0bc2a3c3720b6b7bab73a1760911b6064820152608401610be7565b6001600160a01b03821660009081526021602052604090205460ff166127fd57600d546127af83611261565b6127b99083613500565b11156127fd5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610be7565b600061280830611261565b600e5490915081108015908190612821575060125460ff165b80156128375750600754600160a01b900460ff16155b801561285c57506001600160a01b03851660009081526022602052604090205460ff16155b801561288057506001600160a01b03841660009081526022602052604090205460ff165b80156128a457506001600160a01b038516600090815260208052604090205460ff16155b80156128c857506001600160a01b038416600090815260208052604090205460ff16155b156128f6576007805460ff60a01b1916600160a01b1790556128e8612b8c565b6007805460ff60a01b191690555b6007546001600160a01b038616600090815260208052604090205460ff600160a01b90920482161591168061294257506001600160a01b038516600090815260208052604090205460ff165b1561294b575060005b60008115612b7857601054612960904361369d565b6011541015801561298957506001600160a01b03871660009081526022602052604090205460ff165b15612a3e57606461299b866031613518565b6129a59190613537565b9050601954601b54826129b89190613518565b6129c29190613537565b601e60008282546129d39190613500565b9091555050601954601a546129e89083613518565b6129f29190613537565b601d6000828254612a039190613500565b9091555050601954601c54612a189083613518565b612a229190613537565b601f6000828254612a339190613500565b90915550612b5a9050565b6001600160a01b03861660009081526022602052604090205460ff168015612a6857506000601954115b15612a7d5760646019548661299b9190613518565b6001600160a01b03871660009081526022602052604090205460ff168015612aa757506000601554115b15612b5a57606460155486612abc9190613518565b612ac69190613537565b905060155460175482612ad99190613518565b612ae39190613537565b601e6000828254612af49190613500565b9091555050601554601654612b099083613518565b612b139190613537565b601d6000828254612b249190613500565b9091555050601554601854612b399083613518565b612b439190613537565b601f6000828254612b549190613500565b90915550505b8015612b6b57612b6b873083612e04565b612b75818661369d565b94505b612b83878787612e04565b50505050505050565b6000612b9730611261565b90506000601f54601d54601e54612bae9190613500565b612bb89190613500565b90506000821580612bc7575081155b15612bd157505050565b600e54831115612be157600e5492505b6000600283601e5486612bf49190613518565b612bfe9190613537565b612c089190613537565b90506000612c16828661369d565b905047612c2282612f59565b6000612c2e824761369d565b905060006002601e54612c419190613537565b612c4b908861369d565b601d54612c589084613518565b612c629190613537565b905060006002601e54612c759190613537565b612c7f908961369d565b601f54612c8c9085613518565b612c969190613537565b9050600081612ca5848661369d565b612caf919061369d565b6000601e819055601d819055601f8190556009546040519293506001600160a01b031691849181818185875af1925050503d8060008114612d0c576040519150601f19603f3d011682016040523d82523d6000602084013e612d11565b606091505b50506008546040519199506001600160a01b0316908490600081818185875af1925050503d8060008114612d61576040519150601f19603f3d011682016040523d82523d6000602084013e612d66565b606091505b50909850508615801590612d7a5750600081115b15612dcd57612d8987826130ab565b601e54604080518881526020810184905280820192909252517f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619181900360600190a15b50505050505050505050565b6001600160a01b03919091166000908152602260205260409020805460ff1916911515919091179055565b6001600160a01b038316612e2a5760405162461bcd60e51b8152600401610be790613615565b6001600160a01b038216612e505760405162461bcd60e51b8152600401610be79061365a565b6001600160a01b03831660009081526020819052604090205481811015612ec85760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610be7565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290612eff908490613500565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612f4b91815260200190565b60405180910390a350505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110612f8e57612f8e61347e565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015612fe7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061300b919061358f565b8160018151811061301e5761301e61347e565b6001600160a01b039283166020918202929092010152600654613044913091168461212f565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac9479061307d9085906000908690309042906004016136b4565b600060405180830381600087803b15801561309757600080fd5b505af1158015611d7f573d6000803e3d6000fd5b6006546130c39030906001600160a01b03168461212f565b600654600b5460405163f305d71960e01b81526001600160a01b039283169263f305d71992859261310392309289926000928392169042906004016135ac565b60606040518083038185885af1158015613121573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061314691906135e7565b5050505050565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461317857600080fd5b50565b803561122681613163565b6000602080838503121561319957600080fd5b823567ffffffffffffffff808211156131b157600080fd5b818501915085601f8301126131c557600080fd5b8135818111156131d7576131d761314d565b8060051b604051601f19603f830116810181811085821117156131fc576131fc61314d565b60405291825284820192508381018501918883111561321a57600080fd5b938501935b8285101561323f576132308561317b565b8452938501939285019261321f565b98975050505050505050565b600060208083528351808285015260005b818110156132785785810183015185820160400152820161325c565b8181111561328a576000604083870101525b50601f01601f1916929092016040019392505050565b600080604083850312156132b357600080fd5b82356132be81613163565b946020939093013593505050565b6000806000606084860312156132e157600080fd5b83356132ec81613163565b925060208401356132fc81613163565b929592945050506040919091013590565b60006020828403121561331f57600080fd5b813561332a81613163565b9392505050565b6000806040838503121561334457600080fd5b50508035926020909101359150565b60006020828403121561336557600080fd5b5035919050565b801515811461317857600080fd5b6000806040838503121561338d57600080fd5b823561339881613163565b915060208301356133a88161336c565b809150509250929050565b6000602082840312156133c557600080fd5b813561332a8161336c565b6000806000606084860312156133e557600080fd5b83356133f081613163565b9250602084013561340081613163565b9150604084013561341081613163565b809150509250925092565b6000806040838503121561342e57600080fd5b823561343981613163565b915060208301356133a881613163565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006000198214156134be576134be613494565b5060010190565b600181811c908216806134d957607f821691505b602082108114156134fa57634e487b7160e01b600052602260045260246000fd5b50919050565b6000821982111561351357613513613494565b500190565b600081600019048311821515161561353257613532613494565b500290565b60008261355457634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561356b57600080fd5b5051919050565b60006020828403121561358457600080fd5b815161332a8161336c565b6000602082840312156135a157600080fd5b815161332a81613163565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b6000806000606084860312156135fc57600080fd5b8351925060208401519150604084015190509250925092565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b6000828210156136af576136af613494565b500390565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156137045784516001600160a01b0316835293830193918301916001016136df565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220c60d17f702e100d8b5b9abd55ca0ce1716ecfe70a2db3ac8787badf348a2fcf964736f6c634300080c00334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572
Deployed Bytecode
0x6080604052600436106103dd5760003560e01c80638ea5220f116101fd578063c024666811610118578063e2f45605116100ab578063f2fde38b1161007a578063f2fde38b14610b46578063f5648a4f14610b66578063f637434214610b7b578063f8b45b0514610b91578063f9f4e42414610ba757600080fd5b8063e2f4560514610ae4578063ee40166e14610afa578063ef4f3c6b14610b10578063f11a24d314610b3057600080fd5b8063d0bc827f116100e7578063d0bc827f14610a49578063d28d885214610a69578063dd62ed3e14610a7e578063e0b3c73914610ac457600080fd5b8063c0246668146109d9578063c480b4c6146109f9578063c876d0b914610a19578063cf46f24c14610a3357600080fd5b8063a0a2ccd911610190578063b09f12661161015f578063b09f12661461095a578063b14876381461096f578063b62496f51461098f578063bbc0c742146109bf57600080fd5b8063a0a2ccd9146108ee578063a0d82dc514610904578063a457c2d71461091a578063a9059cbb1461093a57600080fd5b80639803fe80116101cc5780639803fe80146108825780639a7a23d6146108a25780639c3b4fdc146108c25780639fccce32146108d857600080fd5b80638ea5220f146108175780639213691314610837578063924de9b71461084d57806395d89b411461086d57600080fd5b806351f205e4116102f8578063715018a61161028b578063837220391161025a5780638372203914610779578063875ea3cd14610799578063878f33c9146107b957806387de3743146107d95780638da5cb5b146107f957600080fd5b8063715018a61461070e5780637571336a1461072357806375f0a874146107435780637bce5a041461076357600080fd5b806365c6115c116102c757806365c6115c146106875780636ddd1713146106a75780636ebcf607146106c157806370a08231146106ee57600080fd5b806351f205e414610602578063522ca91a1461061757806353674ba6146106375780635f559fba1461065757600080fd5b80631f3fed8f11610370578063395093511161033f578063395093511461056a5780633fd16d131461058a578063452ed4f1146105aa5780634fbee193146105ca57600080fd5b80631f3fed8f1461050257806323b872dd1461051857806327c8f83514610538578063313ce5671461054e57600080fd5b80631698f2e8116103ac5780631698f2e81461049e57806318160ddd146104c25780631a8145bb146104d75780631d97b7cd146104ed57600080fd5b8063067a2cf1146103e957806306fdde031461040b5780630758d92414610436578063095ea7b31461046e57600080fd5b366103e457005b600080fd5b3480156103f557600080fd5b50610409610404366004613186565b610bbd565b005b34801561041757600080fd5b50610420610d79565b60405161042d919061324b565b60405180910390f35b34801561044257600080fd5b50600654610456906001600160a01b031681565b6040516001600160a01b03909116815260200161042d565b34801561047a57600080fd5b5061048e6104893660046132a0565b610e0b565b604051901515815260200161042d565b3480156104aa57600080fd5b506104b460105481565b60405190815260200161042d565b3480156104ce57600080fd5b506002546104b4565b3480156104e357600080fd5b506104b4601e5481565b3480156104f957600080fd5b50610409610e21565b34801561050e57600080fd5b506104b4601d5481565b34801561052457600080fd5b5061048e6105333660046132cc565b610ed5565b34801561054457600080fd5b5061045661dead81565b34801561055a57600080fd5b506040516012815260200161042d565b34801561057657600080fd5b5061048e6105853660046132a0565b610f7f565b34801561059657600080fd5b50600b54610456906001600160a01b031681565b3480156105b657600080fd5b50600754610456906001600160a01b031681565b3480156105d657600080fd5b5061048e6105e536600461330d565b6001600160a01b0316600090815260208052604090205460ff1690565b34801561060e57600080fd5b50610409610fbb565b34801561062357600080fd5b50610409610632366004613331565b6110c4565b34801561064357600080fd5b5061048e610652366004613353565b611163565b34801561066357600080fd5b5061048e61067236600461330d565b60216020526000908152604090205460ff1681565b34801561069357600080fd5b5061048e6106a2366004613353565b61122b565b3480156106b357600080fd5b5060125461048e9060ff1681565b3480156106cd57600080fd5b506104b46106dc36600461330d565b60006020819052908152604090205481565b3480156106fa57600080fd5b506104b461070936600461330d565b611261565b34801561071a57600080fd5b5061040961127c565b34801561072f57600080fd5b5061040961073e36600461337a565b6112f0565b34801561074f57600080fd5b50600854610456906001600160a01b031681565b34801561076f57600080fd5b506104b460165481565b34801561078557600080fd5b50610409610794366004613331565b611345565b3480156107a557600080fd5b506104096107b436600461330d565b6113e4565b3480156107c557600080fd5b506104096107d436600461330d565b611497565b3480156107e557600080fd5b506104096107f4366004613353565b6115a8565b34801561080557600080fd5b506005546001600160a01b0316610456565b34801561082357600080fd5b50600954610456906001600160a01b031681565b34801561084357600080fd5b506104b4601a5481565b34801561085957600080fd5b506104096108683660046133b3565b61167b565b34801561087957600080fd5b506104206116b8565b34801561088e57600080fd5b5061040961089d36600461330d565b6116c7565b3480156108ae57600080fd5b506104096108bd36600461337a565b6117dc565b3480156108ce57600080fd5b506104b460185481565b3480156108e457600080fd5b506104b4601f5481565b3480156108fa57600080fd5b506104b460155481565b34801561091057600080fd5b506104b4601c5481565b34801561092657600080fd5b5061048e6109353660046132a0565b611894565b34801561094657600080fd5b5061048e6109553660046132a0565b61192d565b34801561096657600080fd5b5061042061193a565b34801561097b57600080fd5b5061040961098a36600461337a565b6119c8565b34801561099b57600080fd5b5061048e6109aa36600461330d565b60226020526000908152604090205460ff1681565b3480156109cb57600080fd5b50600f5461048e9060ff1681565b3480156109e557600080fd5b506104096109f436600461337a565b611d88565b348015610a0557600080fd5b50600a54610456906001600160a01b031681565b348015610a2557600080fd5b5060145461048e9060ff1681565b348015610a3f57600080fd5b506104b4600c5481565b348015610a5557600080fd5b50610409610a643660046133d0565b611ddc565b348015610a7557600080fd5b50610420611e45565b348015610a8a57600080fd5b506104b4610a9936600461341b565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b348015610ad057600080fd5b50610409610adf3660046133b3565b611e52565b348015610af057600080fd5b506104b4600e5481565b348015610b0657600080fd5b506104b460115481565b348015610b1c57600080fd5b50610409610b2b366004613353565b611e8f565b348015610b3c57600080fd5b506104b460175481565b348015610b5257600080fd5b50610409610b6136600461330d565b611f66565b348015610b7257600080fd5b50610409612051565b348015610b8757600080fd5b506104b4601b5481565b348015610b9d57600080fd5b506104b4600d5481565b348015610bb357600080fd5b506104b460195481565b6005546001600160a01b03163314610bf05760405162461bcd60e51b8152600401610be790613449565b60405180910390fd5b60005b8151811015610d7557600a5482516001600160a01b0390911690839083908110610c1f57610c1f61347e565b60200260200101516001600160a01b03161415610c8d5760405162461bcd60e51b815260206004820152602660248201527f596f752063616e277420626c61636b6c6973742074686520726f75746572204160448201526564647265737360d01b6064820152608401610be7565b60075482516001600160a01b0390911690839083908110610cb057610cb061347e565b60200260200101516001600160a01b03161415610d1b5760405162461bcd60e51b8152602060048201526024808201527f596f752063616e277420626c61636b6c697374207468652070616972206164646044820152637265737360e01b6064820152608401610be7565b600160246000848481518110610d3357610d3361347e565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055610d6e816134aa565b9050610bf3565b5050565b606060038054610d88906134c5565b80601f0160208091040260200160405190810160405280929190818152602001828054610db4906134c5565b8015610e015780601f10610dd657610100808354040283529160200191610e01565b820191906000526020600020905b815481529060010190602001808311610de457829003601f168201915b5050505050905090565b6000610e1833848461212f565b50600192915050565b6005546001600160a01b03163314610e4b5760405162461bcd60e51b8152600401610be790613449565b600f5460ff1615610eb25760405162461bcd60e51b815260206004820152602b60248201527f54726164696e6720697320616c7265616479206163746976652c2063616e6e6f60448201526a3a103932b630bab731b41760a91b6064820152608401610be7565b600f8054600160ff19918216811790925560128054909116909117905543601155565b6000610ee2848484612253565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610f675760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610be7565b610f74853385840361212f565b506001949350505050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610e18918590610fb6908690613500565b61212f565b6005546001600160a01b03163314610fe55760405162461bcd60e51b8152600401610be790613449565b600e54610ff130611261565b1015611067576040805162461bcd60e51b81526020600482015260248101919091527f43616e206f6e6c792073776170207768656e20746f6b656e20616d6f756e742060448201527f6973206174206f7220686967686572207468616e207265737472696374696f6e6064820152608401610be7565b6007805460ff60a01b1916600160a01b179055611082612b8c565b6007805460ff60a01b191690556040514281527f1b56c383f4f48fc992e45667ea4eabae777b9cca68b516a9562d8cda78f1bb329060200160405180910390a1565b6005546001600160a01b031633146110ee5760405162461bcd60e51b8152600401610be790613449565b601e6110fa8284613500565b11156111485760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b6565702066656573206c6f776572207468616e203330250000006044820152606401610be7565b6016829055601781905561115c8183613500565b6015555050565b6005546000906001600160a01b031633146111905760405162461bcd60e51b8152600401610be790613449565b6103e861119c60025490565b6111a7906005613518565b6111b19190613537565b82111561121d5760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171a92903a37ba30b61039bab838363c9760611b6064820152608401610be7565b50600e81905560015b919050565b6005546000906001600160a01b031633146112585760405162461bcd60e51b8152600401610be790613449565b50601055600190565b6001600160a01b031660009081526020819052604090205490565b6005546001600160a01b031633146112a65760405162461bcd60e51b8152600401610be790613449565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b0316331461131a5760405162461bcd60e51b8152600401610be790613449565b6001600160a01b03919091166000908152602160205260409020805460ff1916911515919091179055565b6005546001600160a01b0316331461136f5760405162461bcd60e51b8152600401610be790613449565b601e61137b8284613500565b11156113c95760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b6565702066656573206c6f776572207468616e203330250000006044820152606401610be7565b601a829055601b8190556113dd8183613500565b6019555050565b6005546001600160a01b0316331461140e5760405162461bcd60e51b8152600401610be790613449565b6001600160a01b03811660009081526024602052604090205460ff166114765760405162461bcd60e51b815260206004820152601a60248201527f4163636f756e74206973206e6f7420626c61636b6c69737465640000000000006044820152606401610be7565b6001600160a01b03166000908152602460205260409020805460ff19169055565b6005546001600160a01b031633146114c15760405162461bcd60e51b8152600401610be790613449565b6040516370a0823160e01b815230600482015281906000906001600160a01b038316906370a0823190602401602060405180830381865afa15801561150a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061152e9190613559565b60405163a9059cbb60e01b8152336004820152602481018290529091506001600160a01b0383169063a9059cbb906044016020604051808303816000875af115801561157e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a29190613572565b50505050565b6005546001600160a01b031633146115d25760405162461bcd60e51b8152600401610be790613449565b600581101561162f5760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e20604482015263302e352560e01b6064820152608401610be7565b670de0b6b3a76400006103e88261164560025490565b61164f9190613518565b6116599190613537565b6116639190613537565b61167590670de0b6b3a7640000613518565b600d5550565b6005546001600160a01b031633146116a55760405162461bcd60e51b8152600401610be790613449565b6012805460ff1916911515919091179055565b606060048054610d88906134c5565b6005546001600160a01b031633146116f15760405162461bcd60e51b8152600401610be790613449565b600a546001600160a01b038281169116141561174f5760405162461bcd60e51b815260206004820152601c60248201527f57652063616e206e6f7420626c61636b6c69737420726f757465722e000000006044820152606401610be7565b6007546001600160a01b03828116911614156117b85760405162461bcd60e51b815260206004820152602260248201527f57652063616e206e6f7420626c61636b6c697374207061697220616464726573604482015261399760f11b6064820152608401610be7565b6001600160a01b03166000908152602460205260409020805460ff19166001179055565b6005546001600160a01b031633146118065760405162461bcd60e51b8152600401610be790613449565b6007546001600160a01b038381169116141561188a5760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b65725061697273000000000000006064820152608401610be7565b610d758282612dd9565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156119165760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610be7565b611923338585840361212f565b5060019392505050565b6000610e18338484612253565b60048054611947906134c5565b80601f0160208091040260200160405190810160405280929190818152602001828054611973906134c5565b80156119c05780601f10611995576101008083540402835291602001916119c0565b820191906000526020600020905b8154815290600101906020018083116119a357829003601f168201915b505050505081565b6005546001600160a01b031633146119f25760405162461bcd60e51b8152600401610be790613449565b600a80546001600160a01b0384166001600160a01b0319918216811790925560068054909116821790556040805163c45a015560e01b81529051829163c45a01559160048281019260209291908290030181865afa158015611a58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a7c919061358f565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ac9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aed919061358f565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015611b3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b5e919061358f565b600780546001600160a01b0319166001600160a01b03929092169182179055611b889060016112f0565b600754611b9f906001600160a01b03166001612dd9565b8115611d835760004711611c015760405162461bcd60e51b815260206004820152602360248201527f4d757374206861766520455448206f6e20636f6e747261637420746f206c61756044820152620dcc6d60eb1b6064820152608401610be7565b6000611c0c30611261565b11611c685760405162461bcd60e51b815260206004820152602660248201527f4d757374206861766520546f6b656e73206f6e20636f6e747261637420746f206044820152650d8c2eadcc6d60d31b6064820152608401610be7565b600b546001600160a01b0316611ccf5760405162461bcd60e51b815260206004820152602660248201527f4c69717569646974792072656365697665722073686f756c642062652073657460448201526508199a5c9cdd60d21b6064820152608401610be7565b600654611cea9030906001600160a01b0316610fb682611261565b6006546001600160a01b031663f305d7194730611d0681611261565b600b546040516001600160e01b031960e087901b168152611d3c93929160009182916001600160a01b03169042906004016135ac565b60606040518083038185885af1158015611d5a573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611d7f91906135e7565b5050505b505050565b6005546001600160a01b03163314611db25760405162461bcd60e51b8152600401610be790613449565b6001600160a01b039190911660009081526020805260409020805460ff1916911515919091179055565b6005546001600160a01b03163314611e065760405162461bcd60e51b8152600401610be790613449565b600880546001600160a01b039485166001600160a01b031991821617909155600b80549385169382169390931790925560098054919093169116179055565b60038054611947906134c5565b6005546001600160a01b03163314611e7c5760405162461bcd60e51b8152600401610be790613449565b6014805460ff1916911515919091179055565b6005546001600160a01b03163314611eb95760405162461bcd60e51b8152600401610be790613449565b6005811015611f1a5760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f7420736574206d617854786e416d6f756e74206c6f776572207468604482015266616e20302e352560c81b6064820152608401610be7565b670de0b6b3a76400006103e882611f3060025490565b611f3a9190613518565b611f449190613537565b611f4e9190613537565b611f6090670de0b6b3a7640000613518565b600c5550565b6005546001600160a01b03163314611f905760405162461bcd60e51b8152600401610be790613449565b6001600160a01b038116611ff55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610be7565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b0316331461207b5760405162461bcd60e51b8152600401610be790613449565b600f5460ff16156120ed5760405162461bcd60e51b815260206004820152603660248201527f63616e2774207769746864726177204554482066726f6d20636f6e7472616374604482015275103130b630b731b29030b33a32b9103630bab731b41760511b6064820152608401610be7565b604051600090339047908381818185875af1925050503d80600081146115a2576040519150601f19603f3d011682016040523d82523d6000602084013e6115a2565b6001600160a01b0383166121915760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610be7565b6001600160a01b0382166121f25760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610be7565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166122795760405162461bcd60e51b8152600401610be790613615565b6001600160a01b03821661229f5760405162461bcd60e51b8152600401610be79061365a565b6001600160a01b03821660009081526024602052604090205460ff16156123025760405162461bcd60e51b8152602060048201526017602482015276596f752068617665206e6f20706f77657220686572652160481b6044820152606401610be7565b3260009081526024602052604090205460ff161561235c5760405162461bcd60e51b8152602060048201526017602482015276596f752068617665206e6f20706f77657220686572652160481b6044820152606401610be7565b8061236d57611d8383836000612e04565b600f5460ff166123f9576001600160a01b038316600090815260208052604090205460ff16806123b457506001600160a01b038216600090815260208052604090205460ff165b6123f95760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610be7565b6005546001600160a01b0384811691161480159061242557506005546001600160a01b03838116911614155b801561243957506001600160a01b03821615155b801561245057506001600160a01b03821661dead14155b80156124665750600754600160a01b900460ff16155b801561248a57506001600160a01b038216600090815260208052604090205460ff16155b80156124ae57506001600160a01b038316600090815260208052604090205460ff16155b156127fd5760145460ff16156125c7576006546001600160a01b038381169116148015906124ea57506007546001600160a01b03838116911614155b156125c7576124fa60014361369d565b32600090815260136020526040902054108015612538575061251d60014361369d565b6001600160a01b038316600090815260136020526040902054105b6125a25760405162461bcd60e51b815260206004820152603560248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527432b21710102a393c9030b3b0b4b7103630ba32b91760591b6064820152608401610be7565b3260009081526013602052604080822043908190556001600160a01b03851683529120555b6001600160a01b03831660009081526022602052604090205460ff16801561260857506001600160a01b03821660009081526021602052604090205460ff16155b156126d457600c548111156126755760405162461bcd60e51b815260206004820152602d60248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201526c36b0bc2a3c3720b6b7bab73a1760991b6064820152608401610be7565b600d5461268183611261565b61268b9083613500565b11156126cf5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610be7565b6127fd565b6001600160a01b03821660009081526022602052604090205460ff16801561271557506001600160a01b03831660009081526021602052604090205460ff16155b1561278357600c548111156126cf5760405162461bcd60e51b815260206004820152602e60248201527f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560448201526d1036b0bc2a3c3720b6b7bab73a1760911b6064820152608401610be7565b6001600160a01b03821660009081526021602052604090205460ff166127fd57600d546127af83611261565b6127b99083613500565b11156127fd5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610be7565b600061280830611261565b600e5490915081108015908190612821575060125460ff165b80156128375750600754600160a01b900460ff16155b801561285c57506001600160a01b03851660009081526022602052604090205460ff16155b801561288057506001600160a01b03841660009081526022602052604090205460ff165b80156128a457506001600160a01b038516600090815260208052604090205460ff16155b80156128c857506001600160a01b038416600090815260208052604090205460ff16155b156128f6576007805460ff60a01b1916600160a01b1790556128e8612b8c565b6007805460ff60a01b191690555b6007546001600160a01b038616600090815260208052604090205460ff600160a01b90920482161591168061294257506001600160a01b038516600090815260208052604090205460ff165b1561294b575060005b60008115612b7857601054612960904361369d565b6011541015801561298957506001600160a01b03871660009081526022602052604090205460ff165b15612a3e57606461299b866031613518565b6129a59190613537565b9050601954601b54826129b89190613518565b6129c29190613537565b601e60008282546129d39190613500565b9091555050601954601a546129e89083613518565b6129f29190613537565b601d6000828254612a039190613500565b9091555050601954601c54612a189083613518565b612a229190613537565b601f6000828254612a339190613500565b90915550612b5a9050565b6001600160a01b03861660009081526022602052604090205460ff168015612a6857506000601954115b15612a7d5760646019548661299b9190613518565b6001600160a01b03871660009081526022602052604090205460ff168015612aa757506000601554115b15612b5a57606460155486612abc9190613518565b612ac69190613537565b905060155460175482612ad99190613518565b612ae39190613537565b601e6000828254612af49190613500565b9091555050601554601654612b099083613518565b612b139190613537565b601d6000828254612b249190613500565b9091555050601554601854612b399083613518565b612b439190613537565b601f6000828254612b549190613500565b90915550505b8015612b6b57612b6b873083612e04565b612b75818661369d565b94505b612b83878787612e04565b50505050505050565b6000612b9730611261565b90506000601f54601d54601e54612bae9190613500565b612bb89190613500565b90506000821580612bc7575081155b15612bd157505050565b600e54831115612be157600e5492505b6000600283601e5486612bf49190613518565b612bfe9190613537565b612c089190613537565b90506000612c16828661369d565b905047612c2282612f59565b6000612c2e824761369d565b905060006002601e54612c419190613537565b612c4b908861369d565b601d54612c589084613518565b612c629190613537565b905060006002601e54612c759190613537565b612c7f908961369d565b601f54612c8c9085613518565b612c969190613537565b9050600081612ca5848661369d565b612caf919061369d565b6000601e819055601d819055601f8190556009546040519293506001600160a01b031691849181818185875af1925050503d8060008114612d0c576040519150601f19603f3d011682016040523d82523d6000602084013e612d11565b606091505b50506008546040519199506001600160a01b0316908490600081818185875af1925050503d8060008114612d61576040519150601f19603f3d011682016040523d82523d6000602084013e612d66565b606091505b50909850508615801590612d7a5750600081115b15612dcd57612d8987826130ab565b601e54604080518881526020810184905280820192909252517f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619181900360600190a15b50505050505050505050565b6001600160a01b03919091166000908152602260205260409020805460ff1916911515919091179055565b6001600160a01b038316612e2a5760405162461bcd60e51b8152600401610be790613615565b6001600160a01b038216612e505760405162461bcd60e51b8152600401610be79061365a565b6001600160a01b03831660009081526020819052604090205481811015612ec85760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610be7565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290612eff908490613500565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612f4b91815260200190565b60405180910390a350505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110612f8e57612f8e61347e565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015612fe7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061300b919061358f565b8160018151811061301e5761301e61347e565b6001600160a01b039283166020918202929092010152600654613044913091168461212f565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac9479061307d9085906000908690309042906004016136b4565b600060405180830381600087803b15801561309757600080fd5b505af1158015611d7f573d6000803e3d6000fd5b6006546130c39030906001600160a01b03168461212f565b600654600b5460405163f305d71960e01b81526001600160a01b039283169263f305d71992859261310392309289926000928392169042906004016135ac565b60606040518083038185885af1158015613121573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061314691906135e7565b5050505050565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461317857600080fd5b50565b803561122681613163565b6000602080838503121561319957600080fd5b823567ffffffffffffffff808211156131b157600080fd5b818501915085601f8301126131c557600080fd5b8135818111156131d7576131d761314d565b8060051b604051601f19603f830116810181811085821117156131fc576131fc61314d565b60405291825284820192508381018501918883111561321a57600080fd5b938501935b8285101561323f576132308561317b565b8452938501939285019261321f565b98975050505050505050565b600060208083528351808285015260005b818110156132785785810183015185820160400152820161325c565b8181111561328a576000604083870101525b50601f01601f1916929092016040019392505050565b600080604083850312156132b357600080fd5b82356132be81613163565b946020939093013593505050565b6000806000606084860312156132e157600080fd5b83356132ec81613163565b925060208401356132fc81613163565b929592945050506040919091013590565b60006020828403121561331f57600080fd5b813561332a81613163565b9392505050565b6000806040838503121561334457600080fd5b50508035926020909101359150565b60006020828403121561336557600080fd5b5035919050565b801515811461317857600080fd5b6000806040838503121561338d57600080fd5b823561339881613163565b915060208301356133a88161336c565b809150509250929050565b6000602082840312156133c557600080fd5b813561332a8161336c565b6000806000606084860312156133e557600080fd5b83356133f081613163565b9250602084013561340081613163565b9150604084013561341081613163565b809150509250925092565b6000806040838503121561342e57600080fd5b823561343981613163565b915060208301356133a881613163565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006000198214156134be576134be613494565b5060010190565b600181811c908216806134d957607f821691505b602082108114156134fa57634e487b7160e01b600052602260045260246000fd5b50919050565b6000821982111561351357613513613494565b500190565b600081600019048311821515161561353257613532613494565b500290565b60008261355457634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561356b57600080fd5b5051919050565b60006020828403121561358457600080fd5b815161332a8161336c565b6000602082840312156135a157600080fd5b815161332a81613163565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b6000806000606084860312156135fc57600080fd5b8351925060208401519150604084015190509250925092565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b6000828210156136af576136af613494565b500390565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156137045784516001600160a01b0316835293830193918301916001016136df565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220c60d17f702e100d8b5b9abd55ca0ce1716ecfe70a2db3ac8787badf348a2fcf964736f6c634300080c0033
Deployed Bytecode Sourcemap
7211:16989:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23602:389;;;;;;;;;;-1:-1:-1;23602:389:0;;;;;:::i;:::-;;:::i;:::-;;1712:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7254:27;;;;;;;;;;-1:-1:-1;7254:27:0;;;;-1:-1:-1;;;;;7254:27:0;;;;;;-1:-1:-1;;;;;2331:32:1;;;2313:51;;2301:2;2286:18;7254:27:0;2149:221:1;2612:169:0;;;;;;;;;;-1:-1:-1;2612:169:0;;;;;:::i;:::-;;:::i;:::-;;;2860:14:1;;2853:22;2835:41;;2823:2;2808:18;2612:169:0;2695:187:1;7723:24:0;;;;;;;;;;;;;;;;;;;3033:25:1;;;3021:2;3006:18;7723:24:0;2887:177:1;2027:108:0;;;;;;;;;;-1:-1:-1;2115:12:0;;2027:108;;8356:33;;;;;;;;;;;;;;;;22397:272;;;;;;;;;;;;;:::i;8316:33::-;;;;;;;;;;;;;;;;2787:488;;;;;;;;;;-1:-1:-1;2787:488:0;;;;;:::i;:::-;;:::i;7316:53::-;;;;;;;;;;;;7362:6;7316:53;;1928:93;;;;;;;;;;-1:-1:-1;1928:93:0;;2011:2;3880:36:1;;3868:2;3853:18;1928:93:0;3738:184:1;3281:215:0;;;;;;;;;;-1:-1:-1;3281:215:0;;;;;:::i;:::-;;:::i;7507:32::-;;;;;;;;;;-1:-1:-1;7507:32:0;;;;-1:-1:-1;;;;;7507:32:0;;;7288:21;;;;;;;;;;-1:-1:-1;7288:21:0;;;;-1:-1:-1;;;;;7288:21:0;;;13200:125;;;;;;;;;;-1:-1:-1;13200:125:0;;;;;:::i;:::-;-1:-1:-1;;;;;13289:28:0;13265:4;13289:28;;;:19;:28;;;;;;;;;13200:125;20863:312;;;;;;;;;;;;;:::i;11832:305::-;;;;;;;;;;-1:-1:-1;11832:305:0;;;;;:::i;:::-;;:::i;10711:261::-;;;;;;;;;;-1:-1:-1;10711:261:0;;;;;:::i;:::-;;:::i;8546:56::-;;;;;;;;;;-1:-1:-1;8546:56:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;23212:109;;;;;;;;;;-1:-1:-1;23212:109:0;;;;;:::i;:::-;;:::i;7798:31::-;;;;;;;;;;-1:-1:-1;7798:31:0;;;;;;;;1476:44;;;;;;;;;;-1:-1:-1;1476:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;2141:127;;;;;;;;;;-1:-1:-1;2141:127:0;;;;;:::i;:::-;;:::i;5737:150::-;;;;;;;;;;;;;:::i;11533:136::-;;;;;;;;;;-1:-1:-1;11533:136:0;;;;;:::i;:::-;;:::i;7404:30::-;;;;;;;;;;-1:-1:-1;7404:30:0;;;;-1:-1:-1;;;;;7404:30:0;;;8056;;;;;;;;;;;;;;;;12143:311;;;;;;;;;;-1:-1:-1;12143:311:0;;;;;:::i;:::-;;:::i;23997:200::-;;;;;;;;;;-1:-1:-1;23997:200:0;;;;;:::i;:::-;;:::i;22977:229::-;;;;;;;;;;-1:-1:-1;22977:229:0;;;;;:::i;:::-;;:::i;11253:268::-;;;;;;;;;;-1:-1:-1;11253:268:0;;;;;:::i;:::-;;:::i;5527:79::-;;;;;;;;;;-1:-1:-1;5592:6:0;;-1:-1:-1;;;;;5592:6:0;5527:79;;7441:24;;;;;;;;;;-1:-1:-1;7441:24:0;;;;-1:-1:-1;;;;;7441:24:0;;;8202:31;;;;;;;;;;;;;;;;11725:101;;;;;;;;;;-1:-1:-1;11725:101:0;;;;;:::i;:::-;;:::i;1818:104::-;;;;;;;;;;;;;:::i;23327:269::-;;;;;;;;;;-1:-1:-1;23327:269:0;;;;;:::i;:::-;;:::i;12602:237::-;;;;;;;;;;-1:-1:-1;12602:237:0;;;;;:::i;:::-;;:::i;8130:24::-;;;;;;;;;;;;;;;;8396:27;;;;;;;;;;;;;;;;8022;;;;;;;;;;;;;;;;8278:25;;;;;;;;;;;;;;;;3502:411;;;;;;;;;;-1:-1:-1;3502:411:0;;;;;:::i;:::-;;:::i;2274:175::-;;;;;;;;;;-1:-1:-1;2274:175:0;;;;;:::i;:::-;;:::i;1662:21::-;;;;;;;;;;;;;:::i;21182:1209::-;;;;;;;;;;-1:-1:-1;21182:1209:0;;;;;:::i;:::-;;:::i;8699:58::-;;;;;;;;;;-1:-1:-1;8699:58:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;7683:33;;;;;;;;;;-1:-1:-1;7683:33:0;;;;;;;;12462:132;;;;;;;;;;-1:-1:-1;12462:132:0;;;;;:::i;:::-;;:::i;7472:28::-;;;;;;;;;;-1:-1:-1;7472:28:0;;;;-1:-1:-1;;;;;7472:28:0;;;7955:40;;;;;;;;;;-1:-1:-1;7955:40:0;;;;;;;;7552:27;;;;;;;;;;;;;;;;12981:213;;;;;;;;;;-1:-1:-1;12981:213:0;;;;;:::i;:::-;;:::i;1636:19::-;;;;;;;;;;;;;:::i;2455:151::-;;;;;;;;;;-1:-1:-1;2455:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;2571:18:0;;;2544:7;2571:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;2455:151;10592:107;;;;;;;;;;-1:-1:-1;10592:107:0;;;;;:::i;:::-;;:::i;7617:33::-;;;;;;;;;;;;;;;;7754:37;;;;;;;;;;;;;;;;10978:267;;;;;;;;;;-1:-1:-1;10978:267:0;;;;;:::i;:::-;;:::i;8093:30::-;;;;;;;;;;;;;;;;5893:246;;;;;;;;;;-1:-1:-1;5893:246:0;;;;;:::i;:::-;;:::i;22719:252::-;;;;;;;;;;;;;:::i;8240:31::-;;;;;;;;;;;;;;;;7586:24;;;;;;;;;;;;;;;;8167:28;;;;;;;;;;;;;;;;23602:389;5652:6;;-1:-1:-1;;;;;5652:6:0;171:10;5652:22;5644:67;;;;-1:-1:-1;;;5644:67:0;;;;;;;:::i;:::-;;;;;;;;;23700:9:::1;23695:289;23715:9;:16;23711:1;:20;23695:289;;;23777:13;::::0;23761:12;;-1:-1:-1;;;;;23777:13:0;;::::1;::::0;23761:9;;23771:1;;23761:12;::::1;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;23761:29:0::1;;;23753:80;;;::::0;-1:-1:-1;;;23753:80:0;;6995:2:1;23753:80:0::1;::::0;::::1;6977:21:1::0;7034:2;7014:18;;;7007:30;7073:34;7053:18;;;7046:62;-1:-1:-1;;;7124:18:1;;;7117:36;7170:19;;23753:80:0::1;6793:402:1::0;23753:80:0::1;23872:6;::::0;23856:12;;-1:-1:-1;;;;;23872:6:0;;::::1;::::0;23856:9;;23866:1;;23856:12;::::1;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;23856:22:0::1;;;23848:71;;;::::0;-1:-1:-1;;;23848:71:0;;7402:2:1;23848:71:0::1;::::0;::::1;7384:21:1::0;7441:2;7421:18;;;7414:30;7480:34;7460:18;;;7453:62;-1:-1:-1;;;7531:18:1;;;7524:34;7575:19;;23848:71:0::1;7200:400:1::0;23848:71:0::1;23968:4;23934:17;:31;23952:9;23962:1;23952:12;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;23934:31:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;23934:31:0;:38;;-1:-1:-1;;23934:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;23733:3:::1;::::0;::::1;:::i;:::-;;;23695:289;;;;23602:389:::0;:::o;1712:100::-;1766:13;1799:5;1792:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1712:100;:::o;2612:169::-;2695:4;2712:39;171:10;2735:7;2744:6;2712:8;:39::i;:::-;-1:-1:-1;2769:4:0;2612:169;;;;:::o;22397:272::-;5652:6;;-1:-1:-1;;;;;5652:6:0;171:10;5652:22;5644:67;;;;-1:-1:-1;;;5644:67:0;;;;;;;:::i;:::-;22461:13:::1;::::0;::::1;;22460:14;22452:70;;;::::0;-1:-1:-1;;;22452:70:0;;8464:2:1;22452:70:0::1;::::0;::::1;8446:21:1::0;8503:2;8483:18;;;8476:30;8542:34;8522:18;;;8515:62;-1:-1:-1;;;8593:18:1;;;8586:41;8644:19;;22452:70:0::1;8262:407:1::0;22452:70:0::1;22568:13;:20:::0;;22584:4:::1;-1:-1:-1::0;;22568:20:0;;::::1;::::0;::::1;::::0;;;22599:11:::1;:18:::0;;;;::::1;::::0;;::::1;::::0;;22649:12:::1;22628:18;:33:::0;22397:272::o;2787:488::-;2927:4;2944:36;2954:6;2962:9;2973:6;2944:9;:36::i;:::-;-1:-1:-1;;;;;3018:19:0;;2991:24;3018:19;;;:11;:19;;;;;;;;171:10;3018:33;;;;;;;;3070:26;;;;3062:79;;;;-1:-1:-1;;;3062:79:0;;8876:2:1;3062:79:0;;;8858:21:1;8915:2;8895:18;;;8888:30;8954:34;8934:18;;;8927:62;-1:-1:-1;;;9005:18:1;;;8998:38;9053:19;;3062:79:0;8674:404:1;3062:79:0;3177:57;3186:6;171:10;3227:6;3208:16;:25;3177:8;:57::i;:::-;-1:-1:-1;3263:4:0;;2787:488;-1:-1:-1;;;;2787:488:0:o;3281:215::-;171:10;3369:4;3418:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;3418:34:0;;;;;;;;;;3369:4;;3386:80;;3409:7;;3418:47;;3455:10;;3418:47;:::i;:::-;3386:8;:80::i;20863:312::-;5652:6;;-1:-1:-1;;;;;5652:6:0;171:10;5652:22;5644:67;;;;-1:-1:-1;;;5644:67:0;;;;;;;:::i;:::-;20954:18:::1;;20926:24;20944:4;20926:9;:24::i;:::-;:46;;20918:123;;;::::0;;-1:-1:-1;;;20918:123:0;;9418:2:1;20918:123:0::1;::::0;::::1;9400:21:1::0;9437:18;;;9430:30;;;;9496:34;9476:18;;;9469:62;9567:34;9547:18;;;9540:62;9619:19;;20918:123:0::1;9216:428:1::0;20918:123:0::1;21052:8;:15:::0;;-1:-1:-1;;;;21052:15:0::1;-1:-1:-1::0;;;21052:15:0::1;::::0;;21078:10:::1;:8;:10::i;:::-;21099:8;:16:::0;;-1:-1:-1;;;;21099:16:0::1;::::0;;21131:36:::1;::::0;21151:15:::1;3033:25:1::0;;21131:36:0::1;::::0;3021:2:1;3006:18;21131:36:0::1;;;;;;;20863:312::o:0;11832:305::-;5652:6;;-1:-1:-1;;;;;5652:6:0;171:10;5652:22;5644:67;;;;-1:-1:-1;;;5644:67:0;;;;;;;:::i;:::-;11956:2:::1;11930:21;11941:10:::0;11930;:21:::1;:::i;:::-;11929:29;;11921:71;;;::::0;-1:-1:-1;;;11921:71:0;;9851:2:1;11921:71:0::1;::::0;::::1;9833:21:1::0;9890:2;9870:18;;;9863:30;9929:31;9909:18;;;9902:59;9978:18;;11921:71:0::1;9649:353:1::0;11921:71:0::1;12003:15;:28:::0;;;12042:15:::1;:28:::0;;;12096:33:::1;12060:10:::0;12021;12096:33:::1;:::i;:::-;12081:12;:48:::0;-1:-1:-1;;11832:305:0:o;10711:261::-;5652:6;;10783:4;;-1:-1:-1;;;;;5652:6:0;171:10;5652:22;5644:67;;;;-1:-1:-1;;;5644:67:0;;;;;;;:::i;:::-;10840:4:::1;10820:13;2115:12:::0;;;2027:108;10820:13:::1;:17;::::0;10836:1:::1;10820:17;:::i;:::-;:24;;;;:::i;:::-;10807:9;:37;;10799:102;;;::::0;-1:-1:-1;;;10799:102:0;;10604:2:1;10799:102:0::1;::::0;::::1;10586:21:1::0;10643:2;10623:18;;;10616:30;10682:34;10662:18;;;10655:62;-1:-1:-1;;;10733:18:1;;;10726:50;10793:19;;10799:102:0::1;10402:416:1::0;10799:102:0::1;-1:-1:-1::0;10912:18:0::1;:30:::0;;;10960:4:::1;5722:1;10711:261:::0;;;:::o;23212:109::-;5652:6;;23265:4;;-1:-1:-1;;;;;5652:6:0;171:10;5652:22;5644:67;;;;-1:-1:-1;;;5644:67:0;;;;;;;:::i;:::-;-1:-1:-1;23281:7:0::1;:10:::0;23309:4:::1;::::0;23212:109::o;2141:127::-;-1:-1:-1;;;;;2242:18:0;2215:7;2242:18;;;;;;;;;;;;2141:127::o;5737:150::-;5652:6;;-1:-1:-1;;;;;5652:6:0;171:10;5652:22;5644:67;;;;-1:-1:-1;;;5644:67:0;;;;;;;:::i;:::-;5830:6:::1;::::0;5809:40:::1;::::0;5846:1:::1;::::0;-1:-1:-1;;;;;5830:6:0::1;::::0;5809:40:::1;::::0;5846:1;;5809:40:::1;5860:6;:19:::0;;-1:-1:-1;;;;;;5860:19:0::1;::::0;;5737:150::o;11533:136::-;5652:6;;-1:-1:-1;;;;;5652:6:0;171:10;5652:22;5644:67;;;;-1:-1:-1;;;5644:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11623:31:0;;;::::1;;::::0;;;:23:::1;:31;::::0;;;;:38;;-1:-1:-1;;11623:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11533:136::o;12143:311::-;5652:6;;-1:-1:-1;;;;;5652:6:0;171:10;5652:22;5644:67;;;;-1:-1:-1;;;5644:67:0;;;;;;;:::i;:::-;12268:2:::1;12242:21;12253:10:::0;12242;:21:::1;:::i;:::-;12241:29;;12233:71;;;::::0;-1:-1:-1;;;12233:71:0;;9851:2:1;12233:71:0::1;::::0;::::1;9833:21:1::0;9890:2;9870:18;;;9863:30;9929:31;9909:18;;;9902:59;9978:18;;12233:71:0::1;9649:353:1::0;12233:71:0::1;12315:16;:29:::0;;;12355:16:::1;:29:::0;;;12411:35:::1;12374:10:::0;12334;12411:35:::1;:::i;:::-;12395:13;:51:::0;-1:-1:-1;;12143:311:0:o;23997:200::-;5652:6;;-1:-1:-1;;;;;5652:6:0;171:10;5652:22;5644:67;;;;-1:-1:-1;;;5644:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;24087:26:0;::::1;;::::0;;;:17:::1;:26;::::0;;;;;::::1;;24079:65;;;::::0;-1:-1:-1;;;24079:65:0;;11025:2:1;24079:65:0::1;::::0;::::1;11007:21:1::0;11064:2;11044:18;;;11037:30;11103:28;11083:18;;;11076:56;11149:18;;24079:65:0::1;10823:350:1::0;24079:65:0::1;-1:-1:-1::0;;;;;24155:26:0::1;24184:5;24155:26:::0;;;:17:::1;:26;::::0;;;;:34;;-1:-1:-1;;24155:34:0::1;::::0;;23997:200::o;22977:229::-;5652:6;;-1:-1:-1;;;;;5652:6:0;171:10;5652:22;5644:67;;;;-1:-1:-1;;;5644:67:0;;;;;;;:::i;:::-;23108:31:::1;::::0;-1:-1:-1;;;23108:31:0;;23133:4:::1;23108:31;::::0;::::1;2313:51:1::0;23070:4:0;;23047:13:::1;::::0;-1:-1:-1;;;;;23108:16:0;::::1;::::0;::::1;::::0;2286:18:1;;23108:31:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23150:48;::::0;-1:-1:-1;;;23150:48:0;;23174:10:::1;23150:48;::::0;::::1;11541:51:1::0;11608:18;;;11601:34;;;23086:53:0;;-1:-1:-1;;;;;;23150:15:0;::::1;::::0;::::1;::::0;11514:18:1;;23150:48:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;23036:170;;22977:229:::0;:::o;11253:268::-;5652:6;;-1:-1:-1;;;;;5652:6:0;171:10;5652:22;5644:67;;;;-1:-1:-1;;;5644:67:0;;;;;;;:::i;:::-;11399:1:::1;11389:6;:11;;11381:60;;;::::0;-1:-1:-1;;;11381:60:0;;12098:2:1;11381:60:0::1;::::0;::::1;12080:21:1::0;12137:2;12117:18;;;12110:30;12176:34;12156:18;;;12149:62;-1:-1:-1;;;12227:18:1;;;12220:34;12271:19;;11381:60:0::1;11896:400:1::0;11381:60:0::1;11497:4;11491;11482:6;11466:13;2115:12:::0;;;2027:108;11466:13:::1;:22;;;;:::i;:::-;:29;;;;:::i;:::-;11465:36;;;;:::i;:::-;11464:49;::::0;11506:6:::1;11464:49;:::i;:::-;11452:9;:61:::0;-1:-1:-1;11253:268:0:o;11725:101::-;5652:6;;-1:-1:-1;;;;;5652:6:0;171:10;5652:22;5644:67;;;;-1:-1:-1;;;5644:67:0;;;;;;;:::i;:::-;11797:11:::1;:21:::0;;-1:-1:-1;;11797:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11725:101::o;1818:104::-;1874:13;1907:7;1900:14;;;;;:::i;23327:269::-;5652:6;;-1:-1:-1;;;;;5652:6:0;171:10;5652:22;5644:67;;;;-1:-1:-1;;;5644:67:0;;;;;;;:::i;:::-;23423:13:::1;::::0;-1:-1:-1;;;;;23412:24:0;;::::1;23423:13:::0;::::1;23412:24;;23404:65;;;::::0;-1:-1:-1;;;23404:65:0;;12503:2:1;23404:65:0::1;::::0;::::1;12485:21:1::0;12542:2;12522:18;;;12515:30;12581;12561:18;;;12554:58;12629:18;;23404:65:0::1;12301:352:1::0;23404:65:0::1;23499:6;::::0;-1:-1:-1;;;;;23488:17:0;;::::1;23499:6:::0;::::1;23488:17;;23480:64;;;::::0;-1:-1:-1;;;23480:64:0;;12860:2:1;23480:64:0::1;::::0;::::1;12842:21:1::0;12899:2;12879:18;;;12872:30;12938:34;12918:18;;;12911:62;-1:-1:-1;;;12989:18:1;;;12982:32;13031:19;;23480:64:0::1;12658:398:1::0;23480:64:0::1;-1:-1:-1::0;;;;;23555:26:0::1;;::::0;;;:17:::1;:26;::::0;;;;:33;;-1:-1:-1;;23555:33:0::1;23584:4;23555:33;::::0;;23327:269::o;12602:237::-;5652:6;;-1:-1:-1;;;;;5652:6:0;171:10;5652:22;5644:67;;;;-1:-1:-1;;;5644:67:0;;;;;;;:::i;:::-;12709:6:::1;::::0;-1:-1:-1;;;;;12701:14:0;;::::1;12709:6:::0;::::1;12701:14;;12693:84;;;::::0;-1:-1:-1;;;12693:84:0;;13263:2:1;12693:84:0::1;::::0;::::1;13245:21:1::0;13302:2;13282:18;;;13275:30;13341:34;13321:18;;;13314:62;13412:27;13392:18;;;13385:55;13457:19;;12693:84:0::1;13061:421:1::0;12693:84:0::1;12790:41;12819:4;12825:5;12790:28;:41::i;3502:411::-:0;171:10;3595:4;3639:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;3639:34:0;;;;;;;;;;3692:35;;;;3684:85;;;;-1:-1:-1;;;3684:85:0;;13689:2:1;3684:85:0;;;13671:21:1;13728:2;13708:18;;;13701:30;13767:34;13747:18;;;13740:62;-1:-1:-1;;;13818:18:1;;;13811:35;13863:19;;3684:85:0;13487:401:1;3684:85:0;3805:67;171:10;3828:7;3856:15;3837:16;:34;3805:8;:67::i;:::-;-1:-1:-1;3901:4:0;;3502:411;-1:-1:-1;;;3502:411:0:o;2274:175::-;2360:4;2377:42;171:10;2401:9;2412:6;2377:9;:42::i;1662:21::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;21182:1209::-;5652:6;;-1:-1:-1;;;;;5652:6:0;171:10;5652:22;5644:67;;;;-1:-1:-1;;;5644:67:0;;;;;;;:::i;:::-;21291:13:::1;:23:::0;;-1:-1:-1;;;;;21291:23:0;::::1;-1:-1:-1::0;;;;;;21291:23:0;;::::1;::::0;::::1;::::0;;;21411:9:::1;:22:::0;;;;::::1;::::0;::::1;::::0;;21489:20:::1;::::0;;-1:-1:-1;;;21489:20:0;;;;21291:23;;21489:18:::1;::::0;-1:-1:-1;21489:20:0;;::::1;::::0;::::1;::::0;;;;;;;;21291:23;21489:20:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;21477:44:0::1;;21530:4;21537:10;-1:-1:-1::0;;;;;21537:15:0::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21477:78;::::0;-1:-1:-1;;;;;;21477:78:0::1;::::0;;;;;;-1:-1:-1;;;;;14379:15:1;;;21477:78:0::1;::::0;::::1;14361:34:1::0;14431:15;;14411:18;;;14404:43;14296:18;;21477:78:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21468:6;:87:::0;;-1:-1:-1;;;;;;21468:87:0::1;-1:-1:-1::0;;;;;21468:87:0;;;::::1;::::0;;::::1;::::0;;21566:48:::1;::::0;-1:-1:-1;21566:25:0::1;:48::i;:::-;21662:6;::::0;21625:51:::1;::::0;-1:-1:-1;;;;;21662:6:0::1;::::0;21625:28:::1;:51::i;:::-;21696:7;21693:691;;;21785:1;21761:21;:25;21753:73;;;::::0;-1:-1:-1;;;21753:73:0;;14660:2:1;21753:73:0::1;::::0;::::1;14642:21:1::0;14699:2;14679:18;;;14672:30;14738:34;14718:18;;;14711:62;-1:-1:-1;;;14789:18:1;;;14782:33;14832:19;;21753:73:0::1;14458:399:1::0;21753:73:0::1;21876:1;21849:24;21867:4;21849:9;:24::i;:::-;:28;21841:79;;;::::0;-1:-1:-1;;;21841:79:0;;15064:2:1;21841:79:0::1;::::0;::::1;15046:21:1::0;15103:2;15083:18;;;15076:30;15142:34;15122:18;;;15115:62;-1:-1:-1;;;15193:18:1;;;15186:36;15239:19;;21841:79:0::1;14862:402:1::0;21841:79:0::1;21943:17;::::0;-1:-1:-1;;;;;21943:17:0::1;21935:81;;;::::0;-1:-1:-1;;;21935:81:0;;15471:2:1;21935:81:0::1;::::0;::::1;15453:21:1::0;15510:2;15490:18;;;15483:30;15549:34;15529:18;;;15522:62;-1:-1:-1;;;15600:18:1;;;15593:36;15646:19;;21935:81:0::1;15269:402:1::0;21935:81:0::1;22063:9;::::0;22031:69:::1;::::0;22048:4:::1;::::0;-1:-1:-1;;;;;22063:9:0::1;22075:24;22048:4:::0;22075:9:::1;:24::i;22031:69::-;22115:9;::::0;-1:-1:-1;;;;;22115:9:0::1;:25;22148:21;22197:4;22221:24;22197:4:::0;22221:9:::1;:24::i;:::-;22306:17;::::0;22115:257:::1;::::0;-1:-1:-1;;;;;;22115:257:0::1;::::0;;;;;;::::1;::::0;;;22264:1:::1;::::0;;;-1:-1:-1;;;;;22306:17:0::1;::::0;22342:15:::1;::::0;22115:257:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;21693:691;21250:1141;21182:1209:::0;;:::o;12462:132::-;5652:6;;-1:-1:-1;;;;;5652:6:0;171:10;5652:22;5644:67;;;;-1:-1:-1;;;5644:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12547:28:0;;;::::1;;::::0;;;:19:::1;:28:::0;;;;;:39;;-1:-1:-1;;12547:39:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12462:132::o;12981:213::-;5652:6;;-1:-1:-1;;;;;5652:6:0;171:10;5652:22;5644:67;;;;-1:-1:-1;;;5644:67:0;;;;;;;:::i;:::-;13090:15:::1;:28:::0;;-1:-1:-1;;;;;13090:28:0;;::::1;-1:-1:-1::0;;;;;;13090:28:0;;::::1;;::::0;;;13129:17:::1;:30:::0;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;13170:9:::1;:16:::0;;;;;::::1;::::0;::::1;;::::0;;12981:213::o;1636:19::-;;;;;;;:::i;10592:107::-;5652:6;;-1:-1:-1;;;;;5652:6:0;171:10;5652:22;5644:67;;;;-1:-1:-1;;;5644:67:0;;;;;;;:::i;:::-;10663:20:::1;:28:::0;;-1:-1:-1;;10663:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10592:107::o;10978:267::-;5652:6;;-1:-1:-1;;;;;5652:6:0;171:10;5652:22;5644:67;;;;-1:-1:-1;;;5644:67:0;;;;;;;:::i;:::-;11117:1:::1;11107:6;:11;;11099:63;;;::::0;-1:-1:-1;;;11099:63:0;;16801:2:1;11099:63:0::1;::::0;::::1;16783:21:1::0;16840:2;16820:18;;;16813:30;16879:34;16859:18;;;16852:62;-1:-1:-1;;;16930:18:1;;;16923:37;16977:19;;11099:63:0::1;16599:403:1::0;11099:63:0::1;11221:4;11215;11206:6;11190:13;2115:12:::0;;;2027:108;11190:13:::1;:22;;;;:::i;:::-;:29;;;;:::i;:::-;11189:36;;;;:::i;:::-;11188:49;::::0;11230:6:::1;11188:49;:::i;:::-;11173:12;:64:::0;-1:-1:-1;10978:267:0:o;5893:246::-;5652:6;;-1:-1:-1;;;;;5652:6:0;171:10;5652:22;5644:67;;;;-1:-1:-1;;;5644:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5984:22:0;::::1;5976:73;;;::::0;-1:-1:-1;;;5976:73:0;;17209:2:1;5976:73:0::1;::::0;::::1;17191:21:1::0;17248:2;17228:18;;;17221:30;17287:34;17267:18;;;17260:62;-1:-1:-1;;;17338:18:1;;;17331:36;17384:19;;5976:73:0::1;17007:402:1::0;5976:73:0::1;6086:6;::::0;6065:38:::1;::::0;-1:-1:-1;;;;;6065:38:0;;::::1;::::0;6086:6:::1;::::0;6065:38:::1;::::0;6086:6:::1;::::0;6065:38:::1;6114:6;:17:::0;;-1:-1:-1;;;;;;6114:17:0::1;-1:-1:-1::0;;;;;6114:17:0;;;::::1;::::0;;;::::1;::::0;;5893:246::o;22719:252::-;5652:6;;-1:-1:-1;;;;;5652:6:0;171:10;5652:22;5644:67;;;;-1:-1:-1;;;5644:67:0;;;;;;;:::i;:::-;22786:13:::1;::::0;::::1;;22785:14;22777:81;;;::::0;-1:-1:-1;;;22777:81:0;;17616:2:1;22777:81:0::1;::::0;::::1;17598:21:1::0;17655:2;17635:18;;;17628:30;17694:34;17674:18;;;17667:62;-1:-1:-1;;;17745:18:1;;;17738:52;17807:19;;22777:81:0::1;17414:418:1::0;22777:81:0::1;22905:58;::::0;22869:12:::1;::::0;22913:10:::1;::::0;22937:21:::1;::::0;22869:12;22905:58;22869:12;22905:58;22937:21;22913:10;22905:58:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4830:378:::0;-1:-1:-1;;;;;4966:19:0;;4958:68;;;;-1:-1:-1;;;4958:68:0;;18249:2:1;4958:68:0;;;18231:21:1;18288:2;18268:18;;;18261:30;18327:34;18307:18;;;18300:62;-1:-1:-1;;;18378:18:1;;;18371:34;18422:19;;4958:68:0;18047:400:1;4958:68:0;-1:-1:-1;;;;;5045:21:0;;5037:68;;;;-1:-1:-1;;;5037:68:0;;18654:2:1;5037:68:0;;;18636:21:1;18693:2;18673:18;;;18666:30;18732:34;18712:18;;;18705:62;-1:-1:-1;;;18783:18:1;;;18776:32;18825:19;;5037:68:0;18452:398:1;5037:68:0;-1:-1:-1;;;;;5116:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;5168:32;;3033:25:1;;;5168:32:0;;3006:18:1;5168:32:0;;;;;;;4830:378;;;:::o;13535:4643::-;-1:-1:-1;;;;;13667:18:0;;13659:68;;;;-1:-1:-1;;;13659:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13746:16:0;;13738:64;;;;-1:-1:-1;;;13738:64:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13822:21:0;;;;;;:17;:21;;;;;;;;13821:22;13813:58;;;;-1:-1:-1;;;13813:58:0;;19867:2:1;13813:58:0;;;19849:21:1;19906:2;19886:18;;;19879:30;-1:-1:-1;;;19925:18:1;;;19918:53;19988:18;;13813:58:0;19665:347:1;13813:58:0;13909:9;13891:28;;;;:17;:28;;;;;;;;13890:29;13882:65;;;;-1:-1:-1;;;13882:65:0;;19867:2:1;13882:65:0;;;19849:21:1;19906:2;19886:18;;;19879:30;-1:-1:-1;;;19925:18:1;;;19918:53;19988:18;;13882:65:0;19665:347:1;13882:65:0;13964:11;13961:92;;13992:28;14008:4;14014:2;14018:1;13992:15;:28::i;13961:92::-;14069:13;;;;14065:132;;-1:-1:-1;;;;;14106:25:0;;;;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;14135:23:0;;;;;;:19;:23;;;;;;;;14106:52;14098:87;;;;-1:-1:-1;;;14098:87:0;;20219:2:1;14098:87:0;;;20201:21:1;20258:2;20238:18;;;20231:30;-1:-1:-1;;;20277:18:1;;;20270:52;20339:18;;14098:87:0;20017:346:1;14098:87:0;5592:6;;-1:-1:-1;;;;;14225:15:0;;;5592:6;;14225:15;;;;:45;;-1:-1:-1;5592:6:0;;-1:-1:-1;;;;;14257:13:0;;;5592:6;;14257:13;;14225:45;:78;;;;-1:-1:-1;;;;;;14287:16:0;;;;14225:78;:116;;;;-1:-1:-1;;;;;;14320:21:0;;14334:6;14320:21;;14225:116;:142;;;;-1:-1:-1;14359:8:0;;-1:-1:-1;;;14359:8:0;;;;14358:9;14225:142;:183;;;;-1:-1:-1;;;;;;14385:23:0;;;;;;:19;:23;;;;;;;;14384:24;14225:183;:226;;;;-1:-1:-1;;;;;;14426:25:0;;;;;;:19;:25;;;;;;;;14425:26;14225:226;14207:1591;;;14611:20;;;;14607:466;;;14669:9;;-1:-1:-1;;;;;14655:24:0;;;14669:9;;14655:24;;;;:49;;-1:-1:-1;14697:6:0;;-1:-1:-1;;;;;14683:21:0;;;14697:6;;14683:21;;14655:49;14651:407;;;14774:16;14789:1;14774:12;:16;:::i;:::-;14761:9;14736:35;;;;:24;:35;;;;;;:54;:105;;;;-1:-1:-1;14825:16:0;14840:1;14825:12;:16;:::i;:::-;-1:-1:-1;;;;;14794:28:0;;;;;;:24;:28;;;;;;:47;14736:105;14728:171;;;;-1:-1:-1;;;14728:171:0;;20700:2:1;14728:171:0;;;20682:21:1;20739:2;20719:18;;;20712:30;20778:34;20758:18;;;20751:62;-1:-1:-1;;;20829:18:1;;;20822:51;20890:19;;14728:171:0;20498:417:1;14728:171:0;14947:9;14922:35;;;;:24;:35;;;;;;14960:12;14922:50;;;;-1:-1:-1;;;;;14995:28:0;;;;;;:43;14651:407;-1:-1:-1;;;;;15134:31:0;;;;;;:25;:31;;;;;;;;:63;;;;-1:-1:-1;;;;;;15170:27:0;;;;;;:23;:27;;;;;;;;15169:28;15134:63;15130:657;;;15236:12;;15226:6;:22;;15218:80;;;;-1:-1:-1;;;15218:80:0;;21122:2:1;15218:80:0;;;21104:21:1;21161:2;21141:18;;;21134:30;21200:34;21180:18;;;21173:62;-1:-1:-1;;;21251:18:1;;;21244:43;21304:19;;15218:80:0;20920:409:1;15218:80:0;15351:9;;15334:13;15344:2;15334:9;:13::i;:::-;15325:22;;:6;:22;:::i;:::-;:35;;15317:67;;;;-1:-1:-1;;;15317:67:0;;21536:2:1;15317:67:0;;;21518:21:1;21575:2;21555:18;;;21548:30;-1:-1:-1;;;21594:18:1;;;21587:49;21653:18;;15317:67:0;21334:343:1;15317:67:0;15130:657;;;-1:-1:-1;;;;;15452:29:0;;;;;;:25;:29;;;;;;;;:63;;;;-1:-1:-1;;;;;;15486:29:0;;;;;;:23;:29;;;;;;;;15485:30;15452:63;15448:339;;;15554:12;;15544:6;:22;;15536:81;;;;-1:-1:-1;;;15536:81:0;;21884:2:1;15536:81:0;;;21866:21:1;21923:2;21903:18;;;21896:30;21962:34;21942:18;;;21935:62;-1:-1:-1;;;22013:18:1;;;22006:44;22067:19;;15536:81:0;21682:410:1;15448:339:0;-1:-1:-1;;;;;15657:27:0;;;;;;:23;:27;;;;;;;;15652:135;;15738:9;;15721:13;15731:2;15721:9;:13::i;:::-;15712:22;;:6;:22;:::i;:::-;:35;;15704:67;;;;-1:-1:-1;;;15704:67:0;;21536:2:1;15704:67:0;;;21518:21:1;21575:2;21555:18;;;21548:30;-1:-1:-1;;;21594:18:1;;;21587:49;21653:18;;15704:67:0;21334:343:1;15704:67:0;15808:28;15839:24;15857:4;15839:9;:24::i;:::-;15913:18;;15808:55;;-1:-1:-1;15889:42:0;;;;;;;15960:35;;-1:-1:-1;15984:11:0;;;;15960:35;:61;;;;-1:-1:-1;16013:8:0;;-1:-1:-1;;;16013:8:0;;;;16012:9;15960:61;:110;;;;-1:-1:-1;;;;;;16039:31:0;;;;;;:25;:31;;;;;;;;16038:32;15960:110;:156;;;;-1:-1:-1;;;;;;16087:29:0;;;;;;:25;:29;;;;;;;;15960:156;:199;;;;-1:-1:-1;;;;;;16134:25:0;;;;;;:19;:25;;;;;;;;16133:26;15960:199;:240;;;;-1:-1:-1;;;;;;16177:23:0;;;;;;:19;:23;;;;;;;;16176:24;15960:240;15942:368;;;16227:8;:15;;-1:-1:-1;;;;16227:15:0;-1:-1:-1;;;16227:15:0;;;16257:10;:8;:10::i;:::-;16282:8;:16;;-1:-1:-1;;;;16282:16:0;;;15942:368;16344:8;;-1:-1:-1;;;;;16453:25:0;;16328:12;16453:25;;;:19;:25;;;;;;16344:8;-1:-1:-1;;;16344:8:0;;;;;16343:9;;16453:25;;:52;;-1:-1:-1;;;;;;16482:23:0;;;;;;:19;:23;;;;;;;;16453:52;16450:99;;;-1:-1:-1;16532:5:0;16450:99;16569:12;16673:7;16670:1457;;;16844:7;;16829:22;;:12;:22;:::i;:::-;16807:18;;:44;;16806:81;;;;-1:-1:-1;;;;;;16856:31:0;;;;;;:25;:31;;;;;;;;16806:81;16803:1153;;;16928:3;16914:11;:6;16923:2;16914:11;:::i;:::-;:17;;;;:::i;:::-;16907:24;;16998:13;;16979:16;;16972:4;:23;;;;:::i;:::-;:39;;;;:::i;:::-;16950:18;;:61;;;;;;;:::i;:::-;;;;-1:-1:-1;;17078:13:0;;17059:16;;17052:23;;:4;:23;:::i;:::-;:39;;;;:::i;:::-;17030:18;;:61;;;;;;;:::i;:::-;;;;-1:-1:-1;;17146:13:0;;17133:10;;17126:17;;:4;:17;:::i;:::-;:33;;;;:::i;:::-;17110:12;;:49;;;;;;;:::i;:::-;;;;-1:-1:-1;16803:1153:0;;-1:-1:-1;16803:1153:0;;-1:-1:-1;;;;;17222:29:0;;;;;;:25;:29;;;;;;;;:50;;;;;17271:1;17255:13;;:17;17222:50;17218:738;;;17324:3;17308:13;;17299:6;:22;;;;:::i;17218:738::-;-1:-1:-1;;;;;17616:31:0;;;;;;:25;:31;;;;;;;;:51;;;;;17666:1;17651:12;;:16;17616:51;17613:343;;;17717:3;17702:12;;17693:6;:21;;;;:::i;:::-;:27;;;;:::i;:::-;17686:34;;17784:12;;17766:15;;17759:4;:22;;;;:::i;:::-;:37;;;;:::i;:::-;17737:18;;:59;;;;;;;:::i;:::-;;;;-1:-1:-1;;17862:12:0;;17844:15;;17837:22;;:4;:22;:::i;:::-;:37;;;;:::i;:::-;17815:18;;:59;;;;;;;:::i;:::-;;;;-1:-1:-1;;17928:12:0;;17916:9;;17909:16;;:4;:16;:::i;:::-;:31;;;;:::i;:::-;17893:12;;:47;;;;;;;:::i;:::-;;;;-1:-1:-1;;17613:343:0;17987:8;;17984:93;;18019:42;18035:4;18049;18056;18019:15;:42::i;:::-;18101:14;18111:4;18101:14;;:::i;:::-;;;16670:1457;18137:33;18153:4;18159:2;18163:6;18137:15;:33::i;:::-;13648:4530;;;;13535:4643;;;:::o;19215:1598::-;19254:23;19280:24;19298:4;19280:9;:24::i;:::-;19254:50;;19315:25;19385:12;;19364:18;;19343;;:39;;;;:::i;:::-;:54;;;;:::i;:::-;19315:82;-1:-1:-1;19408:12:0;19444:20;;;:46;;-1:-1:-1;19468:22:0;;19444:46;19441:60;;;19493:7;;;19215:1598::o;19441:60::-;19534:18;;19516:15;:36;19513:103;;;19586:18;;19568:36;;19513:103;19685:23;19770:1;19750:17;19729:18;;19711:15;:36;;;;:::i;:::-;:56;;;;:::i;:::-;:60;;;;:::i;:::-;19685:86;-1:-1:-1;19782:26:0;19811:33;19685:86;19811:15;:33;:::i;:::-;19782:62;-1:-1:-1;19883:21:0;19915:36;19782:62;19915:16;:36::i;:::-;19970:18;19991:41;20015:17;19991:21;:41;:::i;:::-;19970:62;;20043:23;20144:1;20125:18;;:20;;;;:::i;:::-;20104:42;;:17;:42;:::i;:::-;20082:18;;20069:31;;:10;:31;:::i;:::-;:78;;;;:::i;:::-;20043:104;;20158:17;20247:1;20228:18;;:20;;;;:::i;:::-;20207:42;;:17;:42;:::i;:::-;20191:12;;20178:25;;:10;:25;:::i;:::-;:72;;;;:::i;:::-;20158:92;-1:-1:-1;20269:23:0;20158:92;20295:28;20308:15;20295:10;:28;:::i;:::-;:40;;;;:::i;:::-;20367:1;20346:18;:22;;;20379:18;:22;;;20412:12;:16;;;20460:9;;20452:45;;20269:66;;-1:-1:-1;;;;;;20460:9:0;;20483;;20452:45;20367:1;20452:45;20483:9;20460;20452:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;20529:15:0;;20521:57;;20439:58;;-1:-1:-1;;;;;;20529:15:0;;20558;;20521:57;;;;20558:15;20529;20521:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20508:70:0;;-1:-1:-1;;20599:19:0;;;;;:42;;;20640:1;20622:15;:19;20599:42;20596:210;;;20657:46;20670:15;20687;20657:12;:46::i;:::-;20775:18;;20723:71;;;22299:25:1;;;22355:2;22340:18;;22333:34;;;22383:18;;;22376:34;;;;20723:71:0;;;;;;22287:2:1;20723:71:0;;;20596:210;19243:1570;;;;;;;;;;19215:1598::o;12845:130::-;-1:-1:-1;;;;;12928:31:0;;;;;;;;:25;:31;;;;;:39;;-1:-1:-1;;12928:39:0;;;;;;;;;;12845:130::o;3919:610::-;-1:-1:-1;;;;;4059:20:0;;4051:70;;;;-1:-1:-1;;;4051:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4140:23:0;;4132:71;;;;-1:-1:-1;;;4132:71:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4238:17:0;;4214:21;4238:17;;;;;;;;;;;4274:23;;;;4266:74;;;;-1:-1:-1;;;4266:74:0;;22623:2:1;4266:74:0;;;22605:21:1;22662:2;22642:18;;;22635:30;22701:34;22681:18;;;22674:62;-1:-1:-1;;;22752:18:1;;;22745:36;22798:19;;4266:74:0;22421:402:1;4266:74:0;-1:-1:-1;;;;;4376:17:0;;;:9;:17;;;;;;;;;;;4396:22;;;4376:42;;4440:20;;;;;;;;:30;;4412:6;;4376:9;4440:30;;4412:6;;4440:30;:::i;:::-;;;;;;;;4503:9;-1:-1:-1;;;;;4486:35:0;4495:6;-1:-1:-1;;;;;4486:35:0;;4514:6;4486:35;;;;3033:25:1;;3021:2;3006:18;;2887:177;4486:35:0;;;;;;;;4040:489;3919:610;;;:::o;18184:507::-;18274:16;;;18288:1;18274:16;;;;;;;;18250:21;;18274:16;;;;;;;;;;-1:-1:-1;18274:16:0;18250:40;;18319:4;18301;18306:1;18301:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;18301:23:0;;;:7;;;;;;;;;;:23;;;;18345:9;;:16;;;-1:-1:-1;;;18345:16:0;;;;:9;;;;;:14;;:16;;;;;18301:7;;18345:16;;;;;:9;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18335:4;18340:1;18335:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;18335:26:0;;;:7;;;;;;;;;:26;18404:9;;18372:56;;18389:4;;18404:9;18416:11;18372:8;:56::i;:::-;18465:9;;:218;;-1:-1:-1;;;18465:218:0;;-1:-1:-1;;;;;18465:9:0;;;;:60;;:218;;18540:11;;18465:9;;18610:4;;18637;;18657:15;;18465:218;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18700:509;18880:9;;18848:56;;18865:4;;-1:-1:-1;;;;;18880:9:0;18892:11;18848:8;:56::i;:::-;18945:9;;19143:17;;18945:256;;-1:-1:-1;;;18945:256:0;;-1:-1:-1;;;;;18945:9:0;;;;:25;;18978:9;;18945:256;;19011:4;;19031:11;;18945:9;;;;19143:17;;19175:15;;18945:256;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;18700:509;;:::o;14:127:1:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:131;-1:-1:-1;;;;;221:31:1;;211:42;;201:70;;267:1;264;257:12;201:70;146:131;:::o;282:134::-;350:20;;379:31;350:20;379:31;:::i;421:1121::-;505:6;536:2;579;567:9;558:7;554:23;550:32;547:52;;;595:1;592;585:12;547:52;635:9;622:23;664:18;705:2;697:6;694:14;691:34;;;721:1;718;711:12;691:34;759:6;748:9;744:22;734:32;;804:7;797:4;793:2;789:13;785:27;775:55;;826:1;823;816:12;775:55;862:2;849:16;884:2;880;877:10;874:36;;;890:18;;:::i;:::-;936:2;933:1;929:10;968:2;962:9;1031:2;1027:7;1022:2;1018;1014:11;1010:25;1002:6;998:38;1086:6;1074:10;1071:22;1066:2;1054:10;1051:18;1048:46;1045:72;;;1097:18;;:::i;:::-;1133:2;1126:22;1183:18;;;1217:15;;;;-1:-1:-1;1259:11:1;;;1255:20;;;1287:19;;;1284:39;;;1319:1;1316;1309:12;1284:39;1343:11;;;;1363:148;1379:6;1374:3;1371:15;1363:148;;;1445:23;1464:3;1445:23;:::i;:::-;1433:36;;1396:12;;;;1489;;;;1363:148;;;1530:6;421:1121;-1:-1:-1;;;;;;;;421:1121:1:o;1547:597::-;1659:4;1688:2;1717;1706:9;1699:21;1749:6;1743:13;1792:6;1787:2;1776:9;1772:18;1765:34;1817:1;1827:140;1841:6;1838:1;1835:13;1827:140;;;1936:14;;;1932:23;;1926:30;1902:17;;;1921:2;1898:26;1891:66;1856:10;;1827:140;;;1985:6;1982:1;1979:13;1976:91;;;2055:1;2050:2;2041:6;2030:9;2026:22;2022:31;2015:42;1976:91;-1:-1:-1;2128:2:1;2107:15;-1:-1:-1;;2103:29:1;2088:45;;;;2135:2;2084:54;;1547:597;-1:-1:-1;;;1547:597:1:o;2375:315::-;2443:6;2451;2504:2;2492:9;2483:7;2479:23;2475:32;2472:52;;;2520:1;2517;2510:12;2472:52;2559:9;2546:23;2578:31;2603:5;2578:31;:::i;:::-;2628:5;2680:2;2665:18;;;;2652:32;;-1:-1:-1;;;2375:315:1:o;3069:456::-;3146:6;3154;3162;3215:2;3203:9;3194:7;3190:23;3186:32;3183:52;;;3231:1;3228;3221:12;3183:52;3270:9;3257:23;3289:31;3314:5;3289:31;:::i;:::-;3339:5;-1:-1:-1;3396:2:1;3381:18;;3368:32;3409:33;3368:32;3409:33;:::i;:::-;3069:456;;3461:7;;-1:-1:-1;;;3515:2:1;3500:18;;;;3487:32;;3069:456::o;3927:247::-;3986:6;4039:2;4027:9;4018:7;4014:23;4010:32;4007:52;;;4055:1;4052;4045:12;4007:52;4094:9;4081:23;4113:31;4138:5;4113:31;:::i;:::-;4163:5;3927:247;-1:-1:-1;;;3927:247:1:o;4179:248::-;4247:6;4255;4308:2;4296:9;4287:7;4283:23;4279:32;4276:52;;;4324:1;4321;4314:12;4276:52;-1:-1:-1;;4347:23:1;;;4417:2;4402:18;;;4389:32;;-1:-1:-1;4179:248:1:o;4432:180::-;4491:6;4544:2;4532:9;4523:7;4519:23;4515:32;4512:52;;;4560:1;4557;4550:12;4512:52;-1:-1:-1;4583:23:1;;4432:180;-1:-1:-1;4432:180:1:o;4617:118::-;4703:5;4696:13;4689:21;4682:5;4679:32;4669:60;;4725:1;4722;4715:12;4740:382;4805:6;4813;4866:2;4854:9;4845:7;4841:23;4837:32;4834:52;;;4882:1;4879;4872:12;4834:52;4921:9;4908:23;4940:31;4965:5;4940:31;:::i;:::-;4990:5;-1:-1:-1;5047:2:1;5032:18;;5019:32;5060:30;5019:32;5060:30;:::i;:::-;5109:7;5099:17;;;4740:382;;;;;:::o;5127:241::-;5183:6;5236:2;5224:9;5215:7;5211:23;5207:32;5204:52;;;5252:1;5249;5242:12;5204:52;5291:9;5278:23;5310:28;5332:5;5310:28;:::i;5373:529::-;5450:6;5458;5466;5519:2;5507:9;5498:7;5494:23;5490:32;5487:52;;;5535:1;5532;5525:12;5487:52;5574:9;5561:23;5593:31;5618:5;5593:31;:::i;:::-;5643:5;-1:-1:-1;5700:2:1;5685:18;;5672:32;5713:33;5672:32;5713:33;:::i;:::-;5765:7;-1:-1:-1;5824:2:1;5809:18;;5796:32;5837:33;5796:32;5837:33;:::i;:::-;5889:7;5879:17;;;5373:529;;;;;:::o;5907:388::-;5975:6;5983;6036:2;6024:9;6015:7;6011:23;6007:32;6004:52;;;6052:1;6049;6042:12;6004:52;6091:9;6078:23;6110:31;6135:5;6110:31;:::i;:::-;6160:5;-1:-1:-1;6217:2:1;6202:18;;6189:32;6230:33;6189:32;6230:33;:::i;6300:356::-;6502:2;6484:21;;;6521:18;;;6514:30;6580:34;6575:2;6560:18;;6553:62;6647:2;6632:18;;6300:356::o;6661:127::-;6722:10;6717:3;6713:20;6710:1;6703:31;6753:4;6750:1;6743:15;6777:4;6774:1;6767:15;7605:127;7666:10;7661:3;7657:20;7654:1;7647:31;7697:4;7694:1;7687:15;7721:4;7718:1;7711:15;7737:135;7776:3;-1:-1:-1;;7797:17:1;;7794:43;;;7817:18;;:::i;:::-;-1:-1:-1;7864:1:1;7853:13;;7737:135::o;7877:380::-;7956:1;7952:12;;;;7999;;;8020:61;;8074:4;8066:6;8062:17;8052:27;;8020:61;8127:2;8119:6;8116:14;8096:18;8093:38;8090:161;;;8173:10;8168:3;8164:20;8161:1;8154:31;8208:4;8205:1;8198:15;8236:4;8233:1;8226:15;8090:161;;7877:380;;;:::o;9083:128::-;9123:3;9154:1;9150:6;9147:1;9144:13;9141:39;;;9160:18;;:::i;:::-;-1:-1:-1;9196:9:1;;9083:128::o;10007:168::-;10047:7;10113:1;10109;10105:6;10101:14;10098:1;10095:21;10090:1;10083:9;10076:17;10072:45;10069:71;;;10120:18;;:::i;:::-;-1:-1:-1;10160:9:1;;10007:168::o;10180:217::-;10220:1;10246;10236:132;;10290:10;10285:3;10281:20;10278:1;10271:31;10325:4;10322:1;10315:15;10353:4;10350:1;10343:15;10236:132;-1:-1:-1;10382:9:1;;10180:217::o;11178:184::-;11248:6;11301:2;11289:9;11280:7;11276:23;11272:32;11269:52;;;11317:1;11314;11307:12;11269:52;-1:-1:-1;11340:16:1;;11178:184;-1:-1:-1;11178:184:1:o;11646:245::-;11713:6;11766:2;11754:9;11745:7;11741:23;11737:32;11734:52;;;11782:1;11779;11772:12;11734:52;11814:9;11808:16;11833:28;11855:5;11833:28;:::i;13893:251::-;13963:6;14016:2;14004:9;13995:7;13991:23;13987:32;13984:52;;;14032:1;14029;14022:12;13984:52;14064:9;14058:16;14083:31;14108:5;14083:31;:::i;15676:607::-;-1:-1:-1;;;;;16035:15:1;;;16017:34;;16082:2;16067:18;;16060:34;;;;16125:2;16110:18;;16103:34;;;;16168:2;16153:18;;16146:34;;;;16217:15;;;16211:3;16196:19;;16189:44;15997:3;16249:19;;16242:35;;;;15966:3;15951:19;;15676:607::o;16288:306::-;16376:6;16384;16392;16445:2;16433:9;16424:7;16420:23;16416:32;16413:52;;;16461:1;16458;16451:12;16413:52;16490:9;16484:16;16474:26;;16540:2;16529:9;16525:18;16519:25;16509:35;;16584:2;16573:9;16569:18;16563:25;16553:35;;16288:306;;;;;:::o;18855:401::-;19057:2;19039:21;;;19096:2;19076:18;;;19069:30;19135:34;19130:2;19115:18;;19108:62;-1:-1:-1;;;19201:2:1;19186:18;;19179:35;19246:3;19231:19;;18855:401::o;19261:399::-;19463:2;19445:21;;;19502:2;19482:18;;;19475:30;19541:34;19536:2;19521:18;;19514:62;-1:-1:-1;;;19607:2:1;19592:18;;19585:33;19650:3;19635:19;;19261:399::o;20368:125::-;20408:4;20436:1;20433;20430:8;20427:34;;;20441:18;;:::i;:::-;-1:-1:-1;20478:9:1;;20368:125::o;22828:980::-;23090:4;23138:3;23127:9;23123:19;23169:6;23158:9;23151:25;23195:2;23233:6;23228:2;23217:9;23213:18;23206:34;23276:3;23271:2;23260:9;23256:18;23249:31;23300:6;23335;23329:13;23366:6;23358;23351:22;23404:3;23393:9;23389:19;23382:26;;23443:2;23435:6;23431:15;23417:29;;23464:1;23474:195;23488:6;23485:1;23482:13;23474:195;;;23553:13;;-1:-1:-1;;;;;23549:39:1;23537:52;;23644:15;;;;23609:12;;;;23585:1;23503:9;23474:195;;;-1:-1:-1;;;;;;;23725:32:1;;;;23720:2;23705:18;;23698:60;-1:-1:-1;;;23789:3:1;23774:19;23767:35;23686:3;22828:980;-1:-1:-1;;;22828:980:1:o
Swarm Source
ipfs://c60d17f702e100d8b5b9abd55ca0ce1716ecfe70a2db3ac8787badf348a2fcf9
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.