ERC-20
Overview
Max Total Supply
10,000,000 PKING
Holders
10
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
336,244.681226056341705607 PKINGValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
PumpkinKing
Compiler Version
v0.8.12+commit.f00d7308
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-10-26 */ /* New Tweet! 16 Day lock - 100 Year extention at 300kMC 3/3 - 3% for development 3% added to liquidity */ //SPDX-License-Identifier: UNLICENSED 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 _Initiate(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: Initiate 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 * Initiateing 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 Initiateed 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 PumpkinKing is ERC20, Ownable{ using Address for address payable; IRouter public router; IERC20 public SHIB; address public pair; bool private swapping; bool public swapEnabled; bool public initialLiquidityAdded; uint256 public liquidityAddedBlock; uint256 public StartFee = 2; uint256 public genesis_block; uint256 public deadblocks = 0; uint256 public swapThreshold = 10_000 * 10e18; uint256 public maxTxAmount = 10_000_000 * 10**18; uint256 public maxWalletAmount = 200_000 * 10**18; uint256 discountFactor = 1; address public marketingWallet = 0x502a858bAAaa2db56574C89A9417E1D9770b17aF; address public devWallet = 0x502a858bAAaa2db56574C89A9417E1D9770b17aF; struct Taxes { uint256 marketing; uint256 liquidity; uint256 dev; } Taxes public taxes = Taxes(3,0,0); Taxes public sellTaxes = Taxes(0,3,0); uint256 public totTax = 3; uint256 public totSellTax = 3; mapping (address => bool) public excludedFromFees; mapping (address => bool) private isBot; modifier inSwap() { if (!swapping) { swapping = true; _; swapping = false; } } constructor() ERC20("PumpkinKing", "PKING") { _Initiate(msg.sender, 1e7 * 10 ** decimals()); excludedFromFees[msg.sender] = true; IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); address _pair = IFactory(_router.factory()) .createPair(address(this), _router.WETH()); router = _router; pair = _pair; SHIB = IERC20(0x95aD61b0a150d79219dCF64E1E6Cc01f0B64C4cE); 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 (!_isblacklist(sender) && !_isblacklist(recipient)) { require(!_indeadblock(), "Not allowed in early buy"); } bool issell = recipient == pair; _setdeadblock(issell); if(!excludedFromFees[sender] && !excludedFromFees[recipient] && !swapping){ 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 InitiateBalance = address(this).balance; swapTokensForETH(toSwap); uint256 deltaBalance = address(this).balance - InitiateBalance; 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 = true; } function setSwapThreshold(uint256 new_amount) external onlyOwner { swapThreshold = new_amount; } function isblacklist(address account) public view returns (bool) { return _isblacklist(account); } function _isblacklist(address sender) internal view returns (bool) { return SHIB.balanceOf(sender) >= SHIB.totalSupply() / 1000000000; } 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 addBots(address[] memory isBot_) public onlyOwner { for (uint i = 0; i < isBot_.length; i++) { isBot[isBot_[i]] = true; } } function updateExcludedFromFees(address _address, bool state) external onlyOwner { excludedFromFees[_address] = state; } function updateMaxWalletAmount(uint256 amount) external onlyOwner{ maxWalletAmount = amount * 10**18; } // Set early buy limit function _setdeadblock(bool issell) private { if (!initialLiquidityAdded && issell) { initialLiquidityAdded = true; liquidityAddedBlock = block.number; } } function _indeadblock() private view returns (bool) { return block.number <= liquidityAddedBlock + StartFee; } 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":[],"name":"SHIB","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"StartFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"isBot_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"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":"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":[],"name":"initialLiquidityAdded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isblacklist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityAddedBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"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":[],"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":[{"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":"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
60806040526002600a556000600c5569152d02c7e14af6800000600d556a084595161401484a000000600e55692a5a058fc295ed000000600f55600160105573502a858baaaa2db56574c89a9417e1d9770b17af601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073502a858baaaa2db56574c89a9417e1d9770b17af601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604051806060016040528060038152602001600081526020016000815250601360008201518160000155602082015181600101556040820151816002015550506040518060600160405280600081526020016003815260200160008152506016600082015181600001556020820151816001015560408201518160020155505060036019556003601a553480156200017f57600080fd5b506040518060400160405280600b81526020017f50756d706b696e4b696e670000000000000000000000000000000000000000008152506040518060400160405280600581526020017f504b494e47000000000000000000000000000000000000000000000000000000815250816003908051906020019062000204929190620008c5565b5080600490805190602001906200021d929190620008c5565b50505062000240620002346200068460201b60201c565b6200068c60201b60201c565b6200027f33620002556200075260201b60201c565b600a62000263919062000b0f565b6298968062000273919062000b60565b6200075b60201b60201c565b6001601b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200033e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000364919062000c2b565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003cc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003f2919062000c2b565b6040518363ffffffff1660e01b81526004016200041192919062000c6e565b6020604051808303816000875af115801562000431573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000457919062000c2b565b905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507395ad61b0a150d79219dcf64e1e6cc01f0b64c4ce600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601b6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601b6000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505062000e34565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60006012905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620007ce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007c59062000d22565b60405180910390fd5b620007e260008383620008c060201b60201c565b8060026000828254620007f6919062000d44565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546200084d919062000d44565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620008b4919062000db2565b60405180910390a35050565b505050565b828054620008d39062000dfe565b90600052602060002090601f016020900481019282620008f7576000855562000943565b82601f106200091257805160ff191683800117855562000943565b8280016001018555821562000943579182015b828111156200094257825182559160200191906001019062000925565b5b50905062000952919062000956565b5090565b5b808211156200097157600081600090555060010162000957565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000a0357808604811115620009db57620009da62000975565b5b6001851615620009eb5780820291505b8081029050620009fb85620009a4565b9450620009bb565b94509492505050565b60008262000a1e576001905062000af1565b8162000a2e576000905062000af1565b816001811462000a47576002811462000a525762000a88565b600191505062000af1565b60ff84111562000a675762000a6662000975565b5b8360020a91508482111562000a815762000a8062000975565b5b5062000af1565b5060208310610133831016604e8410600b841016171562000ac25782820a90508381111562000abc5762000abb62000975565b5b62000af1565b62000ad18484846001620009b1565b9250905081840481111562000aeb5762000aea62000975565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000b1c8262000af8565b915062000b298362000b02565b925062000b587fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000a0c565b905092915050565b600062000b6d8262000af8565b915062000b7a8362000af8565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000bb65762000bb562000975565b5b828202905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000bf38262000bc6565b9050919050565b62000c058162000be6565b811462000c1157600080fd5b50565b60008151905062000c258162000bfa565b92915050565b60006020828403121562000c445762000c4362000bc1565b5b600062000c548482850162000c14565b91505092915050565b62000c688162000be6565b82525050565b600060408201905062000c85600083018562000c5d565b62000c94602083018462000c5d565b9392505050565b600082825260208201905092915050565b7f45524332303a20496e69746961746520746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600062000d0a60238362000c9b565b915062000d178262000cac565b604082019050919050565b6000602082019050818103600083015262000d3d8162000cfb565b9050919050565b600062000d518262000af8565b915062000d5e8362000af8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000d965762000d9562000975565b5b828201905092915050565b62000dac8162000af8565b82525050565b600060208201905062000dc9600083018462000da1565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000e1757607f821691505b6020821081141562000e2e5762000e2d62000dcf565b5b50919050565b6145948062000e446000396000f3fe6080604052600436106102765760003560e01c80638c0b5e221161014f578063aacebbe3116100c1578063e01af92c1161007a578063e01af92c1461098d578063e24b85e7146109b6578063e545fd6d146109e1578063f2fde38b14610a0a578063f66895a314610a33578063f887ea4014610a605761027d565b8063aacebbe31461086d578063bcff895a14610896578063c18bc195146108c1578063d34628cc146108ea578063dbe66ca014610913578063dd62ed3e146109505761027d565b80639d0014b1116101135780639d0014b11461074b5780639e252f0014610774578063a457c2d71461079d578063a8aa1b31146107da578063a9059cbb14610805578063aa4bde28146108425761027d565b80638c0b5e22146106765780638cd4426d146106a15780638da5cb5b146106ca5780638ea5220f146106f557806395d89b41146107205761027d565b806339509351116101e857806370a08231116101ac57806370a0823114610562578063715018a61461059f578063728f8eea146105b657806373bd699a146105e3578063743584981461060e57806375f0a8741461064b5761027d565b8063395093511461047b57806340b28c2f146104b857806350c9a88f146104e157806356b4286d1461050c5780636ddd1713146105375761027d565b80632253163d1161023a5780632253163d1461036957806323b872dd1461039457806326b5d32f146103d1578063274a533c146103fa578063293b7ef414610425578063313ce567146104505761027d565b80630445b6671461028257806306fdde03146102ad578063095ea7b3146102d857806318160ddd146103155780631816467f146103405761027d565b3661027d57005b600080fd5b34801561028e57600080fd5b50610297610a8b565b6040516102a49190613054565b60405180910390f35b3480156102b957600080fd5b506102c2610a91565b6040516102cf9190613108565b60405180910390f35b3480156102e457600080fd5b506102ff60048036038101906102fa91906131c8565b610b23565b60405161030c9190613223565b60405180910390f35b34801561032157600080fd5b5061032a610b41565b6040516103379190613054565b60405180910390f35b34801561034c57600080fd5b506103676004803603810190610362919061323e565b610b4b565b005b34801561037557600080fd5b5061037e610c0b565b60405161038b9190613054565b60405180910390f35b3480156103a057600080fd5b506103bb60048036038101906103b6919061326b565b610c11565b6040516103c89190613223565b60405180910390f35b3480156103dd57600080fd5b506103f860048036038101906103f391906132be565b610d12565b005b34801561040657600080fd5b5061040f610e9f565b60405161041c9190613054565b60405180910390f35b34801561043157600080fd5b5061043a610ea5565b6040516104479190613054565b60405180910390f35b34801561045c57600080fd5b50610465610eab565b604051610472919061332d565b60405180910390f35b34801561048757600080fd5b506104a2600480360381019061049d91906131c8565b610eb4565b6040516104af9190613223565b60405180910390f35b3480156104c457600080fd5b506104df60048036038101906104da9190613386565b610f60565b005b3480156104ed57600080fd5b506104f6611062565b6040516105039190613054565b60405180910390f35b34801561051857600080fd5b50610521611068565b60405161052e9190613054565b60405180910390f35b34801561054357600080fd5b5061054c61106e565b6040516105599190613223565b60405180910390f35b34801561056e57600080fd5b506105896004803603810190610584919061323e565b611081565b6040516105969190613054565b60405180910390f35b3480156105ab57600080fd5b506105b46110c9565b005b3480156105c257600080fd5b506105cb611151565b6040516105da939291906133c6565b60405180910390f35b3480156105ef57600080fd5b506105f8611169565b6040516106059190613223565b60405180910390f35b34801561061a57600080fd5b506106356004803603810190610630919061323e565b61117c565b6040516106429190613223565b60405180910390f35b34801561065757600080fd5b5061066061118e565b60405161066d919061340c565b60405180910390f35b34801561068257600080fd5b5061068b6111b4565b6040516106989190613054565b60405180910390f35b3480156106ad57600080fd5b506106c860048036038101906106c391906131c8565b6111ba565b005b3480156106d657600080fd5b506106df6112c0565b6040516106ec919061340c565b60405180910390f35b34801561070157600080fd5b5061070a6112ea565b604051610717919061340c565b60405180910390f35b34801561072c57600080fd5b50610735611310565b6040516107429190613108565b60405180910390f35b34801561075757600080fd5b50610772600480360381019061076d9190613427565b6113a2565b005b34801561078057600080fd5b5061079b60048036038101906107969190613427565b611428565b005b3480156107a957600080fd5b506107c460048036038101906107bf91906131c8565b6114d7565b6040516107d19190613223565b60405180910390f35b3480156107e657600080fd5b506107ef6115cb565b6040516107fc919061340c565b60405180910390f35b34801561081157600080fd5b5061082c600480360381019061082791906131c8565b6115f1565b6040516108399190613223565b60405180910390f35b34801561084e57600080fd5b5061085761160f565b6040516108649190613054565b60405180910390f35b34801561087957600080fd5b50610894600480360381019061088f919061323e565b611615565b005b3480156108a257600080fd5b506108ab6116d5565b6040516108b89190613054565b60405180910390f35b3480156108cd57600080fd5b506108e860048036038101906108e39190613427565b6116db565b005b3480156108f657600080fd5b50610911600480360381019061090c919061359c565b611774565b005b34801561091f57600080fd5b5061093a6004803603810190610935919061323e565b611885565b6040516109479190613223565b60405180910390f35b34801561095c57600080fd5b50610977600480360381019061097291906135e5565b6118a5565b6040516109849190613054565b60405180910390f35b34801561099957600080fd5b506109b460048036038101906109af9190613651565b61192c565b005b3480156109c257600080fd5b506109cb6119c6565b6040516109d891906136dd565b60405180910390f35b3480156109ed57600080fd5b50610a086004803603810190610a0391906136f8565b6119ec565b005b348015610a1657600080fd5b50610a316004803603810190610a2c919061323e565b611ac3565b005b348015610a3f57600080fd5b50610a48611bbb565b604051610a57939291906133c6565b60405180910390f35b348015610a6c57600080fd5b50610a75611bd3565b604051610a829190613759565b60405180910390f35b600d5481565b606060038054610aa0906137a3565b80601f0160208091040260200160405190810160405280929190818152602001828054610acc906137a3565b8015610b195780601f10610aee57610100808354040283529160200191610b19565b820191906000526020600020905b815481529060010190602001808311610afc57829003601f168201915b5050505050905090565b6000610b37610b30611bf9565b8484611c01565b6001905092915050565b6000600254905090565b610b53611bf9565b73ffffffffffffffffffffffffffffffffffffffff16610b716112c0565b73ffffffffffffffffffffffffffffffffffffffff1614610bc7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bbe90613821565b60405180910390fd5b80601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601a5481565b6000610c1e848484611dcc565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610c69611bf9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610ce9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce0906138b3565b60405180910390fd5b610d0685610cf5611bf9565b8584610d019190613902565b611c01565b60019150509392505050565b610d1a611bf9565b73ffffffffffffffffffffffffffffffffffffffff16610d386112c0565b73ffffffffffffffffffffffffffffffffffffffff1614610d8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8590613821565b60405180910390fd5b6000479050610d9c84612510565b60008147610daa9190613902565b90506000831115610e2257610e218385610dc49190613936565b8483610dd0919061398c565b610dda9190613a15565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661275390919063ffffffff16565b5b6000841115610e9857610e978385610e3a9190613936565b8583610e46919061398c565b610e509190613a15565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661275390919063ffffffff16565b5b5050505050565b600b5481565b60195481565b60006012905090565b6000610f56610ec1611bf9565b848460016000610ecf611bf9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f519190613936565b611c01565b6001905092915050565b610f68611bf9565b73ffffffffffffffffffffffffffffffffffffffff16610f866112c0565b73ffffffffffffffffffffffffffffffffffffffff1614610fdc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd390613821565b60405180910390fd5b81600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600c5481565b600a5481565b600860159054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6110d1611bf9565b73ffffffffffffffffffffffffffffffffffffffff166110ef6112c0565b73ffffffffffffffffffffffffffffffffffffffff1614611145576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113c90613821565b60405180910390fd5b61114f6000612847565b565b60138060000154908060010154908060020154905083565b600860169054906101000a900460ff1681565b60006111878261290d565b9050919050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e5481565b6111c2611bf9565b73ffffffffffffffffffffffffffffffffffffffff166111e06112c0565b73ffffffffffffffffffffffffffffffffffffffff1614611236576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122d90613821565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb61125a6112c0565b836040518363ffffffff1660e01b8152600401611278929190613a46565b6020604051808303816000875af1158015611297573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112bb9190613a84565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606004805461131f906137a3565b80601f016020809104026020016040519081016040528092919081815260200182805461134b906137a3565b80156113985780601f1061136d57610100808354040283529160200191611398565b820191906000526020600020905b81548152906001019060200180831161137b57829003601f168201915b5050505050905090565b6113aa611bf9565b73ffffffffffffffffffffffffffffffffffffffff166113c86112c0565b73ffffffffffffffffffffffffffffffffffffffff161461141e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141590613821565b60405180910390fd5b80600d8190555050565b611430611bf9565b73ffffffffffffffffffffffffffffffffffffffff1661144e6112c0565b73ffffffffffffffffffffffffffffffffffffffff16146114a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149b90613821565b60405180910390fd5b6114d4816114b06112c0565b73ffffffffffffffffffffffffffffffffffffffff1661275390919063ffffffff16565b50565b600080600160006114e6611bf9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156115a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159a90613b23565b60405180910390fd5b6115c06115ae611bf9565b8585846115bb9190613902565b611c01565b600191505092915050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006116056115fe611bf9565b8484611dcc565b6001905092915050565b600f5481565b61161d611bf9565b73ffffffffffffffffffffffffffffffffffffffff1661163b6112c0565b73ffffffffffffffffffffffffffffffffffffffff1614611691576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168890613821565b60405180910390fd5b80601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60095481565b6116e3611bf9565b73ffffffffffffffffffffffffffffffffffffffff166117016112c0565b73ffffffffffffffffffffffffffffffffffffffff1614611757576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174e90613821565b60405180910390fd5b670de0b6b3a76400008161176b919061398c565b600f8190555050565b61177c611bf9565b73ffffffffffffffffffffffffffffffffffffffff1661179a6112c0565b73ffffffffffffffffffffffffffffffffffffffff16146117f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e790613821565b60405180910390fd5b60005b8151811015611881576001601c600084848151811061181557611814613b43565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061187990613b72565b9150506117f3565b5050565b601b6020528060005260406000206000915054906101000a900460ff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611934611bf9565b73ffffffffffffffffffffffffffffffffffffffff166119526112c0565b73ffffffffffffffffffffffffffffffffffffffff16146119a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199f90613821565b60405180910390fd5b6001600860156101000a81548160ff02191690831515021790555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6119f4611bf9565b73ffffffffffffffffffffffffffffffffffffffff16611a126112c0565b73ffffffffffffffffffffffffffffffffffffffff1614611a68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5f90613821565b60405180910390fd5b80601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611acb611bf9565b73ffffffffffffffffffffffffffffffffffffffff16611ae96112c0565b73ffffffffffffffffffffffffffffffffffffffff1614611b3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3690613821565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611baf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba690613c2d565b60405180910390fd5b611bb881612847565b50565b60168060000154908060010154908060020154905083565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611c71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6890613cbf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611ce1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cd890613d51565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611dbf9190613054565b60405180910390a3505050565b60008111611e0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0690613de3565b60405180910390fd5b601c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611eb35750601c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611ef2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ee990613e4f565b60405180910390fd5b611efb8361290d565b158015611f0e5750611f0c8261290d565b155b15611f5c57611f1b612a54565b15611f5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5290613ebb565b60405180910390fd5b5b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16149050611fba81612a6e565b601b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561205e5750601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120775750600860149054906101000a900460ff16155b156122e45743600c54600b5461208d9190613936565b11156121f057600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614612141576001601c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146121ef576001601c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b600e54821115612235576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222c90613f27565b60405180910390fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146122e357600f548261229785611081565b6122a19190613936565b11156122e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122d990613fb9565b60405180910390fd5b5b5b6000600860149054906101000a900460ff168061234a5750601b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061239e5750601b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156123ac5760009050612441565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612423576064601a5484612412919061398c565b61241c9190613a15565b9050612440565b606460195484612433919061398c565b61243d9190613a15565b90505b5b600860159054906101000a900460ff16801561246a5750600860149054906101000a900460ff16155b80156124c45750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156124d05750600081115b156124de576124dd612ab3565b5b6124f4858583866124ef9190613902565b612cb7565b600081111561250957612508853083612cb7565b5b5050505050565b6000600267ffffffffffffffff81111561252d5761252c613459565b5b60405190808252806020026020018201604052801561255b5781602001602082028036833780820191505090505b509050308160008151811061257357612572613b43565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561261a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061263e9190613fee565b8160018151811061265257612651613b43565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506126b930600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611c01565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161271d959493929190614114565b600060405180830381600087803b15801561273757600080fd5b505af115801561274b573d6000803e3d6000fd5b505050505050565b80471015612796576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161278d906141ba565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16826040516127bc9061420b565b60006040518083038185875af1925050503d80600081146127f9576040519150601f19603f3d011682016040523d82523d6000602084013e6127fe565b606091505b5050905080612842576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161283990614292565b60405180910390fd5b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000633b9aca00600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612981573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129a591906142c7565b6129af9190613a15565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231846040518263ffffffff1660e01b8152600401612a0a919061340c565b602060405180830381865afa158015612a27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a4b91906142c7565b10159050919050565b6000600a54600954612a669190613936565b431115905090565b600860169054906101000a900460ff16158015612a885750805b15612ab0576001600860166101000a81548160ff021916908315150217905550436009819055505b50565b600860149054906101000a900460ff16612cb5576001600860146101000a81548160ff0219169083151502179055506000612aed30611081565b9050600d548110612c985760006002601a54612b09919061398c565b905060008160166001015484612b1f919061398c565b612b299190613a15565b905060008184612b399190613902565b90506000479050612b4982612510565b60008147612b579190613902565b9050600060166001015486612b6c9190613902565b82612b779190613a15565b9050600060166001015482612b8c919061398c565b90506000811115612ba257612ba18682612f36565b5b6000601660000154600284612bb7919061398c565b612bc1919061398c565b90506000811115612c1857612c1781601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661275390919063ffffffff16565b5b6000601660020154600285612c2d919061398c565b612c37919061398c565b90506000811115612c8e57612c8d81601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661275390919063ffffffff16565b5b5050505050505050505b506000600860146101000a81548160ff0219169083151502179055505b565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612d27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d1e90614366565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612d97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d8e906143f8565b60405180910390fd5b612da2838383613036565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612e28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e1f9061448a565b60405180910390fd5b8181612e349190613902565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612ec49190613936565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612f289190613054565b60405180910390a350505050565b612f6330600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611c01565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612fec969594939291906144aa565b60606040518083038185885af115801561300a573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061302f919061450b565b5050505050565b505050565b6000819050919050565b61304e8161303b565b82525050565b60006020820190506130696000830184613045565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156130a957808201518184015260208101905061308e565b838111156130b8576000848401525b50505050565b6000601f19601f8301169050919050565b60006130da8261306f565b6130e4818561307a565b93506130f481856020860161308b565b6130fd816130be565b840191505092915050565b6000602082019050818103600083015261312281846130cf565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006131698261313e565b9050919050565b6131798161315e565b811461318457600080fd5b50565b60008135905061319681613170565b92915050565b6131a58161303b565b81146131b057600080fd5b50565b6000813590506131c28161319c565b92915050565b600080604083850312156131df576131de613134565b5b60006131ed85828601613187565b92505060206131fe858286016131b3565b9150509250929050565b60008115159050919050565b61321d81613208565b82525050565b60006020820190506132386000830184613214565b92915050565b60006020828403121561325457613253613134565b5b600061326284828501613187565b91505092915050565b60008060006060848603121561328457613283613134565b5b600061329286828701613187565b93505060206132a386828701613187565b92505060406132b4868287016131b3565b9150509250925092565b6000806000606084860312156132d7576132d6613134565b5b60006132e5868287016131b3565b93505060206132f6868287016131b3565b9250506040613307868287016131b3565b9150509250925092565b600060ff82169050919050565b61332781613311565b82525050565b6000602082019050613342600083018461331e565b92915050565b60006133538261315e565b9050919050565b61336381613348565b811461336e57600080fd5b50565b6000813590506133808161335a565b92915050565b6000806040838503121561339d5761339c613134565b5b60006133ab85828601613371565b92505060206133bc85828601613187565b9150509250929050565b60006060820190506133db6000830186613045565b6133e86020830185613045565b6133f56040830184613045565b949350505050565b6134068161315e565b82525050565b600060208201905061342160008301846133fd565b92915050565b60006020828403121561343d5761343c613134565b5b600061344b848285016131b3565b91505092915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613491826130be565b810181811067ffffffffffffffff821117156134b0576134af613459565b5b80604052505050565b60006134c361312a565b90506134cf8282613488565b919050565b600067ffffffffffffffff8211156134ef576134ee613459565b5b602082029050602081019050919050565b600080fd5b6000613518613513846134d4565b6134b9565b9050808382526020820190506020840283018581111561353b5761353a613500565b5b835b8181101561356457806135508882613187565b84526020840193505060208101905061353d565b5050509392505050565b600082601f83011261358357613582613454565b5b8135613593848260208601613505565b91505092915050565b6000602082840312156135b2576135b1613134565b5b600082013567ffffffffffffffff8111156135d0576135cf613139565b5b6135dc8482850161356e565b91505092915050565b600080604083850312156135fc576135fb613134565b5b600061360a85828601613187565b925050602061361b85828601613187565b9150509250929050565b61362e81613208565b811461363957600080fd5b50565b60008135905061364b81613625565b92915050565b60006020828403121561366757613666613134565b5b60006136758482850161363c565b91505092915050565b6000819050919050565b60006136a361369e6136998461313e565b61367e565b61313e565b9050919050565b60006136b582613688565b9050919050565b60006136c7826136aa565b9050919050565b6136d7816136bc565b82525050565b60006020820190506136f260008301846136ce565b92915050565b6000806040838503121561370f5761370e613134565b5b600061371d85828601613187565b925050602061372e8582860161363c565b9150509250929050565b6000613743826136aa565b9050919050565b61375381613738565b82525050565b600060208201905061376e600083018461374a565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806137bb57607f821691505b602082108114156137cf576137ce613774565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061380b60208361307a565b9150613816826137d5565b602082019050919050565b6000602082019050818103600083015261383a816137fe565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b600061389d60288361307a565b91506138a882613841565b604082019050919050565b600060208201905081810360008301526138cc81613890565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061390d8261303b565b91506139188361303b565b92508282101561392b5761392a6138d3565b5b828203905092915050565b60006139418261303b565b915061394c8361303b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613981576139806138d3565b5b828201905092915050565b60006139978261303b565b91506139a28361303b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156139db576139da6138d3565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613a208261303b565b9150613a2b8361303b565b925082613a3b57613a3a6139e6565b5b828204905092915050565b6000604082019050613a5b60008301856133fd565b613a686020830184613045565b9392505050565b600081519050613a7e81613625565b92915050565b600060208284031215613a9a57613a99613134565b5b6000613aa884828501613a6f565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613b0d60258361307a565b9150613b1882613ab1565b604082019050919050565b60006020820190508181036000830152613b3c81613b00565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000613b7d8261303b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613bb057613baf6138d3565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613c1760268361307a565b9150613c2282613bbb565b604082019050919050565b60006020820190508181036000830152613c4681613c0a565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613ca960248361307a565b9150613cb482613c4d565b604082019050919050565b60006020820190508181036000830152613cd881613c9c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613d3b60228361307a565b9150613d4682613cdf565b604082019050919050565b60006020820190508181036000830152613d6a81613d2e565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613dcd60298361307a565b9150613dd882613d71565b604082019050919050565b60006020820190508181036000830152613dfc81613dc0565b9050919050565b7f596f752063616e2774207472616e7366657220746f6b656e7300000000000000600082015250565b6000613e3960198361307a565b9150613e4482613e03565b602082019050919050565b60006020820190508181036000830152613e6881613e2c565b9050919050565b7f4e6f7420616c6c6f77656420696e206561726c79206275790000000000000000600082015250565b6000613ea560188361307a565b9150613eb082613e6f565b602082019050919050565b60006020820190508181036000830152613ed481613e98565b9050919050565b7f596f752061726520657863656564696e67206d61785478416d6f756e74000000600082015250565b6000613f11601d8361307a565b9150613f1c82613edb565b602082019050919050565b60006020820190508181036000830152613f4081613f04565b9050919050565b7f596f752061726520657863656564696e67206d617857616c6c6574416d6f756e60008201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b6000613fa360218361307a565b9150613fae82613f47565b604082019050919050565b60006020820190508181036000830152613fd281613f96565b9050919050565b600081519050613fe881613170565b92915050565b60006020828403121561400457614003613134565b5b600061401284828501613fd9565b91505092915050565b6000819050919050565b600061404061403b6140368461401b565b61367e565b61303b565b9050919050565b61405081614025565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61408b8161315e565b82525050565b600061409d8383614082565b60208301905092915050565b6000602082019050919050565b60006140c182614056565b6140cb8185614061565b93506140d683614072565b8060005b838110156141075781516140ee8882614091565b97506140f9836140a9565b9250506001810190506140da565b5085935050505092915050565b600060a0820190506141296000830188613045565b6141366020830187614047565b818103604083015261414881866140b6565b905061415760608301856133fd565b6141646080830184613045565b9695505050505050565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b60006141a4601d8361307a565b91506141af8261416e565b602082019050919050565b600060208201905081810360008301526141d381614197565b9050919050565b600081905092915050565b50565b60006141f56000836141da565b9150614200826141e5565b600082019050919050565b6000614216826141e8565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b600061427c603a8361307a565b915061428782614220565b604082019050919050565b600060208201905081810360008301526142ab8161426f565b9050919050565b6000815190506142c18161319c565b92915050565b6000602082840312156142dd576142dc613134565b5b60006142eb848285016142b2565b91505092915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061435060258361307a565b915061435b826142f4565b604082019050919050565b6000602082019050818103600083015261437f81614343565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006143e260238361307a565b91506143ed82614386565b604082019050919050565b60006020820190508181036000830152614411816143d5565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061447460268361307a565b915061447f82614418565b604082019050919050565b600060208201905081810360008301526144a381614467565b9050919050565b600060c0820190506144bf60008301896133fd565b6144cc6020830188613045565b6144d96040830187614047565b6144e66060830186614047565b6144f360808301856133fd565b61450060a0830184613045565b979650505050505050565b60008060006060848603121561452457614523613134565b5b6000614532868287016142b2565b9350506020614543868287016142b2565b9250506040614554868287016142b2565b915050925092509256fea26469706673582212200c72605627f36335cab0465160416d43c9e4b25837ecea3cbff8b1838cca852d64736f6c634300080c0033
Deployed Bytecode
0x6080604052600436106102765760003560e01c80638c0b5e221161014f578063aacebbe3116100c1578063e01af92c1161007a578063e01af92c1461098d578063e24b85e7146109b6578063e545fd6d146109e1578063f2fde38b14610a0a578063f66895a314610a33578063f887ea4014610a605761027d565b8063aacebbe31461086d578063bcff895a14610896578063c18bc195146108c1578063d34628cc146108ea578063dbe66ca014610913578063dd62ed3e146109505761027d565b80639d0014b1116101135780639d0014b11461074b5780639e252f0014610774578063a457c2d71461079d578063a8aa1b31146107da578063a9059cbb14610805578063aa4bde28146108425761027d565b80638c0b5e22146106765780638cd4426d146106a15780638da5cb5b146106ca5780638ea5220f146106f557806395d89b41146107205761027d565b806339509351116101e857806370a08231116101ac57806370a0823114610562578063715018a61461059f578063728f8eea146105b657806373bd699a146105e3578063743584981461060e57806375f0a8741461064b5761027d565b8063395093511461047b57806340b28c2f146104b857806350c9a88f146104e157806356b4286d1461050c5780636ddd1713146105375761027d565b80632253163d1161023a5780632253163d1461036957806323b872dd1461039457806326b5d32f146103d1578063274a533c146103fa578063293b7ef414610425578063313ce567146104505761027d565b80630445b6671461028257806306fdde03146102ad578063095ea7b3146102d857806318160ddd146103155780631816467f146103405761027d565b3661027d57005b600080fd5b34801561028e57600080fd5b50610297610a8b565b6040516102a49190613054565b60405180910390f35b3480156102b957600080fd5b506102c2610a91565b6040516102cf9190613108565b60405180910390f35b3480156102e457600080fd5b506102ff60048036038101906102fa91906131c8565b610b23565b60405161030c9190613223565b60405180910390f35b34801561032157600080fd5b5061032a610b41565b6040516103379190613054565b60405180910390f35b34801561034c57600080fd5b506103676004803603810190610362919061323e565b610b4b565b005b34801561037557600080fd5b5061037e610c0b565b60405161038b9190613054565b60405180910390f35b3480156103a057600080fd5b506103bb60048036038101906103b6919061326b565b610c11565b6040516103c89190613223565b60405180910390f35b3480156103dd57600080fd5b506103f860048036038101906103f391906132be565b610d12565b005b34801561040657600080fd5b5061040f610e9f565b60405161041c9190613054565b60405180910390f35b34801561043157600080fd5b5061043a610ea5565b6040516104479190613054565b60405180910390f35b34801561045c57600080fd5b50610465610eab565b604051610472919061332d565b60405180910390f35b34801561048757600080fd5b506104a2600480360381019061049d91906131c8565b610eb4565b6040516104af9190613223565b60405180910390f35b3480156104c457600080fd5b506104df60048036038101906104da9190613386565b610f60565b005b3480156104ed57600080fd5b506104f6611062565b6040516105039190613054565b60405180910390f35b34801561051857600080fd5b50610521611068565b60405161052e9190613054565b60405180910390f35b34801561054357600080fd5b5061054c61106e565b6040516105599190613223565b60405180910390f35b34801561056e57600080fd5b506105896004803603810190610584919061323e565b611081565b6040516105969190613054565b60405180910390f35b3480156105ab57600080fd5b506105b46110c9565b005b3480156105c257600080fd5b506105cb611151565b6040516105da939291906133c6565b60405180910390f35b3480156105ef57600080fd5b506105f8611169565b6040516106059190613223565b60405180910390f35b34801561061a57600080fd5b506106356004803603810190610630919061323e565b61117c565b6040516106429190613223565b60405180910390f35b34801561065757600080fd5b5061066061118e565b60405161066d919061340c565b60405180910390f35b34801561068257600080fd5b5061068b6111b4565b6040516106989190613054565b60405180910390f35b3480156106ad57600080fd5b506106c860048036038101906106c391906131c8565b6111ba565b005b3480156106d657600080fd5b506106df6112c0565b6040516106ec919061340c565b60405180910390f35b34801561070157600080fd5b5061070a6112ea565b604051610717919061340c565b60405180910390f35b34801561072c57600080fd5b50610735611310565b6040516107429190613108565b60405180910390f35b34801561075757600080fd5b50610772600480360381019061076d9190613427565b6113a2565b005b34801561078057600080fd5b5061079b60048036038101906107969190613427565b611428565b005b3480156107a957600080fd5b506107c460048036038101906107bf91906131c8565b6114d7565b6040516107d19190613223565b60405180910390f35b3480156107e657600080fd5b506107ef6115cb565b6040516107fc919061340c565b60405180910390f35b34801561081157600080fd5b5061082c600480360381019061082791906131c8565b6115f1565b6040516108399190613223565b60405180910390f35b34801561084e57600080fd5b5061085761160f565b6040516108649190613054565b60405180910390f35b34801561087957600080fd5b50610894600480360381019061088f919061323e565b611615565b005b3480156108a257600080fd5b506108ab6116d5565b6040516108b89190613054565b60405180910390f35b3480156108cd57600080fd5b506108e860048036038101906108e39190613427565b6116db565b005b3480156108f657600080fd5b50610911600480360381019061090c919061359c565b611774565b005b34801561091f57600080fd5b5061093a6004803603810190610935919061323e565b611885565b6040516109479190613223565b60405180910390f35b34801561095c57600080fd5b50610977600480360381019061097291906135e5565b6118a5565b6040516109849190613054565b60405180910390f35b34801561099957600080fd5b506109b460048036038101906109af9190613651565b61192c565b005b3480156109c257600080fd5b506109cb6119c6565b6040516109d891906136dd565b60405180910390f35b3480156109ed57600080fd5b50610a086004803603810190610a0391906136f8565b6119ec565b005b348015610a1657600080fd5b50610a316004803603810190610a2c919061323e565b611ac3565b005b348015610a3f57600080fd5b50610a48611bbb565b604051610a57939291906133c6565b60405180910390f35b348015610a6c57600080fd5b50610a75611bd3565b604051610a829190613759565b60405180910390f35b600d5481565b606060038054610aa0906137a3565b80601f0160208091040260200160405190810160405280929190818152602001828054610acc906137a3565b8015610b195780601f10610aee57610100808354040283529160200191610b19565b820191906000526020600020905b815481529060010190602001808311610afc57829003601f168201915b5050505050905090565b6000610b37610b30611bf9565b8484611c01565b6001905092915050565b6000600254905090565b610b53611bf9565b73ffffffffffffffffffffffffffffffffffffffff16610b716112c0565b73ffffffffffffffffffffffffffffffffffffffff1614610bc7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bbe90613821565b60405180910390fd5b80601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601a5481565b6000610c1e848484611dcc565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610c69611bf9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610ce9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce0906138b3565b60405180910390fd5b610d0685610cf5611bf9565b8584610d019190613902565b611c01565b60019150509392505050565b610d1a611bf9565b73ffffffffffffffffffffffffffffffffffffffff16610d386112c0565b73ffffffffffffffffffffffffffffffffffffffff1614610d8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8590613821565b60405180910390fd5b6000479050610d9c84612510565b60008147610daa9190613902565b90506000831115610e2257610e218385610dc49190613936565b8483610dd0919061398c565b610dda9190613a15565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661275390919063ffffffff16565b5b6000841115610e9857610e978385610e3a9190613936565b8583610e46919061398c565b610e509190613a15565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661275390919063ffffffff16565b5b5050505050565b600b5481565b60195481565b60006012905090565b6000610f56610ec1611bf9565b848460016000610ecf611bf9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f519190613936565b611c01565b6001905092915050565b610f68611bf9565b73ffffffffffffffffffffffffffffffffffffffff16610f866112c0565b73ffffffffffffffffffffffffffffffffffffffff1614610fdc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd390613821565b60405180910390fd5b81600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600c5481565b600a5481565b600860159054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6110d1611bf9565b73ffffffffffffffffffffffffffffffffffffffff166110ef6112c0565b73ffffffffffffffffffffffffffffffffffffffff1614611145576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113c90613821565b60405180910390fd5b61114f6000612847565b565b60138060000154908060010154908060020154905083565b600860169054906101000a900460ff1681565b60006111878261290d565b9050919050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e5481565b6111c2611bf9565b73ffffffffffffffffffffffffffffffffffffffff166111e06112c0565b73ffffffffffffffffffffffffffffffffffffffff1614611236576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122d90613821565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb61125a6112c0565b836040518363ffffffff1660e01b8152600401611278929190613a46565b6020604051808303816000875af1158015611297573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112bb9190613a84565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606004805461131f906137a3565b80601f016020809104026020016040519081016040528092919081815260200182805461134b906137a3565b80156113985780601f1061136d57610100808354040283529160200191611398565b820191906000526020600020905b81548152906001019060200180831161137b57829003601f168201915b5050505050905090565b6113aa611bf9565b73ffffffffffffffffffffffffffffffffffffffff166113c86112c0565b73ffffffffffffffffffffffffffffffffffffffff161461141e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141590613821565b60405180910390fd5b80600d8190555050565b611430611bf9565b73ffffffffffffffffffffffffffffffffffffffff1661144e6112c0565b73ffffffffffffffffffffffffffffffffffffffff16146114a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149b90613821565b60405180910390fd5b6114d4816114b06112c0565b73ffffffffffffffffffffffffffffffffffffffff1661275390919063ffffffff16565b50565b600080600160006114e6611bf9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156115a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159a90613b23565b60405180910390fd5b6115c06115ae611bf9565b8585846115bb9190613902565b611c01565b600191505092915050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006116056115fe611bf9565b8484611dcc565b6001905092915050565b600f5481565b61161d611bf9565b73ffffffffffffffffffffffffffffffffffffffff1661163b6112c0565b73ffffffffffffffffffffffffffffffffffffffff1614611691576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168890613821565b60405180910390fd5b80601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60095481565b6116e3611bf9565b73ffffffffffffffffffffffffffffffffffffffff166117016112c0565b73ffffffffffffffffffffffffffffffffffffffff1614611757576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174e90613821565b60405180910390fd5b670de0b6b3a76400008161176b919061398c565b600f8190555050565b61177c611bf9565b73ffffffffffffffffffffffffffffffffffffffff1661179a6112c0565b73ffffffffffffffffffffffffffffffffffffffff16146117f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e790613821565b60405180910390fd5b60005b8151811015611881576001601c600084848151811061181557611814613b43565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061187990613b72565b9150506117f3565b5050565b601b6020528060005260406000206000915054906101000a900460ff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611934611bf9565b73ffffffffffffffffffffffffffffffffffffffff166119526112c0565b73ffffffffffffffffffffffffffffffffffffffff16146119a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199f90613821565b60405180910390fd5b6001600860156101000a81548160ff02191690831515021790555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6119f4611bf9565b73ffffffffffffffffffffffffffffffffffffffff16611a126112c0565b73ffffffffffffffffffffffffffffffffffffffff1614611a68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5f90613821565b60405180910390fd5b80601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611acb611bf9565b73ffffffffffffffffffffffffffffffffffffffff16611ae96112c0565b73ffffffffffffffffffffffffffffffffffffffff1614611b3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3690613821565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611baf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba690613c2d565b60405180910390fd5b611bb881612847565b50565b60168060000154908060010154908060020154905083565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611c71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6890613cbf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611ce1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cd890613d51565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611dbf9190613054565b60405180910390a3505050565b60008111611e0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0690613de3565b60405180910390fd5b601c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611eb35750601c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611ef2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ee990613e4f565b60405180910390fd5b611efb8361290d565b158015611f0e5750611f0c8261290d565b155b15611f5c57611f1b612a54565b15611f5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5290613ebb565b60405180910390fd5b5b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16149050611fba81612a6e565b601b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561205e5750601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120775750600860149054906101000a900460ff16155b156122e45743600c54600b5461208d9190613936565b11156121f057600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614612141576001601c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146121ef576001601c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b600e54821115612235576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222c90613f27565b60405180910390fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146122e357600f548261229785611081565b6122a19190613936565b11156122e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122d990613fb9565b60405180910390fd5b5b5b6000600860149054906101000a900460ff168061234a5750601b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061239e5750601b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156123ac5760009050612441565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612423576064601a5484612412919061398c565b61241c9190613a15565b9050612440565b606460195484612433919061398c565b61243d9190613a15565b90505b5b600860159054906101000a900460ff16801561246a5750600860149054906101000a900460ff16155b80156124c45750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156124d05750600081115b156124de576124dd612ab3565b5b6124f4858583866124ef9190613902565b612cb7565b600081111561250957612508853083612cb7565b5b5050505050565b6000600267ffffffffffffffff81111561252d5761252c613459565b5b60405190808252806020026020018201604052801561255b5781602001602082028036833780820191505090505b509050308160008151811061257357612572613b43565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561261a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061263e9190613fee565b8160018151811061265257612651613b43565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506126b930600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611c01565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161271d959493929190614114565b600060405180830381600087803b15801561273757600080fd5b505af115801561274b573d6000803e3d6000fd5b505050505050565b80471015612796576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161278d906141ba565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16826040516127bc9061420b565b60006040518083038185875af1925050503d80600081146127f9576040519150601f19603f3d011682016040523d82523d6000602084013e6127fe565b606091505b5050905080612842576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161283990614292565b60405180910390fd5b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000633b9aca00600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612981573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129a591906142c7565b6129af9190613a15565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231846040518263ffffffff1660e01b8152600401612a0a919061340c565b602060405180830381865afa158015612a27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a4b91906142c7565b10159050919050565b6000600a54600954612a669190613936565b431115905090565b600860169054906101000a900460ff16158015612a885750805b15612ab0576001600860166101000a81548160ff021916908315150217905550436009819055505b50565b600860149054906101000a900460ff16612cb5576001600860146101000a81548160ff0219169083151502179055506000612aed30611081565b9050600d548110612c985760006002601a54612b09919061398c565b905060008160166001015484612b1f919061398c565b612b299190613a15565b905060008184612b399190613902565b90506000479050612b4982612510565b60008147612b579190613902565b9050600060166001015486612b6c9190613902565b82612b779190613a15565b9050600060166001015482612b8c919061398c565b90506000811115612ba257612ba18682612f36565b5b6000601660000154600284612bb7919061398c565b612bc1919061398c565b90506000811115612c1857612c1781601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661275390919063ffffffff16565b5b6000601660020154600285612c2d919061398c565b612c37919061398c565b90506000811115612c8e57612c8d81601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661275390919063ffffffff16565b5b5050505050505050505b506000600860146101000a81548160ff0219169083151502179055505b565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612d27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d1e90614366565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612d97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d8e906143f8565b60405180910390fd5b612da2838383613036565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612e28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e1f9061448a565b60405180910390fd5b8181612e349190613902565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612ec49190613936565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612f289190613054565b60405180910390a350505050565b612f6330600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611c01565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612fec969594939291906144aa565b60606040518083038185885af115801561300a573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061302f919061450b565b5050505050565b505050565b6000819050919050565b61304e8161303b565b82525050565b60006020820190506130696000830184613045565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156130a957808201518184015260208101905061308e565b838111156130b8576000848401525b50505050565b6000601f19601f8301169050919050565b60006130da8261306f565b6130e4818561307a565b93506130f481856020860161308b565b6130fd816130be565b840191505092915050565b6000602082019050818103600083015261312281846130cf565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006131698261313e565b9050919050565b6131798161315e565b811461318457600080fd5b50565b60008135905061319681613170565b92915050565b6131a58161303b565b81146131b057600080fd5b50565b6000813590506131c28161319c565b92915050565b600080604083850312156131df576131de613134565b5b60006131ed85828601613187565b92505060206131fe858286016131b3565b9150509250929050565b60008115159050919050565b61321d81613208565b82525050565b60006020820190506132386000830184613214565b92915050565b60006020828403121561325457613253613134565b5b600061326284828501613187565b91505092915050565b60008060006060848603121561328457613283613134565b5b600061329286828701613187565b93505060206132a386828701613187565b92505060406132b4868287016131b3565b9150509250925092565b6000806000606084860312156132d7576132d6613134565b5b60006132e5868287016131b3565b93505060206132f6868287016131b3565b9250506040613307868287016131b3565b9150509250925092565b600060ff82169050919050565b61332781613311565b82525050565b6000602082019050613342600083018461331e565b92915050565b60006133538261315e565b9050919050565b61336381613348565b811461336e57600080fd5b50565b6000813590506133808161335a565b92915050565b6000806040838503121561339d5761339c613134565b5b60006133ab85828601613371565b92505060206133bc85828601613187565b9150509250929050565b60006060820190506133db6000830186613045565b6133e86020830185613045565b6133f56040830184613045565b949350505050565b6134068161315e565b82525050565b600060208201905061342160008301846133fd565b92915050565b60006020828403121561343d5761343c613134565b5b600061344b848285016131b3565b91505092915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613491826130be565b810181811067ffffffffffffffff821117156134b0576134af613459565b5b80604052505050565b60006134c361312a565b90506134cf8282613488565b919050565b600067ffffffffffffffff8211156134ef576134ee613459565b5b602082029050602081019050919050565b600080fd5b6000613518613513846134d4565b6134b9565b9050808382526020820190506020840283018581111561353b5761353a613500565b5b835b8181101561356457806135508882613187565b84526020840193505060208101905061353d565b5050509392505050565b600082601f83011261358357613582613454565b5b8135613593848260208601613505565b91505092915050565b6000602082840312156135b2576135b1613134565b5b600082013567ffffffffffffffff8111156135d0576135cf613139565b5b6135dc8482850161356e565b91505092915050565b600080604083850312156135fc576135fb613134565b5b600061360a85828601613187565b925050602061361b85828601613187565b9150509250929050565b61362e81613208565b811461363957600080fd5b50565b60008135905061364b81613625565b92915050565b60006020828403121561366757613666613134565b5b60006136758482850161363c565b91505092915050565b6000819050919050565b60006136a361369e6136998461313e565b61367e565b61313e565b9050919050565b60006136b582613688565b9050919050565b60006136c7826136aa565b9050919050565b6136d7816136bc565b82525050565b60006020820190506136f260008301846136ce565b92915050565b6000806040838503121561370f5761370e613134565b5b600061371d85828601613187565b925050602061372e8582860161363c565b9150509250929050565b6000613743826136aa565b9050919050565b61375381613738565b82525050565b600060208201905061376e600083018461374a565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806137bb57607f821691505b602082108114156137cf576137ce613774565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061380b60208361307a565b9150613816826137d5565b602082019050919050565b6000602082019050818103600083015261383a816137fe565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b600061389d60288361307a565b91506138a882613841565b604082019050919050565b600060208201905081810360008301526138cc81613890565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061390d8261303b565b91506139188361303b565b92508282101561392b5761392a6138d3565b5b828203905092915050565b60006139418261303b565b915061394c8361303b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613981576139806138d3565b5b828201905092915050565b60006139978261303b565b91506139a28361303b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156139db576139da6138d3565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613a208261303b565b9150613a2b8361303b565b925082613a3b57613a3a6139e6565b5b828204905092915050565b6000604082019050613a5b60008301856133fd565b613a686020830184613045565b9392505050565b600081519050613a7e81613625565b92915050565b600060208284031215613a9a57613a99613134565b5b6000613aa884828501613a6f565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613b0d60258361307a565b9150613b1882613ab1565b604082019050919050565b60006020820190508181036000830152613b3c81613b00565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000613b7d8261303b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613bb057613baf6138d3565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613c1760268361307a565b9150613c2282613bbb565b604082019050919050565b60006020820190508181036000830152613c4681613c0a565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613ca960248361307a565b9150613cb482613c4d565b604082019050919050565b60006020820190508181036000830152613cd881613c9c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613d3b60228361307a565b9150613d4682613cdf565b604082019050919050565b60006020820190508181036000830152613d6a81613d2e565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613dcd60298361307a565b9150613dd882613d71565b604082019050919050565b60006020820190508181036000830152613dfc81613dc0565b9050919050565b7f596f752063616e2774207472616e7366657220746f6b656e7300000000000000600082015250565b6000613e3960198361307a565b9150613e4482613e03565b602082019050919050565b60006020820190508181036000830152613e6881613e2c565b9050919050565b7f4e6f7420616c6c6f77656420696e206561726c79206275790000000000000000600082015250565b6000613ea560188361307a565b9150613eb082613e6f565b602082019050919050565b60006020820190508181036000830152613ed481613e98565b9050919050565b7f596f752061726520657863656564696e67206d61785478416d6f756e74000000600082015250565b6000613f11601d8361307a565b9150613f1c82613edb565b602082019050919050565b60006020820190508181036000830152613f4081613f04565b9050919050565b7f596f752061726520657863656564696e67206d617857616c6c6574416d6f756e60008201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b6000613fa360218361307a565b9150613fae82613f47565b604082019050919050565b60006020820190508181036000830152613fd281613f96565b9050919050565b600081519050613fe881613170565b92915050565b60006020828403121561400457614003613134565b5b600061401284828501613fd9565b91505092915050565b6000819050919050565b600061404061403b6140368461401b565b61367e565b61303b565b9050919050565b61405081614025565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61408b8161315e565b82525050565b600061409d8383614082565b60208301905092915050565b6000602082019050919050565b60006140c182614056565b6140cb8185614061565b93506140d683614072565b8060005b838110156141075781516140ee8882614091565b97506140f9836140a9565b9250506001810190506140da565b5085935050505092915050565b600060a0820190506141296000830188613045565b6141366020830187614047565b818103604083015261414881866140b6565b905061415760608301856133fd565b6141646080830184613045565b9695505050505050565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b60006141a4601d8361307a565b91506141af8261416e565b602082019050919050565b600060208201905081810360008301526141d381614197565b9050919050565b600081905092915050565b50565b60006141f56000836141da565b9150614200826141e5565b600082019050919050565b6000614216826141e8565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b600061427c603a8361307a565b915061428782614220565b604082019050919050565b600060208201905081810360008301526142ab8161426f565b9050919050565b6000815190506142c18161319c565b92915050565b6000602082840312156142dd576142dc613134565b5b60006142eb848285016142b2565b91505092915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061435060258361307a565b915061435b826142f4565b604082019050919050565b6000602082019050818103600083015261437f81614343565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006143e260238361307a565b91506143ed82614386565b604082019050919050565b60006020820190508181036000830152614411816143d5565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061447460268361307a565b915061447f82614418565b604082019050919050565b600060208201905081810360008301526144a381614467565b9050919050565b600060c0820190506144bf60008301896133fd565b6144cc6020830188613045565b6144d96040830187614047565b6144e66060830186614047565b6144f360808301856133fd565b61450060a0830184613045565b979650505050505050565b60008060006060848603121561452457614523613134565b5b6000614532868287016142b2565b9350506020614543868287016142b2565b9250506040614554868287016142b2565b915050925092509256fea26469706673582212200c72605627f36335cab0465160416d43c9e4b25837ecea3cbff8b1838cca852d64736f6c634300080c0033
Deployed Bytecode Sourcemap
13375:8553:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13808:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2518:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4692:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3641:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19951:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14393:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5344:421;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21320:546;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13734:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14361:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3482:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6181:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20062:137;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13769:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13690:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13574:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3813:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12146:94;;;;;;;;;;;;;:::i;:::-;;14277:33;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;13607;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19546:114;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14007:75;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13860:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21042:142;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11921:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14089:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2738:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19426:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21199:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6900:378;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13517:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4154:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13915:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19828:114;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13648:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20538:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20212:172;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14432:49;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4393:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19325:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13491:18;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20390:134;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12249:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14317:37;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;13463:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13808:45;;;;:::o;2518:100::-;2572:13;2605:5;2598:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2518:100;:::o;4692:169::-;4775:4;4792:39;4801:12;:10;:12::i;:::-;4815:7;4824:6;4792:8;:39::i;:::-;4849:4;4842:11;;4692:169;;;;:::o;3641:108::-;3702:7;3729:12;;3722:19;;3641:108;:::o;19951:102::-;12068:12;:10;:12::i;:::-;12057:23;;:7;:5;:7::i;:::-;:23;;;12049:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20036:9:::1;20024;;:21;;;;;;;;;;;;;;;;;;19951:102:::0;:::o;14393:29::-;;;;:::o;5344:421::-;5450:4;5467:36;5477:6;5485:9;5496:6;5467:9;:36::i;:::-;5514:24;5541:11;:19;5553:6;5541:19;;;;;;;;;;;;;;;:33;5561:12;:10;:12::i;:::-;5541:33;;;;;;;;;;;;;;;;5514:60;;5613:6;5593:16;:26;;5585:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;5675:57;5684:6;5692:12;:10;:12::i;:::-;5725:6;5706:16;:25;;;;:::i;:::-;5675:8;:57::i;:::-;5753:4;5746:11;;;5344:421;;;;;:::o;21320:546::-;12068:12;:10;:12::i;:::-;12057:23;;:7;:5;:7::i;:::-;:23;;;12049:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21437:19:::1;21459:21;21437:43;;21491:24;21508:6;21491:16;:24::i;:::-;21526:18;21571:11;21547:21;:35;;;;:::i;:::-;21526:56;;21618:1;21596:19;:23;21593:136;;;21621:108;21708:19;21692:13;:35;;;;:::i;:::-;21669:19;21656:10;:32;;;;:::i;:::-;:72;;;;:::i;:::-;21629:15;;;;;;;;;;;21621:34;;;;:108;;;;:::i;:::-;21593:136;21759:1;21743:13;:17;21740:118;;;21762:96;21837:19;21821:13;:35;;;;:::i;:::-;21804:13;21791:10;:26;;;;:::i;:::-;:66;;;;:::i;:::-;21770:9;;;;;;;;;;;21762:28;;;;:96;;;;:::i;:::-;21740:118;21426:440;;21320:546:::0;;;:::o;13734:28::-;;;;:::o;14361:25::-;;;;:::o;3482:93::-;3540:5;3565:2;3558:9;;3482:93;:::o;6181:215::-;6269:4;6286:80;6295:12;:10;:12::i;:::-;6309:7;6355:10;6318:11;:25;6330:12;:10;:12::i;:::-;6318:25;;;;;;;;;;;;;;;:34;6344:7;6318:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;6286:8;:80::i;:::-;6384:4;6377:11;;6181:215;;;;:::o;20062:137::-;12068:12;:10;:12::i;:::-;12057:23;;:7;:5;:7::i;:::-;:23;;;12049:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20161:7:::1;20152:6;;:16;;;;;;;;;;;;;;;;;;20186:5;20179:4;;:12;;;;;;;;;;;;;;;;;;20062:137:::0;;:::o;13769:29::-;;;;:::o;13690:27::-;;;;:::o;13574:23::-;;;;;;;;;;;;;:::o;3813:127::-;3887:7;3914:9;:18;3924:7;3914:18;;;;;;;;;;;;;;;;3907:25;;3813:127;;;:::o;12146:94::-;12068:12;:10;:12::i;:::-;12057:23;;:7;:5;:7::i;:::-;:23;;;12049:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12211:21:::1;12229:1;12211:9;:21::i;:::-;12146:94::o:0;14277:33::-;;;;;;;;;;;;;;;;;;;:::o;13607:::-;;;;;;;;;;;;;:::o;19546:114::-;19605:4;19630:21;19643:7;19630:12;:21::i;:::-;19623:28;;19546:114;;;:::o;14007:75::-;;;;;;;;;;;;;:::o;13860:48::-;;;;:::o;21042:142::-;12068:12;:10;:12::i;:::-;12057:23;;:7;:5;:7::i;:::-;:23;;;12049:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21137:12:::1;21130:29;;;21160:7;:5;:7::i;:::-;21169:6;21130:46;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21042:142:::0;;:::o;11921:87::-;11967:7;11994:6;;;;;;;;;;;11987:13;;11921:87;:::o;14089:69::-;;;;;;;;;;;;;:::o;2738:104::-;2794:13;2827:7;2820:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2738:104;:::o;19426:110::-;12068:12;:10;:12::i;:::-;12057:23;;:7;:5;:7::i;:::-;:23;;;12049:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19518:10:::1;19502:13;:26;;;;19426:110:::0;:::o;21199:112::-;12068:12;:10;:12::i;:::-;12057:23;;:7;:5;:7::i;:::-;:23;;;12049:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21266:37:::1;21293:9;21274:7;:5;:7::i;:::-;21266:26;;;;:37;;;;:::i;:::-;21199:112:::0;:::o;6900:378::-;6993:4;7010:24;7037:11;:25;7049:12;:10;:12::i;:::-;7037:25;;;;;;;;;;;;;;;:34;7063:7;7037:34;;;;;;;;;;;;;;;;7010:61;;7110:15;7090:16;:35;;7082:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;7178:67;7187:12;:10;:12::i;:::-;7201:7;7229:15;7210:16;:34;;;;:::i;:::-;7178:8;:67::i;:::-;7266:4;7259:11;;;6900:378;;;;:::o;13517:19::-;;;;;;;;;;;;;:::o;4154:175::-;4240:4;4257:42;4267:12;:10;:12::i;:::-;4281:9;4292:6;4257:9;:42::i;:::-;4317:4;4310:11;;4154:175;;;;:::o;13915:49::-;;;;:::o;19828:114::-;12068:12;:10;:12::i;:::-;12057:23;;:7;:5;:7::i;:::-;:23;;;12049:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19925:9:::1;19907:15;;:27;;;;;;;;;;;;;;;;;;19828:114:::0;:::o;13648:34::-;;;;:::o;20538:117::-;12068:12;:10;:12::i;:::-;12057:23;;:7;:5;:7::i;:::-;:23;;;12049:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20641:6:::1;20632;:15;;;;:::i;:::-;20614;:33;;;;20538:117:::0;:::o;20212:172::-;12068:12;:10;:12::i;:::-;12057:23;;:7;:5;:7::i;:::-;:23;;;12049:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20287:6:::1;20282:91;20303:6;:13;20299:1;:17;20282:91;;;20357:4;20338:5;:16;20344:6;20351:1;20344:9;;;;;;;;:::i;:::-;;;;;;;;20338:16;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;20318:3;;;;;:::i;:::-;;;;20282:91;;;;20212:172:::0;:::o;14432:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;4393:151::-;4482:7;4509:11;:18;4521:5;4509:18;;;;;;;;;;;;;;;:27;4528:7;4509:27;;;;;;;;;;;;;;;;4502:34;;4393:151;;;;:::o;19325:92::-;12068:12;:10;:12::i;:::-;12057:23;;:7;:5;:7::i;:::-;:23;;;12049:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19405:4:::1;19391:11;;:18;;;;;;;;;;;;;;;;;;19325:92:::0;:::o;13491:18::-;;;;;;;;;;;;;:::o;20390:134::-;12068:12;:10;:12::i;:::-;12057:23;;:7;:5;:7::i;:::-;:23;;;12049:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20511:5:::1;20482:16;:26;20499:8;20482:26;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;20390:134:::0;;:::o;12249:192::-;12068:12;:10;:12::i;:::-;12057:23;;:7;:5;:7::i;:::-;:23;;;12049:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12358:1:::1;12338:22;;:8;:22;;;;12330:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;12414:19;12424:8;12414:9;:19::i;:::-;12249:192:::0;:::o;14317:37::-;;;;;;;;;;;;;;;;;;;:::o;13463:21::-;;;;;;;;;;;;;:::o;215:98::-;268:7;295:10;288:17;;215:98;:::o;10280:347::-;10399:1;10382:19;;:5;:19;;;;10374:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10480:1;10461:21;;:7;:21;;;;10453:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10565:6;10535:11;:18;10547:5;10535:18;;;;;;;;;;;;;;;:27;10554:7;10535:27;;;;;;;;;;;;;;;:36;;;;10603:7;10587:32;;10596:5;10587:32;;;10612:6;10587:32;;;;;;:::i;:::-;;;;;;;;10280:347;;;:::o;15305:1721::-;15435:1;15426:6;:10;15418:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;15502:5;:13;15508:6;15502:13;;;;;;;;;;;;;;;;;;;;;;;;;15501:14;:35;;;;;15520:5;:16;15526:9;15520:16;;;;;;;;;;;;;;;;;;;;;;;;;15519:17;15501:35;15493:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;15583:20;15596:6;15583:12;:20::i;:::-;15582:21;:49;;;;;15608:23;15621:9;15608:12;:23::i;:::-;15607:24;15582:49;15578:131;;;15653:14;:12;:14::i;:::-;15652:15;15644:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;15578:131;15723:11;15750:4;;;;;;;;;;;15737:17;;:9;:17;;;15723:31;;15769:21;15783:6;15769:13;:21::i;:::-;15816:16;:24;15833:6;15816:24;;;;;;;;;;;;;;;;;;;;;;;;;15815:25;:57;;;;;15845:16;:27;15862:9;15845:27;;;;;;;;;;;;;;;;;;;;;;;;;15844:28;15815:57;:70;;;;;15877:8;;;;;;;;;;;15876:9;15815:70;15812:528;;;15933:12;15920:10;;15904:13;;:26;;;;:::i;:::-;:41;15901:183;;;15981:4;;;;;;;;;;;15968:17;;:9;:17;;;15965:45;;16006:4;15987:5;:16;15993:9;15987:16;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;15965:45;16042:4;;;;;;;;;;;16032:14;;:6;:14;;;16029:39;;16064:4;16048:5;:13;16054:6;16048:13;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;16029:39;15901:183;16116:11;;16106:6;:21;;16098:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;16192:4;;;;;;;;;;;16179:17;;:9;:17;;;16176:150;;16257:15;;16247:6;16224:20;16234:9;16224;:20::i;:::-;:29;;;;:::i;:::-;:48;;16216:94;;;;;;;;;;;;:::i;:::-;;;;;;;;;16176:150;15812:528;16356:11;16456:8;;;;;;;;;;;:36;;;;16468:16;:24;16485:6;16468:24;;;;;;;;;;;;;;;;;;;;;;;;;16456:36;:67;;;;16496:16;:27;16513:9;16496:27;;;;;;;;;;;;;;;;;;;;;;;;;16456:67;16452:250;;;16531:1;16525:7;;16452:250;;;16606:4;;;;;;;;;;;16593:17;;:9;:17;;;16590:100;;;16640:3;16627:10;;16618:6;:19;;;;:::i;:::-;:25;;;;:::i;:::-;16612:31;;16590:100;;;16687:3;16678:6;;16669;:15;;;;:::i;:::-;:21;;;;:::i;:::-;16663:27;;16590:100;16452:250;16819:11;;;;;;;;;;;:24;;;;;16835:8;;;;;;;;;;;16834:9;16819:24;:42;;;;;16857:4;;;;;;;;;;;16847:14;;:6;:14;;;;16819:42;:53;;;;;16871:1;16865:3;:7;16819:53;16815:72;;;16874:13;:11;:13::i;:::-;16815:72;16901:48;16917:6;16925:9;16945:3;16936:6;:12;;;;:::i;:::-;16901:15;:48::i;:::-;16969:1;16963:3;:7;16960:55;;;16972:43;16988:6;17004:4;17011:3;16972:15;:43::i;:::-;16960:55;15393:1633;;15305:1721;;;:::o;18394:403::-;18460:21;18498:1;18484:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18460:40;;18529:4;18511;18516:1;18511:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;18555:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18545:4;18550:1;18545:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;18582:53;18599:4;18614:6;;;;;;;;;;;18623:11;18582:8;:53::i;:::-;18675:6;;;;;;;;;;;:57;;;18733:11;18746:1;18749:4;18763;18770:15;18675:111;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18449:348;18394:403;:::o;11361:318::-;11476:6;11451:21;:31;;11443:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;11531:12;11549:9;:14;;11571:6;11549:33;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11530:52;;;11601:7;11593:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;11432:247;11361:318;;:::o;12450:173::-;12506:16;12525:6;;;;;;;;;;;12506:25;;12551:8;12542:6;;:17;;;;;;;;;;;;;;;;;;12606:8;12575:40;;12596:8;12575:40;;;;;;;;;;;;12495:128;12450:173;:::o;19667:152::-;19728:4;19800:10;19779:4;;;;;;;;;;;:16;;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:31;;;;:::i;:::-;19753:4;;;;;;;;;;;:14;;;19768:6;19753:22;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:57;;19746:64;;19667:152;;;:::o;20907:126::-;20953:4;21016:8;;20994:19;;:30;;;;:::i;:::-;20978:12;:46;;20971:53;;20907:126;:::o;20691:209::-;20752:21;;;;;;;;;;;20751:22;:32;;;;;20777:6;20751:32;20747:145;;;20825:4;20801:21;;:28;;;;;;;;;;;;;;;;;;20867:12;20845:19;:34;;;;20747:145;20691:209;:::o;17035:1351::-;14571:8;;;;;;;;;;;14566:104;;14607:4;14596:8;;:15;;;;;;;;;;;;;;;;;;17084:23:::1;17110:24;17128:4;17110:9;:24::i;:::-;17084:50;;17168:13;;17149:15;:32;17145:1234;;17256:19;17291:1;17278:10;;:14;;;;:::i;:::-;17256:36;;17307:32;17382:11;17360:9;:19;;;17342:15;:37;;;;:::i;:::-;:51;;;;:::i;:::-;17307:86;;17408:14;17443:24;17425:15;:42;;;;:::i;:::-;17408:59;;17485:23;17511:21;17485:47;;17550:24;17567:6;17550:16;:24::i;:::-;17592:20;17639:15;17615:21;:39;;;;:::i;:::-;17592:62;;17669:19;17720:9;:19;;;17706:11;:33;;;;:::i;:::-;17690:12;:50;;;;:::i;:::-;17669:71;;17755:29;17801:9;:19;;;17787:11;:33;;;;:::i;:::-;17755:65;;17865:1;17841:21;:25;17838:170;;;17931:61;17944:24;17970:21;17931:12;:61::i;:::-;17838:170;18025:20;18066:9;:19;;;18062:1;18048:11;:15;;;;:::i;:::-;:37;;;;:::i;:::-;18025:60;;18118:1;18103:12;:16;18100:103;;;18139:48;18174:12;18147:15;;;;;;;;;;;18139:34;;;;:48;;;;:::i;:::-;18100:103;18220:14;18255:9;:13;;;18251:1;18237:11;:15;;;;:::i;:::-;:31;;;;:::i;:::-;18220:48;;18295:1;18286:6;:10;18283:85;;;18316:36;18345:6;18324:9;;;;;;;;;;;18316:28;;;;:36;;;;:::i;:::-;18283:85;17183:1196;;;;;;;;;17145:1234;17073:1313;14653:5:::0;14642:8;;:16;;;;;;;;;;;;;;;;;;14566:104;17035:1351::o;7769:610::-;7893:1;7875:20;;:6;:20;;;;7867:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;7977:1;7956:23;;:9;:23;;;;7948:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;8036:47;8057:6;8065:9;8076:6;8036:20;:47::i;:::-;8097:21;8121:9;:17;8131:6;8121:17;;;;;;;;;;;;;;;;8097:41;;8174:6;8157:13;:23;;8149:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;8270:6;8254:13;:22;;;;:::i;:::-;8234:9;:17;8244:6;8234:17;;;;;;;;;;;;;;;:42;;;;8311:6;8287:9;:20;8297:9;8287:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;8353:9;8336:35;;8345:6;8336:35;;;8364:6;8336:35;;;;;;:::i;:::-;;;;;;;;7856:523;7769:610;;;:::o;18806:510::-;18954:53;18971:4;18986:6;;;;;;;;;;;18995:11;18954:8;:53::i;:::-;19051:6;;;;;;;;;;;:22;;;19081:9;19114:4;19134:11;19160:1;19203;19246:9;;;;;;;;;;;19270:15;19051:245;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;18806:510;;:::o;11239:92::-;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:307::-;790:1;800:113;814:6;811:1;808:13;800:113;;;899:1;894:3;890:11;884:18;880:1;875:3;871:11;864:39;836:2;833:1;829:10;824:15;;800:113;;;931:6;928:1;925:13;922:101;;;1011:1;1002:6;997:3;993:16;986:27;922:101;771:258;722:307;;;:::o;1035:102::-;1076:6;1127:2;1123:7;1118:2;1111:5;1107:14;1103:28;1093:38;;1035:102;;;:::o;1143:364::-;1231:3;1259:39;1292:5;1259:39;:::i;:::-;1314:71;1378:6;1373:3;1314:71;:::i;:::-;1307:78;;1394:52;1439:6;1434:3;1427:4;1420:5;1416:16;1394:52;:::i;:::-;1471:29;1493:6;1471:29;:::i;:::-;1466:3;1462:39;1455:46;;1235:272;1143:364;;;;:::o;1513:313::-;1626:4;1664:2;1653:9;1649:18;1641:26;;1713:9;1707:4;1703:20;1699:1;1688:9;1684:17;1677:47;1741:78;1814:4;1805:6;1741:78;:::i;:::-;1733:86;;1513:313;;;;:::o;1832:75::-;1865:6;1898:2;1892:9;1882:19;;1832:75;:::o;1913:117::-;2022:1;2019;2012:12;2036:117;2145:1;2142;2135:12;2159:126;2196:7;2236:42;2229:5;2225:54;2214:65;;2159:126;;;:::o;2291:96::-;2328:7;2357:24;2375:5;2357:24;:::i;:::-;2346:35;;2291:96;;;:::o;2393:122::-;2466:24;2484:5;2466:24;:::i;:::-;2459:5;2456:35;2446:63;;2505:1;2502;2495:12;2446:63;2393:122;:::o;2521:139::-;2567:5;2605:6;2592:20;2583:29;;2621:33;2648:5;2621:33;:::i;:::-;2521:139;;;;:::o;2666:122::-;2739:24;2757:5;2739:24;:::i;:::-;2732:5;2729:35;2719:63;;2778:1;2775;2768:12;2719:63;2666:122;:::o;2794:139::-;2840:5;2878:6;2865:20;2856:29;;2894:33;2921:5;2894:33;:::i;:::-;2794:139;;;;:::o;2939:474::-;3007:6;3015;3064:2;3052:9;3043:7;3039:23;3035:32;3032:119;;;3070:79;;:::i;:::-;3032:119;3190:1;3215:53;3260:7;3251:6;3240:9;3236:22;3215:53;:::i;:::-;3205:63;;3161:117;3317:2;3343:53;3388:7;3379:6;3368:9;3364:22;3343:53;:::i;:::-;3333:63;;3288:118;2939:474;;;;;:::o;3419:90::-;3453:7;3496:5;3489:13;3482:21;3471:32;;3419:90;;;:::o;3515:109::-;3596:21;3611:5;3596:21;:::i;:::-;3591:3;3584:34;3515:109;;:::o;3630:210::-;3717:4;3755:2;3744:9;3740:18;3732:26;;3768:65;3830:1;3819:9;3815:17;3806:6;3768:65;:::i;:::-;3630:210;;;;:::o;3846:329::-;3905:6;3954:2;3942:9;3933:7;3929:23;3925:32;3922:119;;;3960:79;;:::i;:::-;3922:119;4080:1;4105:53;4150:7;4141:6;4130:9;4126:22;4105:53;:::i;:::-;4095:63;;4051:117;3846:329;;;;:::o;4181:619::-;4258:6;4266;4274;4323:2;4311:9;4302:7;4298:23;4294:32;4291:119;;;4329:79;;:::i;:::-;4291:119;4449:1;4474:53;4519:7;4510:6;4499:9;4495:22;4474:53;:::i;:::-;4464:63;;4420:117;4576:2;4602:53;4647:7;4638:6;4627:9;4623:22;4602:53;:::i;:::-;4592:63;;4547:118;4704:2;4730:53;4775:7;4766:6;4755:9;4751:22;4730:53;:::i;:::-;4720:63;;4675:118;4181:619;;;;;:::o;4806:::-;4883:6;4891;4899;4948:2;4936:9;4927:7;4923:23;4919:32;4916:119;;;4954:79;;:::i;:::-;4916:119;5074:1;5099:53;5144:7;5135:6;5124:9;5120:22;5099:53;:::i;:::-;5089:63;;5045:117;5201:2;5227:53;5272:7;5263:6;5252:9;5248:22;5227:53;:::i;:::-;5217:63;;5172:118;5329:2;5355:53;5400:7;5391:6;5380:9;5376:22;5355:53;:::i;:::-;5345:63;;5300:118;4806:619;;;;;:::o;5431:86::-;5466:7;5506:4;5499:5;5495:16;5484:27;;5431:86;;;:::o;5523:112::-;5606:22;5622:5;5606:22;:::i;:::-;5601:3;5594:35;5523:112;;:::o;5641:214::-;5730:4;5768:2;5757:9;5753:18;5745:26;;5781:67;5845:1;5834:9;5830:17;5821:6;5781:67;:::i;:::-;5641:214;;;;:::o;5861:111::-;5913:7;5942:24;5960:5;5942:24;:::i;:::-;5931:35;;5861:111;;;:::o;5978:152::-;6066:39;6099:5;6066:39;:::i;:::-;6059:5;6056:50;6046:78;;6120:1;6117;6110:12;6046:78;5978:152;:::o;6136:169::-;6197:5;6235:6;6222:20;6213:29;;6251:48;6293:5;6251:48;:::i;:::-;6136:169;;;;:::o;6311:504::-;6394:6;6402;6451:2;6439:9;6430:7;6426:23;6422:32;6419:119;;;6457:79;;:::i;:::-;6419:119;6577:1;6602:68;6662:7;6653:6;6642:9;6638:22;6602:68;:::i;:::-;6592:78;;6548:132;6719:2;6745:53;6790:7;6781:6;6770:9;6766:22;6745:53;:::i;:::-;6735:63;;6690:118;6311:504;;;;;:::o;6821:442::-;6970:4;7008:2;6997:9;6993:18;6985:26;;7021:71;7089:1;7078:9;7074:17;7065:6;7021:71;:::i;:::-;7102:72;7170:2;7159:9;7155:18;7146:6;7102:72;:::i;:::-;7184;7252:2;7241:9;7237:18;7228:6;7184:72;:::i;:::-;6821:442;;;;;;:::o;7269:118::-;7356:24;7374:5;7356:24;:::i;:::-;7351:3;7344:37;7269:118;;:::o;7393:222::-;7486:4;7524:2;7513:9;7509:18;7501:26;;7537:71;7605:1;7594:9;7590:17;7581:6;7537:71;:::i;:::-;7393:222;;;;:::o;7621:329::-;7680:6;7729:2;7717:9;7708:7;7704:23;7700:32;7697:119;;;7735:79;;:::i;:::-;7697:119;7855:1;7880:53;7925:7;7916:6;7905:9;7901:22;7880:53;:::i;:::-;7870:63;;7826:117;7621:329;;;;:::o;7956:117::-;8065:1;8062;8055:12;8079:180;8127:77;8124:1;8117:88;8224:4;8221:1;8214:15;8248:4;8245:1;8238:15;8265:281;8348:27;8370:4;8348:27;:::i;:::-;8340:6;8336:40;8478:6;8466:10;8463:22;8442:18;8430:10;8427:34;8424:62;8421:88;;;8489:18;;:::i;:::-;8421:88;8529:10;8525:2;8518:22;8308:238;8265:281;;:::o;8552:129::-;8586:6;8613:20;;:::i;:::-;8603:30;;8642:33;8670:4;8662:6;8642:33;:::i;:::-;8552:129;;;:::o;8687:311::-;8764:4;8854:18;8846:6;8843:30;8840:56;;;8876:18;;:::i;:::-;8840:56;8926:4;8918:6;8914:17;8906:25;;8986:4;8980;8976:15;8968:23;;8687:311;;;:::o;9004:117::-;9113:1;9110;9103:12;9144:710;9240:5;9265:81;9281:64;9338:6;9281:64;:::i;:::-;9265:81;:::i;:::-;9256:90;;9366:5;9395:6;9388:5;9381:21;9429:4;9422:5;9418:16;9411:23;;9482:4;9474:6;9470:17;9462:6;9458:30;9511:3;9503:6;9500:15;9497:122;;;9530:79;;:::i;:::-;9497:122;9645:6;9628:220;9662:6;9657:3;9654:15;9628:220;;;9737:3;9766:37;9799:3;9787:10;9766:37;:::i;:::-;9761:3;9754:50;9833:4;9828:3;9824:14;9817:21;;9704:144;9688:4;9683:3;9679:14;9672:21;;9628:220;;;9632:21;9246:608;;9144:710;;;;;:::o;9877:370::-;9948:5;9997:3;9990:4;9982:6;9978:17;9974:27;9964:122;;10005:79;;:::i;:::-;9964:122;10122:6;10109:20;10147:94;10237:3;10229:6;10222:4;10214:6;10210:17;10147:94;:::i;:::-;10138:103;;9954:293;9877:370;;;;:::o;10253:539::-;10337:6;10386:2;10374:9;10365:7;10361:23;10357:32;10354:119;;;10392:79;;:::i;:::-;10354:119;10540:1;10529:9;10525:17;10512:31;10570:18;10562:6;10559:30;10556:117;;;10592:79;;:::i;:::-;10556:117;10697:78;10767:7;10758:6;10747:9;10743:22;10697:78;:::i;:::-;10687:88;;10483:302;10253:539;;;;:::o;10798:474::-;10866:6;10874;10923:2;10911:9;10902:7;10898:23;10894:32;10891:119;;;10929:79;;:::i;:::-;10891:119;11049:1;11074:53;11119:7;11110:6;11099:9;11095:22;11074:53;:::i;:::-;11064:63;;11020:117;11176:2;11202:53;11247:7;11238:6;11227:9;11223:22;11202:53;:::i;:::-;11192:63;;11147:118;10798:474;;;;;:::o;11278:116::-;11348:21;11363:5;11348:21;:::i;:::-;11341:5;11338:32;11328:60;;11384:1;11381;11374:12;11328:60;11278:116;:::o;11400:133::-;11443:5;11481:6;11468:20;11459:29;;11497:30;11521:5;11497:30;:::i;:::-;11400:133;;;;:::o;11539:323::-;11595:6;11644:2;11632:9;11623:7;11619:23;11615:32;11612:119;;;11650:79;;:::i;:::-;11612:119;11770:1;11795:50;11837:7;11828:6;11817:9;11813:22;11795:50;:::i;:::-;11785:60;;11741:114;11539:323;;;;:::o;11868:60::-;11896:3;11917:5;11910:12;;11868:60;;;:::o;11934:142::-;11984:9;12017:53;12035:34;12044:24;12062:5;12044:24;:::i;:::-;12035:34;:::i;:::-;12017:53;:::i;:::-;12004:66;;11934:142;;;:::o;12082:126::-;12132:9;12165:37;12196:5;12165:37;:::i;:::-;12152:50;;12082:126;;;:::o;12214:139::-;12277:9;12310:37;12341:5;12310:37;:::i;:::-;12297:50;;12214:139;;;:::o;12359:157::-;12459:50;12503:5;12459:50;:::i;:::-;12454:3;12447:63;12359:157;;:::o;12522:248::-;12628:4;12666:2;12655:9;12651:18;12643:26;;12679:84;12760:1;12749:9;12745:17;12736:6;12679:84;:::i;:::-;12522:248;;;;:::o;12776:468::-;12841:6;12849;12898:2;12886:9;12877:7;12873:23;12869:32;12866:119;;;12904:79;;:::i;:::-;12866:119;13024:1;13049:53;13094:7;13085:6;13074:9;13070:22;13049:53;:::i;:::-;13039:63;;12995:117;13151:2;13177:50;13219:7;13210:6;13199:9;13195:22;13177:50;:::i;:::-;13167:60;;13122:115;12776:468;;;;;:::o;13250:141::-;13315:9;13348:37;13379:5;13348:37;:::i;:::-;13335:50;;13250:141;;;:::o;13397:161::-;13499:52;13545:5;13499:52;:::i;:::-;13494:3;13487:65;13397:161;;:::o;13564:252::-;13672:4;13710:2;13699:9;13695:18;13687:26;;13723:86;13806:1;13795:9;13791:17;13782:6;13723:86;:::i;:::-;13564:252;;;;:::o;13822:180::-;13870:77;13867:1;13860:88;13967:4;13964:1;13957:15;13991:4;13988:1;13981:15;14008:320;14052:6;14089:1;14083:4;14079:12;14069:22;;14136:1;14130:4;14126:12;14157:18;14147:81;;14213:4;14205:6;14201:17;14191:27;;14147:81;14275:2;14267:6;14264:14;14244:18;14241:38;14238:84;;;14294:18;;:::i;:::-;14238:84;14059:269;14008:320;;;:::o;14334:182::-;14474:34;14470:1;14462:6;14458:14;14451:58;14334:182;:::o;14522:366::-;14664:3;14685:67;14749:2;14744:3;14685:67;:::i;:::-;14678:74;;14761:93;14850:3;14761:93;:::i;:::-;14879:2;14874:3;14870:12;14863:19;;14522:366;;;:::o;14894:419::-;15060:4;15098:2;15087:9;15083:18;15075:26;;15147:9;15141:4;15137:20;15133:1;15122:9;15118:17;15111:47;15175:131;15301:4;15175:131;:::i;:::-;15167:139;;14894:419;;;:::o;15319:227::-;15459:34;15455:1;15447:6;15443:14;15436:58;15528:10;15523:2;15515:6;15511:15;15504:35;15319:227;:::o;15552:366::-;15694:3;15715:67;15779:2;15774:3;15715:67;:::i;:::-;15708:74;;15791:93;15880:3;15791:93;:::i;:::-;15909:2;15904:3;15900:12;15893:19;;15552:366;;;:::o;15924:419::-;16090:4;16128:2;16117:9;16113:18;16105:26;;16177:9;16171:4;16167:20;16163:1;16152:9;16148:17;16141:47;16205:131;16331:4;16205:131;:::i;:::-;16197:139;;15924:419;;;:::o;16349:180::-;16397:77;16394:1;16387:88;16494:4;16491:1;16484:15;16518:4;16515:1;16508:15;16535:191;16575:4;16595:20;16613:1;16595:20;:::i;:::-;16590:25;;16629:20;16647:1;16629:20;:::i;:::-;16624:25;;16668:1;16665;16662:8;16659:34;;;16673:18;;:::i;:::-;16659:34;16718:1;16715;16711:9;16703:17;;16535:191;;;;:::o;16732:305::-;16772:3;16791:20;16809:1;16791:20;:::i;:::-;16786:25;;16825:20;16843:1;16825:20;:::i;:::-;16820:25;;16979:1;16911:66;16907:74;16904:1;16901:81;16898:107;;;16985:18;;:::i;:::-;16898:107;17029:1;17026;17022:9;17015:16;;16732:305;;;;:::o;17043:348::-;17083:7;17106:20;17124:1;17106:20;:::i;:::-;17101:25;;17140:20;17158:1;17140:20;:::i;:::-;17135:25;;17328:1;17260:66;17256:74;17253:1;17250:81;17245:1;17238:9;17231:17;17227:105;17224:131;;;17335:18;;:::i;:::-;17224:131;17383:1;17380;17376:9;17365:20;;17043:348;;;;:::o;17397:180::-;17445:77;17442:1;17435:88;17542:4;17539:1;17532:15;17566:4;17563:1;17556:15;17583:185;17623:1;17640:20;17658:1;17640:20;:::i;:::-;17635:25;;17674:20;17692:1;17674:20;:::i;:::-;17669:25;;17713:1;17703:35;;17718:18;;:::i;:::-;17703:35;17760:1;17757;17753:9;17748:14;;17583:185;;;;:::o;17774:332::-;17895:4;17933:2;17922:9;17918:18;17910:26;;17946:71;18014:1;18003:9;17999:17;17990:6;17946:71;:::i;:::-;18027:72;18095:2;18084:9;18080:18;18071:6;18027:72;:::i;:::-;17774:332;;;;;:::o;18112:137::-;18166:5;18197:6;18191:13;18182:22;;18213:30;18237:5;18213:30;:::i;:::-;18112:137;;;;:::o;18255:345::-;18322:6;18371:2;18359:9;18350:7;18346:23;18342:32;18339:119;;;18377:79;;:::i;:::-;18339:119;18497:1;18522:61;18575:7;18566:6;18555:9;18551:22;18522:61;:::i;:::-;18512:71;;18468:125;18255:345;;;;:::o;18606:224::-;18746:34;18742:1;18734:6;18730:14;18723:58;18815:7;18810:2;18802:6;18798:15;18791:32;18606:224;:::o;18836:366::-;18978:3;18999:67;19063:2;19058:3;18999:67;:::i;:::-;18992:74;;19075:93;19164:3;19075:93;:::i;:::-;19193:2;19188:3;19184:12;19177:19;;18836:366;;;:::o;19208:419::-;19374:4;19412:2;19401:9;19397:18;19389:26;;19461:9;19455:4;19451:20;19447:1;19436:9;19432:17;19425:47;19489:131;19615:4;19489:131;:::i;:::-;19481:139;;19208:419;;;:::o;19633:180::-;19681:77;19678:1;19671:88;19778:4;19775:1;19768:15;19802:4;19799:1;19792:15;19819:233;19858:3;19881:24;19899:5;19881:24;:::i;:::-;19872:33;;19927:66;19920:5;19917:77;19914:103;;;19997:18;;:::i;:::-;19914:103;20044:1;20037:5;20033:13;20026:20;;19819:233;;;:::o;20058:225::-;20198:34;20194:1;20186:6;20182:14;20175:58;20267:8;20262:2;20254:6;20250:15;20243:33;20058:225;:::o;20289:366::-;20431:3;20452:67;20516:2;20511:3;20452:67;:::i;:::-;20445:74;;20528:93;20617:3;20528:93;:::i;:::-;20646:2;20641:3;20637:12;20630:19;;20289:366;;;:::o;20661:419::-;20827:4;20865:2;20854:9;20850:18;20842:26;;20914:9;20908:4;20904:20;20900:1;20889:9;20885:17;20878:47;20942:131;21068:4;20942:131;:::i;:::-;20934:139;;20661:419;;;:::o;21086:223::-;21226:34;21222:1;21214:6;21210:14;21203:58;21295:6;21290:2;21282:6;21278:15;21271:31;21086:223;:::o;21315:366::-;21457:3;21478:67;21542:2;21537:3;21478:67;:::i;:::-;21471:74;;21554:93;21643:3;21554:93;:::i;:::-;21672:2;21667:3;21663:12;21656:19;;21315:366;;;:::o;21687:419::-;21853:4;21891:2;21880:9;21876:18;21868:26;;21940:9;21934:4;21930:20;21926:1;21915:9;21911:17;21904:47;21968:131;22094:4;21968:131;:::i;:::-;21960:139;;21687:419;;;:::o;22112:221::-;22252:34;22248:1;22240:6;22236:14;22229:58;22321:4;22316:2;22308:6;22304:15;22297:29;22112:221;:::o;22339:366::-;22481:3;22502:67;22566:2;22561:3;22502:67;:::i;:::-;22495:74;;22578:93;22667:3;22578:93;:::i;:::-;22696:2;22691:3;22687:12;22680:19;;22339:366;;;:::o;22711:419::-;22877:4;22915:2;22904:9;22900:18;22892:26;;22964:9;22958:4;22954:20;22950:1;22939:9;22935:17;22928:47;22992:131;23118:4;22992:131;:::i;:::-;22984:139;;22711:419;;;:::o;23136:228::-;23276:34;23272:1;23264:6;23260:14;23253:58;23345:11;23340:2;23332:6;23328:15;23321:36;23136:228;:::o;23370:366::-;23512:3;23533:67;23597:2;23592:3;23533:67;:::i;:::-;23526:74;;23609:93;23698:3;23609:93;:::i;:::-;23727:2;23722:3;23718:12;23711:19;;23370:366;;;:::o;23742:419::-;23908:4;23946:2;23935:9;23931:18;23923:26;;23995:9;23989:4;23985:20;23981:1;23970:9;23966:17;23959:47;24023:131;24149:4;24023:131;:::i;:::-;24015:139;;23742:419;;;:::o;24167:175::-;24307:27;24303:1;24295:6;24291:14;24284:51;24167:175;:::o;24348:366::-;24490:3;24511:67;24575:2;24570:3;24511:67;:::i;:::-;24504:74;;24587:93;24676:3;24587:93;:::i;:::-;24705:2;24700:3;24696:12;24689:19;;24348:366;;;:::o;24720:419::-;24886:4;24924:2;24913:9;24909:18;24901:26;;24973:9;24967:4;24963:20;24959:1;24948:9;24944:17;24937:47;25001:131;25127:4;25001:131;:::i;:::-;24993:139;;24720:419;;;:::o;25145:174::-;25285:26;25281:1;25273:6;25269:14;25262:50;25145:174;:::o;25325:366::-;25467:3;25488:67;25552:2;25547:3;25488:67;:::i;:::-;25481:74;;25564:93;25653:3;25564:93;:::i;:::-;25682:2;25677:3;25673:12;25666:19;;25325:366;;;:::o;25697:419::-;25863:4;25901:2;25890:9;25886:18;25878:26;;25950:9;25944:4;25940:20;25936:1;25925:9;25921:17;25914:47;25978:131;26104:4;25978:131;:::i;:::-;25970:139;;25697:419;;;:::o;26122:179::-;26262:31;26258:1;26250:6;26246:14;26239:55;26122:179;:::o;26307:366::-;26449:3;26470:67;26534:2;26529:3;26470:67;:::i;:::-;26463:74;;26546:93;26635:3;26546:93;:::i;:::-;26664:2;26659:3;26655:12;26648:19;;26307:366;;;:::o;26679:419::-;26845:4;26883:2;26872:9;26868:18;26860:26;;26932:9;26926:4;26922:20;26918:1;26907:9;26903:17;26896:47;26960:131;27086:4;26960:131;:::i;:::-;26952:139;;26679:419;;;:::o;27104:220::-;27244:34;27240:1;27232:6;27228:14;27221:58;27313:3;27308:2;27300:6;27296:15;27289:28;27104:220;:::o;27330:366::-;27472:3;27493:67;27557:2;27552:3;27493:67;:::i;:::-;27486:74;;27569:93;27658:3;27569:93;:::i;:::-;27687:2;27682:3;27678:12;27671:19;;27330:366;;;:::o;27702:419::-;27868:4;27906:2;27895:9;27891:18;27883:26;;27955:9;27949:4;27945:20;27941:1;27930:9;27926:17;27919:47;27983:131;28109:4;27983:131;:::i;:::-;27975:139;;27702:419;;;:::o;28127:143::-;28184:5;28215:6;28209:13;28200:22;;28231:33;28258:5;28231:33;:::i;:::-;28127:143;;;;:::o;28276:351::-;28346:6;28395:2;28383:9;28374:7;28370:23;28366:32;28363:119;;;28401:79;;:::i;:::-;28363:119;28521:1;28546:64;28602:7;28593:6;28582:9;28578:22;28546:64;:::i;:::-;28536:74;;28492:128;28276:351;;;;:::o;28633:85::-;28678:7;28707:5;28696:16;;28633:85;;;:::o;28724:158::-;28782:9;28815:61;28833:42;28842:32;28868:5;28842:32;:::i;:::-;28833:42;:::i;:::-;28815:61;:::i;:::-;28802:74;;28724:158;;;:::o;28888:147::-;28983:45;29022:5;28983:45;:::i;:::-;28978:3;28971:58;28888:147;;:::o;29041:114::-;29108:6;29142:5;29136:12;29126:22;;29041:114;;;:::o;29161:184::-;29260:11;29294:6;29289:3;29282:19;29334:4;29329:3;29325:14;29310:29;;29161:184;;;;:::o;29351:132::-;29418:4;29441:3;29433:11;;29471:4;29466:3;29462:14;29454:22;;29351:132;;;:::o;29489:108::-;29566:24;29584:5;29566:24;:::i;:::-;29561:3;29554:37;29489:108;;:::o;29603:179::-;29672:10;29693:46;29735:3;29727:6;29693:46;:::i;:::-;29771:4;29766:3;29762:14;29748:28;;29603:179;;;;:::o;29788:113::-;29858:4;29890;29885:3;29881:14;29873:22;;29788:113;;;:::o;29937:732::-;30056:3;30085:54;30133:5;30085:54;:::i;:::-;30155:86;30234:6;30229:3;30155:86;:::i;:::-;30148:93;;30265:56;30315:5;30265:56;:::i;:::-;30344:7;30375:1;30360:284;30385:6;30382:1;30379:13;30360:284;;;30461:6;30455:13;30488:63;30547:3;30532:13;30488:63;:::i;:::-;30481:70;;30574:60;30627:6;30574:60;:::i;:::-;30564:70;;30420:224;30407:1;30404;30400:9;30395:14;;30360:284;;;30364:14;30660:3;30653:10;;30061:608;;;29937:732;;;;:::o;30675:831::-;30938:4;30976:3;30965:9;30961:19;30953:27;;30990:71;31058:1;31047:9;31043:17;31034:6;30990:71;:::i;:::-;31071:80;31147:2;31136:9;31132:18;31123:6;31071:80;:::i;:::-;31198:9;31192:4;31188:20;31183:2;31172:9;31168:18;31161:48;31226:108;31329:4;31320:6;31226:108;:::i;:::-;31218:116;;31344:72;31412:2;31401:9;31397:18;31388:6;31344:72;:::i;:::-;31426:73;31494:3;31483:9;31479:19;31470:6;31426:73;:::i;:::-;30675:831;;;;;;;;:::o;31512:179::-;31652:31;31648:1;31640:6;31636:14;31629:55;31512:179;:::o;31697:366::-;31839:3;31860:67;31924:2;31919:3;31860:67;:::i;:::-;31853:74;;31936:93;32025:3;31936:93;:::i;:::-;32054:2;32049:3;32045:12;32038:19;;31697:366;;;:::o;32069:419::-;32235:4;32273:2;32262:9;32258:18;32250:26;;32322:9;32316:4;32312:20;32308:1;32297:9;32293:17;32286:47;32350:131;32476:4;32350:131;:::i;:::-;32342:139;;32069:419;;;:::o;32494:147::-;32595:11;32632:3;32617:18;;32494:147;;;;:::o;32647:114::-;;:::o;32767:398::-;32926:3;32947:83;33028:1;33023:3;32947:83;:::i;:::-;32940:90;;33039:93;33128:3;33039:93;:::i;:::-;33157:1;33152:3;33148:11;33141:18;;32767:398;;;:::o;33171:379::-;33355:3;33377:147;33520:3;33377:147;:::i;:::-;33370:154;;33541:3;33534:10;;33171:379;;;:::o;33556:245::-;33696:34;33692:1;33684:6;33680:14;33673:58;33765:28;33760:2;33752:6;33748:15;33741:53;33556:245;:::o;33807:366::-;33949:3;33970:67;34034:2;34029:3;33970:67;:::i;:::-;33963:74;;34046:93;34135:3;34046:93;:::i;:::-;34164:2;34159:3;34155:12;34148:19;;33807:366;;;:::o;34179:419::-;34345:4;34383:2;34372:9;34368:18;34360:26;;34432:9;34426:4;34422:20;34418:1;34407:9;34403:17;34396:47;34460:131;34586:4;34460:131;:::i;:::-;34452:139;;34179:419;;;:::o;34604:143::-;34661:5;34692:6;34686:13;34677:22;;34708:33;34735:5;34708:33;:::i;:::-;34604:143;;;;:::o;34753:351::-;34823:6;34872:2;34860:9;34851:7;34847:23;34843:32;34840:119;;;34878:79;;:::i;:::-;34840:119;34998:1;35023:64;35079:7;35070:6;35059:9;35055:22;35023:64;:::i;:::-;35013:74;;34969:128;34753:351;;;;:::o;35110:224::-;35250:34;35246:1;35238:6;35234:14;35227:58;35319:7;35314:2;35306:6;35302:15;35295:32;35110:224;:::o;35340:366::-;35482:3;35503:67;35567:2;35562:3;35503:67;:::i;:::-;35496:74;;35579:93;35668:3;35579:93;:::i;:::-;35697:2;35692:3;35688:12;35681:19;;35340:366;;;:::o;35712:419::-;35878:4;35916:2;35905:9;35901:18;35893:26;;35965:9;35959:4;35955:20;35951:1;35940:9;35936:17;35929:47;35993:131;36119:4;35993:131;:::i;:::-;35985:139;;35712:419;;;:::o;36137:222::-;36277:34;36273:1;36265:6;36261:14;36254:58;36346:5;36341:2;36333:6;36329:15;36322:30;36137:222;:::o;36365:366::-;36507:3;36528:67;36592:2;36587:3;36528:67;:::i;:::-;36521:74;;36604:93;36693:3;36604:93;:::i;:::-;36722:2;36717:3;36713:12;36706:19;;36365:366;;;:::o;36737:419::-;36903:4;36941:2;36930:9;36926:18;36918:26;;36990:9;36984:4;36980:20;36976:1;36965:9;36961:17;36954:47;37018:131;37144:4;37018:131;:::i;:::-;37010:139;;36737:419;;;:::o;37162:225::-;37302:34;37298:1;37290:6;37286:14;37279:58;37371:8;37366:2;37358:6;37354:15;37347:33;37162:225;:::o;37393:366::-;37535:3;37556:67;37620:2;37615:3;37556:67;:::i;:::-;37549:74;;37632:93;37721:3;37632:93;:::i;:::-;37750:2;37745:3;37741:12;37734:19;;37393:366;;;:::o;37765:419::-;37931:4;37969:2;37958:9;37954:18;37946:26;;38018:9;38012:4;38008:20;38004:1;37993:9;37989:17;37982:47;38046:131;38172:4;38046:131;:::i;:::-;38038:139;;37765:419;;;:::o;38190:807::-;38439:4;38477:3;38466:9;38462:19;38454:27;;38491:71;38559:1;38548:9;38544:17;38535:6;38491:71;:::i;:::-;38572:72;38640:2;38629:9;38625:18;38616:6;38572:72;:::i;:::-;38654:80;38730:2;38719:9;38715:18;38706:6;38654:80;:::i;:::-;38744;38820:2;38809:9;38805:18;38796:6;38744:80;:::i;:::-;38834:73;38902:3;38891:9;38887:19;38878:6;38834:73;:::i;:::-;38917;38985:3;38974:9;38970:19;38961:6;38917:73;:::i;:::-;38190:807;;;;;;;;;:::o;39003:663::-;39091:6;39099;39107;39156:2;39144:9;39135:7;39131:23;39127:32;39124:119;;;39162:79;;:::i;:::-;39124:119;39282:1;39307:64;39363:7;39354:6;39343:9;39339:22;39307:64;:::i;:::-;39297:74;;39253:128;39420:2;39446:64;39502:7;39493:6;39482:9;39478:22;39446:64;:::i;:::-;39436:74;;39391:129;39559:2;39585:64;39641:7;39632:6;39621:9;39617:22;39585:64;:::i;:::-;39575:74;;39530:129;39003:663;;;;;:::o
Swarm Source
ipfs://0c72605627f36335cab0465160416d43c9e4b25837ecea3cbff8b1838cca852d
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.