Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
89,603.619567554555892001 XFOLD
Holders
206
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
8.318750315300463874 XFOLDValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
DictatorDAO
Compiler Version
v0.6.12+commit.27d51765
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-12-01 */ // SPDX-License-Identifier: MIXED // File @boringcrypto/boring-solidity/contracts/libraries/[email protected] // License-Identifier: MIT pragma solidity 0.6.12; /// @notice A library for performing overflow-/underflow-safe math, /// updated with awesomeness from of DappHub (https://github.com/dapphub/ds-math). library BoringMath { function add(uint256 a, uint256 b) internal pure returns (uint256 c) { require((c = a + b) >= b, "BoringMath: Add Overflow"); } function sub(uint256 a, uint256 b) internal pure returns (uint256 c) { require((c = a - b) <= a, "BoringMath: Underflow"); } function mul(uint256 a, uint256 b) internal pure returns (uint256 c) { require(b == 0 || (c = a * b) / b == a, "BoringMath: Mul Overflow"); } function to128(uint256 a) internal pure returns (uint128 c) { require(a <= uint128(-1), "BoringMath: uint128 Overflow"); c = uint128(a); } function to64(uint256 a) internal pure returns (uint64 c) { require(a <= uint64(-1), "BoringMath: uint64 Overflow"); c = uint64(a); } function to32(uint256 a) internal pure returns (uint32 c) { require(a <= uint32(-1), "BoringMath: uint32 Overflow"); c = uint32(a); } } /// @notice A library for performing overflow-/underflow-safe addition and subtraction on uint128. library BoringMath128 { function add(uint128 a, uint128 b) internal pure returns (uint128 c) { require((c = a + b) >= b, "BoringMath: Add Overflow"); } function sub(uint128 a, uint128 b) internal pure returns (uint128 c) { require((c = a - b) <= a, "BoringMath: Underflow"); } } /// @notice A library for performing overflow-/underflow-safe addition and subtraction on uint64. library BoringMath64 { function add(uint64 a, uint64 b) internal pure returns (uint64 c) { require((c = a + b) >= b, "BoringMath: Add Overflow"); } function sub(uint64 a, uint64 b) internal pure returns (uint64 c) { require((c = a - b) <= a, "BoringMath: Underflow"); } } /// @notice A library for performing overflow-/underflow-safe addition and subtraction on uint32. library BoringMath32 { function add(uint32 a, uint32 b) internal pure returns (uint32 c) { require((c = a + b) >= b, "BoringMath: Add Overflow"); } function sub(uint32 a, uint32 b) internal pure returns (uint32 c) { require((c = a - b) <= a, "BoringMath: Underflow"); } } // File @boringcrypto/boring-solidity/contracts/[email protected] // License-Identifier: MIT // Based on code and smartness by Ross Campbell and Keno // Uses immutable to store the domain separator to reduce gas usage // If the chain id changes due to a fork, the forked chain will calculate on the fly. pragma solidity 0.6.12; // solhint-disable no-inline-assembly contract Domain { bytes32 private constant DOMAIN_SEPARATOR_SIGNATURE_HASH = keccak256("EIP712Domain(uint256 chainId,address verifyingContract)"); // See https://eips.ethereum.org/EIPS/eip-191 string private constant EIP191_PREFIX_FOR_EIP712_STRUCTURED_DATA = "\x19\x01"; // solhint-disable var-name-mixedcase bytes32 private immutable _DOMAIN_SEPARATOR; uint256 private immutable DOMAIN_SEPARATOR_CHAIN_ID; /// @dev Calculate the DOMAIN_SEPARATOR function _calculateDomainSeparator(uint256 chainId) private view returns (bytes32) { return keccak256( abi.encode( DOMAIN_SEPARATOR_SIGNATURE_HASH, chainId, address(this) ) ); } constructor() public { uint256 chainId; assembly {chainId := chainid()} _DOMAIN_SEPARATOR = _calculateDomainSeparator(DOMAIN_SEPARATOR_CHAIN_ID = chainId); } /// @dev Return the DOMAIN_SEPARATOR // It's named internal to allow making it public from the contract that uses it by creating a simple view function // with the desired public name, such as DOMAIN_SEPARATOR or domainSeparator. // solhint-disable-next-line func-name-mixedcase function _domainSeparator() internal view returns (bytes32) { uint256 chainId; assembly {chainId := chainid()} return chainId == DOMAIN_SEPARATOR_CHAIN_ID ? _DOMAIN_SEPARATOR : _calculateDomainSeparator(chainId); } function _getDigest(bytes32 dataHash) internal view returns (bytes32 digest) { digest = keccak256( abi.encodePacked( EIP191_PREFIX_FOR_EIP712_STRUCTURED_DATA, _domainSeparator(), dataHash ) ); } } // File contracts/interfaces/IERC20.sol //License-Identifier: MIT pragma solidity ^0.6.12; interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transfer(address to, uint256 amount) external returns (bool); function transferFrom( address from, address to, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); /// @notice EIP 2612 function permit( address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) external; } // File contracts/DictatorDAO.sol //License-Identifier: MIT pragma solidity ^0.6.12; pragma experimental ABIEncoderV2; // DAO code/operator management/dutch auction, etc by BoringCrypto // Staking in DictatorDAO inspired by Chef Nomi's SushiBar (heavily modified) - MIT license (originally WTFPL) // TimeLock functionality Copyright 2020 Compound Labs, Inc. - BSD 3-Clause "New" or "Revised" License contract DictatorDAO is IERC20, Domain { using BoringMath for uint256; using BoringMath128 for uint128; string public symbol; string public name; uint8 public constant decimals = 18; uint256 public override totalSupply; IERC20 public immutable token; address public operator; mapping(address => address) public userVote; mapping(address => uint256) public votes; constructor( string memory sharesSymbol, string memory sharesName, IERC20 token_, address initialOperator ) public { symbol = sharesSymbol; name = sharesName; token = token_; operator = initialOperator; } struct User { uint128 balance; uint128 lockedUntil; } /// @notice owner > balance mapping. mapping(address => User) public users; /// @notice owner > spender > allowance mapping. mapping(address => mapping(address => uint256)) public override allowance; /// @notice owner > nonce mapping. Used in `permit`. mapping(address => uint256) public nonces; function balanceOf(address user) public view override returns (uint256 balance) { return users[user].balance; } function _transfer( address from, address to, uint256 shares ) internal { User memory fromUser = users[from]; require(block.timestamp >= fromUser.lockedUntil, "Locked"); if (shares != 0) { require(fromUser.balance >= shares, "Low balance"); if (from != to) { require(to != address(0), "Zero address"); // Moved down so other failed calls save some gas User memory toUser = users[to]; address userVoteTo = userVote[to]; address userVoteFrom = userVote[from]; users[from].balance = fromUser.balance - shares.to128(); // Underflow is checked users[to].balance = toUser.balance + shares.to128(); // Can't overflow because totalSupply would be greater than 2^256-1 // The "from" user's nominee started with at least that user's // votes, and votes correspond to 1:1 to balances. By the // "Low balance" check above this will not underflow. votes[userVoteFrom] -= shares; // The "to" user's nominee started with at most `totalSupply` // votes. By the above, they have at least `shares` fewer now. // It follows that there can be no overflow. votes[userVoteTo] += shares; } } emit Transfer(from, to, shares); } function _useAllowance(address from, uint256 shares) internal { if (msg.sender == from) { return; } uint256 spenderAllowance = allowance[from][msg.sender]; // If allowance is infinite, don't decrease it to save on gas (breaks with EIP-20). if (spenderAllowance != type(uint256).max) { require(spenderAllowance >= shares, "Low allowance"); allowance[from][msg.sender] = spenderAllowance - shares; // Underflow is checked } } /// @notice Transfers `shares` tokens from `msg.sender` to `to`. /// @param to The address to move the tokens. /// @param shares of the tokens to move. /// @return (bool) Returns True if succeeded. function transfer(address to, uint256 shares) external override returns (bool) { _transfer(msg.sender, to, shares); return true; } /// @notice Transfers `shares` tokens from `from` to `to`. Caller needs approval for `from`. /// @param from Address to draw tokens from. /// @param to The address to move the tokens. /// @param shares The token shares to move. /// @return (bool) Returns True if succeeded. function transferFrom( address from, address to, uint256 shares ) external override returns (bool) { _useAllowance(from, shares); _transfer(from, to, shares); return true; } /// @notice Approves `amount` from sender to be spend by `spender`. /// @param spender Address of the party that can draw from msg.sender's account. /// @param amount The maximum collective amount that `spender` can draw. /// @return (bool) Returns True if approved. function approve(address spender, uint256 amount) external override returns (bool) { allowance[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } // solhint-disable-next-line func-name-mixedcase function DOMAIN_SEPARATOR() external view returns (bytes32) { return _domainSeparator(); } // keccak256("Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)"); bytes32 private constant PERMIT_SIGNATURE_HASH = 0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9; /// @notice Approves `value` from `owner_` to be spend by `spender`. /// @param owner_ Address of the owner. /// @param spender The address of the spender that gets approved to draw from `owner_`. /// @param value The maximum collective amount that `spender` can draw. /// @param deadline This permit must be redeemed before this deadline (UTC timestamp in seconds). function permit( address owner_, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) external override { require(owner_ != address(0), "Zero owner"); require(block.timestamp < deadline, "Expired"); require( ecrecover( _getDigest( keccak256( abi.encode( PERMIT_SIGNATURE_HASH, owner_, spender, value, nonces[owner_]++, deadline ) ) ), v, r, s ) == owner_, "Invalid Sig" ); allowance[owner_][spender] = value; emit Approval(owner_, spender, value); } // Operator Setting address public pendingOperator; uint256 public pendingOperatorTime; // Condition for safe math: totalSupply < 2^255, so that the doubling fits. // A sufficient condition is for this to hold for token.totalSupply. function setOperator(address newOperator) public { require(newOperator != address(0), "Zero operator"); uint256 netVotes = totalSupply - votes[address(0)]; if (newOperator != pendingOperator) { require(votes[newOperator] * 2 > netVotes, "Not enough votes"); pendingOperator = newOperator; pendingOperatorTime = block.timestamp + 7 days; } else { if (votes[newOperator] * 2 > netVotes) { require(block.timestamp >= pendingOperatorTime, "Wait longer"); operator = pendingOperator; } // If there aren't enough votes, then the pending operator failed // to maintain a majority. If there are, then they are now the // operator. In either situation: pendingOperator = address(0); pendingOperatorTime = 0; } } /// math is ok, because amount, totalSupply and shares is always 0 <= amount <= 100.000.000 * 10^18 /// theoretically you can grow the amount/share ratio, but it's not practical and useless function mint(uint256 amount, address operatorVote) public returns (bool) { require(msg.sender != address(0), "Zero address"); User memory user = users[msg.sender]; uint256 totalTokens = token.balanceOf(address(this)); uint256 shares = totalSupply == 0 ? amount : (amount * totalSupply) / totalTokens; // Did we change our vote? Do this while we know our previous total: address currentVote = userVote[msg.sender]; uint256 extraVotes = shares; if (currentVote != operatorVote) { if (user.balance > 0) { // Safe, because the user must have added their balance before votes[currentVote] -= user.balance; extraVotes += user.balance; } userVote[msg.sender] = operatorVote; } votes[operatorVote] += extraVotes; user.balance += shares.to128(); user.lockedUntil = (block.timestamp + 24 hours).to128(); users[msg.sender] = user; totalSupply += shares; token.transferFrom(msg.sender, address(this), amount); emit Transfer(address(0), msg.sender, shares); return true; } // Change your vote. Does not lock tokens. function vote(address operatorVote) public returns (bool) { address currentVote = userVote[msg.sender]; if (currentVote != operatorVote) { User memory user = users[msg.sender]; if (user.balance > 0) { votes[currentVote] -= user.balance; votes[operatorVote] += user.balance; } userVote[msg.sender] = operatorVote; } return true; } function _burn( address from, address to, uint256 shares ) internal { require(to != address(0), "Zero address"); User memory user = users[from]; require(block.timestamp >= user.lockedUntil, "Locked"); uint256 amount = (shares * token.balanceOf(address(this))) / totalSupply; users[from].balance = user.balance.sub(shares.to128()); // Must check underflow totalSupply -= shares; votes[userVote[from]] -= shares; token.transfer(to, amount); emit Transfer(from, address(0), shares); } function burn(address to, uint256 shares) public returns (bool) { _burn(msg.sender, to, shares); return true; } function burnFrom( address from, address to, uint256 shares ) public returns (bool) { _useAllowance(from, shares); _burn(from, to, shares); return true; } event QueueTransaction( bytes32 indexed txHash, address indexed target, uint256 value, bytes data, uint256 eta ); event CancelTransaction( bytes32 indexed txHash, address indexed target, uint256 value, bytes data ); event ExecuteTransaction( bytes32 indexed txHash, address indexed target, uint256 value, bytes data ); uint256 public constant GRACE_PERIOD = 14 days; uint256 public constant DELAY = 2 days; mapping(bytes32 => uint256) public queuedTransactions; function queueTransaction( address target, uint256 value, bytes memory data ) public returns (bytes32) { require(msg.sender == operator, "Operator only"); require(votes[operator] * 2 > totalSupply, "Not enough votes"); bytes32 txHash = keccak256(abi.encode(target, value, data)); uint256 eta = block.timestamp + DELAY; queuedTransactions[txHash] = eta; emit QueueTransaction(txHash, target, value, data, eta); return txHash; } function cancelTransaction( address target, uint256 value, bytes memory data ) public { require(msg.sender == operator, "Operator only"); bytes32 txHash = keccak256(abi.encode(target, value, data)); queuedTransactions[txHash] = 0; emit CancelTransaction(txHash, target, value, data); } function executeTransaction( address target, uint256 value, bytes memory data ) public payable returns (bytes memory) { require(msg.sender == operator, "Operator only"); require(votes[operator] * 2 > totalSupply, "Not enough votes"); bytes32 txHash = keccak256(abi.encode(target, value, data)); uint256 eta = queuedTransactions[txHash]; require(block.timestamp >= eta, "Too early"); require(block.timestamp <= eta + GRACE_PERIOD, "Tx stale"); queuedTransactions[txHash] = 0; // solium-disable-next-line security/no-call-value (bool success, bytes memory returnData) = target.call{value: value}(data); require(success, "Tx reverted :("); emit ExecuteTransaction(txHash, target, value, data); return returnData; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"string","name":"sharesSymbol","type":"string"},{"internalType":"string","name":"sharesName","type":"string"},{"internalType":"contract IERC20","name":"token_","type":"address"},{"internalType":"address","name":"initialOperator","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"txHash","type":"bytes32"},{"indexed":true,"internalType":"address","name":"target","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"CancelTransaction","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"txHash","type":"bytes32"},{"indexed":true,"internalType":"address","name":"target","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"ExecuteTransaction","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"txHash","type":"bytes32"},{"indexed":true,"internalType":"address","name":"target","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"},{"indexed":false,"internalType":"uint256","name":"eta","type":"uint256"}],"name":"QueueTransaction","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DELAY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"GRACE_PERIOD","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"shares","type":"uint256"}],"name":"burn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"shares","type":"uint256"}],"name":"burnFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"cancelTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"executeTransaction","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"operatorVote","type":"address"}],"name":"mint","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"operator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOperator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOperatorTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner_","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"queueTransaction","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"queuedTransactions","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOperator","type":"address"}],"name":"setOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"shares","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"shares","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"userVote","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"users","outputs":[{"internalType":"uint128","name":"balance","type":"uint128"},{"internalType":"uint128","name":"lockedUntil","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"operatorVote","type":"address"}],"name":"vote","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"votes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
60e06040523480156200001157600080fd5b506040516200475638038062004756833981810160405281019062000037919062000295565b6000469050620000538160a0818152506200010f60201b60201c565b608081815250505083600090805190602001906200007392919062000165565b5082600190805190602001906200008c92919062000165565b508173ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff1660601b8152505080600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050620004c4565b60007f47e79534a245952e8b16893a336b85a3d9ea9fa8c573f3d803afb92a794692188230604051602001620001489392919062000366565b604051602081830303815290604052805190602001209050919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001a857805160ff1916838001178555620001d9565b82800160010185558215620001d9579182015b82811115620001d8578251825591602001919060010190620001bb565b5b509050620001e89190620001ec565b5090565b5b8082111562000207576000816000905550600101620001ed565b5090565b6000815190506200021c8162000490565b92915050565b6000815190506200023381620004aa565b92915050565b600082601f8301126200024b57600080fd5b8151620002626200025c82620003d1565b620003a3565b915080825260208301602083018583830111156200027f57600080fd5b6200028c8382846200045a565b50505092915050565b60008060008060808587031215620002ac57600080fd5b600085015167ffffffffffffffff811115620002c757600080fd5b620002d58782880162000239565b945050602085015167ffffffffffffffff811115620002f357600080fd5b620003018782880162000239565b9350506040620003148782880162000222565b925050606062000327878288016200020b565b91505092959194509250565b6200033e81620003fe565b82525050565b6200034f8162000412565b82525050565b620003608162000450565b82525050565b60006060820190506200037d600083018662000344565b6200038c602083018562000355565b6200039b604083018462000333565b949350505050565b6000604051905081810181811067ffffffffffffffff82111715620003c757600080fd5b8060405250919050565b600067ffffffffffffffff821115620003e957600080fd5b601f19601f8301169050602081019050919050565b60006200040b8262000430565b9050919050565b6000819050919050565b60006200042982620003fe565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b838110156200047a5780820151818401526020810190506200045d565b838111156200048a576000848401525b50505050565b6200049b81620003fe565b8114620004a757600080fd5b50565b620004b5816200041c565b8114620004c157600080fd5b50565b60805160a05160c05160601c61424e62000508600039806113e7528061180652806122835280612cfa5280612f14525080612a68525080612a9d525061424e6000f3fe6080604052600436106101cd5760003560e01c806395d89b41116100f7578063d505accf11610095578063ec60bcf311610064578063ec60bcf314610708578063f2b0653714610745578063f5ba1c8714610782578063fc0c546a146107bf576101cd565b8063d505accf1461063c578063d8bff5a514610665578063dd62ed3e146106a2578063e37c9fd5146106df576101cd565b8063a9059cbb116100d1578063a9059cbb14610580578063ac7e534e146105bd578063b3ab15fb146105e8578063c1a287e214610611576101cd565b806395d89b41146104da5780639dc29fac14610505578063a87430ba14610542576101cd565b80634881636d1161016f57806370a082311161013e57806370a08231146103e65780637ecebe001461042357806380b3b0991461046057806394bf804d1461049d576101cd565b80634881636d14610328578063570ca7351461035357806369b411701461037e5780636dd7d8ea146103a9576101cd565b806323b872dd116101ab57806323b872dd14610265578063313ce567146102a25780633644e515146102cd5780633f579f42146102f8576101cd565b806306fdde03146101d2578063095ea7b3146101fd57806318160ddd1461023a575b600080fd5b3480156101de57600080fd5b506101e76107ea565b6040516101f49190613cdd565b60405180910390f35b34801561020957600080fd5b50610224600480360381019061021f91906133c7565b610888565b6040516102319190613b8d565b60405180910390f35b34801561024657600080fd5b5061024f61097a565b60405161025c9190613f28565b60405180910390f35b34801561027157600080fd5b5061028c600480360381019061028791906132da565b610980565b6040516102999190613b8d565b60405180910390f35b3480156102ae57600080fd5b506102b76109a2565b6040516102c49190613fb1565b60405180910390f35b3480156102d957600080fd5b506102e26109a7565b6040516102ef9190613ba8565b60405180910390f35b610312600480360381019061030d9190613403565b6109b6565b60405161031f9190613ca0565b60405180910390f35b34801561033457600080fd5b5061033d610ceb565b60405161034a9190613f28565b60405180910390f35b34801561035f57600080fd5b50610368610cf1565b6040516103759190613ad4565b60405180910390f35b34801561038a57600080fd5b50610393610d17565b6040516103a09190613f28565b60405180910390f35b3480156103b557600080fd5b506103d060048036038101906103cb9190613275565b610d1e565b6040516103dd9190613b8d565b60405180910390f35b3480156103f257600080fd5b5061040d60048036038101906104089190613275565b61100e565b60405161041a9190613f28565b60405180910390f35b34801561042f57600080fd5b5061044a60048036038101906104459190613275565b611088565b6040516104579190613f28565b60405180910390f35b34801561046c57600080fd5b5061048760048036038101906104829190613403565b6110a0565b6040516104949190613ba8565b60405180910390f35b3480156104a957600080fd5b506104c460048036038101906104bf91906134e5565b61128a565b6040516104d19190613b8d565b60405180910390f35b3480156104e657600080fd5b506104ef611929565b6040516104fc9190613cdd565b60405180910390f35b34801561051157600080fd5b5061052c600480360381019061052791906133c7565b6119c7565b6040516105399190613b8d565b60405180910390f35b34801561054e57600080fd5b5061056960048036038101906105649190613275565b6119de565b604051610577929190613eff565b60405180910390f35b34801561058c57600080fd5b506105a760048036038101906105a291906133c7565b611a3a565b6040516105b49190613b8d565b60405180910390f35b3480156105c957600080fd5b506105d2611a51565b6040516105df9190613ad4565b60405180910390f35b3480156105f457600080fd5b5061060f600480360381019061060a9190613275565b611a77565b005b34801561061d57600080fd5b50610626611d9c565b6040516106339190613f28565b60405180910390f35b34801561064857600080fd5b50610663600480360381019061065e9190613329565b611da3565b005b34801561067157600080fd5b5061068c60048036038101906106879190613275565b6120a8565b6040516106999190613f28565b60405180910390f35b3480156106ae57600080fd5b506106c960048036038101906106c4919061329e565b6120c0565b6040516106d69190613f28565b60405180910390f35b3480156106eb57600080fd5b5061070660048036038101906107019190613403565b6120e5565b005b34801561071457600080fd5b5061072f600480360381019061072a91906132da565b612214565b60405161073c9190613b8d565b60405180910390f35b34801561075157600080fd5b5061076c60048036038101906107679190613493565b612236565b6040516107799190613f28565b60405180910390f35b34801561078e57600080fd5b506107a960048036038101906107a49190613275565b61224e565b6040516107b69190613ad4565b60405180910390f35b3480156107cb57600080fd5b506107d4612281565b6040516107e19190613cc2565b60405180910390f35b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108805780601f1061085557610100808354040283529160200191610880565b820191906000526020600020905b81548152906001019060200180831161086357829003601f168201915b505050505081565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516109689190613f28565b60405180910390a36001905092915050565b60025481565b600061098c84836122a5565b610997848484612453565b600190509392505050565b601281565b60006109b1612a60565b905090565b6060600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3f90613e5f565b60405180910390fd5b600254600260056000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020540211610af0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae790613d1f565b60405180910390fd5b6000848484604051602001610b0793929190613b4f565b6040516020818303038152906040528051906020012090506000600b600083815260200190815260200160002054905080421015610b7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7190613e1f565b60405180910390fd5b621275008101421115610bc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb990613ddf565b60405180910390fd5b6000600b600084815260200190815260200160002081905550600060608773ffffffffffffffffffffffffffffffffffffffff168787604051610c059190613a84565b60006040518083038185875af1925050503d8060008114610c42576040519150601f19603f3d011682016040523d82523d6000602084013e610c47565b606091505b509150915081610c8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8390613e3f565b60405180910390fd5b8773ffffffffffffffffffffffffffffffffffffffff16847f71f2f703ef5605f99bb79556066217af28b9d991b829c9f4255e1abdf873fb4a8989604051610cd5929190613f43565b60405180910390a3809450505050509392505050565b600a5481565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6202a30081565b600080600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461100457610dbe613165565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1681526020016000820160109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815250509050600081600001516fffffffffffffffffffffffffffffffff161115610f845780600001516fffffffffffffffffffffffffffffffff16600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555080600001516fffffffffffffffffffffffffffffffff16600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b83600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505b6001915050919050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff169050919050565b60086020528060005260406000206000915090505481565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611132576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112990613e5f565b60405180910390fd5b600254600260056000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205402116111da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d190613d1f565b60405180910390fd5b60008484846040516020016111f193929190613b4f565b60405160208183030381529060405280519060200120905060006202a3004201905080600b6000848152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff16827f9ffdf0c63c8eec344b500e806ac1d1d37308fdf141a29d10cdd82c069aec6e4887878560405161127693929190613f73565b60405180910390a381925050509392505050565b60008073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156112fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f290613dbf565b60405180910390fd5b611303613165565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1681526020016000820160109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1681525050905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161143e9190613ad4565b60206040518083038186803b15801561145657600080fd5b505afa15801561146a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061148e91906134bc565b9050600080600254146114ae57816002548702816114a857fe5b046114b0565b855b90506000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008290508673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461166b57600085600001516fffffffffffffffffffffffffffffffff1611156115ec5784600001516fffffffffffffffffffffffffffffffff16600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555084600001516fffffffffffffffffffffffffffffffff16810190505b86600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b80600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506116c183612ac3565b85600001818151019150906fffffffffffffffffffffffffffffffff1690816fffffffffffffffffffffffffffffffff1681525050611704620151804201612ac3565b85602001906fffffffffffffffffffffffffffffffff1690816fffffffffffffffffffffffffffffffff168152505084600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060208201518160000160106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550905050826002600082825401925050819055507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166323b872dd33308b6040518463ffffffff1660e01b815260040161186193929190613aef565b602060405180830381600087803b15801561187b57600080fd5b505af115801561188f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118b3919061346a565b503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516119129190613f28565b60405180910390a360019550505050505092915050565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156119bf5780601f10611994576101008083540402835291602001916119bf565b820191906000526020600020905b8154815290600101906020018083116119a257829003601f168201915b505050505081565b60006119d4338484612b42565b6001905092915050565b60066020528060005260406000206000915090508060000160009054906101000a90046fffffffffffffffffffffffffffffffff16908060000160109054906101000a90046fffffffffffffffffffffffffffffffff16905082565b6000611a47338484612453565b6001905092915050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611ae7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ade90613d7f565b60405180910390fd5b6000600560008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600254039050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611c5a57806002600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020540211611c08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bff90613d1f565b60405180910390fd5b81600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062093a804201600a81905550611d98565b806002600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054021115611d4d57600a54421015611ce9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ce090613edf565b60405180910390fd5b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b6000600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600a819055505b5050565b6212750081565b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161415611e13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0a90613e9f565b60405180910390fd5b834210611e55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4c90613ebf565b60405180910390fd5b8673ffffffffffffffffffffffffffffffffffffffff166001611f177f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c960001b8a8a8a600860008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600101919050558b604051602001611efc96959493929190613bc3565b6040516020818303038152906040528051906020012061302d565b85858560405160008152602001604052604051611f379493929190613c5b565b6020604051602081039080840390855afa158015611f59573d6000803e3d6000fd5b5050506020604051035173ffffffffffffffffffffffffffffffffffffffff1614611fb9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb090613e7f565b60405180910390fd5b84600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925876040516120979190613f28565b60405180910390a350505050505050565b60056020528060005260406000206000915090505481565b6007602052816000526040600020602052806000526040600020600091509150505481565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612175576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161216c90613e5f565b60405180910390fd5b600083838360405160200161218c93929190613b4f565b6040516020818303038152906040528051906020012090506000600b6000838152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff16817f7666fc3824e27fff7f62adc190adf39d59915b1634803f46f6002f5a071de7f78585604051612206929190613f43565b60405180910390a350505050565b600061222084836122a5565b61222b848484612b42565b600190509392505050565b600b6020528060005260406000206000915090505481565b60046020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b8173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156122de5761244f565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461244d57818110156123c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c090613d5f565b60405180910390fd5b818103600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b505b5050565b61245b613165565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1681526020016000820160109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1681525050905080602001516fffffffffffffffffffffffffffffffff16421015612594576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161258b90613d3f565b60405180910390fd5b600082146129f5578181600001516fffffffffffffffffffffffffffffffff1610156125f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125ec90613d9f565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146129f457600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612698576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161268f90613dbf565b60405180910390fd5b6126a0613165565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1681526020016000820160109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152505090506000600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905061285185612ac3565b846000015103600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506128d885612ac3565b836000015101600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555084600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555084600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505050505b5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612a529190613f28565b60405180910390a350505050565b6000804690507f00000000000000000000000000000000000000000000000000000000000000008114612a9b57612a968161309d565b612abd565b7f00000000000000000000000000000000000000000000000000000000000000005b91505090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6fffffffffffffffffffffffffffffffff16821115612b3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b3190613dff565b60405180910390fd5b819050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612bb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ba990613dbf565b60405180910390fd5b612bba613165565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1681526020016000820160109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1681525050905080602001516fffffffffffffffffffffffffffffffff16421015612cf3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cea90613d3f565b60405180910390fd5b60006002547f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401612d519190613ad4565b60206040518083038186803b158015612d6957600080fd5b505afa158015612d7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612da191906134bc565b840281612daa57fe5b049050612dde612db984612ac3565b83600001516fffffffffffffffffffffffffffffffff166130f190919063ffffffff16565b600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550826002600082825403925050819055508260056000600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb85836040518363ffffffff1660e01b8152600401612f6d929190613b26565b602060405180830381600087803b158015612f8757600080fd5b505af1158015612f9b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fbf919061346a565b50600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161301e9190613f28565b60405180910390a35050505050565b60006040518060400160405280600281526020017f190100000000000000000000000000000000000000000000000000000000000081525061306d612a60565b8360405160200161308093929190613a9b565b604051602081830303815290604052805190602001209050919050565b60007f47e79534a245952e8b16893a336b85a3d9ea9fa8c573f3d803afb92a7946921882306040516020016130d493929190613c24565b604051602081830303815290604052805190602001209050919050565b6000826fffffffffffffffffffffffffffffffff168284039150816fffffffffffffffffffffffffffffffff16111561315f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161315690613cff565b60405180910390fd5b92915050565b604051806040016040528060006fffffffffffffffffffffffffffffffff16815260200160006fffffffffffffffffffffffffffffffff1681525090565b6000813590506131b2816141a5565b92915050565b6000815190506131c7816141bc565b92915050565b6000813590506131dc816141d3565b92915050565b600082601f8301126131f357600080fd5b813561320661320182613ff9565b613fcc565b9150808252602083016020830185838301111561322257600080fd5b61322d838284614148565b50505092915050565b600081359050613245816141ea565b92915050565b60008151905061325a816141ea565b92915050565b60008135905061326f81614201565b92915050565b60006020828403121561328757600080fd5b6000613295848285016131a3565b91505092915050565b600080604083850312156132b157600080fd5b60006132bf858286016131a3565b92505060206132d0858286016131a3565b9150509250929050565b6000806000606084860312156132ef57600080fd5b60006132fd868287016131a3565b935050602061330e868287016131a3565b925050604061331f86828701613236565b9150509250925092565b600080600080600080600060e0888a03121561334457600080fd5b60006133528a828b016131a3565b97505060206133638a828b016131a3565b96505060406133748a828b01613236565b95505060606133858a828b01613236565b94505060806133968a828b01613260565b93505060a06133a78a828b016131cd565b92505060c06133b88a828b016131cd565b91505092959891949750929550565b600080604083850312156133da57600080fd5b60006133e8858286016131a3565b92505060206133f985828601613236565b9150509250929050565b60008060006060848603121561341857600080fd5b6000613426868287016131a3565b935050602061343786828701613236565b925050604084013567ffffffffffffffff81111561345457600080fd5b613460868287016131e2565b9150509250925092565b60006020828403121561347c57600080fd5b600061348a848285016131b8565b91505092915050565b6000602082840312156134a557600080fd5b60006134b3848285016131cd565b91505092915050565b6000602082840312156134ce57600080fd5b60006134dc8482850161324b565b91505092915050565b600080604083850312156134f857600080fd5b600061350685828601613236565b9250506020613517858286016131a3565b9150509250929050565b61352a816140ee565b82525050565b61353981614073565b82525050565b61354881614085565b82525050565b61355781614091565b82525050565b61356e61356982614091565b61418a565b82525050565b600061357f82614025565b613589818561403b565b9350613599818560208601614157565b6135a281614194565b840191505092915050565b60006135b882614025565b6135c2818561404c565b93506135d2818560208601614157565b80840191505092915050565b6135e781614100565b82525050565b60006135f882614030565b6136028185614057565b9350613612818560208601614157565b61361b81614194565b840191505092915050565b600061363182614030565b61363b8185614068565b935061364b818560208601614157565b80840191505092915050565b6000613664601583614057565b91507f426f72696e674d6174683a20556e646572666c6f7700000000000000000000006000830152602082019050919050565b60006136a4601083614057565b91507f4e6f7420656e6f75676820766f746573000000000000000000000000000000006000830152602082019050919050565b60006136e4600683614057565b91507f4c6f636b656400000000000000000000000000000000000000000000000000006000830152602082019050919050565b6000613724600d83614057565b91507f4c6f7720616c6c6f77616e6365000000000000000000000000000000000000006000830152602082019050919050565b6000613764600d83614057565b91507f5a65726f206f70657261746f72000000000000000000000000000000000000006000830152602082019050919050565b60006137a4600b83614057565b91507f4c6f772062616c616e63650000000000000000000000000000000000000000006000830152602082019050919050565b60006137e4600c83614057565b91507f5a65726f206164647265737300000000000000000000000000000000000000006000830152602082019050919050565b6000613824600883614057565b91507f5478207374616c650000000000000000000000000000000000000000000000006000830152602082019050919050565b6000613864601c83614057565b91507f426f72696e674d6174683a2075696e74313238204f766572666c6f77000000006000830152602082019050919050565b60006138a4600983614057565b91507f546f6f206561726c7900000000000000000000000000000000000000000000006000830152602082019050919050565b60006138e4600e83614057565b91507f5478207265766572746564203a280000000000000000000000000000000000006000830152602082019050919050565b6000613924600d83614057565b91507f4f70657261746f72206f6e6c79000000000000000000000000000000000000006000830152602082019050919050565b6000613964600b83614057565b91507f496e76616c6964205369670000000000000000000000000000000000000000006000830152602082019050919050565b60006139a4600a83614057565b91507f5a65726f206f776e6572000000000000000000000000000000000000000000006000830152602082019050919050565b60006139e4600783614057565b91507f45787069726564000000000000000000000000000000000000000000000000006000830152602082019050919050565b6000613a24600b83614057565b91507f57616974206c6f6e6765720000000000000000000000000000000000000000006000830152602082019050919050565b613a608161409b565b82525050565b613a6f816140d7565b82525050565b613a7e816140e1565b82525050565b6000613a9082846135ad565b915081905092915050565b6000613aa78286613626565b9150613ab3828561355d565b602082019150613ac3828461355d565b602082019150819050949350505050565b6000602082019050613ae96000830184613530565b92915050565b6000606082019050613b046000830186613521565b613b116020830185613530565b613b1e6040830184613a66565b949350505050565b6000604082019050613b3b6000830185613530565b613b486020830184613a66565b9392505050565b6000606082019050613b646000830186613530565b613b716020830185613a66565b8181036040830152613b838184613574565b9050949350505050565b6000602082019050613ba2600083018461353f565b92915050565b6000602082019050613bbd600083018461354e565b92915050565b600060c082019050613bd8600083018961354e565b613be56020830188613530565b613bf26040830187613530565b613bff6060830186613a66565b613c0c6080830185613a66565b613c1960a0830184613a66565b979650505050505050565b6000606082019050613c39600083018661354e565b613c466020830185613a66565b613c536040830184613530565b949350505050565b6000608082019050613c70600083018761354e565b613c7d6020830186613a75565b613c8a604083018561354e565b613c97606083018461354e565b95945050505050565b60006020820190508181036000830152613cba8184613574565b905092915050565b6000602082019050613cd760008301846135de565b92915050565b60006020820190508181036000830152613cf781846135ed565b905092915050565b60006020820190508181036000830152613d1881613657565b9050919050565b60006020820190508181036000830152613d3881613697565b9050919050565b60006020820190508181036000830152613d58816136d7565b9050919050565b60006020820190508181036000830152613d7881613717565b9050919050565b60006020820190508181036000830152613d9881613757565b9050919050565b60006020820190508181036000830152613db881613797565b9050919050565b60006020820190508181036000830152613dd8816137d7565b9050919050565b60006020820190508181036000830152613df881613817565b9050919050565b60006020820190508181036000830152613e1881613857565b9050919050565b60006020820190508181036000830152613e3881613897565b9050919050565b60006020820190508181036000830152613e58816138d7565b9050919050565b60006020820190508181036000830152613e7881613917565b9050919050565b60006020820190508181036000830152613e9881613957565b9050919050565b60006020820190508181036000830152613eb881613997565b9050919050565b60006020820190508181036000830152613ed8816139d7565b9050919050565b60006020820190508181036000830152613ef881613a17565b9050919050565b6000604082019050613f146000830185613a57565b613f216020830184613a57565b9392505050565b6000602082019050613f3d6000830184613a66565b92915050565b6000604082019050613f586000830185613a66565b8181036020830152613f6a8184613574565b90509392505050565b6000606082019050613f886000830186613a66565b8181036020830152613f9a8185613574565b9050613fa96040830184613a66565b949350505050565b6000602082019050613fc66000830184613a75565b92915050565b6000604051905081810181811067ffffffffffffffff82111715613fef57600080fd5b8060405250919050565b600067ffffffffffffffff82111561401057600080fd5b601f19601f8301169050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b600061407e826140b7565b9050919050565b60008115159050919050565b6000819050919050565b60006fffffffffffffffffffffffffffffffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006140f982614124565b9050919050565b600061410b82614112565b9050919050565b600061411d826140b7565b9050919050565b600061412f82614136565b9050919050565b6000614141826140b7565b9050919050565b82818337600083830152505050565b60005b8381101561417557808201518184015260208101905061415a565b83811115614184576000848401525b50505050565b6000819050919050565b6000601f19601f8301169050919050565b6141ae81614073565b81146141b957600080fd5b50565b6141c581614085565b81146141d057600080fd5b50565b6141dc81614091565b81146141e757600080fd5b50565b6141f3816140d7565b81146141fe57600080fd5b50565b61420a816140e1565b811461421557600080fd5b5056fea26469706673582212209dc1f17058f9eb6fee2a9196d61acece9e534d01ee6408e38a8777ddd963656d64736f6c634300060c0033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000d084944d3c05cd115c09d072b9f44ba3e0e45921000000000000000000000000a0766b65a4f7b1da79a1af79ac695456efa28644000000000000000000000000000000000000000000000000000000000000000558464f4c440000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007444f4d4f44414f00000000000000000000000000000000000000000000000000
Deployed Bytecode
0x6080604052600436106101cd5760003560e01c806395d89b41116100f7578063d505accf11610095578063ec60bcf311610064578063ec60bcf314610708578063f2b0653714610745578063f5ba1c8714610782578063fc0c546a146107bf576101cd565b8063d505accf1461063c578063d8bff5a514610665578063dd62ed3e146106a2578063e37c9fd5146106df576101cd565b8063a9059cbb116100d1578063a9059cbb14610580578063ac7e534e146105bd578063b3ab15fb146105e8578063c1a287e214610611576101cd565b806395d89b41146104da5780639dc29fac14610505578063a87430ba14610542576101cd565b80634881636d1161016f57806370a082311161013e57806370a08231146103e65780637ecebe001461042357806380b3b0991461046057806394bf804d1461049d576101cd565b80634881636d14610328578063570ca7351461035357806369b411701461037e5780636dd7d8ea146103a9576101cd565b806323b872dd116101ab57806323b872dd14610265578063313ce567146102a25780633644e515146102cd5780633f579f42146102f8576101cd565b806306fdde03146101d2578063095ea7b3146101fd57806318160ddd1461023a575b600080fd5b3480156101de57600080fd5b506101e76107ea565b6040516101f49190613cdd565b60405180910390f35b34801561020957600080fd5b50610224600480360381019061021f91906133c7565b610888565b6040516102319190613b8d565b60405180910390f35b34801561024657600080fd5b5061024f61097a565b60405161025c9190613f28565b60405180910390f35b34801561027157600080fd5b5061028c600480360381019061028791906132da565b610980565b6040516102999190613b8d565b60405180910390f35b3480156102ae57600080fd5b506102b76109a2565b6040516102c49190613fb1565b60405180910390f35b3480156102d957600080fd5b506102e26109a7565b6040516102ef9190613ba8565b60405180910390f35b610312600480360381019061030d9190613403565b6109b6565b60405161031f9190613ca0565b60405180910390f35b34801561033457600080fd5b5061033d610ceb565b60405161034a9190613f28565b60405180910390f35b34801561035f57600080fd5b50610368610cf1565b6040516103759190613ad4565b60405180910390f35b34801561038a57600080fd5b50610393610d17565b6040516103a09190613f28565b60405180910390f35b3480156103b557600080fd5b506103d060048036038101906103cb9190613275565b610d1e565b6040516103dd9190613b8d565b60405180910390f35b3480156103f257600080fd5b5061040d60048036038101906104089190613275565b61100e565b60405161041a9190613f28565b60405180910390f35b34801561042f57600080fd5b5061044a60048036038101906104459190613275565b611088565b6040516104579190613f28565b60405180910390f35b34801561046c57600080fd5b5061048760048036038101906104829190613403565b6110a0565b6040516104949190613ba8565b60405180910390f35b3480156104a957600080fd5b506104c460048036038101906104bf91906134e5565b61128a565b6040516104d19190613b8d565b60405180910390f35b3480156104e657600080fd5b506104ef611929565b6040516104fc9190613cdd565b60405180910390f35b34801561051157600080fd5b5061052c600480360381019061052791906133c7565b6119c7565b6040516105399190613b8d565b60405180910390f35b34801561054e57600080fd5b5061056960048036038101906105649190613275565b6119de565b604051610577929190613eff565b60405180910390f35b34801561058c57600080fd5b506105a760048036038101906105a291906133c7565b611a3a565b6040516105b49190613b8d565b60405180910390f35b3480156105c957600080fd5b506105d2611a51565b6040516105df9190613ad4565b60405180910390f35b3480156105f457600080fd5b5061060f600480360381019061060a9190613275565b611a77565b005b34801561061d57600080fd5b50610626611d9c565b6040516106339190613f28565b60405180910390f35b34801561064857600080fd5b50610663600480360381019061065e9190613329565b611da3565b005b34801561067157600080fd5b5061068c60048036038101906106879190613275565b6120a8565b6040516106999190613f28565b60405180910390f35b3480156106ae57600080fd5b506106c960048036038101906106c4919061329e565b6120c0565b6040516106d69190613f28565b60405180910390f35b3480156106eb57600080fd5b5061070660048036038101906107019190613403565b6120e5565b005b34801561071457600080fd5b5061072f600480360381019061072a91906132da565b612214565b60405161073c9190613b8d565b60405180910390f35b34801561075157600080fd5b5061076c60048036038101906107679190613493565b612236565b6040516107799190613f28565b60405180910390f35b34801561078e57600080fd5b506107a960048036038101906107a49190613275565b61224e565b6040516107b69190613ad4565b60405180910390f35b3480156107cb57600080fd5b506107d4612281565b6040516107e19190613cc2565b60405180910390f35b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108805780601f1061085557610100808354040283529160200191610880565b820191906000526020600020905b81548152906001019060200180831161086357829003601f168201915b505050505081565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516109689190613f28565b60405180910390a36001905092915050565b60025481565b600061098c84836122a5565b610997848484612453565b600190509392505050565b601281565b60006109b1612a60565b905090565b6060600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3f90613e5f565b60405180910390fd5b600254600260056000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020540211610af0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae790613d1f565b60405180910390fd5b6000848484604051602001610b0793929190613b4f565b6040516020818303038152906040528051906020012090506000600b600083815260200190815260200160002054905080421015610b7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7190613e1f565b60405180910390fd5b621275008101421115610bc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb990613ddf565b60405180910390fd5b6000600b600084815260200190815260200160002081905550600060608773ffffffffffffffffffffffffffffffffffffffff168787604051610c059190613a84565b60006040518083038185875af1925050503d8060008114610c42576040519150601f19603f3d011682016040523d82523d6000602084013e610c47565b606091505b509150915081610c8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8390613e3f565b60405180910390fd5b8773ffffffffffffffffffffffffffffffffffffffff16847f71f2f703ef5605f99bb79556066217af28b9d991b829c9f4255e1abdf873fb4a8989604051610cd5929190613f43565b60405180910390a3809450505050509392505050565b600a5481565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6202a30081565b600080600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461100457610dbe613165565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1681526020016000820160109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815250509050600081600001516fffffffffffffffffffffffffffffffff161115610f845780600001516fffffffffffffffffffffffffffffffff16600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555080600001516fffffffffffffffffffffffffffffffff16600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b83600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505b6001915050919050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff169050919050565b60086020528060005260406000206000915090505481565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611132576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112990613e5f565b60405180910390fd5b600254600260056000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205402116111da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d190613d1f565b60405180910390fd5b60008484846040516020016111f193929190613b4f565b60405160208183030381529060405280519060200120905060006202a3004201905080600b6000848152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff16827f9ffdf0c63c8eec344b500e806ac1d1d37308fdf141a29d10cdd82c069aec6e4887878560405161127693929190613f73565b60405180910390a381925050509392505050565b60008073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156112fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f290613dbf565b60405180910390fd5b611303613165565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1681526020016000820160109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1681525050905060007f000000000000000000000000d084944d3c05cd115c09d072b9f44ba3e0e4592173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161143e9190613ad4565b60206040518083038186803b15801561145657600080fd5b505afa15801561146a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061148e91906134bc565b9050600080600254146114ae57816002548702816114a857fe5b046114b0565b855b90506000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008290508673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461166b57600085600001516fffffffffffffffffffffffffffffffff1611156115ec5784600001516fffffffffffffffffffffffffffffffff16600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555084600001516fffffffffffffffffffffffffffffffff16810190505b86600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b80600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506116c183612ac3565b85600001818151019150906fffffffffffffffffffffffffffffffff1690816fffffffffffffffffffffffffffffffff1681525050611704620151804201612ac3565b85602001906fffffffffffffffffffffffffffffffff1690816fffffffffffffffffffffffffffffffff168152505084600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060208201518160000160106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550905050826002600082825401925050819055507f000000000000000000000000d084944d3c05cd115c09d072b9f44ba3e0e4592173ffffffffffffffffffffffffffffffffffffffff166323b872dd33308b6040518463ffffffff1660e01b815260040161186193929190613aef565b602060405180830381600087803b15801561187b57600080fd5b505af115801561188f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118b3919061346a565b503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516119129190613f28565b60405180910390a360019550505050505092915050565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156119bf5780601f10611994576101008083540402835291602001916119bf565b820191906000526020600020905b8154815290600101906020018083116119a257829003601f168201915b505050505081565b60006119d4338484612b42565b6001905092915050565b60066020528060005260406000206000915090508060000160009054906101000a90046fffffffffffffffffffffffffffffffff16908060000160109054906101000a90046fffffffffffffffffffffffffffffffff16905082565b6000611a47338484612453565b6001905092915050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611ae7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ade90613d7f565b60405180910390fd5b6000600560008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600254039050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611c5a57806002600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020540211611c08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bff90613d1f565b60405180910390fd5b81600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062093a804201600a81905550611d98565b806002600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054021115611d4d57600a54421015611ce9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ce090613edf565b60405180910390fd5b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b6000600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600a819055505b5050565b6212750081565b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161415611e13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0a90613e9f565b60405180910390fd5b834210611e55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4c90613ebf565b60405180910390fd5b8673ffffffffffffffffffffffffffffffffffffffff166001611f177f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c960001b8a8a8a600860008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600101919050558b604051602001611efc96959493929190613bc3565b6040516020818303038152906040528051906020012061302d565b85858560405160008152602001604052604051611f379493929190613c5b565b6020604051602081039080840390855afa158015611f59573d6000803e3d6000fd5b5050506020604051035173ffffffffffffffffffffffffffffffffffffffff1614611fb9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb090613e7f565b60405180910390fd5b84600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925876040516120979190613f28565b60405180910390a350505050505050565b60056020528060005260406000206000915090505481565b6007602052816000526040600020602052806000526040600020600091509150505481565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612175576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161216c90613e5f565b60405180910390fd5b600083838360405160200161218c93929190613b4f565b6040516020818303038152906040528051906020012090506000600b6000838152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff16817f7666fc3824e27fff7f62adc190adf39d59915b1634803f46f6002f5a071de7f78585604051612206929190613f43565b60405180910390a350505050565b600061222084836122a5565b61222b848484612b42565b600190509392505050565b600b6020528060005260406000206000915090505481565b60046020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000d084944d3c05cd115c09d072b9f44ba3e0e4592181565b8173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156122de5761244f565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461244d57818110156123c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c090613d5f565b60405180910390fd5b818103600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b505b5050565b61245b613165565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1681526020016000820160109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1681525050905080602001516fffffffffffffffffffffffffffffffff16421015612594576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161258b90613d3f565b60405180910390fd5b600082146129f5578181600001516fffffffffffffffffffffffffffffffff1610156125f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125ec90613d9f565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146129f457600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612698576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161268f90613dbf565b60405180910390fd5b6126a0613165565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1681526020016000820160109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152505090506000600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905061285185612ac3565b846000015103600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506128d885612ac3565b836000015101600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555084600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555084600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505050505b5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612a529190613f28565b60405180910390a350505050565b6000804690507f00000000000000000000000000000000000000000000000000000000000000018114612a9b57612a968161309d565b612abd565b7fa6caa45134e22d4caefce58f5734f99602b09c3c94b7f1d03d0fab0131090c985b91505090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6fffffffffffffffffffffffffffffffff16821115612b3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b3190613dff565b60405180910390fd5b819050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612bb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ba990613dbf565b60405180910390fd5b612bba613165565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1681526020016000820160109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1681525050905080602001516fffffffffffffffffffffffffffffffff16421015612cf3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cea90613d3f565b60405180910390fd5b60006002547f000000000000000000000000d084944d3c05cd115c09d072b9f44ba3e0e4592173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401612d519190613ad4565b60206040518083038186803b158015612d6957600080fd5b505afa158015612d7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612da191906134bc565b840281612daa57fe5b049050612dde612db984612ac3565b83600001516fffffffffffffffffffffffffffffffff166130f190919063ffffffff16565b600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550826002600082825403925050819055508260056000600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055507f000000000000000000000000d084944d3c05cd115c09d072b9f44ba3e0e4592173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb85836040518363ffffffff1660e01b8152600401612f6d929190613b26565b602060405180830381600087803b158015612f8757600080fd5b505af1158015612f9b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fbf919061346a565b50600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161301e9190613f28565b60405180910390a35050505050565b60006040518060400160405280600281526020017f190100000000000000000000000000000000000000000000000000000000000081525061306d612a60565b8360405160200161308093929190613a9b565b604051602081830303815290604052805190602001209050919050565b60007f47e79534a245952e8b16893a336b85a3d9ea9fa8c573f3d803afb92a7946921882306040516020016130d493929190613c24565b604051602081830303815290604052805190602001209050919050565b6000826fffffffffffffffffffffffffffffffff168284039150816fffffffffffffffffffffffffffffffff16111561315f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161315690613cff565b60405180910390fd5b92915050565b604051806040016040528060006fffffffffffffffffffffffffffffffff16815260200160006fffffffffffffffffffffffffffffffff1681525090565b6000813590506131b2816141a5565b92915050565b6000815190506131c7816141bc565b92915050565b6000813590506131dc816141d3565b92915050565b600082601f8301126131f357600080fd5b813561320661320182613ff9565b613fcc565b9150808252602083016020830185838301111561322257600080fd5b61322d838284614148565b50505092915050565b600081359050613245816141ea565b92915050565b60008151905061325a816141ea565b92915050565b60008135905061326f81614201565b92915050565b60006020828403121561328757600080fd5b6000613295848285016131a3565b91505092915050565b600080604083850312156132b157600080fd5b60006132bf858286016131a3565b92505060206132d0858286016131a3565b9150509250929050565b6000806000606084860312156132ef57600080fd5b60006132fd868287016131a3565b935050602061330e868287016131a3565b925050604061331f86828701613236565b9150509250925092565b600080600080600080600060e0888a03121561334457600080fd5b60006133528a828b016131a3565b97505060206133638a828b016131a3565b96505060406133748a828b01613236565b95505060606133858a828b01613236565b94505060806133968a828b01613260565b93505060a06133a78a828b016131cd565b92505060c06133b88a828b016131cd565b91505092959891949750929550565b600080604083850312156133da57600080fd5b60006133e8858286016131a3565b92505060206133f985828601613236565b9150509250929050565b60008060006060848603121561341857600080fd5b6000613426868287016131a3565b935050602061343786828701613236565b925050604084013567ffffffffffffffff81111561345457600080fd5b613460868287016131e2565b9150509250925092565b60006020828403121561347c57600080fd5b600061348a848285016131b8565b91505092915050565b6000602082840312156134a557600080fd5b60006134b3848285016131cd565b91505092915050565b6000602082840312156134ce57600080fd5b60006134dc8482850161324b565b91505092915050565b600080604083850312156134f857600080fd5b600061350685828601613236565b9250506020613517858286016131a3565b9150509250929050565b61352a816140ee565b82525050565b61353981614073565b82525050565b61354881614085565b82525050565b61355781614091565b82525050565b61356e61356982614091565b61418a565b82525050565b600061357f82614025565b613589818561403b565b9350613599818560208601614157565b6135a281614194565b840191505092915050565b60006135b882614025565b6135c2818561404c565b93506135d2818560208601614157565b80840191505092915050565b6135e781614100565b82525050565b60006135f882614030565b6136028185614057565b9350613612818560208601614157565b61361b81614194565b840191505092915050565b600061363182614030565b61363b8185614068565b935061364b818560208601614157565b80840191505092915050565b6000613664601583614057565b91507f426f72696e674d6174683a20556e646572666c6f7700000000000000000000006000830152602082019050919050565b60006136a4601083614057565b91507f4e6f7420656e6f75676820766f746573000000000000000000000000000000006000830152602082019050919050565b60006136e4600683614057565b91507f4c6f636b656400000000000000000000000000000000000000000000000000006000830152602082019050919050565b6000613724600d83614057565b91507f4c6f7720616c6c6f77616e6365000000000000000000000000000000000000006000830152602082019050919050565b6000613764600d83614057565b91507f5a65726f206f70657261746f72000000000000000000000000000000000000006000830152602082019050919050565b60006137a4600b83614057565b91507f4c6f772062616c616e63650000000000000000000000000000000000000000006000830152602082019050919050565b60006137e4600c83614057565b91507f5a65726f206164647265737300000000000000000000000000000000000000006000830152602082019050919050565b6000613824600883614057565b91507f5478207374616c650000000000000000000000000000000000000000000000006000830152602082019050919050565b6000613864601c83614057565b91507f426f72696e674d6174683a2075696e74313238204f766572666c6f77000000006000830152602082019050919050565b60006138a4600983614057565b91507f546f6f206561726c7900000000000000000000000000000000000000000000006000830152602082019050919050565b60006138e4600e83614057565b91507f5478207265766572746564203a280000000000000000000000000000000000006000830152602082019050919050565b6000613924600d83614057565b91507f4f70657261746f72206f6e6c79000000000000000000000000000000000000006000830152602082019050919050565b6000613964600b83614057565b91507f496e76616c6964205369670000000000000000000000000000000000000000006000830152602082019050919050565b60006139a4600a83614057565b91507f5a65726f206f776e6572000000000000000000000000000000000000000000006000830152602082019050919050565b60006139e4600783614057565b91507f45787069726564000000000000000000000000000000000000000000000000006000830152602082019050919050565b6000613a24600b83614057565b91507f57616974206c6f6e6765720000000000000000000000000000000000000000006000830152602082019050919050565b613a608161409b565b82525050565b613a6f816140d7565b82525050565b613a7e816140e1565b82525050565b6000613a9082846135ad565b915081905092915050565b6000613aa78286613626565b9150613ab3828561355d565b602082019150613ac3828461355d565b602082019150819050949350505050565b6000602082019050613ae96000830184613530565b92915050565b6000606082019050613b046000830186613521565b613b116020830185613530565b613b1e6040830184613a66565b949350505050565b6000604082019050613b3b6000830185613530565b613b486020830184613a66565b9392505050565b6000606082019050613b646000830186613530565b613b716020830185613a66565b8181036040830152613b838184613574565b9050949350505050565b6000602082019050613ba2600083018461353f565b92915050565b6000602082019050613bbd600083018461354e565b92915050565b600060c082019050613bd8600083018961354e565b613be56020830188613530565b613bf26040830187613530565b613bff6060830186613a66565b613c0c6080830185613a66565b613c1960a0830184613a66565b979650505050505050565b6000606082019050613c39600083018661354e565b613c466020830185613a66565b613c536040830184613530565b949350505050565b6000608082019050613c70600083018761354e565b613c7d6020830186613a75565b613c8a604083018561354e565b613c97606083018461354e565b95945050505050565b60006020820190508181036000830152613cba8184613574565b905092915050565b6000602082019050613cd760008301846135de565b92915050565b60006020820190508181036000830152613cf781846135ed565b905092915050565b60006020820190508181036000830152613d1881613657565b9050919050565b60006020820190508181036000830152613d3881613697565b9050919050565b60006020820190508181036000830152613d58816136d7565b9050919050565b60006020820190508181036000830152613d7881613717565b9050919050565b60006020820190508181036000830152613d9881613757565b9050919050565b60006020820190508181036000830152613db881613797565b9050919050565b60006020820190508181036000830152613dd8816137d7565b9050919050565b60006020820190508181036000830152613df881613817565b9050919050565b60006020820190508181036000830152613e1881613857565b9050919050565b60006020820190508181036000830152613e3881613897565b9050919050565b60006020820190508181036000830152613e58816138d7565b9050919050565b60006020820190508181036000830152613e7881613917565b9050919050565b60006020820190508181036000830152613e9881613957565b9050919050565b60006020820190508181036000830152613eb881613997565b9050919050565b60006020820190508181036000830152613ed8816139d7565b9050919050565b60006020820190508181036000830152613ef881613a17565b9050919050565b6000604082019050613f146000830185613a57565b613f216020830184613a57565b9392505050565b6000602082019050613f3d6000830184613a66565b92915050565b6000604082019050613f586000830185613a66565b8181036020830152613f6a8184613574565b90509392505050565b6000606082019050613f886000830186613a66565b8181036020830152613f9a8185613574565b9050613fa96040830184613a66565b949350505050565b6000602082019050613fc66000830184613a75565b92915050565b6000604051905081810181811067ffffffffffffffff82111715613fef57600080fd5b8060405250919050565b600067ffffffffffffffff82111561401057600080fd5b601f19601f8301169050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b600061407e826140b7565b9050919050565b60008115159050919050565b6000819050919050565b60006fffffffffffffffffffffffffffffffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006140f982614124565b9050919050565b600061410b82614112565b9050919050565b600061411d826140b7565b9050919050565b600061412f82614136565b9050919050565b6000614141826140b7565b9050919050565b82818337600083830152505050565b60005b8381101561417557808201518184015260208101905061415a565b83811115614184576000848401525b50505050565b6000819050919050565b6000601f19601f8301169050919050565b6141ae81614073565b81146141b957600080fd5b50565b6141c581614085565b81146141d057600080fd5b50565b6141dc81614091565b81146141e757600080fd5b50565b6141f3816140d7565b81146141fe57600080fd5b50565b61420a816140e1565b811461421557600080fd5b5056fea26469706673582212209dc1f17058f9eb6fee2a9196d61acece9e534d01ee6408e38a8777ddd963656d64736f6c634300060c0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000d084944d3c05cd115c09d072b9f44ba3e0e45921000000000000000000000000a0766b65a4f7b1da79a1af79ac695456efa28644000000000000000000000000000000000000000000000000000000000000000558464f4c440000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007444f4d4f44414f00000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : sharesSymbol (string): XFOLD
Arg [1] : sharesName (string): DOMODAO
Arg [2] : token_ (address): 0xd084944d3c05CD115C09d072B9F44bA3E0E45921
Arg [3] : initialOperator (address): 0xA0766B65A4f7B1da79a1AF79aC695456eFa28644
-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [2] : 000000000000000000000000d084944d3c05cd115c09d072b9f44ba3e0e45921
Arg [3] : 000000000000000000000000a0766b65a4f7b1da79a1af79ac695456efa28644
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [5] : 58464f4c44000000000000000000000000000000000000000000000000000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000007
Arg [7] : 444f4d4f44414f00000000000000000000000000000000000000000000000000
Deployed Bytecode Sourcemap
6287:13155:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6435:18;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10842:248;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6502:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10310:237;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6460:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11152:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18560:879;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12959:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6582:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17545:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15568:456;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7419:166;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7369:41;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17652:530;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14281:1231;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6408:20;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16656:134;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7133:37;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;9818:185;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12922:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13157:916;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17492:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11894:995;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6664:40;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7231:73;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18190:362;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16798:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17590:53;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6614:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6546:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6435:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;10842:248::-;10946:4;11001:6;10968:9;:21;10978:10;10968:21;;;;;;;;;;;;;;;:30;10990:7;10968:30;;;;;;;;;;;;;;;:39;;;;11044:7;11023:37;;11032:10;11023:37;;;11053:6;11023:37;;;;;;:::i;:::-;;;;;;;;11078:4;11071:11;;10842:248;;;;:::o;6502:35::-;;;;:::o;10310:237::-;10435:4;10452:27;10466:4;10472:6;10452:13;:27::i;:::-;10490;10500:4;10506:2;10510:6;10490:9;:27::i;:::-;10535:4;10528:11;;10310:237;;;;;:::o;6460:35::-;6493:2;6460:35;:::o;11152:104::-;11203:7;11230:18;:16;:18::i;:::-;11223:25;;11152:104;:::o;18560:879::-;18696:12;18743:8;;;;;;;;;;;18729:22;;:10;:22;;;18721:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;18810:11;;18806:1;18788:5;:15;18794:8;;;;;;;;;;;18788:15;;;;;;;;;;;;;;;;:19;:33;18780:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;18855:14;18893:6;18901:5;18908:4;18882:31;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;18872:42;;;;;;18855:59;;18925:11;18939:18;:26;18958:6;18939:26;;;;;;;;;;;;18925:40;;19003:3;18984:15;:22;;18976:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;17531:7;19058:3;:18;19039:15;:37;;19031:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;19131:1;19102:18;:26;19121:6;19102:26;;;;;;;;;;;:30;;;;19206:12;19220:23;19260:6;:11;;19279:5;19286:4;19260:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19205:86;;;;19310:7;19302:34;;;;;;;;;;;;:::i;:::-;;;;;;;;;19381:6;19354:47;;19373:6;19354:47;19389:5;19396:4;19354:47;;;;;;;:::i;:::-;;;;;;;;19421:10;19414:17;;;;;;18560:879;;;;;:::o;12959:34::-;;;;:::o;6582:23::-;;;;;;;;;;;;;:::o;17545:38::-;17577:6;17545:38;:::o;15568:456::-;15620:4;15637:19;15659:8;:20;15668:10;15659:20;;;;;;;;;;;;;;;;;;;;;;;;;15637:42;;15709:12;15694:27;;:11;:27;;;15690:305;;15738:16;;:::i;:::-;15757:5;:17;15763:10;15757:17;;;;;;;;;;;;;;;15738:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15808:1;15793:4;:12;;;:16;;;15789:145;;;15852:4;:12;;;15830:34;;:5;:18;15836:11;15830:18;;;;;;;;;;;;;;;;:34;;;;;;;;;;;15906:4;:12;;;15883:35;;:5;:19;15889:12;15883:19;;;;;;;;;;;;;;;;:35;;;;;;;;;;;15789:145;15971:12;15948:8;:20;15957:10;15948:20;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;15690:305;;16012:4;16005:11;;;15568:456;;;:::o;7419:166::-;7518:15;7558:5;:11;7564:4;7558:11;;;;;;;;;;;;;;;:19;;;;;;;;;;;;7551:26;;;;7419:166;;;:::o;7369:41::-;;;;;;;;;;;;;;;;;:::o;17652:530::-;17778:7;17820:8;;;;;;;;;;;17806:22;;:10;:22;;;17798:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;17887:11;;17883:1;17865:5;:15;17871:8;;;;;;;;;;;17865:15;;;;;;;;;;;;;;;;:19;:33;17857:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;17932:14;17970:6;17978:5;17985:4;17959:31;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;17949:42;;;;;;17932:59;;18002:11;17577:6;18016:15;:23;18002:37;;18079:3;18050:18;:26;18069:6;18050:26;;;;;;;;;;;:32;;;;18125:6;18100:50;;18117:6;18100:50;18133:5;18140:4;18146:3;18100:50;;;;;;;;:::i;:::-;;;;;;;;18168:6;18161:13;;;;17652:530;;;;;:::o;14281:1231::-;14349:4;14396:1;14374:24;;:10;:24;;;;14366:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;14426:16;;:::i;:::-;14445:5;:17;14451:10;14445:17;;;;;;;;;;;;;;;14426:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14475:19;14497:5;:15;;;14521:4;14497:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14475:52;;14538:14;14583:1;14568:11;;:16;:64;;14621:11;14606;;14597:6;:20;14596:36;;;;;;14568:64;;;14587:6;14568:64;14538:94;;14723:19;14745:8;:20;14754:10;14745:20;;;;;;;;;;;;;;;;;;;;;;;;;14723:42;;14776:18;14797:6;14776:27;;14833:12;14818:27;;:11;:27;;;14814:325;;14881:1;14866:4;:12;;;:16;;;14862:216;;;15005:4;:12;;;14983:34;;:5;:18;14989:11;14983:18;;;;;;;;;;;;;;;;:34;;;;;;;;;;;15050:4;:12;;;15036:26;;;;;;14862:216;15115:12;15092:8;:20;15101:10;15092:20;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;14814:325;15172:10;15149:5;:19;15155:12;15149:19;;;;;;;;;;;;;;;;:33;;;;;;;;;;;15211:14;:6;:12;:14::i;:::-;15195:4;:12;;:30;;;;;;;;;;;;;;;;;15255:36;15274:8;15256:15;:26;15255:34;:36::i;:::-;15236:4;:16;;:55;;;;;;;;;;;15322:4;15302:5;:17;15308:10;15302:17;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15352:6;15337:11;;:21;;;;;;;;;;;15371:5;:18;;;15390:10;15410:4;15417:6;15371:53;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15463:10;15442:40;;15459:1;15442:40;;;15475:6;15442:40;;;;;;:::i;:::-;;;;;;;;15500:4;15493:11;;;;;;;14281:1231;;;;:::o;6408:20::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;16656:134::-;16714:4;16731:29;16737:10;16749:2;16753:6;16731:5;:29::i;:::-;16778:4;16771:11;;16656:134;;;;:::o;7133:37::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;9818:185::-;9918:4;9940:33;9950:10;9962:2;9966:6;9940:9;:33::i;:::-;9991:4;9984:11;;9818:185;;;;:::o;12922:30::-;;;;;;;;;;;;;:::o;13157:916::-;13248:1;13225:25;;:11;:25;;;;13217:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;13279:16;13312:5;:17;13326:1;13312:17;;;;;;;;;;;;;;;;13298:11;;:31;13279:50;;13359:15;;;;;;;;;;;13344:30;;:11;:30;;;13340:726;;13424:8;13420:1;13399:5;:18;13405:11;13399:18;;;;;;;;;;;;;;;;:22;:33;13391:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;13486:11;13468:15;;:29;;;;;;;;;;;;;;;;;;13552:6;13534:15;:24;13512:19;:46;;;;13340:726;;;13620:8;13616:1;13595:5;:18;13601:11;13595:18;;;;;;;;;;;;;;;;:22;:33;13591:181;;;13676:19;;13657:15;:38;;13649:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;13741:15;;;;;;;;;;;13730:8;;:26;;;;;;;;;;;;;;;;;;13591:181;14014:1;13988:15;;:28;;;;;;;;;;;;;;;;;;14053:1;14031:19;:23;;;;13340:726;13157:916;;:::o;17492:46::-;17531:7;17492:46;:::o;11894:995::-;12132:1;12114:20;;:6;:20;;;;12106:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;12186:8;12168:15;:26;12160:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;12743:6;12239:510;;:500;12267:397;11427:66;12377:21;;12429:6;12466:7;12504:5;12540:6;:14;12547:6;12540:14;;;;;;;;;;;;;;;;:16;;;;;;;;;;;;12587:8;12336:286;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;12300:345;;;;;;12267:10;:397::i;:::-;12683:1;12703;12723;12239:500;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:510;;;12217:571;;;;;;;;;;;;:::i;:::-;;;;;;;;;12828:5;12799:9;:17;12809:6;12799:17;;;;;;;;;;;;;;;:26;12817:7;12799:26;;;;;;;;;;;;;;;:34;;;;12866:7;12849:32;;12858:6;12849:32;;;12875:5;12849:32;;;;;;:::i;:::-;;;;;;;;11894:995;;;;;;;:::o;6664:40::-;;;;;;;;;;;;;;;;;:::o;7231:73::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;18190:362::-;18341:8;;;;;;;;;;;18327:22;;:10;:22;;;18319:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;18380:14;18418:6;18426:5;18433:4;18407:31;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;18397:42;;;;;;18380:59;;18479:1;18450:18;:26;18469:6;18450:26;;;;;;;;;;;:30;;;;18524:6;18498:46;;18516:6;18498:46;18532:5;18539:4;18498:46;;;;;;;:::i;:::-;;;;;;;;18190:362;;;;:::o;16798:218::-;16908:4;16925:27;16939:4;16945:6;16925:13;:27::i;:::-;16963:23;16969:4;16975:2;16979:6;16963:5;:23::i;:::-;17004:4;16997:11;;16798:218;;;;;:::o;17590:53::-;;;;;;;;;;;;;;;;;:::o;6614:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;6546:29::-;;;:::o;9071:521::-;9162:4;9148:18;;:10;:18;;;9144:57;;;9183:7;;9144:57;9211:24;9238:9;:15;9248:4;9238:15;;;;;;;;;;;;;;;:27;9254:10;9238:27;;;;;;;;;;;;;;;;9211:54;;9393:17;9373:16;:37;9369:216;;9455:6;9435:16;:26;;9427:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;9543:6;9524:16;:25;9494:9;:15;9504:4;9494:15;;;;;;;;;;;;;;;:27;9510:10;9494:27;;;;;;;;;;;;;;;:55;;;;9369:216;9071:521;;;;:::o;7593:1470::-;7708:20;;:::i;:::-;7731:5;:11;7737:4;7731:11;;;;;;;;;;;;;;;7708:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7780:8;:20;;;7761:39;;:15;:39;;7753:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;7836:1;7826:6;:11;7822:1192;;7882:6;7862:8;:16;;;:26;;;;7854:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;7931:2;7923:10;;:4;:10;;;7919:1084;;7976:1;7962:16;;:2;:16;;;;7954:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;8064:18;;:::i;:::-;8085:5;:9;8091:2;8085:9;;;;;;;;;;;;;;;8064:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8115:18;8136:8;:12;8145:2;8136:12;;;;;;;;;;;;;;;;;;;;;;;;;8115:33;;8167:20;8190:8;:14;8199:4;8190:14;;;;;;;;;;;;;;;;;;;;;;;;;8167:37;;8266:14;:6;:12;:14::i;:::-;8247:8;:16;;;:33;8225:5;:11;8231:4;8225:11;;;;;;;;;;;;;;;:19;;;:55;;;;;;;;;;;;;;;;;;8360:14;:6;:12;:14::i;:::-;8343:6;:14;;;:31;8323:5;:9;8329:2;8323:9;;;;;;;;;;;;;;;:17;;;:51;;;;;;;;;;;;;;;;;;8712:6;8689:5;:19;8695:12;8689:19;;;;;;;;;;;;;;;;:29;;;;;;;;;;;8981:6;8960:5;:17;8966:10;8960:17;;;;;;;;;;;;;;;;:27;;;;;;;;;;;7919:1084;;;;7822:1192;9044:2;9029:26;;9038:4;9029:26;;;9048:6;9029:26;;;;;;:::i;:::-;;;;;;;;7593:1470;;;;:::o;4204:237::-;4255:7;4275:15;4313:9;4302:20;;4351:25;4340:7;:36;:93;;4399:34;4425:7;4399:25;:34::i;:::-;4340:93;;;4379:17;4340:93;4333:100;;;4204:237;:::o;810:161::-;859:9;902:2;889:16;;:1;:16;;881:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;961:1;949:14;;810:161;;;:::o;16032:616::-;16165:1;16151:16;;:2;:16;;;;16143:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;16195:16;;:::i;:::-;16214:5;:11;16220:4;16214:11;;;;;;;;;;;;;;;16195:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16263:4;:16;;;16244:35;;:15;:35;;16236:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;16301:14;16375:11;;16341:5;:15;;;16365:4;16341:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16332:6;:39;16331:55;;;;;;16301:85;;16419:32;16436:14;:6;:12;:14::i;:::-;16419:4;:12;;;:16;;;;:32;;;;:::i;:::-;16397:5;:11;16403:4;16397:11;;;;;;;;;;;;;;;:19;;;:54;;;;;;;;;;;;;;;;;;16501:6;16486:11;;:21;;;;;;;;;;;16543:6;16518:5;:21;16524:8;:14;16533:4;16524:14;;;;;;;;;;;;;;;;;;;;;;;;;16518:21;;;;;;;;;;;;;;;;:31;;;;;;;;;;;16562:5;:14;;;16577:2;16581:6;16562:26;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16629:1;16606:34;;16615:4;16606:34;;;16633:6;16606:34;;;;;;:::i;:::-;;;;;;;;16032:616;;;;;:::o;4449:331::-;4510:14;4626:40;;;;;;;;;;;;;;;;;4689:18;:16;:18::i;:::-;4730:8;4587:170;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4559:213;;;;;;4537:235;;4449:331;;;:::o;3432:277::-;3506:7;3018:68;3636:7;3670:4;3557:133;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3533:168;;;;;;3526:175;;3432:277;;;:::o;1584:138::-;1642:9;1687:1;1672:16;;1681:1;1677;:5;1673:9;;;1672:16;;;;1664:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;1584:138;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;:::o;5:130::-;;85:6;72:20;63:29;;97:33;124:5;97:33;:::i;:::-;57:78;;;;:::o;142:128::-;;223:6;217:13;208:22;;235:30;259:5;235:30;:::i;:::-;202:68;;;;:::o;277:130::-;;357:6;344:20;335:29;;369:33;396:5;369:33;:::i;:::-;329:78;;;;:::o;415:440::-;;516:3;509:4;501:6;497:17;493:27;483:2;;534:1;531;524:12;483:2;571:6;558:20;593:64;608:48;649:6;608:48;:::i;:::-;593:64;:::i;:::-;584:73;;677:6;670:5;663:21;713:4;705:6;701:17;746:4;739:5;735:16;781:3;772:6;767:3;763:16;760:25;757:2;;;798:1;795;788:12;757:2;808:41;842:6;837:3;832;808:41;:::i;:::-;476:379;;;;;;;:::o;863:130::-;;943:6;930:20;921:29;;955:33;982:5;955:33;:::i;:::-;915:78;;;;:::o;1000:134::-;;1084:6;1078:13;1069:22;;1096:33;1123:5;1096:33;:::i;:::-;1063:71;;;;:::o;1141:126::-;;1219:6;1206:20;1197:29;;1231:31;1256:5;1231:31;:::i;:::-;1191:76;;;;:::o;1274:241::-;;1378:2;1366:9;1357:7;1353:23;1349:32;1346:2;;;1394:1;1391;1384:12;1346:2;1429:1;1446:53;1491:7;1482:6;1471:9;1467:22;1446:53;:::i;:::-;1436:63;;1408:97;1340:175;;;;:::o;1522:366::-;;;1643:2;1631:9;1622:7;1618:23;1614:32;1611:2;;;1659:1;1656;1649:12;1611:2;1694:1;1711:53;1756:7;1747:6;1736:9;1732:22;1711:53;:::i;:::-;1701:63;;1673:97;1801:2;1819:53;1864:7;1855:6;1844:9;1840:22;1819:53;:::i;:::-;1809:63;;1780:98;1605:283;;;;;:::o;1895:491::-;;;;2033:2;2021:9;2012:7;2008:23;2004:32;2001:2;;;2049:1;2046;2039:12;2001:2;2084:1;2101:53;2146:7;2137:6;2126:9;2122:22;2101:53;:::i;:::-;2091:63;;2063:97;2191:2;2209:53;2254:7;2245:6;2234:9;2230:22;2209:53;:::i;:::-;2199:63;;2170:98;2299:2;2317:53;2362:7;2353:6;2342:9;2338:22;2317:53;:::i;:::-;2307:63;;2278:98;1995:391;;;;;:::o;2393:991::-;;;;;;;;2597:3;2585:9;2576:7;2572:23;2568:33;2565:2;;;2614:1;2611;2604:12;2565:2;2649:1;2666:53;2711:7;2702:6;2691:9;2687:22;2666:53;:::i;:::-;2656:63;;2628:97;2756:2;2774:53;2819:7;2810:6;2799:9;2795:22;2774:53;:::i;:::-;2764:63;;2735:98;2864:2;2882:53;2927:7;2918:6;2907:9;2903:22;2882:53;:::i;:::-;2872:63;;2843:98;2972:2;2990:53;3035:7;3026:6;3015:9;3011:22;2990:53;:::i;:::-;2980:63;;2951:98;3080:3;3099:51;3142:7;3133:6;3122:9;3118:22;3099:51;:::i;:::-;3089:61;;3059:97;3187:3;3206:53;3251:7;3242:6;3231:9;3227:22;3206:53;:::i;:::-;3196:63;;3166:99;3296:3;3315:53;3360:7;3351:6;3340:9;3336:22;3315:53;:::i;:::-;3305:63;;3275:99;2559:825;;;;;;;;;;:::o;3391:366::-;;;3512:2;3500:9;3491:7;3487:23;3483:32;3480:2;;;3528:1;3525;3518:12;3480:2;3563:1;3580:53;3625:7;3616:6;3605:9;3601:22;3580:53;:::i;:::-;3570:63;;3542:97;3670:2;3688:53;3733:7;3724:6;3713:9;3709:22;3688:53;:::i;:::-;3678:63;;3649:98;3474:283;;;;;:::o;3764:595::-;;;;3911:2;3899:9;3890:7;3886:23;3882:32;3879:2;;;3927:1;3924;3917:12;3879:2;3962:1;3979:53;4024:7;4015:6;4004:9;4000:22;3979:53;:::i;:::-;3969:63;;3941:97;4069:2;4087:53;4132:7;4123:6;4112:9;4108:22;4087:53;:::i;:::-;4077:63;;4048:98;4205:2;4194:9;4190:18;4177:32;4229:18;4221:6;4218:30;4215:2;;;4261:1;4258;4251:12;4215:2;4281:62;4335:7;4326:6;4315:9;4311:22;4281:62;:::i;:::-;4271:72;;4156:193;3873:486;;;;;:::o;4366:257::-;;4478:2;4466:9;4457:7;4453:23;4449:32;4446:2;;;4494:1;4491;4484:12;4446:2;4529:1;4546:61;4599:7;4590:6;4579:9;4575:22;4546:61;:::i;:::-;4536:71;;4508:105;4440:183;;;;:::o;4630:241::-;;4734:2;4722:9;4713:7;4709:23;4705:32;4702:2;;;4750:1;4747;4740:12;4702:2;4785:1;4802:53;4847:7;4838:6;4827:9;4823:22;4802:53;:::i;:::-;4792:63;;4764:97;4696:175;;;;:::o;4878:263::-;;4993:2;4981:9;4972:7;4968:23;4964:32;4961:2;;;5009:1;5006;4999:12;4961:2;5044:1;5061:64;5117:7;5108:6;5097:9;5093:22;5061:64;:::i;:::-;5051:74;;5023:108;4955:186;;;;:::o;5148:366::-;;;5269:2;5257:9;5248:7;5244:23;5240:32;5237:2;;;5285:1;5282;5275:12;5237:2;5320:1;5337:53;5382:7;5373:6;5362:9;5358:22;5337:53;:::i;:::-;5327:63;;5299:97;5427:2;5445:53;5490:7;5481:6;5470:9;5466:22;5445:53;:::i;:::-;5435:63;;5406:98;5231:283;;;;;:::o;5521:142::-;5612:45;5651:5;5612:45;:::i;:::-;5607:3;5600:58;5594:69;;:::o;5670:113::-;5753:24;5771:5;5753:24;:::i;:::-;5748:3;5741:37;5735:48;;:::o;5790:104::-;5867:21;5882:5;5867:21;:::i;:::-;5862:3;5855:34;5849:45;;:::o;5901:113::-;5984:24;6002:5;5984:24;:::i;:::-;5979:3;5972:37;5966:48;;:::o;6021:152::-;6122:45;6142:24;6160:5;6142:24;:::i;:::-;6122:45;:::i;:::-;6117:3;6110:58;6104:69;;:::o;6180:343::-;;6290:38;6322:5;6290:38;:::i;:::-;6340:70;6403:6;6398:3;6340:70;:::i;:::-;6333:77;;6415:52;6460:6;6455:3;6448:4;6441:5;6437:16;6415:52;:::i;:::-;6488:29;6510:6;6488:29;:::i;:::-;6483:3;6479:39;6472:46;;6270:253;;;;;:::o;6530:356::-;;6658:38;6690:5;6658:38;:::i;:::-;6708:88;6789:6;6784:3;6708:88;:::i;:::-;6701:95;;6801:52;6846:6;6841:3;6834:4;6827:5;6823:16;6801:52;:::i;:::-;6874:6;6869:3;6865:16;6858:23;;6638:248;;;;;:::o;6893:154::-;6990:51;7035:5;6990:51;:::i;:::-;6985:3;6978:64;6972:75;;:::o;7054:347::-;;7166:39;7199:5;7166:39;:::i;:::-;7217:71;7281:6;7276:3;7217:71;:::i;:::-;7210:78;;7293:52;7338:6;7333:3;7326:4;7319:5;7315:16;7293:52;:::i;:::-;7366:29;7388:6;7366:29;:::i;:::-;7361:3;7357:39;7350:46;;7146:255;;;;;:::o;7408:360::-;;7538:39;7571:5;7538:39;:::i;:::-;7589:89;7671:6;7666:3;7589:89;:::i;:::-;7582:96;;7683:52;7728:6;7723:3;7716:4;7709:5;7705:16;7683:52;:::i;:::-;7756:6;7751:3;7747:16;7740:23;;7518:250;;;;;:::o;7776:321::-;;7936:67;8000:2;7995:3;7936:67;:::i;:::-;7929:74;;8036:23;8032:1;8027:3;8023:11;8016:44;8088:2;8083:3;8079:12;8072:19;;7922:175;;;:::o;8106:316::-;;8266:67;8330:2;8325:3;8266:67;:::i;:::-;8259:74;;8366:18;8362:1;8357:3;8353:11;8346:39;8413:2;8408:3;8404:12;8397:19;;8252:170;;;:::o;8431:305::-;;8591:66;8655:1;8650:3;8591:66;:::i;:::-;8584:73;;8690:8;8686:1;8681:3;8677:11;8670:29;8727:2;8722:3;8718:12;8711:19;;8577:159;;;:::o;8745:313::-;;8905:67;8969:2;8964:3;8905:67;:::i;:::-;8898:74;;9005:15;9001:1;8996:3;8992:11;8985:36;9049:2;9044:3;9040:12;9033:19;;8891:167;;;:::o;9067:313::-;;9227:67;9291:2;9286:3;9227:67;:::i;:::-;9220:74;;9327:15;9323:1;9318:3;9314:11;9307:36;9371:2;9366:3;9362:12;9355:19;;9213:167;;;:::o;9389:311::-;;9549:67;9613:2;9608:3;9549:67;:::i;:::-;9542:74;;9649:13;9645:1;9640:3;9636:11;9629:34;9691:2;9686:3;9682:12;9675:19;;9535:165;;;:::o;9709:312::-;;9869:67;9933:2;9928:3;9869:67;:::i;:::-;9862:74;;9969:14;9965:1;9960:3;9956:11;9949:35;10012:2;10007:3;10003:12;9996:19;;9855:166;;;:::o;10030:307::-;;10190:66;10254:1;10249:3;10190:66;:::i;:::-;10183:73;;10289:10;10285:1;10280:3;10276:11;10269:31;10328:2;10323:3;10319:12;10312:19;;10176:161;;;:::o;10346:328::-;;10506:67;10570:2;10565:3;10506:67;:::i;:::-;10499:74;;10606:30;10602:1;10597:3;10593:11;10586:51;10665:2;10660:3;10656:12;10649:19;;10492:182;;;:::o;10683:308::-;;10843:66;10907:1;10902:3;10843:66;:::i;:::-;10836:73;;10942:11;10938:1;10933:3;10929:11;10922:32;10982:2;10977:3;10973:12;10966:19;;10829:162;;;:::o;11000:314::-;;11160:67;11224:2;11219:3;11160:67;:::i;:::-;11153:74;;11260:16;11256:1;11251:3;11247:11;11240:37;11305:2;11300:3;11296:12;11289:19;;11146:168;;;:::o;11323:313::-;;11483:67;11547:2;11542:3;11483:67;:::i;:::-;11476:74;;11583:15;11579:1;11574:3;11570:11;11563:36;11627:2;11622:3;11618:12;11611:19;;11469:167;;;:::o;11645:311::-;;11805:67;11869:2;11864:3;11805:67;:::i;:::-;11798:74;;11905:13;11901:1;11896:3;11892:11;11885:34;11947:2;11942:3;11938:12;11931:19;;11791:165;;;:::o;11965:310::-;;12125:67;12189:2;12184:3;12125:67;:::i;:::-;12118:74;;12225:12;12221:1;12216:3;12212:11;12205:33;12266:2;12261:3;12257:12;12250:19;;12111:164;;;:::o;12284:306::-;;12444:66;12508:1;12503:3;12444:66;:::i;:::-;12437:73;;12543:9;12539:1;12534:3;12530:11;12523:30;12581:2;12576:3;12572:12;12565:19;;12430:160;;;:::o;12599:311::-;;12759:67;12823:2;12818:3;12759:67;:::i;:::-;12752:74;;12859:13;12855:1;12850:3;12846:11;12839:34;12901:2;12896:3;12892:12;12885:19;;12745:165;;;:::o;12918:113::-;13001:24;13019:5;13001:24;:::i;:::-;12996:3;12989:37;12983:48;;:::o;13038:113::-;13121:24;13139:5;13121:24;:::i;:::-;13116:3;13109:37;13103:48;;:::o;13158:107::-;13237:22;13253:5;13237:22;:::i;:::-;13232:3;13225:35;13219:46;;:::o;13272:271::-;;13425:93;13514:3;13505:6;13425:93;:::i;:::-;13418:100;;13535:3;13528:10;;13406:137;;;;:::o;13550:553::-;;13761:95;13852:3;13843:6;13761:95;:::i;:::-;13754:102;;13867:75;13938:3;13929:6;13867:75;:::i;:::-;13964:2;13959:3;13955:12;13948:19;;13978:75;14049:3;14040:6;13978:75;:::i;:::-;14075:2;14070:3;14066:12;14059:19;;14095:3;14088:10;;13742:361;;;;;;:::o;14110:222::-;;14237:2;14226:9;14222:18;14214:26;;14251:71;14319:1;14308:9;14304:17;14295:6;14251:71;:::i;:::-;14208:124;;;;:::o;14339:460::-;;14530:2;14519:9;14515:18;14507:26;;14544:79;14620:1;14609:9;14605:17;14596:6;14544:79;:::i;:::-;14634:72;14702:2;14691:9;14687:18;14678:6;14634:72;:::i;:::-;14717;14785:2;14774:9;14770:18;14761:6;14717:72;:::i;:::-;14501:298;;;;;;:::o;14806:333::-;;14961:2;14950:9;14946:18;14938:26;;14975:71;15043:1;15032:9;15028:17;15019:6;14975:71;:::i;:::-;15057:72;15125:2;15114:9;15110:18;15101:6;15057:72;:::i;:::-;14932:207;;;;;:::o;15146:528::-;;15347:2;15336:9;15332:18;15324:26;;15361:71;15429:1;15418:9;15414:17;15405:6;15361:71;:::i;:::-;15443:72;15511:2;15500:9;15496:18;15487:6;15443:72;:::i;:::-;15563:9;15557:4;15553:20;15548:2;15537:9;15533:18;15526:48;15588:76;15659:4;15650:6;15588:76;:::i;:::-;15580:84;;15318:356;;;;;;:::o;15681:210::-;;15802:2;15791:9;15787:18;15779:26;;15816:65;15878:1;15867:9;15863:17;15854:6;15816:65;:::i;:::-;15773:118;;;;:::o;15898:222::-;;16025:2;16014:9;16010:18;16002:26;;16039:71;16107:1;16096:9;16092:17;16083:6;16039:71;:::i;:::-;15996:124;;;;:::o;16127:780::-;;16394:3;16383:9;16379:19;16371:27;;16409:71;16477:1;16466:9;16462:17;16453:6;16409:71;:::i;:::-;16491:72;16559:2;16548:9;16544:18;16535:6;16491:72;:::i;:::-;16574;16642:2;16631:9;16627:18;16618:6;16574:72;:::i;:::-;16657;16725:2;16714:9;16710:18;16701:6;16657:72;:::i;:::-;16740:73;16808:3;16797:9;16793:19;16784:6;16740:73;:::i;:::-;16824;16892:3;16881:9;16877:19;16868:6;16824:73;:::i;:::-;16365:542;;;;;;;;;:::o;16914:444::-;;17097:2;17086:9;17082:18;17074:26;;17111:71;17179:1;17168:9;17164:17;17155:6;17111:71;:::i;:::-;17193:72;17261:2;17250:9;17246:18;17237:6;17193:72;:::i;:::-;17276;17344:2;17333:9;17329:18;17320:6;17276:72;:::i;:::-;17068:290;;;;;;:::o;17365:548::-;;17572:3;17561:9;17557:19;17549:27;;17587:71;17655:1;17644:9;17640:17;17631:6;17587:71;:::i;:::-;17669:68;17733:2;17722:9;17718:18;17709:6;17669:68;:::i;:::-;17748:72;17816:2;17805:9;17801:18;17792:6;17748:72;:::i;:::-;17831;17899:2;17888:9;17884:18;17875:6;17831:72;:::i;:::-;17543:370;;;;;;;:::o;17920:306::-;;18065:2;18054:9;18050:18;18042:26;;18115:9;18109:4;18105:20;18101:1;18090:9;18086:17;18079:47;18140:76;18211:4;18202:6;18140:76;:::i;:::-;18132:84;;18036:190;;;;:::o;18233:250::-;;18374:2;18363:9;18359:18;18351:26;;18388:85;18470:1;18459:9;18455:17;18446:6;18388:85;:::i;:::-;18345:138;;;;:::o;18490:310::-;;18637:2;18626:9;18622:18;18614:26;;18687:9;18681:4;18677:20;18673:1;18662:9;18658:17;18651:47;18712:78;18785:4;18776:6;18712:78;:::i;:::-;18704:86;;18608:192;;;;:::o;18807:416::-;;19007:2;18996:9;18992:18;18984:26;;19057:9;19051:4;19047:20;19043:1;19032:9;19028:17;19021:47;19082:131;19208:4;19082:131;:::i;:::-;19074:139;;18978:245;;;:::o;19230:416::-;;19430:2;19419:9;19415:18;19407:26;;19480:9;19474:4;19470:20;19466:1;19455:9;19451:17;19444:47;19505:131;19631:4;19505:131;:::i;:::-;19497:139;;19401:245;;;:::o;19653:416::-;;19853:2;19842:9;19838:18;19830:26;;19903:9;19897:4;19893:20;19889:1;19878:9;19874:17;19867:47;19928:131;20054:4;19928:131;:::i;:::-;19920:139;;19824:245;;;:::o;20076:416::-;;20276:2;20265:9;20261:18;20253:26;;20326:9;20320:4;20316:20;20312:1;20301:9;20297:17;20290:47;20351:131;20477:4;20351:131;:::i;:::-;20343:139;;20247:245;;;:::o;20499:416::-;;20699:2;20688:9;20684:18;20676:26;;20749:9;20743:4;20739:20;20735:1;20724:9;20720:17;20713:47;20774:131;20900:4;20774:131;:::i;:::-;20766:139;;20670:245;;;:::o;20922:416::-;;21122:2;21111:9;21107:18;21099:26;;21172:9;21166:4;21162:20;21158:1;21147:9;21143:17;21136:47;21197:131;21323:4;21197:131;:::i;:::-;21189:139;;21093:245;;;:::o;21345:416::-;;21545:2;21534:9;21530:18;21522:26;;21595:9;21589:4;21585:20;21581:1;21570:9;21566:17;21559:47;21620:131;21746:4;21620:131;:::i;:::-;21612:139;;21516:245;;;:::o;21768:416::-;;21968:2;21957:9;21953:18;21945:26;;22018:9;22012:4;22008:20;22004:1;21993:9;21989:17;21982:47;22043:131;22169:4;22043:131;:::i;:::-;22035:139;;21939:245;;;:::o;22191:416::-;;22391:2;22380:9;22376:18;22368:26;;22441:9;22435:4;22431:20;22427:1;22416:9;22412:17;22405:47;22466:131;22592:4;22466:131;:::i;:::-;22458:139;;22362:245;;;:::o;22614:416::-;;22814:2;22803:9;22799:18;22791:26;;22864:9;22858:4;22854:20;22850:1;22839:9;22835:17;22828:47;22889:131;23015:4;22889:131;:::i;:::-;22881:139;;22785:245;;;:::o;23037:416::-;;23237:2;23226:9;23222:18;23214:26;;23287:9;23281:4;23277:20;23273:1;23262:9;23258:17;23251:47;23312:131;23438:4;23312:131;:::i;:::-;23304:139;;23208:245;;;:::o;23460:416::-;;23660:2;23649:9;23645:18;23637:26;;23710:9;23704:4;23700:20;23696:1;23685:9;23681:17;23674:47;23735:131;23861:4;23735:131;:::i;:::-;23727:139;;23631:245;;;:::o;23883:416::-;;24083:2;24072:9;24068:18;24060:26;;24133:9;24127:4;24123:20;24119:1;24108:9;24104:17;24097:47;24158:131;24284:4;24158:131;:::i;:::-;24150:139;;24054:245;;;:::o;24306:416::-;;24506:2;24495:9;24491:18;24483:26;;24556:9;24550:4;24546:20;24542:1;24531:9;24527:17;24520:47;24581:131;24707:4;24581:131;:::i;:::-;24573:139;;24477:245;;;:::o;24729:416::-;;24929:2;24918:9;24914:18;24906:26;;24979:9;24973:4;24969:20;24965:1;24954:9;24950:17;24943:47;25004:131;25130:4;25004:131;:::i;:::-;24996:139;;24900:245;;;:::o;25152:416::-;;25352:2;25341:9;25337:18;25329:26;;25402:9;25396:4;25392:20;25388:1;25377:9;25373:17;25366:47;25427:131;25553:4;25427:131;:::i;:::-;25419:139;;25323:245;;;:::o;25575:333::-;;25730:2;25719:9;25715:18;25707:26;;25744:71;25812:1;25801:9;25797:17;25788:6;25744:71;:::i;:::-;25826:72;25894:2;25883:9;25879:18;25870:6;25826:72;:::i;:::-;25701:207;;;;;:::o;25915:222::-;;26042:2;26031:9;26027:18;26019:26;;26056:71;26124:1;26113:9;26109:17;26100:6;26056:71;:::i;:::-;26013:124;;;;:::o;26144:417::-;;26317:2;26306:9;26302:18;26294:26;;26331:71;26399:1;26388:9;26384:17;26375:6;26331:71;:::i;:::-;26450:9;26444:4;26440:20;26435:2;26424:9;26420:18;26413:48;26475:76;26546:4;26537:6;26475:76;:::i;:::-;26467:84;;26288:273;;;;;:::o;26568:528::-;;26769:2;26758:9;26754:18;26746:26;;26783:71;26851:1;26840:9;26836:17;26827:6;26783:71;:::i;:::-;26902:9;26896:4;26892:20;26887:2;26876:9;26872:18;26865:48;26927:76;26998:4;26989:6;26927:76;:::i;:::-;26919:84;;27014:72;27082:2;27071:9;27067:18;27058:6;27014:72;:::i;:::-;26740:356;;;;;;:::o;27103:214::-;;27226:2;27215:9;27211:18;27203:26;;27240:67;27304:1;27293:9;27289:17;27280:6;27240:67;:::i;:::-;27197:120;;;;:::o;27324:256::-;;27386:2;27380:9;27370:19;;27424:4;27416:6;27412:17;27523:6;27511:10;27508:22;27487:18;27475:10;27472:34;27469:62;27466:2;;;27544:1;27541;27534:12;27466:2;27564:10;27560:2;27553:22;27364:216;;;;:::o;27587:321::-;;27730:18;27722:6;27719:30;27716:2;;;27762:1;27759;27752:12;27716:2;27829:4;27825:9;27818:4;27810:6;27806:17;27802:33;27794:41;;27893:4;27887;27883:15;27875:23;;27653:255;;;:::o;27915:121::-;;28008:5;28002:12;27992:22;;27973:63;;;:::o;28043:122::-;;28137:5;28131:12;28121:22;;28102:63;;;:::o;28173:162::-;;28287:6;28282:3;28275:19;28324:4;28319:3;28315:14;28300:29;;28268:67;;;;:::o;28344:144::-;;28479:3;28464:18;;28457:31;;;;:::o;28497:163::-;;28612:6;28607:3;28600:19;28649:4;28644:3;28640:14;28625:29;;28593:67;;;;:::o;28669:145::-;;28805:3;28790:18;;28783:31;;;;:::o;28822:91::-;;28884:24;28902:5;28884:24;:::i;:::-;28873:35;;28867:46;;;:::o;28920:85::-;;28993:5;28986:13;28979:21;28968:32;;28962:43;;;:::o;29012:72::-;;29074:5;29063:16;;29057:27;;;:::o;29091:113::-;;29164:34;29157:5;29153:46;29142:57;;29136:68;;;:::o;29211:121::-;;29284:42;29277:5;29273:54;29262:65;;29256:76;;;:::o;29339:72::-;;29401:5;29390:16;;29384:27;;;:::o;29418:81::-;;29489:4;29482:5;29478:16;29467:27;;29461:38;;;:::o;29506:129::-;;29593:37;29624:5;29593:37;:::i;:::-;29580:50;;29574:61;;;:::o;29642:149::-;;29735:51;29780:5;29735:51;:::i;:::-;29722:64;;29716:75;;;:::o;29798:122::-;;29891:24;29909:5;29891:24;:::i;:::-;29878:37;;29872:48;;;:::o;29927:121::-;;30006:37;30037:5;30006:37;:::i;:::-;29993:50;;29987:61;;;:::o;30055:108::-;;30134:24;30152:5;30134:24;:::i;:::-;30121:37;;30115:48;;;:::o;30171:145::-;30252:6;30247:3;30242;30229:30;30308:1;30299:6;30294:3;30290:16;30283:27;30222:94;;;:::o;30325:268::-;30390:1;30397:101;30411:6;30408:1;30405:13;30397:101;;;30487:1;30482:3;30478:11;30472:18;30468:1;30463:3;30459:11;30452:39;30433:2;30430:1;30426:10;30421:15;;30397:101;;;30513:6;30510:1;30507:13;30504:2;;;30578:1;30569:6;30564:3;30560:16;30553:27;30504:2;30374:219;;;;:::o;30601:74::-;;30665:5;30654:16;;30648:27;;;:::o;30682:97::-;;30770:2;30766:7;30761:2;30754:5;30750:14;30746:28;30736:38;;30730:49;;;:::o;30787:117::-;30856:24;30874:5;30856:24;:::i;:::-;30849:5;30846:35;30836:2;;30895:1;30892;30885:12;30836:2;30830:74;:::o;30911:111::-;30977:21;30992:5;30977:21;:::i;:::-;30970:5;30967:32;30957:2;;31013:1;31010;31003:12;30957:2;30951:71;:::o;31029:117::-;31098:24;31116:5;31098:24;:::i;:::-;31091:5;31088:35;31078:2;;31137:1;31134;31127:12;31078:2;31072:74;:::o;31153:117::-;31222:24;31240:5;31222:24;:::i;:::-;31215:5;31212:35;31202:2;;31261:1;31258;31251:12;31202:2;31196:74;:::o;31277:113::-;31344:22;31360:5;31344:22;:::i;:::-;31337:5;31334:33;31324:2;;31381:1;31378;31371:12;31324:2;31318:72;:::o
Swarm Source
ipfs://9dc1f17058f9eb6fee2a9196d61acece9e534d01ee6408e38a8777ddd963656d
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.