Feature Tip: Add private address tag to any address under My Name Tag !
More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 362 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Approve | 16459049 | 703 days ago | IN | 0 ETH | 0.00039117 | ||||
Approve | 16305653 | 724 days ago | IN | 0 ETH | 0.00077784 | ||||
Approve | 16188189 | 741 days ago | IN | 0 ETH | 0.00065459 | ||||
Approve | 16183234 | 741 days ago | IN | 0 ETH | 0.00069986 | ||||
Approve | 16178808 | 742 days ago | IN | 0 ETH | 0.0007053 | ||||
Approve | 16177030 | 742 days ago | IN | 0 ETH | 0.0012816 | ||||
Approve | 16175804 | 743 days ago | IN | 0 ETH | 0.00080221 | ||||
Approve | 16174196 | 743 days ago | IN | 0 ETH | 0.00066748 | ||||
Approve | 16174119 | 743 days ago | IN | 0 ETH | 0.00063712 | ||||
Approve | 16171672 | 743 days ago | IN | 0 ETH | 0.00072317 | ||||
Approve | 16171458 | 743 days ago | IN | 0 ETH | 0.00071399 | ||||
Approve | 16171416 | 743 days ago | IN | 0 ETH | 0.00074808 | ||||
Approve | 16171413 | 743 days ago | IN | 0 ETH | 0.00081014 | ||||
Approve | 16171409 | 743 days ago | IN | 0 ETH | 0.00076175 | ||||
Approve | 16171405 | 743 days ago | IN | 0 ETH | 0.00077783 | ||||
Approve | 16171397 | 743 days ago | IN | 0 ETH | 0.00081202 | ||||
Approve | 16171279 | 743 days ago | IN | 0 ETH | 0.00078746 | ||||
Approve | 16171215 | 743 days ago | IN | 0 ETH | 0.00100164 | ||||
Approve | 16171174 | 743 days ago | IN | 0 ETH | 0.00103734 | ||||
Approve | 16171090 | 743 days ago | IN | 0 ETH | 0.00097395 | ||||
Approve | 16170895 | 743 days ago | IN | 0 ETH | 0.00099086 | ||||
Approve | 16170434 | 743 days ago | IN | 0 ETH | 0.00095542 | ||||
Approve | 16170388 | 743 days ago | IN | 0 ETH | 0.00099112 | ||||
Approve | 16170042 | 743 days ago | IN | 0 ETH | 0.00109885 | ||||
Approve | 16170036 | 743 days ago | IN | 0 ETH | 0.00114398 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
16183237 | 741 days ago | 0.00235478 ETH | ||||
16183237 | 741 days ago | 0.00235478 ETH | ||||
16181921 | 742 days ago | 0.00287353 ETH | ||||
16181921 | 742 days ago | 0.00287353 ETH | ||||
16177178 | 742 days ago | 0.00281696 ETH | ||||
16177178 | 742 days ago | 0.00281696 ETH | ||||
16175372 | 743 days ago | 0.00272322 ETH | ||||
16175372 | 743 days ago | 0.00272322 ETH | ||||
16174134 | 743 days ago | 0.00328949 ETH | ||||
16174134 | 743 days ago | 0.00328949 ETH | ||||
16172876 | 743 days ago | 0.00361205 ETH | ||||
16172876 | 743 days ago | 0.00361205 ETH | ||||
16172419 | 743 days ago | 0.00367046 ETH | ||||
16172419 | 743 days ago | 0.00367046 ETH | ||||
16171430 | 743 days ago | 0.0051885 ETH | ||||
16171430 | 743 days ago | 0.0051885 ETH | ||||
16171415 | 743 days ago | 0.00472402 ETH | ||||
16171415 | 743 days ago | 0.00472402 ETH | ||||
16171407 | 743 days ago | 0.00518072 ETH | ||||
16171407 | 743 days ago | 0.00518072 ETH | ||||
16171281 | 743 days ago | 0.00577477 ETH | ||||
16171281 | 743 days ago | 0.00577477 ETH | ||||
16171094 | 743 days ago | 0.00785479 ETH | ||||
16171094 | 743 days ago | 0.00785479 ETH | ||||
16170849 | 743 days ago | 0.00804982 ETH |
Loading...
Loading
Contract Name:
AITOOLS
Compiler Version
v0.8.12+commit.f00d7308
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-12-11 */ //SPDX-License-Identifier: MIT /* AI Tools | $AIT AI Tools will be a one-stop solution for all The following AI bots will go live: 1. AI Sniper bot: provide a low-cost and quick sniper bot to token holders who hold a certain number of tokens. 2. AI Social bot : allows you to tweet directly from Telegram. 3. AI Image Bot: Create your own art using any command in your Telegram group. $AIT is a decentralised token from the AI TOOLS ecosystem. It is an ERC-20 token built on the Ethereum blockchain. The AI TOOLS ecosystem is designed to provide users with access to advanced artificial intelligence tools and algorithms, enabling them to create, manage and monetise their own AI-powered applications and services. Tokenomics: Tax on buy: 4% Tax on sell: 4% Max Buy/Wallet at launch: 3% Telegram: https://t.me/AITOOLSERC Twitter: https://twitter.com/AIToolsERC Website : http://aitoolstoken.com/ */ pragma solidity 0.8.12; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } interface 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"); _beforeTokenTransfer(sender, recipient, amount); uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); _balances[sender] = senderBalance - amount; _balances[recipient] += amount; emit Transfer(sender, recipient, amount); } /** @dev Creates `amount` tokens and assigns them to `account`, increasing * the total supply. * * Emits a {Transfer} event with `from` set to the zero address. * * Requirements: * * - `to` cannot be the zero address. */ function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; _balances[account] += amount; emit Transfer(address(0), account, amount); } /** * @dev Destroys `amount` tokens from `account`, reducing the * total supply. * * Emits a {Transfer} event with `to` set to the zero address. * * Requirements: * * - `account` cannot be the zero address. * - `account` must have at least `amount` tokens. */ function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); _balances[account] = accountBalance - amount; _totalSupply -= amount; emit Transfer(account, address(0), 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); } /** * @dev Hook that is called before any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * will be to transferred to `to`. * - when `from` is zero, `amount` tokens will be minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens will be burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { } } 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, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external; } contract AITOOLS is ERC20, Ownable{ using Address for address payable; IRouter public router; address public pair; bool private swapping; bool public swapEnabled; bool public tradingEnabled; uint256 public genesis_block; uint256 public deadblocks = 0; uint256 public swapThreshold = 10_000 * 10e18; uint256 public maxTxAmount = 100_000_000 * 10**18; uint256 public maxWalletAmount = 3_000_000 * 10**18; address public marketingWallet = 0xdD3a188349db1C01F323dD1C3376f6ccd336dBF2; address public devWallet = 0xdD3a188349db1C01F323dD1C3376f6ccd336dBF2; struct Taxes { uint256 marketing; uint256 liquidity; uint256 dev; } Taxes public taxes = Taxes(5,0,0); Taxes public sellTaxes = Taxes(10,0,0); uint256 public totTax = 5; uint256 public totSellTax = 5; mapping (address => bool) public excludedFromFees; mapping (address => bool) public isBot; modifier inSwap() { if (!swapping) { swapping = true; _; swapping = false; } } constructor() ERC20("AI Tools", "AIT") { _mint(msg.sender, 100000000 * 10 ** decimals()); excludedFromFees[msg.sender] = true; IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); address _pair = IFactory(_router.factory()) .createPair(address(this), _router.WETH()); router = _router; pair = _pair; excludedFromFees[address(this)] = true; excludedFromFees[marketingWallet] = true; excludedFromFees[devWallet] = true; } function _transfer(address sender, address recipient, uint256 amount) internal override { require(amount > 0, "Transfer amount must be greater than zero"); require(!isBot[sender] && !isBot[recipient], "You can't transfer tokens"); if(!excludedFromFees[sender] && !excludedFromFees[recipient] && !swapping){ require(tradingEnabled, "Trading not active yet"); if(genesis_block + deadblocks > block.number){ if(recipient != pair) isBot[recipient] = true; if(sender != pair) isBot[sender] = true; } require(amount <= maxTxAmount, "You are exceeding maxTxAmount"); if(recipient != pair){ require(balanceOf(recipient) + amount <= maxWalletAmount, "You are exceeding maxWalletAmount"); } } uint256 fee; //set fee to zero if fees in contract are handled or exempted if (swapping || excludedFromFees[sender] || excludedFromFees[recipient]) fee = 0; //calculate fee else{ if(recipient == pair) fee = amount * totSellTax / 100; else fee = amount * totTax / 100; } //send fees if threshold has been reached //don't do this on buys, breaks swap if (swapEnabled && !swapping && sender != pair && fee > 0) swapForFees(); super._transfer(sender, recipient, amount - fee); if(fee > 0) super._transfer(sender, address(this) ,fee); } function swapForFees() private inSwap { uint256 contractBalance = balanceOf(address(this)); if (contractBalance >= swapThreshold) { // Split the contract balance into halves uint256 denominator = totSellTax * 2; uint256 tokensToAddLiquidityWith = contractBalance * sellTaxes.liquidity / denominator; uint256 toSwap = contractBalance - tokensToAddLiquidityWith; uint256 initialBalance = address(this).balance; swapTokensForETH(toSwap); uint256 deltaBalance = address(this).balance - initialBalance; uint256 unitBalance= deltaBalance / (denominator - sellTaxes.liquidity); uint256 ethToAddLiquidityWith = unitBalance * sellTaxes.liquidity; if(ethToAddLiquidityWith > 0){ // Add liquidity to Uniswap addLiquidity(tokensToAddLiquidityWith, ethToAddLiquidityWith); } uint256 marketingAmt = unitBalance * 2 * sellTaxes.marketing; if(marketingAmt > 0){ payable(marketingWallet).sendValue(marketingAmt); } uint256 devAmt = unitBalance * 2 * sellTaxes.dev; if(devAmt > 0){ payable(devWallet).sendValue(devAmt); } } } 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); // make the swap router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount, 0, path, address(this), block.timestamp); } function addLiquidity(uint256 tokenAmount, uint256 bnbAmount) private { // approve token transfer to cover all possible scenarios _approve(address(this), address(router), tokenAmount); // add the liquidity router.addLiquidityETH{value: bnbAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable devWallet, block.timestamp ); } function setSwapEnabled(bool state) external onlyOwner { swapEnabled = state; } function setSwapThreshold(uint256 new_amount) external onlyOwner { swapThreshold = new_amount; } function enableTrading(uint256 numOfDeadBlocks) external onlyOwner{ require(!tradingEnabled, "Trading already active"); tradingEnabled = true; swapEnabled = true; genesis_block = block.number; deadblocks = numOfDeadBlocks; } function setTaxes(uint256 _marketing, uint256 _liquidity, uint256 _dev) external onlyOwner{ taxes = Taxes(_marketing, _liquidity, _dev); totTax = _marketing + _liquidity + _dev; } function setSellTaxes(uint256 _marketing, uint256 _liquidity, uint256 _dev) external onlyOwner{ sellTaxes = Taxes(_marketing, _liquidity, _dev); totSellTax = _marketing + _liquidity + _dev; } function updateMarketingWallet(address newWallet) external onlyOwner{ marketingWallet = newWallet; } function updateDevWallet(address newWallet) external onlyOwner{ devWallet = newWallet; } function updateRouterAndPair(IRouter _router, address _pair) external onlyOwner{ router = _router; pair = _pair; } function setIsBot(address account, bool state) external onlyOwner{ isBot[account] = state; } function updateExcludedFromFees(address _address, bool state) external onlyOwner { excludedFromFees[_address] = state; } function updateMaxTxAmount(uint256 amount) external onlyOwner{ maxTxAmount = amount * 10**18; } function updateMaxWalletAmount(uint256 amount) external onlyOwner{ maxWalletAmount = amount * 10**18; } function rescueERC20(address tokenAddress, uint256 amount) external onlyOwner{ IERC20(tokenAddress).transfer(owner(), amount); } function rescueETH(uint256 weiAmount) external onlyOwner{ payable(owner()).sendValue(weiAmount); } function manualSwap(uint256 amount, uint256 devPercentage, uint256 marketingPercentage) external onlyOwner{ uint256 initBalance = address(this).balance; swapTokensForETH(amount); uint256 newBalance = address(this).balance - initBalance; if(marketingPercentage > 0) payable(marketingWallet).sendValue(newBalance * marketingPercentage / (devPercentage + marketingPercentage)); if(devPercentage > 0) payable(devWallet).sendValue(newBalance * devPercentage / (devPercentage + marketingPercentage)); } // 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":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadblocks","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"numOfDeadBlocks","type":"uint256"}],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"excludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"genesis_block","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"devPercentage","type":"uint256"},{"internalType":"uint256","name":"marketingPercentage","type":"uint256"}],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTaxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"setIsBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_dev","type":"uint256"}],"name":"setSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"setSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"new_amount","type":"uint256"}],"name":"setSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_dev","type":"uint256"}],"name":"setTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totSellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totTax","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":"address","name":"newWallet","type":"address"}],"name":"updateDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IRouter","name":"_router","type":"address"},{"internalType":"address","name":"_pair","type":"address"}],"name":"updateRouterAndPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052600060095569152d02c7e14af6800000600a556a52b7d2dcc80cd2e4000000600b556a027b46536c66c8e3000000600c5573dd3a188349db1c01f323dd1c3376f6ccd336dbf2600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073dd3a188349db1c01f323dd1c3376f6ccd336dbf2600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604051806060016040528060058152602001600081526020016000815250600f60008201518160000155602082015181600101556040820151816002015550506040518060600160405280600a815260200160008152602001600081525060126000820151816000015560208201518160010155604082015181600201555050600560155560056016553480156200017657600080fd5b506040518060400160405280600881526020017f414920546f6f6c730000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f41495400000000000000000000000000000000000000000000000000000000008152508160039080519060200190620001fb92919062000868565b5080600490805190602001906200021492919062000868565b505050620002376200022b6200062760201b60201c565b6200062f60201b60201c565b62000277336200024c620006f560201b60201c565b600a6200025a919062000ab2565b6305f5e1006200026b919062000b03565b620006fe60201b60201c565b6001601760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000336573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200035c919062000bce565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003c4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003ea919062000bce565b6040518363ffffffff1660e01b81526004016200040992919062000c11565b6020604051808303816000875af115801562000429573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200044f919062000bce565b905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160176000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160176000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505062000db1565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60006012905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000771576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007689062000c9f565b60405180910390fd5b62000785600083836200086360201b60201c565b806002600082825462000799919062000cc1565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620007f0919062000cc1565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000857919062000d2f565b60405180910390a35050565b505050565b828054620008769062000d7b565b90600052602060002090601f0160209004810192826200089a5760008555620008e6565b82601f10620008b557805160ff1916838001178555620008e6565b82800160010185558215620008e6579182015b82811115620008e5578251825591602001919060010190620008c8565b5b509050620008f59190620008f9565b5090565b5b8082111562000914576000816000905550600101620008fa565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620009a6578086048111156200097e576200097d62000918565b5b60018516156200098e5780820291505b80810290506200099e8562000947565b94506200095e565b94509492505050565b600082620009c1576001905062000a94565b81620009d1576000905062000a94565b8160018114620009ea5760028114620009f55762000a2b565b600191505062000a94565b60ff84111562000a0a5762000a0962000918565b5b8360020a91508482111562000a245762000a2362000918565b5b5062000a94565b5060208310610133831016604e8410600b841016171562000a655782820a90508381111562000a5f5762000a5e62000918565b5b62000a94565b62000a74848484600162000954565b9250905081840481111562000a8e5762000a8d62000918565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000abf8262000a9b565b915062000acc8362000aa5565b925062000afb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620009af565b905092915050565b600062000b108262000a9b565b915062000b1d8362000a9b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000b595762000b5862000918565b5b828202905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000b968262000b69565b9050919050565b62000ba88162000b89565b811462000bb457600080fd5b50565b60008151905062000bc88162000b9d565b92915050565b60006020828403121562000be75762000be662000b64565b5b600062000bf78482850162000bb7565b91505092915050565b62000c0b8162000b89565b82525050565b600060408201905062000c28600083018562000c00565b62000c37602083018462000c00565b9392505050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000c87601f8362000c3e565b915062000c948262000c4f565b602082019050919050565b6000602082019050818103600083015262000cba8162000c78565b9050919050565b600062000cce8262000a9b565b915062000cdb8362000a9b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000d135762000d1262000918565b5b828201905092915050565b62000d298162000a9b565b82525050565b600060208201905062000d46600083018462000d1e565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000d9457607f821691505b6020821081141562000dab5762000daa62000d4c565b5b50919050565b6144f08062000dc16000396000f3fe6080604052600436106102815760003560e01c806375f0a8741161014f578063a9059cbb116100c1578063e01af92c1161007a578063e01af92c146109bd578063e545fd6d146109e6578063e9dae5ed14610a0f578063f2fde38b14610a38578063f66895a314610a61578063f887ea4014610a8e57610288565b8063a9059cbb14610889578063aa4bde28146108c6578063aacebbe3146108f1578063c18bc1951461091a578063dbe66ca014610943578063dd62ed3e1461098057610288565b80638ea5220f116101135780638ea5220f1461077957806395d89b41146107a45780639d0014b1146107cf5780639e252f00146107f8578063a457c2d714610821578063a8aa1b311461085e57610288565b806375f0a874146106a657806382aa7c68146106d15780638c0b5e22146106fa5780638cd4426d146107255780638da5cb5b1461074e57610288565b8063293b7ef4116101f357806350c9a88f116101ac57806350c9a88f146105a65780636256d181146105d15780636ddd1713146105fa57806370a0823114610625578063715018a614610662578063728f8eea1461067957610288565b8063293b7ef414610482578063313ce567146104ad57806339509351146104d85780633bbac5791461051557806340b28c2f146105525780634ada218b1461057b57610288565b806318160ddd1161024557806318160ddd146103725780631816467f1461039d5780632253163d146103c657806323b872dd146103f157806326b5d32f1461042e578063274a533c1461045757610288565b806303c0f5d41461028d5780630445b667146102b657806306fdde03146102e1578063087332141461030c578063095ea7b31461033557610288565b3661028857005b600080fd5b34801561029957600080fd5b506102b460048036038101906102af91906131e9565b610ab9565b005b3480156102c257600080fd5b506102cb610b90565b6040516102d89190613242565b60405180910390f35b3480156102ed57600080fd5b506102f6610b96565b60405161030391906132f6565b60405180910390f35b34801561031857600080fd5b50610333600480360381019061032e9190613344565b610c28565b005b34801561034157600080fd5b5061035c60048036038101906103579190613397565b610d04565b60405161036991906133e6565b60405180910390f35b34801561037e57600080fd5b50610387610d22565b6040516103949190613242565b60405180910390f35b3480156103a957600080fd5b506103c460048036038101906103bf9190613401565b610d2c565b005b3480156103d257600080fd5b506103db610dec565b6040516103e89190613242565b60405180910390f35b3480156103fd57600080fd5b506104186004803603810190610413919061342e565b610df2565b60405161042591906133e6565b60405180910390f35b34801561043a57600080fd5b5061045560048036038101906104509190613344565b610ef3565b005b34801561046357600080fd5b5061046c611080565b6040516104799190613242565b60405180910390f35b34801561048e57600080fd5b50610497611086565b6040516104a49190613242565b60405180910390f35b3480156104b957600080fd5b506104c261108c565b6040516104cf919061349d565b60405180910390f35b3480156104e457600080fd5b506104ff60048036038101906104fa9190613397565b611095565b60405161050c91906133e6565b60405180910390f35b34801561052157600080fd5b5061053c60048036038101906105379190613401565b611141565b60405161054991906133e6565b60405180910390f35b34801561055e57600080fd5b50610579600480360381019061057491906134f6565b611161565b005b34801561058757600080fd5b50610590611263565b60405161059d91906133e6565b60405180910390f35b3480156105b257600080fd5b506105bb611276565b6040516105c89190613242565b60405180910390f35b3480156105dd57600080fd5b506105f860048036038101906105f39190613536565b61127c565b005b34801561060657600080fd5b5061060f611315565b60405161061c91906133e6565b60405180910390f35b34801561063157600080fd5b5061064c60048036038101906106479190613401565b611328565b6040516106599190613242565b60405180910390f35b34801561066e57600080fd5b50610677611370565b005b34801561068557600080fd5b5061068e6113f8565b60405161069d93929190613563565b60405180910390f35b3480156106b257600080fd5b506106bb611410565b6040516106c891906135a9565b60405180910390f35b3480156106dd57600080fd5b506106f860048036038101906106f39190613536565b611436565b005b34801561070657600080fd5b5061070f611549565b60405161071c9190613242565b60405180910390f35b34801561073157600080fd5b5061074c60048036038101906107479190613397565b61154f565b005b34801561075a57600080fd5b50610763611655565b60405161077091906135a9565b60405180910390f35b34801561078557600080fd5b5061078e61167f565b60405161079b91906135a9565b60405180910390f35b3480156107b057600080fd5b506107b96116a5565b6040516107c691906132f6565b60405180910390f35b3480156107db57600080fd5b506107f660048036038101906107f19190613536565b611737565b005b34801561080457600080fd5b5061081f600480360381019061081a9190613536565b6117bd565b005b34801561082d57600080fd5b5061084860048036038101906108439190613397565b61186c565b60405161085591906133e6565b60405180910390f35b34801561086a57600080fd5b50610873611960565b60405161088091906135a9565b60405180910390f35b34801561089557600080fd5b506108b060048036038101906108ab9190613397565b611986565b6040516108bd91906133e6565b60405180910390f35b3480156108d257600080fd5b506108db6119a4565b6040516108e89190613242565b60405180910390f35b3480156108fd57600080fd5b5061091860048036038101906109139190613401565b6119aa565b005b34801561092657600080fd5b50610941600480360381019061093c9190613536565b611a6a565b005b34801561094f57600080fd5b5061096a60048036038101906109659190613401565b611b03565b60405161097791906133e6565b60405180910390f35b34801561098c57600080fd5b506109a760048036038101906109a291906135c4565b611b23565b6040516109b49190613242565b60405180910390f35b3480156109c957600080fd5b506109e460048036038101906109df9190613604565b611baa565b005b3480156109f257600080fd5b50610a0d6004803603810190610a0891906131e9565b611c43565b005b348015610a1b57600080fd5b50610a366004803603810190610a319190613344565b611d1a565b005b348015610a4457600080fd5b50610a5f6004803603810190610a5a9190613401565b611df6565b005b348015610a6d57600080fd5b50610a76611eee565b604051610a8593929190613563565b60405180910390f35b348015610a9a57600080fd5b50610aa3611f06565b604051610ab09190613690565b60405180910390f35b610ac1611f2c565b73ffffffffffffffffffffffffffffffffffffffff16610adf611655565b73ffffffffffffffffffffffffffffffffffffffff1614610b35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2c906136f7565b60405180910390fd5b80601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600a5481565b606060038054610ba590613746565b80601f0160208091040260200160405190810160405280929190818152602001828054610bd190613746565b8015610c1e5780601f10610bf357610100808354040283529160200191610c1e565b820191906000526020600020905b815481529060010190602001808311610c0157829003601f168201915b5050505050905090565b610c30611f2c565b73ffffffffffffffffffffffffffffffffffffffff16610c4e611655565b73ffffffffffffffffffffffffffffffffffffffff1614610ca4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9b906136f7565b60405180910390fd5b6040518060600160405280848152602001838152602001828152506012600082015181600001556020820151816001015560408201518160020155905050808284610cef91906137a7565b610cf991906137a7565b601681905550505050565b6000610d18610d11611f2c565b8484611f34565b6001905092915050565b6000600254905090565b610d34611f2c565b73ffffffffffffffffffffffffffffffffffffffff16610d52611655565b73ffffffffffffffffffffffffffffffffffffffff1614610da8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9f906136f7565b60405180910390fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60165481565b6000610dff8484846120ff565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610e4a611f2c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610eca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec19061386f565b60405180910390fd5b610ee785610ed6611f2c565b8584610ee2919061388f565b611f34565b60019150509392505050565b610efb611f2c565b73ffffffffffffffffffffffffffffffffffffffff16610f19611655565b73ffffffffffffffffffffffffffffffffffffffff1614610f6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f66906136f7565b60405180910390fd5b6000479050610f7d846127c9565b60008147610f8b919061388f565b90506000831115611003576110028385610fa591906137a7565b8483610fb191906138c3565b610fbb919061394c565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612a0c90919063ffffffff16565b5b600084111561107957611078838561101b91906137a7565b858361102791906138c3565b611031919061394c565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612a0c90919063ffffffff16565b5b5050505050565b60085481565b60155481565b60006012905090565b60006111376110a2611f2c565b8484600160006110b0611f2c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461113291906137a7565b611f34565b6001905092915050565b60186020528060005260406000206000915054906101000a900460ff1681565b611169611f2c565b73ffffffffffffffffffffffffffffffffffffffff16611187611655565b73ffffffffffffffffffffffffffffffffffffffff16146111dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d4906136f7565b60405180910390fd5b81600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600760169054906101000a900460ff1681565b60095481565b611284611f2c565b73ffffffffffffffffffffffffffffffffffffffff166112a2611655565b73ffffffffffffffffffffffffffffffffffffffff16146112f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ef906136f7565b60405180910390fd5b670de0b6b3a76400008161130c91906138c3565b600b8190555050565b600760159054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611378611f2c565b73ffffffffffffffffffffffffffffffffffffffff16611396611655565b73ffffffffffffffffffffffffffffffffffffffff16146113ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e3906136f7565b60405180910390fd5b6113f66000612b00565b565b600f8060000154908060010154908060020154905083565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61143e611f2c565b73ffffffffffffffffffffffffffffffffffffffff1661145c611655565b73ffffffffffffffffffffffffffffffffffffffff16146114b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a9906136f7565b60405180910390fd5b600760169054906101000a900460ff1615611502576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f9906139c9565b60405180910390fd5b6001600760166101000a81548160ff0219169083151502179055506001600760156101000a81548160ff021916908315150217905550436008819055508060098190555050565b600b5481565b611557611f2c565b73ffffffffffffffffffffffffffffffffffffffff16611575611655565b73ffffffffffffffffffffffffffffffffffffffff16146115cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c2906136f7565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6115ef611655565b836040518363ffffffff1660e01b815260040161160d9291906139e9565b6020604051808303816000875af115801561162c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116509190613a27565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600480546116b490613746565b80601f01602080910402602001604051908101604052809291908181526020018280546116e090613746565b801561172d5780601f106117025761010080835404028352916020019161172d565b820191906000526020600020905b81548152906001019060200180831161171057829003601f168201915b5050505050905090565b61173f611f2c565b73ffffffffffffffffffffffffffffffffffffffff1661175d611655565b73ffffffffffffffffffffffffffffffffffffffff16146117b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117aa906136f7565b60405180910390fd5b80600a8190555050565b6117c5611f2c565b73ffffffffffffffffffffffffffffffffffffffff166117e3611655565b73ffffffffffffffffffffffffffffffffffffffff1614611839576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611830906136f7565b60405180910390fd5b61186981611845611655565b73ffffffffffffffffffffffffffffffffffffffff16612a0c90919063ffffffff16565b50565b6000806001600061187b611f2c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611938576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192f90613ac6565b60405180910390fd5b611955611943611f2c565b858584611950919061388f565b611f34565b600191505092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061199a611993611f2c565b84846120ff565b6001905092915050565b600c5481565b6119b2611f2c565b73ffffffffffffffffffffffffffffffffffffffff166119d0611655565b73ffffffffffffffffffffffffffffffffffffffff1614611a26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1d906136f7565b60405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611a72611f2c565b73ffffffffffffffffffffffffffffffffffffffff16611a90611655565b73ffffffffffffffffffffffffffffffffffffffff1614611ae6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611add906136f7565b60405180910390fd5b670de0b6b3a764000081611afa91906138c3565b600c8190555050565b60176020528060005260406000206000915054906101000a900460ff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611bb2611f2c565b73ffffffffffffffffffffffffffffffffffffffff16611bd0611655565b73ffffffffffffffffffffffffffffffffffffffff1614611c26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1d906136f7565b60405180910390fd5b80600760156101000a81548160ff02191690831515021790555050565b611c4b611f2c565b73ffffffffffffffffffffffffffffffffffffffff16611c69611655565b73ffffffffffffffffffffffffffffffffffffffff1614611cbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb6906136f7565b60405180910390fd5b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611d22611f2c565b73ffffffffffffffffffffffffffffffffffffffff16611d40611655565b73ffffffffffffffffffffffffffffffffffffffff1614611d96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8d906136f7565b60405180910390fd5b604051806060016040528084815260200183815260200182815250600f600082015181600001556020820151816001015560408201518160020155905050808284611de191906137a7565b611deb91906137a7565b601581905550505050565b611dfe611f2c565b73ffffffffffffffffffffffffffffffffffffffff16611e1c611655565b73ffffffffffffffffffffffffffffffffffffffff1614611e72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e69906136f7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611ee2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ed990613b58565b60405180910390fd5b611eeb81612b00565b50565b60128060000154908060010154908060020154905083565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611fa4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9b90613bea565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612014576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200b90613c7c565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516120f29190613242565b60405180910390a3505050565b60008111612142576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213990613d0e565b60405180910390fd5b601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156121e65750601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612225576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221c90613d7a565b60405180910390fd5b601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156122c95750601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156122e25750600760149054906101000a900460ff16155b1561259e57600760169054906101000a900460ff16612336576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232d90613de6565b60405180910390fd5b4360095460085461234791906137a7565b11156124aa57600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146123fb576001601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146124a9576001601860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b600b548111156124ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124e690613e52565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461259d57600c548161255184611328565b61255b91906137a7565b111561259c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161259390613ee4565b60405180910390fd5b5b5b6000600760149054906101000a900460ff16806126045750601760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806126585750601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561266657600090506126fb565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156126dd576064601654836126cc91906138c3565b6126d6919061394c565b90506126fa565b6064601554836126ed91906138c3565b6126f7919061394c565b90505b5b600760159054906101000a900460ff1680156127245750600760149054906101000a900460ff16155b801561277e5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561278a5750600081115b1561279857612797612bc6565b5b6127ae848483856127a9919061388f565b612dca565b60008111156127c3576127c2843083612dca565b5b50505050565b6000600267ffffffffffffffff8111156127e6576127e5613f04565b5b6040519080825280602002602001820160405280156128145781602001602082028036833780820191505090505b509050308160008151811061282c5761282b613f33565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156128d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128f79190613f77565b8160018151811061290b5761290a613f33565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061297230600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611f34565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016129d695949392919061409d565b600060405180830381600087803b1580156129f057600080fd5b505af1158015612a04573d6000803e3d6000fd5b505050505050565b80471015612a4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a4690614143565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1682604051612a7590614194565b60006040518083038185875af1925050503d8060008114612ab2576040519150601f19603f3d011682016040523d82523d6000602084013e612ab7565b606091505b5050905080612afb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612af29061421b565b60405180910390fd5b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600760149054906101000a900460ff16612dc8576001600760146101000a81548160ff0219169083151502179055506000612c0030611328565b9050600a548110612dab5760006002601654612c1c91906138c3565b905060008160126001015484612c3291906138c3565b612c3c919061394c565b905060008184612c4c919061388f565b90506000479050612c5c826127c9565b60008147612c6a919061388f565b9050600060126001015486612c7f919061388f565b82612c8a919061394c565b9050600060126001015482612c9f91906138c3565b90506000811115612cb557612cb48682613049565b5b6000601260000154600284612cca91906138c3565b612cd491906138c3565b90506000811115612d2b57612d2a81600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612a0c90919063ffffffff16565b5b6000601260020154600285612d4091906138c3565b612d4a91906138c3565b90506000811115612da157612da081600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612a0c90919063ffffffff16565b5b5050505050505050505b506000600760146101000a81548160ff0219169083151502179055505b565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612e3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e31906142ad565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612eaa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ea19061433f565b60405180910390fd5b612eb5838383613149565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612f3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f32906143d1565b60405180910390fd5b8181612f47919061388f565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612fd791906137a7565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161303b9190613242565b60405180910390a350505050565b61307630600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611f34565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016130ff969594939291906143f1565b60606040518083038185885af115801561311d573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906131429190614467565b5050505050565b505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061317e82613153565b9050919050565b61318e81613173565b811461319957600080fd5b50565b6000813590506131ab81613185565b92915050565b60008115159050919050565b6131c6816131b1565b81146131d157600080fd5b50565b6000813590506131e3816131bd565b92915050565b60008060408385031215613200576131ff61314e565b5b600061320e8582860161319c565b925050602061321f858286016131d4565b9150509250929050565b6000819050919050565b61323c81613229565b82525050565b60006020820190506132576000830184613233565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561329757808201518184015260208101905061327c565b838111156132a6576000848401525b50505050565b6000601f19601f8301169050919050565b60006132c88261325d565b6132d28185613268565b93506132e2818560208601613279565b6132eb816132ac565b840191505092915050565b6000602082019050818103600083015261331081846132bd565b905092915050565b61332181613229565b811461332c57600080fd5b50565b60008135905061333e81613318565b92915050565b60008060006060848603121561335d5761335c61314e565b5b600061336b8682870161332f565b935050602061337c8682870161332f565b925050604061338d8682870161332f565b9150509250925092565b600080604083850312156133ae576133ad61314e565b5b60006133bc8582860161319c565b92505060206133cd8582860161332f565b9150509250929050565b6133e0816131b1565b82525050565b60006020820190506133fb60008301846133d7565b92915050565b6000602082840312156134175761341661314e565b5b60006134258482850161319c565b91505092915050565b6000806000606084860312156134475761344661314e565b5b60006134558682870161319c565b93505060206134668682870161319c565b92505060406134778682870161332f565b9150509250925092565b600060ff82169050919050565b61349781613481565b82525050565b60006020820190506134b2600083018461348e565b92915050565b60006134c382613173565b9050919050565b6134d3816134b8565b81146134de57600080fd5b50565b6000813590506134f0816134ca565b92915050565b6000806040838503121561350d5761350c61314e565b5b600061351b858286016134e1565b925050602061352c8582860161319c565b9150509250929050565b60006020828403121561354c5761354b61314e565b5b600061355a8482850161332f565b91505092915050565b60006060820190506135786000830186613233565b6135856020830185613233565b6135926040830184613233565b949350505050565b6135a381613173565b82525050565b60006020820190506135be600083018461359a565b92915050565b600080604083850312156135db576135da61314e565b5b60006135e98582860161319c565b92505060206135fa8582860161319c565b9150509250929050565b60006020828403121561361a5761361961314e565b5b6000613628848285016131d4565b91505092915050565b6000819050919050565b600061365661365161364c84613153565b613631565b613153565b9050919050565b60006136688261363b565b9050919050565b600061367a8261365d565b9050919050565b61368a8161366f565b82525050565b60006020820190506136a56000830184613681565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006136e1602083613268565b91506136ec826136ab565b602082019050919050565b60006020820190508181036000830152613710816136d4565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061375e57607f821691505b6020821081141561377257613771613717565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006137b282613229565b91506137bd83613229565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156137f2576137f1613778565b5b828201905092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613859602883613268565b9150613864826137fd565b604082019050919050565b600060208201905081810360008301526138888161384c565b9050919050565b600061389a82613229565b91506138a583613229565b9250828210156138b8576138b7613778565b5b828203905092915050565b60006138ce82613229565b91506138d983613229565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561391257613911613778565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061395782613229565b915061396283613229565b9250826139725761397161391d565b5b828204905092915050565b7f54726164696e6720616c72656164792061637469766500000000000000000000600082015250565b60006139b3601683613268565b91506139be8261397d565b602082019050919050565b600060208201905081810360008301526139e2816139a6565b9050919050565b60006040820190506139fe600083018561359a565b613a0b6020830184613233565b9392505050565b600081519050613a21816131bd565b92915050565b600060208284031215613a3d57613a3c61314e565b5b6000613a4b84828501613a12565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613ab0602583613268565b9150613abb82613a54565b604082019050919050565b60006020820190508181036000830152613adf81613aa3565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613b42602683613268565b9150613b4d82613ae6565b604082019050919050565b60006020820190508181036000830152613b7181613b35565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613bd4602483613268565b9150613bdf82613b78565b604082019050919050565b60006020820190508181036000830152613c0381613bc7565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613c66602283613268565b9150613c7182613c0a565b604082019050919050565b60006020820190508181036000830152613c9581613c59565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613cf8602983613268565b9150613d0382613c9c565b604082019050919050565b60006020820190508181036000830152613d2781613ceb565b9050919050565b7f596f752063616e2774207472616e7366657220746f6b656e7300000000000000600082015250565b6000613d64601983613268565b9150613d6f82613d2e565b602082019050919050565b60006020820190508181036000830152613d9381613d57565b9050919050565b7f54726164696e67206e6f74206163746976652079657400000000000000000000600082015250565b6000613dd0601683613268565b9150613ddb82613d9a565b602082019050919050565b60006020820190508181036000830152613dff81613dc3565b9050919050565b7f596f752061726520657863656564696e67206d61785478416d6f756e74000000600082015250565b6000613e3c601d83613268565b9150613e4782613e06565b602082019050919050565b60006020820190508181036000830152613e6b81613e2f565b9050919050565b7f596f752061726520657863656564696e67206d617857616c6c6574416d6f756e60008201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b6000613ece602183613268565b9150613ed982613e72565b604082019050919050565b60006020820190508181036000830152613efd81613ec1565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050613f7181613185565b92915050565b600060208284031215613f8d57613f8c61314e565b5b6000613f9b84828501613f62565b91505092915050565b6000819050919050565b6000613fc9613fc4613fbf84613fa4565b613631565b613229565b9050919050565b613fd981613fae565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61401481613173565b82525050565b6000614026838361400b565b60208301905092915050565b6000602082019050919050565b600061404a82613fdf565b6140548185613fea565b935061405f83613ffb565b8060005b83811015614090578151614077888261401a565b975061408283614032565b925050600181019050614063565b5085935050505092915050565b600060a0820190506140b26000830188613233565b6140bf6020830187613fd0565b81810360408301526140d1818661403f565b90506140e0606083018561359a565b6140ed6080830184613233565b9695505050505050565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b600061412d601d83613268565b9150614138826140f7565b602082019050919050565b6000602082019050818103600083015261415c81614120565b9050919050565b600081905092915050565b50565b600061417e600083614163565b91506141898261416e565b600082019050919050565b600061419f82614171565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b6000614205603a83613268565b9150614210826141a9565b604082019050919050565b60006020820190508181036000830152614234816141f8565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614297602583613268565b91506142a28261423b565b604082019050919050565b600060208201905081810360008301526142c68161428a565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614329602383613268565b9150614334826142cd565b604082019050919050565b600060208201905081810360008301526143588161431c565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006143bb602683613268565b91506143c68261435f565b604082019050919050565b600060208201905081810360008301526143ea816143ae565b9050919050565b600060c082019050614406600083018961359a565b6144136020830188613233565b6144206040830187613fd0565b61442d6060830186613fd0565b61443a608083018561359a565b61444760a0830184613233565b979650505050505050565b60008151905061446181613318565b92915050565b6000806000606084860312156144805761447f61314e565b5b600061448e86828701614452565b935050602061449f86828701614452565b92505060406144b086828701614452565b915050925092509256fea2646970667358221220bec2579eb3be5bac2012fe896077319df55838661bd3de38f875b6d950c5e19964736f6c634300080c0033
Deployed Bytecode
0x6080604052600436106102815760003560e01c806375f0a8741161014f578063a9059cbb116100c1578063e01af92c1161007a578063e01af92c146109bd578063e545fd6d146109e6578063e9dae5ed14610a0f578063f2fde38b14610a38578063f66895a314610a61578063f887ea4014610a8e57610288565b8063a9059cbb14610889578063aa4bde28146108c6578063aacebbe3146108f1578063c18bc1951461091a578063dbe66ca014610943578063dd62ed3e1461098057610288565b80638ea5220f116101135780638ea5220f1461077957806395d89b41146107a45780639d0014b1146107cf5780639e252f00146107f8578063a457c2d714610821578063a8aa1b311461085e57610288565b806375f0a874146106a657806382aa7c68146106d15780638c0b5e22146106fa5780638cd4426d146107255780638da5cb5b1461074e57610288565b8063293b7ef4116101f357806350c9a88f116101ac57806350c9a88f146105a65780636256d181146105d15780636ddd1713146105fa57806370a0823114610625578063715018a614610662578063728f8eea1461067957610288565b8063293b7ef414610482578063313ce567146104ad57806339509351146104d85780633bbac5791461051557806340b28c2f146105525780634ada218b1461057b57610288565b806318160ddd1161024557806318160ddd146103725780631816467f1461039d5780632253163d146103c657806323b872dd146103f157806326b5d32f1461042e578063274a533c1461045757610288565b806303c0f5d41461028d5780630445b667146102b657806306fdde03146102e1578063087332141461030c578063095ea7b31461033557610288565b3661028857005b600080fd5b34801561029957600080fd5b506102b460048036038101906102af91906131e9565b610ab9565b005b3480156102c257600080fd5b506102cb610b90565b6040516102d89190613242565b60405180910390f35b3480156102ed57600080fd5b506102f6610b96565b60405161030391906132f6565b60405180910390f35b34801561031857600080fd5b50610333600480360381019061032e9190613344565b610c28565b005b34801561034157600080fd5b5061035c60048036038101906103579190613397565b610d04565b60405161036991906133e6565b60405180910390f35b34801561037e57600080fd5b50610387610d22565b6040516103949190613242565b60405180910390f35b3480156103a957600080fd5b506103c460048036038101906103bf9190613401565b610d2c565b005b3480156103d257600080fd5b506103db610dec565b6040516103e89190613242565b60405180910390f35b3480156103fd57600080fd5b506104186004803603810190610413919061342e565b610df2565b60405161042591906133e6565b60405180910390f35b34801561043a57600080fd5b5061045560048036038101906104509190613344565b610ef3565b005b34801561046357600080fd5b5061046c611080565b6040516104799190613242565b60405180910390f35b34801561048e57600080fd5b50610497611086565b6040516104a49190613242565b60405180910390f35b3480156104b957600080fd5b506104c261108c565b6040516104cf919061349d565b60405180910390f35b3480156104e457600080fd5b506104ff60048036038101906104fa9190613397565b611095565b60405161050c91906133e6565b60405180910390f35b34801561052157600080fd5b5061053c60048036038101906105379190613401565b611141565b60405161054991906133e6565b60405180910390f35b34801561055e57600080fd5b50610579600480360381019061057491906134f6565b611161565b005b34801561058757600080fd5b50610590611263565b60405161059d91906133e6565b60405180910390f35b3480156105b257600080fd5b506105bb611276565b6040516105c89190613242565b60405180910390f35b3480156105dd57600080fd5b506105f860048036038101906105f39190613536565b61127c565b005b34801561060657600080fd5b5061060f611315565b60405161061c91906133e6565b60405180910390f35b34801561063157600080fd5b5061064c60048036038101906106479190613401565b611328565b6040516106599190613242565b60405180910390f35b34801561066e57600080fd5b50610677611370565b005b34801561068557600080fd5b5061068e6113f8565b60405161069d93929190613563565b60405180910390f35b3480156106b257600080fd5b506106bb611410565b6040516106c891906135a9565b60405180910390f35b3480156106dd57600080fd5b506106f860048036038101906106f39190613536565b611436565b005b34801561070657600080fd5b5061070f611549565b60405161071c9190613242565b60405180910390f35b34801561073157600080fd5b5061074c60048036038101906107479190613397565b61154f565b005b34801561075a57600080fd5b50610763611655565b60405161077091906135a9565b60405180910390f35b34801561078557600080fd5b5061078e61167f565b60405161079b91906135a9565b60405180910390f35b3480156107b057600080fd5b506107b96116a5565b6040516107c691906132f6565b60405180910390f35b3480156107db57600080fd5b506107f660048036038101906107f19190613536565b611737565b005b34801561080457600080fd5b5061081f600480360381019061081a9190613536565b6117bd565b005b34801561082d57600080fd5b5061084860048036038101906108439190613397565b61186c565b60405161085591906133e6565b60405180910390f35b34801561086a57600080fd5b50610873611960565b60405161088091906135a9565b60405180910390f35b34801561089557600080fd5b506108b060048036038101906108ab9190613397565b611986565b6040516108bd91906133e6565b60405180910390f35b3480156108d257600080fd5b506108db6119a4565b6040516108e89190613242565b60405180910390f35b3480156108fd57600080fd5b5061091860048036038101906109139190613401565b6119aa565b005b34801561092657600080fd5b50610941600480360381019061093c9190613536565b611a6a565b005b34801561094f57600080fd5b5061096a60048036038101906109659190613401565b611b03565b60405161097791906133e6565b60405180910390f35b34801561098c57600080fd5b506109a760048036038101906109a291906135c4565b611b23565b6040516109b49190613242565b60405180910390f35b3480156109c957600080fd5b506109e460048036038101906109df9190613604565b611baa565b005b3480156109f257600080fd5b50610a0d6004803603810190610a0891906131e9565b611c43565b005b348015610a1b57600080fd5b50610a366004803603810190610a319190613344565b611d1a565b005b348015610a4457600080fd5b50610a5f6004803603810190610a5a9190613401565b611df6565b005b348015610a6d57600080fd5b50610a76611eee565b604051610a8593929190613563565b60405180910390f35b348015610a9a57600080fd5b50610aa3611f06565b604051610ab09190613690565b60405180910390f35b610ac1611f2c565b73ffffffffffffffffffffffffffffffffffffffff16610adf611655565b73ffffffffffffffffffffffffffffffffffffffff1614610b35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2c906136f7565b60405180910390fd5b80601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600a5481565b606060038054610ba590613746565b80601f0160208091040260200160405190810160405280929190818152602001828054610bd190613746565b8015610c1e5780601f10610bf357610100808354040283529160200191610c1e565b820191906000526020600020905b815481529060010190602001808311610c0157829003601f168201915b5050505050905090565b610c30611f2c565b73ffffffffffffffffffffffffffffffffffffffff16610c4e611655565b73ffffffffffffffffffffffffffffffffffffffff1614610ca4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9b906136f7565b60405180910390fd5b6040518060600160405280848152602001838152602001828152506012600082015181600001556020820151816001015560408201518160020155905050808284610cef91906137a7565b610cf991906137a7565b601681905550505050565b6000610d18610d11611f2c565b8484611f34565b6001905092915050565b6000600254905090565b610d34611f2c565b73ffffffffffffffffffffffffffffffffffffffff16610d52611655565b73ffffffffffffffffffffffffffffffffffffffff1614610da8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9f906136f7565b60405180910390fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60165481565b6000610dff8484846120ff565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610e4a611f2c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610eca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec19061386f565b60405180910390fd5b610ee785610ed6611f2c565b8584610ee2919061388f565b611f34565b60019150509392505050565b610efb611f2c565b73ffffffffffffffffffffffffffffffffffffffff16610f19611655565b73ffffffffffffffffffffffffffffffffffffffff1614610f6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f66906136f7565b60405180910390fd5b6000479050610f7d846127c9565b60008147610f8b919061388f565b90506000831115611003576110028385610fa591906137a7565b8483610fb191906138c3565b610fbb919061394c565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612a0c90919063ffffffff16565b5b600084111561107957611078838561101b91906137a7565b858361102791906138c3565b611031919061394c565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612a0c90919063ffffffff16565b5b5050505050565b60085481565b60155481565b60006012905090565b60006111376110a2611f2c565b8484600160006110b0611f2c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461113291906137a7565b611f34565b6001905092915050565b60186020528060005260406000206000915054906101000a900460ff1681565b611169611f2c565b73ffffffffffffffffffffffffffffffffffffffff16611187611655565b73ffffffffffffffffffffffffffffffffffffffff16146111dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d4906136f7565b60405180910390fd5b81600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600760169054906101000a900460ff1681565b60095481565b611284611f2c565b73ffffffffffffffffffffffffffffffffffffffff166112a2611655565b73ffffffffffffffffffffffffffffffffffffffff16146112f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ef906136f7565b60405180910390fd5b670de0b6b3a76400008161130c91906138c3565b600b8190555050565b600760159054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611378611f2c565b73ffffffffffffffffffffffffffffffffffffffff16611396611655565b73ffffffffffffffffffffffffffffffffffffffff16146113ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e3906136f7565b60405180910390fd5b6113f66000612b00565b565b600f8060000154908060010154908060020154905083565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61143e611f2c565b73ffffffffffffffffffffffffffffffffffffffff1661145c611655565b73ffffffffffffffffffffffffffffffffffffffff16146114b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a9906136f7565b60405180910390fd5b600760169054906101000a900460ff1615611502576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f9906139c9565b60405180910390fd5b6001600760166101000a81548160ff0219169083151502179055506001600760156101000a81548160ff021916908315150217905550436008819055508060098190555050565b600b5481565b611557611f2c565b73ffffffffffffffffffffffffffffffffffffffff16611575611655565b73ffffffffffffffffffffffffffffffffffffffff16146115cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c2906136f7565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6115ef611655565b836040518363ffffffff1660e01b815260040161160d9291906139e9565b6020604051808303816000875af115801561162c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116509190613a27565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600480546116b490613746565b80601f01602080910402602001604051908101604052809291908181526020018280546116e090613746565b801561172d5780601f106117025761010080835404028352916020019161172d565b820191906000526020600020905b81548152906001019060200180831161171057829003601f168201915b5050505050905090565b61173f611f2c565b73ffffffffffffffffffffffffffffffffffffffff1661175d611655565b73ffffffffffffffffffffffffffffffffffffffff16146117b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117aa906136f7565b60405180910390fd5b80600a8190555050565b6117c5611f2c565b73ffffffffffffffffffffffffffffffffffffffff166117e3611655565b73ffffffffffffffffffffffffffffffffffffffff1614611839576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611830906136f7565b60405180910390fd5b61186981611845611655565b73ffffffffffffffffffffffffffffffffffffffff16612a0c90919063ffffffff16565b50565b6000806001600061187b611f2c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611938576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192f90613ac6565b60405180910390fd5b611955611943611f2c565b858584611950919061388f565b611f34565b600191505092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061199a611993611f2c565b84846120ff565b6001905092915050565b600c5481565b6119b2611f2c565b73ffffffffffffffffffffffffffffffffffffffff166119d0611655565b73ffffffffffffffffffffffffffffffffffffffff1614611a26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1d906136f7565b60405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611a72611f2c565b73ffffffffffffffffffffffffffffffffffffffff16611a90611655565b73ffffffffffffffffffffffffffffffffffffffff1614611ae6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611add906136f7565b60405180910390fd5b670de0b6b3a764000081611afa91906138c3565b600c8190555050565b60176020528060005260406000206000915054906101000a900460ff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611bb2611f2c565b73ffffffffffffffffffffffffffffffffffffffff16611bd0611655565b73ffffffffffffffffffffffffffffffffffffffff1614611c26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1d906136f7565b60405180910390fd5b80600760156101000a81548160ff02191690831515021790555050565b611c4b611f2c565b73ffffffffffffffffffffffffffffffffffffffff16611c69611655565b73ffffffffffffffffffffffffffffffffffffffff1614611cbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb6906136f7565b60405180910390fd5b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611d22611f2c565b73ffffffffffffffffffffffffffffffffffffffff16611d40611655565b73ffffffffffffffffffffffffffffffffffffffff1614611d96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8d906136f7565b60405180910390fd5b604051806060016040528084815260200183815260200182815250600f600082015181600001556020820151816001015560408201518160020155905050808284611de191906137a7565b611deb91906137a7565b601581905550505050565b611dfe611f2c565b73ffffffffffffffffffffffffffffffffffffffff16611e1c611655565b73ffffffffffffffffffffffffffffffffffffffff1614611e72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e69906136f7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611ee2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ed990613b58565b60405180910390fd5b611eeb81612b00565b50565b60128060000154908060010154908060020154905083565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611fa4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9b90613bea565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612014576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200b90613c7c565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516120f29190613242565b60405180910390a3505050565b60008111612142576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213990613d0e565b60405180910390fd5b601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156121e65750601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612225576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221c90613d7a565b60405180910390fd5b601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156122c95750601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156122e25750600760149054906101000a900460ff16155b1561259e57600760169054906101000a900460ff16612336576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232d90613de6565b60405180910390fd5b4360095460085461234791906137a7565b11156124aa57600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146123fb576001601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146124a9576001601860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b600b548111156124ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124e690613e52565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461259d57600c548161255184611328565b61255b91906137a7565b111561259c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161259390613ee4565b60405180910390fd5b5b5b6000600760149054906101000a900460ff16806126045750601760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806126585750601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561266657600090506126fb565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156126dd576064601654836126cc91906138c3565b6126d6919061394c565b90506126fa565b6064601554836126ed91906138c3565b6126f7919061394c565b90505b5b600760159054906101000a900460ff1680156127245750600760149054906101000a900460ff16155b801561277e5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561278a5750600081115b1561279857612797612bc6565b5b6127ae848483856127a9919061388f565b612dca565b60008111156127c3576127c2843083612dca565b5b50505050565b6000600267ffffffffffffffff8111156127e6576127e5613f04565b5b6040519080825280602002602001820160405280156128145781602001602082028036833780820191505090505b509050308160008151811061282c5761282b613f33565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156128d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128f79190613f77565b8160018151811061290b5761290a613f33565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061297230600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611f34565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016129d695949392919061409d565b600060405180830381600087803b1580156129f057600080fd5b505af1158015612a04573d6000803e3d6000fd5b505050505050565b80471015612a4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a4690614143565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1682604051612a7590614194565b60006040518083038185875af1925050503d8060008114612ab2576040519150601f19603f3d011682016040523d82523d6000602084013e612ab7565b606091505b5050905080612afb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612af29061421b565b60405180910390fd5b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600760149054906101000a900460ff16612dc8576001600760146101000a81548160ff0219169083151502179055506000612c0030611328565b9050600a548110612dab5760006002601654612c1c91906138c3565b905060008160126001015484612c3291906138c3565b612c3c919061394c565b905060008184612c4c919061388f565b90506000479050612c5c826127c9565b60008147612c6a919061388f565b9050600060126001015486612c7f919061388f565b82612c8a919061394c565b9050600060126001015482612c9f91906138c3565b90506000811115612cb557612cb48682613049565b5b6000601260000154600284612cca91906138c3565b612cd491906138c3565b90506000811115612d2b57612d2a81600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612a0c90919063ffffffff16565b5b6000601260020154600285612d4091906138c3565b612d4a91906138c3565b90506000811115612da157612da081600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612a0c90919063ffffffff16565b5b5050505050505050505b506000600760146101000a81548160ff0219169083151502179055505b565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612e3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e31906142ad565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612eaa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ea19061433f565b60405180910390fd5b612eb5838383613149565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612f3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f32906143d1565b60405180910390fd5b8181612f47919061388f565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612fd791906137a7565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161303b9190613242565b60405180910390a350505050565b61307630600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611f34565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016130ff969594939291906143f1565b60606040518083038185885af115801561311d573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906131429190614467565b5050505050565b505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061317e82613153565b9050919050565b61318e81613173565b811461319957600080fd5b50565b6000813590506131ab81613185565b92915050565b60008115159050919050565b6131c6816131b1565b81146131d157600080fd5b50565b6000813590506131e3816131bd565b92915050565b60008060408385031215613200576131ff61314e565b5b600061320e8582860161319c565b925050602061321f858286016131d4565b9150509250929050565b6000819050919050565b61323c81613229565b82525050565b60006020820190506132576000830184613233565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561329757808201518184015260208101905061327c565b838111156132a6576000848401525b50505050565b6000601f19601f8301169050919050565b60006132c88261325d565b6132d28185613268565b93506132e2818560208601613279565b6132eb816132ac565b840191505092915050565b6000602082019050818103600083015261331081846132bd565b905092915050565b61332181613229565b811461332c57600080fd5b50565b60008135905061333e81613318565b92915050565b60008060006060848603121561335d5761335c61314e565b5b600061336b8682870161332f565b935050602061337c8682870161332f565b925050604061338d8682870161332f565b9150509250925092565b600080604083850312156133ae576133ad61314e565b5b60006133bc8582860161319c565b92505060206133cd8582860161332f565b9150509250929050565b6133e0816131b1565b82525050565b60006020820190506133fb60008301846133d7565b92915050565b6000602082840312156134175761341661314e565b5b60006134258482850161319c565b91505092915050565b6000806000606084860312156134475761344661314e565b5b60006134558682870161319c565b93505060206134668682870161319c565b92505060406134778682870161332f565b9150509250925092565b600060ff82169050919050565b61349781613481565b82525050565b60006020820190506134b2600083018461348e565b92915050565b60006134c382613173565b9050919050565b6134d3816134b8565b81146134de57600080fd5b50565b6000813590506134f0816134ca565b92915050565b6000806040838503121561350d5761350c61314e565b5b600061351b858286016134e1565b925050602061352c8582860161319c565b9150509250929050565b60006020828403121561354c5761354b61314e565b5b600061355a8482850161332f565b91505092915050565b60006060820190506135786000830186613233565b6135856020830185613233565b6135926040830184613233565b949350505050565b6135a381613173565b82525050565b60006020820190506135be600083018461359a565b92915050565b600080604083850312156135db576135da61314e565b5b60006135e98582860161319c565b92505060206135fa8582860161319c565b9150509250929050565b60006020828403121561361a5761361961314e565b5b6000613628848285016131d4565b91505092915050565b6000819050919050565b600061365661365161364c84613153565b613631565b613153565b9050919050565b60006136688261363b565b9050919050565b600061367a8261365d565b9050919050565b61368a8161366f565b82525050565b60006020820190506136a56000830184613681565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006136e1602083613268565b91506136ec826136ab565b602082019050919050565b60006020820190508181036000830152613710816136d4565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061375e57607f821691505b6020821081141561377257613771613717565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006137b282613229565b91506137bd83613229565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156137f2576137f1613778565b5b828201905092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613859602883613268565b9150613864826137fd565b604082019050919050565b600060208201905081810360008301526138888161384c565b9050919050565b600061389a82613229565b91506138a583613229565b9250828210156138b8576138b7613778565b5b828203905092915050565b60006138ce82613229565b91506138d983613229565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561391257613911613778565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061395782613229565b915061396283613229565b9250826139725761397161391d565b5b828204905092915050565b7f54726164696e6720616c72656164792061637469766500000000000000000000600082015250565b60006139b3601683613268565b91506139be8261397d565b602082019050919050565b600060208201905081810360008301526139e2816139a6565b9050919050565b60006040820190506139fe600083018561359a565b613a0b6020830184613233565b9392505050565b600081519050613a21816131bd565b92915050565b600060208284031215613a3d57613a3c61314e565b5b6000613a4b84828501613a12565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613ab0602583613268565b9150613abb82613a54565b604082019050919050565b60006020820190508181036000830152613adf81613aa3565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613b42602683613268565b9150613b4d82613ae6565b604082019050919050565b60006020820190508181036000830152613b7181613b35565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613bd4602483613268565b9150613bdf82613b78565b604082019050919050565b60006020820190508181036000830152613c0381613bc7565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613c66602283613268565b9150613c7182613c0a565b604082019050919050565b60006020820190508181036000830152613c9581613c59565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613cf8602983613268565b9150613d0382613c9c565b604082019050919050565b60006020820190508181036000830152613d2781613ceb565b9050919050565b7f596f752063616e2774207472616e7366657220746f6b656e7300000000000000600082015250565b6000613d64601983613268565b9150613d6f82613d2e565b602082019050919050565b60006020820190508181036000830152613d9381613d57565b9050919050565b7f54726164696e67206e6f74206163746976652079657400000000000000000000600082015250565b6000613dd0601683613268565b9150613ddb82613d9a565b602082019050919050565b60006020820190508181036000830152613dff81613dc3565b9050919050565b7f596f752061726520657863656564696e67206d61785478416d6f756e74000000600082015250565b6000613e3c601d83613268565b9150613e4782613e06565b602082019050919050565b60006020820190508181036000830152613e6b81613e2f565b9050919050565b7f596f752061726520657863656564696e67206d617857616c6c6574416d6f756e60008201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b6000613ece602183613268565b9150613ed982613e72565b604082019050919050565b60006020820190508181036000830152613efd81613ec1565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050613f7181613185565b92915050565b600060208284031215613f8d57613f8c61314e565b5b6000613f9b84828501613f62565b91505092915050565b6000819050919050565b6000613fc9613fc4613fbf84613fa4565b613631565b613229565b9050919050565b613fd981613fae565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61401481613173565b82525050565b6000614026838361400b565b60208301905092915050565b6000602082019050919050565b600061404a82613fdf565b6140548185613fea565b935061405f83613ffb565b8060005b83811015614090578151614077888261401a565b975061408283614032565b925050600181019050614063565b5085935050505092915050565b600060a0820190506140b26000830188613233565b6140bf6020830187613fd0565b81810360408301526140d1818661403f565b90506140e0606083018561359a565b6140ed6080830184613233565b9695505050505050565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b600061412d601d83613268565b9150614138826140f7565b602082019050919050565b6000602082019050818103600083015261415c81614120565b9050919050565b600081905092915050565b50565b600061417e600083614163565b91506141898261416e565b600082019050919050565b600061419f82614171565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b6000614205603a83613268565b9150614210826141a9565b604082019050919050565b60006020820190508181036000830152614234816141f8565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614297602583613268565b91506142a28261423b565b604082019050919050565b600060208201905081810360008301526142c68161428a565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614329602383613268565b9150614334826142cd565b604082019050919050565b600060208201905081810360008301526143588161431c565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006143bb602683613268565b91506143c68261435f565b604082019050919050565b600060208201905081810360008301526143ea816143ae565b9050919050565b600060c082019050614406600083018961359a565b6144136020830188613233565b6144206040830187613fd0565b61442d6060830186613fd0565b61443a608083018561359a565b61444760a0830184613233565b979650505050505050565b60008151905061446181613318565b92915050565b6000806000606084860312156144805761447f61314e565b5b600061448e86828701614452565b935050602061449f86828701614452565b92505060406144b086828701614452565b915050925092509256fea2646970667358221220bec2579eb3be5bac2012fe896077319df55838661bd3de38f875b6d950c5e19964736f6c634300080c0033
Deployed Bytecode Sourcemap
14147:8230:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20995:106;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14456:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3312:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20392:214;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5486:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4435:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20738:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15012:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6138:424;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21769:546;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14382:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14980:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4276:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6972:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15107:38;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20849:137;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14346:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14417:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21253:109;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14316:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4607:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12918:94;;;;;;;;;;;;;:::i;:::-;;14895:33;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;14625:75;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19898:274;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14508:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21497:142;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12693:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14707:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3532:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19779:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21648:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7691:378;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14259:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4948:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14564:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20615:114;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21371:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15051:49;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5187:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19677:93;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21110:134;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20181:202;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13021:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14935:38;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;14231:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20995:106;12840:12;:10;:12::i;:::-;12829:23;;:7;:5;:7::i;:::-;:23;;;12821:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21088:5:::1;21071;:14;21077:7;21071:14;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;20995:106:::0;;:::o;14456:45::-;;;;:::o;3312:100::-;3366:13;3399:5;3392:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3312:100;:::o;20392:214::-;12840:12;:10;:12::i;:::-;12829:23;;:7;:5;:7::i;:::-;:23;;;12821:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20509:35:::1;;;;;;;;20515:10;20509:35;;;;20527:10;20509:35;;;;20539:4;20509:35;;::::0;20497:9:::1;:47;;;;;;;;;;;;;;;;;;;;;;;;;;;20594:4;20581:10;20568;:23;;;;:::i;:::-;:30;;;;:::i;:::-;20555:10;:43;;;;20392:214:::0;;;:::o;5486:169::-;5569:4;5586:39;5595:12;:10;:12::i;:::-;5609:7;5618:6;5586:8;:39::i;:::-;5643:4;5636:11;;5486:169;;;;:::o;4435:108::-;4496:7;4523:12;;4516:19;;4435:108;:::o;20738:102::-;12840:12;:10;:12::i;:::-;12829:23;;:7;:5;:7::i;:::-;:23;;;12821:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20823:9:::1;20811;;:21;;;;;;;;;;;;;;;;;;20738:102:::0;:::o;15012:29::-;;;;:::o;6138:424::-;6244:4;6261:36;6271:6;6279:9;6290:6;6261:9;:36::i;:::-;6311:24;6338:11;:19;6350:6;6338:19;;;;;;;;;;;;;;;:33;6358:12;:10;:12::i;:::-;6338:33;;;;;;;;;;;;;;;;6311:60;;6410:6;6390:16;:26;;6382:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;6472:57;6481:6;6489:12;:10;:12::i;:::-;6522:6;6503:16;:25;;;;:::i;:::-;6472:8;:57::i;:::-;6550:4;6543:11;;;6138:424;;;;;:::o;21769:546::-;12840:12;:10;:12::i;:::-;12829:23;;:7;:5;:7::i;:::-;:23;;;12821:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21886:19:::1;21908:21;21886:43;;21940:24;21957:6;21940:16;:24::i;:::-;21975:18;22020:11;21996:21;:35;;;;:::i;:::-;21975:56;;22067:1;22045:19;:23;22042:136;;;22070:108;22157:19;22141:13;:35;;;;:::i;:::-;22118:19;22105:10;:32;;;;:::i;:::-;:72;;;;:::i;:::-;22078:15;;;;;;;;;;;22070:34;;;;:108;;;;:::i;:::-;22042:136;22208:1;22192:13;:17;22189:118;;;22211:96;22286:19;22270:13;:35;;;;:::i;:::-;22253:13;22240:10;:26;;;;:::i;:::-;:66;;;;:::i;:::-;22219:9;;;;;;;;;;;22211:28;;;;:96;;;;:::i;:::-;22189:118;21875:440;;21769:546:::0;;;:::o;14382:28::-;;;;:::o;14980:25::-;;;;:::o;4276:93::-;4334:5;4359:2;4352:9;;4276:93;:::o;6972:215::-;7060:4;7077:80;7086:12;:10;:12::i;:::-;7100:7;7146:10;7109:11;:25;7121:12;:10;:12::i;:::-;7109:25;;;;;;;;;;;;;;;:34;7135:7;7109:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;7077:8;:80::i;:::-;7175:4;7168:11;;6972:215;;;;:::o;15107:38::-;;;;;;;;;;;;;;;;;;;;;;:::o;20849:137::-;12840:12;:10;:12::i;:::-;12829:23;;:7;:5;:7::i;:::-;:23;;;12821:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20948:7:::1;20939:6;;:16;;;;;;;;;;;;;;;;;;20973:5;20966:4;;:12;;;;;;;;;;;;;;;;;;20849:137:::0;;:::o;14346:26::-;;;;;;;;;;;;;:::o;14417:29::-;;;;:::o;21253:109::-;12840:12;:10;:12::i;:::-;12829:23;;:7;:5;:7::i;:::-;:23;;;12821:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21348:6:::1;21339;:15;;;;:::i;:::-;21325:11;:29;;;;21253:109:::0;:::o;14316:23::-;;;;;;;;;;;;;:::o;4607:127::-;4681:7;4708:9;:18;4718:7;4708:18;;;;;;;;;;;;;;;;4701:25;;4607:127;;;:::o;12918:94::-;12840:12;:10;:12::i;:::-;12829:23;;:7;:5;:7::i;:::-;:23;;;12821:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12983:21:::1;13001:1;12983:9;:21::i;:::-;12918:94::o:0;14895:33::-;;;;;;;;;;;;;;;;;;;:::o;14625:75::-;;;;;;;;;;;;;:::o;19898:274::-;12840:12;:10;:12::i;:::-;12829:23;;:7;:5;:7::i;:::-;:23;;;12821:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19984:14:::1;;;;;;;;;;;19983:15;19975:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;20053:4;20036:14;;:21;;;;;;;;;;;;;;;;;;20082:4;20068:11;;:18;;;;;;;;;;;;;;;;;;20113:12;20097:13;:28;;;;20149:15;20136:10;:28;;;;19898:274:::0;:::o;14508:49::-;;;;:::o;21497:142::-;12840:12;:10;:12::i;:::-;12829:23;;:7;:5;:7::i;:::-;:23;;;12821:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21592:12:::1;21585:29;;;21615:7;:5;:7::i;:::-;21624:6;21585:46;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21497:142:::0;;:::o;12693:87::-;12739:7;12766:6;;;;;;;;;;;12759:13;;12693:87;:::o;14707:69::-;;;;;;;;;;;;;:::o;3532:104::-;3588:13;3621:7;3614:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3532:104;:::o;19779:110::-;12840:12;:10;:12::i;:::-;12829:23;;:7;:5;:7::i;:::-;:23;;;12821:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19871:10:::1;19855:13;:26;;;;19779:110:::0;:::o;21648:112::-;12840:12;:10;:12::i;:::-;12829:23;;:7;:5;:7::i;:::-;:23;;;12821:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21715:37:::1;21742:9;21723:7;:5;:7::i;:::-;21715:26;;;;:37;;;;:::i;:::-;21648:112:::0;:::o;7691:378::-;7784:4;7801:24;7828:11;:25;7840:12;:10;:12::i;:::-;7828:25;;;;;;;;;;;;;;;:34;7854:7;7828:34;;;;;;;;;;;;;;;;7801:61;;7901:15;7881:16;:35;;7873:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;7969:67;7978:12;:10;:12::i;:::-;7992:7;8020:15;8001:16;:34;;;;:::i;:::-;7969:8;:67::i;:::-;8057:4;8050:11;;;7691:378;;;;:::o;14259:19::-;;;;;;;;;;;;;:::o;4948:175::-;5034:4;5051:42;5061:12;:10;:12::i;:::-;5075:9;5086:6;5051:9;:42::i;:::-;5111:4;5104:11;;4948:175;;;;:::o;14564:51::-;;;;:::o;20615:114::-;12840:12;:10;:12::i;:::-;12829:23;;:7;:5;:7::i;:::-;:23;;;12821:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20712:9:::1;20694:15;;:27;;;;;;;;;;;;;;;;;;20615:114:::0;:::o;21371:117::-;12840:12;:10;:12::i;:::-;12829:23;;:7;:5;:7::i;:::-;:23;;;12821:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21474:6:::1;21465;:15;;;;:::i;:::-;21447;:33;;;;21371:117:::0;:::o;15051:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;5187:151::-;5276:7;5303:11;:18;5315:5;5303:18;;;;;;;;;;;;;;;:27;5322:7;5303:27;;;;;;;;;;;;;;;;5296:34;;5187:151;;;;:::o;19677:93::-;12840:12;:10;:12::i;:::-;12829:23;;:7;:5;:7::i;:::-;:23;;;12821:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19757:5:::1;19743:11;;:19;;;;;;;;;;;;;;;;;;19677:93:::0;:::o;21110:134::-;12840:12;:10;:12::i;:::-;12829:23;;:7;:5;:7::i;:::-;:23;;;12821:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21231:5:::1;21202:16;:26;21219:8;21202:26;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;21110:134:::0;;:::o;20181:202::-;12840:12;:10;:12::i;:::-;12829:23;;:7;:5;:7::i;:::-;:23;;;12821:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20290:35:::1;;;;;;;;20296:10;20290:35;;;;20308:10;20290:35;;;;20320:4;20290:35;;::::0;20282:5:::1;:43;;;;;;;;;;;;;;;;;;;;;;;;;;;20371:4;20358:10;20345;:23;;;;:::i;:::-;:30;;;;:::i;:::-;20336:6;:39;;;;20181:202:::0;;;:::o;13021:192::-;12840:12;:10;:12::i;:::-;12829:23;;:7;:5;:7::i;:::-;:23;;;12821:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13130:1:::1;13110:22;;:8;:22;;;;13102:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;13186:19;13196:8;13186:9;:19::i;:::-;13021:192:::0;:::o;14935:38::-;;;;;;;;;;;;;;;;;;;:::o;14231:21::-;;;;;;;;;;;;;:::o;1009:98::-;1062:7;1089:10;1082:17;;1009:98;:::o;11060:347::-;11179:1;11162:19;;:5;:19;;;;11154:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11260:1;11241:21;;:7;:21;;;;11233:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11345:6;11315:11;:18;11327:5;11315:18;;;;;;;;;;;;;;;:27;11334:7;11315:27;;;;;;;;;;;;;;;:36;;;;11383:7;11367:32;;11376:5;11367:32;;;11392:6;11367:32;;;;;;:::i;:::-;;;;;;;;11060:347;;;:::o;15855:1533::-;15971:1;15962:6;:10;15954:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;16038:5;:13;16044:6;16038:13;;;;;;;;;;;;;;;;;;;;;;;;;16037:14;:35;;;;;16056:5;:16;16062:9;16056:16;;;;;;;;;;;;;;;;;;;;;;;;;16055:17;16037:35;16029:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;16123:16;:24;16140:6;16123:24;;;;;;;;;;;;;;;;;;;;;;;;;16122:25;:57;;;;;16152:16;:27;16169:9;16152:27;;;;;;;;;;;;;;;;;;;;;;;;;16151:28;16122:57;:70;;;;;16184:8;;;;;;;;;;;16183:9;16122:70;16119:589;;;16216:14;;;;;;;;;;;16208:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;16304:12;16291:10;;16275:13;;:26;;;;:::i;:::-;:41;16272:183;;;16352:4;;;;;;;;;;;16339:17;;:9;:17;;;16336:45;;16377:4;16358:5;:16;16364:9;16358:16;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;16336:45;16413:4;;;;;;;;;;;16403:14;;:6;:14;;;16400:39;;16435:4;16419:5;:13;16425:6;16419:13;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;16400:39;16272:183;16487:11;;16477:6;:21;;16469:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;16563:4;;;;;;;;;;;16550:17;;:9;:17;;;16547:150;;16628:15;;16618:6;16595:20;16605:9;16595;:20::i;:::-;:29;;;;:::i;:::-;:48;;16587:94;;;;;;;;;;;;:::i;:::-;;;;;;;;;16547:150;16119:589;16721:11;16821:8;;;;;;;;;;;:36;;;;16833:16;:24;16850:6;16833:24;;;;;;;;;;;;;;;;;;;;;;;;;16821:36;:67;;;;16861:16;:27;16878:9;16861:27;;;;;;;;;;;;;;;;;;;;;;;;;16821:67;16817:250;;;16896:1;16890:7;;16817:250;;;16971:4;;;;;;;;;;;16958:17;;:9;:17;;;16955:100;;;17005:3;16992:10;;16983:6;:19;;;;:::i;:::-;:25;;;;:::i;:::-;16977:31;;16955:100;;;17052:3;17043:6;;17034;:15;;;;:::i;:::-;:21;;;;:::i;:::-;17028:27;;16955:100;16817:250;17181:11;;;;;;;;;;;:24;;;;;17197:8;;;;;;;;;;;17196:9;17181:24;:42;;;;;17219:4;;;;;;;;;;;17209:14;;:6;:14;;;;17181:42;:53;;;;;17233:1;17227:3;:7;17181:53;17177:72;;;17236:13;:11;:13::i;:::-;17177:72;17263:48;17279:6;17287:9;17307:3;17298:6;:12;;;;:::i;:::-;17263:15;:48::i;:::-;17331:1;17325:3;:7;17322:55;;;17334:43;17350:6;17366:4;17373:3;17334:15;:43::i;:::-;17322:55;15943:1445;15855:1533;;;:::o;18758:403::-;18824:21;18862:1;18848:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18824:40;;18893:4;18875;18880:1;18875:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;18919:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18909:4;18914:1;18909:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;18946:53;18963:4;18978:6;;;;;;;;;;;18987:11;18946:8;:53::i;:::-;19039:6;;;;;;;;;;;:57;;;19097:11;19110:1;19113:4;19127;19134:15;19039:111;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18813:348;18758:403;:::o;12133:318::-;12248:6;12223:21;:31;;12215:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;12303:12;12321:9;:14;;12343:6;12321:33;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12302:52;;;12373:7;12365:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;12204:247;12133:318;;:::o;13222:173::-;13278:16;13297:6;;;;;;;;;;;13278:25;;13323:8;13314:6;;:17;;;;;;;;;;;;;;;;;;13378:8;13347:40;;13368:8;13347:40;;;;;;;;;;;;13267:128;13222:173;:::o;17397:1349::-;15189:8;;;;;;;;;;;15184:104;;15225:4;15214:8;;:15;;;;;;;;;;;;;;;;;;17446:23:::1;17472:24;17490:4;17472:9;:24::i;:::-;17446:50;;17530:13;;17511:15;:32;17507:1232;;17618:19;17653:1;17640:10;;:14;;;;:::i;:::-;17618:36;;17669:32;17744:11;17722:9;:19;;;17704:15;:37;;;;:::i;:::-;:51;;;;:::i;:::-;17669:86;;17770:14;17805:24;17787:15;:42;;;;:::i;:::-;17770:59;;17847:22;17872:21;17847:46;;17911:24;17928:6;17911:16;:24::i;:::-;17953:20;18000:14;17976:21;:38;;;;:::i;:::-;17953:61;;18029:19;18080:9;:19;;;18066:11;:33;;;;:::i;:::-;18050:12;:50;;;;:::i;:::-;18029:71;;18115:29;18161:9;:19;;;18147:11;:33;;;;:::i;:::-;18115:65;;18225:1;18201:21;:25;18198:170;;;18291:61;18304:24;18330:21;18291:12;:61::i;:::-;18198:170;18385:20;18426:9;:19;;;18422:1;18408:11;:15;;;;:::i;:::-;:37;;;;:::i;:::-;18385:60;;18478:1;18463:12;:16;18460:103;;;18499:48;18534:12;18507:15;;;;;;;;;;;18499:34;;;;:48;;;;:::i;:::-;18460:103;18580:14;18615:9;:13;;;18611:1;18597:11;:15;;;;:::i;:::-;:31;;;;:::i;:::-;18580:48;;18655:1;18646:6;:10;18643:85;;;18676:36;18705:6;18684:9;;;;;;;;;;;18676:28;;;;:36;;;;:::i;:::-;18643:85;17545:1194;;;;;;;;;17507:1232;17435:1311;15271:5:::0;15260:8;;:16;;;;;;;;;;;;;;;;;;15184:104;17397:1349::o;8560:607::-;8684:1;8666:20;;:6;:20;;;;8658:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;8768:1;8747:23;;:9;:23;;;;8739:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;8824:47;8845:6;8853:9;8864:6;8824:20;:47::i;:::-;8885:21;8909:9;:17;8919:6;8909:17;;;;;;;;;;;;;;;;8885:41;;8962:6;8945:13;:23;;8937:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;9058:6;9042:13;:22;;;;:::i;:::-;9022:9;:17;9032:6;9022:17;;;;;;;;;;;;;;;:42;;;;9099:6;9075:9;:20;9085:9;9075:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;9141:9;9124:35;;9133:6;9124:35;;;9152:6;9124:35;;;;;;:::i;:::-;;;;;;;;8647:520;8560:607;;;:::o;19170:498::-;19318:53;19335:4;19350:6;;;;;;;;;;;19359:11;19318:8;:53::i;:::-;19415:6;;;;;;;;;;;:22;;;19445:9;19478:4;19498:11;19524:1;19567;19610:9;;;;;;;;;;;19634:15;19415:245;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;19170:498;;:::o;12011:92::-;;;;:::o;88:117:1:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:90::-;875:7;918:5;911:13;904:21;893:32;;841:90;;;:::o;937:116::-;1007:21;1022:5;1007:21;:::i;:::-;1000:5;997:32;987:60;;1043:1;1040;1033:12;987:60;937:116;:::o;1059:133::-;1102:5;1140:6;1127:20;1118:29;;1156:30;1180:5;1156:30;:::i;:::-;1059:133;;;;:::o;1198:468::-;1263:6;1271;1320:2;1308:9;1299:7;1295:23;1291:32;1288:119;;;1326:79;;:::i;:::-;1288:119;1446:1;1471:53;1516:7;1507:6;1496:9;1492:22;1471:53;:::i;:::-;1461:63;;1417:117;1573:2;1599:50;1641:7;1632:6;1621:9;1617:22;1599:50;:::i;:::-;1589:60;;1544:115;1198:468;;;;;:::o;1672:77::-;1709:7;1738:5;1727:16;;1672:77;;;:::o;1755:118::-;1842:24;1860:5;1842:24;:::i;:::-;1837:3;1830:37;1755:118;;:::o;1879:222::-;1972:4;2010:2;1999:9;1995:18;1987:26;;2023:71;2091:1;2080:9;2076:17;2067:6;2023:71;:::i;:::-;1879:222;;;;:::o;2107:99::-;2159:6;2193:5;2187:12;2177:22;;2107:99;;;:::o;2212:169::-;2296:11;2330:6;2325:3;2318:19;2370:4;2365:3;2361:14;2346:29;;2212:169;;;;:::o;2387:307::-;2455:1;2465:113;2479:6;2476:1;2473:13;2465:113;;;2564:1;2559:3;2555:11;2549:18;2545:1;2540:3;2536:11;2529:39;2501:2;2498:1;2494:10;2489:15;;2465:113;;;2596:6;2593:1;2590:13;2587:101;;;2676:1;2667:6;2662:3;2658:16;2651:27;2587:101;2436:258;2387:307;;;:::o;2700:102::-;2741:6;2792:2;2788:7;2783:2;2776:5;2772:14;2768:28;2758:38;;2700:102;;;:::o;2808:364::-;2896:3;2924:39;2957:5;2924:39;:::i;:::-;2979:71;3043:6;3038:3;2979:71;:::i;:::-;2972:78;;3059:52;3104:6;3099:3;3092:4;3085:5;3081:16;3059:52;:::i;:::-;3136:29;3158:6;3136:29;:::i;:::-;3131:3;3127:39;3120:46;;2900:272;2808:364;;;;:::o;3178:313::-;3291:4;3329:2;3318:9;3314:18;3306:26;;3378:9;3372:4;3368:20;3364:1;3353:9;3349:17;3342:47;3406:78;3479:4;3470:6;3406:78;:::i;:::-;3398:86;;3178:313;;;;:::o;3497:122::-;3570:24;3588:5;3570:24;:::i;:::-;3563:5;3560:35;3550:63;;3609:1;3606;3599:12;3550:63;3497:122;:::o;3625:139::-;3671:5;3709:6;3696:20;3687:29;;3725:33;3752:5;3725:33;:::i;:::-;3625:139;;;;:::o;3770:619::-;3847:6;3855;3863;3912:2;3900:9;3891:7;3887:23;3883:32;3880:119;;;3918:79;;:::i;:::-;3880:119;4038:1;4063:53;4108:7;4099:6;4088:9;4084:22;4063:53;:::i;:::-;4053:63;;4009:117;4165:2;4191:53;4236:7;4227:6;4216:9;4212:22;4191:53;:::i;:::-;4181:63;;4136:118;4293:2;4319:53;4364:7;4355:6;4344:9;4340:22;4319:53;:::i;:::-;4309:63;;4264:118;3770:619;;;;;:::o;4395:474::-;4463:6;4471;4520:2;4508:9;4499:7;4495:23;4491:32;4488:119;;;4526:79;;:::i;:::-;4488:119;4646:1;4671:53;4716:7;4707:6;4696:9;4692:22;4671:53;:::i;:::-;4661:63;;4617:117;4773:2;4799:53;4844:7;4835:6;4824:9;4820:22;4799:53;:::i;:::-;4789:63;;4744:118;4395:474;;;;;:::o;4875:109::-;4956:21;4971:5;4956:21;:::i;:::-;4951:3;4944:34;4875:109;;:::o;4990:210::-;5077:4;5115:2;5104:9;5100:18;5092:26;;5128:65;5190:1;5179:9;5175:17;5166:6;5128:65;:::i;:::-;4990:210;;;;:::o;5206:329::-;5265:6;5314:2;5302:9;5293:7;5289:23;5285:32;5282:119;;;5320:79;;:::i;:::-;5282:119;5440:1;5465:53;5510:7;5501:6;5490:9;5486:22;5465:53;:::i;:::-;5455:63;;5411:117;5206:329;;;;:::o;5541:619::-;5618:6;5626;5634;5683:2;5671:9;5662:7;5658:23;5654:32;5651:119;;;5689:79;;:::i;:::-;5651:119;5809:1;5834:53;5879:7;5870:6;5859:9;5855:22;5834:53;:::i;:::-;5824:63;;5780:117;5936:2;5962:53;6007:7;5998:6;5987:9;5983:22;5962:53;:::i;:::-;5952:63;;5907:118;6064:2;6090:53;6135:7;6126:6;6115:9;6111:22;6090:53;:::i;:::-;6080:63;;6035:118;5541:619;;;;;:::o;6166:86::-;6201:7;6241:4;6234:5;6230:16;6219:27;;6166:86;;;:::o;6258:112::-;6341:22;6357:5;6341:22;:::i;:::-;6336:3;6329:35;6258:112;;:::o;6376:214::-;6465:4;6503:2;6492:9;6488:18;6480:26;;6516:67;6580:1;6569:9;6565:17;6556:6;6516:67;:::i;:::-;6376:214;;;;:::o;6596:111::-;6648:7;6677:24;6695:5;6677:24;:::i;:::-;6666:35;;6596:111;;;:::o;6713:152::-;6801:39;6834:5;6801:39;:::i;:::-;6794:5;6791:50;6781:78;;6855:1;6852;6845:12;6781:78;6713:152;:::o;6871:169::-;6932:5;6970:6;6957:20;6948:29;;6986:48;7028:5;6986:48;:::i;:::-;6871:169;;;;:::o;7046:504::-;7129:6;7137;7186:2;7174:9;7165:7;7161:23;7157:32;7154:119;;;7192:79;;:::i;:::-;7154:119;7312:1;7337:68;7397:7;7388:6;7377:9;7373:22;7337:68;:::i;:::-;7327:78;;7283:132;7454:2;7480:53;7525:7;7516:6;7505:9;7501:22;7480:53;:::i;:::-;7470:63;;7425:118;7046:504;;;;;:::o;7556:329::-;7615:6;7664:2;7652:9;7643:7;7639:23;7635:32;7632:119;;;7670:79;;:::i;:::-;7632:119;7790:1;7815:53;7860:7;7851:6;7840:9;7836:22;7815:53;:::i;:::-;7805:63;;7761:117;7556:329;;;;:::o;7891:442::-;8040:4;8078:2;8067:9;8063:18;8055:26;;8091:71;8159:1;8148:9;8144:17;8135:6;8091:71;:::i;:::-;8172:72;8240:2;8229:9;8225:18;8216:6;8172:72;:::i;:::-;8254;8322:2;8311:9;8307:18;8298:6;8254:72;:::i;:::-;7891:442;;;;;;:::o;8339:118::-;8426:24;8444:5;8426:24;:::i;:::-;8421:3;8414:37;8339:118;;:::o;8463:222::-;8556:4;8594:2;8583:9;8579:18;8571:26;;8607:71;8675:1;8664:9;8660:17;8651:6;8607:71;:::i;:::-;8463:222;;;;:::o;8691:474::-;8759:6;8767;8816:2;8804:9;8795:7;8791:23;8787:32;8784:119;;;8822:79;;:::i;:::-;8784:119;8942:1;8967:53;9012:7;9003:6;8992:9;8988:22;8967:53;:::i;:::-;8957:63;;8913:117;9069:2;9095:53;9140:7;9131:6;9120:9;9116:22;9095:53;:::i;:::-;9085:63;;9040:118;8691:474;;;;;:::o;9171:323::-;9227:6;9276:2;9264:9;9255:7;9251:23;9247:32;9244:119;;;9282:79;;:::i;:::-;9244:119;9402:1;9427:50;9469:7;9460:6;9449:9;9445:22;9427:50;:::i;:::-;9417:60;;9373:114;9171:323;;;;:::o;9500:60::-;9528:3;9549:5;9542:12;;9500:60;;;:::o;9566:142::-;9616:9;9649:53;9667:34;9676:24;9694:5;9676:24;:::i;:::-;9667:34;:::i;:::-;9649:53;:::i;:::-;9636:66;;9566:142;;;:::o;9714:126::-;9764:9;9797:37;9828:5;9797:37;:::i;:::-;9784:50;;9714:126;;;:::o;9846:141::-;9911:9;9944:37;9975:5;9944:37;:::i;:::-;9931:50;;9846:141;;;:::o;9993:161::-;10095:52;10141:5;10095:52;:::i;:::-;10090:3;10083:65;9993:161;;:::o;10160:252::-;10268:4;10306:2;10295:9;10291:18;10283:26;;10319:86;10402:1;10391:9;10387:17;10378:6;10319:86;:::i;:::-;10160:252;;;;:::o;10418:182::-;10558:34;10554:1;10546:6;10542:14;10535:58;10418:182;:::o;10606:366::-;10748:3;10769:67;10833:2;10828:3;10769:67;:::i;:::-;10762:74;;10845:93;10934:3;10845:93;:::i;:::-;10963:2;10958:3;10954:12;10947:19;;10606:366;;;:::o;10978:419::-;11144:4;11182:2;11171:9;11167:18;11159:26;;11231:9;11225:4;11221:20;11217:1;11206:9;11202:17;11195:47;11259:131;11385:4;11259:131;:::i;:::-;11251:139;;10978:419;;;:::o;11403:180::-;11451:77;11448:1;11441:88;11548:4;11545:1;11538:15;11572:4;11569:1;11562:15;11589:320;11633:6;11670:1;11664:4;11660:12;11650:22;;11717:1;11711:4;11707:12;11738:18;11728:81;;11794:4;11786:6;11782:17;11772:27;;11728:81;11856:2;11848:6;11845:14;11825:18;11822:38;11819:84;;;11875:18;;:::i;:::-;11819:84;11640:269;11589:320;;;:::o;11915:180::-;11963:77;11960:1;11953:88;12060:4;12057:1;12050:15;12084:4;12081:1;12074:15;12101:305;12141:3;12160:20;12178:1;12160:20;:::i;:::-;12155:25;;12194:20;12212:1;12194:20;:::i;:::-;12189:25;;12348:1;12280:66;12276:74;12273:1;12270:81;12267:107;;;12354:18;;:::i;:::-;12267:107;12398:1;12395;12391:9;12384:16;;12101:305;;;;:::o;12412:227::-;12552:34;12548:1;12540:6;12536:14;12529:58;12621:10;12616:2;12608:6;12604:15;12597:35;12412:227;:::o;12645:366::-;12787:3;12808:67;12872:2;12867:3;12808:67;:::i;:::-;12801:74;;12884:93;12973:3;12884:93;:::i;:::-;13002:2;12997:3;12993:12;12986:19;;12645:366;;;:::o;13017:419::-;13183:4;13221:2;13210:9;13206:18;13198:26;;13270:9;13264:4;13260:20;13256:1;13245:9;13241:17;13234:47;13298:131;13424:4;13298:131;:::i;:::-;13290:139;;13017:419;;;:::o;13442:191::-;13482:4;13502:20;13520:1;13502:20;:::i;:::-;13497:25;;13536:20;13554:1;13536:20;:::i;:::-;13531:25;;13575:1;13572;13569:8;13566:34;;;13580:18;;:::i;:::-;13566:34;13625:1;13622;13618:9;13610:17;;13442:191;;;;:::o;13639:348::-;13679:7;13702:20;13720:1;13702:20;:::i;:::-;13697:25;;13736:20;13754:1;13736:20;:::i;:::-;13731:25;;13924:1;13856:66;13852:74;13849:1;13846:81;13841:1;13834:9;13827:17;13823:105;13820:131;;;13931:18;;:::i;:::-;13820:131;13979:1;13976;13972:9;13961:20;;13639:348;;;;:::o;13993:180::-;14041:77;14038:1;14031:88;14138:4;14135:1;14128:15;14162:4;14159:1;14152:15;14179:185;14219:1;14236:20;14254:1;14236:20;:::i;:::-;14231:25;;14270:20;14288:1;14270:20;:::i;:::-;14265:25;;14309:1;14299:35;;14314:18;;:::i;:::-;14299:35;14356:1;14353;14349:9;14344:14;;14179:185;;;;:::o;14370:172::-;14510:24;14506:1;14498:6;14494:14;14487:48;14370:172;:::o;14548:366::-;14690:3;14711:67;14775:2;14770:3;14711:67;:::i;:::-;14704:74;;14787:93;14876:3;14787:93;:::i;:::-;14905:2;14900:3;14896:12;14889:19;;14548:366;;;:::o;14920:419::-;15086:4;15124:2;15113:9;15109:18;15101:26;;15173:9;15167:4;15163:20;15159:1;15148:9;15144:17;15137:47;15201:131;15327:4;15201:131;:::i;:::-;15193:139;;14920:419;;;:::o;15345:332::-;15466:4;15504:2;15493:9;15489:18;15481:26;;15517:71;15585:1;15574:9;15570:17;15561:6;15517:71;:::i;:::-;15598:72;15666:2;15655:9;15651:18;15642:6;15598:72;:::i;:::-;15345:332;;;;;:::o;15683:137::-;15737:5;15768:6;15762:13;15753:22;;15784:30;15808:5;15784:30;:::i;:::-;15683:137;;;;:::o;15826:345::-;15893:6;15942:2;15930:9;15921:7;15917:23;15913:32;15910:119;;;15948:79;;:::i;:::-;15910:119;16068:1;16093:61;16146:7;16137:6;16126:9;16122:22;16093:61;:::i;:::-;16083:71;;16039:125;15826:345;;;;:::o;16177:224::-;16317:34;16313:1;16305:6;16301:14;16294:58;16386:7;16381:2;16373:6;16369:15;16362:32;16177:224;:::o;16407:366::-;16549:3;16570:67;16634:2;16629:3;16570:67;:::i;:::-;16563:74;;16646:93;16735:3;16646:93;:::i;:::-;16764:2;16759:3;16755:12;16748:19;;16407:366;;;:::o;16779:419::-;16945:4;16983:2;16972:9;16968:18;16960:26;;17032:9;17026:4;17022:20;17018:1;17007:9;17003:17;16996:47;17060:131;17186:4;17060:131;:::i;:::-;17052:139;;16779:419;;;:::o;17204:225::-;17344:34;17340:1;17332:6;17328:14;17321:58;17413:8;17408:2;17400:6;17396:15;17389:33;17204:225;:::o;17435:366::-;17577:3;17598:67;17662:2;17657:3;17598:67;:::i;:::-;17591:74;;17674:93;17763:3;17674:93;:::i;:::-;17792:2;17787:3;17783:12;17776:19;;17435:366;;;:::o;17807:419::-;17973:4;18011:2;18000:9;17996:18;17988:26;;18060:9;18054:4;18050:20;18046:1;18035:9;18031:17;18024:47;18088:131;18214:4;18088:131;:::i;:::-;18080:139;;17807:419;;;:::o;18232:223::-;18372:34;18368:1;18360:6;18356:14;18349:58;18441:6;18436:2;18428:6;18424:15;18417:31;18232:223;:::o;18461:366::-;18603:3;18624:67;18688:2;18683:3;18624:67;:::i;:::-;18617:74;;18700:93;18789:3;18700:93;:::i;:::-;18818:2;18813:3;18809:12;18802:19;;18461:366;;;:::o;18833:419::-;18999:4;19037:2;19026:9;19022:18;19014:26;;19086:9;19080:4;19076:20;19072:1;19061:9;19057:17;19050:47;19114:131;19240:4;19114:131;:::i;:::-;19106:139;;18833:419;;;:::o;19258:221::-;19398:34;19394:1;19386:6;19382:14;19375:58;19467:4;19462:2;19454:6;19450:15;19443:29;19258:221;:::o;19485:366::-;19627:3;19648:67;19712:2;19707:3;19648:67;:::i;:::-;19641:74;;19724:93;19813:3;19724:93;:::i;:::-;19842:2;19837:3;19833:12;19826:19;;19485:366;;;:::o;19857:419::-;20023:4;20061:2;20050:9;20046:18;20038:26;;20110:9;20104:4;20100:20;20096:1;20085:9;20081:17;20074:47;20138:131;20264:4;20138:131;:::i;:::-;20130:139;;19857:419;;;:::o;20282:228::-;20422:34;20418:1;20410:6;20406:14;20399:58;20491:11;20486:2;20478:6;20474:15;20467:36;20282:228;:::o;20516:366::-;20658:3;20679:67;20743:2;20738:3;20679:67;:::i;:::-;20672:74;;20755:93;20844:3;20755:93;:::i;:::-;20873:2;20868:3;20864:12;20857:19;;20516:366;;;:::o;20888:419::-;21054:4;21092:2;21081:9;21077:18;21069:26;;21141:9;21135:4;21131:20;21127:1;21116:9;21112:17;21105:47;21169:131;21295:4;21169:131;:::i;:::-;21161:139;;20888:419;;;:::o;21313:175::-;21453:27;21449:1;21441:6;21437:14;21430:51;21313:175;:::o;21494:366::-;21636:3;21657:67;21721:2;21716:3;21657:67;:::i;:::-;21650:74;;21733:93;21822:3;21733:93;:::i;:::-;21851:2;21846:3;21842:12;21835:19;;21494:366;;;:::o;21866:419::-;22032:4;22070:2;22059:9;22055:18;22047:26;;22119:9;22113:4;22109:20;22105:1;22094:9;22090:17;22083:47;22147:131;22273:4;22147:131;:::i;:::-;22139:139;;21866:419;;;:::o;22291:172::-;22431:24;22427:1;22419:6;22415:14;22408:48;22291:172;:::o;22469:366::-;22611:3;22632:67;22696:2;22691:3;22632:67;:::i;:::-;22625:74;;22708:93;22797:3;22708:93;:::i;:::-;22826:2;22821:3;22817:12;22810:19;;22469:366;;;:::o;22841:419::-;23007:4;23045:2;23034:9;23030:18;23022:26;;23094:9;23088:4;23084:20;23080:1;23069:9;23065:17;23058:47;23122:131;23248:4;23122:131;:::i;:::-;23114:139;;22841:419;;;:::o;23266:179::-;23406:31;23402:1;23394:6;23390:14;23383:55;23266:179;:::o;23451:366::-;23593:3;23614:67;23678:2;23673:3;23614:67;:::i;:::-;23607:74;;23690:93;23779:3;23690:93;:::i;:::-;23808:2;23803:3;23799:12;23792:19;;23451:366;;;:::o;23823:419::-;23989:4;24027:2;24016:9;24012:18;24004:26;;24076:9;24070:4;24066:20;24062:1;24051:9;24047:17;24040:47;24104:131;24230:4;24104:131;:::i;:::-;24096:139;;23823:419;;;:::o;24248:220::-;24388:34;24384:1;24376:6;24372:14;24365:58;24457:3;24452:2;24444:6;24440:15;24433:28;24248:220;:::o;24474:366::-;24616:3;24637:67;24701:2;24696:3;24637:67;:::i;:::-;24630:74;;24713:93;24802:3;24713:93;:::i;:::-;24831:2;24826:3;24822:12;24815:19;;24474:366;;;:::o;24846:419::-;25012:4;25050:2;25039:9;25035:18;25027:26;;25099:9;25093:4;25089:20;25085:1;25074:9;25070:17;25063:47;25127:131;25253:4;25127:131;:::i;:::-;25119:139;;24846:419;;;:::o;25271:180::-;25319:77;25316:1;25309:88;25416:4;25413:1;25406:15;25440:4;25437:1;25430:15;25457:180;25505:77;25502:1;25495:88;25602:4;25599:1;25592:15;25626:4;25623:1;25616:15;25643:143;25700:5;25731:6;25725:13;25716:22;;25747:33;25774:5;25747:33;:::i;:::-;25643:143;;;;:::o;25792:351::-;25862:6;25911:2;25899:9;25890:7;25886:23;25882:32;25879:119;;;25917:79;;:::i;:::-;25879:119;26037:1;26062:64;26118:7;26109:6;26098:9;26094:22;26062:64;:::i;:::-;26052:74;;26008:128;25792:351;;;;:::o;26149:85::-;26194:7;26223:5;26212:16;;26149:85;;;:::o;26240:158::-;26298:9;26331:61;26349:42;26358:32;26384:5;26358:32;:::i;:::-;26349:42;:::i;:::-;26331:61;:::i;:::-;26318:74;;26240:158;;;:::o;26404:147::-;26499:45;26538:5;26499:45;:::i;:::-;26494:3;26487:58;26404:147;;:::o;26557:114::-;26624:6;26658:5;26652:12;26642:22;;26557:114;;;:::o;26677:184::-;26776:11;26810:6;26805:3;26798:19;26850:4;26845:3;26841:14;26826:29;;26677:184;;;;:::o;26867:132::-;26934:4;26957:3;26949:11;;26987:4;26982:3;26978:14;26970:22;;26867:132;;;:::o;27005:108::-;27082:24;27100:5;27082:24;:::i;:::-;27077:3;27070:37;27005:108;;:::o;27119:179::-;27188:10;27209:46;27251:3;27243:6;27209:46;:::i;:::-;27287:4;27282:3;27278:14;27264:28;;27119:179;;;;:::o;27304:113::-;27374:4;27406;27401:3;27397:14;27389:22;;27304:113;;;:::o;27453:732::-;27572:3;27601:54;27649:5;27601:54;:::i;:::-;27671:86;27750:6;27745:3;27671:86;:::i;:::-;27664:93;;27781:56;27831:5;27781:56;:::i;:::-;27860:7;27891:1;27876:284;27901:6;27898:1;27895:13;27876:284;;;27977:6;27971:13;28004:63;28063:3;28048:13;28004:63;:::i;:::-;27997:70;;28090:60;28143:6;28090:60;:::i;:::-;28080:70;;27936:224;27923:1;27920;27916:9;27911:14;;27876:284;;;27880:14;28176:3;28169:10;;27577:608;;;27453:732;;;;:::o;28191:831::-;28454:4;28492:3;28481:9;28477:19;28469:27;;28506:71;28574:1;28563:9;28559:17;28550:6;28506:71;:::i;:::-;28587:80;28663:2;28652:9;28648:18;28639:6;28587:80;:::i;:::-;28714:9;28708:4;28704:20;28699:2;28688:9;28684:18;28677:48;28742:108;28845:4;28836:6;28742:108;:::i;:::-;28734:116;;28860:72;28928:2;28917:9;28913:18;28904:6;28860:72;:::i;:::-;28942:73;29010:3;28999:9;28995:19;28986:6;28942:73;:::i;:::-;28191:831;;;;;;;;:::o;29028:179::-;29168:31;29164:1;29156:6;29152:14;29145:55;29028:179;:::o;29213:366::-;29355:3;29376:67;29440:2;29435:3;29376:67;:::i;:::-;29369:74;;29452:93;29541:3;29452:93;:::i;:::-;29570:2;29565:3;29561:12;29554:19;;29213:366;;;:::o;29585:419::-;29751:4;29789:2;29778:9;29774:18;29766:26;;29838:9;29832:4;29828:20;29824:1;29813:9;29809:17;29802:47;29866:131;29992:4;29866:131;:::i;:::-;29858:139;;29585:419;;;:::o;30010:147::-;30111:11;30148:3;30133:18;;30010:147;;;;:::o;30163:114::-;;:::o;30283:398::-;30442:3;30463:83;30544:1;30539:3;30463:83;:::i;:::-;30456:90;;30555:93;30644:3;30555:93;:::i;:::-;30673:1;30668:3;30664:11;30657:18;;30283:398;;;:::o;30687:379::-;30871:3;30893:147;31036:3;30893:147;:::i;:::-;30886:154;;31057:3;31050:10;;30687:379;;;:::o;31072:245::-;31212:34;31208:1;31200:6;31196:14;31189:58;31281:28;31276:2;31268:6;31264:15;31257:53;31072:245;:::o;31323:366::-;31465:3;31486:67;31550:2;31545:3;31486:67;:::i;:::-;31479:74;;31562:93;31651:3;31562:93;:::i;:::-;31680:2;31675:3;31671:12;31664:19;;31323:366;;;:::o;31695:419::-;31861:4;31899:2;31888:9;31884:18;31876:26;;31948:9;31942:4;31938:20;31934:1;31923:9;31919:17;31912:47;31976:131;32102:4;31976:131;:::i;:::-;31968:139;;31695:419;;;:::o;32120:224::-;32260:34;32256:1;32248:6;32244:14;32237:58;32329:7;32324:2;32316:6;32312:15;32305:32;32120:224;:::o;32350:366::-;32492:3;32513:67;32577:2;32572:3;32513:67;:::i;:::-;32506:74;;32589:93;32678:3;32589:93;:::i;:::-;32707:2;32702:3;32698:12;32691:19;;32350:366;;;:::o;32722:419::-;32888:4;32926:2;32915:9;32911:18;32903:26;;32975:9;32969:4;32965:20;32961:1;32950:9;32946:17;32939:47;33003:131;33129:4;33003:131;:::i;:::-;32995:139;;32722:419;;;:::o;33147:222::-;33287:34;33283:1;33275:6;33271:14;33264:58;33356:5;33351:2;33343:6;33339:15;33332:30;33147:222;:::o;33375:366::-;33517:3;33538:67;33602:2;33597:3;33538:67;:::i;:::-;33531:74;;33614:93;33703:3;33614:93;:::i;:::-;33732:2;33727:3;33723:12;33716:19;;33375:366;;;:::o;33747:419::-;33913:4;33951:2;33940:9;33936:18;33928:26;;34000:9;33994:4;33990:20;33986:1;33975:9;33971:17;33964:47;34028:131;34154:4;34028:131;:::i;:::-;34020:139;;33747:419;;;:::o;34172:225::-;34312:34;34308:1;34300:6;34296:14;34289:58;34381:8;34376:2;34368:6;34364:15;34357:33;34172:225;:::o;34403:366::-;34545:3;34566:67;34630:2;34625:3;34566:67;:::i;:::-;34559:74;;34642:93;34731:3;34642:93;:::i;:::-;34760:2;34755:3;34751:12;34744:19;;34403:366;;;:::o;34775:419::-;34941:4;34979:2;34968:9;34964:18;34956:26;;35028:9;35022:4;35018:20;35014:1;35003:9;34999:17;34992:47;35056:131;35182:4;35056:131;:::i;:::-;35048:139;;34775:419;;;:::o;35200:807::-;35449:4;35487:3;35476:9;35472:19;35464:27;;35501:71;35569:1;35558:9;35554:17;35545:6;35501:71;:::i;:::-;35582:72;35650:2;35639:9;35635:18;35626:6;35582:72;:::i;:::-;35664:80;35740:2;35729:9;35725:18;35716:6;35664:80;:::i;:::-;35754;35830:2;35819:9;35815:18;35806:6;35754:80;:::i;:::-;35844:73;35912:3;35901:9;35897:19;35888:6;35844:73;:::i;:::-;35927;35995:3;35984:9;35980:19;35971:6;35927:73;:::i;:::-;35200:807;;;;;;;;;:::o;36013:143::-;36070:5;36101:6;36095:13;36086:22;;36117:33;36144:5;36117:33;:::i;:::-;36013:143;;;;:::o;36162:663::-;36250:6;36258;36266;36315:2;36303:9;36294:7;36290:23;36286:32;36283:119;;;36321:79;;:::i;:::-;36283:119;36441:1;36466:64;36522:7;36513:6;36502:9;36498:22;36466:64;:::i;:::-;36456:74;;36412:128;36579:2;36605:64;36661:7;36652:6;36641:9;36637:22;36605:64;:::i;:::-;36595:74;;36550:129;36718:2;36744:64;36800:7;36791:6;36780:9;36776:22;36744:64;:::i;:::-;36734:74;;36689:129;36162:663;;;;;:::o
Swarm Source
ipfs://bec2579eb3be5bac2012fe896077319df55838661bd3de38f875b6d950c5e199
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | Ether (ETH) | 100.00% | $3,471.88 | 0.000000000000000441 | <$0.000001 |
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.