Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
USDPImplementationV3
Compiler Version
v0.4.24+commit.e67f0147
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2021-08-31
*/
// File: contracts/zeppelin/SafeMath.sol
pragma solidity ^0.4.24;
/**
* @title SafeMath
* @dev Math operations with safety checks that throw on error
*/
library SafeMath {
/**
* @dev Subtracts two numbers, reverts on overflow (i.e. if subtrahend is greater than minuend).
*/
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
require(b <= a);
uint256 c = a - b;
return c;
}
/**
* @dev Adds two numbers, reverts on overflow.
*/
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
require(c >= a);
return c;
}
}
// File: contracts/USDPImplementationV3.sol
pragma solidity ^0.4.24;
pragma experimental "v0.5.0";
/**
* @title USDPImplementationV3
* @dev this contract is a Pausable ERC20 token with Burn and Mint
* controlled by a central SupplyController. By implementing USDPImplementation
* this contract also includes external methods for setting
* a new implementation contract for the Proxy.
* NOTE: The storage defined here will actually be held in the Proxy
* contract and all calls to this contract should be made through
* the proxy, including admin actions done as owner or supplyController.
* Any call to transfer against this contract should fail
* with insufficient funds since no tokens will be issued there.
*/
contract USDPImplementationV3 {
/**
* MATH
*/
using SafeMath for uint256;
/**
* DATA
*/
// INITIALIZATION DATA
bool private initialized = false;
// ERC20 BASIC DATA
mapping(address => uint256) internal balances;
uint256 internal totalSupply_;
string public constant name = "Pax Dollar"; // solium-disable-line
string public constant symbol = "USDP"; // solium-disable-line uppercase
uint8 public constant decimals = 18; // solium-disable-line uppercase
// ERC20 DATA
mapping(address => mapping(address => uint256)) internal allowed;
// OWNER DATA PART 1
address public owner;
// PAUSABILITY DATA
bool public paused = false;
// ASSET PROTECTION DATA
address public assetProtectionRole;
mapping(address => bool) internal frozen;
// SUPPLY CONTROL DATA
address public supplyController;
// OWNER DATA PART 2
address public proposedOwner;
// DELEGATED TRANSFER DATA
address public betaDelegateWhitelister;
mapping(address => bool) internal betaDelegateWhitelist;
mapping(address => uint256) internal nextSeqs;
// EIP191 header for EIP712 prefix
string constant internal EIP191_HEADER = "\x19\x01";
// Hash of the EIP712 Domain Separator Schema
bytes32 constant internal EIP712_DOMAIN_SEPARATOR_SCHEMA_HASH = keccak256(
"EIP712Domain(string name,address verifyingContract)"
);
bytes32 constant internal EIP712_DELEGATED_TRANSFER_SCHEMA_HASH = keccak256(
"BetaDelegatedTransfer(address to,uint256 value,uint256 fee,uint256 seq,uint256 deadline)"
);
// Hash of the EIP712 Domain Separator data
// solhint-disable-next-line var-name-mixedcase
bytes32 public EIP712_DOMAIN_HASH;
/**
* EVENTS
*/
// ERC20 BASIC EVENTS
event Transfer(address indexed from, address indexed to, uint256 value);
// ERC20 EVENTS
event Approval(
address indexed owner,
address indexed spender,
uint256 value
);
// OWNABLE EVENTS
event OwnershipTransferProposed(
address indexed currentOwner,
address indexed proposedOwner
);
event OwnershipTransferDisregarded(
address indexed oldProposedOwner
);
event OwnershipTransferred(
address indexed oldOwner,
address indexed newOwner
);
// PAUSABLE EVENTS
event Pause();
event Unpause();
// ASSET PROTECTION EVENTS
event AddressFrozen(address indexed addr);
event AddressUnfrozen(address indexed addr);
event FrozenAddressWiped(address indexed addr);
event AssetProtectionRoleSet (
address indexed oldAssetProtectionRole,
address indexed newAssetProtectionRole
);
// SUPPLY CONTROL EVENTS
event SupplyIncreased(address indexed to, uint256 value);
event SupplyDecreased(address indexed from, uint256 value);
event SupplyControllerSet(
address indexed oldSupplyController,
address indexed newSupplyController
);
// DELEGATED TRANSFER EVENTS
event BetaDelegatedTransfer(
address indexed from, address indexed to, uint256 value, uint256 seq, uint256 fee
);
event BetaDelegateWhitelisterSet(
address indexed oldWhitelister,
address indexed newWhitelister
);
event BetaDelegateWhitelisted(address indexed newDelegate);
event BetaDelegateUnwhitelisted(address indexed oldDelegate);
/**
* FUNCTIONALITY
*/
// INITIALIZATION FUNCTIONALITY
/**
* @dev sets 0 initials tokens, the owner, and the supplyController.
* this serves as the constructor for the proxy but compiles to the
* memory model of the Implementation contract.
*/
function initialize() public {
require(!initialized, "already initialized");
owner = msg.sender;
assetProtectionRole = address(0);
totalSupply_ = 0;
supplyController = msg.sender;
initialized = true;
}
/**
* The constructor is used here to ensure that the implementation
* contract is initialized. An uncontrolled implementation
* contract might lead to misleading state
* for users who accidentally interact with it.
*/
constructor() public {
initialize();
pause();
// Added in V2
initializeDomainSeparator();
}
/**
* @dev To be called when upgrading the contract using upgradeAndCall to add delegated transfers
*/
function initializeDomainSeparator() public {
// hash the name context with the contract address
EIP712_DOMAIN_HASH = keccak256(abi.encodePacked(// solium-disable-line
EIP712_DOMAIN_SEPARATOR_SCHEMA_HASH,
keccak256(bytes(name)),
bytes32(address(this))
));
proposedOwner = address(0);
}
// ERC20 BASIC FUNCTIONALITY
/**
* @dev Total number of tokens in existence
*/
function totalSupply() public view returns (uint256) {
return totalSupply_;
}
/**
* @dev Transfer token to a specified address from msg.sender
* Note: the use of Safemath ensures that _value is nonnegative.
* @param _to The address to transfer to.
* @param _value The amount to be transferred.
*/
function transfer(address _to, uint256 _value) public whenNotPaused returns (bool) {
require(_to != address(0), "cannot transfer to address zero");
require(!frozen[_to] && !frozen[msg.sender], "address frozen");
require(_value <= balances[msg.sender], "insufficient funds");
balances[msg.sender] = balances[msg.sender].sub(_value);
balances[_to] = balances[_to].add(_value);
emit Transfer(msg.sender, _to, _value);
return true;
}
/**
* @dev Gets the balance of the specified address.
* @param _addr The address to query the the balance of.
* @return An uint256 representing the amount owned by the passed address.
*/
function balanceOf(address _addr) public view returns (uint256) {
return balances[_addr];
}
// ERC20 FUNCTIONALITY
/**
* @dev Transfer tokens from one address to another
* @param _from address The address which you want to send tokens from
* @param _to address The address which you want to transfer to
* @param _value uint256 the amount of tokens to be transferred
*/
function transferFrom(
address _from,
address _to,
uint256 _value
)
public
whenNotPaused
returns (bool)
{
require(_to != address(0), "cannot transfer to address zero");
require(!frozen[_to] && !frozen[_from] && !frozen[msg.sender], "address frozen");
require(_value <= balances[_from], "insufficient funds");
require(_value <= allowed[_from][msg.sender], "insufficient allowance");
balances[_from] = balances[_from].sub(_value);
balances[_to] = balances[_to].add(_value);
allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);
emit Transfer(_from, _to, _value);
return true;
}
/**
* @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.
* 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
* @param _spender The address which will spend the funds.
* @param _value The amount of tokens to be spent.
*/
function approve(address _spender, uint256 _value) public whenNotPaused returns (bool) {
require(!frozen[_spender] && !frozen[msg.sender], "address frozen");
allowed[msg.sender][_spender] = _value;
emit Approval(msg.sender, _spender, _value);
return true;
}
/**
* @dev Function to check the amount of tokens that an owner allowed to a spender.
* @param _owner address The address which owns the funds.
* @param _spender address The address which will spend the funds.
* @return A uint256 specifying the amount of tokens still available for the spender.
*/
function allowance(
address _owner,
address _spender
)
public
view
returns (uint256)
{
return allowed[_owner][_spender];
}
// OWNER FUNCTIONALITY
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
require(msg.sender == owner, "onlyOwner");
_;
}
/**
* @dev Allows the current owner to begin transferring control of the contract to a proposedOwner
* @param _proposedOwner The address to transfer ownership to.
*/
function proposeOwner(address _proposedOwner) public onlyOwner {
require(_proposedOwner != address(0), "cannot transfer ownership to address zero");
require(msg.sender != _proposedOwner, "caller already is owner");
proposedOwner = _proposedOwner;
emit OwnershipTransferProposed(owner, proposedOwner);
}
/**
* @dev Allows the current owner or proposed owner to cancel transferring control of the contract to a proposedOwner
*/
function disregardProposeOwner() public {
require(msg.sender == proposedOwner || msg.sender == owner, "only proposedOwner or owner");
require(proposedOwner != address(0), "can only disregard a proposed owner that was previously set");
address _oldProposedOwner = proposedOwner;
proposedOwner = address(0);
emit OwnershipTransferDisregarded(_oldProposedOwner);
}
/**
* @dev Allows the proposed owner to complete transferring control of the contract to the proposedOwner.
*/
function claimOwnership() public {
require(msg.sender == proposedOwner, "onlyProposedOwner");
address _oldOwner = owner;
owner = proposedOwner;
proposedOwner = address(0);
emit OwnershipTransferred(_oldOwner, owner);
}
/**
* @dev Reclaim all USDP at the contract address.
* This sends the USDP tokens that this contract add holding to the owner.
* Note: this is not affected by freeze constraints.
*/
function reclaimUSDP() external onlyOwner {
uint256 _balance = balances[this];
balances[this] = 0;
balances[owner] = balances[owner].add(_balance);
emit Transfer(this, owner, _balance);
}
// PAUSABILITY FUNCTIONALITY
/**
* @dev Modifier to make a function callable only when the contract is not paused.
*/
modifier whenNotPaused() {
require(!paused, "whenNotPaused");
_;
}
/**
* @dev called by the owner to pause, triggers stopped state
*/
function pause() public onlyOwner {
require(!paused, "already paused");
paused = true;
emit Pause();
}
/**
* @dev called by the owner to unpause, returns to normal state
*/
function unpause() public onlyOwner {
require(paused, "already unpaused");
paused = false;
emit Unpause();
}
// ASSET PROTECTION FUNCTIONALITY
/**
* @dev Sets a new asset protection role address.
* @param _newAssetProtectionRole The new address allowed to freeze/unfreeze addresses and seize their tokens.
*/
function setAssetProtectionRole(address _newAssetProtectionRole) public {
require(msg.sender == assetProtectionRole || msg.sender == owner, "only assetProtectionRole or Owner");
emit AssetProtectionRoleSet(assetProtectionRole, _newAssetProtectionRole);
assetProtectionRole = _newAssetProtectionRole;
}
modifier onlyAssetProtectionRole() {
require(msg.sender == assetProtectionRole, "onlyAssetProtectionRole");
_;
}
/**
* @dev Freezes an address balance from being transferred.
* @param _addr The new address to freeze.
*/
function freeze(address _addr) public onlyAssetProtectionRole {
require(!frozen[_addr], "address already frozen");
frozen[_addr] = true;
emit AddressFrozen(_addr);
}
/**
* @dev Unfreezes an address balance allowing transfer.
* @param _addr The new address to unfreeze.
*/
function unfreeze(address _addr) public onlyAssetProtectionRole {
require(frozen[_addr], "address already unfrozen");
frozen[_addr] = false;
emit AddressUnfrozen(_addr);
}
/**
* @dev Wipes the balance of a frozen address, burning the tokens
* and setting the approval to zero.
* @param _addr The new frozen address to wipe.
*/
function wipeFrozenAddress(address _addr) public onlyAssetProtectionRole {
require(frozen[_addr], "address is not frozen");
uint256 _balance = balances[_addr];
balances[_addr] = 0;
totalSupply_ = totalSupply_.sub(_balance);
emit FrozenAddressWiped(_addr);
emit SupplyDecreased(_addr, _balance);
emit Transfer(_addr, address(0), _balance);
}
/**
* @dev Gets whether the address is currently frozen.
* @param _addr The address to check if frozen.
* @return A bool representing whether the given address is frozen.
*/
function isFrozen(address _addr) public view returns (bool) {
return frozen[_addr];
}
// SUPPLY CONTROL FUNCTIONALITY
/**
* @dev Sets a new supply controller address.
* @param _newSupplyController The address allowed to burn/mint tokens to control supply.
*/
function setSupplyController(address _newSupplyController) public {
require(msg.sender == supplyController || msg.sender == owner, "only SupplyController or Owner");
require(_newSupplyController != address(0), "cannot set supply controller to address zero");
emit SupplyControllerSet(supplyController, _newSupplyController);
supplyController = _newSupplyController;
}
modifier onlySupplyController() {
require(msg.sender == supplyController, "onlySupplyController");
_;
}
/**
* @dev Increases the total supply by minting the specified number of tokens to the supply controller account.
* @param _value The number of tokens to add.
* @return A boolean that indicates if the operation was successful.
*/
function increaseSupply(uint256 _value) public onlySupplyController returns (bool success) {
totalSupply_ = totalSupply_.add(_value);
balances[supplyController] = balances[supplyController].add(_value);
emit SupplyIncreased(supplyController, _value);
emit Transfer(address(0), supplyController, _value);
return true;
}
/**
* @dev Decreases the total supply by burning the specified number of tokens from the supply controller account.
* @param _value The number of tokens to remove.
* @return A boolean that indicates if the operation was successful.
*/
function decreaseSupply(uint256 _value) public onlySupplyController returns (bool success) {
require(_value <= balances[supplyController], "not enough supply");
balances[supplyController] = balances[supplyController].sub(_value);
totalSupply_ = totalSupply_.sub(_value);
emit SupplyDecreased(supplyController, _value);
emit Transfer(supplyController, address(0), _value);
return true;
}
// DELEGATED TRANSFER FUNCTIONALITY
/**
* @dev returns the next seq for a target address.
* The transactor must submit nextSeqOf(transactor) in the next transaction for it to be valid.
* Note: that the seq context is specific to this smart contract.
* @param target The target address.
* @return the seq.
*/
//
function nextSeqOf(address target) public view returns (uint256) {
return nextSeqs[target];
}
/**
* @dev Performs a transfer on behalf of the from address, identified by its signature on the delegatedTransfer msg.
* Splits a signature byte array into r,s,v for convenience.
* @param sig the signature of the delgatedTransfer msg.
* @param to The address to transfer to.
* @param value The amount to be transferred.
* @param fee an optional ERC20 fee paid to the executor of betaDelegatedTransfer by the from address.
* @param seq a sequencing number included by the from address specific to this contract to protect from replays.
* @param deadline a block number after which the pre-signed transaction has expired.
* @return A boolean that indicates if the operation was successful.
*/
function betaDelegatedTransfer(
bytes sig, address to, uint256 value, uint256 fee, uint256 seq, uint256 deadline
) public returns (bool) {
require(sig.length == 65, "signature should have length 65");
bytes32 r;
bytes32 s;
uint8 v;
assembly {
r := mload(add(sig, 32))
s := mload(add(sig, 64))
v := byte(0, mload(add(sig, 96)))
}
require(_betaDelegatedTransfer(r, s, v, to, value, fee, seq, deadline), "failed transfer");
return true;
}
/**
* @dev Performs a transfer on behalf of the from address, identified by its signature on the betaDelegatedTransfer msg.
* Note: both the delegate and transactor sign in the fees. The transactor, however,
* has no control over the gas price, and therefore no control over the transaction time.
* Beta prefix chosen to avoid a name clash with an emerging standard in ERC865 or elsewhere.
* Internal to the contract - see betaDelegatedTransfer and betaDelegatedTransferBatch.
* @param r the r signature of the delgatedTransfer msg.
* @param s the s signature of the delgatedTransfer msg.
* @param v the v signature of the delgatedTransfer msg.
* @param to The address to transfer to.
* @param value The amount to be transferred.
* @param fee an optional ERC20 fee paid to the delegate of betaDelegatedTransfer by the from address.
* @param seq a sequencing number included by the from address specific to this contract to protect from replays.
* @param deadline a block number after which the pre-signed transaction has expired.
* @return A boolean that indicates if the operation was successful.
*/
function _betaDelegatedTransfer(
bytes32 r, bytes32 s, uint8 v, address to, uint256 value, uint256 fee, uint256 seq, uint256 deadline
) internal whenNotPaused returns (bool) {
require(betaDelegateWhitelist[msg.sender], "Beta feature only accepts whitelisted delegates");
require(value > 0 || fee > 0, "cannot transfer zero tokens with zero fee");
require(block.number <= deadline, "transaction expired");
// prevent sig malleability from ecrecover()
require(uint256(s) <= 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0, "signature incorrect");
require(v == 27 || v == 28, "signature incorrect");
// EIP712 scheme: https://github.com/ethereum/EIPs/blob/master/EIPS/eip-712.md
bytes32 delegatedTransferHash = keccak256(abi.encodePacked(// solium-disable-line
EIP712_DELEGATED_TRANSFER_SCHEMA_HASH, bytes32(to), value, fee, seq, deadline
));
bytes32 hash = keccak256(abi.encodePacked(EIP191_HEADER, EIP712_DOMAIN_HASH, delegatedTransferHash));
address _from = ecrecover(hash, v, r, s);
require(_from != address(0), "error determining from address from signature");
require(to != address(0), "canno use address zero");
require(!frozen[to] && !frozen[_from] && !frozen[msg.sender], "address frozen");
require(value.add(fee) <= balances[_from], "insufficient fund");
require(nextSeqs[_from] == seq, "incorrect seq");
nextSeqs[_from] = nextSeqs[_from].add(1);
balances[_from] = balances[_from].sub(value.add(fee));
if (fee != 0) {
balances[msg.sender] = balances[msg.sender].add(fee);
emit Transfer(_from, msg.sender, fee);
}
balances[to] = balances[to].add(value);
emit Transfer(_from, to, value);
emit BetaDelegatedTransfer(_from, to, value, seq, fee);
return true;
}
/**
* @dev Performs an atomic batch of transfers on behalf of the from addresses, identified by their signatures.
* Lack of nested array support in arguments requires all arguments to be passed as equal size arrays where
* delegated transfer number i is the combination of all arguments at index i
* @param r the r signatures of the delgatedTransfer msg.
* @param s the s signatures of the delgatedTransfer msg.
* @param v the v signatures of the delgatedTransfer msg.
* @param to The addresses to transfer to.
* @param value The amounts to be transferred.
* @param fee optional ERC20 fees paid to the delegate of betaDelegatedTransfer by the from address.
* @param seq sequencing numbers included by the from address specific to this contract to protect from replays.
* @param deadline block numbers after which the pre-signed transactions have expired.
* @return A boolean that indicates if the operation was successful.
*/
function betaDelegatedTransferBatch(
bytes32[] r, bytes32[] s, uint8[] v, address[] to, uint256[] value, uint256[] fee, uint256[] seq, uint256[] deadline
) public returns (bool) {
require(r.length == s.length && r.length == v.length && r.length == to.length && r.length == value.length, "length mismatch");
require(r.length == fee.length && r.length == seq.length && r.length == deadline.length, "length mismatch");
for (uint i = 0; i < r.length; i++) {
require(
_betaDelegatedTransfer(r[i], s[i], v[i], to[i], value[i], fee[i], seq[i], deadline[i]),
"failed transfer"
);
}
return true;
}
/**
* @dev Gets whether the address is currently whitelisted for betaDelegateTransfer.
* @param _addr The address to check if whitelisted.
* @return A bool representing whether the given address is whitelisted.
*/
function isWhitelistedBetaDelegate(address _addr) public view returns (bool) {
return betaDelegateWhitelist[_addr];
}
/**
* @dev Sets a new betaDelegate whitelister.
* @param _newWhitelister The address allowed to whitelist betaDelegates.
*/
function setBetaDelegateWhitelister(address _newWhitelister) public {
require(msg.sender == betaDelegateWhitelister || msg.sender == owner, "only Whitelister or Owner");
betaDelegateWhitelister = _newWhitelister;
emit BetaDelegateWhitelisterSet(betaDelegateWhitelister, _newWhitelister);
}
modifier onlyBetaDelegateWhitelister() {
require(msg.sender == betaDelegateWhitelister, "onlyBetaDelegateWhitelister");
_;
}
/**
* @dev Whitelists an address to allow calling BetaDelegatedTransfer.
* @param _addr The new address to whitelist.
*/
function whitelistBetaDelegate(address _addr) public onlyBetaDelegateWhitelister {
require(!betaDelegateWhitelist[_addr], "delegate already whitelisted");
betaDelegateWhitelist[_addr] = true;
emit BetaDelegateWhitelisted(_addr);
}
/**
* @dev Unwhitelists an address to disallow calling BetaDelegatedTransfer.
* @param _addr The new address to whitelist.
*/
function unwhitelistBetaDelegate(address _addr) public onlyBetaDelegateWhitelister {
require(betaDelegateWhitelist[_addr], "delegate not whitelisted");
betaDelegateWhitelist[_addr] = false;
emit BetaDelegateUnwhitelisted(_addr);
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"constant":false,"inputs":[],"name":"disregardProposeOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"assetProtectionRole","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"r","type":"bytes32[]"},{"name":"s","type":"bytes32[]"},{"name":"v","type":"uint8[]"},{"name":"to","type":"address[]"},{"name":"value","type":"uint256[]"},{"name":"fee","type":"uint256[]"},{"name":"seq","type":"uint256[]"},{"name":"deadline","type":"uint256[]"}],"name":"betaDelegatedTransferBatch","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"sig","type":"bytes"},{"name":"to","type":"address"},{"name":"value","type":"uint256"},{"name":"fee","type":"uint256"},{"name":"seq","type":"uint256"},{"name":"deadline","type":"uint256"}],"name":"betaDelegatedTransfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"initializeDomainSeparator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"}],"name":"unfreeze","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"claimOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newSupplyController","type":"address"}],"name":"setSupplyController","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_addr","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"target","type":"address"}],"name":"nextSeqOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newAssetProtectionRole","type":"address"}],"name":"setAssetProtectionRole","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"}],"name":"freeze","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newWhitelister","type":"address"}],"name":"setBetaDelegateWhitelister","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"decreaseSupply","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_addr","type":"address"}],"name":"isWhitelistedBetaDelegate","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"}],"name":"whitelistBetaDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_proposedOwner","type":"address"}],"name":"proposeOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"increaseSupply","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"betaDelegateWhitelister","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"proposedOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"}],"name":"unwhitelistBetaDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"}],"name":"wipeFrozenAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EIP712_DOMAIN_HASH","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_addr","type":"address"}],"name":"isFrozen","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"supplyController","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"reclaimUSDP","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"currentOwner","type":"address"},{"indexed":true,"name":"proposedOwner","type":"address"}],"name":"OwnershipTransferProposed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"oldProposedOwner","type":"address"}],"name":"OwnershipTransferDisregarded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"oldOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpause","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"addr","type":"address"}],"name":"AddressFrozen","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"addr","type":"address"}],"name":"AddressUnfrozen","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"addr","type":"address"}],"name":"FrozenAddressWiped","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"oldAssetProtectionRole","type":"address"},{"indexed":true,"name":"newAssetProtectionRole","type":"address"}],"name":"AssetProtectionRoleSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"SupplyIncreased","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"SupplyDecreased","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"oldSupplyController","type":"address"},{"indexed":true,"name":"newSupplyController","type":"address"}],"name":"SupplyControllerSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"seq","type":"uint256"},{"indexed":false,"name":"fee","type":"uint256"}],"name":"BetaDelegatedTransfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"oldWhitelister","type":"address"},{"indexed":true,"name":"newWhitelister","type":"address"}],"name":"BetaDelegateWhitelisterSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"newDelegate","type":"address"}],"name":"BetaDelegateWhitelisted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"oldDelegate","type":"address"}],"name":"BetaDelegateUnwhitelisted","type":"event"}]Contract Creation Code
60806040526000805460ff191690556004805460a060020a60ff02191690553480156200002b57600080fd5b506200003f6401000000006200006b810204565b620000526401000000006200011c810204565b6200006564010000000062000273810204565b620003f5565b60005460ff1615620000de57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f616c726561647920696e697469616c697a656400000000000000000000000000604482015290519081900360640190fd5b6004805433600160a060020a03199182168117909255600580548216905560006002819055600780549092169092179055805460ff19166001179055565b600454600160a060020a031633146200019657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f6f6e6c794f776e65720000000000000000000000000000000000000000000000604482015290519081900360640190fd5b60045474010000000000000000000000000000000000000000900460ff16156200022157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f616c726561647920706175736564000000000000000000000000000000000000604482015290519081900360640190fd5b6004805460a060020a60ff021916740100000000000000000000000000000000000000001790556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62590600090a1565b604080517f454950373132446f6d61696e28737472696e67206e616d652c6164647265737381527f20766572696679696e67436f6e7472616374290000000000000000000000000060208083019190915282519182900360330182208284018452600a8084527f50617820446f6c6c61720000000000000000000000000000000000000000000092840192835293519093909182918083835b602083106200032d5780518252601f1990920191602091820191016200030c565b51815160209384036101000a60001901801990921691161790526040805192909401829003822082820197909752818401969096523060608083019190915283518083039091018152608090910192839052805190959294508493509185019190508083835b60208310620003b45780518252601f19909201916020918201910162000393565b5181516020939093036101000a60001901801990911692169190911790526040519201829003909120600c55505060088054600160a060020a031916905550565b61336880620004056000396000f3006080604052600436106101e25763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166303acb44881146101e757806306fdde03146101fe578063095ea7b3146102885780630a91b601146102c057806318160ddd146102f15780631b6705611461031857806321ab11f7146104fc57806323b872dd146105755780632ff791611461059f578063313ce567146105b45780633f4ba83a146105df57806345c8b1a6146105f45780634e71e0c81461061557806352875bc31461062a5780635c975abb1461064b57806370a08231146106605780638129fc1c146106815780638456cb591461069657806389f72c21146106ab5780638ceed9cb146106cc5780638d1fdf2f146106ed5780638da5cb5b1461070e57806395d89b411461072357806397d60d561461073857806398e52f9a14610759578063a7d87ed014610771578063a9059cbb14610792578063ac69275c146107b6578063b5ed298a146107d7578063b921e163146107f8578063c4f62fee14610810578063d153b60c14610825578063d990c6181461083a578063dd62ed3e1461085b578063e2f72f0314610882578063e306f779146108a3578063e5839836146108b8578063e7ba1012146108d9578063f66c288d146108ee575b600080fd5b3480156101f357600080fd5b506101fc610903565b005b34801561020a57600080fd5b50610213610a54565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561024d578181015183820152602001610235565b50505050905090810190601f16801561027a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561029457600080fd5b506102ac600160a060020a0360043516602435610a8b565b604080519115158252519081900360200190f35b3480156102cc57600080fd5b506102d5610bc2565b60408051600160a060020a039092168252519081900360200190f35b3480156102fd57600080fd5b50610306610bd1565b60408051918252519081900360200190f35b34801561032457600080fd5b50604080516020600480358082013583810280860185019096528085526102ac95369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750949750610bd79650505050505050565b34801561050857600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526102ac94369492936024939284019190819084018382808284375094975050600160a060020a0385351695505050602083013592604081013592506060810135915060800135610e14565b34801561058157600080fd5b506102ac600160a060020a0360043581169060243516604435610ef0565b3480156105ab57600080fd5b506101fc61122b565b3480156105c057600080fd5b506105c96113a9565b6040805160ff9092168252519081900360200190f35b3480156105eb57600080fd5b506101fc6113ae565b34801561060057600080fd5b506101fc600160a060020a03600435166114aa565b34801561062157600080fd5b506101fc6115c7565b34801561063657600080fd5b506101fc600160a060020a036004351661168d565b34801561065757600080fd5b506102ac6117e8565b34801561066c57600080fd5b50610306600160a060020a03600435166117f8565b34801561068d57600080fd5b506101fc611813565b3480156106a257600080fd5b506101fc6118ac565b3480156106b757600080fd5b50610306600160a060020a03600435166119ad565b3480156106d857600080fd5b506101fc600160a060020a03600435166119c8565b3480156106f957600080fd5b506101fc600160a060020a0360043516611ac3565b34801561071a57600080fd5b506102d5611be2565b34801561072f57600080fd5b50610213611bf1565b34801561074457600080fd5b506101fc600160a060020a0360043516611c28565b34801561076557600080fd5b506102ac600435611cf1565b34801561077d57600080fd5b506102ac600160a060020a0360043516611ea0565b34801561079e57600080fd5b506102ac600160a060020a0360043516602435611ebe565b3480156107c257600080fd5b506101fc600160a060020a03600435166120f3565b3480156107e357600080fd5b506101fc600160a060020a0360043516612212565b34801561080457600080fd5b506102ac6004356123a0565b34801561081c57600080fd5b506102d56124db565b34801561083157600080fd5b506102d56124ea565b34801561084657600080fd5b506101fc600160a060020a03600435166124f9565b34801561086757600080fd5b50610306600160a060020a0360043581169060243516612616565b34801561088e57600080fd5b506101fc600160a060020a0360043516612641565b3480156108af57600080fd5b506103066127f2565b3480156108c457600080fd5b506102ac600160a060020a03600435166127f8565b3480156108e557600080fd5b506102d5612816565b3480156108fa57600080fd5b506101fc612825565b600854600090600160a060020a03163314806109295750600454600160a060020a031633145b151561097f576040805160e560020a62461bcd02815260206004820152601b60248201527f6f6e6c792070726f706f7365644f776e6572206f72206f776e65720000000000604482015290519081900360640190fd5b600854600160a060020a03161515610a07576040805160e560020a62461bcd02815260206004820152603b60248201527f63616e206f6e6c792064697372656761726420612070726f706f736564206f7760448201527f6e65722074686174207761732070726576696f75736c79207365740000000000606482015290519081900360840190fd5b5060088054600160a060020a03198116909155604051600160a060020a039091169081907f24f4590b0077912a4db89e7430de7986175c27bede1b47ee039e3b421c2e798e90600090a250565b60408051808201909152600a81527f50617820446f6c6c617200000000000000000000000000000000000000000000602082015281565b60045460009060a060020a900460ff1615610ade576040805160e560020a62461bcd02815260206004820152600d60248201526000805160206132dd833981519152604482015290519081900360640190fd5b600160a060020a03831660009081526006602052604090205460ff16158015610b1757503360009081526006602052604090205460ff16155b1515610b5b576040805160e560020a62461bcd02815260206004820152600e60248201526000805160206132bd833981519152604482015290519081900360640190fd5b336000818152600360209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350600192915050565b600554600160a060020a031681565b60025490565b60008088518a51148015610bec575087518a51145b8015610bf9575086518a51145b8015610c06575085518a51145b1515610c5c576040805160e560020a62461bcd02815260206004820152600f60248201527f6c656e677468206d69736d617463680000000000000000000000000000000000604482015290519081900360640190fd5b84518a51148015610c6e575083518a51145b8015610c7b575082518a51145b1515610cd1576040805160e560020a62461bcd02815260206004820152600f60248201527f6c656e677468206d69736d617463680000000000000000000000000000000000604482015290519081900360640190fd5b5060005b8951811015610e0457610da68a82815181101515610cef57fe5b906020019060200201518a83815181101515610d0757fe5b906020019060200201518a84815181101515610d1f57fe5b906020019060200201518a85815181101515610d3757fe5b906020019060200201518a86815181101515610d4f57fe5b906020019060200201518a87815181101515610d6757fe5b906020019060200201518a88815181101515610d7f57fe5b906020019060200201518a89815181101515610d9757fe5b906020019060200201516128ff565b1515610dfc576040805160e560020a62461bcd02815260206004820152600f60248201527f6661696c6564207472616e736665720000000000000000000000000000000000604482015290519081900360640190fd5b600101610cd5565b5060019998505050505050505050565b60008060008089516041141515610e75576040805160e560020a62461bcd02815260206004820152601f60248201527f7369676e61747572652073686f756c642068617665206c656e67746820363500604482015290519081900360640190fd5b50505060208701516040880151606089015160001a610e9a8383838c8c8c8c8c6128ff565b1515610e04576040805160e560020a62461bcd02815260206004820152600f60248201527f6661696c6564207472616e736665720000000000000000000000000000000000604482015290519081900360640190fd5b60045460009060a060020a900460ff1615610f43576040805160e560020a62461bcd02815260206004820152600d60248201526000805160206132dd833981519152604482015290519081900360640190fd5b600160a060020a0383161515610fa3576040805160e560020a62461bcd02815260206004820152601f60248201527f63616e6e6f74207472616e7366657220746f2061646472657373207a65726f00604482015290519081900360640190fd5b600160a060020a03831660009081526006602052604090205460ff16158015610fe55750600160a060020a03841660009081526006602052604090205460ff16155b801561100157503360009081526006602052604090205460ff16155b1515611045576040805160e560020a62461bcd02815260206004820152600e60248201526000805160206132bd833981519152604482015290519081900360640190fd5b600160a060020a0384166000908152600160205260409020548211156110b5576040805160e560020a62461bcd02815260206004820152601260248201527f696e73756666696369656e742066756e64730000000000000000000000000000604482015290519081900360640190fd5b600160a060020a0384166000908152600360209081526040808320338452909152902054821115611130576040805160e560020a62461bcd02815260206004820152601660248201527f696e73756666696369656e7420616c6c6f77616e636500000000000000000000604482015290519081900360640190fd5b600160a060020a038416600090815260016020526040902054611159908363ffffffff61328c16565b600160a060020a03808616600090815260016020526040808220939093559085168152205461118e908363ffffffff6132a316565b600160a060020a0380851660009081526001602090815260408083209490945591871681526003825282812033825290915220546111d2908363ffffffff61328c16565b600160a060020a03808616600081815260036020908152604080832033845282529182902094909455805186815290519287169391926000805160206132fd833981519152929181900390910190a35060019392505050565b604080517f454950373132446f6d61696e28737472696e67206e616d652c6164647265737381527f20766572696679696e67436f6e7472616374290000000000000000000000000060208083019190915282519182900360330182208284018452600a8084527f50617820446f6c6c61720000000000000000000000000000000000000000000092840192835293519093909182918083835b602083106112e35780518252601f1990920191602091820191016112c4565b51815160209384036101000a60001901801990921691161790526040805192909401829003822082820197909752818401969096523060608083019190915283518083039091018152608090910192839052805190959294508493509185019190508083835b602083106113685780518252601f199092019160209182019101611349565b5181516020939093036101000a60001901801990911692169190911790526040519201829003909120600c55505060088054600160a060020a031916905550565b601281565b600454600160a060020a031633146113fe576040805160e560020a62461bcd028152602060048201526009602482015260008051602061331d833981519152604482015290519081900360640190fd5b60045460a060020a900460ff161515611461576040805160e560020a62461bcd02815260206004820152601060248201527f616c726561647920756e70617573656400000000000000000000000000000000604482015290519081900360640190fd5b6004805474ff0000000000000000000000000000000000000000191690556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3390600090a1565b600554600160a060020a0316331461150c576040805160e560020a62461bcd02815260206004820152601760248201527f6f6e6c79417373657450726f74656374696f6e526f6c65000000000000000000604482015290519081900360640190fd5b600160a060020a03811660009081526006602052604090205460ff16151561157e576040805160e560020a62461bcd02815260206004820152601860248201527f6164647265737320616c726561647920756e66726f7a656e0000000000000000604482015290519081900360640190fd5b600160a060020a038116600081815260066020526040808220805460ff19169055517fc3776b472ebf54114339eec9e4dc924e7ce307a97f5c1ee72b6d474e6e5e8b7c9190a250565b600854600090600160a060020a0316331461162c576040805160e560020a62461bcd02815260206004820152601160248201527f6f6e6c7950726f706f7365644f776e6572000000000000000000000000000000604482015290519081900360640190fd5b506004805460088054600160a060020a0319808416600160a060020a038381169190911795869055911690915560405191811692169082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a350565b600754600160a060020a03163314806116b05750600454600160a060020a031633145b1515611706576040805160e560020a62461bcd02815260206004820152601e60248201527f6f6e6c7920537570706c79436f6e74726f6c6c6572206f72204f776e65720000604482015290519081900360640190fd5b600160a060020a038116151561178c576040805160e560020a62461bcd02815260206004820152602c60248201527f63616e6e6f742073657420737570706c7920636f6e74726f6c6c657220746f2060448201527f61646472657373207a65726f0000000000000000000000000000000000000000606482015290519081900360840190fd5b600754604051600160a060020a038084169216907f40d53b0b666e4424f29d55244e7e171a1dc332acc11d04ed4abd884629d8cc9790600090a360078054600160a060020a031916600160a060020a0392909216919091179055565b60045460a060020a900460ff1681565b600160a060020a031660009081526001602052604090205490565b60005460ff161561186e576040805160e560020a62461bcd02815260206004820152601360248201527f616c726561647920696e697469616c697a656400000000000000000000000000604482015290519081900360640190fd5b6004805433600160a060020a03199182168117909255600580548216905560006002819055600780549092169092179055805460ff19166001179055565b600454600160a060020a031633146118fc576040805160e560020a62461bcd028152602060048201526009602482015260008051602061331d833981519152604482015290519081900360640190fd5b60045460a060020a900460ff161561195e576040805160e560020a62461bcd02815260206004820152600e60248201527f616c726561647920706175736564000000000000000000000000000000000000604482015290519081900360640190fd5b6004805474ff0000000000000000000000000000000000000000191660a060020a1790556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62590600090a1565b600160a060020a03166000908152600b602052604090205490565b600554600160a060020a03163314806119eb5750600454600160a060020a031633145b1515611a67576040805160e560020a62461bcd02815260206004820152602160248201527f6f6e6c7920617373657450726f74656374696f6e526f6c65206f72204f776e6560448201527f7200000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600554604051600160a060020a038084169216907fd0c36a0ac0fe0d375386bd568fa2947a2dae7523a0a0cfdab20b7532a105bd1b90600090a360058054600160a060020a031916600160a060020a0392909216919091179055565b600554600160a060020a03163314611b25576040805160e560020a62461bcd02815260206004820152601760248201527f6f6e6c79417373657450726f74656374696f6e526f6c65000000000000000000604482015290519081900360640190fd5b600160a060020a03811660009081526006602052604090205460ff1615611b96576040805160e560020a62461bcd02815260206004820152601660248201527f6164647265737320616c72656164792066726f7a656e00000000000000000000604482015290519081900360640190fd5b600160a060020a038116600081815260066020526040808220805460ff19166001179055517f90811a8edd3b3c17eeaefffc17f639cc69145d41a359c9843994dc25382036909190a250565b600454600160a060020a031681565b60408051808201909152600481527f5553445000000000000000000000000000000000000000000000000000000000602082015281565b600954600160a060020a0316331480611c4b5750600454600160a060020a031633145b1515611ca1576040805160e560020a62461bcd02815260206004820152601960248201527f6f6e6c792057686974656c6973746572206f72204f776e657200000000000000604482015290519081900360640190fd5b60098054600160a060020a031916600160a060020a0383811691821792839055604051919216907f54e20b07412504aee4d17519747ae2f01b9924f7f30059793fe5576c4220a0c390600090a350565b600754600090600160a060020a03163314611d56576040805160e560020a62461bcd02815260206004820152601460248201527f6f6e6c79537570706c79436f6e74726f6c6c6572000000000000000000000000604482015290519081900360640190fd5b600754600160a060020a0316600090815260016020526040902054821115611dc8576040805160e560020a62461bcd02815260206004820152601160248201527f6e6f7420656e6f75676820737570706c79000000000000000000000000000000604482015290519081900360640190fd5b600754600160a060020a0316600090815260016020526040902054611df3908363ffffffff61328c16565b600754600160a060020a0316600090815260016020526040902055600254611e21908363ffffffff61328c16565b600255600754604080518481529051600160a060020a03909216917f1b7e18241beced0d7f41fbab1ea8ed468732edbcb74ec4420151654ca71c8a639181900360200190a2600754604080518481529051600092600160a060020a0316916000805160206132fd833981519152919081900360200190a3506001919050565b600160a060020a03166000908152600a602052604090205460ff1690565b60045460009060a060020a900460ff1615611f11576040805160e560020a62461bcd02815260206004820152600d60248201526000805160206132dd833981519152604482015290519081900360640190fd5b600160a060020a0383161515611f71576040805160e560020a62461bcd02815260206004820152601f60248201527f63616e6e6f74207472616e7366657220746f2061646472657373207a65726f00604482015290519081900360640190fd5b600160a060020a03831660009081526006602052604090205460ff16158015611faa57503360009081526006602052604090205460ff16155b1515611fee576040805160e560020a62461bcd02815260206004820152600e60248201526000805160206132bd833981519152604482015290519081900360640190fd5b33600090815260016020526040902054821115612055576040805160e560020a62461bcd02815260206004820152601260248201527f696e73756666696369656e742066756e64730000000000000000000000000000604482015290519081900360640190fd5b33600090815260016020526040902054612075908363ffffffff61328c16565b3360009081526001602052604080822092909255600160a060020a038516815220546120a7908363ffffffff6132a316565b600160a060020a0384166000818152600160209081526040918290209390935580518581529051919233926000805160206132fd8339815191529281900390910190a350600192915050565b600954600160a060020a03163314612155576040805160e560020a62461bcd02815260206004820152601b60248201527f6f6e6c794265746144656c656761746557686974656c69737465720000000000604482015290519081900360640190fd5b600160a060020a0381166000908152600a602052604090205460ff16156121c6576040805160e560020a62461bcd02815260206004820152601c60248201527f64656c656761746520616c72656164792077686974656c697374656400000000604482015290519081900360640190fd5b600160a060020a0381166000818152600a6020526040808220805460ff19166001179055517f8a22e0d8ecb02260464e9a55b7d82b17482735ae1f765de59dee573dfec5b36d9190a250565b600454600160a060020a03163314612262576040805160e560020a62461bcd028152602060048201526009602482015260008051602061331d833981519152604482015290519081900360640190fd5b600160a060020a03811615156122e8576040805160e560020a62461bcd02815260206004820152602960248201527f63616e6e6f74207472616e73666572206f776e65727368697020746f2061646460448201527f72657373207a65726f0000000000000000000000000000000000000000000000606482015290519081900360840190fd5b33600160a060020a0382161415612349576040805160e560020a62461bcd02815260206004820152601760248201527f63616c6c657220616c7265616479206973206f776e6572000000000000000000604482015290519081900360640190fd5b60088054600160a060020a031916600160a060020a038381169190911791829055600454604051928216929116907ff4e75b79500ab730f8a026ed3cba6d55331bcb64c9e9f60c548e371356e5e3c090600090a350565b600754600090600160a060020a03163314612405576040805160e560020a62461bcd02815260206004820152601460248201527f6f6e6c79537570706c79436f6e74726f6c6c6572000000000000000000000000604482015290519081900360640190fd5b600254612418908363ffffffff6132a316565b600255600754600160a060020a0316600090815260016020526040902054612446908363ffffffff6132a316565b60078054600160a060020a03908116600090815260016020908152604091829020949094559154825186815292519116927ff5c174d57843e57fea3c649fdde37f015ef08750759cbee88060390566a98797928290030190a2600754604080518481529051600160a060020a03909216916000916000805160206132fd833981519152919081900360200190a3506001919050565b600954600160a060020a031681565b600854600160a060020a031681565b600954600160a060020a0316331461255b576040805160e560020a62461bcd02815260206004820152601b60248201527f6f6e6c794265746144656c656761746557686974656c69737465720000000000604482015290519081900360640190fd5b600160a060020a0381166000908152600a602052604090205460ff1615156125cd576040805160e560020a62461bcd02815260206004820152601860248201527f64656c6567617465206e6f742077686974656c69737465640000000000000000604482015290519081900360640190fd5b600160a060020a0381166000818152600a6020526040808220805460ff19169055517f12acb305bec2ecc1e4568decc9c8e0423749ceb6ae249eaef4ef375ec174a49c9190a250565b600160a060020a03918216600090815260036020908152604080832093909416825291909152205490565b600554600090600160a060020a031633146126a6576040805160e560020a62461bcd02815260206004820152601760248201527f6f6e6c79417373657450726f74656374696f6e526f6c65000000000000000000604482015290519081900360640190fd5b600160a060020a03821660009081526006602052604090205460ff161515612718576040805160e560020a62461bcd02815260206004820152601560248201527f61646472657373206973206e6f742066726f7a656e0000000000000000000000604482015290519081900360640190fd5b50600160a060020a03811660009081526001602052604081208054919055600254612749908263ffffffff61328c16565b600255604051600160a060020a038316907ffc5960f1c5a5d2b60f031bf534af053b1bf7d9881989afaeb8b1d164db23aede90600090a2604080518281529051600160a060020a038416917f1b7e18241beced0d7f41fbab1ea8ed468732edbcb74ec4420151654ca71c8a63919081900360200190a2604080518281529051600091600160a060020a038516916000805160206132fd8339815191529181900360200190a35050565b600c5481565b600160a060020a031660009081526006602052604090205460ff1690565b600754600160a060020a031681565b600454600090600160a060020a03163314612878576040805160e560020a62461bcd028152602060048201526009602482015260008051602061331d833981519152604482015290519081900360640190fd5b5030600090815260016020526040808220805490839055600454600160a060020a031683529120546128b0908263ffffffff6132a316565b60048054600160a060020a039081166000908152600160209081526040918290209490945591548251858152925191169230926000805160206132fd833981519152929081900390910190a350565b60045460009081908190819060a060020a900460ff1615612958576040805160e560020a62461bcd02815260206004820152600d60248201526000805160206132dd833981519152604482015290519081900360640190fd5b336000908152600a602052604090205460ff1615156129e7576040805160e560020a62461bcd02815260206004820152602f60248201527f426574612066656174757265206f6e6c7920616363657074732077686974656c60448201527f69737465642064656c6567617465730000000000000000000000000000000000606482015290519081900360840190fd5b60008811806129f65750600087115b1515612a72576040805160e560020a62461bcd02815260206004820152602960248201527f63616e6e6f74207472616e73666572207a65726f20746f6b656e73207769746860448201527f207a65726f206665650000000000000000000000000000000000000000000000606482015290519081900360840190fd5b43851015612aca576040805160e560020a62461bcd02815260206004820152601360248201527f7472616e73616374696f6e206578706972656400000000000000000000000000604482015290519081900360640190fd5b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08b1115612b42576040805160e560020a62461bcd02815260206004820152601360248201527f7369676e617475726520696e636f727265637400000000000000000000000000604482015290519081900360640190fd5b8960ff16601b1480612b5757508960ff16601c145b1515612bad576040805160e560020a62461bcd02815260206004820152601360248201527f7369676e617475726520696e636f727265637400000000000000000000000000604482015290519081900360640190fd5b604080517f4265746144656c6567617465645472616e73666572286164647265737320746f81527f2c75696e743235362076616c75652c75696e74323536206665652c75696e74326020808301919091527f3536207365712c75696e7432353620646561646c696e6529000000000000000082840152825191829003605801822082820152600160a060020a038c1682840152606082018b9052608082018a905260a0820189905260c08083018990528351808403909101815260e090920192839052815191929182918401908083835b60208310612c9d5780518252601f199092019160209182019101612c7e565b51815160209384036101000a600019018019909216911617905260408051929094018290038220828501855260028084527f1901000000000000000000000000000000000000000000000000000000000000848401908152600c549651929b509397509495508994910192508291908083835b60208310612d2f5780518252601f199092019160209182019101612d10565b51815160209384036101000a6000190180199092169116179052920194855250838101929092525060408051808403830181529281019081905282519293509182918401908083835b60208310612d975780518252601f199092019160209182019101612d78565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902091506001828b8e8e604051600081526020016040526040518085600019166000191681526020018460ff1660ff168152602001836000191660001916815260200182600019166000191681526020019450505050506020604051602081039080840390855afa158015612e3b573d6000803e3d6000fd5b5050604051601f190151915050600160a060020a0381161515612ece576040805160e560020a62461bcd02815260206004820152602d60248201527f6572726f722064657465726d696e696e672066726f6d2061646472657373206660448201527f726f6d207369676e617475726500000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0389161515612f2e576040805160e560020a62461bcd02815260206004820152601660248201527f63616e6e6f207573652061646472657373207a65726f00000000000000000000604482015290519081900360640190fd5b600160a060020a03891660009081526006602052604090205460ff16158015612f705750600160a060020a03811660009081526006602052604090205460ff16155b8015612f8c57503360009081526006602052604090205460ff16155b1515612fd0576040805160e560020a62461bcd02815260206004820152600e60248201526000805160206132bd833981519152604482015290519081900360640190fd5b600160a060020a038116600090815260016020526040902054612ff9898963ffffffff6132a316565b111561304f576040805160e560020a62461bcd02815260206004820152601160248201527f696e73756666696369656e742066756e64000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a0381166000908152600b602052604090205486146130be576040805160e560020a62461bcd02815260206004820152600d60248201527f696e636f72726563742073657100000000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a0381166000908152600b60205260409020546130e890600163ffffffff6132a316565b600160a060020a0382166000908152600b6020526040902055613139613114898963ffffffff6132a316565b600160a060020a0383166000908152600160205260409020549063ffffffff61328c16565b600160a060020a03821660009081526001602052604090205586156131bc5733600090815260016020526040902054613178908863ffffffff6132a316565b336000818152600160209081526040918290209390935580518a815290519192600160a060020a038516926000805160206132fd8339815191529281900390910190a35b600160a060020a0389166000908152600160205260409020546131e5908963ffffffff6132a316565b600160a060020a03808b166000818152600160209081526040918290209490945580518c815290519193928516926000805160206132fd83398151915292918290030190a360408051898152602081018890528082018990529051600160a060020a03808c1692908416917fe526c2818be85606ab8e0ea3f317c198ef15baabbb4430bcf2d836eed3c7769b9181900360600190a35060019b9a5050505050505050505050565b6000808383111561329c57600080fd5b5050900390565b6000828201838110156132b557600080fd5b93925050505600616464726573732066726f7a656e0000000000000000000000000000000000007768656e4e6f7450617573656400000000000000000000000000000000000000ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6f6e6c794f776e65720000000000000000000000000000000000000000000000a165627a7a72305820e64c615c754155a7fd7f7163f434a5c66926342f918c2ed1af6cac200a51a00b0029
Deployed Bytecode
0x6080604052600436106101e25763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166303acb44881146101e757806306fdde03146101fe578063095ea7b3146102885780630a91b601146102c057806318160ddd146102f15780631b6705611461031857806321ab11f7146104fc57806323b872dd146105755780632ff791611461059f578063313ce567146105b45780633f4ba83a146105df57806345c8b1a6146105f45780634e71e0c81461061557806352875bc31461062a5780635c975abb1461064b57806370a08231146106605780638129fc1c146106815780638456cb591461069657806389f72c21146106ab5780638ceed9cb146106cc5780638d1fdf2f146106ed5780638da5cb5b1461070e57806395d89b411461072357806397d60d561461073857806398e52f9a14610759578063a7d87ed014610771578063a9059cbb14610792578063ac69275c146107b6578063b5ed298a146107d7578063b921e163146107f8578063c4f62fee14610810578063d153b60c14610825578063d990c6181461083a578063dd62ed3e1461085b578063e2f72f0314610882578063e306f779146108a3578063e5839836146108b8578063e7ba1012146108d9578063f66c288d146108ee575b600080fd5b3480156101f357600080fd5b506101fc610903565b005b34801561020a57600080fd5b50610213610a54565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561024d578181015183820152602001610235565b50505050905090810190601f16801561027a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561029457600080fd5b506102ac600160a060020a0360043516602435610a8b565b604080519115158252519081900360200190f35b3480156102cc57600080fd5b506102d5610bc2565b60408051600160a060020a039092168252519081900360200190f35b3480156102fd57600080fd5b50610306610bd1565b60408051918252519081900360200190f35b34801561032457600080fd5b50604080516020600480358082013583810280860185019096528085526102ac95369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750949750610bd79650505050505050565b34801561050857600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526102ac94369492936024939284019190819084018382808284375094975050600160a060020a0385351695505050602083013592604081013592506060810135915060800135610e14565b34801561058157600080fd5b506102ac600160a060020a0360043581169060243516604435610ef0565b3480156105ab57600080fd5b506101fc61122b565b3480156105c057600080fd5b506105c96113a9565b6040805160ff9092168252519081900360200190f35b3480156105eb57600080fd5b506101fc6113ae565b34801561060057600080fd5b506101fc600160a060020a03600435166114aa565b34801561062157600080fd5b506101fc6115c7565b34801561063657600080fd5b506101fc600160a060020a036004351661168d565b34801561065757600080fd5b506102ac6117e8565b34801561066c57600080fd5b50610306600160a060020a03600435166117f8565b34801561068d57600080fd5b506101fc611813565b3480156106a257600080fd5b506101fc6118ac565b3480156106b757600080fd5b50610306600160a060020a03600435166119ad565b3480156106d857600080fd5b506101fc600160a060020a03600435166119c8565b3480156106f957600080fd5b506101fc600160a060020a0360043516611ac3565b34801561071a57600080fd5b506102d5611be2565b34801561072f57600080fd5b50610213611bf1565b34801561074457600080fd5b506101fc600160a060020a0360043516611c28565b34801561076557600080fd5b506102ac600435611cf1565b34801561077d57600080fd5b506102ac600160a060020a0360043516611ea0565b34801561079e57600080fd5b506102ac600160a060020a0360043516602435611ebe565b3480156107c257600080fd5b506101fc600160a060020a03600435166120f3565b3480156107e357600080fd5b506101fc600160a060020a0360043516612212565b34801561080457600080fd5b506102ac6004356123a0565b34801561081c57600080fd5b506102d56124db565b34801561083157600080fd5b506102d56124ea565b34801561084657600080fd5b506101fc600160a060020a03600435166124f9565b34801561086757600080fd5b50610306600160a060020a0360043581169060243516612616565b34801561088e57600080fd5b506101fc600160a060020a0360043516612641565b3480156108af57600080fd5b506103066127f2565b3480156108c457600080fd5b506102ac600160a060020a03600435166127f8565b3480156108e557600080fd5b506102d5612816565b3480156108fa57600080fd5b506101fc612825565b600854600090600160a060020a03163314806109295750600454600160a060020a031633145b151561097f576040805160e560020a62461bcd02815260206004820152601b60248201527f6f6e6c792070726f706f7365644f776e6572206f72206f776e65720000000000604482015290519081900360640190fd5b600854600160a060020a03161515610a07576040805160e560020a62461bcd02815260206004820152603b60248201527f63616e206f6e6c792064697372656761726420612070726f706f736564206f7760448201527f6e65722074686174207761732070726576696f75736c79207365740000000000606482015290519081900360840190fd5b5060088054600160a060020a03198116909155604051600160a060020a039091169081907f24f4590b0077912a4db89e7430de7986175c27bede1b47ee039e3b421c2e798e90600090a250565b60408051808201909152600a81527f50617820446f6c6c617200000000000000000000000000000000000000000000602082015281565b60045460009060a060020a900460ff1615610ade576040805160e560020a62461bcd02815260206004820152600d60248201526000805160206132dd833981519152604482015290519081900360640190fd5b600160a060020a03831660009081526006602052604090205460ff16158015610b1757503360009081526006602052604090205460ff16155b1515610b5b576040805160e560020a62461bcd02815260206004820152600e60248201526000805160206132bd833981519152604482015290519081900360640190fd5b336000818152600360209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350600192915050565b600554600160a060020a031681565b60025490565b60008088518a51148015610bec575087518a51145b8015610bf9575086518a51145b8015610c06575085518a51145b1515610c5c576040805160e560020a62461bcd02815260206004820152600f60248201527f6c656e677468206d69736d617463680000000000000000000000000000000000604482015290519081900360640190fd5b84518a51148015610c6e575083518a51145b8015610c7b575082518a51145b1515610cd1576040805160e560020a62461bcd02815260206004820152600f60248201527f6c656e677468206d69736d617463680000000000000000000000000000000000604482015290519081900360640190fd5b5060005b8951811015610e0457610da68a82815181101515610cef57fe5b906020019060200201518a83815181101515610d0757fe5b906020019060200201518a84815181101515610d1f57fe5b906020019060200201518a85815181101515610d3757fe5b906020019060200201518a86815181101515610d4f57fe5b906020019060200201518a87815181101515610d6757fe5b906020019060200201518a88815181101515610d7f57fe5b906020019060200201518a89815181101515610d9757fe5b906020019060200201516128ff565b1515610dfc576040805160e560020a62461bcd02815260206004820152600f60248201527f6661696c6564207472616e736665720000000000000000000000000000000000604482015290519081900360640190fd5b600101610cd5565b5060019998505050505050505050565b60008060008089516041141515610e75576040805160e560020a62461bcd02815260206004820152601f60248201527f7369676e61747572652073686f756c642068617665206c656e67746820363500604482015290519081900360640190fd5b50505060208701516040880151606089015160001a610e9a8383838c8c8c8c8c6128ff565b1515610e04576040805160e560020a62461bcd02815260206004820152600f60248201527f6661696c6564207472616e736665720000000000000000000000000000000000604482015290519081900360640190fd5b60045460009060a060020a900460ff1615610f43576040805160e560020a62461bcd02815260206004820152600d60248201526000805160206132dd833981519152604482015290519081900360640190fd5b600160a060020a0383161515610fa3576040805160e560020a62461bcd02815260206004820152601f60248201527f63616e6e6f74207472616e7366657220746f2061646472657373207a65726f00604482015290519081900360640190fd5b600160a060020a03831660009081526006602052604090205460ff16158015610fe55750600160a060020a03841660009081526006602052604090205460ff16155b801561100157503360009081526006602052604090205460ff16155b1515611045576040805160e560020a62461bcd02815260206004820152600e60248201526000805160206132bd833981519152604482015290519081900360640190fd5b600160a060020a0384166000908152600160205260409020548211156110b5576040805160e560020a62461bcd02815260206004820152601260248201527f696e73756666696369656e742066756e64730000000000000000000000000000604482015290519081900360640190fd5b600160a060020a0384166000908152600360209081526040808320338452909152902054821115611130576040805160e560020a62461bcd02815260206004820152601660248201527f696e73756666696369656e7420616c6c6f77616e636500000000000000000000604482015290519081900360640190fd5b600160a060020a038416600090815260016020526040902054611159908363ffffffff61328c16565b600160a060020a03808616600090815260016020526040808220939093559085168152205461118e908363ffffffff6132a316565b600160a060020a0380851660009081526001602090815260408083209490945591871681526003825282812033825290915220546111d2908363ffffffff61328c16565b600160a060020a03808616600081815260036020908152604080832033845282529182902094909455805186815290519287169391926000805160206132fd833981519152929181900390910190a35060019392505050565b604080517f454950373132446f6d61696e28737472696e67206e616d652c6164647265737381527f20766572696679696e67436f6e7472616374290000000000000000000000000060208083019190915282519182900360330182208284018452600a8084527f50617820446f6c6c61720000000000000000000000000000000000000000000092840192835293519093909182918083835b602083106112e35780518252601f1990920191602091820191016112c4565b51815160209384036101000a60001901801990921691161790526040805192909401829003822082820197909752818401969096523060608083019190915283518083039091018152608090910192839052805190959294508493509185019190508083835b602083106113685780518252601f199092019160209182019101611349565b5181516020939093036101000a60001901801990911692169190911790526040519201829003909120600c55505060088054600160a060020a031916905550565b601281565b600454600160a060020a031633146113fe576040805160e560020a62461bcd028152602060048201526009602482015260008051602061331d833981519152604482015290519081900360640190fd5b60045460a060020a900460ff161515611461576040805160e560020a62461bcd02815260206004820152601060248201527f616c726561647920756e70617573656400000000000000000000000000000000604482015290519081900360640190fd5b6004805474ff0000000000000000000000000000000000000000191690556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3390600090a1565b600554600160a060020a0316331461150c576040805160e560020a62461bcd02815260206004820152601760248201527f6f6e6c79417373657450726f74656374696f6e526f6c65000000000000000000604482015290519081900360640190fd5b600160a060020a03811660009081526006602052604090205460ff16151561157e576040805160e560020a62461bcd02815260206004820152601860248201527f6164647265737320616c726561647920756e66726f7a656e0000000000000000604482015290519081900360640190fd5b600160a060020a038116600081815260066020526040808220805460ff19169055517fc3776b472ebf54114339eec9e4dc924e7ce307a97f5c1ee72b6d474e6e5e8b7c9190a250565b600854600090600160a060020a0316331461162c576040805160e560020a62461bcd02815260206004820152601160248201527f6f6e6c7950726f706f7365644f776e6572000000000000000000000000000000604482015290519081900360640190fd5b506004805460088054600160a060020a0319808416600160a060020a038381169190911795869055911690915560405191811692169082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a350565b600754600160a060020a03163314806116b05750600454600160a060020a031633145b1515611706576040805160e560020a62461bcd02815260206004820152601e60248201527f6f6e6c7920537570706c79436f6e74726f6c6c6572206f72204f776e65720000604482015290519081900360640190fd5b600160a060020a038116151561178c576040805160e560020a62461bcd02815260206004820152602c60248201527f63616e6e6f742073657420737570706c7920636f6e74726f6c6c657220746f2060448201527f61646472657373207a65726f0000000000000000000000000000000000000000606482015290519081900360840190fd5b600754604051600160a060020a038084169216907f40d53b0b666e4424f29d55244e7e171a1dc332acc11d04ed4abd884629d8cc9790600090a360078054600160a060020a031916600160a060020a0392909216919091179055565b60045460a060020a900460ff1681565b600160a060020a031660009081526001602052604090205490565b60005460ff161561186e576040805160e560020a62461bcd02815260206004820152601360248201527f616c726561647920696e697469616c697a656400000000000000000000000000604482015290519081900360640190fd5b6004805433600160a060020a03199182168117909255600580548216905560006002819055600780549092169092179055805460ff19166001179055565b600454600160a060020a031633146118fc576040805160e560020a62461bcd028152602060048201526009602482015260008051602061331d833981519152604482015290519081900360640190fd5b60045460a060020a900460ff161561195e576040805160e560020a62461bcd02815260206004820152600e60248201527f616c726561647920706175736564000000000000000000000000000000000000604482015290519081900360640190fd5b6004805474ff0000000000000000000000000000000000000000191660a060020a1790556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62590600090a1565b600160a060020a03166000908152600b602052604090205490565b600554600160a060020a03163314806119eb5750600454600160a060020a031633145b1515611a67576040805160e560020a62461bcd02815260206004820152602160248201527f6f6e6c7920617373657450726f74656374696f6e526f6c65206f72204f776e6560448201527f7200000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600554604051600160a060020a038084169216907fd0c36a0ac0fe0d375386bd568fa2947a2dae7523a0a0cfdab20b7532a105bd1b90600090a360058054600160a060020a031916600160a060020a0392909216919091179055565b600554600160a060020a03163314611b25576040805160e560020a62461bcd02815260206004820152601760248201527f6f6e6c79417373657450726f74656374696f6e526f6c65000000000000000000604482015290519081900360640190fd5b600160a060020a03811660009081526006602052604090205460ff1615611b96576040805160e560020a62461bcd02815260206004820152601660248201527f6164647265737320616c72656164792066726f7a656e00000000000000000000604482015290519081900360640190fd5b600160a060020a038116600081815260066020526040808220805460ff19166001179055517f90811a8edd3b3c17eeaefffc17f639cc69145d41a359c9843994dc25382036909190a250565b600454600160a060020a031681565b60408051808201909152600481527f5553445000000000000000000000000000000000000000000000000000000000602082015281565b600954600160a060020a0316331480611c4b5750600454600160a060020a031633145b1515611ca1576040805160e560020a62461bcd02815260206004820152601960248201527f6f6e6c792057686974656c6973746572206f72204f776e657200000000000000604482015290519081900360640190fd5b60098054600160a060020a031916600160a060020a0383811691821792839055604051919216907f54e20b07412504aee4d17519747ae2f01b9924f7f30059793fe5576c4220a0c390600090a350565b600754600090600160a060020a03163314611d56576040805160e560020a62461bcd02815260206004820152601460248201527f6f6e6c79537570706c79436f6e74726f6c6c6572000000000000000000000000604482015290519081900360640190fd5b600754600160a060020a0316600090815260016020526040902054821115611dc8576040805160e560020a62461bcd02815260206004820152601160248201527f6e6f7420656e6f75676820737570706c79000000000000000000000000000000604482015290519081900360640190fd5b600754600160a060020a0316600090815260016020526040902054611df3908363ffffffff61328c16565b600754600160a060020a0316600090815260016020526040902055600254611e21908363ffffffff61328c16565b600255600754604080518481529051600160a060020a03909216917f1b7e18241beced0d7f41fbab1ea8ed468732edbcb74ec4420151654ca71c8a639181900360200190a2600754604080518481529051600092600160a060020a0316916000805160206132fd833981519152919081900360200190a3506001919050565b600160a060020a03166000908152600a602052604090205460ff1690565b60045460009060a060020a900460ff1615611f11576040805160e560020a62461bcd02815260206004820152600d60248201526000805160206132dd833981519152604482015290519081900360640190fd5b600160a060020a0383161515611f71576040805160e560020a62461bcd02815260206004820152601f60248201527f63616e6e6f74207472616e7366657220746f2061646472657373207a65726f00604482015290519081900360640190fd5b600160a060020a03831660009081526006602052604090205460ff16158015611faa57503360009081526006602052604090205460ff16155b1515611fee576040805160e560020a62461bcd02815260206004820152600e60248201526000805160206132bd833981519152604482015290519081900360640190fd5b33600090815260016020526040902054821115612055576040805160e560020a62461bcd02815260206004820152601260248201527f696e73756666696369656e742066756e64730000000000000000000000000000604482015290519081900360640190fd5b33600090815260016020526040902054612075908363ffffffff61328c16565b3360009081526001602052604080822092909255600160a060020a038516815220546120a7908363ffffffff6132a316565b600160a060020a0384166000818152600160209081526040918290209390935580518581529051919233926000805160206132fd8339815191529281900390910190a350600192915050565b600954600160a060020a03163314612155576040805160e560020a62461bcd02815260206004820152601b60248201527f6f6e6c794265746144656c656761746557686974656c69737465720000000000604482015290519081900360640190fd5b600160a060020a0381166000908152600a602052604090205460ff16156121c6576040805160e560020a62461bcd02815260206004820152601c60248201527f64656c656761746520616c72656164792077686974656c697374656400000000604482015290519081900360640190fd5b600160a060020a0381166000818152600a6020526040808220805460ff19166001179055517f8a22e0d8ecb02260464e9a55b7d82b17482735ae1f765de59dee573dfec5b36d9190a250565b600454600160a060020a03163314612262576040805160e560020a62461bcd028152602060048201526009602482015260008051602061331d833981519152604482015290519081900360640190fd5b600160a060020a03811615156122e8576040805160e560020a62461bcd02815260206004820152602960248201527f63616e6e6f74207472616e73666572206f776e65727368697020746f2061646460448201527f72657373207a65726f0000000000000000000000000000000000000000000000606482015290519081900360840190fd5b33600160a060020a0382161415612349576040805160e560020a62461bcd02815260206004820152601760248201527f63616c6c657220616c7265616479206973206f776e6572000000000000000000604482015290519081900360640190fd5b60088054600160a060020a031916600160a060020a038381169190911791829055600454604051928216929116907ff4e75b79500ab730f8a026ed3cba6d55331bcb64c9e9f60c548e371356e5e3c090600090a350565b600754600090600160a060020a03163314612405576040805160e560020a62461bcd02815260206004820152601460248201527f6f6e6c79537570706c79436f6e74726f6c6c6572000000000000000000000000604482015290519081900360640190fd5b600254612418908363ffffffff6132a316565b600255600754600160a060020a0316600090815260016020526040902054612446908363ffffffff6132a316565b60078054600160a060020a03908116600090815260016020908152604091829020949094559154825186815292519116927ff5c174d57843e57fea3c649fdde37f015ef08750759cbee88060390566a98797928290030190a2600754604080518481529051600160a060020a03909216916000916000805160206132fd833981519152919081900360200190a3506001919050565b600954600160a060020a031681565b600854600160a060020a031681565b600954600160a060020a0316331461255b576040805160e560020a62461bcd02815260206004820152601b60248201527f6f6e6c794265746144656c656761746557686974656c69737465720000000000604482015290519081900360640190fd5b600160a060020a0381166000908152600a602052604090205460ff1615156125cd576040805160e560020a62461bcd02815260206004820152601860248201527f64656c6567617465206e6f742077686974656c69737465640000000000000000604482015290519081900360640190fd5b600160a060020a0381166000818152600a6020526040808220805460ff19169055517f12acb305bec2ecc1e4568decc9c8e0423749ceb6ae249eaef4ef375ec174a49c9190a250565b600160a060020a03918216600090815260036020908152604080832093909416825291909152205490565b600554600090600160a060020a031633146126a6576040805160e560020a62461bcd02815260206004820152601760248201527f6f6e6c79417373657450726f74656374696f6e526f6c65000000000000000000604482015290519081900360640190fd5b600160a060020a03821660009081526006602052604090205460ff161515612718576040805160e560020a62461bcd02815260206004820152601560248201527f61646472657373206973206e6f742066726f7a656e0000000000000000000000604482015290519081900360640190fd5b50600160a060020a03811660009081526001602052604081208054919055600254612749908263ffffffff61328c16565b600255604051600160a060020a038316907ffc5960f1c5a5d2b60f031bf534af053b1bf7d9881989afaeb8b1d164db23aede90600090a2604080518281529051600160a060020a038416917f1b7e18241beced0d7f41fbab1ea8ed468732edbcb74ec4420151654ca71c8a63919081900360200190a2604080518281529051600091600160a060020a038516916000805160206132fd8339815191529181900360200190a35050565b600c5481565b600160a060020a031660009081526006602052604090205460ff1690565b600754600160a060020a031681565b600454600090600160a060020a03163314612878576040805160e560020a62461bcd028152602060048201526009602482015260008051602061331d833981519152604482015290519081900360640190fd5b5030600090815260016020526040808220805490839055600454600160a060020a031683529120546128b0908263ffffffff6132a316565b60048054600160a060020a039081166000908152600160209081526040918290209490945591548251858152925191169230926000805160206132fd833981519152929081900390910190a350565b60045460009081908190819060a060020a900460ff1615612958576040805160e560020a62461bcd02815260206004820152600d60248201526000805160206132dd833981519152604482015290519081900360640190fd5b336000908152600a602052604090205460ff1615156129e7576040805160e560020a62461bcd02815260206004820152602f60248201527f426574612066656174757265206f6e6c7920616363657074732077686974656c60448201527f69737465642064656c6567617465730000000000000000000000000000000000606482015290519081900360840190fd5b60008811806129f65750600087115b1515612a72576040805160e560020a62461bcd02815260206004820152602960248201527f63616e6e6f74207472616e73666572207a65726f20746f6b656e73207769746860448201527f207a65726f206665650000000000000000000000000000000000000000000000606482015290519081900360840190fd5b43851015612aca576040805160e560020a62461bcd02815260206004820152601360248201527f7472616e73616374696f6e206578706972656400000000000000000000000000604482015290519081900360640190fd5b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08b1115612b42576040805160e560020a62461bcd02815260206004820152601360248201527f7369676e617475726520696e636f727265637400000000000000000000000000604482015290519081900360640190fd5b8960ff16601b1480612b5757508960ff16601c145b1515612bad576040805160e560020a62461bcd02815260206004820152601360248201527f7369676e617475726520696e636f727265637400000000000000000000000000604482015290519081900360640190fd5b604080517f4265746144656c6567617465645472616e73666572286164647265737320746f81527f2c75696e743235362076616c75652c75696e74323536206665652c75696e74326020808301919091527f3536207365712c75696e7432353620646561646c696e6529000000000000000082840152825191829003605801822082820152600160a060020a038c1682840152606082018b9052608082018a905260a0820189905260c08083018990528351808403909101815260e090920192839052815191929182918401908083835b60208310612c9d5780518252601f199092019160209182019101612c7e565b51815160209384036101000a600019018019909216911617905260408051929094018290038220828501855260028084527f1901000000000000000000000000000000000000000000000000000000000000848401908152600c549651929b509397509495508994910192508291908083835b60208310612d2f5780518252601f199092019160209182019101612d10565b51815160209384036101000a6000190180199092169116179052920194855250838101929092525060408051808403830181529281019081905282519293509182918401908083835b60208310612d975780518252601f199092019160209182019101612d78565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902091506001828b8e8e604051600081526020016040526040518085600019166000191681526020018460ff1660ff168152602001836000191660001916815260200182600019166000191681526020019450505050506020604051602081039080840390855afa158015612e3b573d6000803e3d6000fd5b5050604051601f190151915050600160a060020a0381161515612ece576040805160e560020a62461bcd02815260206004820152602d60248201527f6572726f722064657465726d696e696e672066726f6d2061646472657373206660448201527f726f6d207369676e617475726500000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0389161515612f2e576040805160e560020a62461bcd02815260206004820152601660248201527f63616e6e6f207573652061646472657373207a65726f00000000000000000000604482015290519081900360640190fd5b600160a060020a03891660009081526006602052604090205460ff16158015612f705750600160a060020a03811660009081526006602052604090205460ff16155b8015612f8c57503360009081526006602052604090205460ff16155b1515612fd0576040805160e560020a62461bcd02815260206004820152600e60248201526000805160206132bd833981519152604482015290519081900360640190fd5b600160a060020a038116600090815260016020526040902054612ff9898963ffffffff6132a316565b111561304f576040805160e560020a62461bcd02815260206004820152601160248201527f696e73756666696369656e742066756e64000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a0381166000908152600b602052604090205486146130be576040805160e560020a62461bcd02815260206004820152600d60248201527f696e636f72726563742073657100000000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a0381166000908152600b60205260409020546130e890600163ffffffff6132a316565b600160a060020a0382166000908152600b6020526040902055613139613114898963ffffffff6132a316565b600160a060020a0383166000908152600160205260409020549063ffffffff61328c16565b600160a060020a03821660009081526001602052604090205586156131bc5733600090815260016020526040902054613178908863ffffffff6132a316565b336000818152600160209081526040918290209390935580518a815290519192600160a060020a038516926000805160206132fd8339815191529281900390910190a35b600160a060020a0389166000908152600160205260409020546131e5908963ffffffff6132a316565b600160a060020a03808b166000818152600160209081526040918290209490945580518c815290519193928516926000805160206132fd83398151915292918290030190a360408051898152602081018890528082018990529051600160a060020a03808c1692908416917fe526c2818be85606ab8e0ea3f317c198ef15baabbb4430bcf2d836eed3c7769b9181900360600190a35060019b9a5050505050505050505050565b6000808383111561329c57600080fd5b5050900390565b6000828201838110156132b557600080fd5b93925050505600616464726573732066726f7a656e0000000000000000000000000000000000007768656e4e6f7450617573656400000000000000000000000000000000000000ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6f6e6c794f776e65720000000000000000000000000000000000000000000000a165627a7a72305820e64c615c754155a7fd7f7163f434a5c66926342f918c2ed1af6cac200a51a00b0029
Deployed Bytecode Sourcemap
1440:24681:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11200:411;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11200:411:0;;;;;;1762:42;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1762:42:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1762:42:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9468:298;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9468:298:0;-1:-1:-1;;;;;9468:298:0;;;;;;;;;;;;;;;;;;;;;;;;;2226:34;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2226:34:0;;;;;;;;-1:-1:-1;;;;;2226:34:0;;;;;;;;;;;;;;6590:91;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6590:91:0;;;;;;;;;;;;;;;;;;;;23562:714;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;23562:714:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;23562:714:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23562:714:0;;;;-1:-1:-1;23562:714:0;-1:-1:-1;23562:714:0;;-1:-1:-1;23562:714:0;;;;;;;;;-1:-1:-1;;23562:714:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23562:714:0;;;;-1:-1:-1;23562:714:0;-1:-1:-1;23562:714:0;;-1:-1:-1;23562:714:0;;;;;;;;;-1:-1:-1;;23562:714:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23562:714:0;;;;-1:-1:-1;23562:714:0;-1:-1:-1;23562:714:0;;-1:-1:-1;23562:714:0;;;;;;;;;-1:-1:-1;;23562:714:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23562:714:0;;;;-1:-1:-1;23562:714:0;-1:-1:-1;23562:714:0;;-1:-1:-1;23562:714:0;;;;;;;;;-1:-1:-1;;23562:714:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23562:714:0;;;;-1:-1:-1;23562:714:0;-1:-1:-1;23562:714:0;;-1:-1:-1;23562:714:0;;;;;;;;;-1:-1:-1;;23562:714:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23562:714:0;;;;-1:-1:-1;23562:714:0;-1:-1:-1;23562:714:0;;-1:-1:-1;23562:714:0;;;;;;;;;-1:-1:-1;;23562:714:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23562:714:0;;;;-1:-1:-1;23562:714:0;-1:-1:-1;23562:714:0;;-1:-1:-1;23562:714:0;;;;;;;;;-1:-1:-1;23562:714:0;;-1:-1:-1;23562:714:0;;-1:-1:-1;;;;;;;23562:714:0;18804:565;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;18804:565:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;18804:565:0;;-1:-1:-1;;;;;;;18804:565:0;;;;-1:-1:-1;;;18804:565:0;;;;;;;;;;-1:-1:-1;18804:565:0;;;;;-1:-1:-1;18804:565:0;;;;;8089:730;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8089:730:0;-1:-1:-1;;;;;8089:730:0;;;;;;;;;;;;6100:381;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6100:381:0;;;;1912:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1912:35:0;;;;;;;;;;;;;;;;;;;;;;;13020:140;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13020:140:0;;;;14346:203;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;14346:203:0;-1:-1:-1;;;;;14346:203:0;;;;;11745:268;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11745:268:0;;;;15666:408;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;15666:408:0;-1:-1:-1;;;;;15666:408:0;;;;;2161:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2161:26:0;;;;7657:105;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7657:105:0;-1:-1:-1;;;;;7657:105:0;;;;;5318:260;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5318:260:0;;;;12791:134;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12791:134:0;;;;17932:107;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;17932:107:0;-1:-1:-1;;;;;17932:107:0;;;;;13398:333;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;13398:333:0;-1:-1:-1;;;;;13398:333:0;;;;;14012:197;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;14012:197:0;-1:-1:-1;;;;;14012:197:0;;;;;2107:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2107:20:0;;;;1834:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1834:38:0;;;;24809:321;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;24809:321:0;-1:-1:-1;;;;;24809:321:0;;;;;17115:445;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;17115:445:0;;;;;24523:131;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;24523:131:0;-1:-1:-1;;;;;24523:131:0;;;;;6938:499;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6938:499:0;-1:-1:-1;;;;;6938:499:0;;;;;;;25437:262;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;25437:262:0;-1:-1:-1;;;;;25437:262:0;;;;;10711:343;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10711:343:0;-1:-1:-1;;;;;10711:343:0;;;;;16475:368;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;16475:368:0;;;;;2479:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2479:38:0;;;;2410:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2410:28:0;;;;25856:262;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;25856:262:0;-1:-1:-1;;;;;25856:262:0;;;;;10107:179;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10107:179:0;-1:-1:-1;;;;;10107:179:0;;;;;;;;;;14741:408;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;14741:408:0;-1:-1:-1;;;;;14741:408:0;;;;;3230:33;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3230:33:0;;;;15356:99;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;15356:99:0;-1:-1:-1;;;;;15356:99:0;;;;;2344:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2344:31:0;;;;12232:228;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12232:228:0;;;;11200:411;11273:13;;11462:25;;-1:-1:-1;;;;;11273:13:0;11259:10;:27;;:50;;-1:-1:-1;11304:5:0;;-1:-1:-1;;;;;11304:5:0;11290:10;:19;11259:50;11251:90;;;;;;;-1:-1:-1;;;;;11251:90:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;11360:13;;-1:-1:-1;;;;;11360:13:0;:27;;11352:99;;;;;-1:-1:-1;;;;;11352:99:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11490:13:0;;;-1:-1:-1;;;;;;11514:26:0;;;;;11556:47;;-1:-1:-1;;;;;11490:13:0;;;;;;11556:47;;11490:13;;11556:47;11200:411;:::o;1762:42::-;;;;;;;;;;;;;;;;;;;:::o;9468:298::-;12655:6;;9549:4;;-1:-1:-1;;;12655:6:0;;;;12654:7;12646:33;;;;;-1:-1:-1;;;;;12646:33:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;12646:33:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;9575:16:0;;;;;;:6;:16;;;;;;;;9574:17;:40;;;;-1:-1:-1;9603:10:0;9596:18;;;;:6;:18;;;;;;;;9595:19;9574:40;9566:67;;;;;;;-1:-1:-1;;;;;9566:67:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;9566:67:0;;;;;;;;;;;;;;;9652:10;9644:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;9644:29:0;;;;;;;;;;;;:38;;;9698;;;;;;;9644:29;;9652:10;9698:38;;;;;;;;;;;-1:-1:-1;9754:4:0;9468:298;;;;:::o;2226:34::-;;;-1:-1:-1;;;;;2226:34:0;;:::o;6590:91::-;6661:12;;6590:91;:::o;23562:714::-;23748:4;24026:6;23785:1;:8;23773:1;:8;:20;:44;;;;;23809:1;:8;23797:1;:8;:20;23773:44;:69;;;;;23833:2;:9;23821:1;:8;:21;23773:69;:97;;;;;23858:5;:12;23846:1;:8;:24;23773:97;23765:125;;;;;;;-1:-1:-1;;;;;23765:125:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;23921:3;:10;23909:1;:8;:22;:48;;;;;23947:3;:10;23935:1;:8;:22;23909:48;:79;;;;;23973:8;:15;23961:1;:8;:27;23909:79;23901:107;;;;;;;-1:-1:-1;;;;;23901:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;24035:1:0;24021:226;24042:1;:8;24038:1;:12;24021:226;;;24098:86;24121:1;24123;24121:4;;;;;;;;;;;;;;;;;;24127:1;24129;24127:4;;;;;;;;;;;;;;;;;;24133:1;24135;24133:4;;;;;;;;;;;;;;;;;;24139:2;24142:1;24139:5;;;;;;;;;;;;;;;;;;24146;24152:1;24146:8;;;;;;;;;;;;;;;;;;24156:3;24160:1;24156:6;;;;;;;;;;;;;;;;;;24164:3;24168:1;24164:6;;;;;;;;;;;;;;;;;;24172:8;24181:1;24172:11;;;;;;;;;;;;;;;;;;24098:22;:86::i;:::-;24072:163;;;;;;;-1:-1:-1;;;;;24072:163:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;24052:3;;24021:226;;;-1:-1:-1;24264:4:0;;23562:714;-1:-1:-1;;;;;;;;;23562:714:0:o;18804:565::-;18949:4;19037:9;19057;19077:7;18974:3;:10;18988:2;18974:16;18966:60;;;;;;;-1:-1:-1;;;;;18966:60:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;19139:2:0;19130:12;;19124:19;19177:2;19168:12;;19162:19;19223:2;19214:12;;19208:19;19205:1;19200:28;19257:62;19124:19;19162;19200:28;19289:2;19293:5;19300:3;19305;19310:8;19257:22;:62::i;:::-;19249:90;;;;;;;-1:-1:-1;;;;;19249:90:0;;;;;;;;;;;;;;;;;;;;;;;;;;;8089:730;12655:6;;8234:4;;-1:-1:-1;;;12655:6:0;;;;12654:7;12646:33;;;;;-1:-1:-1;;;;;12646:33:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;12646:33:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;8264:17:0;;;;8256:61;;;;;-1:-1:-1;;;;;8256:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8337:11:0;;;;;;:6;:11;;;;;;;;8336:12;:30;;;;-1:-1:-1;;;;;;8353:13:0;;;;;;:6;:13;;;;;;;;8352:14;8336:30;:53;;;;-1:-1:-1;8378:10:0;8371:18;;;;:6;:18;;;;;;;;8370:19;8336:53;8328:80;;;;;;;-1:-1:-1;;;;;8328:80:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;8328:80:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;8437:15:0;;;;;;:8;:15;;;;;;8427:25;;;8419:56;;;;;-1:-1:-1;;;;;8419:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8504:14:0;;;;;;:7;:14;;;;;;;;8519:10;8504:26;;;;;;;;8494:36;;;8486:71;;;;;-1:-1:-1;;;;;8486:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8588:15:0;;;;;;:8;:15;;;;;;:27;;8608:6;8588:27;:19;:27;:::i;:::-;-1:-1:-1;;;;;8570:15:0;;;;;;;:8;:15;;;;;;:45;;;;8642:13;;;;;;;:25;;8660:6;8642:25;:17;:25;:::i;:::-;-1:-1:-1;;;;;8626:13:0;;;;;;;:8;:13;;;;;;;;:41;;;;8707:14;;;;;:7;:14;;;;;8722:10;8707:26;;;;;;;:38;;8738:6;8707:38;:30;:38;:::i;:::-;-1:-1:-1;;;;;8678:14:0;;;;;;;:7;:14;;;;;;;;8693:10;8678:26;;;;;;;;:67;;;;8761:28;;;;;;;;;;;8678:14;;-1:-1:-1;;;;;;;;;;;8761:28:0;;;;;;;;;;-1:-1:-1;8807:4:0;8089:730;;;;;:::o;6100:381::-;2851:80;;;;;;;;;;;;;;;;;;;;;;;;;6373:4;;;;;;;;;;;;;;;;6357:22;;2851:80;;6357:22;;;;6373:4;6357:22;6373:4;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;6357:22:0;;;;;;;;;;;;6246:189;;;;;;;;;;;;;;6414:4;6246:189;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;6246:189:0;;;;;;;;6236:200;;6246:189;;;;-1:-1:-1;6246:189:0;;-1:-1:-1;6236:200:0;;;;;-1:-1:-1;6236:200:0;6246:189;6236:200;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;;;;365:33;;6236:200:0;;;;;;;;;;6215:18;:221;-1:-1:-1;;6447:13:0;:26;;-1:-1:-1;;;;;;6447:26:0;;;-1:-1:-1;6100:381:0:o;1912:35::-;1945:2;1912:35;:::o;13020:140::-;10463:5;;-1:-1:-1;;;;;10463:5:0;10449:10;:19;10441:41;;;;;-1:-1:-1;;;;;10441:41:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;10441:41:0;;;;;;;;;;;;;;;13075:6;;-1:-1:-1;;;13075:6:0;;;;13067:35;;;;;;;-1:-1:-1;;;;;13067:35:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;13113:6;:14;;-1:-1:-1;;13113:14:0;;;13143:9;;;;13122:5;;13143:9;13020:140::o;14346:203::-;13807:19;;-1:-1:-1;;;;;13807:19:0;13793:10;:33;13785:69;;;;;-1:-1:-1;;;;;13785:69:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14429:13:0;;;;;;:6;:13;;;;;;;;14421:50;;;;;;;-1:-1:-1;;;;;14421:50:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14482:13:0;;14498:5;14482:13;;;:6;:13;;;;;;:21;;-1:-1:-1;;14482:21:0;;;14519:22;;;14498:5;14519:22;14346:203;:::o;11745:268::-;11811:13;;11857:17;;-1:-1:-1;;;;;11811:13:0;11797:10;:27;11789:57;;;;;-1:-1:-1;;;;;11789:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11877:5:0;;;11901:13;;;-1:-1:-1;;;;;;11893:21:0;;;-1:-1:-1;;;;;11901:13:0;;;11893:21;;;;;;;;11925:26;;;;;11967:38;;11877:5;;;;11999;;11877;;11967:38;;11877:5;;11967:38;11745:268;:::o;15666:408::-;15765:16;;-1:-1:-1;;;;;15765:16:0;15751:10;:30;;:53;;-1:-1:-1;15799:5:0;;-1:-1:-1;;;;;15799:5:0;15785:10;:19;15751:53;15743:96;;;;;;;-1:-1:-1;;;;;15743:96:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15858:34:0;;;;15850:91;;;;;-1:-1:-1;;;;;15850:91:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15977:16;;15957:59;;-1:-1:-1;;;;;15957:59:0;;;;15977:16;;15957:59;;15977:16;;15957:59;16027:16;:39;;-1:-1:-1;;;;;;16027:39:0;-1:-1:-1;;;;;16027:39:0;;;;;;;;;;15666:408::o;2161:26::-;;;-1:-1:-1;;;2161:26:0;;;;;:::o;7657:105::-;-1:-1:-1;;;;;7739:15:0;7712:7;7739:15;;;:8;:15;;;;;;;7657:105::o;5318:260::-;5367:11;;;;5366:12;5358:44;;;;;-1:-1:-1;;;;;5358:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;5413:5;:18;;5421:10;-1:-1:-1;;;;;;5413:18:0;;;;;;;;5442:19;:32;;;;;;-1:-1:-1;5485:12:0;:16;;;5512;:29;;;;;;;;;;5552:18;;-1:-1:-1;;5552:18:0;-1:-1:-1;5552:18:0;;;5318:260::o;12791:134::-;10463:5;;-1:-1:-1;;;;;10463:5:0;10449:10;:19;10441:41;;;;;-1:-1:-1;;;;;10441:41:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;10441:41:0;;;;;;;;;;;;;;;12845:6;;-1:-1:-1;;;12845:6:0;;;;12844:7;12836:34;;;;;-1:-1:-1;;;;;12836:34:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;12881:6;:13;;-1:-1:-1;;12881:13:0;-1:-1:-1;;;12881:13:0;;;12910:7;;;;12881:13;;12910:7;12791:134::o;17932:107::-;-1:-1:-1;;;;;18015:16:0;17988:7;18015:16;;;:8;:16;;;;;;;17932:107::o;13398:333::-;13503:19;;-1:-1:-1;;;;;13503:19:0;13489:10;:33;;:56;;-1:-1:-1;13540:5:0;;-1:-1:-1;;;;;13540:5:0;13526:10;:19;13489:56;13481:102;;;;;;;-1:-1:-1;;;;;13481:102:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13622:19;;13599:68;;-1:-1:-1;;;;;13599:68:0;;;;13622:19;;13599:68;;13622:19;;13599:68;13678:19;:45;;-1:-1:-1;;;;;;13678:45:0;-1:-1:-1;;;;;13678:45:0;;;;;;;;;;13398:333::o;14012:197::-;13807:19;;-1:-1:-1;;;;;13807:19:0;13793:10;:33;13785:69;;;;;-1:-1:-1;;;;;13785:69:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14094:13:0;;;;;;:6;:13;;;;;;;;14093:14;14085:49;;;;;-1:-1:-1;;;;;14085:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14145:13:0;;;;;;:6;:13;;;;;;:20;;-1:-1:-1;;14145:20:0;14161:4;14145:20;;;14181;;;14145:13;14181:20;14012:197;:::o;2107:20::-;;;-1:-1:-1;;;;;2107:20:0;;:::o;1834:38::-;;;;;;;;;;;;;;;;;;;:::o;24809:321::-;24910:23;;-1:-1:-1;;;;;24910:23:0;24896:10;:37;;:60;;-1:-1:-1;24951:5:0;;-1:-1:-1;;;;;24951:5:0;24937:10;:19;24896:60;24888:98;;;;;;;-1:-1:-1;;;;;24888:98:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;24997:23;:41;;-1:-1:-1;;;;;;24997:41:0;-1:-1:-1;;;;;24997:41:0;;;;;;;;;;25054:68;;24997:41;;25081:23;;25054:68;;-1:-1:-1;;25054:68:0;24809:321;:::o;17115:445::-;16147:16;;17192:12;;-1:-1:-1;;;;;16147:16:0;16133:10;:30;16125:63;;;;;-1:-1:-1;;;;;16125:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;17244:16;;-1:-1:-1;;;;;17244:16:0;17235:26;;;;:8;:26;;;;;;17225:36;;;17217:66;;;;;-1:-1:-1;;;;;17217:66:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;17332:16;;-1:-1:-1;;;;;17332:16:0;17323:26;;;;:8;:26;;;;;;:38;;17354:6;17323:38;:30;:38;:::i;:::-;17303:16;;-1:-1:-1;;;;;17303:16:0;17294:26;;;;:8;:26;;;;;:67;17387:12;;:24;;17404:6;17387:24;:16;:24;:::i;:::-;17372:12;:39;17443:16;;17427:41;;;;;;;;-1:-1:-1;;;;;17443:16:0;;;;17427:41;;;;;;;;;17493:16;;17484:46;;;;;;;;17519:1;;-1:-1:-1;;;;;17493:16:0;;-1:-1:-1;;;;;;;;;;;17484:46:0;;;;;;;;;-1:-1:-1;17548:4:0;17115:445;;;:::o;24523:131::-;-1:-1:-1;;;;;24618:28:0;24594:4;24618:28;;;:21;:28;;;;;;;;;24523:131::o;6938:499::-;12655:6;;7015:4;;-1:-1:-1;;;12655:6:0;;;;12654:7;12646:33;;;;;-1:-1:-1;;;;;12646:33:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;12646:33:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;7040:17:0;;;;7032:61;;;;;-1:-1:-1;;;;;7032:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7113:11:0;;;;;;:6;:11;;;;;;;;7112:12;:35;;;;-1:-1:-1;7136:10:0;7129:18;;;;:6;:18;;;;;;;;7128:19;7112:35;7104:62;;;;;;;-1:-1:-1;;;;;7104:62:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7104:62:0;;;;;;;;;;;;;;;7204:10;7195:20;;;;:8;:20;;;;;;7185:30;;;7177:61;;;;;-1:-1:-1;;;;;7177:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;7283:10;7274:20;;;;:8;:20;;;;;;:32;;7299:6;7274:32;:24;:32;:::i;:::-;7260:10;7251:20;;;;:8;:20;;;;;;:55;;;;-1:-1:-1;;;;;7333:13:0;;;;;;:25;;7351:6;7333:25;:17;:25;:::i;:::-;-1:-1:-1;;;;;7317:13:0;;;;;;:8;:13;;;;;;;;;:41;;;;7374:33;;;;;;;7317:13;;7383:10;;-1:-1:-1;;;;;;;;;;;7374:33:0;;;;;;;;;-1:-1:-1;7425:4:0;6938:499;;;;:::o;25437:262::-;25210:23;;-1:-1:-1;;;;;25210:23:0;25196:10;:37;25188:77;;;;;-1:-1:-1;;;;;25188:77:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;25538:28:0;;;;;;:21;:28;;;;;;;;25537:29;25529:70;;;;;-1:-1:-1;;;;;25529:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;25610:28:0;;;;;;:21;:28;;;;;;:35;;-1:-1:-1;;25610:35:0;25641:4;25610:35;;;25661:30;;;25610:28;25661:30;25437:262;:::o;10711:343::-;10463:5;;-1:-1:-1;;;;;10463:5:0;10449:10;:19;10441:41;;;;;-1:-1:-1;;;;;10441:41:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;10441:41:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;10793:28:0;;;;10785:82;;;;;-1:-1:-1;;;;;10785:82:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10886:10;-1:-1:-1;;;;;10886:28:0;;;;10878:64;;;;;-1:-1:-1;;;;;10878:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;10953:13;:30;;-1:-1:-1;;;;;;10953:30:0;-1:-1:-1;;;;;10953:30:0;;;;;;;;;;;11025:5;;10999:47;;11032:13;;;;11025:5;;;10999:47;;-1:-1:-1;;10999:47:0;10711:343;:::o;16475:368::-;16147:16;;16552:12;;-1:-1:-1;;;;;16147:16:0;16133:10;:30;16125:63;;;;;-1:-1:-1;;;;;16125:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;16592:12;;:24;;16609:6;16592:24;:16;:24;:::i;:::-;16577:12;:39;16665:16;;-1:-1:-1;;;;;16665:16:0;16656:26;;;;:8;:26;;;;;;:38;;16687:6;16656:38;:30;:38;:::i;:::-;16636:16;;;-1:-1:-1;;;;;16636:16:0;;;16627:26;;;;:8;:26;;;;;;;;;:67;;;;16726:16;;16710:41;;;;;;;16726:16;;;16710:41;;;;;;;;16788:16;;16767:46;;;;;;;;-1:-1:-1;;;;;16788:16:0;;;;;;-1:-1:-1;;;;;;;;;;;16767:46:0;;;;;;;;;-1:-1:-1;16831:4:0;16475:368;;;:::o;2479:38::-;;;-1:-1:-1;;;;;2479:38:0;;:::o;2410:28::-;;;-1:-1:-1;;;;;2410:28:0;;:::o;25856:262::-;25210:23;;-1:-1:-1;;;;;25210:23:0;25196:10;:37;25188:77;;;;;-1:-1:-1;;;;;25188:77:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;25958:28:0;;;;;;:21;:28;;;;;;;;25950:65;;;;;;;-1:-1:-1;;;;;25950:65:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;26026:28:0;;26057:5;26026:28;;;:21;:28;;;;;;:36;;-1:-1:-1;;26026:36:0;;;26078:32;;;26057:5;26078:32;25856:262;:::o;10107:179::-;-1:-1:-1;;;;;10253:15:0;;;10221:7;10253:15;;;:7;:15;;;;;;;;:25;;;;;;;;;;;;;10107:179::o;14741:408::-;13807:19;;14883:16;;-1:-1:-1;;;;;13807:19:0;13793:10;:33;13785:69;;;;;-1:-1:-1;;;;;13785:69:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14833:13:0;;;;;;:6;:13;;;;;;;;14825:47;;;;;;;-1:-1:-1;;;;;14825:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;14902:15:0;;;;;;:8;:15;;;;;;;14928:19;;;14973:12;;:26;;14902:15;14973:26;:16;:26;:::i;:::-;14958:12;:41;15015:25;;-1:-1:-1;;;;;15015:25:0;;;;;;;;15056:32;;;;;;;;-1:-1:-1;;;;;15056:32:0;;;;;;;;;;;;;15104:37;;;;;;;;15128:1;;-1:-1:-1;;;;;15104:37:0;;;-1:-1:-1;;;;;;;;;;;15104:37:0;;;;;;;;14741:408;;:::o;3230:33::-;;;;:::o;15356:99::-;-1:-1:-1;;;;;15434:13:0;15410:4;15434:13;;;:6;:13;;;;;;;;;15356:99::o;2344:31::-;;;-1:-1:-1;;;;;2344:31:0;;:::o;12232:228::-;10463:5;;12285:16;;-1:-1:-1;;;;;10463:5:0;10449:10;:19;10441:41;;;;;-1:-1:-1;;;;;10441:41:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;10441:41:0;;;;;;;;;;;;;;;-1:-1:-1;12313:4:0;12304:14;;;;:8;:14;;;;;;;;12329:18;;;;12385:5;;-1:-1:-1;;;;;12385:5:0;12376:15;;;;;:29;;12304:14;12376:29;:19;:29;:::i;:::-;12367:5;;;-1:-1:-1;;;;;12367:5:0;;;12358:15;;;;:8;:15;;;;;;;;;:47;;;;12436:5;;12421:31;;;;;;;12436:5;;;12430:4;;-1:-1:-1;;;;;;;;;;;12421:31:0;;;;;;;;;;12232:228;:::o;20573:1972::-;12655:6;;20755:4;;;;;;;;-1:-1:-1;;;12655:6:0;;;;12654:7;12646:33;;;;;-1:-1:-1;;;;;12646:33:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;12646:33:0;;;;;;;;;;;;;;;20802:10;20780:33;;;;:21;:33;;;;;;;;20772:93;;;;;;;-1:-1:-1;;;;;20772:93:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20892:1;20884:5;:9;:20;;;;20903:1;20897:3;:7;20884:20;20876:74;;;;;;;-1:-1:-1;;;;;20876:74:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20969:12;:24;-1:-1:-1;20969:24:0;20961:56;;;;;-1:-1:-1;;;;;20961:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;21104:66;21090:80;;;21082:112;;;;;-1:-1:-1;;;;;21082:112:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;21213:1;:7;;21218:2;21213:7;:18;;;;21224:1;:7;;21229:2;21224:7;21213:18;21205:50;;;;;;;-1:-1:-1;;;;;21205:50:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;3004:117;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21398:149;;;;-1:-1:-1;;;;;21494:11:0;;21398:149;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;21398:149:0;;;;;;;;21388:160;;21398:149;;;;;21388:160;;;;21398:149;21388:160;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;21388:160:0;;;;;;;;;;;;21601:13;;;;;;;;;;;;;;;;21616:18;;21584:74;;21388:160;;-1:-1:-1;21388:160:0;;-1:-1:-1;21616:18:0;;-1:-1:-1;21388:160:0;;21584:74;;;-1:-1:-1;21584:74:0;;21601:13;;21584:74;21601:13;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;21584:74:0;;;;;-1:-1:-1;21584:74:0;;;;;;;-1:-1:-1;21584:74:0;;;26:21:-1;;;22:32;;6:49;;21584:74:0;;;;;;;21574:85;;21584:74;;-1:-1:-1;21584:74:0;;;21574:85;;;;21584:74;21574:85;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;21574:85:0;;;;;;;;;;;;;;;;21559:100;;21686:24;21696:4;21702:1;21705;21708;21686:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;21686:24:0;;-1:-1:-1;;21686:24:0;;;-1:-1:-1;;;;;;;21731:19:0;;;;21723:77;;;;;-1:-1:-1;;;;;21723:77:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21819:16:0;;;;21811:51;;;;;-1:-1:-1;;;;;21811:51:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21882:10:0;;;;;;:6;:10;;;;;;;;21881:11;:29;;;;-1:-1:-1;;;;;;21897:13:0;;;;;;:6;:13;;;;;;;;21896:14;21881:29;:52;;;;-1:-1:-1;21922:10:0;21915:18;;;;:6;:18;;;;;;;;21914:19;21881:52;21873:79;;;;;;;-1:-1:-1;;;;;21873:79:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;21873:79:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;21989:15:0;;;;;;:8;:15;;;;;;21971:14;:5;21981:3;21971:14;:9;:14;:::i;:::-;:33;;21963:63;;;;;-1:-1:-1;;;;;21963:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22045:15:0;;;;;;:8;:15;;;;;;:22;;22037:48;;;;;-1:-1:-1;;;;;22037:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22116:15:0;;;;;;:8;:15;;;;;;:22;;22136:1;22116:22;:19;:22;:::i;:::-;-1:-1:-1;;;;;22098:15:0;;;;;;:8;:15;;;;;:40;22167:35;22187:14;:5;22197:3;22187:14;:9;:14;:::i;:::-;-1:-1:-1;;;;;22167:15:0;;;;;;:8;:15;;;;;;;:35;:19;:35;:::i;:::-;-1:-1:-1;;;;;22149:15:0;;;;;;:8;:15;;;;;:53;22217:8;;22213:145;;22274:10;22265:20;;;;:8;:20;;;;;;:29;;22290:3;22265:29;:24;:29;:::i;:::-;22251:10;22242:20;;;;:8;:20;;;;;;;;;:52;;;;22314:32;;;;;;;22251:10;;-1:-1:-1;;;;;22314:32:0;;;-1:-1:-1;;;;;;;;;;;22314:32:0;;;;;;;;;22213:145;-1:-1:-1;;;;;22383:12:0;;;;;;:8;:12;;;;;;:23;;22400:5;22383:23;:16;:23;:::i;:::-;-1:-1:-1;;;;;22368:12:0;;;;;;;:8;:12;;;;;;;;;:38;;;;22422:26;;;;;;;22368:12;;22422:26;;;;-1:-1:-1;;;;;;;;;;;22422:26:0;;;;;;;;22466:49;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22466:49:0;;;;;;;;;;;;;;;;;-1:-1:-1;22533:4:0;;20573:1972;-1:-1:-1;;;;;;;;;;;20573:1972:0:o;310:150::-;368:7;;396:6;;;;388:15;;;;;;-1:-1:-1;;426:5:0;;;310:150::o;536:::-;594:7;626:5;;;650:6;;;;642:15;;;;;;677:1;536:150;-1:-1:-1;;;536:150:0:o
Swarm Source
bzzr://e64c615c754155a7fd7f7163f434a5c66926342f918c2ed1af6cac200a51a00b
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.