ERC-20
Overview
Max Total Supply
999,788,181.4492903961925 DeFire
Holders
40
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
54,278,039.617724825013518722 DeFireValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
DeFire
Compiler Version
v0.8.28+commit.7893614a
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-11-13 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.22; 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 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) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } 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 _generateSupply(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 _burnSupply(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _totalSupply -= amount; _balances[account] -= amount; emit Transfer(account, address(0x000000000000000000000000000000000000dEaD), 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) public virtual onlyOwner { require( newOwner != address(0), "Ownable: new owner is the zero address" ); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } interface UniswapV2Router { 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 swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } interface UniswapV2Factory { function createPair( address tokenA, address tokenB ) external returns (address pair); } contract DeFire is ERC20, Ownable { UniswapV2Router public immutable uniswapV2Router; address public immutable uniswapV2Pair; address public GeeksAddr = address(0); IERC20 public GeeksToken; uint256 public maxWallet; uint256 public maxTxnAmount; bool private swappingETH; bool private swappingTKN; uint256 public swapTokensAtAmount; uint256 public swapLimit; address public devWallet = 0xa7B1f74b5b6E272c58F114cCc8C725307434e296; address public marketingWallet = 0x6e68c68CfAc0bA5Ae01fDA6C61c0DA3D209A1728; bool public limitsInEffect = true; bool public tradingLive = false; bool public swapEnabled = false; address public bridgeContract = 0x13e65B7C2066926aC90E6b09831cF460F9ee16E8; address public router = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; mapping(address => uint256) private _holderLastTransferTimestamp; uint256 public ethPairTaxedTokens; uint256 public tokenPairTaxedTokens; mapping(address => bool) public automatedMarketMakerPairs; mapping(address => TaxRates) public pairTaxRates; mapping(address => mapping(address => bool)) private _isExcludedMaxTransactionAmount; mapping(address => mapping(address => bool)) private _isExcludedFromFees; struct TaxRates { uint256 buyTax; uint256 sellTax; } event EnabledTrading(); event RemovedLimits(); event ExcludeFromFees(address indexed account, bool isExcluded); event UpdatedTxnAmount(uint256 newAmount); event UpdatedMaxWalletAmount(uint256 newAmount); event MaxTransactionExclusion(address _address, bool excluded); event OwnerManualCollection(uint256 timestamp); event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value); event SetTaxRates(address indexed pair, uint256 buyTax, uint256 sellTax); event ExcludeFromMaxTransaction(address indexed updAds, address indexed pair, bool isEx); event ExcludeFromFees(address indexed updAds, address indexed pair, bool isEx); constructor() ERC20("DeFire", "DeFire") { UniswapV2Router _uniswapV2Router = UniswapV2Router(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Router = _uniswapV2Router; uniswapV2Pair = UniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this),_uniswapV2Router.WETH()); excludeFromMaxTransaction(address(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D), uniswapV2Pair, true); excludeFromMaxTransaction(uniswapV2Pair, uniswapV2Pair, true); _setAutomatedMarketMakerPair(uniswapV2Pair, true); uint256 totalSupply = 1000000000 * 10 ** 18; maxWallet = 10000000 * 10 ** 18; maxTxnAmount = 10000000 * 10 ** 18; swapTokensAtAmount = 1000000 * 10 ** 18; swapLimit = 5; setTaxRates(uniswapV2Pair,5,5); excludeFromFees(owner(),uniswapV2Pair, true); excludeFromFees(devWallet,uniswapV2Pair, true); excludeFromFees(marketingWallet,uniswapV2Pair, true); excludeFromFees(address(this),uniswapV2Pair, true); excludeFromFees(address(0xdead),uniswapV2Pair, true); excludeFromMaxTransaction(owner(),uniswapV2Pair, true); excludeFromMaxTransaction(devWallet,uniswapV2Pair, true); excludeFromMaxTransaction(marketingWallet, uniswapV2Pair,true); excludeFromMaxTransaction(address(this),uniswapV2Pair, true); excludeFromMaxTransaction(address(0xdead),uniswapV2Pair, true); _generateSupply(msg.sender, totalSupply); transferOwnership(msg.sender); } receive() external payable {} // ENABLE TRADING function enableTrading() external onlyOwner { require(!tradingLive, "Trading already live!"); tradingLive = true; swapEnabled = true; emit EnabledTrading(); } function setSwapLimit(uint256 _limit) public onlyOwner { swapLimit = _limit; } function setGeeksContract(IERC20 _GeeksToken,address _Geeks) public onlyOwner { GeeksAddr = _Geeks; GeeksToken = _GeeksToken; } function setMarketingWallet(address _wallet) external onlyOwner { marketingWallet = _wallet; } function setDevWallet(address _wallet) external onlyOwner { devWallet = _wallet; } function bridgeMint(uint256 amount, address reciever) external { require(msg.sender == bridgeContract, "Only Callable By bridge Contract"); _generateSupply(reciever, amount); } function bridgeBurn(uint256 amount, address user) external { require(msg.sender == bridgeContract, "Only Callable By bridge Contract"); _burnSupply(user, amount); } function updatebridge(address _newBridge) external onlyOwner{ bridgeContract = _newBridge; } // REMOVE TXN LIMITS function removeLimits() external onlyOwner { limitsInEffect = false; emit RemovedLimits(); } function updateMaxTxnAmount(uint256 newNum) external onlyOwner { maxTxnAmount = newNum * (10 ** 18); emit UpdatedTxnAmount(maxTxnAmount); } function updateMaxWalletAmount(uint256 newNum) external onlyOwner { maxWallet = newNum * (10 ** 18); emit UpdatedMaxWalletAmount(maxWallet); } function updateSwapTokensAtAmount(uint256 newAmount) external onlyOwner { swapTokensAtAmount = newAmount; } function RemoveAutomatedMarketMakerPair(address pair) external onlyOwner { require(pair != uniswapV2Pair, "The pair cannot be removed from automatedMarketMakerPairs"); _setAutomatedMarketMakerPair(pair, false); emit SetAutomatedMarketMakerPair(pair, false); } function initToken1NewAutomatedMarketMakerPair(address token1, address token2, uint256 buyTax, uint256 sellTax) external onlyOwner { address pair = UniswapV2Factory(uniswapV2Router.factory()).createPair(token1,token2); _setAutomatedMarketMakerPair(pair, true); setTaxRates(pair, buyTax, sellTax); emit SetAutomatedMarketMakerPair(pair, true); } function logPairToken2(address pair, bool value) external onlyOwner { automatedMarketMakerPairs[pair] = value; emit SetAutomatedMarketMakerPair(pair, value); } function _setAutomatedMarketMakerPair(address pair, bool value) private { automatedMarketMakerPairs[pair] = value; emit SetAutomatedMarketMakerPair(pair, value); } function updatePairforToken1AndToken2(address pair) external onlyOwner{ excludeFromMaxTransaction(pair,pair,true); excludeFromMaxTransaction(router,pair,true); excludeFromMaxTransaction(owner(),pair, true); excludeFromMaxTransaction(devWallet,pair, true); excludeFromMaxTransaction(marketingWallet, pair,true); excludeFromMaxTransaction(address(this),pair, true); excludeFromMaxTransaction(address(0xdead),pair, true); excludeFromFees(owner(),pair, true); excludeFromFees(devWallet,pair, true); excludeFromFees(marketingWallet,pair, true); excludeFromFees(address(this),pair, true); excludeFromFees(address(0xdead),pair, true); } function setTaxRates(address pair, uint256 buyTax, uint256 sellTax) public onlyOwner { require(buyTax <= 25, "Buy tax too high"); require(sellTax <= 25, "Sell tax too high"); pairTaxRates[pair] = TaxRates(buyTax, sellTax); emit SetTaxRates(pair, buyTax, sellTax); } function getTaxRates(address pair) external view returns (uint256 buyTax, uint256 sellTax) { TaxRates memory rates = pairTaxRates[pair]; return (rates.buyTax, rates.sellTax); } function excludeFromMaxTransaction(address updAds, address pair, bool isEx) public onlyOwner { require(updAds != address(0), "Address cannot be the zero address"); _isExcludedMaxTransactionAmount[updAds][pair] = isEx; emit ExcludeFromMaxTransaction(updAds, pair, isEx); } function isExcludedFromMaxTransaction(address updAds, address pair) public view returns (bool) { return _isExcludedMaxTransactionAmount[updAds][pair]; } function excludeFromFees(address updAds, address pair, bool isEx) public onlyOwner { require(updAds != address(0), "Address cannot be the zero address"); _isExcludedFromFees[updAds][pair] = isEx; emit ExcludeFromFees(updAds, pair, isEx); } function isExcludedFromFees(address updAds, address pair) public view returns (bool) { return _isExcludedFromFees[updAds][pair]; } 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(amount > 0, "amount must be greater than 0"); bool isBuy = automatedMarketMakerPairs[from]; bool isSell = automatedMarketMakerPairs[to]; address pair = isBuy ? from : (isSell ? to : address(0)); if (!tradingLive) { require( isExcludedFromFees(from, pair) || isExcludedFromFees(to, pair), "Trading is not active." ); } if (limitsInEffect) { if ( from != owner() && to != owner() && !isExcludedFromFees(from, pair) && !isExcludedFromFees(to, pair) ) { if (isBuy) { require( amount <= maxTxnAmount, "Buy transfer amount exceeds the max txn." ); require( amount + balanceOf(to) <= maxWallet, "Cannot exceed max wallet" ); } else if (isSell) { require( amount <= maxTxnAmount, "Sell transfer amount exceeds the max txn." ); } else { require( amount + balanceOf(to) <= maxWallet, "Cannot exceed max wallet" ); } } } uint256 contractETHTokenBalance = ethPairTaxedTokens; uint256 contractTokenBalance = tokenPairTaxedTokens; bool canSwapETH = contractETHTokenBalance >= swapTokensAtAmount; bool canSwapTKN = contractTokenBalance >= swapTokensAtAmount; if ( canSwapETH && swapEnabled && !swappingETH && !isBuy && !isExcludedFromFees(from, pair) && !isExcludedFromFees(to, pair) ) { swappingETH = true; collectETHFees(); swappingETH = false; } if ( canSwapTKN && swapEnabled && !swappingTKN && !isBuy && !isExcludedFromFees(from, pair) && !isExcludedFromFees(to, pair) ) { swappingTKN = true; collectTokenFees(); swappingTKN = false; } bool takeEthFee = false; bool takeTokenFee = false; if (pair == uniswapV2Pair) { takeEthFee = true; } else if (pair != uniswapV2Pair) { takeTokenFee = true; } else { revert("Invalid pair address"); } if (isExcludedFromFees(from, pair) || isExcludedFromFees(to, pair)) { takeEthFee = false; takeTokenFee = false; } uint256 fees = 0; if (takeEthFee) { // Apply ETH fees based on transaction type if (isSell) { TaxRates memory sellTaxRates = pairTaxRates[to]; if (sellTaxRates.sellTax > 0) { fees = (amount * sellTaxRates.sellTax) / 100; ethPairTaxedTokens += fees; } } else if (isBuy) { TaxRates memory buyTaxRates = pairTaxRates[from]; if (buyTaxRates.buyTax > 0) { fees = (amount * buyTaxRates.buyTax) / 100; ethPairTaxedTokens += fees; } } if (fees > 0) { super._transfer(from, address(this), fees); } amount -= fees; } if (takeTokenFee) { // Apply Token fees based on transaction type if (isSell) { TaxRates memory sellTaxRates = pairTaxRates[to]; if (sellTaxRates.sellTax > 0) { fees = (amount * sellTaxRates.sellTax) / 100; tokenPairTaxedTokens += fees; } } else if (isBuy) { TaxRates memory buyTaxRates = pairTaxRates[from]; if (buyTaxRates.buyTax > 0) { fees = (amount * buyTaxRates.buyTax) / 100; tokenPairTaxedTokens += fees; } } 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] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function swapTokensForTokens(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = GeeksAddr; _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForTokensSupportingFeeOnTransferTokens( tokenAmount, 0, path, devWallet, block.timestamp ); } function collectETHFees() private { uint256 totalEthTokensToSwap = ethPairTaxedTokens; uint256 contractBalance = balanceOf(address(this)); if (totalEthTokensToSwap == 0 && contractBalance == 0) { return; } if (limitsInEffect) { if (totalEthTokensToSwap > swapTokensAtAmount * swapLimit) { totalEthTokensToSwap = swapTokensAtAmount * swapLimit; } } else { if (totalEthTokensToSwap > swapTokensAtAmount) { totalEthTokensToSwap = swapTokensAtAmount; } } bool success; swapTokensForEth(totalEthTokensToSwap); ethPairTaxedTokens -= totalEthTokensToSwap; if (address(this).balance > 0) { (success, ) = address(marketingWallet).call{value: address(this).balance}( "" ); } } function collectTokenFees() private { uint256 totalGeeksTokensToSwap = tokenPairTaxedTokens; if (totalGeeksTokensToSwap == 0) { return; } if (limitsInEffect) { if (totalGeeksTokensToSwap > swapTokensAtAmount * swapLimit) { totalGeeksTokensToSwap = swapTokensAtAmount * swapLimit; } } else { if (totalGeeksTokensToSwap > swapTokensAtAmount) { totalGeeksTokensToSwap = swapTokensAtAmount; } } swapTokensForTokens(totalGeeksTokensToSwap); tokenPairTaxedTokens -= totalGeeksTokensToSwap; } //Remove any clog from contract function manualTokenSwap() external onlyOwner { require(tokenPairTaxedTokens >= 0, "No tokens to swap"); swappingTKN = true; collectTokenFees(); swappingTKN = false; } function manualETHSwap() external onlyOwner{ require(ethPairTaxedTokens >= 0, "No tokens to swap"); swappingETH = true; collectETHFees(); swappingETH = false; } //Remove Tokens from contract function manualTokenCollection() external onlyOwner{ uint256 balance = this.balanceOf(address(this)); uint256 allocated = ethPairTaxedTokens + tokenPairTaxedTokens; require(balance > allocated, "Cant Remove Tokens That Are Allocated for swapping"); uint256 tokenBalance = balance - allocated; super._transfer(address(this), devWallet, tokenBalance); } //Remove any sent eth to contract function withdrawETH() external onlyOwner{ bool success; (success, ) = address(msg.sender).call{value: address(this).balance}( "" ); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[],"name":"EnabledTrading","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"updAds","type":"address"},{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":false,"internalType":"bool","name":"isEx","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"updAds","type":"address"},{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":false,"internalType":"bool","name":"isEx","type":"bool"}],"name":"ExcludeFromMaxTransaction","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_address","type":"address"},{"indexed":false,"internalType":"bool","name":"excluded","type":"bool"}],"name":"MaxTransactionExclusion","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"OwnerManualCollection","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":[],"name":"RemovedLimits","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":false,"internalType":"uint256","name":"buyTax","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"sellTax","type":"uint256"}],"name":"SetTaxRates","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"UpdatedMaxWalletAmount","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"UpdatedTxnAmount","type":"event"},{"inputs":[],"name":"GeeksAddr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"GeeksToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"}],"name":"RemoveAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","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":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"user","type":"address"}],"name":"bridgeBurn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"bridgeContract","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"reciever","type":"address"}],"name":"bridgeMint","outputs":[],"stateMutability":"nonpayable","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":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"ethPairTaxedTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"}],"name":"getTaxRates","outputs":[{"internalType":"uint256","name":"buyTax","type":"uint256"},{"internalType":"uint256","name":"sellTax","type":"uint256"}],"stateMutability":"view","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":"token1","type":"address"},{"internalType":"address","name":"token2","type":"address"},{"internalType":"uint256","name":"buyTax","type":"uint256"},{"internalType":"uint256","name":"sellTax","type":"uint256"}],"name":"initToken1NewAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"address","name":"pair","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"address","name":"pair","type":"address"}],"name":"isExcludedFromMaxTransaction","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"logPairToken2","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualETHSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualTokenCollection","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualTokenSwap","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"","type":"address"}],"name":"pairTaxRates","outputs":[{"internalType":"uint256","name":"buyTax","type":"uint256"},{"internalType":"uint256","name":"sellTax","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_wallet","type":"address"}],"name":"setDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"_GeeksToken","type":"address"},{"internalType":"address","name":"_Geeks","type":"address"}],"name":"setGeeksContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_wallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_limit","type":"uint256"}],"name":"setSwapLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"uint256","name":"buyTax","type":"uint256"},{"internalType":"uint256","name":"sellTax","type":"uint256"}],"name":"setTaxRates","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[],"name":"tokenPairTaxedTokens","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":"tradingLive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[{"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":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract UniswapV2Router","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"}],"name":"updatePairforToken1AndToken2","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newBridge","type":"address"}],"name":"updatebridge","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60c0604052600680546001600160a01b0319908116909155600d8054821673a7b1f74b5b6e272c58f114ccc8c725307434e296179055600e80546001600160b81b03191674016e68c68cfac0ba5ae01fda6c61c0da3d209a1728179055600f805482167313e65b7c2066926ac90e6b09831cf460f9ee16e817905560108054909116737a250d5630b4cf539739df2c5dacb4c659f2488d1790553480156100a4575f5ffd5b5060408051808201825260068082526544654669726560d01b60208084018290528451808601909552918452908301529060036100e18382610a3c565b5060046100ee8282610a3c565b5050505f61010061043860201b60201c565b600580546001600160a01b0319166001600160a01b038316908117909155604051919250905f905f516020613cfc5f395f51905f52908290a350737a250d5630b4cf539739df2c5dacb4c659f2488d60808190526040805163c45a015560e01b81529051829163c45a01559160048083019260209291908290030181865afa15801561018e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101b29190610af6565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101fd573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102219190610af6565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801561026b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061028f9190610af6565b6001600160a01b031660a08190526102be90737a250d5630b4cf539739df2c5dacb4c659f2488d90600161043c565b60a0516102cd9080600161043c565b60a0516102db906001610543565b6a084595161401484a000000600881905560095569d3c21bcecceda1000000600b556005600c81905560a0516b033b2e3c9fd0803ce800000091610320919080610596565b61033f6103356005546001600160a01b031690565b60a05160016106db565b600d5460a05161035a916001600160a01b03169060016106db565b600e5460a051610375916001600160a01b03169060016106db565b6103893060a05160016106db60201b60201c565b61039f61dead60a05160016106db60201b60201c565b6103be6103b46005546001600160a01b031690565b60a051600161043c565b600d5460a0516103d9916001600160a01b031690600161043c565b600e5460a0516103f4916001600160a01b031690600161043c565b6104083060a051600161043c60201b60201c565b61041e61dead60a051600161043c60201b60201c565b61042833826107d4565b610431336108b0565b5050610b48565b3390565b6005546001600160a01b031633146104885760405162461bcd60e51b815260206004820181905260248201525f516020613cdc5f395f51905f5260448201526064015b60405180910390fd5b6001600160a01b0383166104d65760405162461bcd60e51b815260206004820152602260248201525f516020613d1c5f395f51905f52604482015261737360f01b606482015260840161047f565b6001600160a01b038381165f81815260166020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f4df1a15fc27298788e9aadcd88c1ec48da88df5f3dc994bce52ecc9f6c09806591015b60405180910390a3505050565b6001600160a01b0382165f81815260146020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6005546001600160a01b031633146105dd5760405162461bcd60e51b815260206004820181905260248201525f516020613cdc5f395f51905f52604482015260640161047f565b60198211156106215760405162461bcd60e51b815260206004820152601060248201526f084eaf240e8c2f040e8dede40d0d2ced60831b604482015260640161047f565b60198111156106665760405162461bcd60e51b81526020600482015260116024820152700a6cad8d840e8c2f040e8dede40d0d2ced607b1b604482015260640161047f565b60408051808201825283815260208082018481526001600160a01b0387165f81815260158452859020935184559051600190930192909255825185815290810184905290917fcea7667c47d559885d74a4ffe52d66f1404cffd281e70ebbb50cfb1e210bb330910160405180910390a2505050565b6005546001600160a01b031633146107225760405162461bcd60e51b815260206004820181905260248201525f516020613cdc5f395f51905f52604482015260640161047f565b6001600160a01b0383166107705760405162461bcd60e51b815260206004820152602260248201525f516020613d1c5f395f51905f52604482015261737360f01b606482015260840161047f565b6001600160a01b038381165f81815260176020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f032b791609c5d8ec85cea32ab6a6eb0ac9c4cd4f0137f950cf030f0c640bd8f69101610536565b6001600160a01b03821661082a5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161047f565b8060025f82825461083b9190610b23565b90915550506001600160a01b0382165f9081526020819052604081208054839290610867908490610b23565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6005546001600160a01b031633146108f75760405162461bcd60e51b815260206004820181905260248201525f516020613cdc5f395f51905f52604482015260640161047f565b6001600160a01b03811661095c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161047f565b6005546040516001600160a01b038084169216905f516020613cfc5f395f51905f52905f90a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806109cc57607f821691505b6020821081036109ea57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115610a3757805f5260205f20601f840160051c81016020851015610a155750805b601f840160051c820191505b81811015610a34575f8155600101610a21565b50505b505050565b81516001600160401b03811115610a5557610a556109a4565b610a6981610a6384546109b8565b846109f0565b6020601f821160018114610a9b575f8315610a845750848201515b5f19600385901b1c1916600184901b178455610a34565b5f84815260208120601f198516915b82811015610aca5787850151825560209485019460019092019101610aaa565b5084821015610ae757868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b5f60208284031215610b06575f5ffd5b81516001600160a01b0381168114610b1c575f5ffd5b9392505050565b80820180821115610b4257634e487b7160e01b5f52601160045260245ffd5b92915050565b60805160a051613134610ba85f395f818161062b01528181610d980152818161253e015261257201525f818161043e0152818161174e015281816129fa01528181612ab101528181612aed01528181612bdd0152612c1c01526131345ff3fe60806040526004361061037f575f3560e01c8063751039fc116101d3578063c18bc195116100fd578063e086e5ec1161009d578063f46f935c1161006d578063f46f935c14610acd578063f887ea4014610aec578063f8b45b0514610b0b578063f954aafc14610b20575f5ffd5b8063e086e5ec14610a71578063e2f4560514610a85578063e71fa81514610a9a578063f2fde38b14610aae575f5ffd5b8063d257b34f116100d8578063d257b34f146109d0578063d64a8773146109ef578063dc66661114610a0e578063dd62ed3e14610a2d575f5ffd5b8063c18bc1951461097d578063cd5965831461099c578063cf46f24c146109bb575f5ffd5b806395d89b4111610173578063a48b2aaa11610143578063a48b2aaa146108c0578063a9059cbb146108df578063aabb9f32146108fe578063b62496f51461094f575f5ffd5b806395d89b411461084f5780639a808218146108635780639e6303f014610882578063a457c2d7146108a1575f5ffd5b80638a8c523c116101ae5780638a8c523c146107e05780638aeb820e146107f45780638da5cb5b146108135780638ea5220f14610830575f5ffd5b8063751039fc1461078e57806375f0a874146107a25780637861e8e9146107c1575f5ffd5b8063313ce567116102b45780634b46e301116102545780636ddd1713116102245780636ddd1713146106df57806370a08231146106ff578063715018a614610733578063740e0d5214610747575f5ffd5b80634b46e3011461066d5780635d098b381461068c578063636ecc62146106ab5780636a01f09c146106ca575f5ffd5b80633a80d94e1161028f5780633a80d94e146105f05780633b364eac1461060557806349bd5a5e1461061a5780634a62bb651461064d575f5ffd5b8063313ce5671461059757806339509351146105b257806339e2c84a146105d1575f5ffd5b806318a128e01161031f578063203e727e116102fa578063203e727e146104f357806323b872dd146105125780632b2a5890146105315780632b37271f14610578575f5ffd5b806318a128e0146104965780631b827671146104b55780631f53ac02146104d4575f5ffd5b80631423560d1161035a5780631423560d1461040357806315832b9e146104195780631694505e1461042d57806318160ddd14610478575f5ffd5b806306fdde031461038a578063095ea7b3146103b457806311704f52146103e3575f5ffd5b3661038657005b5f5ffd5b348015610395575f5ffd5b5061039e610b3f565b6040516103ab9190612c5d565b60405180910390f35b3480156103bf575f5ffd5b506103d36103ce366004612ca6565b610bcf565b60405190151581526020016103ab565b3480156103ee575f5ffd5b50600e546103d390600160a81b900460ff1681565b34801561040e575f5ffd5b50610417610be5565b005b348015610424575f5ffd5b50610417610c39565b348015610438575f5ffd5b506104607f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016103ab565b348015610483575f5ffd5b506002545b6040519081526020016103ab565b3480156104a1575f5ffd5b506104176104b0366004612cd0565b610d6c565b3480156104c0575f5ffd5b506104176104cf366004612cf2565b610e7f565b3480156104df575f5ffd5b506104176104ee366004612cd0565b610ee7565b3480156104fe575f5ffd5b5061041761050d366004612d20565b610f33565b34801561051d575f5ffd5b506103d361052c366004612d37565b610fab565b34801561053c575f5ffd5b5061056361054b366004612cd0565b60156020525f90815260409020805460019091015482565b604080519283526020830191909152016103ab565b348015610583575f5ffd5b50610417610592366004612d75565b611053565b3480156105a2575f5ffd5b50604051601281526020016103ab565b3480156105bd575f5ffd5b506103d36105cc366004612ca6565b6110ae565b3480156105dc575f5ffd5b506104176105eb366004612cd0565b6110e9565b3480156105fb575f5ffd5b5061048860135481565b348015610610575f5ffd5b5061048860125481565b348015610625575f5ffd5b506104607f000000000000000000000000000000000000000000000000000000000000000081565b348015610658575f5ffd5b50600e546103d390600160a01b900460ff1681565b348015610678575f5ffd5b50610417610687366004612d20565b611135565b348015610697575f5ffd5b506104176106a6366004612cd0565b611164565b3480156106b6575f5ffd5b506104176106c5366004612db5565b6111b0565b3480156106d5575f5ffd5b50610488600c5481565b3480156106ea575f5ffd5b50600e546103d390600160b01b900460ff1681565b34801561070a575f5ffd5b50610488610719366004612cd0565b6001600160a01b03165f9081526020819052604090205490565b34801561073e575f5ffd5b5061041761126d565b348015610752575f5ffd5b506103d3610761366004612d75565b6001600160a01b039182165f90815260166020908152604080832093909416825291909152205460ff1690565b348015610799575f5ffd5b506104176112e0565b3480156107ad575f5ffd5b50600e54610460906001600160a01b031681565b3480156107cc575f5ffd5b506104176107db366004612df9565b611341565b3480156107eb575f5ffd5b50610417611469565b3480156107ff575f5ffd5b50600654610460906001600160a01b031681565b34801561081e575f5ffd5b506005546001600160a01b0316610460565b34801561083b575f5ffd5b50600d54610460906001600160a01b031681565b34801561085a575f5ffd5b5061039e611524565b34801561086e575f5ffd5b50600754610460906001600160a01b031681565b34801561088d575f5ffd5b506103d361089c366004612d75565b611533565b3480156108ac575f5ffd5b506103d36108bb366004612ca6565b611560565b3480156108cb575f5ffd5b506104176108da366004612e2b565b6115f8565b3480156108ea575f5ffd5b506103d36108f9366004612ca6565b611675565b348015610909575f5ffd5b50610563610918366004612cd0565b6001600160a01b03165f90815260156020908152604091829020825180840190935280548084526001909101549290910182905291565b34801561095a575f5ffd5b506103d3610969366004612cd0565b60146020525f908152604090205460ff1681565b348015610988575f5ffd5b50610417610997366004612d20565b611681565b3480156109a7575f5ffd5b50600f54610460906001600160a01b031681565b3480156109c6575f5ffd5b5061048860095481565b3480156109db575f5ffd5b506104176109ea366004612d20565b6116f2565b3480156109fa575f5ffd5b50610417610a09366004612e5e565b611721565b348015610a19575f5ffd5b50610417610a28366004612db5565b611894565b348015610a38575f5ffd5b50610488610a47366004612d75565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b348015610a7c575f5ffd5b50610417611948565b348015610a90575f5ffd5b50610488600b5481565b348015610aa5575f5ffd5b506104176119bc565b348015610ab9575f5ffd5b50610417610ac8366004612cd0565b611a0a565b348015610ad8575f5ffd5b50610417610ae7366004612cf2565b611af4565b348015610af7575f5ffd5b50601054610460906001600160a01b031681565b348015610b16575f5ffd5b5061048860085481565b348015610b2b575f5ffd5b50610417610b3a366004612cd0565b611b58565b606060038054610b4e90612ea1565b80601f0160208091040260200160405190810160405280929190818152602001828054610b7a90612ea1565b8015610bc55780601f10610b9c57610100808354040283529160200191610bc5565b820191905f5260205f20905b815481529060010190602001808311610ba857829003601f168201915b5050505050905090565b5f610bdb338484611c77565b5060015b92915050565b6005546001600160a01b03163314610c185760405162461bcd60e51b8152600401610c0f90612ed9565b60405180910390fd5b600a805460ff19166001179055610c2d611d92565b600a805460ff19169055565b6005546001600160a01b03163314610c635760405162461bcd60e51b8152600401610c0f90612ed9565b6040516370a0823160e01b815230600482018190525f916370a0823190602401602060405180830381865afa158015610c9e573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cc29190612f0e565b90505f601354601254610cd59190612f39565b9050808211610d415760405162461bcd60e51b815260206004820152603260248201527f43616e742052656d6f766520546f6b656e7320546861742041726520416c6c6f604482015271636174656420666f72207377617070696e6760701b6064820152608401610c0f565b5f610d4c8284612f4c565b600d54909150610d679030906001600160a01b031683611e87565b505050565b6005546001600160a01b03163314610d965760405162461bcd60e51b8152600401610c0f90612ed9565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031603610e3d5760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b65725061697273000000000000006064820152608401610c0f565b610e47815f611622565b6040515f906001600160a01b038316907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab908390a350565b600f546001600160a01b03163314610ed95760405162461bcd60e51b815260206004820181905260248201527f4f6e6c792043616c6c61626c652042792062726964676520436f6e74726163746044820152606401610c0f565b610ee38183611fda565b5050565b6005546001600160a01b03163314610f115760405162461bcd60e51b8152600401610c0f90612ed9565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610f5d5760405162461bcd60e51b8152600401610c0f90612ed9565b610f6f81670de0b6b3a7640000612f5f565b60098190556040519081527fbd8a1f50bda6367cd3771d8453c2582c5f01613dd6d8ee271672f4943da806d3906020015b60405180910390a150565b5f610fb78484846120b7565b6001600160a01b0384165f9081526001602090815260408083203384529091529020548281101561103b5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610c0f565b6110488533858403611c77565b506001949350505050565b6005546001600160a01b0316331461107d5760405162461bcd60e51b8152600401610c0f90612ed9565b600680546001600160a01b039283166001600160a01b03199182161790915560078054939092169216919091179055565b335f8181526001602090815260408083206001600160a01b03871684529091528120549091610bdb9185906110e4908690612f39565b611c77565b6005546001600160a01b031633146111135760405162461bcd60e51b8152600401610c0f90612ed9565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b0316331461115f5760405162461bcd60e51b8152600401610c0f90612ed9565b600c55565b6005546001600160a01b0316331461118e5760405162461bcd60e51b8152600401610c0f90612ed9565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146111da5760405162461bcd60e51b8152600401610c0f90612ed9565b6001600160a01b0383166112005760405162461bcd60e51b8152600401610c0f90612f76565b6001600160a01b038381165f81815260166020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f4df1a15fc27298788e9aadcd88c1ec48da88df5f3dc994bce52ecc9f6c09806591015b60405180910390a3505050565b6005546001600160a01b031633146112975760405162461bcd60e51b8152600401610c0f90612ed9565b6005546040515f916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b0316331461130a5760405162461bcd60e51b8152600401610c0f90612ed9565b600e805460ff60a01b191690556040517fa4ffae85e880608d5d4365c2b682786545d136145537788e7e0940dff9f0b98c905f90a1565b6005546001600160a01b0316331461136b5760405162461bcd60e51b8152600401610c0f90612ed9565b60198211156113af5760405162461bcd60e51b815260206004820152601060248201526f084eaf240e8c2f040e8dede40d0d2ced60831b6044820152606401610c0f565b60198111156113f45760405162461bcd60e51b81526020600482015260116024820152700a6cad8d840e8c2f040e8dede40d0d2ced607b1b6044820152606401610c0f565b60408051808201825283815260208082018481526001600160a01b0387165f81815260158452859020935184559051600190930192909255825185815290810184905290917fcea7667c47d559885d74a4ffe52d66f1404cffd281e70ebbb50cfb1e210bb330910160405180910390a2505050565b6005546001600160a01b031633146114935760405162461bcd60e51b8152600401610c0f90612ed9565b600e54600160a81b900460ff16156114e55760405162461bcd60e51b815260206004820152601560248201527454726164696e6720616c7265616479206c6976652160581b6044820152606401610c0f565b600e805461ffff60a81b191661010160a81b1790556040517fa56feb2d31b9a7424db0be063fd450863979c9e2382cf5110f869bd1ad361bb7905f90a1565b606060048054610b4e90612ea1565b6001600160a01b039182165f90815260176020908152604080832093909416825291909152205460ff1690565b335f9081526001602090815260408083206001600160a01b0386168452909152812054828110156115e15760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610c0f565b6115ee3385858403611c77565b5060019392505050565b6005546001600160a01b031633146116225760405162461bcd60e51b8152600401610c0f90612ed9565b6001600160a01b0382165f81815260146020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b5f610bdb3384846120b7565b6005546001600160a01b031633146116ab5760405162461bcd60e51b8152600401610c0f90612ed9565b6116bd81670de0b6b3a7640000612f5f565b60088190556040519081527fefc9add9a9b7382de284ef5ad69d8ea863e2680492b21a81948c2d5f04a442bc90602001610fa0565b6005546001600160a01b0316331461171c5760405162461bcd60e51b8152600401610c0f90612ed9565b600b55565b6005546001600160a01b0316331461174b5760405162461bcd60e51b8152600401610c0f90612ed9565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117a8573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117cc9190612fb8565b6040516364e329cb60e11b81526001600160a01b0387811660048301528681166024830152919091169063c9c65396906044016020604051808303815f875af115801561181b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061183f9190612fb8565b905061184c816001611622565b611857818484611341565b6040516001906001600160a01b038316907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab905f90a35050505050565b6005546001600160a01b031633146118be5760405162461bcd60e51b8152600401610c0f90612ed9565b6001600160a01b0383166118e45760405162461bcd60e51b8152600401610c0f90612f76565b6001600160a01b038381165f81815260176020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f032b791609c5d8ec85cea32ab6a6eb0ac9c4cd4f0137f950cf030f0c640bd8f69101611260565b6005546001600160a01b031633146119725760405162461bcd60e51b8152600401610c0f90612ed9565b6040515f90339047908381818185875af1925050503d805f81146119b1576040519150601f19603f3d011682016040523d82523d5f602084013e6119b6565b606091505b50505050565b6005546001600160a01b031633146119e65760405162461bcd60e51b8152600401610c0f90612ed9565b600a805461ff0019166101001790556119fd61284e565b600a805461ff0019169055565b6005546001600160a01b03163314611a345760405162461bcd60e51b8152600401610c0f90612ed9565b6001600160a01b038116611a995760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610c0f565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b600f546001600160a01b03163314611b4e5760405162461bcd60e51b815260206004820181905260248201527f4f6e6c792043616c6c61626c652042792062726964676520436f6e74726163746044820152606401610c0f565b610ee381836128ce565b6005546001600160a01b03163314611b825760405162461bcd60e51b8152600401610c0f90612ed9565b611b8e818260016111b0565b601054611ba6906001600160a01b03168260016111b0565b611bc3611bbb6005546001600160a01b031690565b8260016111b0565b600d54611bdb906001600160a01b03168260016111b0565b600e54611bf3906001600160a01b03168260016111b0565b611bff308260016111b0565b611c0d61dead8260016111b0565b611c2a611c226005546001600160a01b031690565b826001611894565b600d54611c42906001600160a01b0316826001611894565b600e54611c5a906001600160a01b0316826001611894565b611c6630826001611894565b611c7461dead826001611894565b50565b6001600160a01b038316611cd95760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610c0f565b6001600160a01b038216611d3a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610c0f565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259101611260565b601254305f9081526020819052604090205481158015611db0575080155b15611db9575050565b600e54600160a01b900460ff1615611dfa57600c54600b54611ddb9190612f5f565b821115611df557600c54600b54611df29190612f5f565b91505b611e0a565b600b54821115611e0a57600b5491505b5f611e14836129a5565b8260125f828254611e259190612f4c565b90915550504715610d6757600e546040516001600160a01b039091169047905f81818185875af1925050503d805f8114611e7a576040519150601f19603f3d011682016040523d82523d5f602084013e611e7f565b606091505b505050505050565b6001600160a01b038316611ead5760405162461bcd60e51b8152600401610c0f90612fd3565b6001600160a01b038216611ed35760405162461bcd60e51b8152600401610c0f90613018565b6001600160a01b0383165f9081526020819052604090205481811015611f4a5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610c0f565b6001600160a01b038085165f90815260208190526040808220858503905591851681529081208054849290611f80908490612f39565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611fcc91815260200190565b60405180910390a350505050565b6001600160a01b0382166120305760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610c0f565b8060025f8282546120419190612f39565b90915550506001600160a01b0382165f908152602081905260408120805483929061206d908490612f39565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020015b60405180910390a35050565b6001600160a01b0383166120dd5760405162461bcd60e51b8152600401610c0f90612fd3565b6001600160a01b0382166121035760405162461bcd60e51b8152600401610c0f90613018565b5f81116121525760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726561746572207468616e20300000006044820152606401610c0f565b6001600160a01b038084165f9081526014602052604080822054928516825281205460ff92831692169082612192578161218c575f612194565b84612194565b855b600e54909150600160a81b900460ff16612207576121b28682611533565b806121c257506121c28582611533565b6122075760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610c0f565b600e54600160a01b900460ff1615612424576005546001600160a01b0387811691161480159061224557506005546001600160a01b03868116911614155b801561225857506122568682611533565b155b801561226b57506122698582611533565b155b1561242457821561234c576009548411156122d95760405162461bcd60e51b815260206004820152602860248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201526736b0bc103a3c371760c11b6064820152608401610c0f565b6008546001600160a01b0386165f908152602081905260409020546122fe9086612f39565b11156123475760405162461bcd60e51b815260206004820152601860248201527710d85b9b9bdd08195e18d95959081b585e081dd85b1b195d60421b6044820152606401610c0f565b612424565b81156123b6576009548411156123475760405162461bcd60e51b815260206004820152602960248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152681036b0bc103a3c371760b91b6064820152608401610c0f565b6008546001600160a01b0386165f908152602081905260409020546123db9086612f39565b11156124245760405162461bcd60e51b815260206004820152601860248201527710d85b9b9bdd08195e18d95959081b585e081dd85b1b195d60421b6044820152606401610c0f565b601254601354600b5480831080159183101590829061244c5750600e54600160b01b900460ff165b801561245b5750600a5460ff16155b8015612465575086155b801561247857506124768a86611533565b155b801561248b57506124898986611533565b155b156124b057600a805460ff191660011790556124a5611d92565b600a805460ff191690555b8080156124c65750600e54600160b01b900460ff165b80156124da5750600a54610100900460ff16155b80156124e4575086155b80156124f757506124f58a86611533565b155b801561250a57506125088986611533565b155b1561253257600a805461ff00191661010017905561252661284e565b600a805461ff00191690555b5f806001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169088160361257057600191506125f0565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316876001600160a01b0316146125b1575060016125f0565b60405162461bcd60e51b8152602060048201526014602482015273496e76616c69642070616972206164647265737360601b6044820152606401610c0f565b6125fa8c88611533565b8061260a575061260a8b88611533565b1561261557505f9050805b5f8215612725578815612693576001600160a01b038c165f90815260156020908152604091829020825180840190935280548352600101549082018190521561268d57606481602001518d61266a9190612f5f565b612674919061305b565b91508160125f8282546126879190612f39565b90915550505b50612707565b8915612707576001600160a01b038d165f908152601560209081526040918290208251808401909352805480845260019091015491830191909152156127055780516064906126e2908e612f5f565b6126ec919061305b565b91508160125f8282546126ff9190612f39565b90915550505b505b8015612718576127188d3083611e87565b612722818c612f4c565b9a505b81156128345788156127a2576001600160a01b038c165f90815260156020908152604091829020825180840190935280548352600101549082018190521561279c57606481602001518d6127799190612f5f565b612783919061305b565b91508160135f8282546127969190612f39565b90915550505b50612816565b8915612816576001600160a01b038d165f908152601560209081526040918290208251808401909352805480845260019091015491830191909152156128145780516064906127f1908e612f5f565b6127fb919061305b565b91508160135f82825461280e9190612f39565b90915550505b505b8015612827576128278d3083611e87565b612831818c612f4c565b9a505b61283f8d8d8d611e87565b50505050505050505050505050565b6013545f81900361285c5750565b600e54600160a01b900460ff161561289d57600c54600b5461287e9190612f5f565b81111561289857600c54600b546128959190612f5f565b90505b6128ac565b600b548111156128ac5750600b545b6128b581612b53565b8060135f8282546128c69190612f4c565b909155505050565b6001600160a01b0382166129245760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610c0f565b8060025f8282546129359190612f4c565b90915550506001600160a01b0382165f9081526020819052604081208054839290612961908490612f4c565b909155505060405181815261dead906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020016120ab565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106129d8576129d861307a565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a54573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a789190612fb8565b81600181518110612a8b57612a8b61307a565b60200260200101906001600160a01b031690816001600160a01b031681525050612ad6307f000000000000000000000000000000000000000000000000000000000000000084611c77565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac94790612b2a9085905f9086903090429060040161308e565b5f604051808303815f87803b158015612b41575f5ffd5b505af1158015611e7f573d5f5f3e3d5ffd5b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110612b8657612b8661307a565b6001600160a01b039283166020918202929092010152600654825191169082906001908110612bb757612bb761307a565b60200260200101906001600160a01b031690816001600160a01b031681525050612c02307f000000000000000000000000000000000000000000000000000000000000000084611c77565b600d54604051635c11d79560e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811692635c11d79592612b2a9287925f9288929190911690429060040161308e565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b0381168114611c74575f5ffd5b5f5f60408385031215612cb7575f5ffd5b8235612cc281612c92565b946020939093013593505050565b5f60208284031215612ce0575f5ffd5b8135612ceb81612c92565b9392505050565b5f5f60408385031215612d03575f5ffd5b823591506020830135612d1581612c92565b809150509250929050565b5f60208284031215612d30575f5ffd5b5035919050565b5f5f5f60608486031215612d49575f5ffd5b8335612d5481612c92565b92506020840135612d6481612c92565b929592945050506040919091013590565b5f5f60408385031215612d86575f5ffd5b8235612d9181612c92565b91506020830135612d1581612c92565b80358015158114612db0575f5ffd5b919050565b5f5f5f60608486031215612dc7575f5ffd5b8335612dd281612c92565b92506020840135612de281612c92565b9150612df060408501612da1565b90509250925092565b5f5f5f60608486031215612e0b575f5ffd5b8335612e1681612c92565b95602085013595506040909401359392505050565b5f5f60408385031215612e3c575f5ffd5b8235612e4781612c92565b9150612e5560208401612da1565b90509250929050565b5f5f5f5f60808587031215612e71575f5ffd5b8435612e7c81612c92565b93506020850135612e8c81612c92565b93969395505050506040820135916060013590565b600181811c90821680612eb557607f821691505b602082108103612ed357634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215612f1e575f5ffd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b80820180821115610bdf57610bdf612f25565b81810381811115610bdf57610bdf612f25565b8082028115828204841417610bdf57610bdf612f25565b60208082526022908201527f416464726573732063616e6e6f7420626520746865207a65726f206164647265604082015261737360f01b606082015260800190565b5f60208284031215612fc8575f5ffd5b8151612ceb81612c92565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b5f8261307557634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b818110156130de5783516001600160a01b03168352602093840193909201916001016130b7565b50506001600160a01b03959095166060840152505060800152939250505056fea2646970667358221220f0d03eea48fc84f24b4c464c0e602a8083b8e322e74de2b7e58fafa39937b79664736f6c634300081c00334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65728be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0416464726573732063616e6e6f7420626520746865207a65726f206164647265
Deployed Bytecode
0x60806040526004361061037f575f3560e01c8063751039fc116101d3578063c18bc195116100fd578063e086e5ec1161009d578063f46f935c1161006d578063f46f935c14610acd578063f887ea4014610aec578063f8b45b0514610b0b578063f954aafc14610b20575f5ffd5b8063e086e5ec14610a71578063e2f4560514610a85578063e71fa81514610a9a578063f2fde38b14610aae575f5ffd5b8063d257b34f116100d8578063d257b34f146109d0578063d64a8773146109ef578063dc66661114610a0e578063dd62ed3e14610a2d575f5ffd5b8063c18bc1951461097d578063cd5965831461099c578063cf46f24c146109bb575f5ffd5b806395d89b4111610173578063a48b2aaa11610143578063a48b2aaa146108c0578063a9059cbb146108df578063aabb9f32146108fe578063b62496f51461094f575f5ffd5b806395d89b411461084f5780639a808218146108635780639e6303f014610882578063a457c2d7146108a1575f5ffd5b80638a8c523c116101ae5780638a8c523c146107e05780638aeb820e146107f45780638da5cb5b146108135780638ea5220f14610830575f5ffd5b8063751039fc1461078e57806375f0a874146107a25780637861e8e9146107c1575f5ffd5b8063313ce567116102b45780634b46e301116102545780636ddd1713116102245780636ddd1713146106df57806370a08231146106ff578063715018a614610733578063740e0d5214610747575f5ffd5b80634b46e3011461066d5780635d098b381461068c578063636ecc62146106ab5780636a01f09c146106ca575f5ffd5b80633a80d94e1161028f5780633a80d94e146105f05780633b364eac1461060557806349bd5a5e1461061a5780634a62bb651461064d575f5ffd5b8063313ce5671461059757806339509351146105b257806339e2c84a146105d1575f5ffd5b806318a128e01161031f578063203e727e116102fa578063203e727e146104f357806323b872dd146105125780632b2a5890146105315780632b37271f14610578575f5ffd5b806318a128e0146104965780631b827671146104b55780631f53ac02146104d4575f5ffd5b80631423560d1161035a5780631423560d1461040357806315832b9e146104195780631694505e1461042d57806318160ddd14610478575f5ffd5b806306fdde031461038a578063095ea7b3146103b457806311704f52146103e3575f5ffd5b3661038657005b5f5ffd5b348015610395575f5ffd5b5061039e610b3f565b6040516103ab9190612c5d565b60405180910390f35b3480156103bf575f5ffd5b506103d36103ce366004612ca6565b610bcf565b60405190151581526020016103ab565b3480156103ee575f5ffd5b50600e546103d390600160a81b900460ff1681565b34801561040e575f5ffd5b50610417610be5565b005b348015610424575f5ffd5b50610417610c39565b348015610438575f5ffd5b506104607f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b0390911681526020016103ab565b348015610483575f5ffd5b506002545b6040519081526020016103ab565b3480156104a1575f5ffd5b506104176104b0366004612cd0565b610d6c565b3480156104c0575f5ffd5b506104176104cf366004612cf2565b610e7f565b3480156104df575f5ffd5b506104176104ee366004612cd0565b610ee7565b3480156104fe575f5ffd5b5061041761050d366004612d20565b610f33565b34801561051d575f5ffd5b506103d361052c366004612d37565b610fab565b34801561053c575f5ffd5b5061056361054b366004612cd0565b60156020525f90815260409020805460019091015482565b604080519283526020830191909152016103ab565b348015610583575f5ffd5b50610417610592366004612d75565b611053565b3480156105a2575f5ffd5b50604051601281526020016103ab565b3480156105bd575f5ffd5b506103d36105cc366004612ca6565b6110ae565b3480156105dc575f5ffd5b506104176105eb366004612cd0565b6110e9565b3480156105fb575f5ffd5b5061048860135481565b348015610610575f5ffd5b5061048860125481565b348015610625575f5ffd5b506104607f0000000000000000000000008191108d033ae181a5ad67f724d856adb426b72f81565b348015610658575f5ffd5b50600e546103d390600160a01b900460ff1681565b348015610678575f5ffd5b50610417610687366004612d20565b611135565b348015610697575f5ffd5b506104176106a6366004612cd0565b611164565b3480156106b6575f5ffd5b506104176106c5366004612db5565b6111b0565b3480156106d5575f5ffd5b50610488600c5481565b3480156106ea575f5ffd5b50600e546103d390600160b01b900460ff1681565b34801561070a575f5ffd5b50610488610719366004612cd0565b6001600160a01b03165f9081526020819052604090205490565b34801561073e575f5ffd5b5061041761126d565b348015610752575f5ffd5b506103d3610761366004612d75565b6001600160a01b039182165f90815260166020908152604080832093909416825291909152205460ff1690565b348015610799575f5ffd5b506104176112e0565b3480156107ad575f5ffd5b50600e54610460906001600160a01b031681565b3480156107cc575f5ffd5b506104176107db366004612df9565b611341565b3480156107eb575f5ffd5b50610417611469565b3480156107ff575f5ffd5b50600654610460906001600160a01b031681565b34801561081e575f5ffd5b506005546001600160a01b0316610460565b34801561083b575f5ffd5b50600d54610460906001600160a01b031681565b34801561085a575f5ffd5b5061039e611524565b34801561086e575f5ffd5b50600754610460906001600160a01b031681565b34801561088d575f5ffd5b506103d361089c366004612d75565b611533565b3480156108ac575f5ffd5b506103d36108bb366004612ca6565b611560565b3480156108cb575f5ffd5b506104176108da366004612e2b565b6115f8565b3480156108ea575f5ffd5b506103d36108f9366004612ca6565b611675565b348015610909575f5ffd5b50610563610918366004612cd0565b6001600160a01b03165f90815260156020908152604091829020825180840190935280548084526001909101549290910182905291565b34801561095a575f5ffd5b506103d3610969366004612cd0565b60146020525f908152604090205460ff1681565b348015610988575f5ffd5b50610417610997366004612d20565b611681565b3480156109a7575f5ffd5b50600f54610460906001600160a01b031681565b3480156109c6575f5ffd5b5061048860095481565b3480156109db575f5ffd5b506104176109ea366004612d20565b6116f2565b3480156109fa575f5ffd5b50610417610a09366004612e5e565b611721565b348015610a19575f5ffd5b50610417610a28366004612db5565b611894565b348015610a38575f5ffd5b50610488610a47366004612d75565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b348015610a7c575f5ffd5b50610417611948565b348015610a90575f5ffd5b50610488600b5481565b348015610aa5575f5ffd5b506104176119bc565b348015610ab9575f5ffd5b50610417610ac8366004612cd0565b611a0a565b348015610ad8575f5ffd5b50610417610ae7366004612cf2565b611af4565b348015610af7575f5ffd5b50601054610460906001600160a01b031681565b348015610b16575f5ffd5b5061048860085481565b348015610b2b575f5ffd5b50610417610b3a366004612cd0565b611b58565b606060038054610b4e90612ea1565b80601f0160208091040260200160405190810160405280929190818152602001828054610b7a90612ea1565b8015610bc55780601f10610b9c57610100808354040283529160200191610bc5565b820191905f5260205f20905b815481529060010190602001808311610ba857829003601f168201915b5050505050905090565b5f610bdb338484611c77565b5060015b92915050565b6005546001600160a01b03163314610c185760405162461bcd60e51b8152600401610c0f90612ed9565b60405180910390fd5b600a805460ff19166001179055610c2d611d92565b600a805460ff19169055565b6005546001600160a01b03163314610c635760405162461bcd60e51b8152600401610c0f90612ed9565b6040516370a0823160e01b815230600482018190525f916370a0823190602401602060405180830381865afa158015610c9e573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cc29190612f0e565b90505f601354601254610cd59190612f39565b9050808211610d415760405162461bcd60e51b815260206004820152603260248201527f43616e742052656d6f766520546f6b656e7320546861742041726520416c6c6f604482015271636174656420666f72207377617070696e6760701b6064820152608401610c0f565b5f610d4c8284612f4c565b600d54909150610d679030906001600160a01b031683611e87565b505050565b6005546001600160a01b03163314610d965760405162461bcd60e51b8152600401610c0f90612ed9565b7f0000000000000000000000008191108d033ae181a5ad67f724d856adb426b72f6001600160a01b0316816001600160a01b031603610e3d5760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b65725061697273000000000000006064820152608401610c0f565b610e47815f611622565b6040515f906001600160a01b038316907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab908390a350565b600f546001600160a01b03163314610ed95760405162461bcd60e51b815260206004820181905260248201527f4f6e6c792043616c6c61626c652042792062726964676520436f6e74726163746044820152606401610c0f565b610ee38183611fda565b5050565b6005546001600160a01b03163314610f115760405162461bcd60e51b8152600401610c0f90612ed9565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610f5d5760405162461bcd60e51b8152600401610c0f90612ed9565b610f6f81670de0b6b3a7640000612f5f565b60098190556040519081527fbd8a1f50bda6367cd3771d8453c2582c5f01613dd6d8ee271672f4943da806d3906020015b60405180910390a150565b5f610fb78484846120b7565b6001600160a01b0384165f9081526001602090815260408083203384529091529020548281101561103b5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610c0f565b6110488533858403611c77565b506001949350505050565b6005546001600160a01b0316331461107d5760405162461bcd60e51b8152600401610c0f90612ed9565b600680546001600160a01b039283166001600160a01b03199182161790915560078054939092169216919091179055565b335f8181526001602090815260408083206001600160a01b03871684529091528120549091610bdb9185906110e4908690612f39565b611c77565b6005546001600160a01b031633146111135760405162461bcd60e51b8152600401610c0f90612ed9565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b0316331461115f5760405162461bcd60e51b8152600401610c0f90612ed9565b600c55565b6005546001600160a01b0316331461118e5760405162461bcd60e51b8152600401610c0f90612ed9565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146111da5760405162461bcd60e51b8152600401610c0f90612ed9565b6001600160a01b0383166112005760405162461bcd60e51b8152600401610c0f90612f76565b6001600160a01b038381165f81815260166020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f4df1a15fc27298788e9aadcd88c1ec48da88df5f3dc994bce52ecc9f6c09806591015b60405180910390a3505050565b6005546001600160a01b031633146112975760405162461bcd60e51b8152600401610c0f90612ed9565b6005546040515f916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b0316331461130a5760405162461bcd60e51b8152600401610c0f90612ed9565b600e805460ff60a01b191690556040517fa4ffae85e880608d5d4365c2b682786545d136145537788e7e0940dff9f0b98c905f90a1565b6005546001600160a01b0316331461136b5760405162461bcd60e51b8152600401610c0f90612ed9565b60198211156113af5760405162461bcd60e51b815260206004820152601060248201526f084eaf240e8c2f040e8dede40d0d2ced60831b6044820152606401610c0f565b60198111156113f45760405162461bcd60e51b81526020600482015260116024820152700a6cad8d840e8c2f040e8dede40d0d2ced607b1b6044820152606401610c0f565b60408051808201825283815260208082018481526001600160a01b0387165f81815260158452859020935184559051600190930192909255825185815290810184905290917fcea7667c47d559885d74a4ffe52d66f1404cffd281e70ebbb50cfb1e210bb330910160405180910390a2505050565b6005546001600160a01b031633146114935760405162461bcd60e51b8152600401610c0f90612ed9565b600e54600160a81b900460ff16156114e55760405162461bcd60e51b815260206004820152601560248201527454726164696e6720616c7265616479206c6976652160581b6044820152606401610c0f565b600e805461ffff60a81b191661010160a81b1790556040517fa56feb2d31b9a7424db0be063fd450863979c9e2382cf5110f869bd1ad361bb7905f90a1565b606060048054610b4e90612ea1565b6001600160a01b039182165f90815260176020908152604080832093909416825291909152205460ff1690565b335f9081526001602090815260408083206001600160a01b0386168452909152812054828110156115e15760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610c0f565b6115ee3385858403611c77565b5060019392505050565b6005546001600160a01b031633146116225760405162461bcd60e51b8152600401610c0f90612ed9565b6001600160a01b0382165f81815260146020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b5f610bdb3384846120b7565b6005546001600160a01b031633146116ab5760405162461bcd60e51b8152600401610c0f90612ed9565b6116bd81670de0b6b3a7640000612f5f565b60088190556040519081527fefc9add9a9b7382de284ef5ad69d8ea863e2680492b21a81948c2d5f04a442bc90602001610fa0565b6005546001600160a01b0316331461171c5760405162461bcd60e51b8152600401610c0f90612ed9565b600b55565b6005546001600160a01b0316331461174b5760405162461bcd60e51b8152600401610c0f90612ed9565b5f7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117a8573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117cc9190612fb8565b6040516364e329cb60e11b81526001600160a01b0387811660048301528681166024830152919091169063c9c65396906044016020604051808303815f875af115801561181b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061183f9190612fb8565b905061184c816001611622565b611857818484611341565b6040516001906001600160a01b038316907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab905f90a35050505050565b6005546001600160a01b031633146118be5760405162461bcd60e51b8152600401610c0f90612ed9565b6001600160a01b0383166118e45760405162461bcd60e51b8152600401610c0f90612f76565b6001600160a01b038381165f81815260176020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f032b791609c5d8ec85cea32ab6a6eb0ac9c4cd4f0137f950cf030f0c640bd8f69101611260565b6005546001600160a01b031633146119725760405162461bcd60e51b8152600401610c0f90612ed9565b6040515f90339047908381818185875af1925050503d805f81146119b1576040519150601f19603f3d011682016040523d82523d5f602084013e6119b6565b606091505b50505050565b6005546001600160a01b031633146119e65760405162461bcd60e51b8152600401610c0f90612ed9565b600a805461ff0019166101001790556119fd61284e565b600a805461ff0019169055565b6005546001600160a01b03163314611a345760405162461bcd60e51b8152600401610c0f90612ed9565b6001600160a01b038116611a995760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610c0f565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b600f546001600160a01b03163314611b4e5760405162461bcd60e51b815260206004820181905260248201527f4f6e6c792043616c6c61626c652042792062726964676520436f6e74726163746044820152606401610c0f565b610ee381836128ce565b6005546001600160a01b03163314611b825760405162461bcd60e51b8152600401610c0f90612ed9565b611b8e818260016111b0565b601054611ba6906001600160a01b03168260016111b0565b611bc3611bbb6005546001600160a01b031690565b8260016111b0565b600d54611bdb906001600160a01b03168260016111b0565b600e54611bf3906001600160a01b03168260016111b0565b611bff308260016111b0565b611c0d61dead8260016111b0565b611c2a611c226005546001600160a01b031690565b826001611894565b600d54611c42906001600160a01b0316826001611894565b600e54611c5a906001600160a01b0316826001611894565b611c6630826001611894565b611c7461dead826001611894565b50565b6001600160a01b038316611cd95760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610c0f565b6001600160a01b038216611d3a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610c0f565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259101611260565b601254305f9081526020819052604090205481158015611db0575080155b15611db9575050565b600e54600160a01b900460ff1615611dfa57600c54600b54611ddb9190612f5f565b821115611df557600c54600b54611df29190612f5f565b91505b611e0a565b600b54821115611e0a57600b5491505b5f611e14836129a5565b8260125f828254611e259190612f4c565b90915550504715610d6757600e546040516001600160a01b039091169047905f81818185875af1925050503d805f8114611e7a576040519150601f19603f3d011682016040523d82523d5f602084013e611e7f565b606091505b505050505050565b6001600160a01b038316611ead5760405162461bcd60e51b8152600401610c0f90612fd3565b6001600160a01b038216611ed35760405162461bcd60e51b8152600401610c0f90613018565b6001600160a01b0383165f9081526020819052604090205481811015611f4a5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610c0f565b6001600160a01b038085165f90815260208190526040808220858503905591851681529081208054849290611f80908490612f39565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611fcc91815260200190565b60405180910390a350505050565b6001600160a01b0382166120305760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610c0f565b8060025f8282546120419190612f39565b90915550506001600160a01b0382165f908152602081905260408120805483929061206d908490612f39565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020015b60405180910390a35050565b6001600160a01b0383166120dd5760405162461bcd60e51b8152600401610c0f90612fd3565b6001600160a01b0382166121035760405162461bcd60e51b8152600401610c0f90613018565b5f81116121525760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726561746572207468616e20300000006044820152606401610c0f565b6001600160a01b038084165f9081526014602052604080822054928516825281205460ff92831692169082612192578161218c575f612194565b84612194565b855b600e54909150600160a81b900460ff16612207576121b28682611533565b806121c257506121c28582611533565b6122075760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610c0f565b600e54600160a01b900460ff1615612424576005546001600160a01b0387811691161480159061224557506005546001600160a01b03868116911614155b801561225857506122568682611533565b155b801561226b57506122698582611533565b155b1561242457821561234c576009548411156122d95760405162461bcd60e51b815260206004820152602860248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201526736b0bc103a3c371760c11b6064820152608401610c0f565b6008546001600160a01b0386165f908152602081905260409020546122fe9086612f39565b11156123475760405162461bcd60e51b815260206004820152601860248201527710d85b9b9bdd08195e18d95959081b585e081dd85b1b195d60421b6044820152606401610c0f565b612424565b81156123b6576009548411156123475760405162461bcd60e51b815260206004820152602960248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152681036b0bc103a3c371760b91b6064820152608401610c0f565b6008546001600160a01b0386165f908152602081905260409020546123db9086612f39565b11156124245760405162461bcd60e51b815260206004820152601860248201527710d85b9b9bdd08195e18d95959081b585e081dd85b1b195d60421b6044820152606401610c0f565b601254601354600b5480831080159183101590829061244c5750600e54600160b01b900460ff165b801561245b5750600a5460ff16155b8015612465575086155b801561247857506124768a86611533565b155b801561248b57506124898986611533565b155b156124b057600a805460ff191660011790556124a5611d92565b600a805460ff191690555b8080156124c65750600e54600160b01b900460ff165b80156124da5750600a54610100900460ff16155b80156124e4575086155b80156124f757506124f58a86611533565b155b801561250a57506125088986611533565b155b1561253257600a805461ff00191661010017905561252661284e565b600a805461ff00191690555b5f806001600160a01b037f0000000000000000000000008191108d033ae181a5ad67f724d856adb426b72f81169088160361257057600191506125f0565b7f0000000000000000000000008191108d033ae181a5ad67f724d856adb426b72f6001600160a01b0316876001600160a01b0316146125b1575060016125f0565b60405162461bcd60e51b8152602060048201526014602482015273496e76616c69642070616972206164647265737360601b6044820152606401610c0f565b6125fa8c88611533565b8061260a575061260a8b88611533565b1561261557505f9050805b5f8215612725578815612693576001600160a01b038c165f90815260156020908152604091829020825180840190935280548352600101549082018190521561268d57606481602001518d61266a9190612f5f565b612674919061305b565b91508160125f8282546126879190612f39565b90915550505b50612707565b8915612707576001600160a01b038d165f908152601560209081526040918290208251808401909352805480845260019091015491830191909152156127055780516064906126e2908e612f5f565b6126ec919061305b565b91508160125f8282546126ff9190612f39565b90915550505b505b8015612718576127188d3083611e87565b612722818c612f4c565b9a505b81156128345788156127a2576001600160a01b038c165f90815260156020908152604091829020825180840190935280548352600101549082018190521561279c57606481602001518d6127799190612f5f565b612783919061305b565b91508160135f8282546127969190612f39565b90915550505b50612816565b8915612816576001600160a01b038d165f908152601560209081526040918290208251808401909352805480845260019091015491830191909152156128145780516064906127f1908e612f5f565b6127fb919061305b565b91508160135f82825461280e9190612f39565b90915550505b505b8015612827576128278d3083611e87565b612831818c612f4c565b9a505b61283f8d8d8d611e87565b50505050505050505050505050565b6013545f81900361285c5750565b600e54600160a01b900460ff161561289d57600c54600b5461287e9190612f5f565b81111561289857600c54600b546128959190612f5f565b90505b6128ac565b600b548111156128ac5750600b545b6128b581612b53565b8060135f8282546128c69190612f4c565b909155505050565b6001600160a01b0382166129245760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610c0f565b8060025f8282546129359190612f4c565b90915550506001600160a01b0382165f9081526020819052604081208054839290612961908490612f4c565b909155505060405181815261dead906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020016120ab565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106129d8576129d861307a565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a54573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a789190612fb8565b81600181518110612a8b57612a8b61307a565b60200260200101906001600160a01b031690816001600160a01b031681525050612ad6307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611c77565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac94790612b2a9085905f9086903090429060040161308e565b5f604051808303815f87803b158015612b41575f5ffd5b505af1158015611e7f573d5f5f3e3d5ffd5b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110612b8657612b8661307a565b6001600160a01b039283166020918202929092010152600654825191169082906001908110612bb757612bb761307a565b60200260200101906001600160a01b031690816001600160a01b031681525050612c02307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611c77565b600d54604051635c11d79560e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d811692635c11d79592612b2a9287925f9288929190911690429060040161308e565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b0381168114611c74575f5ffd5b5f5f60408385031215612cb7575f5ffd5b8235612cc281612c92565b946020939093013593505050565b5f60208284031215612ce0575f5ffd5b8135612ceb81612c92565b9392505050565b5f5f60408385031215612d03575f5ffd5b823591506020830135612d1581612c92565b809150509250929050565b5f60208284031215612d30575f5ffd5b5035919050565b5f5f5f60608486031215612d49575f5ffd5b8335612d5481612c92565b92506020840135612d6481612c92565b929592945050506040919091013590565b5f5f60408385031215612d86575f5ffd5b8235612d9181612c92565b91506020830135612d1581612c92565b80358015158114612db0575f5ffd5b919050565b5f5f5f60608486031215612dc7575f5ffd5b8335612dd281612c92565b92506020840135612de281612c92565b9150612df060408501612da1565b90509250925092565b5f5f5f60608486031215612e0b575f5ffd5b8335612e1681612c92565b95602085013595506040909401359392505050565b5f5f60408385031215612e3c575f5ffd5b8235612e4781612c92565b9150612e5560208401612da1565b90509250929050565b5f5f5f5f60808587031215612e71575f5ffd5b8435612e7c81612c92565b93506020850135612e8c81612c92565b93969395505050506040820135916060013590565b600181811c90821680612eb557607f821691505b602082108103612ed357634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215612f1e575f5ffd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b80820180821115610bdf57610bdf612f25565b81810381811115610bdf57610bdf612f25565b8082028115828204841417610bdf57610bdf612f25565b60208082526022908201527f416464726573732063616e6e6f7420626520746865207a65726f206164647265604082015261737360f01b606082015260800190565b5f60208284031215612fc8575f5ffd5b8151612ceb81612c92565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b5f8261307557634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b818110156130de5783516001600160a01b03168352602093840193909201916001016130b7565b50506001600160a01b03959095166060840152505060800152939250505056fea2646970667358221220f0d03eea48fc84f24b4c464c0e602a8083b8e322e74de2b7e58fafa39937b79664736f6c634300081c0033
Deployed Bytecode Sourcemap
8000:16963:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1882:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2862:194;;;;;;;;;;-1:-1:-1;2862:194:0;;;;;:::i;:::-;;:::i;:::-;;;1110:14:1;;1103:22;1085:41;;1073:2;1058:18;2862:194:0;945:187:1;8628:31:0;;;;;;;;;;-1:-1:-1;8628:31:0;;;;-1:-1:-1;;;8628:31:0;;;;;;24054:209;;;;;;;;;;;;;:::i;:::-;;24310:421;;;;;;;;;;;;;:::i;8041:48::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1324:32:1;;;1306:51;;1294:2;1279:18;8041:48:0;1137:226:1;2203:108:0;;;;;;;;;;-1:-1:-1;2291:12:0;;2203:108;;;1514:25:1;;;1502:2;1487:18;2203:108:0;1368:177:1;13586:292:0;;;;;;;;;;-1:-1:-1;13586:292:0;;;;;:::i;:::-;;:::i;12436:201::-;;;;;;;;;;-1:-1:-1;12436:201:0;;;;;:::i;:::-;;:::i;12329:96::-;;;;;;;;;;-1:-1:-1;12329:96:0;;;;;:::i;:::-;;:::i;13112:162::-;;;;;;;;;;-1:-1:-1;13112:162:0;;;;;:::i;:::-;;:::i;3064:529::-;;;;;;;;;;-1:-1:-1;3064:529:0;;;;;:::i;:::-;;:::i;9081:48::-;;;;;;;;;;-1:-1:-1;9081:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;3092:25:1;;;3148:2;3133:18;;3126:34;;;;3065:18;9081:48:0;2918:248:1;12045:150:0;;;;;;;;;;-1:-1:-1;12045:150:0;;;;;:::i;:::-;;:::i;2102:93::-;;;;;;;;;;-1:-1:-1;2102:93:0;;2185:2;3719:36:1;;3707:2;3692:18;2102:93:0;3577:184:1;3601:290:0;;;;;;;;;;-1:-1:-1;3601:290:0;;;;;:::i;:::-;;:::i;12848:107::-;;;;;;;;;;-1:-1:-1;12848:107:0;;;;;:::i;:::-;;:::i;8973:35::-;;;;;;;;;;;;;;;;8933:33;;;;;;;;;;;;;;;;8096:38;;;;;;;;;;;;;;;8588:33;;;;;;;;;;-1:-1:-1;8588:33:0;;;;-1:-1:-1;;;8588:33:0;;;;;;11940:92;;;;;;;;;;-1:-1:-1;11940:92:0;;;;;:::i;:::-;;:::i;12208:108::-;;;;;;;;;;-1:-1:-1;12208:108:0;;;;;:::i;:::-;;:::i;15942:303::-;;;;;;;;;;-1:-1:-1;15942:303:0;;;;;:::i;:::-;;:::i;8393:24::-;;;;;;;;;;;;;;;;8666:31;;;;;;;;;;-1:-1:-1;8666:31:0;;;;-1:-1:-1;;;8666:31:0;;;;;;2319:143;;;;;;;;;;-1:-1:-1;2319:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;2436:18:0;2409:7;2436:18;;;;;;;;;;;;2319:143;6620:150;;;;;;;;;;;;;:::i;16257:166::-;;;;;;;;;;-1:-1:-1;16257:166:0;;;;;:::i;:::-;-1:-1:-1;;;;;16370:39:0;;;16346:4;16370:39;;;:31;:39;;;;;;;;:45;;;;;;;;;;;;;;;16257:166;12989:115;;;;;;;;;;;;;:::i;8504:75::-;;;;;;;;;;-1:-1:-1;8504:75:0;;;;-1:-1:-1;;;;;8504:75:0;;;15415:308;;;;;;;;;;-1:-1:-1;15415:308:0;;;;;:::i;:::-;;:::i;11732:199::-;;;;;;;;;;;;;:::i;8141:37::-;;;;;;;;;;-1:-1:-1;8141:37:0;;;;-1:-1:-1;;;;;8141:37:0;;;6406:79;;;;;;;;;;-1:-1:-1;6471:6:0;;-1:-1:-1;;;;;6471:6:0;6406:79;;8426:69;;;;;;;;;;-1:-1:-1;8426:69:0;;;;-1:-1:-1;;;;;8426:69:0;;;1990:104;;;;;;;;;;;;;:::i;8185:24::-;;;;;;;;;;-1:-1:-1;8185:24:0;;;;-1:-1:-1;;;;;8185:24:0;;;16715:144;;;;;;;;;;-1:-1:-1;16715:144:0;;;;;:::i;:::-;;:::i;3899:475::-;;;;;;;;;;-1:-1:-1;3899:475:0;;;;;:::i;:::-;;:::i;14280:182::-;;;;;;;;;;-1:-1:-1;14280:182:0;;;;;:::i;:::-;;:::i;2470:200::-;;;;;;;;;;-1:-1:-1;2470:200:0;;;;;:::i;:::-;;:::i;15735:199::-;;;;;;;;;;-1:-1:-1;15735:199:0;;;;;:::i;:::-;-1:-1:-1;;;;;15861:18:0;15793:14;15861:18;;;:12;:18;;;;;;;;;15837:42;;;;;;;;;;;;;;;;;;;;;;;;;;15735:199;9017:57;;;;;;;;;;-1:-1:-1;9017:57:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;13282:165;;;;;;;;;;-1:-1:-1;13282:165:0;;;;;:::i;:::-;;:::i;8704:74::-;;;;;;;;;;-1:-1:-1;8704:74:0;;;;-1:-1:-1;;;;;8704:74:0;;;8255:27;;;;;;;;;;;;;;;;13455:121;;;;;;;;;;-1:-1:-1;13455:121:0;;;;;:::i;:::-;;:::i;13886:385::-;;;;;;;;;;-1:-1:-1;13886:385:0;;;;;:::i;:::-;;:::i;16433:271::-;;;;;;;;;;-1:-1:-1;16433:271:0;;;;;:::i;:::-;;:::i;2678:176::-;;;;;;;;;;-1:-1:-1;2678:176:0;;;;;:::i;:::-;-1:-1:-1;;;;;2819:18:0;;;2792:7;2819:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;2678:176;24781:179;;;;;;;;;;;;;:::i;8353:33::-;;;;;;;;;;;;;;;;23829:217;;;;;;;;;;;;;:::i;6778:281::-;;;;;;;;;;-1:-1:-1;6778:281:0;;;;;:::i;:::-;;:::i;12646:189::-;;;;;;;;;;-1:-1:-1;12646:189:0;;;;;:::i;:::-;;:::i;8787:66::-;;;;;;;;;;-1:-1:-1;8787:66:0;;;;-1:-1:-1;;;;;8787:66:0;;;8224:24;;;;;;;;;;;;;;;;14664:743;;;;;;;;;;-1:-1:-1;14664:743:0;;;;;:::i;:::-;;:::i;1882:100::-;1936:13;1969:5;1962:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1882:100;:::o;2862:194::-;2970:4;2987:39;176:10;3010:7;3019:6;2987:8;:39::i;:::-;-1:-1:-1;3044:4:0;2862:194;;;;;:::o;24054:209::-;6533:6;;-1:-1:-1;;;;;6533:6:0;176:10;6533:22;6525:67;;;;-1:-1:-1;;;6525:67:0;;;;;;;:::i;:::-;;;;;;;;;24173:11:::1;:18:::0;;-1:-1:-1;;24173:18:0::1;24187:4;24173:18;::::0;;24202:16:::1;:14;:16::i;:::-;24229:11;:19:::0;;-1:-1:-1;;24229:19:0::1;::::0;;24054:209::o;24310:421::-;6533:6;;-1:-1:-1;;;;;6533:6:0;176:10;6533:22;6525:67;;;;-1:-1:-1;;;6525:67:0;;;;;;;:::i;:::-;24394:29:::1;::::0;-1:-1:-1;;;24394:29:0;;:4:::1;:29;::::0;::::1;1306:51:1::0;;;24376:15:0::1;::::0;24394:14:::1;::::0;1279:18:1;;24394:29:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24376:47;;24438:17;24479:20;;24458:18;;:41;;;;:::i;:::-;24438:61;;24532:9;24522:7;:19;24514:82;;;::::0;-1:-1:-1;;;24514:82:0;;8405:2:1;24514:82:0::1;::::0;::::1;8387:21:1::0;8444:2;8424:18;;;8417:30;8483:34;8463:18;;;8456:62;-1:-1:-1;;;8534:18:1;;;8527:48;8592:19;;24514:82:0::1;8203:414:1::0;24514:82:0::1;24611:20;24634:19;24644:9:::0;24634:7;:19:::1;:::i;:::-;24699:9;::::0;24611:42;;-1:-1:-1;24668:55:0::1;::::0;24692:4:::1;::::0;-1:-1:-1;;;;;24699:9:0::1;24611:42:::0;24668:15:::1;:55::i;:::-;24361:370;;;24310:421::o:0;13586:292::-;6533:6;;-1:-1:-1;;;;;6533:6:0;176:10;6533:22;6525:67;;;;-1:-1:-1;;;6525:67:0;;;;;;;:::i;:::-;13687:13:::1;-1:-1:-1::0;;;;;13679:21:0::1;:4;-1:-1:-1::0;;;;;13679:21:0::1;::::0;13671:91:::1;;;::::0;-1:-1:-1;;;13671:91:0;;8957:2:1;13671:91:0::1;::::0;::::1;8939:21:1::0;8996:2;8976:18;;;8969:30;9035:34;9015:18;;;9008:62;9106:27;9086:18;;;9079:55;9151:19;;13671:91:0::1;8755:421:1::0;13671:91:0::1;13773:41;13802:4;13808:5;13773:28;:41::i;:::-;13830:40;::::0;13864:5:::1;::::0;-1:-1:-1;;;;;13830:40:0;::::1;::::0;::::1;::::0;13864:5;;13830:40:::1;13586:292:::0;:::o;12436:201::-;12532:14;;-1:-1:-1;;;;;12532:14:0;12518:10;:28;12510:73;;;;-1:-1:-1;;;12510:73:0;;9383:2:1;12510:73:0;;;9365:21:1;;;9402:18;;;9395:30;9461:34;9441:18;;;9434:62;9513:18;;12510:73:0;9181:356:1;12510:73:0;12596:33;12612:8;12622:6;12596:15;:33::i;:::-;12436:201;;:::o;12329:96::-;6533:6;;-1:-1:-1;;;;;6533:6:0;176:10;6533:22;6525:67;;;;-1:-1:-1;;;6525:67:0;;;;;;;:::i;:::-;12398:9:::1;:19:::0;;-1:-1:-1;;;;;;12398:19:0::1;-1:-1:-1::0;;;;;12398:19:0;;;::::1;::::0;;;::::1;::::0;;12329:96::o;13112:162::-;6533:6;;-1:-1:-1;;;;;6533:6:0;176:10;6533:22;6525:67;;;;-1:-1:-1;;;6525:67:0;;;;;;;:::i;:::-;13201:19:::1;:6:::0;13211:8:::1;13201:19;:::i;:::-;13186:12;:34:::0;;;13236:30:::1;::::0;1514:25:1;;;13236:30:0::1;::::0;1502:2:1;1487:18;13236:30:0::1;;;;;;;;13112:162:::0;:::o;3064:529::-;3204:4;3221:36;3231:6;3239:9;3250:6;3221:9;:36::i;:::-;-1:-1:-1;;;;;3297:19:0;;3270:24;3297:19;;;:11;:19;;;;;;;;176:10;3297:33;;;;;;;;3363:26;;;;3341:116;;;;-1:-1:-1;;;3341:116:0;;9917:2:1;3341:116:0;;;9899:21:1;9956:2;9936:18;;;9929:30;9995:34;9975:18;;;9968:62;-1:-1:-1;;;10046:18:1;;;10039:38;10094:19;;3341:116:0;9715:404:1;3341:116:0;3493:57;3502:6;176:10;3543:6;3524:16;:25;3493:8;:57::i;:::-;-1:-1:-1;3581:4:0;;3064:529;-1:-1:-1;;;;3064:529:0:o;12045:150::-;6533:6;;-1:-1:-1;;;;;6533:6:0;176:10;6533:22;6525:67;;;;-1:-1:-1;;;6525:67:0;;;;;;;:::i;:::-;12134:9:::1;:18:::0;;-1:-1:-1;;;;;12134:18:0;;::::1;-1:-1:-1::0;;;;;;12134:18:0;;::::1;;::::0;;;12163:10:::1;:24:::0;;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;12045:150::o;3601:290::-;176:10;3714:4;3803:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;3803:34:0;;;;;;;;;;3714:4;;3731:130;;3781:7;;3803:47;;3840:10;;3803:47;:::i;:::-;3731:8;:130::i;12848:107::-;6533:6;;-1:-1:-1;;;;;6533:6:0;176:10;6533:22;6525:67;;;;-1:-1:-1;;;6525:67:0;;;;;;;:::i;:::-;12920:14:::1;:27:::0;;-1:-1:-1;;;;;;12920:27:0::1;-1:-1:-1::0;;;;;12920:27:0;;;::::1;::::0;;;::::1;::::0;;12848:107::o;11940:92::-;6533:6;;-1:-1:-1;;;;;6533:6:0;176:10;6533:22;6525:67;;;;-1:-1:-1;;;6525:67:0;;;;;;;:::i;:::-;12006:9:::1;:18:::0;11940:92::o;12208:108::-;6533:6;;-1:-1:-1;;;;;6533:6:0;176:10;6533:22;6525:67;;;;-1:-1:-1;;;6525:67:0;;;;;;;:::i;:::-;12283:15:::1;:25:::0;;-1:-1:-1;;;;;;12283:25:0::1;-1:-1:-1::0;;;;;12283:25:0;;;::::1;::::0;;;::::1;::::0;;12208:108::o;15942:303::-;6533:6;;-1:-1:-1;;;;;6533:6:0;176:10;6533:22;6525:67;;;;-1:-1:-1;;;6525:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16054:20:0;::::1;16046:67;;;;-1:-1:-1::0;;;16046:67:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;16124:39:0;;::::1;;::::0;;;:31:::1;:39;::::0;;;;;;;:45;;::::1;::::0;;;;;;;;;;:52;;-1:-1:-1;;16124:52:0::1;::::0;::::1;;::::0;;::::1;::::0;;;16192:45;;1085:41:1;;;16192:45:0::1;::::0;1058:18:1;16192:45:0::1;;;;;;;;15942:303:::0;;;:::o;6620:150::-;6533:6;;-1:-1:-1;;;;;6533:6:0;176:10;6533:22;6525:67;;;;-1:-1:-1;;;6525:67:0;;;;;;;:::i;:::-;6713:6:::1;::::0;6692:40:::1;::::0;6729:1:::1;::::0;-1:-1:-1;;;;;6713:6:0::1;::::0;6692:40:::1;::::0;6729:1;;6692:40:::1;6743:6;:19:::0;;-1:-1:-1;;;;;;6743:19:0::1;::::0;;6620:150::o;12989:115::-;6533:6;;-1:-1:-1;;;;;6533:6:0;176:10;6533:22;6525:67;;;;-1:-1:-1;;;6525:67:0;;;;;;;:::i;:::-;13043:14:::1;:22:::0;;-1:-1:-1;;;;13043:22:0::1;::::0;;13081:15:::1;::::0;::::1;::::0;13060:5:::1;::::0;13081:15:::1;12989:115::o:0;15415:308::-;6533:6;;-1:-1:-1;;;;;6533:6:0;176:10;6533:22;6525:67;;;;-1:-1:-1;;;6525:67:0;;;;;;;:::i;:::-;15529:2:::1;15519:6;:12;;15511:41;;;::::0;-1:-1:-1;;;15511:41:0;;10729:2:1;15511:41:0::1;::::0;::::1;10711:21:1::0;10768:2;10748:18;;;10741:30;-1:-1:-1;;;10787:18:1;;;10780:46;10843:18;;15511:41:0::1;10527:340:1::0;15511:41:0::1;15583:2;15572:7;:13;;15564:43;;;::::0;-1:-1:-1;;;15564:43:0;;11074:2:1;15564:43:0::1;::::0;::::1;11056:21:1::0;11113:2;11093:18;;;11086:30;-1:-1:-1;;;11132:18:1;;;11125:47;11189:18;;15564:43:0::1;10872:341:1::0;15564:43:0::1;15640:25;::::0;;;;::::1;::::0;;;;;::::1;::::0;;::::1;::::0;;;-1:-1:-1;;;;;15619:18:0;::::1;-1:-1:-1::0;15619:18:0;;;:12:::1;:18:::0;;;;;:46;;;;;;::::1;::::0;;::::1;::::0;;;;15681:34;;3092:25:1;;;3133:18;;;3126:34;;;15619:18:0;;15681:34:::1;::::0;3065:18:1;15681:34:0::1;;;;;;;15415:308:::0;;;:::o;11732:199::-;6533:6;;-1:-1:-1;;;;;6533:6:0;176:10;6533:22;6525:67;;;;-1:-1:-1;;;6525:67:0;;;;;;;:::i;:::-;11796:11:::1;::::0;-1:-1:-1;;;11796:11:0;::::1;;;11795:12;11787:46;;;::::0;-1:-1:-1;;;11787:46:0;;11420:2:1;11787:46:0::1;::::0;::::1;11402:21:1::0;11459:2;11439:18;;;11432:30;-1:-1:-1;;;11478:18:1;;;11471:51;11539:18;;11787:46:0::1;11218:345:1::0;11787:46:0::1;11844:11;:18:::0;;-1:-1:-1;;;;11873:18:0;-1:-1:-1;;;11873:18:0;;;11907:16:::1;::::0;::::1;::::0;-1:-1:-1;;11907:16:0::1;11732:199::o:0;1990:104::-;2046:13;2079:7;2072:14;;;;;:::i;16715:144::-;-1:-1:-1;;;;;16818:27:0;;;16794:4;16818:27;;;:19;:27;;;;;;;;:33;;;;;;;;;;;;;;;16715:144::o;3899:475::-;176:10;4017:4;4061:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;4061:34:0;;;;;;;;;;4128:35;;;;4106:122;;;;-1:-1:-1;;;4106:122:0;;11770:2:1;4106:122:0;;;11752:21:1;11809:2;11789:18;;;11782:30;11848:34;11828:18;;;11821:62;-1:-1:-1;;;11899:18:1;;;11892:35;11944:19;;4106:122:0;11568:401:1;4106:122:0;4264:67;176:10;4287:7;4315:15;4296:16;:34;4264:8;:67::i;:::-;-1:-1:-1;4362:4:0;;3899:475;-1:-1:-1;;;3899:475:0:o;14280:182::-;6533:6;;-1:-1:-1;;;;;6533:6:0;176:10;6533:22;6525:67;;;;-1:-1:-1;;;6525:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14359:31:0;::::1;;::::0;;;:25:::1;:31;::::0;;;;;:39;;-1:-1:-1;;14359:39:0::1;::::0;::::1;;::::0;;::::1;::::0;;;14414:40;;14359:39;;:31;14414:40:::1;::::0;::::1;14280:182:::0;;:::o;2470:200::-;2581:4;2598:42;176:10;2622:9;2633:6;2598:9;:42::i;13282:165::-;6533:6;;-1:-1:-1;;;;;6533:6:0;176:10;6533:22;6525:67;;;;-1:-1:-1;;;6525:67:0;;;;;;;:::i;:::-;13371:19:::1;:6:::0;13381:8:::1;13371:19;:::i;:::-;13359:9;:31:::0;;;13406:33:::1;::::0;1514:25:1;;;13406:33:0::1;::::0;1502:2:1;1487:18;13406:33:0::1;1368:177:1::0;13455:121:0;6533:6;;-1:-1:-1;;;;;6533:6:0;176:10;6533:22;6525:67;;;;-1:-1:-1;;;6525:67:0;;;;;;;:::i;:::-;13538:18:::1;:30:::0;13455:121::o;13886:385::-;6533:6;;-1:-1:-1;;;;;6533:6:0;176:10;6533:22;6525:67;;;;-1:-1:-1;;;6525:67:0;;;;;;;:::i;:::-;14028:12:::1;14060:15;-1:-1:-1::0;;;;;14060:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14043:69;::::0;-1:-1:-1;;;14043:69:0;;-1:-1:-1;;;;;12422:32:1;;;14043:69:0::1;::::0;::::1;12404:51:1::0;12491:32;;;12471:18;;;12464:60;14043:54:0;;;::::1;::::0;::::1;::::0;12377:18:1;;14043:69:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14028:84;;14123:40;14152:4;14158;14123:28;:40::i;:::-;14174:34;14186:4;14192:6;14200:7;14174:11;:34::i;:::-;14224:39;::::0;14258:4:::1;::::0;-1:-1:-1;;;;;14224:39:0;::::1;::::0;::::1;::::0;;;::::1;14018:253;13886:385:::0;;;;:::o;16433:271::-;6533:6;;-1:-1:-1;;;;;6533:6:0;176:10;6533:22;6525:67;;;;-1:-1:-1;;;6525:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16535:20:0;::::1;16527:67;;;;-1:-1:-1::0;;;16527:67:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;16605:27:0;;::::1;;::::0;;;:19:::1;:27;::::0;;;;;;;:33;;::::1;::::0;;;;;;;;;;:40;;-1:-1:-1;;16605:40:0::1;::::0;::::1;;::::0;;::::1;::::0;;;16661:35;;1085:41:1;;;16661:35:0::1;::::0;1058:18:1;16661:35:0::1;945:187:1::0;24781:179:0;6533:6;;-1:-1:-1;;;;;6533:6:0;176:10;6533:22;6525:67;;;;-1:-1:-1;;;6525:67:0;;;;;;;:::i;:::-;24870:82:::1;::::0;24833:12:::1;::::0;24878:10:::1;::::0;24902:21:::1;::::0;24833:12;24870:82;24833:12;24870:82;24902:21;24878:10;24870:82:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;24781:179:0:o;23829:217::-;6533:6;;-1:-1:-1;;;;;6533:6:0;176:10;6533:22;6525:67;;;;-1:-1:-1;;;6525:67:0;;;;;;;:::i;:::-;23952:11:::1;:18:::0;;-1:-1:-1;;23952:18:0::1;;;::::0;;23981::::1;:16;:18::i;:::-;24010:11;:19:::0;;-1:-1:-1;;24010:19:0::1;::::0;;23829:217::o;6778:281::-;6533:6;;-1:-1:-1;;;;;6533:6:0;176:10;6533:22;6525:67;;;;-1:-1:-1;;;6525:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6881:22:0;::::1;6859:110;;;::::0;-1:-1:-1;;;6859:110:0;;12947:2:1;6859:110:0::1;::::0;::::1;12929:21:1::0;12986:2;12966:18;;;12959:30;13025:34;13005:18;;;12998:62;-1:-1:-1;;;13076:18:1;;;13069:36;13122:19;;6859:110:0::1;12745:402:1::0;6859:110:0::1;7006:6;::::0;6985:38:::1;::::0;-1:-1:-1;;;;;6985:38:0;;::::1;::::0;7006:6:::1;::::0;6985:38:::1;::::0;7006:6:::1;::::0;6985:38:::1;7034:6;:17:::0;;-1:-1:-1;;;;;;7034:17:0::1;-1:-1:-1::0;;;;;7034:17:0;;;::::1;::::0;;;::::1;::::0;;6778:281::o;12646:189::-;12738:14;;-1:-1:-1;;;;;12738:14:0;12724:10;:28;12716:73;;;;-1:-1:-1;;;12716:73:0;;9383:2:1;12716:73:0;;;9365:21:1;;;9402:18;;;9395:30;9461:34;9441:18;;;9434:62;9513:18;;12716:73:0;9181:356:1;12716:73:0;12802:25;12814:4;12820:6;12802:11;:25::i;14664:743::-;6533:6;;-1:-1:-1;;;;;6533:6:0;176:10;6533:22;6525:67;;;;-1:-1:-1;;;6525:67:0;;;;;;;:::i;:::-;14745:41:::1;14771:4;14776;14781;14745:25;:41::i;:::-;14823:6;::::0;14797:43:::1;::::0;-1:-1:-1;;;;;14823:6:0::1;14830:4:::0;14823:6;14797:25:::1;:43::i;:::-;14851:45;14877:7;6471:6:::0;;-1:-1:-1;;;;;6471:6:0;;6406:79;14877:7:::1;14885:4;14891;14851:25;:45::i;:::-;14933:9;::::0;14907:47:::1;::::0;-1:-1:-1;;;;;14933:9:0::1;14943:4:::0;14933:9;14907:25:::1;:47::i;:::-;14991:15;::::0;14965:53:::1;::::0;-1:-1:-1;;;;;14991:15:0::1;15008:4:::0;14991:15;14965:25:::1;:53::i;:::-;15029:51;15063:4;15069;15075;15029:25;:51::i;:::-;15091:53;15125:6;15133:4;15139;15091:25;:53::i;:::-;15155:35;15171:7;6471:6:::0;;-1:-1:-1;;;;;6471:6:0;;6406:79;15171:7:::1;15179:4;15185;15155:15;:35::i;:::-;15217:9;::::0;15201:37:::1;::::0;-1:-1:-1;;;;;15217:9:0::1;15227:4:::0;15217:9;15201:15:::1;:37::i;:::-;15265:15;::::0;15249:43:::1;::::0;-1:-1:-1;;;;;15265:15:0::1;15281:4:::0;15265:15;15249::::1;:43::i;:::-;15303:41;15327:4;15333;15339;15303:15;:41::i;:::-;15355:43;15379:6;15387:4;15393;15355:15;:43::i;:::-;14664:743:::0;:::o;5675:380::-;-1:-1:-1;;;;;5811:19:0;;5803:68;;;;-1:-1:-1;;;5803:68:0;;13354:2:1;5803:68:0;;;13336:21:1;13393:2;13373:18;;;13366:30;13432:34;13412:18;;;13405:62;-1:-1:-1;;;13483:18:1;;;13476:34;13527:19;;5803:68:0;13152:400:1;5803:68:0;-1:-1:-1;;;;;5890:21:0;;5882:68;;;;-1:-1:-1;;;5882:68:0;;13759:2:1;5882:68:0;;;13741:21:1;13798:2;13778:18;;;13771:30;13837:34;13817:18;;;13810:62;-1:-1:-1;;;13888:18:1;;;13881:32;13930:19;;5882:68:0;13557:398:1;5882:68:0;-1:-1:-1;;;;;5963:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;6015:32;;1514:25:1;;;6015:32:0;;1487:18:1;6015:32:0;1368:177:1;22151:952:0;22227:18;;22300:4;22196:28;2436:18;;;;;;;;;;;22323:25;;:49;;;;-1:-1:-1;22352:20:0;;22323:49;22319:88;;;22389:7;;22151:952::o;22319:88::-;22423:14;;-1:-1:-1;;;22423:14:0;;;;22419:367;;;22502:9;;22481:18;;:30;;;;:::i;:::-;22458:20;:53;22454:147;;;22576:9;;22555:18;;:30;;;;:::i;:::-;22532:53;;22454:147;22419:367;;;22679:18;;22656:20;:41;22652:123;;;22741:18;;22718:41;;22652:123;22798:12;22823:38;22840:20;22823:16;:38::i;:::-;22896:20;22874:18;;:42;;;;;;;:::i;:::-;;;;-1:-1:-1;;22933:21:0;:25;22929:167;;22997:15;;22989:95;;-1:-1:-1;;;;;22997:15:0;;;;23026:21;;22989:95;;;;23026:21;22997:15;22989:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;22151:952:0:o;4382:651::-;-1:-1:-1;;;;;4522:20:0;;4514:70;;;;-1:-1:-1;;;4514:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4603:23:0;;4595:71;;;;-1:-1:-1;;;4595:71:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4703:17:0;;4679:21;4703:17;;;;;;;;;;;4753:23;;;;4731:111;;;;-1:-1:-1;;;4731:111:0;;14972:2:1;4731:111:0;;;14954:21:1;15011:2;14991:18;;;14984:30;15050:34;15030:18;;;15023:62;-1:-1:-1;;;15101:18:1;;;15094:36;15147:19;;4731:111:0;14770:402:1;4731:111:0;-1:-1:-1;;;;;4878:17:0;;;:9;:17;;;;;;;;;;;4898:22;;;4878:42;;4942:20;;;;;;;;:30;;4914:6;;4878:9;4942:30;;4914:6;;4942:30;:::i;:::-;;;;;;;;5007:9;-1:-1:-1;;;;;4990:35:0;4999:6;-1:-1:-1;;;;;4990:35:0;;5018:6;4990:35;;;;1514:25:1;;1502:2;1487:18;;1368:177;4990:35:0;;;;;;;;4503:530;4382:651;;;:::o;5041:286::-;-1:-1:-1;;;;;5135:21:0;;5127:65;;;;-1:-1:-1;;;5127:65:0;;15379:2:1;5127:65:0;;;15361:21:1;15418:2;15398:18;;;15391:30;15457:33;15437:18;;;15430:61;15508:18;;5127:65:0;15177:355:1;5127:65:0;5221:6;5205:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;5238:18:0;;:9;:18;;;;;;;;;;:28;;5260:6;;5238:9;:28;;5260:6;;5238:28;:::i;:::-;;;;-1:-1:-1;;5282:37:0;;1514:25:1;;;-1:-1:-1;;;;;5282:37:0;;;5299:1;;5282:37;;1502:2:1;1487:18;5282:37:0;;;;;;;;5041:286;;:::o;16865:4358::-;-1:-1:-1;;;;;16977:18:0;;16969:68;;;;-1:-1:-1;;;16969:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17052:16:0;;17044:64;;;;-1:-1:-1;;;17044:64:0;;;;;;;:::i;:::-;17132:1;17123:6;:10;17115:52;;;;-1:-1:-1;;;17115:52:0;;15739:2:1;17115:52:0;;;15721:21:1;15778:2;15758:18;;;15751:30;15817:31;15797:18;;;15790:59;15866:18;;17115:52:0;15537:353:1;17115:52:0;-1:-1:-1;;;;;17189:31:0;;;17176:10;17189:31;;;:25;:31;;;;;;;17241:29;;;;;;;;17189:31;;;;;17241:29;;17189:31;17294:41;;17310:6;:24;;17332:1;17294:41;;17310:24;17319:2;17294:41;;;17302:4;17294:41;17349:11;;17279:56;;-1:-1:-1;;;;17349:11:0;;;;17344:171;;17395:30;17414:4;17420;17395:18;:30::i;:::-;:62;;;;17429:28;17448:2;17452:4;17429:18;:28::i;:::-;17373:134;;;;-1:-1:-1;;;17373:134:0;;16097:2:1;17373:134:0;;;16079:21:1;16136:2;16116:18;;;16109:30;-1:-1:-1;;;16155:18:1;;;16148:52;16217:18;;17373:134:0;15895:346:1;17373:134:0;17527:14;;-1:-1:-1;;;17527:14:0;;;;17523:931;;;6471:6;;-1:-1:-1;;;;;17572:15:0;;;6471:6;;17572:15;;;;:45;;-1:-1:-1;6471:6:0;;-1:-1:-1;;;;;17604:13:0;;;6471:6;;17604:13;;17572:45;:93;;;;;17635:30;17654:4;17660;17635:18;:30::i;:::-;17634:31;17572:93;:139;;;;;17683:28;17702:2;17706:4;17683:18;:28::i;:::-;17682:29;17572:139;17554:893;;;17742:5;17738:698;;;17808:12;;17798:6;:22;;17768:136;;;;-1:-1:-1;;;17768:136:0;;16448:2:1;17768:136:0;;;16430:21:1;16487:2;16467:18;;;16460:30;16526:34;16506:18;;;16499:62;-1:-1:-1;;;16577:18:1;;;16570:38;16625:19;;17768:136:0;16246:404:1;17768:136:0;17979:9;;-1:-1:-1;;;;;2436:18:0;;2409:7;2436:18;;;;;;;;;;;17953:22;;:6;:22;:::i;:::-;:35;;17923:133;;;;-1:-1:-1;;;17923:133:0;;16857:2:1;17923:133:0;;;16839:21:1;16896:2;16876:18;;;16869:30;-1:-1:-1;;;16915:18:1;;;16908:54;16979:18;;17923:133:0;16655:348:1;17923:133:0;17738:698;;;18082:6;18078:358;;;18149:12;;18139:6;:22;;18109:137;;;;-1:-1:-1;;;18109:137:0;;17210:2:1;18109:137:0;;;17192:21:1;17249:2;17229:18;;;17222:30;17288:34;17268:18;;;17261:62;-1:-1:-1;;;17339:18:1;;;17332:39;17388:19;;18109:137:0;17008:405:1;18078:358:0;18343:9;;-1:-1:-1;;;;;2436:18:0;;2409:7;2436:18;;;;;;;;;;;18317:22;;:6;:22;:::i;:::-;:35;;18287:133;;;;-1:-1:-1;;;18287:133:0;;16857:2:1;18287:133:0;;;16839:21:1;16896:2;16876:18;;;16869:30;-1:-1:-1;;;16915:18:1;;;16908:54;16979:18;;18287:133:0;16655:348:1;18287:133:0;18496:18;;18552:20;;18626:18;;18599:45;;;;;;18669:42;;;;18599:45;;18734:34;;-1:-1:-1;18757:11:0;;-1:-1:-1;;;18757:11:0;;;;18734:34;:59;;;;-1:-1:-1;18782:11:0;;;;18781:12;18734:59;:78;;;;;18807:5;18806:6;18734:78;:122;;;;;18826:30;18845:4;18851;18826:18;:30::i;:::-;18825:31;18734:122;:164;;;;;18870:28;18889:2;18893:4;18870:18;:28::i;:::-;18869:29;18734:164;18720:280;;;18917:11;:18;;-1:-1:-1;;18917:18:0;18931:4;18917:18;;;18946:16;:14;:16::i;:::-;18973:11;:19;;-1:-1:-1;;18973:19:0;;;18720:280;19022:10;:34;;;;-1:-1:-1;19045:11:0;;-1:-1:-1;;;19045:11:0;;;;19022:34;:59;;;;-1:-1:-1;19070:11:0;;;;;;;19069:12;19022:59;:78;;;;;19095:5;19094:6;19022:78;:122;;;;;19114:30;19133:4;19139;19114:18;:30::i;:::-;19113:31;19022:122;:164;;;;;19158:28;19177:2;19181:4;19158:18;:28::i;:::-;19157:29;19022:164;19008:282;;;19205:11;:18;;-1:-1:-1;;19205:18:0;;;;;19234;:16;:18::i;:::-;19263:11;:19;;-1:-1:-1;;19263:19:0;;;19008:282;19298:15;;-1:-1:-1;;;;;19374:13:0;19366:21;;;;;;19362:189;;19413:4;19400:17;;19362:189;;;19443:13;-1:-1:-1;;;;;19435:21:0;:4;-1:-1:-1;;;;;19435:21:0;;19431:120;;-1:-1:-1;19484:4:0;19431:120;;;19513:30;;-1:-1:-1;;;19513:30:0;;17620:2:1;19513:30:0;;;17602:21:1;17659:2;17639:18;;;17632:30;-1:-1:-1;;;17678:18:1;;;17671:50;17738:18;;19513:30:0;17418:344:1;19431:120:0;19563:30;19582:4;19588;19563:18;:30::i;:::-;:62;;;;19597:28;19616:2;19620:4;19597:18;:28::i;:::-;19559:136;;;-1:-1:-1;19651:5:0;;-1:-1:-1;19651:5:0;19559:136;19703:12;19728:717;;;;19812:6;19808:510;;;-1:-1:-1;;;;;19866:16:0;;19835:28;19866:16;;;:12;:16;;;;;;;;;19835:47;;;;;;;;;;;;;;;;;;;;;19901:24;19897:154;;19987:3;19963:12;:20;;;19954:6;:29;;;;:::i;:::-;19953:37;;;;:::i;:::-;19946:44;;20031:4;20009:18;;:26;;;;;;;:::i;:::-;;;;-1:-1:-1;;19897:154:0;19820:242;19808:510;;;20072:5;20068:250;;;-1:-1:-1;;;;;20124:18:0;;20094:27;20124:18;;;:12;:18;;;;;;;;;20094:48;;;;;;;;;;;;;;;;;;;;;;;;;20161:22;20157:150;;20221:18;;20243:3;;20212:27;;:6;:27;:::i;:::-;20211:35;;;;:::i;:::-;20204:42;;20287:4;20265:18;;:26;;;;;;;:::i;:::-;;;;-1:-1:-1;;20157:150:0;20079:239;20068:250;20334:8;;20330:83;;20359:42;20375:4;20389;20396;20359:15;:42::i;:::-;20423:14;20433:4;20423:14;;:::i;:::-;;;19728:717;20457:12;20453:725;;;20541:6;20537:514;;;-1:-1:-1;;;;;20595:16:0;;20564:28;20595:16;;;:12;:16;;;;;;;;;20564:47;;;;;;;;;;;;;;;;;;;;;20630:24;20626:156;;20716:3;20692:12;:20;;;20683:6;:29;;;;:::i;:::-;20682:37;;;;:::i;:::-;20675:44;;20762:4;20738:20;;:28;;;;;;;:::i;:::-;;;;-1:-1:-1;;20626:156:0;20549:244;20537:514;;;20803:5;20799:252;;;-1:-1:-1;;;;;20855:18:0;;20825:27;20855:18;;;:12;:18;;;;;;;;;20825:48;;;;;;;;;;;;;;;;;;;;;;;;;20892:22;20888:152;;20952:18;;20974:3;;20943:27;;:6;:27;:::i;:::-;20942:35;;;;:::i;:::-;20935:42;;21020:4;20996:20;;:28;;;;;;;:::i;:::-;;;;-1:-1:-1;;20888:152:0;20810:241;20799:252;21067:8;;21063:83;;21092:42;21108:4;21122;21129;21092:15;:42::i;:::-;21156:14;21166:4;21156:14;;:::i;:::-;;;20453:725;21186:33;21202:4;21208:2;21212:6;21186:15;:33::i;:::-;16962:4261;;;;;;;;;;16865:4358;;;:::o;23111:673::-;23191:20;;23158:30;23236:27;;;23232:66;;23280:7;23111:673::o;23232:66::-;23314:14;;-1:-1:-1;;;23314:14:0;;;;23310:356;;;23395:9;;23374:18;;:30;;;;:::i;:::-;23349:22;:55;23345:151;;;23471:9;;23450:18;;:30;;;;:::i;:::-;23425:55;;23345:151;23310:356;;;23557:18;;23532:22;:43;23528:127;;;-1:-1:-1;23621:18:0;;23528:127;23676:43;23696:22;23676:19;:43::i;:::-;23754:22;23730:20;;:46;;;;;;;:::i;:::-;;;;-1:-1:-1;;;23111:673:0:o;5336:331::-;-1:-1:-1;;;;;5426:21:0;;5418:65;;;;-1:-1:-1;;;5418:65:0;;15379:2:1;5418:65:0;;;15361:21:1;15418:2;15398:18;;;15391:30;15457:33;15437:18;;;15430:61;15508:18;;5418:65:0;15177:355:1;5418:65:0;5512:6;5496:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;5529:18:0;;:9;:18;;;;;;;;;;:28;;5551:6;;5529:9;:28;;5551:6;;5529:28;:::i;:::-;;;;-1:-1:-1;;5574:78:0;;1514:25:1;;;5600:42:0;;-1:-1:-1;;;;;5574:78:0;;;;;1502:2:1;1487:18;5574:78:0;1368:177:1;21237:475:0;21327:16;;;21341:1;21327:16;;;;;;;;21303:21;;21327:16;;;;;;;;;;-1:-1:-1;21327:16:0;21303:40;;21372:4;21354;21359:1;21354:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;21354:23:0;;;-1:-1:-1;;;;;21354:23:0;;;;;21398:15;-1:-1:-1;;;;;21398:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21388:4;21393:1;21388:7;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;21388:32:0;;;-1:-1:-1;;;;;21388:32:0;;;;;21433:62;21450:4;21465:15;21483:11;21433:8;:62::i;:::-;21508:196;;-1:-1:-1;;;21508:196:0;;-1:-1:-1;;;;;21508:15:0;:66;;;;:196;;21589:11;;21615:1;;21631:4;;21658;;21678:15;;21508:196;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21722:421;21811:16;;;21825:1;21811:16;;;;;;;;21787:21;;21811:16;;;;;;;;;;-1:-1:-1;21811:16:0;21787:40;;21852:4;21834;21839:1;21834:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;21834:23:0;;;:7;;;;;;;;;:23;21874:9;;21864:7;;21874:9;;;21864:4;;21874:9;;21864:7;;;;;;:::i;:::-;;;;;;:19;-1:-1:-1;;;;;21864:19:0;;;-1:-1:-1;;;;;21864:19:0;;;;;21897:62;21914:4;21929:15;21947:11;21897:8;:62::i;:::-;22097:9;;21968:171;;-1:-1:-1;;;21968:171:0;;-1:-1:-1;;;;;21968:15:0;:69;;;;;:171;;22048:11;;22070:1;;22082:4;;22097:9;;;;;22117:15;;21968:171;;;:::i;14:418:1:-;163:2;152:9;145:21;126:4;195:6;189:13;238:6;233:2;222:9;218:18;211:34;297:6;292:2;284:6;280:15;275:2;264:9;260:18;254:50;353:1;348:2;339:6;328:9;324:22;320:31;313:42;423:2;416;412:7;407:2;399:6;395:15;391:29;380:9;376:45;372:54;364:62;;;14:418;;;;:::o;437:131::-;-1:-1:-1;;;;;512:31:1;;502:42;;492:70;;558:1;555;548:12;573:367;641:6;649;702:2;690:9;681:7;677:23;673:32;670:52;;;718:1;715;708:12;670:52;757:9;744:23;776:31;801:5;776:31;:::i;:::-;826:5;904:2;889:18;;;;876:32;;-1:-1:-1;;;573:367:1:o;1550:247::-;1609:6;1662:2;1650:9;1641:7;1637:23;1633:32;1630:52;;;1678:1;1675;1668:12;1630:52;1717:9;1704:23;1736:31;1761:5;1736:31;:::i;:::-;1786:5;1550:247;-1:-1:-1;;;1550:247:1:o;1802:367::-;1870:6;1878;1931:2;1919:9;1910:7;1906:23;1902:32;1899:52;;;1947:1;1944;1937:12;1899:52;1992:23;;;-1:-1:-1;2091:2:1;2076:18;;2063:32;2104:33;2063:32;2104:33;:::i;:::-;2156:7;2146:17;;;1802:367;;;;;:::o;2174:226::-;2233:6;2286:2;2274:9;2265:7;2261:23;2257:32;2254:52;;;2302:1;2299;2292:12;2254:52;-1:-1:-1;2347:23:1;;2174:226;-1:-1:-1;2174:226:1:o;2405:508::-;2482:6;2490;2498;2551:2;2539:9;2530:7;2526:23;2522:32;2519:52;;;2567:1;2564;2557:12;2519:52;2606:9;2593:23;2625:31;2650:5;2625:31;:::i;:::-;2675:5;-1:-1:-1;2732:2:1;2717:18;;2704:32;2745:33;2704:32;2745:33;:::i;:::-;2405:508;;2797:7;;-1:-1:-1;;;2877:2:1;2862:18;;;;2849:32;;2405:508::o;3171:401::-;3252:6;3260;3313:2;3301:9;3292:7;3288:23;3284:32;3281:52;;;3329:1;3326;3319:12;3281:52;3368:9;3355:23;3387:31;3412:5;3387:31;:::i;:::-;3437:5;-1:-1:-1;3494:2:1;3479:18;;3466:32;3507:33;3466:32;3507:33;:::i;3974:160::-;4039:20;;4095:13;;4088:21;4078:32;;4068:60;;4124:1;4121;4114:12;4068:60;3974:160;;;:::o;4139:456::-;4213:6;4221;4229;4282:2;4270:9;4261:7;4257:23;4253:32;4250:52;;;4298:1;4295;4288:12;4250:52;4337:9;4324:23;4356:31;4381:5;4356:31;:::i;:::-;4406:5;-1:-1:-1;4463:2:1;4448:18;;4435:32;4476:33;4435:32;4476:33;:::i;:::-;4528:7;-1:-1:-1;4554:35:1;4585:2;4570:18;;4554:35;:::i;:::-;4544:45;;4139:456;;;;;:::o;4993:487::-;5070:6;5078;5086;5139:2;5127:9;5118:7;5114:23;5110:32;5107:52;;;5155:1;5152;5145:12;5107:52;5194:9;5181:23;5213:31;5238:5;5213:31;:::i;:::-;5263:5;5341:2;5326:18;;5313:32;;-1:-1:-1;5444:2:1;5429:18;;;5416:32;;4993:487;-1:-1:-1;;;4993:487:1:o;5706:315::-;5771:6;5779;5832:2;5820:9;5811:7;5807:23;5803:32;5800:52;;;5848:1;5845;5838:12;5800:52;5887:9;5874:23;5906:31;5931:5;5906:31;:::i;:::-;5956:5;-1:-1:-1;5980:35:1;6011:2;5996:18;;5980:35;:::i;:::-;5970:45;;5706:315;;;;;:::o;6026:629::-;6112:6;6120;6128;6136;6189:3;6177:9;6168:7;6164:23;6160:33;6157:53;;;6206:1;6203;6196:12;6157:53;6245:9;6232:23;6264:31;6289:5;6264:31;:::i;:::-;6314:5;-1:-1:-1;6371:2:1;6356:18;;6343:32;6384:33;6343:32;6384:33;:::i;:::-;6026:629;;6436:7;;-1:-1:-1;;;;6516:2:1;6501:18;;6488:32;;6619:2;6604:18;6591:32;;6026:629::o;6660:380::-;6739:1;6735:12;;;;6782;;;6803:61;;6857:4;6849:6;6845:17;6835:27;;6803:61;6910:2;6902:6;6899:14;6879:18;6876:38;6873:161;;6956:10;6951:3;6947:20;6944:1;6937:31;6991:4;6988:1;6981:15;7019:4;7016:1;7009:15;6873:161;;6660:380;;;:::o;7045:356::-;7247:2;7229:21;;;7266:18;;;7259:30;7325:34;7320:2;7305:18;;7298:62;7392:2;7377:18;;7045:356::o;7752:184::-;7822:6;7875:2;7863:9;7854:7;7850:23;7846:32;7843:52;;;7891:1;7888;7881:12;7843:52;-1:-1:-1;7914:16:1;;7752:184;-1:-1:-1;7752:184:1:o;7941:127::-;8002:10;7997:3;7993:20;7990:1;7983:31;8033:4;8030:1;8023:15;8057:4;8054:1;8047:15;8073:125;8138:9;;;8159:10;;;8156:36;;;8172:18;;:::i;8622:128::-;8689:9;;;8710:11;;;8707:37;;;8724:18;;:::i;9542:168::-;9615:9;;;9646;;9663:15;;;9657:22;;9643:37;9633:71;;9684:18;;:::i;10124:398::-;10326:2;10308:21;;;10365:2;10345:18;;;10338:30;10404:34;10399:2;10384:18;;10377:62;-1:-1:-1;;;10470:2:1;10455:18;;10448:32;10512:3;10497:19;;10124:398::o;11974:251::-;12044:6;12097:2;12085:9;12076:7;12072:23;12068:32;12065:52;;;12113:1;12110;12103:12;12065:52;12145:9;12139:16;12164:31;12189:5;12164:31;:::i;13960:401::-;14162:2;14144:21;;;14201:2;14181:18;;;14174:30;14240:34;14235:2;14220:18;;14213:62;-1:-1:-1;;;14306:2:1;14291:18;;14284:35;14351:3;14336:19;;13960:401::o;14366:399::-;14568:2;14550:21;;;14607:2;14587:18;;;14580:30;14646:34;14641:2;14626:18;;14619:62;-1:-1:-1;;;14712:2:1;14697:18;;14690:33;14755:3;14740:19;;14366:399::o;17767:217::-;17807:1;17833;17823:132;;17877:10;17872:3;17868:20;17865:1;17858:31;17912:4;17909:1;17902:15;17940:4;17937:1;17930:15;17823:132;-1:-1:-1;17969:9:1;;17767:217::o;18121:127::-;18182:10;18177:3;18173:20;18170:1;18163:31;18213:4;18210:1;18203:15;18237:4;18234:1;18227:15;18253:959;18515:4;18563:3;18552:9;18548:19;18594:6;18583:9;18576:25;18637:6;18632:2;18621:9;18617:18;18610:34;18680:3;18675:2;18664:9;18660:18;18653:31;18704:6;18739;18733:13;18770:6;18762;18755:22;18808:3;18797:9;18793:19;18786:26;;18847:2;18839:6;18835:15;18821:29;;18868:1;18878:195;18892:6;18889:1;18886:13;18878:195;;;18957:13;;-1:-1:-1;;;;;18953:39:1;18941:52;;19022:2;19048:15;;;;19013:12;;;;18989:1;18907:9;18878:195;;;-1:-1:-1;;;;;;;19129:32:1;;;;19124:2;19109:18;;19102:60;-1:-1:-1;;19193:3:1;19178:19;19171:35;19090:3;18253:959;-1:-1:-1;;;18253:959:1:o
Swarm Source
ipfs://f0d03eea48fc84f24b4c464c0e602a8083b8e322e74de2b7e58fafa39937b796
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.