ERC-20
Overview
Max Total Supply
420,690,000,000,000 Cook
Holders
193
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
0.666974228081619224 CookValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
CookPEPEToken
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-07-15 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(_msgSender()); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ 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) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; /** * @dev Sets the values for {name} and {symbol}. * * The default 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"); unchecked { _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"); unchecked { _approve(_msgSender(), spender, currentAllowance - subtractedValue); } return true; } /** * @dev Moves `amount` of tokens from `sender` to `recipient`. * * This 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"); unchecked { _balances[sender] = senderBalance - amount; } _balances[recipient] += amount; emit Transfer(sender, recipient, amount); _afterTokenTransfer(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: * * - `account` cannot be the zero address. */ function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; _balances[account] += amount; emit Transfer(address(0), account, amount); _afterTokenTransfer(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"); unchecked { _balances[account] = accountBalance - amount; } _totalSupply -= amount; emit Transfer(account, address(0), amount); _afterTokenTransfer(account, address(0), amount); } /** * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens. * * This internal function is equivalent to `approve`, and can be used to * e.g. set automatic allowances for certain subsystems, etc. * * Emits an {Approval} event. * * Requirements: * * - `owner` cannot be the zero address. * - `spender` cannot be the zero address. */ function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } /** * @dev Hook that is called before any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * will be transferred to `to`. * - when `from` is zero, `amount` tokens will be minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens will be burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} /** * @dev Hook that is called after any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * has been transferred to `to`. * - when `from` is zero, `amount` tokens have been minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens have been 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 _afterTokenTransfer( address from, address to, uint256 amount ) internal virtual {} } interface IUniswapV2Router { function factory() external pure returns (address); function WETH() external pure returns (address); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } contract CookPEPEToken is Ownable, ERC20 { bool private swapping; bool public limited; uint256 public maxHoldingAmount; uint256 public minHoldingAmount; address public uniswapV2Pair; address public treasury; IUniswapV2Router public uniswapV2Router; uint public buyTotalFees = 1; uint public sellTotalFees = 1; uint256 public swapTokensAtAmount; bool public swapEnabled = true; bool public swapByLimit = true; mapping (address => bool) public _isExcludedFromFees; mapping(address => bool) public blacklists; //420,690,000,000,000 constructor(uint256 _totalSupply) ERC20("Cook Pepe", "Cook") { treasury = address(0x46428A7916150C460193eB90814fbC7BbdB63Df0); _isExcludedFromFees[treasury] = true; uniswapV2Router = IUniswapV2Router(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); swapTokensAtAmount = 400000 * 1e18; _mint(treasury, _totalSupply); } function blacklist(address _address, bool _isBlacklisting) external onlyOwner { blacklists[_address] = _isBlacklisting; } function setTreasury(address _wallet) external onlyOwner { treasury = _wallet; } function setSwapSettings(bool _enable, bool _limited, uint _threshold) external onlyOwner { swapTokensAtAmount = _threshold; swapEnabled = _enable; swapByLimit = _limited; } function setFeeExempt(address _user, bool _status) external onlyOwner { _isExcludedFromFees[_user] = _status; } function setRule(bool _limited, address _uniswapV2Pair, uint256 _maxHoldingAmount, uint256 _minHoldingAmount) external onlyOwner { limited = _limited; uniswapV2Pair = _uniswapV2Pair; maxHoldingAmount = _maxHoldingAmount; minHoldingAmount = _minHoldingAmount; } function clearStuckFunds() external { require(_msgSender() == treasury,'Invalid Caller'); (bool success,) = payable(treasury).call{value: address(this).balance}(""); require(success,'Payment Failed'); } function clearStuckTokens(address _token, uint _amount) external { require(_msgSender() == treasury,'Invalid Caller'); (bool success,) = address(_token).call(abi.encodeWithSignature('transfer(address,uint256)', treasury, _amount)); require(success,'Payment Failed'); } function _transfer( address from, address to, uint256 amount ) internal override { require(amount > 0, "ERC20: Zero amount error"); require(!blacklists[to] && !blacklists[from], "Blacklisted"); if (uniswapV2Pair == address(0)) { require(from == owner() || to == owner(), "trading is not started"); } if (limited && from == uniswapV2Pair) { require(super.balanceOf(to) + amount <= maxHoldingAmount && super.balanceOf(to) + amount >= minHoldingAmount, "Forbid"); } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= swapTokensAtAmount; if( canSwap && swapEnabled && !swapping && from != uniswapV2Pair && !_isExcludedFromFees[from] && !_isExcludedFromFees[to] ) { swapping = true; swapForTreasury(contractTokenBalance); swapping = false; } bool takeFee = !swapping; if(_isExcludedFromFees[from] || _isExcludedFromFees[to]) { takeFee = false; } uint256 fees = 0; if(takeFee){ if (to == uniswapV2Pair && sellTotalFees > 0){ fees = amount * sellTotalFees / 100; } else if(from == uniswapV2Pair && buyTotalFees > 0) { fees = amount * buyTotalFees / 100; } if(fees > 0){ super._transfer(from, address(this), fees); } amount -= fees; } super._transfer(from, to, amount); } function swapForTreasury(uint256 contractTokenBalance) private { if(uniswapV2Pair == address(0)) return; if(swapByLimit) contractTokenBalance = swapTokensAtAmount; swapTokensForEth(contractTokenBalance,treasury); } function swapTokensForEth(uint256 tokenAmount,address _recipient) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(_recipient), block.timestamp ); } function burn(uint256 value) external { _burn(msg.sender, value); } receive() external payable {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"uint256","name":"_totalSupply","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_isBlacklisting","type":"bool"}],"name":"blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"blacklists","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buyTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearStuckFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"clearStuckTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"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":"limited","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxHoldingAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minHoldingAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"setFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_limited","type":"bool"},{"internalType":"address","name":"_uniswapV2Pair","type":"address"},{"internalType":"uint256","name":"_maxHoldingAmount","type":"uint256"},{"internalType":"uint256","name":"_minHoldingAmount","type":"uint256"}],"name":"setRule","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enable","type":"bool"},{"internalType":"bool","name":"_limited","type":"bool"},{"internalType":"uint256","name":"_threshold","type":"uint256"}],"name":"setSwapSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_wallet","type":"address"}],"name":"setTreasury","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapByLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"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":[],"name":"treasury","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526001600c556001600d556001600f60006101000a81548160ff0219169083151502179055506001600f60016101000a81548160ff0219169083151502179055503480156200005157600080fd5b50604051620041f2380380620041f28339818101604052810190620000779190620005be565b6040518060400160405280600981526020017f436f6f6b205065706500000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f436f6f6b0000000000000000000000000000000000000000000000000000000081525062000103620000f7620002a760201b60201c565b620002af60201b60201c565b81600490805190602001906200011b929190620004f7565b50806005908051906020019062000134929190620004f7565b5050507346428a7916150c460193eb90814fbc7bbdb63df0600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160106000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550737a250d5630b4cf539739df2c5dacb4c659f2488d600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506954b40b1f852bda000000600e81905550620002a0600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16826200037360201b60201c565b50620007bb565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620003e6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003dd9062000628565b60405180910390fd5b620003fa60008383620004ed60201b60201c565b80600360008282546200040e919062000678565b9250508190555080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000466919062000678565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620004cd91906200064a565b60405180910390a3620004e960008383620004f260201b60201c565b5050565b505050565b505050565b8280546200050590620006df565b90600052602060002090601f01602090048101928262000529576000855562000575565b82601f106200054457805160ff191683800117855562000575565b8280016001018555821562000575579182015b828111156200057457825182559160200191906001019062000557565b5b50905062000584919062000588565b5090565b5b80821115620005a357600081600090555060010162000589565b5090565b600081519050620005b881620007a1565b92915050565b600060208284031215620005d757620005d662000773565b5b6000620005e784828501620005a7565b91505092915050565b6000620005ff601f8362000667565b91506200060c8262000778565b602082019050919050565b6200062281620006d5565b82525050565b600060208201905081810360008301526200064381620005f0565b9050919050565b600060208201905062000661600083018462000617565b92915050565b600082825260208201905092915050565b60006200068582620006d5565b91506200069283620006d5565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620006ca57620006c962000715565b5b828201905092915050565b6000819050919050565b60006002820490506001821680620006f857607f821691505b602082108114156200070f576200070e62000744565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b620007ac81620006d5565b8114620007b857600080fd5b50565b613a2780620007cb6000396000f3fe6080604052600436106102085760003560e01c80636ddd171311610118578063a457c2d7116100a0578063e0bf7fd11161006f578063e0bf7fd11461077c578063e2f45605146107b9578063f0f44260146107e4578063f2a95aa91461080d578063f2fde38b146108365761020f565b8063a457c2d71461069a578063a9059cbb146106d7578063d85ba06314610714578063dd62ed3e1461073f5761020f565b8063860a32ec116100e7578063860a32ec146105c557806389f9a1d3146105f05780638da5cb5b1461061b5780638ebfc7961461064657806395d89b411461066f5761020f565b80636ddd17131461052f57806370a082311461055a578063715018a61461059757806373466435146105ae5761020f565b806323b872dd1161019b578063404e51291161016a578063404e51291461045c57806342966c681461048557806349bd5a5e146104ae57806361d027b3146104d95780636a486a8e146105045761020f565b806323b872dd1461038e578063313ce567146103cb57806339509351146103f65780633aa633aa146104335761020f565b80631694505e116101d75780631694505e146102d057806316c02129146102fb57806318160ddd146103385780631ab99e12146103635761020f565b80630634f4381461021457806306fdde031461023f578063095ea7b31461026a57806310a8246d146102a75761020f565b3661020f57005b600080fd5b34801561022057600080fd5b5061022961085f565b6040516102369190612ee9565b60405180910390f35b34801561024b57600080fd5b50610254610872565b6040516102619190612f1f565b60405180910390f35b34801561027657600080fd5b50610291600480360381019061028c9190612993565b610904565b60405161029e9190612ee9565b60405180910390f35b3480156102b357600080fd5b506102ce60048036038101906102c99190612a3a565b610922565b005b3480156102dc57600080fd5b506102e56109de565b6040516102f29190612f04565b60405180910390f35b34801561030757600080fd5b50610322600480360381019061031d9190612866565b610a04565b60405161032f9190612ee9565b60405180910390f35b34801561034457600080fd5b5061034d610a24565b60405161035a9190613161565b60405180910390f35b34801561036f57600080fd5b50610378610a2e565b6040516103859190613161565b60405180910390f35b34801561039a57600080fd5b506103b560048036038101906103b09190612900565b610a34565b6040516103c29190612ee9565b60405180910390f35b3480156103d757600080fd5b506103e0610b2c565b6040516103ed91906131d6565b60405180910390f35b34801561040257600080fd5b5061041d60048036038101906104189190612993565b610b35565b60405161042a9190612ee9565b60405180910390f35b34801561043f57600080fd5b5061045a600480360381019061045591906129d3565b610be1565b005b34801561046857600080fd5b50610483600480360381019061047e9190612953565b610ccc565b005b34801561049157600080fd5b506104ac60048036038101906104a79190612a8d565b610da3565b005b3480156104ba57600080fd5b506104c3610db0565b6040516104d09190612ea5565b60405180910390f35b3480156104e557600080fd5b506104ee610dd6565b6040516104fb9190612ea5565b60405180910390f35b34801561051057600080fd5b50610519610dfc565b6040516105269190613161565b60405180910390f35b34801561053b57600080fd5b50610544610e02565b6040516105519190612ee9565b60405180910390f35b34801561056657600080fd5b50610581600480360381019061057c9190612866565b610e15565b60405161058e9190613161565b60405180910390f35b3480156105a357600080fd5b506105ac610e5e565b005b3480156105ba57600080fd5b506105c3610ee6565b005b3480156105d157600080fd5b506105da61104e565b6040516105e79190612ee9565b60405180910390f35b3480156105fc57600080fd5b50610605611061565b6040516106129190613161565b60405180910390f35b34801561062757600080fd5b50610630611067565b60405161063d9190612ea5565b60405180910390f35b34801561065257600080fd5b5061066d60048036038101906106689190612953565b611090565b005b34801561067b57600080fd5b50610684611167565b6040516106919190612f1f565b60405180910390f35b3480156106a657600080fd5b506106c160048036038101906106bc9190612993565b6111f9565b6040516106ce9190612ee9565b60405180910390f35b3480156106e357600080fd5b506106fe60048036038101906106f99190612993565b6112e4565b60405161070b9190612ee9565b60405180910390f35b34801561072057600080fd5b50610729611302565b6040516107369190613161565b60405180910390f35b34801561074b57600080fd5b50610766600480360381019061076191906128c0565b611308565b6040516107739190613161565b60405180910390f35b34801561078857600080fd5b506107a3600480360381019061079e9190612866565b61138f565b6040516107b09190612ee9565b60405180910390f35b3480156107c557600080fd5b506107ce6113af565b6040516107db9190613161565b60405180910390f35b3480156107f057600080fd5b5061080b60048036038101906108069190612866565b6113b5565b005b34801561081957600080fd5b50610834600480360381019061082f9190612993565b611475565b005b34801561084257600080fd5b5061085d60048036038101906108589190612866565b61166f565b005b600f60019054906101000a900460ff1681565b60606004805461088190613441565b80601f01602080910402602001604051908101604052809291908181526020018280546108ad90613441565b80156108fa5780601f106108cf576101008083540402835291602001916108fa565b820191906000526020600020905b8154815290600101906020018083116108dd57829003601f168201915b5050505050905090565b6000610918610911611767565b848461176f565b6001905092915050565b61092a611767565b73ffffffffffffffffffffffffffffffffffffffff16610948611067565b73ffffffffffffffffffffffffffffffffffffffff161461099e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099590613081565b60405180910390fd5b80600e8190555082600f60006101000a81548160ff02191690831515021790555081600f60016101000a81548160ff021916908315150217905550505050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60116020528060005260406000206000915054906101000a900460ff1681565b6000600354905090565b60085481565b6000610a4184848461193a565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610a8c611767565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610b0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0390613061565b60405180910390fd5b610b2085610b18611767565b85840361176f565b60019150509392505050565b60006012905090565b6000610bd7610b42611767565b848460026000610b50611767565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610bd2919061325c565b61176f565b6001905092915050565b610be9611767565b73ffffffffffffffffffffffffffffffffffffffff16610c07611067565b73ffffffffffffffffffffffffffffffffffffffff1614610c5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5490613081565b60405180910390fd5b83600660016101000a81548160ff02191690831515021790555082600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550816007819055508060088190555050505050565b610cd4611767565b73ffffffffffffffffffffffffffffffffffffffff16610cf2611067565b73ffffffffffffffffffffffffffffffffffffffff1614610d48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3f90613081565b60405180910390fd5b80601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610dad3382611fed565b50565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d5481565b600f60009054906101000a900460ff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610e66611767565b73ffffffffffffffffffffffffffffffffffffffff16610e84611067565b73ffffffffffffffffffffffffffffffffffffffff1614610eda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed190613081565b60405180910390fd5b610ee460006121c6565b565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f27611767565b73ffffffffffffffffffffffffffffffffffffffff1614610f7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7490612fe1565b60405180910390fd5b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051610fc590612e90565b60006040518083038185875af1925050503d8060008114611002576040519150601f19603f3d011682016040523d82523d6000602084013e611007565b606091505b505090508061104b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104290613041565b60405180910390fd5b50565b600660019054906101000a900460ff1681565b60075481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611098611767565b73ffffffffffffffffffffffffffffffffffffffff166110b6611067565b73ffffffffffffffffffffffffffffffffffffffff161461110c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110390613081565b60405180910390fd5b80601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60606005805461117690613441565b80601f01602080910402602001604051908101604052809291908181526020018280546111a290613441565b80156111ef5780601f106111c4576101008083540402835291602001916111ef565b820191906000526020600020905b8154815290600101906020018083116111d257829003601f168201915b5050505050905090565b60008060026000611208611767565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156112c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112bc90613121565b60405180910390fd5b6112d96112d0611767565b8585840361176f565b600191505092915050565b60006112f86112f1611767565b848461193a565b6001905092915050565b600c5481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60106020528060005260406000206000915054906101000a900460ff1681565b600e5481565b6113bd611767565b73ffffffffffffffffffffffffffffffffffffffff166113db611067565b73ffffffffffffffffffffffffffffffffffffffff1614611431576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142890613081565b60405180910390fd5b80600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114b6611767565b73ffffffffffffffffffffffffffffffffffffffff161461150c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150390612fe1565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168360405160240161155a929190612ec0565b6040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516115e49190612e79565b6000604051808303816000865af19150503d8060008114611621576040519150601f19603f3d011682016040523d82523d6000602084013e611626565b606091505b505090508061166a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166190613041565b60405180910390fd5b505050565b611677611767565b73ffffffffffffffffffffffffffffffffffffffff16611695611067565b73ffffffffffffffffffffffffffffffffffffffff16146116eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e290613081565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561175b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175290612f81565b60405180910390fd5b611764816121c6565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156117df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d690613101565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561184f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184690612fa1565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161192d9190613161565b60405180910390a3505050565b6000811161197d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197490612fc1565b60405180910390fd5b601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611a215750601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611a60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5790613141565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611b6a57611abf611067565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480611b2a5750611afb611067565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b611b69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b60906130c1565b60405180910390fd5b5b600660019054906101000a900460ff168015611bd35750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15611c525760075481611be584610e15565b611bef919061325c565b11158015611c12575060085481611c0584610e15565b611c0f919061325c565b10155b611c51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4890613021565b60405180910390fd5b5b6000611c5d30610e15565b90506000600e548210159050808015611c825750600f60009054906101000a900460ff165b8015611c9b5750600660009054906101000a900460ff16155b8015611cf55750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611d4b5750601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611da15750601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611de6576001600660006101000a81548160ff021916908315150217905550611dca8261228a565b6000600660006101000a81548160ff0219169083151502179055505b6000600660009054906101000a900460ff16159050601060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611e9c5750601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611ea657600090505b60008115611fd957600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16148015611f0d57506000600d54115b15611f33576064600d5486611f2291906132e3565b611f2c91906132b2565b9050611fb5565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16148015611f9257506000600c54115b15611fb4576064600c5486611fa791906132e3565b611fb191906132b2565b90505b5b6000811115611fca57611fc9873083612331565b5b8085611fd6919061333d565b94505b611fe4878787612331565b50505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561205d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612054906130a1565b60405180910390fd5b612069826000836125b5565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156120f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120e790612f61565b60405180910390fd5b818103600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160036000828254612148919061333d565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516121ad9190613161565b60405180910390a36121c1836000846125ba565b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156122e65761232e565b600f60019054906101000a900460ff161561230157600e5490505b61232d81600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166125bf565b5b50565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156123a1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612398906130e1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612411576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161240890612f41565b60405180910390fd5b61241c8383836125b5565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156124a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161249a90613001565b60405180910390fd5b818103600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612538919061325c565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161259c9190613161565b60405180910390a36125af8484846125ba565b50505050565b505050565b505050565b6000600267ffffffffffffffff8111156125dc576125db61352f565b5b60405190808252806020026020018201604052801561260a5781602001602082028036833780820191505090505b509050308160008151811061262257612621613500565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156126c457600080fd5b505afa1580156126d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126fc9190612893565b816001815181106127105761270f613500565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061277730600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168561176f565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008486426040518663ffffffff1660e01b81526004016127db95949392919061317c565b600060405180830381600087803b1580156127f557600080fd5b505af1158015612809573d6000803e3d6000fd5b50505050505050565b600081359050612821816139ac565b92915050565b600081519050612836816139ac565b92915050565b60008135905061284b816139c3565b92915050565b600081359050612860816139da565b92915050565b60006020828403121561287c5761287b61355e565b5b600061288a84828501612812565b91505092915050565b6000602082840312156128a9576128a861355e565b5b60006128b784828501612827565b91505092915050565b600080604083850312156128d7576128d661355e565b5b60006128e585828601612812565b92505060206128f685828601612812565b9150509250929050565b6000806000606084860312156129195761291861355e565b5b600061292786828701612812565b935050602061293886828701612812565b925050604061294986828701612851565b9150509250925092565b6000806040838503121561296a5761296961355e565b5b600061297885828601612812565b92505060206129898582860161283c565b9150509250929050565b600080604083850312156129aa576129a961355e565b5b60006129b885828601612812565b92505060206129c985828601612851565b9150509250929050565b600080600080608085870312156129ed576129ec61355e565b5b60006129fb8782880161283c565b9450506020612a0c87828801612812565b9350506040612a1d87828801612851565b9250506060612a2e87828801612851565b91505092959194509250565b600080600060608486031215612a5357612a5261355e565b5b6000612a618682870161283c565b9350506020612a728682870161283c565b9250506040612a8386828701612851565b9150509250925092565b600060208284031215612aa357612aa261355e565b5b6000612ab184828501612851565b91505092915050565b6000612ac68383612ad2565b60208301905092915050565b612adb81613371565b82525050565b612aea81613371565b82525050565b6000612afb82613201565b612b05818561322f565b9350612b10836131f1565b8060005b83811015612b41578151612b288882612aba565b9750612b3383613222565b925050600181019050612b14565b5085935050505092915050565b612b5781613383565b82525050565b6000612b688261320c565b612b728185613240565b9350612b8281856020860161340e565b80840191505092915050565b612b97816133c6565b82525050565b612ba6816133d8565b82525050565b6000612bb782613217565b612bc1818561324b565b9350612bd181856020860161340e565b612bda81613563565b840191505092915050565b6000612bf260238361324b565b9150612bfd82613574565b604082019050919050565b6000612c1560228361324b565b9150612c20826135c3565b604082019050919050565b6000612c3860268361324b565b9150612c4382613612565b604082019050919050565b6000612c5b60228361324b565b9150612c6682613661565b604082019050919050565b6000612c7e60188361324b565b9150612c89826136b0565b602082019050919050565b6000612ca1600e8361324b565b9150612cac826136d9565b602082019050919050565b6000612cc460268361324b565b9150612ccf82613702565b604082019050919050565b6000612ce760068361324b565b9150612cf282613751565b602082019050919050565b6000612d0a600e8361324b565b9150612d158261377a565b602082019050919050565b6000612d2d60288361324b565b9150612d38826137a3565b604082019050919050565b6000612d5060208361324b565b9150612d5b826137f2565b602082019050919050565b6000612d7360218361324b565b9150612d7e8261381b565b604082019050919050565b6000612d9660168361324b565b9150612da18261386a565b602082019050919050565b6000612db960258361324b565b9150612dc482613893565b604082019050919050565b6000612ddc600083613240565b9150612de7826138e2565b600082019050919050565b6000612dff60248361324b565b9150612e0a826138e5565b604082019050919050565b6000612e2260258361324b565b9150612e2d82613934565b604082019050919050565b6000612e45600b8361324b565b9150612e5082613983565b602082019050919050565b612e64816133af565b82525050565b612e73816133b9565b82525050565b6000612e858284612b5d565b915081905092915050565b6000612e9b82612dcf565b9150819050919050565b6000602082019050612eba6000830184612ae1565b92915050565b6000604082019050612ed56000830185612ae1565b612ee26020830184612e5b565b9392505050565b6000602082019050612efe6000830184612b4e565b92915050565b6000602082019050612f196000830184612b8e565b92915050565b60006020820190508181036000830152612f398184612bac565b905092915050565b60006020820190508181036000830152612f5a81612be5565b9050919050565b60006020820190508181036000830152612f7a81612c08565b9050919050565b60006020820190508181036000830152612f9a81612c2b565b9050919050565b60006020820190508181036000830152612fba81612c4e565b9050919050565b60006020820190508181036000830152612fda81612c71565b9050919050565b60006020820190508181036000830152612ffa81612c94565b9050919050565b6000602082019050818103600083015261301a81612cb7565b9050919050565b6000602082019050818103600083015261303a81612cda565b9050919050565b6000602082019050818103600083015261305a81612cfd565b9050919050565b6000602082019050818103600083015261307a81612d20565b9050919050565b6000602082019050818103600083015261309a81612d43565b9050919050565b600060208201905081810360008301526130ba81612d66565b9050919050565b600060208201905081810360008301526130da81612d89565b9050919050565b600060208201905081810360008301526130fa81612dac565b9050919050565b6000602082019050818103600083015261311a81612df2565b9050919050565b6000602082019050818103600083015261313a81612e15565b9050919050565b6000602082019050818103600083015261315a81612e38565b9050919050565b60006020820190506131766000830184612e5b565b92915050565b600060a0820190506131916000830188612e5b565b61319e6020830187612b9d565b81810360408301526131b08186612af0565b90506131bf6060830185612ae1565b6131cc6080830184612e5b565b9695505050505050565b60006020820190506131eb6000830184612e6a565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000613267826133af565b9150613272836133af565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156132a7576132a6613473565b5b828201905092915050565b60006132bd826133af565b91506132c8836133af565b9250826132d8576132d76134a2565b5b828204905092915050565b60006132ee826133af565b91506132f9836133af565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561333257613331613473565b5b828202905092915050565b6000613348826133af565b9150613353836133af565b92508282101561336657613365613473565b5b828203905092915050565b600061337c8261338f565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006133d1826133ea565b9050919050565b60006133e3826133af565b9050919050565b60006133f5826133fc565b9050919050565b60006134078261338f565b9050919050565b60005b8381101561342c578082015181840152602081019050613411565b8381111561343b576000848401525b50505050565b6000600282049050600182168061345957607f821691505b6020821081141561346d5761346c6134d1565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a205a65726f20616d6f756e74206572726f720000000000000000600082015250565b7f496e76616c69642043616c6c6572000000000000000000000000000000000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f466f726269640000000000000000000000000000000000000000000000000000600082015250565b7f5061796d656e74204661696c6564000000000000000000000000000000000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e67206973206e6f74207374617274656400000000000000000000600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b50565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b7f426c61636b6c6973746564000000000000000000000000000000000000000000600082015250565b6139b581613371565b81146139c057600080fd5b50565b6139cc81613383565b81146139d757600080fd5b50565b6139e3816133af565b81146139ee57600080fd5b5056fea2646970667358221220f74cb58f9af03ee7925bad44f501fa8ef0f83189366ef8390f87c6f4cb412b5064736f6c6343000807003300000000000000000000000000000000000014bddab3e51a57cff87a50000000
Deployed Bytecode
0x6080604052600436106102085760003560e01c80636ddd171311610118578063a457c2d7116100a0578063e0bf7fd11161006f578063e0bf7fd11461077c578063e2f45605146107b9578063f0f44260146107e4578063f2a95aa91461080d578063f2fde38b146108365761020f565b8063a457c2d71461069a578063a9059cbb146106d7578063d85ba06314610714578063dd62ed3e1461073f5761020f565b8063860a32ec116100e7578063860a32ec146105c557806389f9a1d3146105f05780638da5cb5b1461061b5780638ebfc7961461064657806395d89b411461066f5761020f565b80636ddd17131461052f57806370a082311461055a578063715018a61461059757806373466435146105ae5761020f565b806323b872dd1161019b578063404e51291161016a578063404e51291461045c57806342966c681461048557806349bd5a5e146104ae57806361d027b3146104d95780636a486a8e146105045761020f565b806323b872dd1461038e578063313ce567146103cb57806339509351146103f65780633aa633aa146104335761020f565b80631694505e116101d75780631694505e146102d057806316c02129146102fb57806318160ddd146103385780631ab99e12146103635761020f565b80630634f4381461021457806306fdde031461023f578063095ea7b31461026a57806310a8246d146102a75761020f565b3661020f57005b600080fd5b34801561022057600080fd5b5061022961085f565b6040516102369190612ee9565b60405180910390f35b34801561024b57600080fd5b50610254610872565b6040516102619190612f1f565b60405180910390f35b34801561027657600080fd5b50610291600480360381019061028c9190612993565b610904565b60405161029e9190612ee9565b60405180910390f35b3480156102b357600080fd5b506102ce60048036038101906102c99190612a3a565b610922565b005b3480156102dc57600080fd5b506102e56109de565b6040516102f29190612f04565b60405180910390f35b34801561030757600080fd5b50610322600480360381019061031d9190612866565b610a04565b60405161032f9190612ee9565b60405180910390f35b34801561034457600080fd5b5061034d610a24565b60405161035a9190613161565b60405180910390f35b34801561036f57600080fd5b50610378610a2e565b6040516103859190613161565b60405180910390f35b34801561039a57600080fd5b506103b560048036038101906103b09190612900565b610a34565b6040516103c29190612ee9565b60405180910390f35b3480156103d757600080fd5b506103e0610b2c565b6040516103ed91906131d6565b60405180910390f35b34801561040257600080fd5b5061041d60048036038101906104189190612993565b610b35565b60405161042a9190612ee9565b60405180910390f35b34801561043f57600080fd5b5061045a600480360381019061045591906129d3565b610be1565b005b34801561046857600080fd5b50610483600480360381019061047e9190612953565b610ccc565b005b34801561049157600080fd5b506104ac60048036038101906104a79190612a8d565b610da3565b005b3480156104ba57600080fd5b506104c3610db0565b6040516104d09190612ea5565b60405180910390f35b3480156104e557600080fd5b506104ee610dd6565b6040516104fb9190612ea5565b60405180910390f35b34801561051057600080fd5b50610519610dfc565b6040516105269190613161565b60405180910390f35b34801561053b57600080fd5b50610544610e02565b6040516105519190612ee9565b60405180910390f35b34801561056657600080fd5b50610581600480360381019061057c9190612866565b610e15565b60405161058e9190613161565b60405180910390f35b3480156105a357600080fd5b506105ac610e5e565b005b3480156105ba57600080fd5b506105c3610ee6565b005b3480156105d157600080fd5b506105da61104e565b6040516105e79190612ee9565b60405180910390f35b3480156105fc57600080fd5b50610605611061565b6040516106129190613161565b60405180910390f35b34801561062757600080fd5b50610630611067565b60405161063d9190612ea5565b60405180910390f35b34801561065257600080fd5b5061066d60048036038101906106689190612953565b611090565b005b34801561067b57600080fd5b50610684611167565b6040516106919190612f1f565b60405180910390f35b3480156106a657600080fd5b506106c160048036038101906106bc9190612993565b6111f9565b6040516106ce9190612ee9565b60405180910390f35b3480156106e357600080fd5b506106fe60048036038101906106f99190612993565b6112e4565b60405161070b9190612ee9565b60405180910390f35b34801561072057600080fd5b50610729611302565b6040516107369190613161565b60405180910390f35b34801561074b57600080fd5b50610766600480360381019061076191906128c0565b611308565b6040516107739190613161565b60405180910390f35b34801561078857600080fd5b506107a3600480360381019061079e9190612866565b61138f565b6040516107b09190612ee9565b60405180910390f35b3480156107c557600080fd5b506107ce6113af565b6040516107db9190613161565b60405180910390f35b3480156107f057600080fd5b5061080b60048036038101906108069190612866565b6113b5565b005b34801561081957600080fd5b50610834600480360381019061082f9190612993565b611475565b005b34801561084257600080fd5b5061085d60048036038101906108589190612866565b61166f565b005b600f60019054906101000a900460ff1681565b60606004805461088190613441565b80601f01602080910402602001604051908101604052809291908181526020018280546108ad90613441565b80156108fa5780601f106108cf576101008083540402835291602001916108fa565b820191906000526020600020905b8154815290600101906020018083116108dd57829003601f168201915b5050505050905090565b6000610918610911611767565b848461176f565b6001905092915050565b61092a611767565b73ffffffffffffffffffffffffffffffffffffffff16610948611067565b73ffffffffffffffffffffffffffffffffffffffff161461099e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099590613081565b60405180910390fd5b80600e8190555082600f60006101000a81548160ff02191690831515021790555081600f60016101000a81548160ff021916908315150217905550505050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60116020528060005260406000206000915054906101000a900460ff1681565b6000600354905090565b60085481565b6000610a4184848461193a565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610a8c611767565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610b0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0390613061565b60405180910390fd5b610b2085610b18611767565b85840361176f565b60019150509392505050565b60006012905090565b6000610bd7610b42611767565b848460026000610b50611767565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610bd2919061325c565b61176f565b6001905092915050565b610be9611767565b73ffffffffffffffffffffffffffffffffffffffff16610c07611067565b73ffffffffffffffffffffffffffffffffffffffff1614610c5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5490613081565b60405180910390fd5b83600660016101000a81548160ff02191690831515021790555082600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550816007819055508060088190555050505050565b610cd4611767565b73ffffffffffffffffffffffffffffffffffffffff16610cf2611067565b73ffffffffffffffffffffffffffffffffffffffff1614610d48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3f90613081565b60405180910390fd5b80601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610dad3382611fed565b50565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d5481565b600f60009054906101000a900460ff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610e66611767565b73ffffffffffffffffffffffffffffffffffffffff16610e84611067565b73ffffffffffffffffffffffffffffffffffffffff1614610eda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed190613081565b60405180910390fd5b610ee460006121c6565b565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f27611767565b73ffffffffffffffffffffffffffffffffffffffff1614610f7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7490612fe1565b60405180910390fd5b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051610fc590612e90565b60006040518083038185875af1925050503d8060008114611002576040519150601f19603f3d011682016040523d82523d6000602084013e611007565b606091505b505090508061104b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104290613041565b60405180910390fd5b50565b600660019054906101000a900460ff1681565b60075481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611098611767565b73ffffffffffffffffffffffffffffffffffffffff166110b6611067565b73ffffffffffffffffffffffffffffffffffffffff161461110c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110390613081565b60405180910390fd5b80601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60606005805461117690613441565b80601f01602080910402602001604051908101604052809291908181526020018280546111a290613441565b80156111ef5780601f106111c4576101008083540402835291602001916111ef565b820191906000526020600020905b8154815290600101906020018083116111d257829003601f168201915b5050505050905090565b60008060026000611208611767565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156112c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112bc90613121565b60405180910390fd5b6112d96112d0611767565b8585840361176f565b600191505092915050565b60006112f86112f1611767565b848461193a565b6001905092915050565b600c5481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60106020528060005260406000206000915054906101000a900460ff1681565b600e5481565b6113bd611767565b73ffffffffffffffffffffffffffffffffffffffff166113db611067565b73ffffffffffffffffffffffffffffffffffffffff1614611431576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142890613081565b60405180910390fd5b80600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114b6611767565b73ffffffffffffffffffffffffffffffffffffffff161461150c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150390612fe1565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168360405160240161155a929190612ec0565b6040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516115e49190612e79565b6000604051808303816000865af19150503d8060008114611621576040519150601f19603f3d011682016040523d82523d6000602084013e611626565b606091505b505090508061166a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166190613041565b60405180910390fd5b505050565b611677611767565b73ffffffffffffffffffffffffffffffffffffffff16611695611067565b73ffffffffffffffffffffffffffffffffffffffff16146116eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e290613081565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561175b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175290612f81565b60405180910390fd5b611764816121c6565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156117df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d690613101565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561184f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184690612fa1565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161192d9190613161565b60405180910390a3505050565b6000811161197d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197490612fc1565b60405180910390fd5b601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611a215750601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611a60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5790613141565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611b6a57611abf611067565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480611b2a5750611afb611067565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b611b69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b60906130c1565b60405180910390fd5b5b600660019054906101000a900460ff168015611bd35750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15611c525760075481611be584610e15565b611bef919061325c565b11158015611c12575060085481611c0584610e15565b611c0f919061325c565b10155b611c51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4890613021565b60405180910390fd5b5b6000611c5d30610e15565b90506000600e548210159050808015611c825750600f60009054906101000a900460ff165b8015611c9b5750600660009054906101000a900460ff16155b8015611cf55750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611d4b5750601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611da15750601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611de6576001600660006101000a81548160ff021916908315150217905550611dca8261228a565b6000600660006101000a81548160ff0219169083151502179055505b6000600660009054906101000a900460ff16159050601060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611e9c5750601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611ea657600090505b60008115611fd957600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16148015611f0d57506000600d54115b15611f33576064600d5486611f2291906132e3565b611f2c91906132b2565b9050611fb5565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16148015611f9257506000600c54115b15611fb4576064600c5486611fa791906132e3565b611fb191906132b2565b90505b5b6000811115611fca57611fc9873083612331565b5b8085611fd6919061333d565b94505b611fe4878787612331565b50505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561205d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612054906130a1565b60405180910390fd5b612069826000836125b5565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156120f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120e790612f61565b60405180910390fd5b818103600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160036000828254612148919061333d565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516121ad9190613161565b60405180910390a36121c1836000846125ba565b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156122e65761232e565b600f60019054906101000a900460ff161561230157600e5490505b61232d81600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166125bf565b5b50565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156123a1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612398906130e1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612411576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161240890612f41565b60405180910390fd5b61241c8383836125b5565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156124a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161249a90613001565b60405180910390fd5b818103600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612538919061325c565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161259c9190613161565b60405180910390a36125af8484846125ba565b50505050565b505050565b505050565b6000600267ffffffffffffffff8111156125dc576125db61352f565b5b60405190808252806020026020018201604052801561260a5781602001602082028036833780820191505090505b509050308160008151811061262257612621613500565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156126c457600080fd5b505afa1580156126d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126fc9190612893565b816001815181106127105761270f613500565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061277730600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168561176f565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008486426040518663ffffffff1660e01b81526004016127db95949392919061317c565b600060405180830381600087803b1580156127f557600080fd5b505af1158015612809573d6000803e3d6000fd5b50505050505050565b600081359050612821816139ac565b92915050565b600081519050612836816139ac565b92915050565b60008135905061284b816139c3565b92915050565b600081359050612860816139da565b92915050565b60006020828403121561287c5761287b61355e565b5b600061288a84828501612812565b91505092915050565b6000602082840312156128a9576128a861355e565b5b60006128b784828501612827565b91505092915050565b600080604083850312156128d7576128d661355e565b5b60006128e585828601612812565b92505060206128f685828601612812565b9150509250929050565b6000806000606084860312156129195761291861355e565b5b600061292786828701612812565b935050602061293886828701612812565b925050604061294986828701612851565b9150509250925092565b6000806040838503121561296a5761296961355e565b5b600061297885828601612812565b92505060206129898582860161283c565b9150509250929050565b600080604083850312156129aa576129a961355e565b5b60006129b885828601612812565b92505060206129c985828601612851565b9150509250929050565b600080600080608085870312156129ed576129ec61355e565b5b60006129fb8782880161283c565b9450506020612a0c87828801612812565b9350506040612a1d87828801612851565b9250506060612a2e87828801612851565b91505092959194509250565b600080600060608486031215612a5357612a5261355e565b5b6000612a618682870161283c565b9350506020612a728682870161283c565b9250506040612a8386828701612851565b9150509250925092565b600060208284031215612aa357612aa261355e565b5b6000612ab184828501612851565b91505092915050565b6000612ac68383612ad2565b60208301905092915050565b612adb81613371565b82525050565b612aea81613371565b82525050565b6000612afb82613201565b612b05818561322f565b9350612b10836131f1565b8060005b83811015612b41578151612b288882612aba565b9750612b3383613222565b925050600181019050612b14565b5085935050505092915050565b612b5781613383565b82525050565b6000612b688261320c565b612b728185613240565b9350612b8281856020860161340e565b80840191505092915050565b612b97816133c6565b82525050565b612ba6816133d8565b82525050565b6000612bb782613217565b612bc1818561324b565b9350612bd181856020860161340e565b612bda81613563565b840191505092915050565b6000612bf260238361324b565b9150612bfd82613574565b604082019050919050565b6000612c1560228361324b565b9150612c20826135c3565b604082019050919050565b6000612c3860268361324b565b9150612c4382613612565b604082019050919050565b6000612c5b60228361324b565b9150612c6682613661565b604082019050919050565b6000612c7e60188361324b565b9150612c89826136b0565b602082019050919050565b6000612ca1600e8361324b565b9150612cac826136d9565b602082019050919050565b6000612cc460268361324b565b9150612ccf82613702565b604082019050919050565b6000612ce760068361324b565b9150612cf282613751565b602082019050919050565b6000612d0a600e8361324b565b9150612d158261377a565b602082019050919050565b6000612d2d60288361324b565b9150612d38826137a3565b604082019050919050565b6000612d5060208361324b565b9150612d5b826137f2565b602082019050919050565b6000612d7360218361324b565b9150612d7e8261381b565b604082019050919050565b6000612d9660168361324b565b9150612da18261386a565b602082019050919050565b6000612db960258361324b565b9150612dc482613893565b604082019050919050565b6000612ddc600083613240565b9150612de7826138e2565b600082019050919050565b6000612dff60248361324b565b9150612e0a826138e5565b604082019050919050565b6000612e2260258361324b565b9150612e2d82613934565b604082019050919050565b6000612e45600b8361324b565b9150612e5082613983565b602082019050919050565b612e64816133af565b82525050565b612e73816133b9565b82525050565b6000612e858284612b5d565b915081905092915050565b6000612e9b82612dcf565b9150819050919050565b6000602082019050612eba6000830184612ae1565b92915050565b6000604082019050612ed56000830185612ae1565b612ee26020830184612e5b565b9392505050565b6000602082019050612efe6000830184612b4e565b92915050565b6000602082019050612f196000830184612b8e565b92915050565b60006020820190508181036000830152612f398184612bac565b905092915050565b60006020820190508181036000830152612f5a81612be5565b9050919050565b60006020820190508181036000830152612f7a81612c08565b9050919050565b60006020820190508181036000830152612f9a81612c2b565b9050919050565b60006020820190508181036000830152612fba81612c4e565b9050919050565b60006020820190508181036000830152612fda81612c71565b9050919050565b60006020820190508181036000830152612ffa81612c94565b9050919050565b6000602082019050818103600083015261301a81612cb7565b9050919050565b6000602082019050818103600083015261303a81612cda565b9050919050565b6000602082019050818103600083015261305a81612cfd565b9050919050565b6000602082019050818103600083015261307a81612d20565b9050919050565b6000602082019050818103600083015261309a81612d43565b9050919050565b600060208201905081810360008301526130ba81612d66565b9050919050565b600060208201905081810360008301526130da81612d89565b9050919050565b600060208201905081810360008301526130fa81612dac565b9050919050565b6000602082019050818103600083015261311a81612df2565b9050919050565b6000602082019050818103600083015261313a81612e15565b9050919050565b6000602082019050818103600083015261315a81612e38565b9050919050565b60006020820190506131766000830184612e5b565b92915050565b600060a0820190506131916000830188612e5b565b61319e6020830187612b9d565b81810360408301526131b08186612af0565b90506131bf6060830185612ae1565b6131cc6080830184612e5b565b9695505050505050565b60006020820190506131eb6000830184612e6a565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000613267826133af565b9150613272836133af565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156132a7576132a6613473565b5b828201905092915050565b60006132bd826133af565b91506132c8836133af565b9250826132d8576132d76134a2565b5b828204905092915050565b60006132ee826133af565b91506132f9836133af565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561333257613331613473565b5b828202905092915050565b6000613348826133af565b9150613353836133af565b92508282101561336657613365613473565b5b828203905092915050565b600061337c8261338f565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006133d1826133ea565b9050919050565b60006133e3826133af565b9050919050565b60006133f5826133fc565b9050919050565b60006134078261338f565b9050919050565b60005b8381101561342c578082015181840152602081019050613411565b8381111561343b576000848401525b50505050565b6000600282049050600182168061345957607f821691505b6020821081141561346d5761346c6134d1565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a205a65726f20616d6f756e74206572726f720000000000000000600082015250565b7f496e76616c69642043616c6c6572000000000000000000000000000000000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f466f726269640000000000000000000000000000000000000000000000000000600082015250565b7f5061796d656e74204661696c6564000000000000000000000000000000000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e67206973206e6f74207374617274656400000000000000000000600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b50565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b7f426c61636b6c6973746564000000000000000000000000000000000000000000600082015250565b6139b581613371565b81146139c057600080fd5b50565b6139cc81613383565b81146139d757600080fd5b50565b6139e3816133af565b81146139ee57600080fd5b5056fea2646970667358221220f74cb58f9af03ee7925bad44f501fa8ef0f83189366ef8390f87c6f4cb412b5064736f6c63430008070033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000000000000000014bddab3e51a57cff87a50000000
-----Decoded View---------------
Arg [0] : _totalSupply (uint256): 420690000000000000000000000000000
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000014bddab3e51a57cff87a50000000
Deployed Bytecode Sourcemap
16386:5138:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16823:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6066:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8233:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17613:205;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16629:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16919:42;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7186:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16526:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8884:492;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7028:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9785:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17959:301;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17368:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21401:81;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16564:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16599:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16710:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16786:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7357:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1372:103;;;;;;;;;;;;;:::i;:::-;;18268:234;;;;;;;;;;;;;:::i;:::-;;16462:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16488:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;721:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17826:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6285:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10503:413;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7697:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16675:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7935:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16860:52;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16746:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17511:94;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18510:300;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1630:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16823:30;;;;;;;;;;;;;:::o;6066:100::-;6120:13;6153:5;6146:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6066:100;:::o;8233:169::-;8316:4;8333:39;8342:12;:10;:12::i;:::-;8356:7;8365:6;8333:8;:39::i;:::-;8390:4;8383:11;;8233:169;;;;:::o;17613:205::-;952:12;:10;:12::i;:::-;941:23;;:7;:5;:7::i;:::-;:23;;;933:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17735:10:::1;17714:18;:31;;;;17770:7;17756:11;;:21;;;;;;;;;;;;;;;;;;17802:8;17788:11;;:22;;;;;;;;;;;;;;;;;;17613:205:::0;;;:::o;16629:39::-;;;;;;;;;;;;;:::o;16919:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;7186:108::-;7247:7;7274:12;;7267:19;;7186:108;:::o;16526:31::-;;;;:::o;8884:492::-;9024:4;9041:36;9051:6;9059:9;9070:6;9041:9;:36::i;:::-;9090:24;9117:11;:19;9129:6;9117:19;;;;;;;;;;;;;;;:33;9137:12;:10;:12::i;:::-;9117:33;;;;;;;;;;;;;;;;9090:60;;9189:6;9169:16;:26;;9161:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;9276:57;9285:6;9293:12;:10;:12::i;:::-;9326:6;9307:16;:25;9276:8;:57::i;:::-;9364:4;9357:11;;;8884:492;;;;;:::o;7028:93::-;7086:5;7111:2;7104:9;;7028:93;:::o;9785:215::-;9873:4;9890:80;9899:12;:10;:12::i;:::-;9913:7;9959:10;9922:11;:25;9934:12;:10;:12::i;:::-;9922:25;;;;;;;;;;;;;;;:34;9948:7;9922:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;9890:8;:80::i;:::-;9988:4;9981:11;;9785:215;;;;:::o;17959:301::-;952:12;:10;:12::i;:::-;941:23;;:7;:5;:7::i;:::-;:23;;;933:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18109:8:::1;18099:7;;:18;;;;;;;;;;;;;;;;;;18144:14;18128:13;;:30;;;;;;;;;;;;;;;;;;18188:17;18169:16;:36;;;;18235:17;18216:16;:36;;;;17959:301:::0;;;;:::o;17368:135::-;952:12;:10;:12::i;:::-;941:23;;:7;:5;:7::i;:::-;:23;;;933:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17480:15:::1;17457:10;:20;17468:8;17457:20;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;17368:135:::0;;:::o;21401:81::-;21450:24;21456:10;21468:5;21450;:24::i;:::-;21401:81;:::o;16564:28::-;;;;;;;;;;;;;:::o;16599:23::-;;;;;;;;;;;;;:::o;16710:29::-;;;;:::o;16786:30::-;;;;;;;;;;;;;:::o;7357:127::-;7431:7;7458:9;:18;7468:7;7458:18;;;;;;;;;;;;;;;;7451:25;;7357:127;;;:::o;1372:103::-;952:12;:10;:12::i;:::-;941:23;;:7;:5;:7::i;:::-;:23;;;933:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1437:30:::1;1464:1;1437:18;:30::i;:::-;1372:103::o:0;18268:234::-;18339:8;;;;;;;;;;;18323:24;;:12;:10;:12::i;:::-;:24;;;18315:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;18377:12;18402:8;;;;;;;;;;;18394:22;;18424:21;18394:56;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18376:74;;;18469:7;18461:33;;;;;;;;;;;;:::i;:::-;;;;;;;;;18304:198;18268:234::o;16462:19::-;;;;;;;;;;;;;:::o;16488:31::-;;;;:::o;721:87::-;767:7;794:6;;;;;;;;;;;787:13;;721:87;:::o;17826:125::-;952:12;:10;:12::i;:::-;941:23;;:7;:5;:7::i;:::-;:23;;;933:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17936:7:::1;17907:19;:26;17927:5;17907:26;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;17826:125:::0;;:::o;6285:104::-;6341:13;6374:7;6367:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6285:104;:::o;10503:413::-;10596:4;10613:24;10640:11;:25;10652:12;:10;:12::i;:::-;10640:25;;;;;;;;;;;;;;;:34;10666:7;10640:34;;;;;;;;;;;;;;;;10613:61;;10713:15;10693:16;:35;;10685:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;10806:67;10815:12;:10;:12::i;:::-;10829:7;10857:15;10838:16;:34;10806:8;:67::i;:::-;10904:4;10897:11;;;10503:413;;;;:::o;7697:175::-;7783:4;7800:42;7810:12;:10;:12::i;:::-;7824:9;7835:6;7800:9;:42::i;:::-;7860:4;7853:11;;7697:175;;;;:::o;16675:28::-;;;;:::o;7935:151::-;8024:7;8051:11;:18;8063:5;8051:18;;;;;;;;;;;;;;;:27;8070:7;8051:27;;;;;;;;;;;;;;;;8044:34;;7935:151;;;;:::o;16860:52::-;;;;;;;;;;;;;;;;;;;;;;:::o;16746:33::-;;;;:::o;17511:94::-;952:12;:10;:12::i;:::-;941:23;;:7;:5;:7::i;:::-;:23;;;933:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17590:7:::1;17579:8;;:18;;;;;;;;;;;;;;;;;;17511:94:::0;:::o;18510:300::-;18610:8;;;;;;;;;;;18594:24;;:12;:10;:12::i;:::-;:24;;;18586:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;18648:12;18673:6;18665:20;;18739:8;;;;;;;;;;;18749:7;18686:71;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18665:93;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18647:111;;;18777:7;18769:33;;;;;;;;;;;;:::i;:::-;;;;;;;;;18575:235;18510:300;;:::o;1630:201::-;952:12;:10;:12::i;:::-;941:23;;:7;:5;:7::i;:::-;:23;;;933:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1739:1:::1;1719:22;;:8;:22;;;;1711:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;1795:28;1814:8;1795:18;:28::i;:::-;1630:201:::0;:::o;95:98::-;148:7;175:10;168:17;;95:98;:::o;14187:380::-;14340:1;14323:19;;:5;:19;;;;14315:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14421:1;14402:21;;:7;:21;;;;14394:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14505:6;14475:11;:18;14487:5;14475:18;;;;;;;;;;;;;;;:27;14494:7;14475:27;;;;;;;;;;;;;;;:36;;;;14543:7;14527:32;;14536:5;14527:32;;;14552:6;14527:32;;;;;;:::i;:::-;;;;;;;;14187:380;;;:::o;18818:1798::-;18959:1;18950:6;:10;18942:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;19009:10;:14;19020:2;19009:14;;;;;;;;;;;;;;;;;;;;;;;;;19008:15;:36;;;;;19028:10;:16;19039:4;19028:16;;;;;;;;;;;;;;;;;;;;;;;;;19027:17;19008:36;19000:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;19102:1;19077:27;;:13;;;;;;;;;;;:27;;;19073:127;;;19137:7;:5;:7::i;:::-;19129:15;;:4;:15;;;:32;;;;19154:7;:5;:7::i;:::-;19148:13;;:2;:13;;;19129:32;19121:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19073:127;19224:7;;;;;;;;;;;:32;;;;;19243:13;;;;;;;;;;;19235:21;;:4;:21;;;19224:32;19220:184;;;19313:16;;19303:6;19281:19;19297:2;19281:15;:19::i;:::-;:28;;;;:::i;:::-;:48;;:100;;;;;19365:16;;19355:6;19333:19;19349:2;19333:15;:19::i;:::-;:28;;;;:::i;:::-;:48;;19281:100;19273:119;;;;;;;;;;;;:::i;:::-;;;;;;;;;19220:184;19416:28;19447:24;19465:4;19447:9;:24::i;:::-;19416:55;;19492:12;19531:18;;19507:20;:42;;19492:57;;19580:7;:35;;;;;19604:11;;;;;;;;;;;19580:35;:61;;;;;19633:8;;;;;;;;;;;19632:9;19580:61;:99;;;;;19666:13;;;;;;;;;;;19658:21;;:4;:21;;;;19580:99;:142;;;;;19697:19;:25;19717:4;19697:25;;;;;;;;;;;;;;;;;;;;;;;;;19696:26;19580:142;:183;;;;;19740:19;:23;19760:2;19740:23;;;;;;;;;;;;;;;;;;;;;;;;;19739:24;19580:183;19562:354;;;19801:4;19790:8;;:15;;;;;;;;;;;;;;;;;;19834:37;19850:20;19834:15;:37::i;:::-;19899:5;19888:8;;:16;;;;;;;;;;;;;;;;;;19562:354;19936:12;19952:8;;;;;;;;;;;19951:9;19936:24;;19976:19;:25;19996:4;19976:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;20005:19;:23;20025:2;20005:23;;;;;;;;;;;;;;;;;;;;;;;;;19976:52;19973:99;;;20055:5;20045:15;;19973:99;20092:12;20124:7;20121:440;;;20159:13;;;;;;;;;;;20153:19;;:2;:19;;;:41;;;;;20193:1;20177:13;;:17;20153:41;20149:247;;;20246:3;20230:13;;20221:6;:22;;;;:::i;:::-;:28;;;;:::i;:::-;20214:35;;20149:247;;;20295:13;;;;;;;;;;;20287:21;;:4;:21;;;:41;;;;;20327:1;20312:12;;:16;20287:41;20284:112;;;20377:3;20362:12;;20353:6;:21;;;;:::i;:::-;:27;;;;:::i;:::-;20346:34;;20284:112;20149:247;20434:1;20427:4;:8;20424:93;;;20459:42;20475:4;20489;20496;20459:15;:42::i;:::-;20424:93;20543:4;20533:14;;;;;:::i;:::-;;;20121:440;20573:33;20589:4;20595:2;20599:6;20573:15;:33::i;:::-;18931:1685;;;;18818:1798;;;:::o;13158:591::-;13261:1;13242:21;;:7;:21;;;;13234:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13314:49;13335:7;13352:1;13356:6;13314:20;:49::i;:::-;13376:22;13401:9;:18;13411:7;13401:18;;;;;;;;;;;;;;;;13376:43;;13456:6;13438:14;:24;;13430:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;13575:6;13558:14;:23;13537:9;:18;13547:7;13537:18;;;;;;;;;;;;;;;:44;;;;13619:6;13603:12;;:22;;;;;;;:::i;:::-;;;;;;;;13669:1;13643:37;;13652:7;13643:37;;;13673:6;13643:37;;;;;;:::i;:::-;;;;;;;;13693:48;13713:7;13730:1;13734:6;13693:19;:48::i;:::-;13223:526;13158:591;;:::o;1991:191::-;2065:16;2084:6;;;;;;;;;;;2065:25;;2110:8;2101:6;;:17;;;;;;;;;;;;;;;;;;2165:8;2134:40;;2155:8;2134:40;;;;;;;;;;;;2054:128;1991:191;:::o;20624:246::-;20726:1;20701:27;;:13;;;;;;;;;;;:27;;;20698:39;;;20730:7;;20698:39;20750:11;;;;;;;;;;;20747:57;;;20786:18;;20763:41;;20747:57;20815:47;20832:20;20853:8;;;;;;;;;;;20815:16;:47::i;:::-;20624:246;;:::o;11406:733::-;11564:1;11546:20;;:6;:20;;;;11538:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;11648:1;11627:23;;:9;:23;;;;11619:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;11703:47;11724:6;11732:9;11743:6;11703:20;:47::i;:::-;11763:21;11787:9;:17;11797:6;11787:17;;;;;;;;;;;;;;;;11763:41;;11840:6;11823:13;:23;;11815:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;11961:6;11945:13;:22;11925:9;:17;11935:6;11925:17;;;;;;;;;;;;;;;:42;;;;12013:6;11989:9;:20;11999:9;11989:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;12054:9;12037:35;;12046:6;12037:35;;;12065:6;12037:35;;;;;;:::i;:::-;;;;;;;;12085:46;12105:6;12113:9;12124:6;12085:19;:46::i;:::-;11527:612;11406:733;;;:::o;15167:125::-;;;;:::o;15896:124::-;;;;:::o;20880:513::-;20967:21;21005:1;20991:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20967:40;;21036:4;21018;21023:1;21018:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;21062:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21052:4;21057:1;21052:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;21097:62;21114:4;21129:15;;;;;;;;;;;21147:11;21097:8;:62::i;:::-;21172:15;;;;;;;;;;;:66;;;21253:11;21279:1;21296:4;21323:10;21349:15;21172:203;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20954:439;20880:513;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;152:143;;;;:::o;301:133::-;344:5;382:6;369:20;360:29;;398:30;422:5;398:30;:::i;:::-;301:133;;;;:::o;440:139::-;486:5;524:6;511:20;502:29;;540:33;567:5;540:33;:::i;:::-;440:139;;;;:::o;585:329::-;644:6;693:2;681:9;672:7;668:23;664:32;661:119;;;699:79;;:::i;:::-;661:119;819:1;844:53;889:7;880:6;869:9;865:22;844:53;:::i;:::-;834:63;;790:117;585:329;;;;:::o;920:351::-;990:6;1039:2;1027:9;1018:7;1014:23;1010:32;1007:119;;;1045:79;;:::i;:::-;1007:119;1165:1;1190:64;1246:7;1237:6;1226:9;1222:22;1190:64;:::i;:::-;1180:74;;1136:128;920:351;;;;:::o;1277:474::-;1345:6;1353;1402:2;1390:9;1381:7;1377:23;1373:32;1370:119;;;1408:79;;:::i;:::-;1370:119;1528:1;1553:53;1598:7;1589:6;1578:9;1574:22;1553:53;:::i;:::-;1543:63;;1499:117;1655:2;1681:53;1726:7;1717:6;1706:9;1702:22;1681:53;:::i;:::-;1671:63;;1626:118;1277:474;;;;;:::o;1757:619::-;1834:6;1842;1850;1899:2;1887:9;1878:7;1874:23;1870:32;1867:119;;;1905:79;;:::i;:::-;1867:119;2025:1;2050:53;2095:7;2086:6;2075:9;2071:22;2050:53;:::i;:::-;2040:63;;1996:117;2152:2;2178:53;2223:7;2214:6;2203:9;2199:22;2178:53;:::i;:::-;2168:63;;2123:118;2280:2;2306:53;2351:7;2342:6;2331:9;2327:22;2306:53;:::i;:::-;2296:63;;2251:118;1757:619;;;;;:::o;2382:468::-;2447:6;2455;2504:2;2492:9;2483:7;2479:23;2475:32;2472:119;;;2510:79;;:::i;:::-;2472:119;2630:1;2655:53;2700:7;2691:6;2680:9;2676:22;2655:53;:::i;:::-;2645:63;;2601:117;2757:2;2783:50;2825:7;2816:6;2805:9;2801:22;2783:50;:::i;:::-;2773:60;;2728:115;2382:468;;;;;:::o;2856:474::-;2924:6;2932;2981:2;2969:9;2960:7;2956:23;2952:32;2949:119;;;2987:79;;:::i;:::-;2949:119;3107:1;3132:53;3177:7;3168:6;3157:9;3153:22;3132:53;:::i;:::-;3122:63;;3078:117;3234:2;3260:53;3305:7;3296:6;3285:9;3281:22;3260:53;:::i;:::-;3250:63;;3205:118;2856:474;;;;;:::o;3336:759::-;3419:6;3427;3435;3443;3492:3;3480:9;3471:7;3467:23;3463:33;3460:120;;;3499:79;;:::i;:::-;3460:120;3619:1;3644:50;3686:7;3677:6;3666:9;3662:22;3644:50;:::i;:::-;3634:60;;3590:114;3743:2;3769:53;3814:7;3805:6;3794:9;3790:22;3769:53;:::i;:::-;3759:63;;3714:118;3871:2;3897:53;3942:7;3933:6;3922:9;3918:22;3897:53;:::i;:::-;3887:63;;3842:118;3999:2;4025:53;4070:7;4061:6;4050:9;4046:22;4025:53;:::i;:::-;4015:63;;3970:118;3336:759;;;;;;;:::o;4101:607::-;4172:6;4180;4188;4237:2;4225:9;4216:7;4212:23;4208:32;4205:119;;;4243:79;;:::i;:::-;4205:119;4363:1;4388:50;4430:7;4421:6;4410:9;4406:22;4388:50;:::i;:::-;4378:60;;4334:114;4487:2;4513:50;4555:7;4546:6;4535:9;4531:22;4513:50;:::i;:::-;4503:60;;4458:115;4612:2;4638:53;4683:7;4674:6;4663:9;4659:22;4638:53;:::i;:::-;4628:63;;4583:118;4101:607;;;;;:::o;4714:329::-;4773:6;4822:2;4810:9;4801:7;4797:23;4793:32;4790:119;;;4828:79;;:::i;:::-;4790:119;4948:1;4973:53;5018:7;5009:6;4998:9;4994:22;4973:53;:::i;:::-;4963:63;;4919:117;4714:329;;;;:::o;5049:179::-;5118:10;5139:46;5181:3;5173:6;5139:46;:::i;:::-;5217:4;5212:3;5208:14;5194:28;;5049:179;;;;:::o;5234:108::-;5311:24;5329:5;5311:24;:::i;:::-;5306:3;5299:37;5234:108;;:::o;5348:118::-;5435:24;5453:5;5435:24;:::i;:::-;5430:3;5423:37;5348:118;;:::o;5502:732::-;5621:3;5650:54;5698:5;5650:54;:::i;:::-;5720:86;5799:6;5794:3;5720:86;:::i;:::-;5713:93;;5830:56;5880:5;5830:56;:::i;:::-;5909:7;5940:1;5925:284;5950:6;5947:1;5944:13;5925:284;;;6026:6;6020:13;6053:63;6112:3;6097:13;6053:63;:::i;:::-;6046:70;;6139:60;6192:6;6139:60;:::i;:::-;6129:70;;5985:224;5972:1;5969;5965:9;5960:14;;5925:284;;;5929:14;6225:3;6218:10;;5626:608;;;5502:732;;;;:::o;6240:109::-;6321:21;6336:5;6321:21;:::i;:::-;6316:3;6309:34;6240:109;;:::o;6355:373::-;6459:3;6487:38;6519:5;6487:38;:::i;:::-;6541:88;6622:6;6617:3;6541:88;:::i;:::-;6534:95;;6638:52;6683:6;6678:3;6671:4;6664:5;6660:16;6638:52;:::i;:::-;6715:6;6710:3;6706:16;6699:23;;6463:265;6355:373;;;;:::o;6734:179::-;6845:61;6900:5;6845:61;:::i;:::-;6840:3;6833:74;6734:179;;:::o;6919:147::-;7014:45;7053:5;7014:45;:::i;:::-;7009:3;7002:58;6919:147;;:::o;7072:364::-;7160:3;7188:39;7221:5;7188:39;:::i;:::-;7243:71;7307:6;7302:3;7243:71;:::i;:::-;7236:78;;7323:52;7368:6;7363:3;7356:4;7349:5;7345:16;7323:52;:::i;:::-;7400:29;7422:6;7400:29;:::i;:::-;7395:3;7391:39;7384:46;;7164:272;7072:364;;;;:::o;7442:366::-;7584:3;7605:67;7669:2;7664:3;7605:67;:::i;:::-;7598:74;;7681:93;7770:3;7681:93;:::i;:::-;7799:2;7794:3;7790:12;7783:19;;7442:366;;;:::o;7814:::-;7956:3;7977:67;8041:2;8036:3;7977:67;:::i;:::-;7970:74;;8053:93;8142:3;8053:93;:::i;:::-;8171:2;8166:3;8162:12;8155:19;;7814:366;;;:::o;8186:::-;8328:3;8349:67;8413:2;8408:3;8349:67;:::i;:::-;8342:74;;8425:93;8514:3;8425:93;:::i;:::-;8543:2;8538:3;8534:12;8527:19;;8186:366;;;:::o;8558:::-;8700:3;8721:67;8785:2;8780:3;8721:67;:::i;:::-;8714:74;;8797:93;8886:3;8797:93;:::i;:::-;8915:2;8910:3;8906:12;8899:19;;8558:366;;;:::o;8930:::-;9072:3;9093:67;9157:2;9152:3;9093:67;:::i;:::-;9086:74;;9169:93;9258:3;9169:93;:::i;:::-;9287:2;9282:3;9278:12;9271:19;;8930:366;;;:::o;9302:::-;9444:3;9465:67;9529:2;9524:3;9465:67;:::i;:::-;9458:74;;9541:93;9630:3;9541:93;:::i;:::-;9659:2;9654:3;9650:12;9643:19;;9302:366;;;:::o;9674:::-;9816:3;9837:67;9901:2;9896:3;9837:67;:::i;:::-;9830:74;;9913:93;10002:3;9913:93;:::i;:::-;10031:2;10026:3;10022:12;10015:19;;9674:366;;;:::o;10046:365::-;10188:3;10209:66;10273:1;10268:3;10209:66;:::i;:::-;10202:73;;10284:93;10373:3;10284:93;:::i;:::-;10402:2;10397:3;10393:12;10386:19;;10046:365;;;:::o;10417:366::-;10559:3;10580:67;10644:2;10639:3;10580:67;:::i;:::-;10573:74;;10656:93;10745:3;10656:93;:::i;:::-;10774:2;10769:3;10765:12;10758:19;;10417:366;;;:::o;10789:::-;10931:3;10952:67;11016:2;11011:3;10952:67;:::i;:::-;10945:74;;11028:93;11117:3;11028:93;:::i;:::-;11146:2;11141:3;11137:12;11130:19;;10789:366;;;:::o;11161:::-;11303:3;11324:67;11388:2;11383:3;11324:67;:::i;:::-;11317:74;;11400:93;11489:3;11400:93;:::i;:::-;11518:2;11513:3;11509:12;11502:19;;11161:366;;;:::o;11533:::-;11675:3;11696:67;11760:2;11755:3;11696:67;:::i;:::-;11689:74;;11772:93;11861:3;11772:93;:::i;:::-;11890:2;11885:3;11881:12;11874:19;;11533:366;;;:::o;11905:::-;12047:3;12068:67;12132:2;12127:3;12068:67;:::i;:::-;12061:74;;12144:93;12233:3;12144:93;:::i;:::-;12262:2;12257:3;12253:12;12246:19;;11905:366;;;:::o;12277:::-;12419:3;12440:67;12504:2;12499:3;12440:67;:::i;:::-;12433:74;;12516:93;12605:3;12516:93;:::i;:::-;12634:2;12629:3;12625:12;12618:19;;12277:366;;;:::o;12649:398::-;12808:3;12829:83;12910:1;12905:3;12829:83;:::i;:::-;12822:90;;12921:93;13010:3;12921:93;:::i;:::-;13039:1;13034:3;13030:11;13023:18;;12649:398;;;:::o;13053:366::-;13195:3;13216:67;13280:2;13275:3;13216:67;:::i;:::-;13209:74;;13292:93;13381:3;13292:93;:::i;:::-;13410:2;13405:3;13401:12;13394:19;;13053:366;;;:::o;13425:::-;13567:3;13588:67;13652:2;13647:3;13588:67;:::i;:::-;13581:74;;13664:93;13753:3;13664:93;:::i;:::-;13782:2;13777:3;13773:12;13766:19;;13425:366;;;:::o;13797:::-;13939:3;13960:67;14024:2;14019:3;13960:67;:::i;:::-;13953:74;;14036:93;14125:3;14036:93;:::i;:::-;14154:2;14149:3;14145:12;14138:19;;13797:366;;;:::o;14169:118::-;14256:24;14274:5;14256:24;:::i;:::-;14251:3;14244:37;14169:118;;:::o;14293:112::-;14376:22;14392:5;14376:22;:::i;:::-;14371:3;14364:35;14293:112;;:::o;14411:271::-;14541:3;14563:93;14652:3;14643:6;14563:93;:::i;:::-;14556:100;;14673:3;14666:10;;14411:271;;;;:::o;14688:379::-;14872:3;14894:147;15037:3;14894:147;:::i;:::-;14887:154;;15058:3;15051:10;;14688:379;;;:::o;15073:222::-;15166:4;15204:2;15193:9;15189:18;15181:26;;15217:71;15285:1;15274:9;15270:17;15261:6;15217:71;:::i;:::-;15073:222;;;;:::o;15301:332::-;15422:4;15460:2;15449:9;15445:18;15437:26;;15473:71;15541:1;15530:9;15526:17;15517:6;15473:71;:::i;:::-;15554:72;15622:2;15611:9;15607:18;15598:6;15554:72;:::i;:::-;15301:332;;;;;:::o;15639:210::-;15726:4;15764:2;15753:9;15749:18;15741:26;;15777:65;15839:1;15828:9;15824:17;15815:6;15777:65;:::i;:::-;15639:210;;;;:::o;15855:270::-;15972:4;16010:2;15999:9;15995:18;15987:26;;16023:95;16115:1;16104:9;16100:17;16091:6;16023:95;:::i;:::-;15855:270;;;;:::o;16131:313::-;16244:4;16282:2;16271:9;16267:18;16259:26;;16331:9;16325:4;16321:20;16317:1;16306:9;16302:17;16295:47;16359:78;16432:4;16423:6;16359:78;:::i;:::-;16351:86;;16131:313;;;;:::o;16450:419::-;16616:4;16654:2;16643:9;16639:18;16631:26;;16703:9;16697:4;16693:20;16689:1;16678:9;16674:17;16667:47;16731:131;16857:4;16731:131;:::i;:::-;16723:139;;16450:419;;;:::o;16875:::-;17041:4;17079:2;17068:9;17064:18;17056:26;;17128:9;17122:4;17118:20;17114:1;17103:9;17099:17;17092:47;17156:131;17282:4;17156:131;:::i;:::-;17148:139;;16875:419;;;:::o;17300:::-;17466:4;17504:2;17493:9;17489:18;17481:26;;17553:9;17547:4;17543:20;17539:1;17528:9;17524:17;17517:47;17581:131;17707:4;17581:131;:::i;:::-;17573:139;;17300:419;;;:::o;17725:::-;17891:4;17929:2;17918:9;17914:18;17906:26;;17978:9;17972:4;17968:20;17964:1;17953:9;17949:17;17942:47;18006:131;18132:4;18006:131;:::i;:::-;17998:139;;17725:419;;;:::o;18150:::-;18316:4;18354:2;18343:9;18339:18;18331:26;;18403:9;18397:4;18393:20;18389:1;18378:9;18374:17;18367:47;18431:131;18557:4;18431:131;:::i;:::-;18423:139;;18150:419;;;:::o;18575:::-;18741:4;18779:2;18768:9;18764:18;18756:26;;18828:9;18822:4;18818:20;18814:1;18803:9;18799:17;18792:47;18856:131;18982:4;18856:131;:::i;:::-;18848:139;;18575:419;;;:::o;19000:::-;19166:4;19204:2;19193:9;19189:18;19181:26;;19253:9;19247:4;19243:20;19239:1;19228:9;19224:17;19217:47;19281:131;19407:4;19281:131;:::i;:::-;19273:139;;19000:419;;;:::o;19425:::-;19591:4;19629:2;19618:9;19614:18;19606:26;;19678:9;19672:4;19668:20;19664:1;19653:9;19649:17;19642:47;19706:131;19832:4;19706:131;:::i;:::-;19698:139;;19425:419;;;:::o;19850:::-;20016:4;20054:2;20043:9;20039:18;20031:26;;20103:9;20097:4;20093:20;20089:1;20078:9;20074:17;20067:47;20131:131;20257:4;20131:131;:::i;:::-;20123:139;;19850:419;;;:::o;20275:::-;20441:4;20479:2;20468:9;20464:18;20456:26;;20528:9;20522:4;20518:20;20514:1;20503:9;20499:17;20492:47;20556:131;20682:4;20556:131;:::i;:::-;20548:139;;20275:419;;;:::o;20700:::-;20866:4;20904:2;20893:9;20889:18;20881:26;;20953:9;20947:4;20943:20;20939:1;20928:9;20924:17;20917:47;20981:131;21107:4;20981:131;:::i;:::-;20973:139;;20700:419;;;:::o;21125:::-;21291:4;21329:2;21318:9;21314:18;21306:26;;21378:9;21372:4;21368:20;21364:1;21353:9;21349:17;21342:47;21406:131;21532:4;21406:131;:::i;:::-;21398:139;;21125:419;;;:::o;21550:::-;21716:4;21754:2;21743:9;21739:18;21731:26;;21803:9;21797:4;21793:20;21789:1;21778:9;21774:17;21767:47;21831:131;21957:4;21831:131;:::i;:::-;21823:139;;21550:419;;;:::o;21975:::-;22141:4;22179:2;22168:9;22164:18;22156:26;;22228:9;22222:4;22218:20;22214:1;22203:9;22199:17;22192:47;22256:131;22382:4;22256:131;:::i;:::-;22248:139;;21975:419;;;:::o;22400:::-;22566:4;22604:2;22593:9;22589:18;22581:26;;22653:9;22647:4;22643:20;22639:1;22628:9;22624:17;22617:47;22681:131;22807:4;22681:131;:::i;:::-;22673:139;;22400:419;;;:::o;22825:::-;22991:4;23029:2;23018:9;23014:18;23006:26;;23078:9;23072:4;23068:20;23064:1;23053:9;23049:17;23042:47;23106:131;23232:4;23106:131;:::i;:::-;23098:139;;22825:419;;;:::o;23250:::-;23416:4;23454:2;23443:9;23439:18;23431:26;;23503:9;23497:4;23493:20;23489:1;23478:9;23474:17;23467:47;23531:131;23657:4;23531:131;:::i;:::-;23523:139;;23250:419;;;:::o;23675:222::-;23768:4;23806:2;23795:9;23791:18;23783:26;;23819:71;23887:1;23876:9;23872:17;23863:6;23819:71;:::i;:::-;23675:222;;;;:::o;23903:831::-;24166:4;24204:3;24193:9;24189:19;24181:27;;24218:71;24286:1;24275:9;24271:17;24262:6;24218:71;:::i;:::-;24299:80;24375:2;24364:9;24360:18;24351:6;24299:80;:::i;:::-;24426:9;24420:4;24416:20;24411:2;24400:9;24396:18;24389:48;24454:108;24557:4;24548:6;24454:108;:::i;:::-;24446:116;;24572:72;24640:2;24629:9;24625:18;24616:6;24572:72;:::i;:::-;24654:73;24722:3;24711:9;24707:19;24698:6;24654:73;:::i;:::-;23903:831;;;;;;;;:::o;24740:214::-;24829:4;24867:2;24856:9;24852:18;24844:26;;24880:67;24944:1;24933:9;24929:17;24920:6;24880:67;:::i;:::-;24740:214;;;;:::o;25041:132::-;25108:4;25131:3;25123:11;;25161:4;25156:3;25152:14;25144:22;;25041:132;;;:::o;25179:114::-;25246:6;25280:5;25274:12;25264:22;;25179:114;;;:::o;25299:98::-;25350:6;25384:5;25378:12;25368:22;;25299:98;;;:::o;25403:99::-;25455:6;25489:5;25483:12;25473:22;;25403:99;;;:::o;25508:113::-;25578:4;25610;25605:3;25601:14;25593:22;;25508:113;;;:::o;25627:184::-;25726:11;25760:6;25755:3;25748:19;25800:4;25795:3;25791:14;25776:29;;25627:184;;;;:::o;25817:147::-;25918:11;25955:3;25940:18;;25817:147;;;;:::o;25970:169::-;26054:11;26088:6;26083:3;26076:19;26128:4;26123:3;26119:14;26104:29;;25970:169;;;;:::o;26145:305::-;26185:3;26204:20;26222:1;26204:20;:::i;:::-;26199:25;;26238:20;26256:1;26238:20;:::i;:::-;26233:25;;26392:1;26324:66;26320:74;26317:1;26314:81;26311:107;;;26398:18;;:::i;:::-;26311:107;26442:1;26439;26435:9;26428:16;;26145:305;;;;:::o;26456:185::-;26496:1;26513:20;26531:1;26513:20;:::i;:::-;26508:25;;26547:20;26565:1;26547:20;:::i;:::-;26542:25;;26586:1;26576:35;;26591:18;;:::i;:::-;26576:35;26633:1;26630;26626:9;26621:14;;26456:185;;;;:::o;26647:348::-;26687:7;26710:20;26728:1;26710:20;:::i;:::-;26705:25;;26744:20;26762:1;26744:20;:::i;:::-;26739:25;;26932:1;26864:66;26860:74;26857:1;26854:81;26849:1;26842:9;26835:17;26831:105;26828:131;;;26939:18;;:::i;:::-;26828:131;26987:1;26984;26980:9;26969:20;;26647:348;;;;:::o;27001:191::-;27041:4;27061:20;27079:1;27061:20;:::i;:::-;27056:25;;27095:20;27113:1;27095:20;:::i;:::-;27090:25;;27134:1;27131;27128:8;27125:34;;;27139:18;;:::i;:::-;27125:34;27184:1;27181;27177:9;27169:17;;27001:191;;;;:::o;27198:96::-;27235:7;27264:24;27282:5;27264:24;:::i;:::-;27253:35;;27198:96;;;:::o;27300:90::-;27334:7;27377:5;27370:13;27363:21;27352:32;;27300:90;;;:::o;27396:126::-;27433:7;27473:42;27466:5;27462:54;27451:65;;27396:126;;;:::o;27528:77::-;27565:7;27594:5;27583:16;;27528:77;;;:::o;27611:86::-;27646:7;27686:4;27679:5;27675:16;27664:27;;27611:86;;;:::o;27703:150::-;27777:9;27810:37;27841:5;27810:37;:::i;:::-;27797:50;;27703:150;;;:::o;27859:121::-;27917:9;27950:24;27968:5;27950:24;:::i;:::-;27937:37;;27859:121;;;:::o;27986:126::-;28036:9;28069:37;28100:5;28069:37;:::i;:::-;28056:50;;27986:126;;;:::o;28118:113::-;28168:9;28201:24;28219:5;28201:24;:::i;:::-;28188:37;;28118:113;;;:::o;28237:307::-;28305:1;28315:113;28329:6;28326:1;28323:13;28315:113;;;28414:1;28409:3;28405:11;28399:18;28395:1;28390:3;28386:11;28379:39;28351:2;28348:1;28344:10;28339:15;;28315:113;;;28446:6;28443:1;28440:13;28437:101;;;28526:1;28517:6;28512:3;28508:16;28501:27;28437:101;28286:258;28237:307;;;:::o;28550:320::-;28594:6;28631:1;28625:4;28621:12;28611:22;;28678:1;28672:4;28668:12;28699:18;28689:81;;28755:4;28747:6;28743:17;28733:27;;28689:81;28817:2;28809:6;28806:14;28786:18;28783:38;28780:84;;;28836:18;;:::i;:::-;28780:84;28601:269;28550:320;;;:::o;28876:180::-;28924:77;28921:1;28914:88;29021:4;29018:1;29011:15;29045:4;29042:1;29035:15;29062:180;29110:77;29107:1;29100:88;29207:4;29204:1;29197:15;29231:4;29228:1;29221:15;29248:180;29296:77;29293:1;29286:88;29393:4;29390:1;29383:15;29417:4;29414:1;29407:15;29434:180;29482:77;29479:1;29472:88;29579:4;29576:1;29569:15;29603:4;29600:1;29593:15;29620:180;29668:77;29665:1;29658:88;29765:4;29762:1;29755:15;29789:4;29786:1;29779:15;29929:117;30038:1;30035;30028:12;30052:102;30093:6;30144:2;30140:7;30135:2;30128:5;30124:14;30120:28;30110:38;;30052:102;;;:::o;30160:222::-;30300:34;30296:1;30288:6;30284:14;30277:58;30369:5;30364:2;30356:6;30352:15;30345:30;30160:222;:::o;30388:221::-;30528:34;30524:1;30516:6;30512:14;30505:58;30597:4;30592:2;30584:6;30580:15;30573:29;30388:221;:::o;30615:225::-;30755:34;30751:1;30743:6;30739:14;30732:58;30824:8;30819:2;30811:6;30807:15;30800:33;30615:225;:::o;30846:221::-;30986:34;30982:1;30974:6;30970:14;30963:58;31055:4;31050:2;31042:6;31038:15;31031:29;30846:221;:::o;31073:174::-;31213:26;31209:1;31201:6;31197:14;31190:50;31073:174;:::o;31253:164::-;31393:16;31389:1;31381:6;31377:14;31370:40;31253:164;:::o;31423:225::-;31563:34;31559:1;31551:6;31547:14;31540:58;31632:8;31627:2;31619:6;31615:15;31608:33;31423:225;:::o;31654:156::-;31794:8;31790:1;31782:6;31778:14;31771:32;31654:156;:::o;31816:164::-;31956:16;31952:1;31944:6;31940:14;31933:40;31816:164;:::o;31986:227::-;32126:34;32122:1;32114:6;32110:14;32103:58;32195:10;32190:2;32182:6;32178:15;32171:35;31986:227;:::o;32219:182::-;32359:34;32355:1;32347:6;32343:14;32336:58;32219:182;:::o;32407:220::-;32547:34;32543:1;32535:6;32531:14;32524:58;32616:3;32611:2;32603:6;32599:15;32592:28;32407:220;:::o;32633:172::-;32773:24;32769:1;32761:6;32757:14;32750:48;32633:172;:::o;32811:224::-;32951:34;32947:1;32939:6;32935:14;32928:58;33020:7;33015:2;33007:6;33003:15;32996:32;32811:224;:::o;33041:114::-;;:::o;33161:223::-;33301:34;33297:1;33289:6;33285:14;33278:58;33370:6;33365:2;33357:6;33353:15;33346:31;33161:223;:::o;33390:224::-;33530:34;33526:1;33518:6;33514:14;33507:58;33599:7;33594:2;33586:6;33582:15;33575:32;33390:224;:::o;33620:161::-;33760:13;33756:1;33748:6;33744:14;33737:37;33620:161;:::o;33787:122::-;33860:24;33878:5;33860:24;:::i;:::-;33853:5;33850:35;33840:63;;33899:1;33896;33889:12;33840:63;33787:122;:::o;33915:116::-;33985:21;34000:5;33985:21;:::i;:::-;33978:5;33975:32;33965:60;;34021:1;34018;34011:12;33965:60;33915:116;:::o;34037:122::-;34110:24;34128:5;34110:24;:::i;:::-;34103:5;34100:35;34090:63;;34149:1;34146;34139:12;34090:63;34037:122;:::o
Swarm Source
ipfs://f74cb58f9af03ee7925bad44f501fa8ef0f83189366ef8390f87c6f4cb412b50
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.