ERC-20
Overview
Max Total Supply
10,000 ERC-20: Bitcoinism
Holders
284
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
4.793943108878389751 ERC-20: BitcoinismValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
Bitcoinism
Compiler Version
v0.8.25+commit.b61c2a91
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-09-05 */ /* */ // Sources flattened with hardhat v2.7.0 https://hardhat.org // File @openzeppelin/contracts/utils/[email protected] // SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.0 (utils/Context.sol) pragma solidity ^0.8.0; /** * @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) pragma solidity ^0.8.0; /** * @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) pragma solidity ^0.8.0; /** * @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) pragma solidity ^0.8.0; /** * @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) pragma solidity ^0.8.0; /** * @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 {} } // File contracts/PepeToken.sol pragma solidity ^0.8.0; contract Bitcoinism is Ownable, ERC20 { bool public limited = true; uint256 private _totalSupply = 10000 * 1e18; uint256 public maxHoldingAmount = 5 * 1e18; uint256 public minHoldingAmount = 0; address public uniswapV2Pair; string public attributes; uint256 public initialPercentage = 50; // 0.05% (50 basis points) uint256 public increment = 10; // 0.01% (10 basis points) uint256 public multiplier = 15; // 1.5x multiplier in basis points (1.5 * 10) uint256 public lastBlock; uint256 public currentMaxPercentage; constructor() ERC20("Bitcoinism", unicode"₿") { _mint(msg.sender, _totalSupply); currentMaxPercentage = initialPercentage; lastBlock = block.number; } function start( address _uniswapV2Pair ) external onlyOwner { uniswapV2Pair = _uniswapV2Pair; } function setLimited(bool _limited) external onlyOwner { limited = _limited; } function updateMaxPercentage() internal { if (block.number > lastBlock) { uint256 blocksPassed = block.number - lastBlock; currentMaxPercentage += increment * blocksPassed * multiplier / 10; lastBlock = block.number; } } function getMaxTxAmount() public view returns (uint256) { return (_totalSupply * currentMaxPercentage) / 1000000; // Dividing by 1,000,000 for basis points (0.01%) } function _beforeTokenTransfer( address from, address to, uint256 amount ) override internal virtual { if (uniswapV2Pair == address(0)) { require(from == owner() || to == owner(), "Trading has not started"); return; } updateMaxPercentage(); if (limited && from == uniswapV2Pair) { uint256 maxTxAmount = getMaxTxAmount(); require(amount <= maxTxAmount, "Exceeds max transaction limit"); require( balanceOf(to) + amount <= maxHoldingAmount && balanceOf(to) + amount >= minHoldingAmount, "Forbid" ); } } function burn(uint256 value) external { _burn(msg.sender, value); } function add_Accessoires(string memory data) external onlyOwner() { attributes = string(abi.encodePacked(attributes, data)); } function add_Body(string memory data) external onlyOwner() { attributes = string(abi.encodePacked(attributes, data)); } function add_Color_Base_Step(string memory data) external onlyOwner() { attributes = string(abi.encodePacked(attributes, data)); } function add_Eyes(string memory data) external onlyOwner() { attributes = string(abi.encodePacked(attributes, data)); } function add_Eyes_Base(string memory data) external onlyOwner() { attributes = string(abi.encodePacked(attributes, data)); } function set_Facial_Hair(string memory data) external onlyOwner() { attributes = string(abi.encodePacked(attributes, data)); } function add_Hair(string memory data) external onlyOwner() { attributes = string(abi.encodePacked(attributes, data)); } function add_Hat(string memory data) external onlyOwner() { attributes = string(abi.encodePacked(attributes, data)); } function add_Max_Base(string memory data) external onlyOwner() { attributes = string(abi.encodePacked(attributes, data)); } function add_Mouth(string memory data) external onlyOwner() { attributes = string(abi.encodePacked(attributes, data)); } function add_Nose(string memory data) external onlyOwner() { attributes = string(abi.encodePacked(attributes, data)); } function add_Shirt_1(string memory data) external onlyOwner() { attributes = string(abi.encodePacked(attributes, data)); } function add_Shirt_2(string memory data) external onlyOwner() { attributes = string(abi.encodePacked(attributes, data)); } function add_Shirt_3(string memory data) external onlyOwner() { attributes = string(abi.encodePacked(attributes, data)); } }
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":"string","name":"data","type":"string"}],"name":"add_Accessoires","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"data","type":"string"}],"name":"add_Body","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"data","type":"string"}],"name":"add_Color_Base_Step","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"data","type":"string"}],"name":"add_Eyes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"data","type":"string"}],"name":"add_Eyes_Base","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"data","type":"string"}],"name":"add_Hair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"data","type":"string"}],"name":"add_Hat","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"data","type":"string"}],"name":"add_Max_Base","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"data","type":"string"}],"name":"add_Mouth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"data","type":"string"}],"name":"add_Nose","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"data","type":"string"}],"name":"add_Shirt_1","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"data","type":"string"}],"name":"add_Shirt_2","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"data","type":"string"}],"name":"add_Shirt_3","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"attributes","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"currentMaxPercentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getMaxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"increment","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"initialPercentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"multiplier","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":[{"internalType":"bool","name":"_limited","type":"bool"}],"name":"setLimited","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"data","type":"string"}],"name":"set_Facial_Hair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_uniswapV2Pair","type":"address"}],"name":"start","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"}]
Contract Creation Code
6080604052600160065f6101000a81548160ff02191690831515021790555069021e19e0c9bab2400000600755674563918244f400006008555f6009556032600c55600a600d55600f600e55348015610056575f80fd5b506040518060400160405280600a81526020017f426974636f696e69736d000000000000000000000000000000000000000000008152506040518060400160405280600381526020017fe282bf00000000000000000000000000000000000000000000000000000000008152506100df6100d461012860201b60201c565b61012f60201b60201c565b81600490816100ee91906108fa565b5080600590816100fe91906108fa565b505050610113336007546101f060201b60201c565b600c5460108190555043600f81905550610cd2565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361025e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161025590610a23565b60405180910390fd5b61026f5f838361035460201b60201c565b8060035f8282546102809190610a6e565b925050819055508060015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546102d39190610a6e565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516103379190610ab0565b60405180910390a36103505f83836105c660201b60201c565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff16600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361046b576103b66105cb60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148061042757506103f86105cb60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b610466576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161045d90610b13565b60405180910390fd5b6105c1565b6104796105f260201b60201c565b60065f9054906101000a900460ff1680156104e05750600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b156105c0575f6104f461065660201b60201c565b905080821115610539576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161053090610b7b565b60405180910390fd5b6008548261054c8561067a60201b60201c565b6105569190610a6e565b1115801561057f5750600954826105728561067a60201b60201c565b61057c9190610a6e565b10155b6105be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105b590610be3565b60405180910390fd5b505b5b505050565b505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f54431115610654575f600f544361060b9190610c01565b9050600a600e5482600d546106209190610c34565b61062a9190610c34565b6106349190610ca2565b60105f8282546106449190610a6e565b9250508190555043600f81905550505b565b5f620f424060105460075461066b9190610c34565b6106759190610ca2565b905090565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061073b57607f821691505b60208210810361074e5761074d6106f7565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026107b07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610775565b6107ba8683610775565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6107fe6107f96107f4846107d2565b6107db565b6107d2565b9050919050565b5f819050919050565b610817836107e4565b61082b61082382610805565b848454610781565b825550505050565b5f90565b61083f610833565b61084a81848461080e565b505050565b5b8181101561086d576108625f82610837565b600181019050610850565b5050565b601f8211156108b25761088381610754565b61088c84610766565b8101602085101561089b578190505b6108af6108a785610766565b83018261084f565b50505b505050565b5f82821c905092915050565b5f6108d25f19846008026108b7565b1980831691505092915050565b5f6108ea83836108c3565b9150826002028217905092915050565b610903826106c0565b67ffffffffffffffff81111561091c5761091b6106ca565b5b6109268254610724565b610931828285610871565b5f60209050601f831160018114610962575f8415610950578287015190505b61095a85826108df565b8655506109c1565b601f19841661097086610754565b5f5b8281101561099757848901518255600182019150602085019450602081019050610972565b868310156109b457848901516109b0601f8916826108c3565b8355505b6001600288020188555050505b505050505050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f610a0d601f836109c9565b9150610a18826109d9565b602082019050919050565b5f6020820190508181035f830152610a3a81610a01565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610a78826107d2565b9150610a83836107d2565b9250828201905080821115610a9b57610a9a610a41565b5b92915050565b610aaa816107d2565b82525050565b5f602082019050610ac35f830184610aa1565b92915050565b7f54726164696e6720686173206e6f7420737461727465640000000000000000005f82015250565b5f610afd6017836109c9565b9150610b0882610ac9565b602082019050919050565b5f6020820190508181035f830152610b2a81610af1565b9050919050565b7f45786365656473206d6178207472616e73616374696f6e206c696d69740000005f82015250565b5f610b65601d836109c9565b9150610b7082610b31565b602082019050919050565b5f6020820190508181035f830152610b9281610b59565b9050919050565b7f466f7262696400000000000000000000000000000000000000000000000000005f82015250565b5f610bcd6006836109c9565b9150610bd882610b99565b602082019050919050565b5f6020820190508181035f830152610bfa81610bc1565b9050919050565b5f610c0b826107d2565b9150610c16836107d2565b9250828203905081811115610c2e57610c2d610a41565b5b92915050565b5f610c3e826107d2565b9150610c49836107d2565b9250828202610c57816107d2565b91508282048414831517610c6e57610c6d610a41565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f610cac826107d2565b9150610cb7836107d2565b925082610cc757610cc6610c75565b5b828204905092915050565b61349b80610cdf5f395ff3fe608060405234801561000f575f80fd5b506004361061025c575f3560e01c8063860a32ec11610144578063aa26327b116100c1578063db79a6a011610085578063db79a6a0146106d6578063dcc0d42f146106f2578063dd0b281e1461070e578063dd62ed3e1461072a578063ec4a05ba1461075a578063f2fde38b146107765761025c565b8063aa26327b14610646578063b2a70bf514610662578063b798fd511461067e578063cd4ad73a1461069c578063d09de08a146106b85761025c565b80639bdaf938116101085780639bdaf938146105925780639e8411d9146105ae578063a2bd83fd146105ca578063a457c2d7146105e6578063a9059cbb146106165761025c565b8063860a32ec146104fc57806389f9a1d31461051a5780638da5cb5b1461053857806393e1ea411461055657806395d89b41146105745761025c565b806339509351116101dd57806369b6757a116101a157806369b6757a1461044c5780636d8b05271461046a57806370a0823114610488578063715018a6146104b85780637db99d8b146104c2578063806b984f146104de5761025c565b806339509351146103aa57806342966c68146103da57806349bd5a5e146103f657806369952ef31461041457806369a14a6f146104305761025c565b80631b3ed722116102245780631b3ed72214610306578063227313961461032457806323b872dd14610340578063313ce567146103705780633829cce61461038e5761025c565b806306fdde0314610260578063095ea7b31461027e57806310f489e9146102ae57806318160ddd146102ca5780631ab99e12146102e8575b5f80fd5b610268610792565b6040516102759190612403565b60405180910390f35b610298600480360381019061029391906124c1565b610822565b6040516102a59190612519565b60405180910390f35b6102c860048036038101906102c3919061265e565b61083f565b005b6102d26108f0565b6040516102df91906126b4565b60405180910390f35b6102f06108f9565b6040516102fd91906126b4565b60405180910390f35b61030e6108ff565b60405161031b91906126b4565b60405180910390f35b61033e600480360381019061033991906126f7565b610905565b005b61035a60048036038101906103559190612722565b61099d565b6040516103679190612519565b60405180910390f35b610378610a8f565b604051610385919061278d565b60405180910390f35b6103a860048036038101906103a3919061265e565b610a97565b005b6103c460048036038101906103bf91906124c1565b610b48565b6040516103d19190612519565b60405180910390f35b6103f460048036038101906103ef91906127a6565b610bef565b005b6103fe610bfc565b60405161040b91906127e0565b60405180910390f35b61042e6004803603810190610429919061265e565b610c21565b005b61044a6004803603810190610445919061265e565b610cd2565b005b610454610d83565b60405161046191906126b4565b60405180910390f35b610472610d89565b60405161047f91906126b4565b60405180910390f35b6104a2600480360381019061049d91906127f9565b610dad565b6040516104af91906126b4565b60405180910390f35b6104c0610df3565b005b6104dc60048036038101906104d7919061265e565b610e7a565b005b6104e6610f2b565b6040516104f391906126b4565b60405180910390f35b610504610f31565b6040516105119190612519565b60405180910390f35b610522610f43565b60405161052f91906126b4565b60405180910390f35b610540610f49565b60405161054d91906127e0565b60405180910390f35b61055e610f70565b60405161056b9190612403565b60405180910390f35b61057c610ffc565b6040516105899190612403565b60405180910390f35b6105ac60048036038101906105a7919061265e565b61108c565b005b6105c860048036038101906105c3919061265e565b61113d565b005b6105e460048036038101906105df919061265e565b6111ee565b005b61060060048036038101906105fb91906124c1565b61129f565b60405161060d9190612519565b60405180910390f35b610630600480360381019061062b91906124c1565b611385565b60405161063d9190612519565b60405180910390f35b610660600480360381019061065b919061265e565b6113a2565b005b61067c6004803603810190610677919061265e565b611453565b005b610686611504565b60405161069391906126b4565b60405180910390f35b6106b660048036038101906106b1919061265e565b61150a565b005b6106c06115bb565b6040516106cd91906126b4565b60405180910390f35b6106f060048036038101906106eb919061265e565b6115c1565b005b61070c6004803603810190610707919061265e565b611672565b005b610728600480360381019061072391906127f9565b611723565b005b610744600480360381019061073f9190612824565b6117e2565b60405161075191906126b4565b60405180910390f35b610774600480360381019061076f919061265e565b611864565b005b610790600480360381019061078b91906127f9565b611915565b005b6060600480546107a19061288f565b80601f01602080910402602001604051908101604052809291908181526020018280546107cd9061288f565b80156108185780601f106107ef57610100808354040283529160200191610818565b820191905f5260205f20905b8154815290600101906020018083116107fb57829003601f168201915b5050505050905090565b5f61083561082e611a0b565b8484611a12565b6001905092915050565b610847611a0b565b73ffffffffffffffffffffffffffffffffffffffff16610865610f49565b73ffffffffffffffffffffffffffffffffffffffff16146108bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b290612909565b60405180910390fd5b600b816040516020016108cf9291906129f3565b604051602081830303815290604052600b90816108ec9190612ba1565b5050565b5f600354905090565b60095481565b600e5481565b61090d611a0b565b73ffffffffffffffffffffffffffffffffffffffff1661092b610f49565b73ffffffffffffffffffffffffffffffffffffffff1614610981576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097890612909565b60405180910390fd5b8060065f6101000a81548160ff02191690831515021790555050565b5f6109a9848484611bd5565b5f60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6109f0611a0b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610a6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6690612ce0565b60405180910390fd5b610a8385610a7b611a0b565b858403611a12565b60019150509392505050565b5f6012905090565b610a9f611a0b565b73ffffffffffffffffffffffffffffffffffffffff16610abd610f49565b73ffffffffffffffffffffffffffffffffffffffff1614610b13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0a90612909565b60405180910390fd5b600b81604051602001610b279291906129f3565b604051602081830303815290604052600b9081610b449190612ba1565b5050565b5f610be5610b54611a0b565b848460025f610b61611a0b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610be09190612d2b565b611a12565b6001905092915050565b610bf93382611e4d565b50565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610c29611a0b565b73ffffffffffffffffffffffffffffffffffffffff16610c47610f49565b73ffffffffffffffffffffffffffffffffffffffff1614610c9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9490612909565b60405180910390fd5b600b81604051602001610cb19291906129f3565b604051602081830303815290604052600b9081610cce9190612ba1565b5050565b610cda611a0b565b73ffffffffffffffffffffffffffffffffffffffff16610cf8610f49565b73ffffffffffffffffffffffffffffffffffffffff1614610d4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4590612909565b60405180910390fd5b600b81604051602001610d629291906129f3565b604051602081830303815290604052600b9081610d7f9190612ba1565b5050565b60105481565b5f620f4240601054600754610d9e9190612d5e565b610da89190612dcc565b905090565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610dfb611a0b565b73ffffffffffffffffffffffffffffffffffffffff16610e19610f49565b73ffffffffffffffffffffffffffffffffffffffff1614610e6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6690612909565b60405180910390fd5b610e785f61201b565b565b610e82611a0b565b73ffffffffffffffffffffffffffffffffffffffff16610ea0610f49565b73ffffffffffffffffffffffffffffffffffffffff1614610ef6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eed90612909565b60405180910390fd5b600b81604051602001610f0a9291906129f3565b604051602081830303815290604052600b9081610f279190612ba1565b5050565b600f5481565b60065f9054906101000a900460ff1681565b60085481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600b8054610f7d9061288f565b80601f0160208091040260200160405190810160405280929190818152602001828054610fa99061288f565b8015610ff45780601f10610fcb57610100808354040283529160200191610ff4565b820191905f5260205f20905b815481529060010190602001808311610fd757829003601f168201915b505050505081565b60606005805461100b9061288f565b80601f01602080910402602001604051908101604052809291908181526020018280546110379061288f565b80156110825780601f1061105957610100808354040283529160200191611082565b820191905f5260205f20905b81548152906001019060200180831161106557829003601f168201915b5050505050905090565b611094611a0b565b73ffffffffffffffffffffffffffffffffffffffff166110b2610f49565b73ffffffffffffffffffffffffffffffffffffffff1614611108576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ff90612909565b60405180910390fd5b600b8160405160200161111c9291906129f3565b604051602081830303815290604052600b90816111399190612ba1565b5050565b611145611a0b565b73ffffffffffffffffffffffffffffffffffffffff16611163610f49565b73ffffffffffffffffffffffffffffffffffffffff16146111b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b090612909565b60405180910390fd5b600b816040516020016111cd9291906129f3565b604051602081830303815290604052600b90816111ea9190612ba1565b5050565b6111f6611a0b565b73ffffffffffffffffffffffffffffffffffffffff16611214610f49565b73ffffffffffffffffffffffffffffffffffffffff161461126a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126190612909565b60405180910390fd5b600b8160405160200161127e9291906129f3565b604051602081830303815290604052600b908161129b9190612ba1565b5050565b5f8060025f6112ac611a0b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015611366576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135d90612e6c565b60405180910390fd5b61137a611371611a0b565b85858403611a12565b600191505092915050565b5f611398611391611a0b565b8484611bd5565b6001905092915050565b6113aa611a0b565b73ffffffffffffffffffffffffffffffffffffffff166113c8610f49565b73ffffffffffffffffffffffffffffffffffffffff161461141e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141590612909565b60405180910390fd5b600b816040516020016114329291906129f3565b604051602081830303815290604052600b908161144f9190612ba1565b5050565b61145b611a0b565b73ffffffffffffffffffffffffffffffffffffffff16611479610f49565b73ffffffffffffffffffffffffffffffffffffffff16146114cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c690612909565b60405180910390fd5b600b816040516020016114e39291906129f3565b604051602081830303815290604052600b90816115009190612ba1565b5050565b600c5481565b611512611a0b565b73ffffffffffffffffffffffffffffffffffffffff16611530610f49565b73ffffffffffffffffffffffffffffffffffffffff1614611586576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157d90612909565b60405180910390fd5b600b8160405160200161159a9291906129f3565b604051602081830303815290604052600b90816115b79190612ba1565b5050565b600d5481565b6115c9611a0b565b73ffffffffffffffffffffffffffffffffffffffff166115e7610f49565b73ffffffffffffffffffffffffffffffffffffffff161461163d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163490612909565b60405180910390fd5b600b816040516020016116519291906129f3565b604051602081830303815290604052600b908161166e9190612ba1565b5050565b61167a611a0b565b73ffffffffffffffffffffffffffffffffffffffff16611698610f49565b73ffffffffffffffffffffffffffffffffffffffff16146116ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e590612909565b60405180910390fd5b600b816040516020016117029291906129f3565b604051602081830303815290604052600b908161171f9190612ba1565b5050565b61172b611a0b565b73ffffffffffffffffffffffffffffffffffffffff16611749610f49565b73ffffffffffffffffffffffffffffffffffffffff161461179f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179690612909565b60405180910390fd5b80600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61186c611a0b565b73ffffffffffffffffffffffffffffffffffffffff1661188a610f49565b73ffffffffffffffffffffffffffffffffffffffff16146118e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d790612909565b60405180910390fd5b600b816040516020016118f49291906129f3565b604051602081830303815290604052600b90816119119190612ba1565b5050565b61191d611a0b565b73ffffffffffffffffffffffffffffffffffffffff1661193b610f49565b73ffffffffffffffffffffffffffffffffffffffff1614611991576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198890612909565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036119ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f690612efa565b60405180910390fd5b611a088161201b565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7790612f88565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611aee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae590613016565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611bc891906126b4565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611c43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3a906130a4565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611cb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca890613132565b60405180910390fd5b611cbc8383836120dc565b5f60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611d40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d37906131c0565b60405180910390fd5b81810360015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611dd09190612d2b565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611e3491906126b4565b60405180910390a3611e4784848461232a565b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ebb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb29061324e565b60405180910390fd5b611ec6825f836120dc565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611f4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f41906132dc565b60405180910390fd5b81810360015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160035f828254611f9f91906132fa565b925050819055505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161200391906126b4565b60405180910390a3612016835f8461232a565b505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff16600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036121e757612138610f49565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806121a35750612174610f49565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b6121e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121d990613377565b60405180910390fd5b612325565b6121ef61232f565b60065f9054906101000a900460ff1680156122565750600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15612324575f612264610d89565b9050808211156122a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a0906133df565b60405180910390fd5b600854826122b685610dad565b6122c09190612d2b565b111580156122e35750600954826122d685610dad565b6122e09190612d2b565b10155b612322576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161231990613447565b60405180910390fd5b505b5b505050565b505050565b600f54431115612391575f600f544361234891906132fa565b9050600a600e5482600d5461235d9190612d5e565b6123679190612d5e565b6123719190612dcc565b60105f8282546123819190612d2b565b9250508190555043600f81905550505b565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6123d582612393565b6123df818561239d565b93506123ef8185602086016123ad565b6123f8816123bb565b840191505092915050565b5f6020820190508181035f83015261241b81846123cb565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61245d82612434565b9050919050565b61246d81612453565b8114612477575f80fd5b50565b5f8135905061248881612464565b92915050565b5f819050919050565b6124a08161248e565b81146124aa575f80fd5b50565b5f813590506124bb81612497565b92915050565b5f80604083850312156124d7576124d661242c565b5b5f6124e48582860161247a565b92505060206124f5858286016124ad565b9150509250929050565b5f8115159050919050565b612513816124ff565b82525050565b5f60208201905061252c5f83018461250a565b92915050565b5f80fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612570826123bb565b810181811067ffffffffffffffff8211171561258f5761258e61253a565b5b80604052505050565b5f6125a1612423565b90506125ad8282612567565b919050565b5f67ffffffffffffffff8211156125cc576125cb61253a565b5b6125d5826123bb565b9050602081019050919050565b828183375f83830152505050565b5f6126026125fd846125b2565b612598565b90508281526020810184848401111561261e5761261d612536565b5b6126298482856125e2565b509392505050565b5f82601f83011261264557612644612532565b5b81356126558482602086016125f0565b91505092915050565b5f602082840312156126735761267261242c565b5b5f82013567ffffffffffffffff8111156126905761268f612430565b5b61269c84828501612631565b91505092915050565b6126ae8161248e565b82525050565b5f6020820190506126c75f8301846126a5565b92915050565b6126d6816124ff565b81146126e0575f80fd5b50565b5f813590506126f1816126cd565b92915050565b5f6020828403121561270c5761270b61242c565b5b5f612719848285016126e3565b91505092915050565b5f805f606084860312156127395761273861242c565b5b5f6127468682870161247a565b93505060206127578682870161247a565b9250506040612768868287016124ad565b9150509250925092565b5f60ff82169050919050565b61278781612772565b82525050565b5f6020820190506127a05f83018461277e565b92915050565b5f602082840312156127bb576127ba61242c565b5b5f6127c8848285016124ad565b91505092915050565b6127da81612453565b82525050565b5f6020820190506127f35f8301846127d1565b92915050565b5f6020828403121561280e5761280d61242c565b5b5f61281b8482850161247a565b91505092915050565b5f806040838503121561283a5761283961242c565b5b5f6128478582860161247a565b92505060206128588582860161247a565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806128a657607f821691505b6020821081036128b9576128b8612862565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6128f360208361239d565b91506128fe826128bf565b602082019050919050565b5f6020820190508181035f830152612920816128e7565b9050919050565b5f81905092915050565b5f819050815f5260205f209050919050565b5f815461294f8161288f565b6129598186612927565b9450600182165f81146129735760018114612988576129ba565b60ff19831686528115158202860193506129ba565b61299185612931565b5f5b838110156129b257815481890152600182019150602081019050612993565b838801955050505b50505092915050565b5f6129cd82612393565b6129d78185612927565b93506129e78185602086016123ad565b80840191505092915050565b5f6129fe8285612943565b9150612a0a82846129c3565b91508190509392505050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302612a607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612a25565b612a6a8683612a25565b95508019841693508086168417925050509392505050565b5f819050919050565b5f612aa5612aa0612a9b8461248e565b612a82565b61248e565b9050919050565b5f819050919050565b612abe83612a8b565b612ad2612aca82612aac565b848454612a31565b825550505050565b5f90565b612ae6612ada565b612af1818484612ab5565b505050565b5b81811015612b1457612b095f82612ade565b600181019050612af7565b5050565b601f821115612b5957612b2a81612931565b612b3384612a16565b81016020851015612b42578190505b612b56612b4e85612a16565b830182612af6565b50505b505050565b5f82821c905092915050565b5f612b795f1984600802612b5e565b1980831691505092915050565b5f612b918383612b6a565b9150826002028217905092915050565b612baa82612393565b67ffffffffffffffff811115612bc357612bc261253a565b5b612bcd825461288f565b612bd8828285612b18565b5f60209050601f831160018114612c09575f8415612bf7578287015190505b612c018582612b86565b865550612c68565b601f198416612c1786612931565b5f5b82811015612c3e57848901518255600182019150602085019450602081019050612c19565b86831015612c5b5784890151612c57601f891682612b6a565b8355505b6001600288020188555050505b505050505050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f612cca60288361239d565b9150612cd582612c70565b604082019050919050565b5f6020820190508181035f830152612cf781612cbe565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612d358261248e565b9150612d408361248e565b9250828201905080821115612d5857612d57612cfe565b5b92915050565b5f612d688261248e565b9150612d738361248e565b9250828202612d818161248e565b91508282048414831517612d9857612d97612cfe565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612dd68261248e565b9150612de18361248e565b925082612df157612df0612d9f565b5b828204905092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f612e5660258361239d565b9150612e6182612dfc565b604082019050919050565b5f6020820190508181035f830152612e8381612e4a565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612ee460268361239d565b9150612eef82612e8a565b604082019050919050565b5f6020820190508181035f830152612f1181612ed8565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612f7260248361239d565b9150612f7d82612f18565b604082019050919050565b5f6020820190508181035f830152612f9f81612f66565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61300060228361239d565b915061300b82612fa6565b604082019050919050565b5f6020820190508181035f83015261302d81612ff4565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61308e60258361239d565b915061309982613034565b604082019050919050565b5f6020820190508181035f8301526130bb81613082565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61311c60238361239d565b9150613127826130c2565b604082019050919050565b5f6020820190508181035f83015261314981613110565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f6131aa60268361239d565b91506131b582613150565b604082019050919050565b5f6020820190508181035f8301526131d78161319e565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f61323860218361239d565b9150613243826131de565b604082019050919050565b5f6020820190508181035f8301526132658161322c565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e5f8201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b5f6132c660228361239d565b91506132d18261326c565b604082019050919050565b5f6020820190508181035f8301526132f3816132ba565b9050919050565b5f6133048261248e565b915061330f8361248e565b925082820390508181111561332757613326612cfe565b5b92915050565b7f54726164696e6720686173206e6f7420737461727465640000000000000000005f82015250565b5f61336160178361239d565b915061336c8261332d565b602082019050919050565b5f6020820190508181035f83015261338e81613355565b9050919050565b7f45786365656473206d6178207472616e73616374696f6e206c696d69740000005f82015250565b5f6133c9601d8361239d565b91506133d482613395565b602082019050919050565b5f6020820190508181035f8301526133f6816133bd565b9050919050565b7f466f7262696400000000000000000000000000000000000000000000000000005f82015250565b5f61343160068361239d565b915061343c826133fd565b602082019050919050565b5f6020820190508181035f83015261345e81613425565b905091905056fea26469706673582212209642b39acc09d61854e94c99973f6433923fb127c392ea3f41c697cff514a48c64736f6c63430008190033
Deployed Bytecode
0x608060405234801561000f575f80fd5b506004361061025c575f3560e01c8063860a32ec11610144578063aa26327b116100c1578063db79a6a011610085578063db79a6a0146106d6578063dcc0d42f146106f2578063dd0b281e1461070e578063dd62ed3e1461072a578063ec4a05ba1461075a578063f2fde38b146107765761025c565b8063aa26327b14610646578063b2a70bf514610662578063b798fd511461067e578063cd4ad73a1461069c578063d09de08a146106b85761025c565b80639bdaf938116101085780639bdaf938146105925780639e8411d9146105ae578063a2bd83fd146105ca578063a457c2d7146105e6578063a9059cbb146106165761025c565b8063860a32ec146104fc57806389f9a1d31461051a5780638da5cb5b1461053857806393e1ea411461055657806395d89b41146105745761025c565b806339509351116101dd57806369b6757a116101a157806369b6757a1461044c5780636d8b05271461046a57806370a0823114610488578063715018a6146104b85780637db99d8b146104c2578063806b984f146104de5761025c565b806339509351146103aa57806342966c68146103da57806349bd5a5e146103f657806369952ef31461041457806369a14a6f146104305761025c565b80631b3ed722116102245780631b3ed72214610306578063227313961461032457806323b872dd14610340578063313ce567146103705780633829cce61461038e5761025c565b806306fdde0314610260578063095ea7b31461027e57806310f489e9146102ae57806318160ddd146102ca5780631ab99e12146102e8575b5f80fd5b610268610792565b6040516102759190612403565b60405180910390f35b610298600480360381019061029391906124c1565b610822565b6040516102a59190612519565b60405180910390f35b6102c860048036038101906102c3919061265e565b61083f565b005b6102d26108f0565b6040516102df91906126b4565b60405180910390f35b6102f06108f9565b6040516102fd91906126b4565b60405180910390f35b61030e6108ff565b60405161031b91906126b4565b60405180910390f35b61033e600480360381019061033991906126f7565b610905565b005b61035a60048036038101906103559190612722565b61099d565b6040516103679190612519565b60405180910390f35b610378610a8f565b604051610385919061278d565b60405180910390f35b6103a860048036038101906103a3919061265e565b610a97565b005b6103c460048036038101906103bf91906124c1565b610b48565b6040516103d19190612519565b60405180910390f35b6103f460048036038101906103ef91906127a6565b610bef565b005b6103fe610bfc565b60405161040b91906127e0565b60405180910390f35b61042e6004803603810190610429919061265e565b610c21565b005b61044a6004803603810190610445919061265e565b610cd2565b005b610454610d83565b60405161046191906126b4565b60405180910390f35b610472610d89565b60405161047f91906126b4565b60405180910390f35b6104a2600480360381019061049d91906127f9565b610dad565b6040516104af91906126b4565b60405180910390f35b6104c0610df3565b005b6104dc60048036038101906104d7919061265e565b610e7a565b005b6104e6610f2b565b6040516104f391906126b4565b60405180910390f35b610504610f31565b6040516105119190612519565b60405180910390f35b610522610f43565b60405161052f91906126b4565b60405180910390f35b610540610f49565b60405161054d91906127e0565b60405180910390f35b61055e610f70565b60405161056b9190612403565b60405180910390f35b61057c610ffc565b6040516105899190612403565b60405180910390f35b6105ac60048036038101906105a7919061265e565b61108c565b005b6105c860048036038101906105c3919061265e565b61113d565b005b6105e460048036038101906105df919061265e565b6111ee565b005b61060060048036038101906105fb91906124c1565b61129f565b60405161060d9190612519565b60405180910390f35b610630600480360381019061062b91906124c1565b611385565b60405161063d9190612519565b60405180910390f35b610660600480360381019061065b919061265e565b6113a2565b005b61067c6004803603810190610677919061265e565b611453565b005b610686611504565b60405161069391906126b4565b60405180910390f35b6106b660048036038101906106b1919061265e565b61150a565b005b6106c06115bb565b6040516106cd91906126b4565b60405180910390f35b6106f060048036038101906106eb919061265e565b6115c1565b005b61070c6004803603810190610707919061265e565b611672565b005b610728600480360381019061072391906127f9565b611723565b005b610744600480360381019061073f9190612824565b6117e2565b60405161075191906126b4565b60405180910390f35b610774600480360381019061076f919061265e565b611864565b005b610790600480360381019061078b91906127f9565b611915565b005b6060600480546107a19061288f565b80601f01602080910402602001604051908101604052809291908181526020018280546107cd9061288f565b80156108185780601f106107ef57610100808354040283529160200191610818565b820191905f5260205f20905b8154815290600101906020018083116107fb57829003601f168201915b5050505050905090565b5f61083561082e611a0b565b8484611a12565b6001905092915050565b610847611a0b565b73ffffffffffffffffffffffffffffffffffffffff16610865610f49565b73ffffffffffffffffffffffffffffffffffffffff16146108bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b290612909565b60405180910390fd5b600b816040516020016108cf9291906129f3565b604051602081830303815290604052600b90816108ec9190612ba1565b5050565b5f600354905090565b60095481565b600e5481565b61090d611a0b565b73ffffffffffffffffffffffffffffffffffffffff1661092b610f49565b73ffffffffffffffffffffffffffffffffffffffff1614610981576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097890612909565b60405180910390fd5b8060065f6101000a81548160ff02191690831515021790555050565b5f6109a9848484611bd5565b5f60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6109f0611a0b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610a6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6690612ce0565b60405180910390fd5b610a8385610a7b611a0b565b858403611a12565b60019150509392505050565b5f6012905090565b610a9f611a0b565b73ffffffffffffffffffffffffffffffffffffffff16610abd610f49565b73ffffffffffffffffffffffffffffffffffffffff1614610b13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0a90612909565b60405180910390fd5b600b81604051602001610b279291906129f3565b604051602081830303815290604052600b9081610b449190612ba1565b5050565b5f610be5610b54611a0b565b848460025f610b61611a0b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610be09190612d2b565b611a12565b6001905092915050565b610bf93382611e4d565b50565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610c29611a0b565b73ffffffffffffffffffffffffffffffffffffffff16610c47610f49565b73ffffffffffffffffffffffffffffffffffffffff1614610c9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9490612909565b60405180910390fd5b600b81604051602001610cb19291906129f3565b604051602081830303815290604052600b9081610cce9190612ba1565b5050565b610cda611a0b565b73ffffffffffffffffffffffffffffffffffffffff16610cf8610f49565b73ffffffffffffffffffffffffffffffffffffffff1614610d4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4590612909565b60405180910390fd5b600b81604051602001610d629291906129f3565b604051602081830303815290604052600b9081610d7f9190612ba1565b5050565b60105481565b5f620f4240601054600754610d9e9190612d5e565b610da89190612dcc565b905090565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610dfb611a0b565b73ffffffffffffffffffffffffffffffffffffffff16610e19610f49565b73ffffffffffffffffffffffffffffffffffffffff1614610e6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6690612909565b60405180910390fd5b610e785f61201b565b565b610e82611a0b565b73ffffffffffffffffffffffffffffffffffffffff16610ea0610f49565b73ffffffffffffffffffffffffffffffffffffffff1614610ef6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eed90612909565b60405180910390fd5b600b81604051602001610f0a9291906129f3565b604051602081830303815290604052600b9081610f279190612ba1565b5050565b600f5481565b60065f9054906101000a900460ff1681565b60085481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600b8054610f7d9061288f565b80601f0160208091040260200160405190810160405280929190818152602001828054610fa99061288f565b8015610ff45780601f10610fcb57610100808354040283529160200191610ff4565b820191905f5260205f20905b815481529060010190602001808311610fd757829003601f168201915b505050505081565b60606005805461100b9061288f565b80601f01602080910402602001604051908101604052809291908181526020018280546110379061288f565b80156110825780601f1061105957610100808354040283529160200191611082565b820191905f5260205f20905b81548152906001019060200180831161106557829003601f168201915b5050505050905090565b611094611a0b565b73ffffffffffffffffffffffffffffffffffffffff166110b2610f49565b73ffffffffffffffffffffffffffffffffffffffff1614611108576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ff90612909565b60405180910390fd5b600b8160405160200161111c9291906129f3565b604051602081830303815290604052600b90816111399190612ba1565b5050565b611145611a0b565b73ffffffffffffffffffffffffffffffffffffffff16611163610f49565b73ffffffffffffffffffffffffffffffffffffffff16146111b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b090612909565b60405180910390fd5b600b816040516020016111cd9291906129f3565b604051602081830303815290604052600b90816111ea9190612ba1565b5050565b6111f6611a0b565b73ffffffffffffffffffffffffffffffffffffffff16611214610f49565b73ffffffffffffffffffffffffffffffffffffffff161461126a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126190612909565b60405180910390fd5b600b8160405160200161127e9291906129f3565b604051602081830303815290604052600b908161129b9190612ba1565b5050565b5f8060025f6112ac611a0b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015611366576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135d90612e6c565b60405180910390fd5b61137a611371611a0b565b85858403611a12565b600191505092915050565b5f611398611391611a0b565b8484611bd5565b6001905092915050565b6113aa611a0b565b73ffffffffffffffffffffffffffffffffffffffff166113c8610f49565b73ffffffffffffffffffffffffffffffffffffffff161461141e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141590612909565b60405180910390fd5b600b816040516020016114329291906129f3565b604051602081830303815290604052600b908161144f9190612ba1565b5050565b61145b611a0b565b73ffffffffffffffffffffffffffffffffffffffff16611479610f49565b73ffffffffffffffffffffffffffffffffffffffff16146114cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c690612909565b60405180910390fd5b600b816040516020016114e39291906129f3565b604051602081830303815290604052600b90816115009190612ba1565b5050565b600c5481565b611512611a0b565b73ffffffffffffffffffffffffffffffffffffffff16611530610f49565b73ffffffffffffffffffffffffffffffffffffffff1614611586576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157d90612909565b60405180910390fd5b600b8160405160200161159a9291906129f3565b604051602081830303815290604052600b90816115b79190612ba1565b5050565b600d5481565b6115c9611a0b565b73ffffffffffffffffffffffffffffffffffffffff166115e7610f49565b73ffffffffffffffffffffffffffffffffffffffff161461163d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163490612909565b60405180910390fd5b600b816040516020016116519291906129f3565b604051602081830303815290604052600b908161166e9190612ba1565b5050565b61167a611a0b565b73ffffffffffffffffffffffffffffffffffffffff16611698610f49565b73ffffffffffffffffffffffffffffffffffffffff16146116ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e590612909565b60405180910390fd5b600b816040516020016117029291906129f3565b604051602081830303815290604052600b908161171f9190612ba1565b5050565b61172b611a0b565b73ffffffffffffffffffffffffffffffffffffffff16611749610f49565b73ffffffffffffffffffffffffffffffffffffffff161461179f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179690612909565b60405180910390fd5b80600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61186c611a0b565b73ffffffffffffffffffffffffffffffffffffffff1661188a610f49565b73ffffffffffffffffffffffffffffffffffffffff16146118e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d790612909565b60405180910390fd5b600b816040516020016118f49291906129f3565b604051602081830303815290604052600b90816119119190612ba1565b5050565b61191d611a0b565b73ffffffffffffffffffffffffffffffffffffffff1661193b610f49565b73ffffffffffffffffffffffffffffffffffffffff1614611991576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198890612909565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036119ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f690612efa565b60405180910390fd5b611a088161201b565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7790612f88565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611aee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae590613016565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611bc891906126b4565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611c43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3a906130a4565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611cb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca890613132565b60405180910390fd5b611cbc8383836120dc565b5f60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611d40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d37906131c0565b60405180910390fd5b81810360015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611dd09190612d2b565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611e3491906126b4565b60405180910390a3611e4784848461232a565b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ebb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb29061324e565b60405180910390fd5b611ec6825f836120dc565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611f4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f41906132dc565b60405180910390fd5b81810360015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160035f828254611f9f91906132fa565b925050819055505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161200391906126b4565b60405180910390a3612016835f8461232a565b505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff16600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036121e757612138610f49565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806121a35750612174610f49565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b6121e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121d990613377565b60405180910390fd5b612325565b6121ef61232f565b60065f9054906101000a900460ff1680156122565750600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15612324575f612264610d89565b9050808211156122a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a0906133df565b60405180910390fd5b600854826122b685610dad565b6122c09190612d2b565b111580156122e35750600954826122d685610dad565b6122e09190612d2b565b10155b612322576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161231990613447565b60405180910390fd5b505b5b505050565b505050565b600f54431115612391575f600f544361234891906132fa565b9050600a600e5482600d5461235d9190612d5e565b6123679190612d5e565b6123719190612dcc565b60105f8282546123819190612d2b565b9250508190555043600f81905550505b565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6123d582612393565b6123df818561239d565b93506123ef8185602086016123ad565b6123f8816123bb565b840191505092915050565b5f6020820190508181035f83015261241b81846123cb565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61245d82612434565b9050919050565b61246d81612453565b8114612477575f80fd5b50565b5f8135905061248881612464565b92915050565b5f819050919050565b6124a08161248e565b81146124aa575f80fd5b50565b5f813590506124bb81612497565b92915050565b5f80604083850312156124d7576124d661242c565b5b5f6124e48582860161247a565b92505060206124f5858286016124ad565b9150509250929050565b5f8115159050919050565b612513816124ff565b82525050565b5f60208201905061252c5f83018461250a565b92915050565b5f80fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612570826123bb565b810181811067ffffffffffffffff8211171561258f5761258e61253a565b5b80604052505050565b5f6125a1612423565b90506125ad8282612567565b919050565b5f67ffffffffffffffff8211156125cc576125cb61253a565b5b6125d5826123bb565b9050602081019050919050565b828183375f83830152505050565b5f6126026125fd846125b2565b612598565b90508281526020810184848401111561261e5761261d612536565b5b6126298482856125e2565b509392505050565b5f82601f83011261264557612644612532565b5b81356126558482602086016125f0565b91505092915050565b5f602082840312156126735761267261242c565b5b5f82013567ffffffffffffffff8111156126905761268f612430565b5b61269c84828501612631565b91505092915050565b6126ae8161248e565b82525050565b5f6020820190506126c75f8301846126a5565b92915050565b6126d6816124ff565b81146126e0575f80fd5b50565b5f813590506126f1816126cd565b92915050565b5f6020828403121561270c5761270b61242c565b5b5f612719848285016126e3565b91505092915050565b5f805f606084860312156127395761273861242c565b5b5f6127468682870161247a565b93505060206127578682870161247a565b9250506040612768868287016124ad565b9150509250925092565b5f60ff82169050919050565b61278781612772565b82525050565b5f6020820190506127a05f83018461277e565b92915050565b5f602082840312156127bb576127ba61242c565b5b5f6127c8848285016124ad565b91505092915050565b6127da81612453565b82525050565b5f6020820190506127f35f8301846127d1565b92915050565b5f6020828403121561280e5761280d61242c565b5b5f61281b8482850161247a565b91505092915050565b5f806040838503121561283a5761283961242c565b5b5f6128478582860161247a565b92505060206128588582860161247a565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806128a657607f821691505b6020821081036128b9576128b8612862565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6128f360208361239d565b91506128fe826128bf565b602082019050919050565b5f6020820190508181035f830152612920816128e7565b9050919050565b5f81905092915050565b5f819050815f5260205f209050919050565b5f815461294f8161288f565b6129598186612927565b9450600182165f81146129735760018114612988576129ba565b60ff19831686528115158202860193506129ba565b61299185612931565b5f5b838110156129b257815481890152600182019150602081019050612993565b838801955050505b50505092915050565b5f6129cd82612393565b6129d78185612927565b93506129e78185602086016123ad565b80840191505092915050565b5f6129fe8285612943565b9150612a0a82846129c3565b91508190509392505050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302612a607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612a25565b612a6a8683612a25565b95508019841693508086168417925050509392505050565b5f819050919050565b5f612aa5612aa0612a9b8461248e565b612a82565b61248e565b9050919050565b5f819050919050565b612abe83612a8b565b612ad2612aca82612aac565b848454612a31565b825550505050565b5f90565b612ae6612ada565b612af1818484612ab5565b505050565b5b81811015612b1457612b095f82612ade565b600181019050612af7565b5050565b601f821115612b5957612b2a81612931565b612b3384612a16565b81016020851015612b42578190505b612b56612b4e85612a16565b830182612af6565b50505b505050565b5f82821c905092915050565b5f612b795f1984600802612b5e565b1980831691505092915050565b5f612b918383612b6a565b9150826002028217905092915050565b612baa82612393565b67ffffffffffffffff811115612bc357612bc261253a565b5b612bcd825461288f565b612bd8828285612b18565b5f60209050601f831160018114612c09575f8415612bf7578287015190505b612c018582612b86565b865550612c68565b601f198416612c1786612931565b5f5b82811015612c3e57848901518255600182019150602085019450602081019050612c19565b86831015612c5b5784890151612c57601f891682612b6a565b8355505b6001600288020188555050505b505050505050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f612cca60288361239d565b9150612cd582612c70565b604082019050919050565b5f6020820190508181035f830152612cf781612cbe565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612d358261248e565b9150612d408361248e565b9250828201905080821115612d5857612d57612cfe565b5b92915050565b5f612d688261248e565b9150612d738361248e565b9250828202612d818161248e565b91508282048414831517612d9857612d97612cfe565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612dd68261248e565b9150612de18361248e565b925082612df157612df0612d9f565b5b828204905092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f612e5660258361239d565b9150612e6182612dfc565b604082019050919050565b5f6020820190508181035f830152612e8381612e4a565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612ee460268361239d565b9150612eef82612e8a565b604082019050919050565b5f6020820190508181035f830152612f1181612ed8565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612f7260248361239d565b9150612f7d82612f18565b604082019050919050565b5f6020820190508181035f830152612f9f81612f66565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61300060228361239d565b915061300b82612fa6565b604082019050919050565b5f6020820190508181035f83015261302d81612ff4565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61308e60258361239d565b915061309982613034565b604082019050919050565b5f6020820190508181035f8301526130bb81613082565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61311c60238361239d565b9150613127826130c2565b604082019050919050565b5f6020820190508181035f83015261314981613110565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f6131aa60268361239d565b91506131b582613150565b604082019050919050565b5f6020820190508181035f8301526131d78161319e565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f61323860218361239d565b9150613243826131de565b604082019050919050565b5f6020820190508181035f8301526132658161322c565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e5f8201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b5f6132c660228361239d565b91506132d18261326c565b604082019050919050565b5f6020820190508181035f8301526132f3816132ba565b9050919050565b5f6133048261248e565b915061330f8361248e565b925082820390508181111561332757613326612cfe565b5b92915050565b7f54726164696e6720686173206e6f7420737461727465640000000000000000005f82015250565b5f61336160178361239d565b915061336c8261332d565b602082019050919050565b5f6020820190508181035f83015261338e81613355565b9050919050565b7f45786365656473206d6178207472616e73616374696f6e206c696d69740000005f82015250565b5f6133c9601d8361239d565b91506133d482613395565b602082019050919050565b5f6020820190508181035f8301526133f6816133bd565b9050919050565b7f466f7262696400000000000000000000000000000000000000000000000000005f82015250565b5f61343160068361239d565b915061343c826133fd565b602082019050919050565b5f6020820190508181035f83015261345e81613425565b905091905056fea26469706673582212209642b39acc09d61854e94c99973f6433923fb127c392ea3f41c697cff514a48c64736f6c63430008190033
Deployed Bytecode Sourcemap
19357:4346:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9326:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11493:169;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23557:136;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10446:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19534:35;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19786:30;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20283:91;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12144:492;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10288:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22562:133;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13045:215;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21583:81;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19576:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22414:140;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22121:133;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19907:35;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20672:179;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10617:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2727:103;;;:::i;:::-;;21828:133;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19876:24;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19402:26;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19485:42;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2076:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19611:24;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9545:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22268:138;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23129:133;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23414:135;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13763:413;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10957:175;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23270:136;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22703:132;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19644:37;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22843:136;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19715:29;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21680:140;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21969:144;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20143:132;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11195:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22987:134;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2985:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9326:100;9380:13;9413:5;9406:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9326:100;:::o;11493:169::-;11576:4;11593:39;11602:12;:10;:12::i;:::-;11616:7;11625:6;11593:8;:39::i;:::-;11650:4;11643:11;;11493:169;;;;:::o;23557:136::-;2307:12;:10;:12::i;:::-;2296:23;;:7;:5;:7::i;:::-;:23;;;2288:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23667:10:::1;23679:4;23650:34;;;;;;;;;:::i;:::-;;;;;;;;;;;;;23630:10;:55;;;;;;:::i;:::-;;23557:136:::0;:::o;10446:108::-;10507:7;10534:12;;10527:19;;10446:108;:::o;19534:35::-;;;;:::o;19786:30::-;;;;:::o;20283:91::-;2307:12;:10;:12::i;:::-;2296:23;;:7;:5;:7::i;:::-;:23;;;2288:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20358:8:::1;20348:7;;:18;;;;;;;;;;;;;;;;;;20283:91:::0;:::o;12144:492::-;12284:4;12301:36;12311:6;12319:9;12330:6;12301:9;:36::i;:::-;12350:24;12377:11;:19;12389:6;12377:19;;;;;;;;;;;;;;;:33;12397:12;:10;:12::i;:::-;12377:33;;;;;;;;;;;;;;;;12350:60;;12449:6;12429:16;:26;;12421:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;12536:57;12545:6;12553:12;:10;:12::i;:::-;12586:6;12567:16;:25;12536:8;:57::i;:::-;12624:4;12617:11;;;12144:492;;;;;:::o;10288:93::-;10346:5;10371:2;10364:9;;10288:93;:::o;22562:133::-;2307:12;:10;:12::i;:::-;2296:23;;:7;:5;:7::i;:::-;:23;;;2288:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22669:10:::1;22681:4;22652:34;;;;;;;;;:::i;:::-;;;;;;;;;;;;;22632:10;:55;;;;;;:::i;:::-;;22562:133:::0;:::o;13045:215::-;13133:4;13150:80;13159:12;:10;:12::i;:::-;13173:7;13219:10;13182:11;:25;13194:12;:10;:12::i;:::-;13182:25;;;;;;;;;;;;;;;:34;13208:7;13182:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;13150:8;:80::i;:::-;13248:4;13241:11;;13045:215;;;;:::o;21583:81::-;21632:24;21638:10;21650:5;21632;:24::i;:::-;21583:81;:::o;19576:28::-;;;;;;;;;;;;;:::o;22414:140::-;2307:12;:10;:12::i;:::-;2296:23;;:7;:5;:7::i;:::-;:23;;;2288:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22528:10:::1;22540:4;22511:34;;;;;;;;;:::i;:::-;;;;;;;;;;;;;22491:10;:55;;;;;;:::i;:::-;;22414:140:::0;:::o;22121:133::-;2307:12;:10;:12::i;:::-;2296:23;;:7;:5;:7::i;:::-;:23;;;2288:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22228:10:::1;22240:4;22211:34;;;;;;;;;:::i;:::-;;;;;;;;;;;;;22191:10;:55;;;;;;:::i;:::-;;22121:133:::0;:::o;19907:35::-;;;;:::o;20672:179::-;20719:7;20786;20762:20;;20747:12;;:35;;;;:::i;:::-;20746:47;;;;:::i;:::-;20739:54;;20672:179;:::o;10617:127::-;10691:7;10718:9;:18;10728:7;10718:18;;;;;;;;;;;;;;;;10711:25;;10617:127;;;:::o;2727:103::-;2307:12;:10;:12::i;:::-;2296:23;;:7;:5;:7::i;:::-;:23;;;2288:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2792:30:::1;2819:1;2792:18;:30::i;:::-;2727:103::o:0;21828:133::-;2307:12;:10;:12::i;:::-;2296:23;;:7;:5;:7::i;:::-;:23;;;2288:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21935:10:::1;21947:4;21918:34;;;;;;;;;:::i;:::-;;;;;;;;;;;;;21898:10;:55;;;;;;:::i;:::-;;21828:133:::0;:::o;19876:24::-;;;;:::o;19402:26::-;;;;;;;;;;;;;:::o;19485:42::-;;;;:::o;2076:87::-;2122:7;2149:6;;;;;;;;;;;2142:13;;2076:87;:::o;19611:24::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;9545:104::-;9601:13;9634:7;9627:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9545:104;:::o;22268:138::-;2307:12;:10;:12::i;:::-;2296:23;;:7;:5;:7::i;:::-;:23;;;2288:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22380:10:::1;22392:4;22363:34;;;;;;;;;:::i;:::-;;;;;;;;;;;;;22343:10;:55;;;;;;:::i;:::-;;22268:138:::0;:::o;23129:133::-;2307:12;:10;:12::i;:::-;2296:23;;:7;:5;:7::i;:::-;:23;;;2288:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23236:10:::1;23248:4;23219:34;;;;;;;;;:::i;:::-;;;;;;;;;;;;;23199:10;:55;;;;;;:::i;:::-;;23129:133:::0;:::o;23414:135::-;2307:12;:10;:12::i;:::-;2296:23;;:7;:5;:7::i;:::-;:23;;;2288:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23523:10:::1;23535:4;23506:34;;;;;;;;;:::i;:::-;;;;;;;;;;;;;23486:10;:55;;;;;;:::i;:::-;;23414:135:::0;:::o;13763:413::-;13856:4;13873:24;13900:11;:25;13912:12;:10;:12::i;:::-;13900:25;;;;;;;;;;;;;;;:34;13926:7;13900:34;;;;;;;;;;;;;;;;13873:61;;13973:15;13953:16;:35;;13945:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;14066:67;14075:12;:10;:12::i;:::-;14089:7;14117:15;14098:16;:34;14066:8;:67::i;:::-;14164:4;14157:11;;;13763:413;;;;:::o;10957:175::-;11043:4;11060:42;11070:12;:10;:12::i;:::-;11084:9;11095:6;11060:9;:42::i;:::-;11120:4;11113:11;;10957:175;;;;:::o;23270:136::-;2307:12;:10;:12::i;:::-;2296:23;;:7;:5;:7::i;:::-;:23;;;2288:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23380:10:::1;23392:4;23363:34;;;;;;;;;:::i;:::-;;;;;;;;;;;;;23343:10;:55;;;;;;:::i;:::-;;23270:136:::0;:::o;22703:132::-;2307:12;:10;:12::i;:::-;2296:23;;:7;:5;:7::i;:::-;:23;;;2288:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22809:10:::1;22821:4;22792:34;;;;;;;;;:::i;:::-;;;;;;;;;;;;;22772:10;:55;;;;;;:::i;:::-;;22703:132:::0;:::o;19644:37::-;;;;:::o;22843:136::-;2307:12;:10;:12::i;:::-;2296:23;;:7;:5;:7::i;:::-;:23;;;2288:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22953:10:::1;22965:4;22936:34;;;;;;;;;:::i;:::-;;;;;;;;;;;;;22916:10;:55;;;;;;:::i;:::-;;22843:136:::0;:::o;19715:29::-;;;;:::o;21680:140::-;2307:12;:10;:12::i;:::-;2296:23;;:7;:5;:7::i;:::-;:23;;;2288:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21794:10:::1;21806:4;21777:34;;;;;;;;;:::i;:::-;;;;;;;;;;;;;21757:10;:55;;;;;;:::i;:::-;;21680:140:::0;:::o;21969:144::-;2307:12;:10;:12::i;:::-;2296:23;;:7;:5;:7::i;:::-;:23;;;2288:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22087:10:::1;22099:4;22070:34;;;;;;;;;:::i;:::-;;;;;;;;;;;;;22050:10;:55;;;;;;:::i;:::-;;21969:144:::0;:::o;20143:132::-;2307:12;:10;:12::i;:::-;2296:23;;:7;:5;:7::i;:::-;:23;;;2288:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20244:14:::1;20228:13;;:30;;;;;;;;;;;;;;;;;;20143:132:::0;:::o;11195:151::-;11284:7;11311:11;:18;11323:5;11311:18;;;;;;;;;;;;;;;:27;11330:7;11311:27;;;;;;;;;;;;;;;;11304:34;;11195:151;;;;:::o;22987:134::-;2307:12;:10;:12::i;:::-;2296:23;;:7;:5;:7::i;:::-;:23;;;2288:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23095:10:::1;23107:4;23078:34;;;;;;;;;:::i;:::-;;;;;;;;;;;;;23058:10;:55;;;;;;:::i;:::-;;22987:134:::0;:::o;2985:201::-;2307:12;:10;:12::i;:::-;2296:23;;:7;:5;:7::i;:::-;:23;;;2288:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3094:1:::1;3074:22;;:8;:22;;::::0;3066:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3150:28;3169:8;3150:18;:28::i;:::-;2985:201:::0;:::o;794:98::-;847:7;874:10;867:17;;794:98;:::o;17447:380::-;17600:1;17583:19;;:5;:19;;;17575:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17681:1;17662:21;;:7;:21;;;17654:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17765:6;17735:11;:18;17747:5;17735:18;;;;;;;;;;;;;;;:27;17754:7;17735:27;;;;;;;;;;;;;;;:36;;;;17803:7;17787:32;;17796:5;17787:32;;;17812:6;17787:32;;;;;;:::i;:::-;;;;;;;;17447:380;;;:::o;14666:733::-;14824:1;14806:20;;:6;:20;;;14798:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;14908:1;14887:23;;:9;:23;;;14879:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;14963:47;14984:6;14992:9;15003:6;14963:20;:47::i;:::-;15023:21;15047:9;:17;15057:6;15047:17;;;;;;;;;;;;;;;;15023:41;;15100:6;15083:13;:23;;15075:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;15221:6;15205:13;:22;15185:9;:17;15195:6;15185:17;;;;;;;;;;;;;;;:42;;;;15273:6;15249:9;:20;15259:9;15249:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;15314:9;15297:35;;15306:6;15297:35;;;15325:6;15297:35;;;;;;:::i;:::-;;;;;;;;15345:46;15365:6;15373:9;15384:6;15345:19;:46::i;:::-;14787:612;14666:733;;;:::o;16418:591::-;16521:1;16502:21;;:7;:21;;;16494:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16574:49;16595:7;16612:1;16616:6;16574:20;:49::i;:::-;16636:22;16661:9;:18;16671:7;16661:18;;;;;;;;;;;;;;;;16636:43;;16716:6;16698:14;:24;;16690:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;16835:6;16818:14;:23;16797:9;:18;16807:7;16797:18;;;;;;;;;;;;;;;:44;;;;16879:6;16863:12;;:22;;;;;;;:::i;:::-;;;;;;;;16929:1;16903:37;;16912:7;16903:37;;;16933:6;16903:37;;;;;;:::i;:::-;;;;;;;;16953:48;16973:7;16990:1;16994:6;16953:19;:48::i;:::-;16483:526;16418:591;;:::o;3346:191::-;3420:16;3439:6;;;;;;;;;;;3420:25;;3465:8;3456:6;;:17;;;;;;;;;;;;;;;;;;3520:8;3489:40;;3510:8;3489:40;;;;;;;;;;;;3409:128;3346:191;:::o;20859:714::-;21031:1;21006:27;;:13;;;;;;;;;;;:27;;;21002:149;;21066:7;:5;:7::i;:::-;21058:15;;:4;:15;;;:32;;;;21083:7;:5;:7::i;:::-;21077:13;;:2;:13;;;21058:32;21050:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21133:7;;21002:149;21163:21;:19;:21::i;:::-;21201:7;;;;;;;;;;;:32;;;;;21220:13;;;;;;;;;;;21212:21;;:4;:21;;;21201:32;21197:369;;;21250:19;21272:16;:14;:16::i;:::-;21250:38;;21321:11;21311:6;:21;;21303:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;21433:16;;21423:6;21407:13;21417:2;21407:9;:13::i;:::-;:22;;;;:::i;:::-;:42;;:105;;;;;21496:16;;21486:6;21470:13;21480:2;21470:9;:13::i;:::-;:22;;;;:::i;:::-;:42;;21407:105;21381:173;;;;;;;;;;;;:::i;:::-;;;;;;;;;21235:331;21197:369;20859:714;;;;:::o;19156:124::-;;;;:::o;20382:282::-;20452:9;;20437:12;:24;20433:224;;;20478:20;20516:9;;20501:12;:24;;;;:::i;:::-;20478:47;;20604:2;20591:10;;20576:12;20564:9;;:24;;;;:::i;:::-;:37;;;;:::i;:::-;:42;;;;:::i;:::-;20540:20;;:66;;;;;;;:::i;:::-;;;;;;;;20633:12;20621:9;:24;;;;20463:194;20433:224;20382:282::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:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1242:75::-;1275:6;1308:2;1302:9;1292:19;;1242:75;:::o;1323:117::-;1432:1;1429;1422:12;1446:117;1555:1;1552;1545:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:117::-;3448:1;3445;3438:12;3462:117;3571:1;3568;3561:12;3585:180;3633:77;3630:1;3623:88;3730:4;3727:1;3720:15;3754:4;3751:1;3744:15;3771:281;3854:27;3876:4;3854:27;:::i;:::-;3846:6;3842:40;3984:6;3972:10;3969:22;3948:18;3936:10;3933:34;3930:62;3927:88;;;3995:18;;:::i;:::-;3927:88;4035:10;4031:2;4024:22;3814:238;3771:281;;:::o;4058:129::-;4092:6;4119:20;;:::i;:::-;4109:30;;4148:33;4176:4;4168:6;4148:33;:::i;:::-;4058:129;;;:::o;4193:308::-;4255:4;4345:18;4337:6;4334:30;4331:56;;;4367:18;;:::i;:::-;4331:56;4405:29;4427:6;4405:29;:::i;:::-;4397:37;;4489:4;4483;4479:15;4471:23;;4193:308;;;:::o;4507:148::-;4605:6;4600:3;4595;4582:30;4646:1;4637:6;4632:3;4628:16;4621:27;4507:148;;;:::o;4661:425::-;4739:5;4764:66;4780:49;4822:6;4780:49;:::i;:::-;4764:66;:::i;:::-;4755:75;;4853:6;4846:5;4839:21;4891:4;4884:5;4880:16;4929:3;4920:6;4915:3;4911:16;4908:25;4905:112;;;4936:79;;:::i;:::-;4905:112;5026:54;5073:6;5068:3;5063;5026:54;:::i;:::-;4745:341;4661:425;;;;;:::o;5106:340::-;5162:5;5211:3;5204:4;5196:6;5192:17;5188:27;5178:122;;5219:79;;:::i;:::-;5178:122;5336:6;5323:20;5361:79;5436:3;5428:6;5421:4;5413:6;5409:17;5361:79;:::i;:::-;5352:88;;5168:278;5106:340;;;;:::o;5452:509::-;5521:6;5570:2;5558:9;5549:7;5545:23;5541:32;5538:119;;;5576:79;;:::i;:::-;5538:119;5724:1;5713:9;5709:17;5696:31;5754:18;5746:6;5743:30;5740:117;;;5776:79;;:::i;:::-;5740:117;5881:63;5936:7;5927:6;5916:9;5912:22;5881:63;:::i;:::-;5871:73;;5667:287;5452:509;;;;:::o;5967:118::-;6054:24;6072:5;6054:24;:::i;:::-;6049:3;6042:37;5967:118;;:::o;6091:222::-;6184:4;6222:2;6211:9;6207:18;6199:26;;6235:71;6303:1;6292:9;6288:17;6279:6;6235:71;:::i;:::-;6091:222;;;;:::o;6319:116::-;6389:21;6404:5;6389:21;:::i;:::-;6382:5;6379:32;6369:60;;6425:1;6422;6415:12;6369:60;6319:116;:::o;6441:133::-;6484:5;6522:6;6509:20;6500:29;;6538:30;6562:5;6538:30;:::i;:::-;6441:133;;;;:::o;6580:323::-;6636:6;6685:2;6673:9;6664:7;6660:23;6656:32;6653:119;;;6691:79;;:::i;:::-;6653:119;6811:1;6836:50;6878:7;6869:6;6858:9;6854:22;6836:50;:::i;:::-;6826:60;;6782:114;6580:323;;;;:::o;6909:619::-;6986:6;6994;7002;7051:2;7039:9;7030:7;7026:23;7022:32;7019:119;;;7057:79;;:::i;:::-;7019:119;7177:1;7202:53;7247:7;7238:6;7227:9;7223:22;7202:53;:::i;:::-;7192:63;;7148:117;7304:2;7330:53;7375:7;7366:6;7355:9;7351:22;7330:53;:::i;:::-;7320:63;;7275:118;7432:2;7458:53;7503:7;7494:6;7483:9;7479:22;7458:53;:::i;:::-;7448:63;;7403:118;6909:619;;;;;:::o;7534:86::-;7569:7;7609:4;7602:5;7598:16;7587:27;;7534:86;;;:::o;7626:112::-;7709:22;7725:5;7709:22;:::i;:::-;7704:3;7697:35;7626:112;;:::o;7744:214::-;7833:4;7871:2;7860:9;7856:18;7848:26;;7884:67;7948:1;7937:9;7933:17;7924:6;7884:67;:::i;:::-;7744:214;;;;:::o;7964:329::-;8023:6;8072:2;8060:9;8051:7;8047:23;8043:32;8040:119;;;8078:79;;:::i;:::-;8040:119;8198:1;8223:53;8268:7;8259:6;8248:9;8244:22;8223:53;:::i;:::-;8213:63;;8169:117;7964:329;;;;:::o;8299:118::-;8386:24;8404:5;8386:24;:::i;:::-;8381:3;8374:37;8299:118;;:::o;8423:222::-;8516:4;8554:2;8543:9;8539:18;8531:26;;8567:71;8635:1;8624:9;8620:17;8611:6;8567:71;:::i;:::-;8423:222;;;;:::o;8651:329::-;8710:6;8759:2;8747:9;8738:7;8734:23;8730:32;8727:119;;;8765:79;;:::i;:::-;8727:119;8885:1;8910:53;8955:7;8946:6;8935:9;8931:22;8910:53;:::i;:::-;8900:63;;8856:117;8651:329;;;;:::o;8986:474::-;9054:6;9062;9111:2;9099:9;9090:7;9086:23;9082:32;9079:119;;;9117:79;;:::i;:::-;9079:119;9237:1;9262:53;9307:7;9298:6;9287:9;9283:22;9262:53;:::i;:::-;9252:63;;9208:117;9364:2;9390:53;9435:7;9426:6;9415:9;9411:22;9390:53;:::i;:::-;9380:63;;9335:118;8986:474;;;;;:::o;9466:180::-;9514:77;9511:1;9504:88;9611:4;9608:1;9601:15;9635:4;9632:1;9625:15;9652:320;9696:6;9733:1;9727:4;9723:12;9713:22;;9780:1;9774:4;9770:12;9801:18;9791:81;;9857:4;9849:6;9845:17;9835:27;;9791:81;9919:2;9911:6;9908:14;9888:18;9885:38;9882:84;;9938:18;;:::i;:::-;9882:84;9703:269;9652:320;;;:::o;9978:182::-;10118:34;10114:1;10106:6;10102:14;10095:58;9978:182;:::o;10166:366::-;10308:3;10329:67;10393:2;10388:3;10329:67;:::i;:::-;10322:74;;10405:93;10494:3;10405:93;:::i;:::-;10523:2;10518:3;10514:12;10507:19;;10166:366;;;:::o;10538:419::-;10704:4;10742:2;10731:9;10727:18;10719:26;;10791:9;10785:4;10781:20;10777:1;10766:9;10762:17;10755:47;10819:131;10945:4;10819:131;:::i;:::-;10811:139;;10538:419;;;:::o;10963:148::-;11065:11;11102:3;11087:18;;10963:148;;;;:::o;11117:141::-;11166:4;11189:3;11181:11;;11212:3;11209:1;11202:14;11246:4;11243:1;11233:18;11225:26;;11117:141;;;:::o;11288:874::-;11391:3;11428:5;11422:12;11457:36;11483:9;11457:36;:::i;:::-;11509:89;11591:6;11586:3;11509:89;:::i;:::-;11502:96;;11629:1;11618:9;11614:17;11645:1;11640:166;;;;11820:1;11815:341;;;;11607:549;;11640:166;11724:4;11720:9;11709;11705:25;11700:3;11693:38;11786:6;11779:14;11772:22;11764:6;11760:35;11755:3;11751:45;11744:52;;11640:166;;11815:341;11882:38;11914:5;11882:38;:::i;:::-;11942:1;11956:154;11970:6;11967:1;11964:13;11956:154;;;12044:7;12038:14;12034:1;12029:3;12025:11;12018:35;12094:1;12085:7;12081:15;12070:26;;11992:4;11989:1;11985:12;11980:17;;11956:154;;;12139:6;12134:3;12130:16;12123:23;;11822:334;;11607:549;;11395:767;;11288:874;;;;:::o;12168:390::-;12274:3;12302:39;12335:5;12302:39;:::i;:::-;12357:89;12439:6;12434:3;12357:89;:::i;:::-;12350:96;;12455:65;12513:6;12508:3;12501:4;12494:5;12490:16;12455:65;:::i;:::-;12545:6;12540:3;12536:16;12529:23;;12278:280;12168:390;;;;:::o;12564:429::-;12741:3;12763:92;12851:3;12842:6;12763:92;:::i;:::-;12756:99;;12872:95;12963:3;12954:6;12872:95;:::i;:::-;12865:102;;12984:3;12977:10;;12564:429;;;;;:::o;12999:93::-;13036:6;13083:2;13078;13071:5;13067:14;13063:23;13053:33;;12999:93;;;:::o;13098:107::-;13142:8;13192:5;13186:4;13182:16;13161:37;;13098:107;;;;:::o;13211:393::-;13280:6;13330:1;13318:10;13314:18;13353:97;13383:66;13372:9;13353:97;:::i;:::-;13471:39;13501:8;13490:9;13471:39;:::i;:::-;13459:51;;13543:4;13539:9;13532:5;13528:21;13519:30;;13592:4;13582:8;13578:19;13571:5;13568:30;13558:40;;13287:317;;13211:393;;;;;:::o;13610:60::-;13638:3;13659:5;13652:12;;13610:60;;;:::o;13676:142::-;13726:9;13759:53;13777:34;13786:24;13804:5;13786:24;:::i;:::-;13777:34;:::i;:::-;13759:53;:::i;:::-;13746:66;;13676:142;;;:::o;13824:75::-;13867:3;13888:5;13881:12;;13824:75;;;:::o;13905:269::-;14015:39;14046:7;14015:39;:::i;:::-;14076:91;14125:41;14149:16;14125:41;:::i;:::-;14117:6;14110:4;14104:11;14076:91;:::i;:::-;14070:4;14063:105;13981:193;13905:269;;;:::o;14180:73::-;14225:3;14180:73;:::o;14259:189::-;14336:32;;:::i;:::-;14377:65;14435:6;14427;14421:4;14377:65;:::i;:::-;14312:136;14259:189;;:::o;14454:186::-;14514:120;14531:3;14524:5;14521:14;14514:120;;;14585:39;14622:1;14615:5;14585:39;:::i;:::-;14558:1;14551:5;14547:13;14538:22;;14514:120;;;14454:186;;:::o;14646:543::-;14747:2;14742:3;14739:11;14736:446;;;14781:38;14813:5;14781:38;:::i;:::-;14865:29;14883:10;14865:29;:::i;:::-;14855:8;14851:44;15048:2;15036:10;15033:18;15030:49;;;15069:8;15054:23;;15030:49;15092:80;15148:22;15166:3;15148:22;:::i;:::-;15138:8;15134:37;15121:11;15092:80;:::i;:::-;14751:431;;14736:446;14646:543;;;:::o;15195:117::-;15249:8;15299:5;15293:4;15289:16;15268:37;;15195:117;;;;:::o;15318:169::-;15362:6;15395:51;15443:1;15439:6;15431:5;15428:1;15424:13;15395:51;:::i;:::-;15391:56;15476:4;15470;15466:15;15456:25;;15369:118;15318:169;;;;:::o;15492:295::-;15568:4;15714:29;15739:3;15733:4;15714:29;:::i;:::-;15706:37;;15776:3;15773:1;15769:11;15763:4;15760:21;15752:29;;15492:295;;;;:::o;15792:1395::-;15909:37;15942:3;15909:37;:::i;:::-;16011:18;16003:6;16000:30;15997:56;;;16033:18;;:::i;:::-;15997:56;16077:38;16109:4;16103:11;16077:38;:::i;:::-;16162:67;16222:6;16214;16208:4;16162:67;:::i;:::-;16256:1;16280:4;16267:17;;16312:2;16304:6;16301:14;16329:1;16324:618;;;;16986:1;17003:6;17000:77;;;17052:9;17047:3;17043:19;17037:26;17028:35;;17000:77;17103:67;17163:6;17156:5;17103:67;:::i;:::-;17097:4;17090:81;16959:222;16294:887;;16324:618;16376:4;16372:9;16364:6;16360:22;16410:37;16442:4;16410:37;:::i;:::-;16469:1;16483:208;16497:7;16494:1;16491:14;16483:208;;;16576:9;16571:3;16567:19;16561:26;16553:6;16546:42;16627:1;16619:6;16615:14;16605:24;;16674:2;16663:9;16659:18;16646:31;;16520:4;16517:1;16513:12;16508:17;;16483:208;;;16719:6;16710:7;16707:19;16704:179;;;16777:9;16772:3;16768:19;16762:26;16820:48;16862:4;16854:6;16850:17;16839:9;16820:48;:::i;:::-;16812:6;16805:64;16727:156;16704:179;16929:1;16925;16917:6;16913:14;16909:22;16903:4;16896:36;16331:611;;;16294:887;;15884:1303;;;15792:1395;;:::o;17193:227::-;17333:34;17329:1;17321:6;17317:14;17310:58;17402:10;17397:2;17389:6;17385:15;17378:35;17193:227;:::o;17426:366::-;17568:3;17589:67;17653:2;17648:3;17589:67;:::i;:::-;17582:74;;17665:93;17754:3;17665:93;:::i;:::-;17783:2;17778:3;17774:12;17767:19;;17426:366;;;:::o;17798:419::-;17964:4;18002:2;17991:9;17987:18;17979:26;;18051:9;18045:4;18041:20;18037:1;18026:9;18022:17;18015:47;18079:131;18205:4;18079:131;:::i;:::-;18071:139;;17798:419;;;:::o;18223:180::-;18271:77;18268:1;18261:88;18368:4;18365:1;18358:15;18392:4;18389:1;18382:15;18409:191;18449:3;18468:20;18486:1;18468:20;:::i;:::-;18463:25;;18502:20;18520:1;18502:20;:::i;:::-;18497:25;;18545:1;18542;18538:9;18531:16;;18566:3;18563:1;18560:10;18557:36;;;18573:18;;:::i;:::-;18557:36;18409:191;;;;:::o;18606:410::-;18646:7;18669:20;18687:1;18669:20;:::i;:::-;18664:25;;18703:20;18721:1;18703:20;:::i;:::-;18698:25;;18758:1;18755;18751:9;18780:30;18798:11;18780:30;:::i;:::-;18769:41;;18959:1;18950:7;18946:15;18943:1;18940:22;18920:1;18913:9;18893:83;18870:139;;18989:18;;:::i;:::-;18870:139;18654:362;18606:410;;;;:::o;19022:180::-;19070:77;19067:1;19060:88;19167:4;19164:1;19157:15;19191:4;19188:1;19181:15;19208:185;19248:1;19265:20;19283:1;19265:20;:::i;:::-;19260:25;;19299:20;19317:1;19299:20;:::i;:::-;19294:25;;19338:1;19328:35;;19343:18;;:::i;:::-;19328:35;19385:1;19382;19378:9;19373:14;;19208:185;;;;:::o;19399:224::-;19539:34;19535:1;19527:6;19523:14;19516:58;19608:7;19603:2;19595:6;19591:15;19584:32;19399:224;:::o;19629:366::-;19771:3;19792:67;19856:2;19851:3;19792:67;:::i;:::-;19785:74;;19868:93;19957:3;19868:93;:::i;:::-;19986:2;19981:3;19977:12;19970:19;;19629:366;;;:::o;20001:419::-;20167:4;20205:2;20194:9;20190:18;20182:26;;20254:9;20248:4;20244:20;20240:1;20229:9;20225:17;20218:47;20282:131;20408:4;20282:131;:::i;:::-;20274:139;;20001:419;;;:::o;20426:225::-;20566:34;20562:1;20554:6;20550:14;20543:58;20635:8;20630:2;20622:6;20618:15;20611:33;20426:225;:::o;20657:366::-;20799:3;20820:67;20884:2;20879:3;20820:67;:::i;:::-;20813:74;;20896:93;20985:3;20896:93;:::i;:::-;21014:2;21009:3;21005:12;20998:19;;20657:366;;;:::o;21029:419::-;21195:4;21233:2;21222:9;21218:18;21210:26;;21282:9;21276:4;21272:20;21268:1;21257:9;21253:17;21246:47;21310:131;21436:4;21310:131;:::i;:::-;21302:139;;21029:419;;;:::o;21454:223::-;21594:34;21590:1;21582:6;21578:14;21571:58;21663:6;21658:2;21650:6;21646:15;21639:31;21454:223;:::o;21683:366::-;21825:3;21846:67;21910:2;21905:3;21846:67;:::i;:::-;21839:74;;21922:93;22011:3;21922:93;:::i;:::-;22040:2;22035:3;22031:12;22024:19;;21683:366;;;:::o;22055:419::-;22221:4;22259:2;22248:9;22244:18;22236:26;;22308:9;22302:4;22298:20;22294:1;22283:9;22279:17;22272:47;22336:131;22462:4;22336:131;:::i;:::-;22328:139;;22055:419;;;:::o;22480:221::-;22620:34;22616:1;22608:6;22604:14;22597:58;22689:4;22684:2;22676:6;22672:15;22665:29;22480:221;:::o;22707:366::-;22849:3;22870:67;22934:2;22929:3;22870:67;:::i;:::-;22863:74;;22946:93;23035:3;22946:93;:::i;:::-;23064:2;23059:3;23055:12;23048:19;;22707:366;;;:::o;23079:419::-;23245:4;23283:2;23272:9;23268:18;23260:26;;23332:9;23326:4;23322:20;23318:1;23307:9;23303:17;23296:47;23360:131;23486:4;23360:131;:::i;:::-;23352:139;;23079:419;;;:::o;23504:224::-;23644:34;23640:1;23632:6;23628:14;23621:58;23713:7;23708:2;23700:6;23696:15;23689:32;23504:224;:::o;23734:366::-;23876:3;23897:67;23961:2;23956:3;23897:67;:::i;:::-;23890:74;;23973:93;24062:3;23973:93;:::i;:::-;24091:2;24086:3;24082:12;24075:19;;23734:366;;;:::o;24106:419::-;24272:4;24310:2;24299:9;24295:18;24287:26;;24359:9;24353:4;24349:20;24345:1;24334:9;24330:17;24323:47;24387:131;24513:4;24387:131;:::i;:::-;24379:139;;24106:419;;;:::o;24531:222::-;24671:34;24667:1;24659:6;24655:14;24648:58;24740:5;24735:2;24727:6;24723:15;24716:30;24531:222;:::o;24759:366::-;24901:3;24922:67;24986:2;24981:3;24922:67;:::i;:::-;24915:74;;24998:93;25087:3;24998:93;:::i;:::-;25116:2;25111:3;25107:12;25100:19;;24759:366;;;:::o;25131:419::-;25297:4;25335:2;25324:9;25320:18;25312:26;;25384:9;25378:4;25374:20;25370:1;25359:9;25355:17;25348:47;25412:131;25538:4;25412:131;:::i;:::-;25404:139;;25131:419;;;:::o;25556:225::-;25696:34;25692:1;25684:6;25680:14;25673:58;25765:8;25760:2;25752:6;25748:15;25741:33;25556:225;:::o;25787:366::-;25929:3;25950:67;26014:2;26009:3;25950:67;:::i;:::-;25943:74;;26026:93;26115:3;26026:93;:::i;:::-;26144:2;26139:3;26135:12;26128:19;;25787:366;;;:::o;26159:419::-;26325:4;26363:2;26352:9;26348:18;26340:26;;26412:9;26406:4;26402:20;26398:1;26387:9;26383:17;26376:47;26440:131;26566:4;26440:131;:::i;:::-;26432:139;;26159:419;;;:::o;26584:220::-;26724:34;26720:1;26712:6;26708:14;26701:58;26793:3;26788:2;26780:6;26776:15;26769:28;26584:220;:::o;26810:366::-;26952:3;26973:67;27037:2;27032:3;26973:67;:::i;:::-;26966:74;;27049:93;27138:3;27049:93;:::i;:::-;27167:2;27162:3;27158:12;27151:19;;26810:366;;;:::o;27182:419::-;27348:4;27386:2;27375:9;27371:18;27363:26;;27435:9;27429:4;27425:20;27421:1;27410:9;27406:17;27399:47;27463:131;27589:4;27463:131;:::i;:::-;27455:139;;27182:419;;;:::o;27607:221::-;27747:34;27743:1;27735:6;27731:14;27724:58;27816:4;27811:2;27803:6;27799:15;27792:29;27607:221;:::o;27834:366::-;27976:3;27997:67;28061:2;28056:3;27997:67;:::i;:::-;27990:74;;28073:93;28162:3;28073:93;:::i;:::-;28191:2;28186:3;28182:12;28175:19;;27834:366;;;:::o;28206:419::-;28372:4;28410:2;28399:9;28395:18;28387:26;;28459:9;28453:4;28449:20;28445:1;28434:9;28430:17;28423:47;28487:131;28613:4;28487:131;:::i;:::-;28479:139;;28206:419;;;:::o;28631:194::-;28671:4;28691:20;28709:1;28691:20;:::i;:::-;28686:25;;28725:20;28743:1;28725:20;:::i;:::-;28720:25;;28769:1;28766;28762:9;28754:17;;28793:1;28787:4;28784:11;28781:37;;;28798:18;;:::i;:::-;28781:37;28631:194;;;;:::o;28831:173::-;28971:25;28967:1;28959:6;28955:14;28948:49;28831:173;:::o;29010:366::-;29152:3;29173:67;29237:2;29232:3;29173:67;:::i;:::-;29166:74;;29249:93;29338:3;29249:93;:::i;:::-;29367:2;29362:3;29358:12;29351:19;;29010:366;;;:::o;29382:419::-;29548:4;29586:2;29575:9;29571:18;29563:26;;29635:9;29629:4;29625:20;29621:1;29610:9;29606:17;29599:47;29663:131;29789:4;29663:131;:::i;:::-;29655:139;;29382:419;;;:::o;29807:179::-;29947:31;29943:1;29935:6;29931:14;29924:55;29807:179;:::o;29992:366::-;30134:3;30155:67;30219:2;30214:3;30155:67;:::i;:::-;30148:74;;30231:93;30320:3;30231:93;:::i;:::-;30349:2;30344:3;30340:12;30333:19;;29992:366;;;:::o;30364:419::-;30530:4;30568:2;30557:9;30553:18;30545:26;;30617:9;30611:4;30607:20;30603:1;30592:9;30588:17;30581:47;30645:131;30771:4;30645:131;:::i;:::-;30637:139;;30364:419;;;:::o;30789:156::-;30929:8;30925:1;30917:6;30913:14;30906:32;30789:156;:::o;30951:365::-;31093:3;31114:66;31178:1;31173:3;31114:66;:::i;:::-;31107:73;;31189:93;31278:3;31189:93;:::i;:::-;31307:2;31302:3;31298:12;31291:19;;30951:365;;;:::o;31322:419::-;31488:4;31526:2;31515:9;31511:18;31503:26;;31575:9;31569:4;31565:20;31561:1;31550:9;31546:17;31539:47;31603:131;31729:4;31603:131;:::i;:::-;31595:139;;31322:419;;;:::o
Swarm Source
ipfs://9642b39acc09d61854e94c99973f6433923fb127c392ea3f41c697cff514a48c
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.