ERC-20
Overview
Max Total Supply
10,000,000,000 Doggo
Holders
12
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
199,830,455.012177733724809862 DoggoValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
CheemsTheDog
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-12-05 */ /** Website: https://www.cheemsthedog.com/ Twitter: https://t.me/CheemsTelegram Tg: https://twitter.com/CheemsTheDogETH/ */ // SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.0 (utils/Context.sol) pragma solidity ^0.8.19; /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } // File @openzeppelin/contracts/access/[email protected] // OpenZeppelin Contracts v4.4.0 (access/Ownable.sol) /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ 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); } } // File @openzeppelin/contracts/token/ERC20/[email protected] // OpenZeppelin Contracts v4.4.0 (token/ERC20/IERC20.sol) /** * @dev Interface of the ERC20 standard as defined in the EIP. */ 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); } // File @openzeppelin/contracts/token/ERC20/extensions/[email protected] // OpenZeppelin Contracts v4.4.0 (token/ERC20/extensions/IERC20Metadata.sol) /** * @dev Interface for the optional metadata functions from the ERC20 standard. * * _Available since v4.1._ */ 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); } // File @openzeppelin/contracts/token/ERC20/[email protected] // OpenZeppelin Contracts v4.4.0 (token/ERC20/ERC20.sol) /** * @dev Implementation of the {IERC20} interface. * * This implementation is agnostic to the way tokens are created. This means * that a supply mechanism has to be added in a derived contract using {_mint}. * For a generic mechanism see {ERC20PresetMinterPauser}. * * TIP: For a detailed writeup see our guide * https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How * to implement supply mechanisms]. * * We have followed general OpenZeppelin Contracts guidelines: functions revert * instead returning `false` on failure. This behavior is nonetheless * conventional and does not conflict with the expectations of ERC20 * applications. * * Additionally, an {Approval} event is emitted on calls to {transferFrom}. * This allows applications to reconstruct the allowance for all accounts just * by listening to said events. Other implementations of the EIP may not emit * these events, as it isn't required by the specification. * * Finally, the non-standard {decreaseAllowance} and {increaseAllowance} * functions have been added to mitigate the well-known issues around setting * allowances. See {IERC20-approve}. */ 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 {} } ////CheemsTheDog.sol contract CheemsTheDog is Ownable, ERC20 { uint256 public maxTransactionAmount; bool public limitsInEffect = true; uint256 public maxWallet; mapping(address => bool) public _isExcludedMaxTransactionAmount; address public uniswapV2Pair; constructor() ERC20("CheemsTheDog", "Doggo") { uint256 _totalSupply = 10000000000 * 1e18; maxTransactionAmount = _totalSupply * 2 /100; // 2% maxTx maxWallet = _totalSupply * 2 /100; // 2% maxWallet excludeFromMaxTransaction(owner(), true); excludeFromMaxTransaction(address(uniswapV2Pair), true); _mint(msg.sender, _totalSupply); } function updateMaxWalletAndTxnAmount(uint256 newTxnNum, uint256 newMaxWalletNum) external onlyOwner { maxWallet = newMaxWalletNum * (10**18); maxTransactionAmount = newTxnNum * (10**18); } function _beforeTokenTransfer( address from, address to, uint256 amount ) override internal virtual { if (limitsInEffect){ if ( from != owner() && to != owner() && to != address(0) && to != address(0xdead) ){ if(uniswapV2Pair==address(0)){ require(from == owner() && to == owner(),"Trade not open"); return ; } //when buy if ( from== uniswapV2Pair&& !_isExcludedMaxTransactionAmount[to] ){ require(super.balanceOf(to) + amount <= maxWallet , "Forbid"); require( amount <= maxTransactionAmount, "Buy transfer amount exceeds the maxTransactionAmount." ); } //when sell else if ( to==uniswapV2Pair && !_isExcludedMaxTransactionAmount[from] ) { require(amount <= maxTransactionAmount, "Sell transfer amount exceeds the maxTransactionAmount."); } else if (!_isExcludedMaxTransactionAmount[to]) { require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded"); } } } } function excludeFromMaxTransaction(address updAds, bool isEx) public onlyOwner { _isExcludedMaxTransactionAmount[updAds] = isEx; } function setPair(address pair) public onlyOwner { uniswapV2Pair=pair; } function removeLimits() external onlyOwner returns (bool) { limitsInEffect = false; return true; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTransactionAmount","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":[],"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":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"}],"name":"setPair","outputs":[],"stateMutability":"nonpayable","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":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newTxnNum","type":"uint256"},{"internalType":"uint256","name":"newMaxWalletNum","type":"uint256"}],"name":"updateMaxWalletAndTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040526001600760006101000a81548160ff0219169083151502179055503480156200002c57600080fd5b506040518060400160405280600c81526020017f436865656d73546865446f6700000000000000000000000000000000000000008152506040518060400160405280600581526020017f446f67676f000000000000000000000000000000000000000000000000000000815250620000b9620000ad620001a660201b60201c565b620001ae60201b60201c565b8160049081620000ca919062000d21565b508060059081620000dc919062000d21565b50505060006b204fce5e3e250261100000009050606460028262000101919062000e37565b6200010d919062000eb1565b600681905550606460028262000124919062000e37565b62000130919062000eb1565b600881905550620001586200014a6200027260201b60201c565b60016200029b60201b60201c565b6200018d600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200029b60201b60201c565b6200019f33826200038560201b60201c565b50620012cd565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620002ab620001a660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620002d16200027260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16146200032a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003219062000f4a565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620003f7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003ee9062000fbc565b60405180910390fd5b6200040b60008383620004fe60201b60201c565b80600360008282546200041f919062000fde565b9250508190555080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000477919062000fde565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620004de91906200102a565b60405180910390a3620004fa6000838362000a5960201b60201c565b5050565b600760009054906101000a900460ff161562000a5357620005246200027260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156200059b57506200056b6200027260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015620005d55750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801562000610575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1562000a5257600073ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036200073a576200067d6200027260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015620006f25750620006c36200027260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b62000734576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200072b9062001097565b60405180910390fd5b62000a54565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015620007e25750600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156200089b5760085481620007fd8462000a5e60201b60201c565b62000809919062000fde565b11156200084d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008449062001109565b60405180910390fd5b60065481111562000895576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200088c90620011a1565b60405180910390fd5b62000a51565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015620009435750600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15620009975760065481111562000991576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009889062001239565b60405180910390fd5b62000a50565b600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1662000a4f57600854620009fd8362000a5e60201b60201c565b8262000a0a919062000fde565b111562000a4e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a4590620012ab565b60405180910390fd5b5b5b5b5b5b5b505050565b505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000b2957607f821691505b60208210810362000b3f5762000b3e62000ae1565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000ba97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000b6a565b62000bb5868362000b6a565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000c0262000bfc62000bf68462000bcd565b62000bd7565b62000bcd565b9050919050565b6000819050919050565b62000c1e8362000be1565b62000c3662000c2d8262000c09565b84845462000b77565b825550505050565b600090565b62000c4d62000c3e565b62000c5a81848462000c13565b505050565b5b8181101562000c825762000c7660008262000c43565b60018101905062000c60565b5050565b601f82111562000cd15762000c9b8162000b45565b62000ca68462000b5a565b8101602085101562000cb6578190505b62000cce62000cc58562000b5a565b83018262000c5f565b50505b505050565b600082821c905092915050565b600062000cf66000198460080262000cd6565b1980831691505092915050565b600062000d11838362000ce3565b9150826002028217905092915050565b62000d2c8262000aa7565b67ffffffffffffffff81111562000d485762000d4762000ab2565b5b62000d54825462000b10565b62000d6182828562000c86565b600060209050601f83116001811462000d99576000841562000d84578287015190505b62000d90858262000d03565b86555062000e00565b601f19841662000da98662000b45565b60005b8281101562000dd35784890151825560018201915060208501945060208101905062000dac565b8683101562000df3578489015162000def601f89168262000ce3565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000e448262000bcd565b915062000e518362000bcd565b925082820262000e618162000bcd565b9150828204841483151762000e7b5762000e7a62000e08565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000ebe8262000bcd565b915062000ecb8362000bcd565b92508262000ede5762000edd62000e82565b5b828204905092915050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600062000f3260208362000ee9565b915062000f3f8262000efa565b602082019050919050565b6000602082019050818103600083015262000f658162000f23565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000fa4601f8362000ee9565b915062000fb18262000f6c565b602082019050919050565b6000602082019050818103600083015262000fd78162000f95565b9050919050565b600062000feb8262000bcd565b915062000ff88362000bcd565b925082820190508082111562001013576200101262000e08565b5b92915050565b620010248162000bcd565b82525050565b600060208201905062001041600083018462001019565b92915050565b7f5472616465206e6f74206f70656e000000000000000000000000000000000000600082015250565b60006200107f600e8362000ee9565b91506200108c8262001047565b602082019050919050565b60006020820190508181036000830152620010b28162001070565b9050919050565b7f466f726269640000000000000000000000000000000000000000000000000000600082015250565b6000620010f160068362000ee9565b9150620010fe82620010b9565b602082019050919050565b600060208201905081810360008301526200112481620010e2565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b60006200118960358362000ee9565b915062001196826200112b565b604082019050919050565b60006020820190508181036000830152620011bc816200117a565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b60006200122160368362000ee9565b91506200122e82620011c3565b604082019050919050565b60006020820190508181036000830152620012548162001212565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b60006200129360138362000ee9565b9150620012a0826200125b565b602082019050919050565b60006020820190508181036000830152620012c68162001284565b9050919050565b6124be80620012dd6000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c8063751039fc116100c3578063a457c2d71161007c578063a457c2d714610390578063a9059cbb146103c0578063c8c8ebe4146103f0578063dd62ed3e1461040e578063f2fde38b1461043e578063f8b45b051461045a5761014d565b8063751039fc146102e25780637571336a146103005780638187f5161461031c5780638da5cb5b1461033857806395d89b411461035657806396188399146103745761014d565b8063313ce56711610115578063313ce5671461021e578063395093511461023c57806349bd5a5e1461026c5780634a62bb651461028a57806370a08231146102a8578063715018a6146102d85761014d565b806306fdde0314610152578063095ea7b31461017057806310d5de53146101a057806318160ddd146101d057806323b872dd146101ee575b600080fd5b61015a610478565b60405161016791906118f7565b60405180910390f35b61018a600480360381019061018591906119b2565b61050a565b6040516101979190611a0d565b60405180910390f35b6101ba60048036038101906101b59190611a28565b610528565b6040516101c79190611a0d565b60405180910390f35b6101d8610548565b6040516101e59190611a64565b60405180910390f35b61020860048036038101906102039190611a7f565b610552565b6040516102159190611a0d565b60405180910390f35b61022661064a565b6040516102339190611aee565b60405180910390f35b610256600480360381019061025191906119b2565b610653565b6040516102639190611a0d565b60405180910390f35b6102746106ff565b6040516102819190611b18565b60405180910390f35b610292610725565b60405161029f9190611a0d565b60405180910390f35b6102c260048036038101906102bd9190611a28565b610738565b6040516102cf9190611a64565b60405180910390f35b6102e0610781565b005b6102ea610809565b6040516102f79190611a0d565b60405180910390f35b61031a60048036038101906103159190611b5f565b6108a9565b005b61033660048036038101906103319190611a28565b610980565b005b610340610a40565b60405161034d9190611b18565b60405180910390f35b61035e610a69565b60405161036b91906118f7565b60405180910390f35b61038e60048036038101906103899190611b9f565b610afb565b005b6103aa60048036038101906103a591906119b2565b610baf565b6040516103b79190611a0d565b60405180910390f35b6103da60048036038101906103d591906119b2565b610c9a565b6040516103e79190611a0d565b60405180910390f35b6103f8610cb8565b6040516104059190611a64565b60405180910390f35b61042860048036038101906104239190611bdf565b610cbe565b6040516104359190611a64565b60405180910390f35b61045860048036038101906104539190611a28565b610d45565b005b610462610e3c565b60405161046f9190611a64565b60405180910390f35b60606004805461048790611c4e565b80601f01602080910402602001604051908101604052809291908181526020018280546104b390611c4e565b80156105005780601f106104d557610100808354040283529160200191610500565b820191906000526020600020905b8154815290600101906020018083116104e357829003601f168201915b5050505050905090565b600061051e610517610e42565b8484610e4a565b6001905092915050565b60096020528060005260406000206000915054906101000a900460ff1681565b6000600354905090565b600061055f848484611013565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105aa610e42565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561062a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062190611cf1565b60405180910390fd5b61063e85610636610e42565b858403610e4a565b60019150509392505050565b60006012905090565b60006106f5610660610e42565b84846002600061066e610e42565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546106f09190611d40565b610e4a565b6001905092915050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600760009054906101000a900460ff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610789610e42565b73ffffffffffffffffffffffffffffffffffffffff166107a7610a40565b73ffffffffffffffffffffffffffffffffffffffff16146107fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107f490611dc0565b60405180910390fd5b6108076000611295565b565b6000610813610e42565b73ffffffffffffffffffffffffffffffffffffffff16610831610a40565b73ffffffffffffffffffffffffffffffffffffffff1614610887576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087e90611dc0565b60405180910390fd5b6000600760006101000a81548160ff0219169083151502179055506001905090565b6108b1610e42565b73ffffffffffffffffffffffffffffffffffffffff166108cf610a40565b73ffffffffffffffffffffffffffffffffffffffff1614610925576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091c90611dc0565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610988610e42565b73ffffffffffffffffffffffffffffffffffffffff166109a6610a40565b73ffffffffffffffffffffffffffffffffffffffff16146109fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f390611dc0565b60405180910390fd5b80600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060058054610a7890611c4e565b80601f0160208091040260200160405190810160405280929190818152602001828054610aa490611c4e565b8015610af15780601f10610ac657610100808354040283529160200191610af1565b820191906000526020600020905b815481529060010190602001808311610ad457829003601f168201915b5050505050905090565b610b03610e42565b73ffffffffffffffffffffffffffffffffffffffff16610b21610a40565b73ffffffffffffffffffffffffffffffffffffffff1614610b77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6e90611dc0565b60405180910390fd5b670de0b6b3a764000081610b8b9190611de0565b600881905550670de0b6b3a764000082610ba59190611de0565b6006819055505050565b60008060026000610bbe610e42565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610c7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7290611e94565b60405180910390fd5b610c8f610c86610e42565b85858403610e4a565b600191505092915050565b6000610cae610ca7610e42565b8484611013565b6001905092915050565b60065481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610d4d610e42565b73ffffffffffffffffffffffffffffffffffffffff16610d6b610a40565b73ffffffffffffffffffffffffffffffffffffffff1614610dc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db890611dc0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610e30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2790611f26565b60405180910390fd5b610e3981611295565b50565b60085481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610eb9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb090611fb8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1f9061204a565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516110069190611a64565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611082576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611079906120dc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e89061216e565b60405180910390fd5b6110fc838383611359565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611183576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117a90612200565b60405180910390fd5b818103600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546112189190611d40565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161127c9190611a64565b60405180910390a361128f848484611862565b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600760009054906101000a900460ff161561185c57611376610a40565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156113e457506113b4610a40565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561141d5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611457575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561185b57600073ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361156a576114ba610a40565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561152657506114f7610a40565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b611565576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155c9061226c565b60405180910390fd5b61185d565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156116115750600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156116b8576008548161162384610738565b61162d9190611d40565b111561166e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611665906122d8565b60405180910390fd5b6006548111156116b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116aa9061236a565b60405180910390fd5b61185a565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614801561175f5750600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156117ae576006548111156117a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a0906123fc565b60405180910390fd5b611859565b600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166118585760085461180b83610738565b826118169190611d40565b1115611857576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184e90612468565b60405180910390fd5b5b5b5b5b5b5b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156118a1578082015181840152602081019050611886565b60008484015250505050565b6000601f19601f8301169050919050565b60006118c982611867565b6118d38185611872565b93506118e3818560208601611883565b6118ec816118ad565b840191505092915050565b6000602082019050818103600083015261191181846118be565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006119498261191e565b9050919050565b6119598161193e565b811461196457600080fd5b50565b60008135905061197681611950565b92915050565b6000819050919050565b61198f8161197c565b811461199a57600080fd5b50565b6000813590506119ac81611986565b92915050565b600080604083850312156119c9576119c8611919565b5b60006119d785828601611967565b92505060206119e88582860161199d565b9150509250929050565b60008115159050919050565b611a07816119f2565b82525050565b6000602082019050611a2260008301846119fe565b92915050565b600060208284031215611a3e57611a3d611919565b5b6000611a4c84828501611967565b91505092915050565b611a5e8161197c565b82525050565b6000602082019050611a796000830184611a55565b92915050565b600080600060608486031215611a9857611a97611919565b5b6000611aa686828701611967565b9350506020611ab786828701611967565b9250506040611ac88682870161199d565b9150509250925092565b600060ff82169050919050565b611ae881611ad2565b82525050565b6000602082019050611b036000830184611adf565b92915050565b611b128161193e565b82525050565b6000602082019050611b2d6000830184611b09565b92915050565b611b3c816119f2565b8114611b4757600080fd5b50565b600081359050611b5981611b33565b92915050565b60008060408385031215611b7657611b75611919565b5b6000611b8485828601611967565b9250506020611b9585828601611b4a565b9150509250929050565b60008060408385031215611bb657611bb5611919565b5b6000611bc48582860161199d565b9250506020611bd58582860161199d565b9150509250929050565b60008060408385031215611bf657611bf5611919565b5b6000611c0485828601611967565b9250506020611c1585828601611967565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611c6657607f821691505b602082108103611c7957611c78611c1f565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000611cdb602883611872565b9150611ce682611c7f565b604082019050919050565b60006020820190508181036000830152611d0a81611cce565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611d4b8261197c565b9150611d568361197c565b9250828201905080821115611d6e57611d6d611d11565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611daa602083611872565b9150611db582611d74565b602082019050919050565b60006020820190508181036000830152611dd981611d9d565b9050919050565b6000611deb8261197c565b9150611df68361197c565b9250828202611e048161197c565b91508282048414831517611e1b57611e1a611d11565b5b5092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000611e7e602583611872565b9150611e8982611e22565b604082019050919050565b60006020820190508181036000830152611ead81611e71565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000611f10602683611872565b9150611f1b82611eb4565b604082019050919050565b60006020820190508181036000830152611f3f81611f03565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000611fa2602483611872565b9150611fad82611f46565b604082019050919050565b60006020820190508181036000830152611fd181611f95565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612034602283611872565b915061203f82611fd8565b604082019050919050565b6000602082019050818103600083015261206381612027565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006120c6602583611872565b91506120d18261206a565b604082019050919050565b600060208201905081810360008301526120f5816120b9565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612158602383611872565b9150612163826120fc565b604082019050919050565b600060208201905081810360008301526121878161214b565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006121ea602683611872565b91506121f58261218e565b604082019050919050565b60006020820190508181036000830152612219816121dd565b9050919050565b7f5472616465206e6f74206f70656e000000000000000000000000000000000000600082015250565b6000612256600e83611872565b915061226182612220565b602082019050919050565b6000602082019050818103600083015261228581612249565b9050919050565b7f466f726269640000000000000000000000000000000000000000000000000000600082015250565b60006122c2600683611872565b91506122cd8261228c565b602082019050919050565b600060208201905081810360008301526122f1816122b5565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b6000612354603583611872565b915061235f826122f8565b604082019050919050565b6000602082019050818103600083015261238381612347565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b60006123e6603683611872565b91506123f18261238a565b604082019050919050565b60006020820190508181036000830152612415816123d9565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000612452601383611872565b915061245d8261241c565b602082019050919050565b6000602082019050818103600083015261248181612445565b905091905056fea26469706673582212205310c6755d668f4184fabb6c31444a83d1424f9fdb4c2d16913084c92288c73364736f6c63430008130033
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061014d5760003560e01c8063751039fc116100c3578063a457c2d71161007c578063a457c2d714610390578063a9059cbb146103c0578063c8c8ebe4146103f0578063dd62ed3e1461040e578063f2fde38b1461043e578063f8b45b051461045a5761014d565b8063751039fc146102e25780637571336a146103005780638187f5161461031c5780638da5cb5b1461033857806395d89b411461035657806396188399146103745761014d565b8063313ce56711610115578063313ce5671461021e578063395093511461023c57806349bd5a5e1461026c5780634a62bb651461028a57806370a08231146102a8578063715018a6146102d85761014d565b806306fdde0314610152578063095ea7b31461017057806310d5de53146101a057806318160ddd146101d057806323b872dd146101ee575b600080fd5b61015a610478565b60405161016791906118f7565b60405180910390f35b61018a600480360381019061018591906119b2565b61050a565b6040516101979190611a0d565b60405180910390f35b6101ba60048036038101906101b59190611a28565b610528565b6040516101c79190611a0d565b60405180910390f35b6101d8610548565b6040516101e59190611a64565b60405180910390f35b61020860048036038101906102039190611a7f565b610552565b6040516102159190611a0d565b60405180910390f35b61022661064a565b6040516102339190611aee565b60405180910390f35b610256600480360381019061025191906119b2565b610653565b6040516102639190611a0d565b60405180910390f35b6102746106ff565b6040516102819190611b18565b60405180910390f35b610292610725565b60405161029f9190611a0d565b60405180910390f35b6102c260048036038101906102bd9190611a28565b610738565b6040516102cf9190611a64565b60405180910390f35b6102e0610781565b005b6102ea610809565b6040516102f79190611a0d565b60405180910390f35b61031a60048036038101906103159190611b5f565b6108a9565b005b61033660048036038101906103319190611a28565b610980565b005b610340610a40565b60405161034d9190611b18565b60405180910390f35b61035e610a69565b60405161036b91906118f7565b60405180910390f35b61038e60048036038101906103899190611b9f565b610afb565b005b6103aa60048036038101906103a591906119b2565b610baf565b6040516103b79190611a0d565b60405180910390f35b6103da60048036038101906103d591906119b2565b610c9a565b6040516103e79190611a0d565b60405180910390f35b6103f8610cb8565b6040516104059190611a64565b60405180910390f35b61042860048036038101906104239190611bdf565b610cbe565b6040516104359190611a64565b60405180910390f35b61045860048036038101906104539190611a28565b610d45565b005b610462610e3c565b60405161046f9190611a64565b60405180910390f35b60606004805461048790611c4e565b80601f01602080910402602001604051908101604052809291908181526020018280546104b390611c4e565b80156105005780601f106104d557610100808354040283529160200191610500565b820191906000526020600020905b8154815290600101906020018083116104e357829003601f168201915b5050505050905090565b600061051e610517610e42565b8484610e4a565b6001905092915050565b60096020528060005260406000206000915054906101000a900460ff1681565b6000600354905090565b600061055f848484611013565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105aa610e42565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561062a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062190611cf1565b60405180910390fd5b61063e85610636610e42565b858403610e4a565b60019150509392505050565b60006012905090565b60006106f5610660610e42565b84846002600061066e610e42565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546106f09190611d40565b610e4a565b6001905092915050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600760009054906101000a900460ff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610789610e42565b73ffffffffffffffffffffffffffffffffffffffff166107a7610a40565b73ffffffffffffffffffffffffffffffffffffffff16146107fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107f490611dc0565b60405180910390fd5b6108076000611295565b565b6000610813610e42565b73ffffffffffffffffffffffffffffffffffffffff16610831610a40565b73ffffffffffffffffffffffffffffffffffffffff1614610887576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087e90611dc0565b60405180910390fd5b6000600760006101000a81548160ff0219169083151502179055506001905090565b6108b1610e42565b73ffffffffffffffffffffffffffffffffffffffff166108cf610a40565b73ffffffffffffffffffffffffffffffffffffffff1614610925576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091c90611dc0565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610988610e42565b73ffffffffffffffffffffffffffffffffffffffff166109a6610a40565b73ffffffffffffffffffffffffffffffffffffffff16146109fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f390611dc0565b60405180910390fd5b80600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060058054610a7890611c4e565b80601f0160208091040260200160405190810160405280929190818152602001828054610aa490611c4e565b8015610af15780601f10610ac657610100808354040283529160200191610af1565b820191906000526020600020905b815481529060010190602001808311610ad457829003601f168201915b5050505050905090565b610b03610e42565b73ffffffffffffffffffffffffffffffffffffffff16610b21610a40565b73ffffffffffffffffffffffffffffffffffffffff1614610b77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6e90611dc0565b60405180910390fd5b670de0b6b3a764000081610b8b9190611de0565b600881905550670de0b6b3a764000082610ba59190611de0565b6006819055505050565b60008060026000610bbe610e42565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610c7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7290611e94565b60405180910390fd5b610c8f610c86610e42565b85858403610e4a565b600191505092915050565b6000610cae610ca7610e42565b8484611013565b6001905092915050565b60065481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610d4d610e42565b73ffffffffffffffffffffffffffffffffffffffff16610d6b610a40565b73ffffffffffffffffffffffffffffffffffffffff1614610dc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db890611dc0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610e30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2790611f26565b60405180910390fd5b610e3981611295565b50565b60085481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610eb9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb090611fb8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1f9061204a565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516110069190611a64565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611082576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611079906120dc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e89061216e565b60405180910390fd5b6110fc838383611359565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611183576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117a90612200565b60405180910390fd5b818103600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546112189190611d40565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161127c9190611a64565b60405180910390a361128f848484611862565b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600760009054906101000a900460ff161561185c57611376610a40565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156113e457506113b4610a40565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561141d5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611457575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561185b57600073ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361156a576114ba610a40565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561152657506114f7610a40565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b611565576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155c9061226c565b60405180910390fd5b61185d565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156116115750600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156116b8576008548161162384610738565b61162d9190611d40565b111561166e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611665906122d8565b60405180910390fd5b6006548111156116b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116aa9061236a565b60405180910390fd5b61185a565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614801561175f5750600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156117ae576006548111156117a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a0906123fc565b60405180910390fd5b611859565b600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166118585760085461180b83610738565b826118169190611d40565b1115611857576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184e90612468565b60405180910390fd5b5b5b5b5b5b5b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156118a1578082015181840152602081019050611886565b60008484015250505050565b6000601f19601f8301169050919050565b60006118c982611867565b6118d38185611872565b93506118e3818560208601611883565b6118ec816118ad565b840191505092915050565b6000602082019050818103600083015261191181846118be565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006119498261191e565b9050919050565b6119598161193e565b811461196457600080fd5b50565b60008135905061197681611950565b92915050565b6000819050919050565b61198f8161197c565b811461199a57600080fd5b50565b6000813590506119ac81611986565b92915050565b600080604083850312156119c9576119c8611919565b5b60006119d785828601611967565b92505060206119e88582860161199d565b9150509250929050565b60008115159050919050565b611a07816119f2565b82525050565b6000602082019050611a2260008301846119fe565b92915050565b600060208284031215611a3e57611a3d611919565b5b6000611a4c84828501611967565b91505092915050565b611a5e8161197c565b82525050565b6000602082019050611a796000830184611a55565b92915050565b600080600060608486031215611a9857611a97611919565b5b6000611aa686828701611967565b9350506020611ab786828701611967565b9250506040611ac88682870161199d565b9150509250925092565b600060ff82169050919050565b611ae881611ad2565b82525050565b6000602082019050611b036000830184611adf565b92915050565b611b128161193e565b82525050565b6000602082019050611b2d6000830184611b09565b92915050565b611b3c816119f2565b8114611b4757600080fd5b50565b600081359050611b5981611b33565b92915050565b60008060408385031215611b7657611b75611919565b5b6000611b8485828601611967565b9250506020611b9585828601611b4a565b9150509250929050565b60008060408385031215611bb657611bb5611919565b5b6000611bc48582860161199d565b9250506020611bd58582860161199d565b9150509250929050565b60008060408385031215611bf657611bf5611919565b5b6000611c0485828601611967565b9250506020611c1585828601611967565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611c6657607f821691505b602082108103611c7957611c78611c1f565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000611cdb602883611872565b9150611ce682611c7f565b604082019050919050565b60006020820190508181036000830152611d0a81611cce565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611d4b8261197c565b9150611d568361197c565b9250828201905080821115611d6e57611d6d611d11565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611daa602083611872565b9150611db582611d74565b602082019050919050565b60006020820190508181036000830152611dd981611d9d565b9050919050565b6000611deb8261197c565b9150611df68361197c565b9250828202611e048161197c565b91508282048414831517611e1b57611e1a611d11565b5b5092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000611e7e602583611872565b9150611e8982611e22565b604082019050919050565b60006020820190508181036000830152611ead81611e71565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000611f10602683611872565b9150611f1b82611eb4565b604082019050919050565b60006020820190508181036000830152611f3f81611f03565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000611fa2602483611872565b9150611fad82611f46565b604082019050919050565b60006020820190508181036000830152611fd181611f95565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612034602283611872565b915061203f82611fd8565b604082019050919050565b6000602082019050818103600083015261206381612027565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006120c6602583611872565b91506120d18261206a565b604082019050919050565b600060208201905081810360008301526120f5816120b9565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612158602383611872565b9150612163826120fc565b604082019050919050565b600060208201905081810360008301526121878161214b565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006121ea602683611872565b91506121f58261218e565b604082019050919050565b60006020820190508181036000830152612219816121dd565b9050919050565b7f5472616465206e6f74206f70656e000000000000000000000000000000000000600082015250565b6000612256600e83611872565b915061226182612220565b602082019050919050565b6000602082019050818103600083015261228581612249565b9050919050565b7f466f726269640000000000000000000000000000000000000000000000000000600082015250565b60006122c2600683611872565b91506122cd8261228c565b602082019050919050565b600060208201905081810360008301526122f1816122b5565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b6000612354603583611872565b915061235f826122f8565b604082019050919050565b6000602082019050818103600083015261238381612347565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b60006123e6603683611872565b91506123f18261238a565b604082019050919050565b60006020820190508181036000830152612415816123d9565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000612452601383611872565b915061245d8261241c565b602082019050919050565b6000602082019050818103600083015261248181612445565b905091905056fea26469706673582212205310c6755d668f4184fabb6c31444a83d1424f9fdb4c2d16913084c92288c73364736f6c63430008130033
Deployed Bytecode Sourcemap
19290:2870:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9303:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11470:169;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19473:63;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10423:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12121:492;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10265:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13022:215;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19542:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19398:33;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10594:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2775:103;;;:::i;:::-;;22034:121;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21738:167;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21913:109;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2124:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9522:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20012:218;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13740:413;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10934:175;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19352:35;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11172:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3033:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19442:24;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9303:100;9357:13;9390:5;9383:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9303:100;:::o;11470:169::-;11553:4;11570:39;11579:12;:10;:12::i;:::-;11593:7;11602:6;11570:8;:39::i;:::-;11627:4;11620:11;;11470:169;;;;:::o;19473:63::-;;;;;;;;;;;;;;;;;;;;;;:::o;10423:108::-;10484:7;10511:12;;10504:19;;10423:108;:::o;12121:492::-;12261:4;12278:36;12288:6;12296:9;12307:6;12278:9;:36::i;:::-;12327:24;12354:11;:19;12366:6;12354:19;;;;;;;;;;;;;;;:33;12374:12;:10;:12::i;:::-;12354:33;;;;;;;;;;;;;;;;12327:60;;12426:6;12406:16;:26;;12398:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;12513:57;12522:6;12530:12;:10;:12::i;:::-;12563:6;12544:16;:25;12513:8;:57::i;:::-;12601:4;12594:11;;;12121:492;;;;;:::o;10265:93::-;10323:5;10348:2;10341:9;;10265:93;:::o;13022:215::-;13110:4;13127:80;13136:12;:10;:12::i;:::-;13150:7;13196:10;13159:11;:25;13171:12;:10;:12::i;:::-;13159:25;;;;;;;;;;;;;;;:34;13185:7;13159:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;13127:8;:80::i;:::-;13225:4;13218:11;;13022:215;;;;:::o;19542:28::-;;;;;;;;;;;;;:::o;19398:33::-;;;;;;;;;;;;;:::o;10594:127::-;10668:7;10695:9;:18;10705:7;10695:18;;;;;;;;;;;;;;;;10688:25;;10594:127;;;:::o;2775:103::-;2355:12;:10;:12::i;:::-;2344:23;;:7;:5;:7::i;:::-;:23;;;2336:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2840:30:::1;2867:1;2840:18;:30::i;:::-;2775:103::o:0;22034:121::-;22086:4;2355:12;:10;:12::i;:::-;2344:23;;:7;:5;:7::i;:::-;:23;;;2336:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22120:5:::1;22103:14;;:22;;;;;;;;;;;;;;;;;;22143:4;22136:11;;22034:121:::0;:::o;21738:167::-;2355:12;:10;:12::i;:::-;2344:23;;:7;:5;:7::i;:::-;:23;;;2336:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21893:4:::1;21851:31;:39;21883:6;21851:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;21738:167:::0;;:::o;21913:109::-;2355:12;:10;:12::i;:::-;2344:23;;:7;:5;:7::i;:::-;:23;;;2336:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22010:4:::1;21996:13;;:18;;;;;;;;;;;;;;;;;;21913:109:::0;:::o;2124:87::-;2170:7;2197:6;;;;;;;;;;;2190:13;;2124:87;:::o;9522:104::-;9578:13;9611:7;9604:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9522:104;:::o;20012:218::-;2355:12;:10;:12::i;:::-;2344:23;;:7;:5;:7::i;:::-;:23;;;2336:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20161:6:::1;20142:15;:26;;;;:::i;:::-;20130:9;:38;;;;20215:6;20202:9;:20;;;;:::i;:::-;20179;:43;;;;20012:218:::0;;:::o;13740:413::-;13833:4;13850:24;13877:11;:25;13889:12;:10;:12::i;:::-;13877:25;;;;;;;;;;;;;;;:34;13903:7;13877:34;;;;;;;;;;;;;;;;13850:61;;13950:15;13930:16;:35;;13922:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;14043:67;14052:12;:10;:12::i;:::-;14066:7;14094:15;14075:16;:34;14043:8;:67::i;:::-;14141:4;14134:11;;;13740:413;;;;:::o;10934:175::-;11020:4;11037:42;11047:12;:10;:12::i;:::-;11061:9;11072:6;11037:9;:42::i;:::-;11097:4;11090:11;;10934:175;;;;:::o;19352:35::-;;;;:::o;11172:151::-;11261:7;11288:11;:18;11300:5;11288:18;;;;;;;;;;;;;;;:27;11307:7;11288:27;;;;;;;;;;;;;;;;11281:34;;11172:151;;;;:::o;3033:201::-;2355:12;:10;:12::i;:::-;2344:23;;:7;:5;:7::i;:::-;:23;;;2336:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3142:1:::1;3122:22;;:8;:22;;::::0;3114:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3198:28;3217:8;3198:18;:28::i;:::-;3033:201:::0;:::o;19442:24::-;;;;:::o;865:98::-;918:7;945:10;938:17;;865:98;:::o;17424:380::-;17577:1;17560:19;;:5;:19;;;17552:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17658:1;17639:21;;:7;:21;;;17631:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17742:6;17712:11;:18;17724:5;17712:18;;;;;;;;;;;;;;;:27;17731:7;17712:27;;;;;;;;;;;;;;;:36;;;;17780:7;17764:32;;17773:5;17764:32;;;17789:6;17764:32;;;;;;:::i;:::-;;;;;;;;17424:380;;;:::o;14643:733::-;14801:1;14783:20;;:6;:20;;;14775:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;14885:1;14864:23;;:9;:23;;;14856:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;14940:47;14961:6;14969:9;14980:6;14940:20;:47::i;:::-;15000:21;15024:9;:17;15034:6;15024:17;;;;;;;;;;;;;;;;15000:41;;15077:6;15060:13;:23;;15052:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;15198:6;15182:13;:22;15162:9;:17;15172:6;15162:17;;;;;;;;;;;;;;;:42;;;;15250:6;15226:9;:20;15236:9;15226:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;15291:9;15274:35;;15283:6;15274:35;;;15302:6;15274:35;;;;;;:::i;:::-;;;;;;;;15322:46;15342:6;15350:9;15361:6;15322:19;:46::i;:::-;14764:612;14643:733;;;:::o;3394:191::-;3468:16;3487:6;;;;;;;;;;;3468:25;;3513:8;3504:6;;:17;;;;;;;;;;;;;;;;;;3568:8;3537:40;;3558:8;3537:40;;;;;;;;;;;;3457:128;3394:191;:::o;20238:1492::-;20400:14;;;;;;;;;;;20396:1323;;;20461:7;:5;:7::i;:::-;20453:15;;:4;:15;;;;:49;;;;;20495:7;:5;:7::i;:::-;20489:13;;:2;:13;;;;20453:49;:86;;;;;20537:1;20523:16;;:2;:16;;;;20453:86;:128;;;;;20574:6;20560:21;;:2;:21;;;;20453:128;20431:1276;;;20659:1;20636:25;;:13;;;;;;;;;;;:25;;;20633:136;;20693:7;:5;:7::i;:::-;20685:15;;:4;:15;;;:32;;;;;20710:7;:5;:7::i;:::-;20704:13;;:2;:13;;;20685:32;20677:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;20750:8;;20633:136;20838:13;;;;;;;;;;;20831:20;;:4;:20;;;:80;;;;;20876:31;:35;20908:2;20876:35;;;;;;;;;;;;;;;;;;;;;;;;;20875:36;20831:80;20805:887;;;20985:9;;20975:6;20953:19;20969:2;20953:15;:19::i;:::-;:28;;;;:::i;:::-;:41;;20945:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;21066:20;;21056:6;:30;;21022:169;;;;;;;;;;;;:::i;:::-;;;;;;;;;20805:887;;;21278:13;;;;;;;;;;;21274:17;;:2;:17;;;:80;;;;;21317:31;:37;21349:4;21317:37;;;;;;;;;;;;;;;;;;;;;;;;;21316:38;21274:80;21249:443;;;21415:20;;21405:6;:30;;21397:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;21249:443;;;21545:31;:35;21577:2;21545:35;;;;;;;;;;;;;;;;;;;;;;;;;21540:152;;21639:9;;21622:13;21632:2;21622:9;:13::i;:::-;21613:6;:22;;;;:::i;:::-;:35;;21605:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21540:152;21249:443;20805:887;20431:1276;20396:1323;20238:1492;;;;:::o;19133:124::-;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:329::-;3505:6;3554:2;3542:9;3533:7;3529:23;3525:32;3522:119;;;3560:79;;:::i;:::-;3522:119;3680:1;3705:53;3750:7;3741:6;3730:9;3726:22;3705:53;:::i;:::-;3695:63;;3651:117;3446:329;;;;:::o;3781:118::-;3868:24;3886:5;3868:24;:::i;:::-;3863:3;3856:37;3781:118;;:::o;3905:222::-;3998:4;4036:2;4025:9;4021:18;4013:26;;4049:71;4117:1;4106:9;4102:17;4093:6;4049:71;:::i;:::-;3905:222;;;;:::o;4133:619::-;4210:6;4218;4226;4275:2;4263:9;4254:7;4250:23;4246:32;4243:119;;;4281:79;;:::i;:::-;4243:119;4401:1;4426:53;4471:7;4462:6;4451:9;4447:22;4426:53;:::i;:::-;4416:63;;4372:117;4528:2;4554:53;4599:7;4590:6;4579:9;4575:22;4554:53;:::i;:::-;4544:63;;4499:118;4656:2;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4627:118;4133:619;;;;;:::o;4758:86::-;4793:7;4833:4;4826:5;4822:16;4811:27;;4758:86;;;:::o;4850:112::-;4933:22;4949:5;4933:22;:::i;:::-;4928:3;4921:35;4850:112;;:::o;4968:214::-;5057:4;5095:2;5084:9;5080:18;5072:26;;5108:67;5172:1;5161:9;5157:17;5148:6;5108:67;:::i;:::-;4968:214;;;;:::o;5188:118::-;5275:24;5293:5;5275:24;:::i;:::-;5270:3;5263:37;5188:118;;:::o;5312:222::-;5405:4;5443:2;5432:9;5428:18;5420:26;;5456:71;5524:1;5513:9;5509:17;5500:6;5456:71;:::i;:::-;5312:222;;;;:::o;5540:116::-;5610:21;5625:5;5610:21;:::i;:::-;5603:5;5600:32;5590:60;;5646:1;5643;5636:12;5590:60;5540:116;:::o;5662:133::-;5705:5;5743:6;5730:20;5721:29;;5759:30;5783:5;5759:30;:::i;:::-;5662:133;;;;:::o;5801:468::-;5866:6;5874;5923:2;5911:9;5902:7;5898:23;5894:32;5891:119;;;5929:79;;:::i;:::-;5891:119;6049:1;6074:53;6119:7;6110:6;6099:9;6095:22;6074:53;:::i;:::-;6064:63;;6020:117;6176:2;6202:50;6244:7;6235:6;6224:9;6220:22;6202:50;:::i;:::-;6192:60;;6147:115;5801:468;;;;;:::o;6275:474::-;6343:6;6351;6400:2;6388:9;6379:7;6375:23;6371:32;6368:119;;;6406:79;;:::i;:::-;6368:119;6526:1;6551:53;6596:7;6587:6;6576:9;6572:22;6551:53;:::i;:::-;6541:63;;6497:117;6653:2;6679:53;6724:7;6715:6;6704:9;6700:22;6679:53;:::i;:::-;6669:63;;6624:118;6275:474;;;;;:::o;6755:::-;6823:6;6831;6880:2;6868:9;6859:7;6855:23;6851:32;6848:119;;;6886:79;;:::i;:::-;6848:119;7006:1;7031:53;7076:7;7067:6;7056:9;7052:22;7031:53;:::i;:::-;7021:63;;6977:117;7133:2;7159:53;7204:7;7195:6;7184:9;7180:22;7159:53;:::i;:::-;7149:63;;7104:118;6755:474;;;;;:::o;7235:180::-;7283:77;7280:1;7273:88;7380:4;7377:1;7370:15;7404:4;7401:1;7394:15;7421:320;7465:6;7502:1;7496:4;7492:12;7482:22;;7549:1;7543:4;7539:12;7570:18;7560:81;;7626:4;7618:6;7614:17;7604:27;;7560:81;7688:2;7680:6;7677:14;7657:18;7654:38;7651:84;;7707:18;;:::i;:::-;7651:84;7472:269;7421:320;;;:::o;7747:227::-;7887:34;7883:1;7875:6;7871:14;7864:58;7956:10;7951:2;7943:6;7939:15;7932:35;7747:227;:::o;7980:366::-;8122:3;8143:67;8207:2;8202:3;8143:67;:::i;:::-;8136:74;;8219:93;8308:3;8219:93;:::i;:::-;8337:2;8332:3;8328:12;8321:19;;7980:366;;;:::o;8352:419::-;8518:4;8556:2;8545:9;8541:18;8533:26;;8605:9;8599:4;8595:20;8591:1;8580:9;8576:17;8569:47;8633:131;8759:4;8633:131;:::i;:::-;8625:139;;8352:419;;;:::o;8777:180::-;8825:77;8822:1;8815:88;8922:4;8919:1;8912:15;8946:4;8943:1;8936:15;8963:191;9003:3;9022:20;9040:1;9022:20;:::i;:::-;9017:25;;9056:20;9074:1;9056:20;:::i;:::-;9051:25;;9099:1;9096;9092:9;9085:16;;9120:3;9117:1;9114:10;9111:36;;;9127:18;;:::i;:::-;9111:36;8963:191;;;;:::o;9160:182::-;9300:34;9296:1;9288:6;9284:14;9277:58;9160:182;:::o;9348:366::-;9490:3;9511:67;9575:2;9570:3;9511:67;:::i;:::-;9504:74;;9587:93;9676:3;9587:93;:::i;:::-;9705:2;9700:3;9696:12;9689:19;;9348:366;;;:::o;9720:419::-;9886:4;9924:2;9913:9;9909:18;9901:26;;9973:9;9967:4;9963:20;9959:1;9948:9;9944:17;9937:47;10001:131;10127:4;10001:131;:::i;:::-;9993:139;;9720:419;;;:::o;10145:410::-;10185:7;10208:20;10226:1;10208:20;:::i;:::-;10203:25;;10242:20;10260:1;10242:20;:::i;:::-;10237:25;;10297:1;10294;10290:9;10319:30;10337:11;10319:30;:::i;:::-;10308:41;;10498:1;10489:7;10485:15;10482:1;10479:22;10459:1;10452:9;10432:83;10409:139;;10528:18;;:::i;:::-;10409:139;10193:362;10145:410;;;;:::o;10561:224::-;10701:34;10697:1;10689:6;10685:14;10678:58;10770:7;10765:2;10757:6;10753:15;10746:32;10561:224;:::o;10791:366::-;10933:3;10954:67;11018:2;11013:3;10954:67;:::i;:::-;10947:74;;11030:93;11119:3;11030:93;:::i;:::-;11148:2;11143:3;11139:12;11132:19;;10791:366;;;:::o;11163:419::-;11329:4;11367:2;11356:9;11352:18;11344:26;;11416:9;11410:4;11406:20;11402:1;11391:9;11387:17;11380:47;11444:131;11570:4;11444:131;:::i;:::-;11436:139;;11163:419;;;:::o;11588:225::-;11728:34;11724:1;11716:6;11712:14;11705:58;11797:8;11792:2;11784:6;11780:15;11773:33;11588:225;:::o;11819:366::-;11961:3;11982:67;12046:2;12041:3;11982:67;:::i;:::-;11975:74;;12058:93;12147:3;12058:93;:::i;:::-;12176:2;12171:3;12167:12;12160:19;;11819:366;;;:::o;12191:419::-;12357:4;12395:2;12384:9;12380:18;12372:26;;12444:9;12438:4;12434:20;12430:1;12419:9;12415:17;12408:47;12472:131;12598:4;12472:131;:::i;:::-;12464:139;;12191:419;;;:::o;12616:223::-;12756:34;12752:1;12744:6;12740:14;12733:58;12825:6;12820:2;12812:6;12808:15;12801:31;12616:223;:::o;12845:366::-;12987:3;13008:67;13072:2;13067:3;13008:67;:::i;:::-;13001:74;;13084:93;13173:3;13084:93;:::i;:::-;13202:2;13197:3;13193:12;13186:19;;12845:366;;;:::o;13217:419::-;13383:4;13421:2;13410:9;13406:18;13398:26;;13470:9;13464:4;13460:20;13456:1;13445:9;13441:17;13434:47;13498:131;13624:4;13498:131;:::i;:::-;13490:139;;13217:419;;;:::o;13642:221::-;13782:34;13778:1;13770:6;13766:14;13759:58;13851:4;13846:2;13838:6;13834:15;13827:29;13642:221;:::o;13869:366::-;14011:3;14032:67;14096:2;14091:3;14032:67;:::i;:::-;14025:74;;14108:93;14197:3;14108:93;:::i;:::-;14226:2;14221:3;14217:12;14210:19;;13869:366;;;:::o;14241:419::-;14407:4;14445:2;14434:9;14430:18;14422:26;;14494:9;14488:4;14484:20;14480:1;14469:9;14465:17;14458:47;14522:131;14648:4;14522:131;:::i;:::-;14514:139;;14241:419;;;:::o;14666:224::-;14806:34;14802:1;14794:6;14790:14;14783:58;14875:7;14870:2;14862:6;14858:15;14851:32;14666:224;:::o;14896:366::-;15038:3;15059:67;15123:2;15118:3;15059:67;:::i;:::-;15052:74;;15135:93;15224:3;15135:93;:::i;:::-;15253:2;15248:3;15244:12;15237:19;;14896:366;;;:::o;15268:419::-;15434:4;15472:2;15461:9;15457:18;15449:26;;15521:9;15515:4;15511:20;15507:1;15496:9;15492:17;15485:47;15549:131;15675:4;15549:131;:::i;:::-;15541:139;;15268:419;;;:::o;15693:222::-;15833:34;15829:1;15821:6;15817:14;15810:58;15902:5;15897:2;15889:6;15885:15;15878:30;15693:222;:::o;15921:366::-;16063:3;16084:67;16148:2;16143:3;16084:67;:::i;:::-;16077:74;;16160:93;16249:3;16160:93;:::i;:::-;16278:2;16273:3;16269:12;16262:19;;15921:366;;;:::o;16293:419::-;16459:4;16497:2;16486:9;16482:18;16474:26;;16546:9;16540:4;16536:20;16532:1;16521:9;16517:17;16510:47;16574:131;16700:4;16574:131;:::i;:::-;16566:139;;16293:419;;;:::o;16718:225::-;16858:34;16854:1;16846:6;16842:14;16835:58;16927:8;16922:2;16914:6;16910:15;16903:33;16718:225;:::o;16949:366::-;17091:3;17112:67;17176:2;17171:3;17112:67;:::i;:::-;17105:74;;17188:93;17277:3;17188:93;:::i;:::-;17306:2;17301:3;17297:12;17290:19;;16949:366;;;:::o;17321:419::-;17487:4;17525:2;17514:9;17510:18;17502:26;;17574:9;17568:4;17564:20;17560:1;17549:9;17545:17;17538:47;17602:131;17728:4;17602:131;:::i;:::-;17594:139;;17321:419;;;:::o;17746:164::-;17886:16;17882:1;17874:6;17870:14;17863:40;17746:164;:::o;17916:366::-;18058:3;18079:67;18143:2;18138:3;18079:67;:::i;:::-;18072:74;;18155:93;18244:3;18155:93;:::i;:::-;18273:2;18268:3;18264:12;18257:19;;17916:366;;;:::o;18288:419::-;18454:4;18492:2;18481:9;18477:18;18469:26;;18541:9;18535:4;18531:20;18527:1;18516:9;18512:17;18505:47;18569:131;18695:4;18569:131;:::i;:::-;18561:139;;18288:419;;;:::o;18713:156::-;18853:8;18849:1;18841:6;18837:14;18830:32;18713:156;:::o;18875:365::-;19017:3;19038:66;19102:1;19097:3;19038:66;:::i;:::-;19031:73;;19113:93;19202:3;19113:93;:::i;:::-;19231:2;19226:3;19222:12;19215:19;;18875:365;;;:::o;19246:419::-;19412:4;19450:2;19439:9;19435:18;19427:26;;19499:9;19493:4;19489:20;19485:1;19474:9;19470:17;19463:47;19527:131;19653:4;19527:131;:::i;:::-;19519:139;;19246:419;;;:::o;19671:240::-;19811:34;19807:1;19799:6;19795:14;19788:58;19880:23;19875:2;19867:6;19863:15;19856:48;19671:240;:::o;19917:366::-;20059:3;20080:67;20144:2;20139:3;20080:67;:::i;:::-;20073:74;;20156:93;20245:3;20156:93;:::i;:::-;20274:2;20269:3;20265:12;20258:19;;19917:366;;;:::o;20289:419::-;20455:4;20493:2;20482:9;20478:18;20470:26;;20542:9;20536:4;20532:20;20528:1;20517:9;20513:17;20506:47;20570:131;20696:4;20570:131;:::i;:::-;20562:139;;20289:419;;;:::o;20714:241::-;20854:34;20850:1;20842:6;20838:14;20831:58;20923:24;20918:2;20910:6;20906:15;20899:49;20714:241;:::o;20961:366::-;21103:3;21124:67;21188:2;21183:3;21124:67;:::i;:::-;21117:74;;21200:93;21289:3;21200:93;:::i;:::-;21318:2;21313:3;21309:12;21302:19;;20961:366;;;:::o;21333:419::-;21499:4;21537:2;21526:9;21522:18;21514:26;;21586:9;21580:4;21576:20;21572:1;21561:9;21557:17;21550:47;21614:131;21740:4;21614:131;:::i;:::-;21606:139;;21333:419;;;:::o;21758:169::-;21898:21;21894:1;21886:6;21882:14;21875:45;21758:169;:::o;21933:366::-;22075:3;22096:67;22160:2;22155:3;22096:67;:::i;:::-;22089:74;;22172:93;22261:3;22172:93;:::i;:::-;22290:2;22285:3;22281:12;22274:19;;21933:366;;;:::o;22305:419::-;22471:4;22509:2;22498:9;22494:18;22486:26;;22558:9;22552:4;22548:20;22544:1;22533:9;22529:17;22522:47;22586:131;22712:4;22586:131;:::i;:::-;22578:139;;22305:419;;;:::o
Swarm Source
ipfs://5310c6755d668f4184fabb6c31444a83d1424f9fdb4c2d16913084c92288c733
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.