Source Code
Latest 6 from a total of 6 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Buy Tokens | 14658149 | 1419 days ago | IN | 0.00202012 ETH | 0.00494799 | ||||
| Buy Tokens | 14657691 | 1420 days ago | IN | 0.00202067 ETH | 0.00621716 | ||||
| Buy Tokens | 14657667 | 1420 days ago | IN | 0.00404135 ETH | 0.00564033 | ||||
| Buy Tokens | 14657433 | 1420 days ago | IN | 0.00201671 ETH | 0.00510918 | ||||
| Set Fee Distribu... | 14657354 | 1420 days ago | IN | 0 ETH | 0.00448891 | ||||
| Set Fee Distribu... | 14657350 | 1420 days ago | IN | 0 ETH | 0.0051932 |
Latest 15 internal transactions
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| - | 14658149 | 1419 days ago | 1 wei | ||||
| - | 14658149 | 1419 days ago | 0.00001 ETH | ||||
| - | 14658149 | 1419 days ago | 0.00001 ETH | ||||
| - | 14658149 | 1419 days ago | 0.00200012 ETH | ||||
| - | 14657691 | 1420 days ago | 1 wei | ||||
| - | 14657691 | 1420 days ago | 0.00001 ETH | ||||
| - | 14657691 | 1420 days ago | 0.00001 ETH | ||||
| - | 14657691 | 1420 days ago | 0.00200066 ETH | ||||
| - | 14657667 | 1420 days ago | 1 wei | ||||
| - | 14657667 | 1420 days ago | 0.00002 ETH | ||||
| - | 14657667 | 1420 days ago | 0.00002 ETH | ||||
| - | 14657667 | 1420 days ago | 0.00400133 ETH | ||||
| - | 14657433 | 1420 days ago | 0.00000998 ETH | ||||
| - | 14657433 | 1420 days ago | 0.00000998 ETH | ||||
| - | 14657433 | 1420 days ago | 0.00199674 ETH |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
JHETokenSale
Compiler Version
v0.8.13+commit.abaa5c0e
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2022-04-26
*/
/* SPDX-License-Identifier: UNLICENSED*/
pragma solidity ^0.8.0;
library SafeMath {
/**
* @dev Multiplies two unsigned integers, reverts on overflow.
*/
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
// Gas optimization: this is cheaper than requiring 'a' not being zero, but the
// benefit is lost if 'b' is also tested.
// See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522
if (a == 0) {
return 0;
}
uint256 c = a * b;
require(c / a == b);
return c;
}
/**
* @dev Integer division of two unsigned integers truncating the quotient, reverts on division by zero.
*/
function div(uint256 a, uint256 b) internal pure returns (uint256) {
// Solidity only automatically asserts when dividing by 0
require(b > 0);
uint256 c = a / b;
// assert(a == b * c + a % b); // There is no case in which this doesn't hold
return c;
}
/**
* @dev Subtracts two unsigned integers, reverts on overflow (i.e. if subtrahend is greater than minuend).
*/
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
require(b <= a);
uint256 c = a - b;
return c;
}
/**
* @dev Adds two unsigned integers, reverts on overflow.
*/
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
require(c >= a);
return c;
}
/**
* @dev Divides two unsigned integers and returns the remainder (unsigned integer modulo),
* reverts when dividing by zero.
*/
function mod(uint256 a, uint256 b) internal pure returns (uint256) {
require(b != 0);
return a % b;
}
}
// import "./JHEToken.sol";
contract JHEToken {
mapping(address => uint256) public balanceOf;
function transfer(address _to, uint256 _value) public returns (bool success) {}
}
interface IPriceFeed {
function latestRoundData() external view returns (
uint80 roundId,
uint256 answer,
uint256 startedAt,
uint256 updatedAt,
uint80 answeredInRound
);
}
contract JHETokenSale {
using SafeMath for uint;
address public owner;
address payable public etherWallet;
JHEToken public tokenContract;
uint256 public tokensSold;
uint256 public totalFeeAmount;
_Fee[] public feeDistributions; // array of _Fee struct
struct _Fee {
uint256 id;
string name;
address payable wallet;
uint256 percent;
bool active;
}
IPriceFeed public priceFeed;
uint256 public tokenPrice; // 100000000 = 1 usd
event Sell(address _buyer, uint256 _amount);
constructor(JHEToken _tokenContract, address payable _etherWallet, IPriceFeed _priceFeed, uint256 _tokenPrice) {
owner = msg.sender;
tokenContract = _tokenContract;
tokenPrice = _tokenPrice;
totalFeeAmount = 0;
etherWallet = _etherWallet;
priceFeed = _priceFeed;
}
function getEthAmount() public view returns(uint256) {
(,uint256 price, , , ) = priceFeed.latestRoundData();
return tokenPrice*1e18/price;
}
// Modifier
modifier onlyOwner() {
require(msg.sender == owner, "owner only");
_;
}
modifier noBalance() {
// require(totalFeeAmount == 0, "fee not null, transfer funds first");
require(address(this).balance == 0, "balance not null, transfer funds first");
_;
}
function buyTokens(uint256 _numberOfTokens) public payable {
uint256 price = getEthAmount();
uint256 tokenTotalPrice = _numberOfTokens*price/10**18;
require(tokenTotalPrice <= msg.value, "Insufficent value");
// calculate the total fee amount
uint256 totalFeePercent = getTotalFeePercent ();
uint256 _totalFeeAmount = tokenTotalPrice.mul(totalFeePercent).div(100000); // FEE: 100000 = 100%
totalFeeAmount = totalFeeAmount.add (_totalFeeAmount);
require(msg.value >= tokenTotalPrice.add(_totalFeeAmount),'incorrect amount');
require(tokenContract.balanceOf(address(this)) >= _numberOfTokens,'contract has not enough token');
require(tokenContract.transfer(msg.sender, _numberOfTokens),'transfer error');
// send ether
uint256 ethAmount = msg.value;
_transferPayments(ethAmount);
tokensSold += _numberOfTokens;
emit Sell(msg.sender, _numberOfTokens);
}
// Transfer ether payments
function _transferPayments(uint256 ethAmount) internal {
require(ethAmount > 0, "no ether recieved");
// transfer owner's ether deducted from total Fee Amount
uint256 _ownerFunds = ethAmount.sub(totalFeeAmount);
etherWallet.transfer(_ownerFunds);
// distribute fees
uint256 feesCount = getFeeDistributionsCount();
_Fee[] storage fees = feeDistributions;
for (uint i = 0; i < feesCount; i++){
if (fees[i].active){
uint feeValue = _ownerFunds.mul(fees[i].percent).div(100000); // FEE: 100000 = 100%
fees[i].wallet.transfer(feeValue);
}
}
// if eth rest: in case of fee deactivated...
if (address(this).balance != 0){
etherWallet.transfer(address(this).balance);
}
totalFeeAmount = 0;
}
function endSale() public onlyOwner{
require(tokenContract.transfer(owner, tokenContract.balanceOf(address(this))),'transfer error');
}
// Transfer funds
function transferFunds() public onlyOwner {
// require(address(this).balance > 0, "no funds");
uint256 totalFunds = address(this).balance;
// transfer owner's ether deducted from total Fee Amount
uint256 _ownerFunds = totalFunds.sub(totalFeeAmount);
etherWallet.transfer(_ownerFunds);
// distribute fees
uint256 feesCount = getFeeDistributionsCount();
_Fee[] storage fees = feeDistributions;
for (uint i = 0; i < feesCount; i++){
if (fees[i].active){
uint feeValue = _ownerFunds.mul(fees[i].percent).div(100000); // FEE: 100000 = 100%
fees[i].wallet.transfer(feeValue);
}
}
// if eth rest: in case of fee deactivated...
if (address(this).balance != 0){
etherWallet.transfer(address(this).balance);
}
totalFeeAmount = 0;
}
/*
* FEE:
* 1 = 0.001%
* 1000 = 1%
* 100000 = 100%
*/
function setFeeDistributions(address payable _feeWallet, string memory _name, uint256 _percent) public onlyOwner noBalance{
require(_feeWallet != address(0), "address not valid");
// emit FeePercentChanged(feePercent, _newFeePercent);
_Fee[] storage fees = feeDistributions;
// uint256 feesCount = fees.length;
uint256 feesCount = getFeeDistributionsCount();
bool feeExiste = false;
uint totalFeePercent = getTotalFeePercent ();
totalFeePercent = totalFeePercent.add(_percent);
require(totalFeePercent <= 100000, "total fee cannot exceed 100");
for (uint i = 0; i < feesCount; i++){
if (fees[i].wallet == _feeWallet){
fees[i].name = _name;
fees[i].percent = _percent;
fees[i].active = true;
feeExiste = true;
break;
}
}
// fee not found => add as new fee
if (!feeExiste){
_Fee memory fee;
fee.id = (feesCount + 1);
fee.name = _name;
fee.wallet = _feeWallet;
fee.percent = _percent;
fee.active = true;
fees.push(fee);
}
}
function getFeeDistributionsCount() public view returns(uint) {
_Fee[] storage fees = feeDistributions;
return fees.length;
}
function getTotalFeePercent () public view returns (uint){
uint256 totalFeePercent = 0;
uint256 feesCount = getFeeDistributionsCount();
_Fee[] storage fees = feeDistributions;
for (uint i = 0; i < feesCount; i++){
if (fees[i].active){
totalFeePercent = totalFeePercent.add(fees[i].percent);
}
}
return totalFeePercent;
}
function deActivateFeeWallet(address _feeWallet) public onlyOwner {
require(_feeWallet != address(0), "address not valid");
// emit FeePercentChanged(feePercent, _newFeePercent);
_Fee[] storage fees = feeDistributions;
// uint256 feesCount = fees.length;
uint256 feesCount = getFeeDistributionsCount();
for (uint i = 0; i < feesCount; i++){
if (fees[i].wallet == _feeWallet){
fees[i].active = false;
break;
}
}
}
// Transfer Owner
function transferOwnership(address payable _newOwner) public onlyOwner {
_transferOwnership(_newOwner);
}
function _transferOwnership(address payable _newOwner) internal {
require(_newOwner != address(0), "address not valid");
owner = _newOwner;
}
// Transfer ether wallet
function transferEtherWallet(address payable _newEtherWallet) public onlyOwner {
_transferEtherWallet(_newEtherWallet);
}
function _transferEtherWallet(address payable _newEtherWallet) internal {
require(_newEtherWallet != address(0), "address not valid");
etherWallet = _newEtherWallet;
}
// set token price
function setTokenPrice(uint256 _tokenPrice) public onlyOwner {
require(_tokenPrice != 0, "token price is null");
tokenPrice = _tokenPrice;
}
// set price feed
function setPriceFeed(IPriceFeed _priceFeed) public onlyOwner {
priceFeed = _priceFeed;
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"contract JHEToken","name":"_tokenContract","type":"address"},{"internalType":"address payable","name":"_etherWallet","type":"address"},{"internalType":"contract IPriceFeed","name":"_priceFeed","type":"address"},{"internalType":"uint256","name":"_tokenPrice","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_buyer","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"Sell","type":"event"},{"inputs":[{"internalType":"uint256","name":"_numberOfTokens","type":"uint256"}],"name":"buyTokens","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_feeWallet","type":"address"}],"name":"deActivateFeeWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"endSale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"etherWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"feeDistributions","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"address payable","name":"wallet","type":"address"},{"internalType":"uint256","name":"percent","type":"uint256"},{"internalType":"bool","name":"active","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getEthAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFeeDistributionsCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalFeePercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"priceFeed","outputs":[{"internalType":"contract IPriceFeed","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"_feeWallet","type":"address"},{"internalType":"string","name":"_name","type":"string"},{"internalType":"uint256","name":"_percent","type":"uint256"}],"name":"setFeeDistributions","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IPriceFeed","name":"_priceFeed","type":"address"}],"name":"setPriceFeed","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenPrice","type":"uint256"}],"name":"setTokenPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"tokenContract","outputs":[{"internalType":"contract JHEToken","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensSold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFeeAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"_newEtherWallet","type":"address"}],"name":"transferEtherWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
60806040523480156200001157600080fd5b5060405162002f9d38038062002f9d833981810160405281019062000037919062000296565b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600781905550600060048190555082600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505062000308565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620001858262000158565b9050919050565b6000620001998262000178565b9050919050565b620001ab816200018c565b8114620001b757600080fd5b50565b600081519050620001cb81620001a0565b92915050565b6000620001de8262000158565b9050919050565b620001f081620001d1565b8114620001fc57600080fd5b50565b6000815190506200021081620001e5565b92915050565b6000620002238262000178565b9050919050565b620002358162000216565b81146200024157600080fd5b50565b60008151905062000255816200022a565b92915050565b6000819050919050565b62000270816200025b565b81146200027c57600080fd5b50565b600081519050620002908162000265565b92915050565b60008060008060808587031215620002b357620002b262000153565b5b6000620002c387828801620001ba565b9450506020620002d687828801620001ff565b9350506040620002e98782880162000244565b9250506060620002fc878288016200027f565b91505092959194509250565b612c8580620003186000396000f3fe60806040526004361061011f5760003560e01c8063724e78da116100a05780638da5cb5b116100645780638da5cb5b1461038257806395bc349d146103ad57806396521716146103d6578063b20bc94c14610401578063f2fde38b1461042a5761011f565b8063724e78da14610297578063741bef1a146102c05780637ff9b596146102eb57806387c11cb0146103165780638c3bd8ba146103575761011f565b80633c68eb81116100e75780633c68eb81146101d8578063470a3275146101ef578063518ab2a81461021857806355a373d6146102435780636a61e5fc1461026e5761011f565b8063087d01df146101245780630cd74cd91461014f578063235d20351461017a5780633610724e146101a5578063380d831b146101c1575b600080fd5b34801561013057600080fd5b50610139610453565b6040516101469190611e81565b60405180910390f35b34801561015b57600080fd5b50610164610514565b6040516101719190611edd565b60405180910390f35b34801561018657600080fd5b5061018f61053a565b60405161019c9190611e81565b60405180910390f35b6101bf60048036038101906101ba9190611f38565b6105ec565b005b3480156101cd57600080fd5b506101d661092b565b005b3480156101e457600080fd5b506101ed610b55565b005b3480156101fb57600080fd5b5061021660048036038101906102119190611f91565b610e2f565b005b34801561022457600080fd5b5061022d610ec9565b60405161023a9190611e81565b60405180910390f35b34801561024f57600080fd5b50610258610ecf565b604051610265919061201d565b60405180910390f35b34801561027a57600080fd5b5061029560048036038101906102909190611f38565b610ef5565b005b3480156102a357600080fd5b506102be60048036038101906102b99190612088565b610fd0565b005b3480156102cc57600080fd5b506102d56110a2565b6040516102e291906120d6565b60405180910390f35b3480156102f757600080fd5b506103006110c8565b60405161030d9190611e81565b60405180910390f35b34801561032257600080fd5b5061033d60048036038101906103389190611f38565b6110ce565b60405161034e9594939291906121a5565b60405180910390f35b34801561036357600080fd5b5061036c6111c9565b6040516103799190611e81565b60405180910390f35b34801561038e57600080fd5b506103976111db565b6040516103a4919061220e565b60405180910390f35b3480156103b957600080fd5b506103d460048036038101906103cf919061235e565b6111ff565b005b3480156103e257600080fd5b506103eb611646565b6040516103f89190611e81565b60405180910390f35b34801561040d57600080fd5b50610428600480360381019061042391906123f9565b61164c565b005b34801561043657600080fd5b50610451600480360381019061044c9190611f91565b611838565b005b600080600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa1580156104c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104e7919061247d565b50505091505080670de0b6b3a76400006007546105049190612527565b61050e91906125b0565b91505090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009050600061054b6111c9565b905060006005905060005b828110156105e257818181548110610571576105706125e1565b5b906000526020600020906005020160040160009054906101000a900460ff16156105cf576105cc8282815481106105ab576105aa6125e1565b5b906000526020600020906005020160030154856118d290919063ffffffff16565b93505b80806105da90612610565b915050610556565b5082935050505090565b60006105f6610453565b90506000670de0b6b3a7640000828461060f9190612527565b61061991906125b0565b90503481111561065e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610655906126a4565b60405180910390fd5b600061066861053a565b90506000610694620186a061068684866118fa90919063ffffffff16565b61193e90919063ffffffff16565b90506106ab816004546118d290919063ffffffff16565b6004819055506106c481846118d290919063ffffffff16565b341015610706576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106fd90612710565b60405180910390fd5b84600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610762919061220e565b602060405180830381865afa15801561077f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a39190612730565b10156107e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107db906127a9565b60405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33876040518363ffffffff1660e01b81526004016108419291906127c9565b6020604051808303816000875af1158015610860573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610884919061281e565b6108c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ba90612897565b60405180910390fd5b60003490506108d181611966565b85600360008282546108e391906128b7565b925050819055507f5e5e995ce3133561afceaa51a9a154d5db228cd7525d34df5185582c18d3df09338760405161091b9291906127c9565b60405180910390a1505050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146109b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b090612959565b60405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610a73919061220e565b602060405180830381865afa158015610a90573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ab49190612730565b6040518363ffffffff1660e01b8152600401610ad19291906127c9565b6020604051808303816000875af1158015610af0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b14919061281e565b610b53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4a90612897565b60405180910390fd5b565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610be3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bda90612959565b60405180910390fd5b60004790506000610bff60045483611bf090919063ffffffff16565b9050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610c69573d6000803e3d6000fd5b506000610c746111c9565b905060006005905060005b82811015610dae57818181548110610c9a57610c996125e1565b5b906000526020600020906005020160040160009054906101000a900460ff1615610d9b576000610d0c620186a0610cfe858581548110610cdd57610cdc6125e1565b5b906000526020600020906005020160030154886118fa90919063ffffffff16565b61193e90919063ffffffff16565b9050828281548110610d2157610d206125e1565b5b906000526020600020906005020160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610d98573d6000803e3d6000fd5b50505b8080610da690612610565b915050610c7f565b5060004714610e2157600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610e1f573d6000803e3d6000fd5b505b600060048190555050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ebd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb490612959565b60405180910390fd5b610ec681611c19565b50565b60035481565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7a90612959565b60405180910390fd5b60008103610fc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fbd906129c5565b60405180910390fd5b8060078190555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461105e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105590612959565b60405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60075481565b600581815481106110de57600080fd5b906000526020600020906005020160009150905080600001549080600101805461110790612a14565b80601f016020809104026020016040519081016040528092919081815260200182805461113390612a14565b80156111805780601f1061115557610100808354040283529160200191611180565b820191906000526020600020905b81548152906001019060200180831161116357829003601f168201915b5050505050908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060030154908060040160009054906101000a900460ff16905085565b60008060059050808054905091505090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461128d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128490612959565b60405180910390fd5b600047146112d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c790612ab7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361133f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133690612b23565b60405180910390fd5b600060059050600061134f6111c9565b905060008061135c61053a565b905061137185826118d290919063ffffffff16565b9050620186a08111156113b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b090612b8f565b60405180910390fd5b60005b838110156114f6578773ffffffffffffffffffffffffffffffffffffffff168582815481106113ee576113ed6125e1565b5b906000526020600020906005020160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036114e3578685828154811061144f5761144e6125e1565b5b90600052602060002090600502016001019080519060200190611473929190611d7e565b5085858281548110611488576114876125e1565b5b90600052602060002090600502016003018190555060018582815481106114b2576114b16125e1565b5b906000526020600020906005020160040160006101000a81548160ff021916908315150217905550600192506114f6565b80806114ee90612610565b9150506113bc565b508161163d57611504611e04565b60018461151191906128b7565b81600001818152505086816020018190525087816040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050858160600181815250506001816080019015159081151581525050848190806001815401808255809150506001900390600052602060002090600502016000909190919091506000820151816000015560208201518160010190805190602001906115c7929190611d7e565b5060408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506060820151816003015560808201518160040160006101000a81548160ff0219169083151502179055505050505b50505050505050565b60045481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146116da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d190612959565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611749576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174090612b23565b60405180910390fd5b60006005905060006117596111c9565b905060005b81811015611832578373ffffffffffffffffffffffffffffffffffffffff168382815481106117905761178f6125e1565b5b906000526020600020906005020160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361181f5760008382815481106117f2576117f16125e1565b5b906000526020600020906005020160040160006101000a81548160ff021916908315150217905550611832565b808061182a90612610565b91505061175e565b50505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146118c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118bd90612959565b60405180910390fd5b6118cf81611ccc565b50565b60008082846118e191906128b7565b9050838110156118f057600080fd5b8091505092915050565b600080830361190c5760009050611938565b6000828461191a9190612527565b905082848261192991906125b0565b1461193357600080fd5b809150505b92915050565b600080821161194c57600080fd5b6000828461195a91906125b0565b90508091505092915050565b600081116119a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a090612bfb565b60405180910390fd5b60006119c060045483611bf090919063ffffffff16565b9050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611a2a573d6000803e3d6000fd5b506000611a356111c9565b905060006005905060005b82811015611b6f57818181548110611a5b57611a5a6125e1565b5b906000526020600020906005020160040160009054906101000a900460ff1615611b5c576000611acd620186a0611abf858581548110611a9e57611a9d6125e1565b5b906000526020600020906005020160030154886118fa90919063ffffffff16565b61193e90919063ffffffff16565b9050828281548110611ae257611ae16125e1565b5b906000526020600020906005020160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611b59573d6000803e3d6000fd5b50505b8080611b6790612610565b915050611a40565b5060004714611be257600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611be0573d6000803e3d6000fd5b505b600060048190555050505050565b600082821115611bff57600080fd5b60008284611c0d9190612c1b565b90508091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611c88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7f90612b23565b60405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611d3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3290612b23565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b828054611d8a90612a14565b90600052602060002090601f016020900481019282611dac5760008555611df3565b82601f10611dc557805160ff1916838001178555611df3565b82800160010185558215611df3579182015b82811115611df2578251825591602001919060010190611dd7565b5b509050611e009190611e4b565b5090565b6040518060a001604052806000815260200160608152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600081526020016000151581525090565b5b80821115611e64576000816000905550600101611e4c565b5090565b6000819050919050565b611e7b81611e68565b82525050565b6000602082019050611e966000830184611e72565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611ec782611e9c565b9050919050565b611ed781611ebc565b82525050565b6000602082019050611ef26000830184611ece565b92915050565b6000604051905090565b600080fd5b600080fd5b611f1581611e68565b8114611f2057600080fd5b50565b600081359050611f3281611f0c565b92915050565b600060208284031215611f4e57611f4d611f02565b5b6000611f5c84828501611f23565b91505092915050565b611f6e81611ebc565b8114611f7957600080fd5b50565b600081359050611f8b81611f65565b92915050565b600060208284031215611fa757611fa6611f02565b5b6000611fb584828501611f7c565b91505092915050565b6000819050919050565b6000611fe3611fde611fd984611e9c565b611fbe565b611e9c565b9050919050565b6000611ff582611fc8565b9050919050565b600061200782611fea565b9050919050565b61201781611ffc565b82525050565b6000602082019050612032600083018461200e565b92915050565b600061204382611e9c565b9050919050565b600061205582612038565b9050919050565b6120658161204a565b811461207057600080fd5b50565b6000813590506120828161205c565b92915050565b60006020828403121561209e5761209d611f02565b5b60006120ac84828501612073565b91505092915050565b60006120c082611fea565b9050919050565b6120d0816120b5565b82525050565b60006020820190506120eb60008301846120c7565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561212b578082015181840152602081019050612110565b8381111561213a576000848401525b50505050565b6000601f19601f8301169050919050565b600061215c826120f1565b61216681856120fc565b935061217681856020860161210d565b61217f81612140565b840191505092915050565b60008115159050919050565b61219f8161218a565b82525050565b600060a0820190506121ba6000830188611e72565b81810360208301526121cc8187612151565b90506121db6040830186611ece565b6121e86060830185611e72565b6121f56080830184612196565b9695505050505050565b61220881612038565b82525050565b600060208201905061222360008301846121ff565b92915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61226b82612140565b810181811067ffffffffffffffff8211171561228a57612289612233565b5b80604052505050565b600061229d611ef8565b90506122a98282612262565b919050565b600067ffffffffffffffff8211156122c9576122c8612233565b5b6122d282612140565b9050602081019050919050565b82818337600083830152505050565b60006123016122fc846122ae565b612293565b90508281526020810184848401111561231d5761231c61222e565b5b6123288482856122df565b509392505050565b600082601f83011261234557612344612229565b5b81356123558482602086016122ee565b91505092915050565b60008060006060848603121561237757612376611f02565b5b600061238586828701611f7c565b935050602084013567ffffffffffffffff8111156123a6576123a5611f07565b5b6123b286828701612330565b92505060406123c386828701611f23565b9150509250925092565b6123d681612038565b81146123e157600080fd5b50565b6000813590506123f3816123cd565b92915050565b60006020828403121561240f5761240e611f02565b5b600061241d848285016123e4565b91505092915050565b600069ffffffffffffffffffff82169050919050565b61244581612426565b811461245057600080fd5b50565b6000815190506124628161243c565b92915050565b60008151905061247781611f0c565b92915050565b600080600080600060a0868803121561249957612498611f02565b5b60006124a788828901612453565b95505060206124b888828901612468565b94505060406124c988828901612468565b93505060606124da88828901612468565b92505060806124eb88828901612453565b9150509295509295909350565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061253282611e68565b915061253d83611e68565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612576576125756124f8565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006125bb82611e68565b91506125c683611e68565b9250826125d6576125d5612581565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061261b82611e68565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361264d5761264c6124f8565b5b600182019050919050565b7f496e737566666963656e742076616c7565000000000000000000000000000000600082015250565b600061268e6011836120fc565b915061269982612658565b602082019050919050565b600060208201905081810360008301526126bd81612681565b9050919050565b7f696e636f727265637420616d6f756e7400000000000000000000000000000000600082015250565b60006126fa6010836120fc565b9150612705826126c4565b602082019050919050565b60006020820190508181036000830152612729816126ed565b9050919050565b60006020828403121561274657612745611f02565b5b600061275484828501612468565b91505092915050565b7f636f6e747261637420686173206e6f7420656e6f75676820746f6b656e000000600082015250565b6000612793601d836120fc565b915061279e8261275d565b602082019050919050565b600060208201905081810360008301526127c281612786565b9050919050565b60006040820190506127de60008301856121ff565b6127eb6020830184611e72565b9392505050565b6127fb8161218a565b811461280657600080fd5b50565b600081519050612818816127f2565b92915050565b60006020828403121561283457612833611f02565b5b600061284284828501612809565b91505092915050565b7f7472616e73666572206572726f72000000000000000000000000000000000000600082015250565b6000612881600e836120fc565b915061288c8261284b565b602082019050919050565b600060208201905081810360008301526128b081612874565b9050919050565b60006128c282611e68565b91506128cd83611e68565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612902576129016124f8565b5b828201905092915050565b7f6f776e6572206f6e6c7900000000000000000000000000000000000000000000600082015250565b6000612943600a836120fc565b915061294e8261290d565b602082019050919050565b6000602082019050818103600083015261297281612936565b9050919050565b7f746f6b656e207072696365206973206e756c6c00000000000000000000000000600082015250565b60006129af6013836120fc565b91506129ba82612979565b602082019050919050565b600060208201905081810360008301526129de816129a2565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612a2c57607f821691505b602082108103612a3f57612a3e6129e5565b5b50919050565b7f62616c616e6365206e6f74206e756c6c2c207472616e736665722066756e647360008201527f2066697273740000000000000000000000000000000000000000000000000000602082015250565b6000612aa16026836120fc565b9150612aac82612a45565b604082019050919050565b60006020820190508181036000830152612ad081612a94565b9050919050565b7f61646472657373206e6f742076616c6964000000000000000000000000000000600082015250565b6000612b0d6011836120fc565b9150612b1882612ad7565b602082019050919050565b60006020820190508181036000830152612b3c81612b00565b9050919050565b7f746f74616c206665652063616e6e6f7420657863656564203130300000000000600082015250565b6000612b79601b836120fc565b9150612b8482612b43565b602082019050919050565b60006020820190508181036000830152612ba881612b6c565b9050919050565b7f6e6f206574686572207265636965766564000000000000000000000000000000600082015250565b6000612be56011836120fc565b9150612bf082612baf565b602082019050919050565b60006020820190508181036000830152612c1481612bd8565b9050919050565b6000612c2682611e68565b9150612c3183611e68565b925082821015612c4457612c436124f8565b5b82820390509291505056fea2646970667358221220b4bc1687ebefc7d8c88bebd4a4980b3459a851ec8f49d1c1f66992a80479177b64736f6c634300080d003300000000000000000000000075579d1c935bc600c7b4e30c54ecf86e703e5d880000000000000000000000001daccb936d45dcb63ef829f151cb33dc9d5373000000000000000000000000005f4ec3df9cbd43714fe2740f5e3616155c5b84190000000000000000000000000000000000000000000000000000000003938700
Deployed Bytecode
0x60806040526004361061011f5760003560e01c8063724e78da116100a05780638da5cb5b116100645780638da5cb5b1461038257806395bc349d146103ad57806396521716146103d6578063b20bc94c14610401578063f2fde38b1461042a5761011f565b8063724e78da14610297578063741bef1a146102c05780637ff9b596146102eb57806387c11cb0146103165780638c3bd8ba146103575761011f565b80633c68eb81116100e75780633c68eb81146101d8578063470a3275146101ef578063518ab2a81461021857806355a373d6146102435780636a61e5fc1461026e5761011f565b8063087d01df146101245780630cd74cd91461014f578063235d20351461017a5780633610724e146101a5578063380d831b146101c1575b600080fd5b34801561013057600080fd5b50610139610453565b6040516101469190611e81565b60405180910390f35b34801561015b57600080fd5b50610164610514565b6040516101719190611edd565b60405180910390f35b34801561018657600080fd5b5061018f61053a565b60405161019c9190611e81565b60405180910390f35b6101bf60048036038101906101ba9190611f38565b6105ec565b005b3480156101cd57600080fd5b506101d661092b565b005b3480156101e457600080fd5b506101ed610b55565b005b3480156101fb57600080fd5b5061021660048036038101906102119190611f91565b610e2f565b005b34801561022457600080fd5b5061022d610ec9565b60405161023a9190611e81565b60405180910390f35b34801561024f57600080fd5b50610258610ecf565b604051610265919061201d565b60405180910390f35b34801561027a57600080fd5b5061029560048036038101906102909190611f38565b610ef5565b005b3480156102a357600080fd5b506102be60048036038101906102b99190612088565b610fd0565b005b3480156102cc57600080fd5b506102d56110a2565b6040516102e291906120d6565b60405180910390f35b3480156102f757600080fd5b506103006110c8565b60405161030d9190611e81565b60405180910390f35b34801561032257600080fd5b5061033d60048036038101906103389190611f38565b6110ce565b60405161034e9594939291906121a5565b60405180910390f35b34801561036357600080fd5b5061036c6111c9565b6040516103799190611e81565b60405180910390f35b34801561038e57600080fd5b506103976111db565b6040516103a4919061220e565b60405180910390f35b3480156103b957600080fd5b506103d460048036038101906103cf919061235e565b6111ff565b005b3480156103e257600080fd5b506103eb611646565b6040516103f89190611e81565b60405180910390f35b34801561040d57600080fd5b50610428600480360381019061042391906123f9565b61164c565b005b34801561043657600080fd5b50610451600480360381019061044c9190611f91565b611838565b005b600080600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa1580156104c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104e7919061247d565b50505091505080670de0b6b3a76400006007546105049190612527565b61050e91906125b0565b91505090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009050600061054b6111c9565b905060006005905060005b828110156105e257818181548110610571576105706125e1565b5b906000526020600020906005020160040160009054906101000a900460ff16156105cf576105cc8282815481106105ab576105aa6125e1565b5b906000526020600020906005020160030154856118d290919063ffffffff16565b93505b80806105da90612610565b915050610556565b5082935050505090565b60006105f6610453565b90506000670de0b6b3a7640000828461060f9190612527565b61061991906125b0565b90503481111561065e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610655906126a4565b60405180910390fd5b600061066861053a565b90506000610694620186a061068684866118fa90919063ffffffff16565b61193e90919063ffffffff16565b90506106ab816004546118d290919063ffffffff16565b6004819055506106c481846118d290919063ffffffff16565b341015610706576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106fd90612710565b60405180910390fd5b84600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610762919061220e565b602060405180830381865afa15801561077f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a39190612730565b10156107e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107db906127a9565b60405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33876040518363ffffffff1660e01b81526004016108419291906127c9565b6020604051808303816000875af1158015610860573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610884919061281e565b6108c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ba90612897565b60405180910390fd5b60003490506108d181611966565b85600360008282546108e391906128b7565b925050819055507f5e5e995ce3133561afceaa51a9a154d5db228cd7525d34df5185582c18d3df09338760405161091b9291906127c9565b60405180910390a1505050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146109b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b090612959565b60405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610a73919061220e565b602060405180830381865afa158015610a90573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ab49190612730565b6040518363ffffffff1660e01b8152600401610ad19291906127c9565b6020604051808303816000875af1158015610af0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b14919061281e565b610b53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4a90612897565b60405180910390fd5b565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610be3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bda90612959565b60405180910390fd5b60004790506000610bff60045483611bf090919063ffffffff16565b9050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610c69573d6000803e3d6000fd5b506000610c746111c9565b905060006005905060005b82811015610dae57818181548110610c9a57610c996125e1565b5b906000526020600020906005020160040160009054906101000a900460ff1615610d9b576000610d0c620186a0610cfe858581548110610cdd57610cdc6125e1565b5b906000526020600020906005020160030154886118fa90919063ffffffff16565b61193e90919063ffffffff16565b9050828281548110610d2157610d206125e1565b5b906000526020600020906005020160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610d98573d6000803e3d6000fd5b50505b8080610da690612610565b915050610c7f565b5060004714610e2157600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610e1f573d6000803e3d6000fd5b505b600060048190555050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ebd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb490612959565b60405180910390fd5b610ec681611c19565b50565b60035481565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7a90612959565b60405180910390fd5b60008103610fc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fbd906129c5565b60405180910390fd5b8060078190555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461105e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105590612959565b60405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60075481565b600581815481106110de57600080fd5b906000526020600020906005020160009150905080600001549080600101805461110790612a14565b80601f016020809104026020016040519081016040528092919081815260200182805461113390612a14565b80156111805780601f1061115557610100808354040283529160200191611180565b820191906000526020600020905b81548152906001019060200180831161116357829003601f168201915b5050505050908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060030154908060040160009054906101000a900460ff16905085565b60008060059050808054905091505090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461128d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128490612959565b60405180910390fd5b600047146112d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c790612ab7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361133f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133690612b23565b60405180910390fd5b600060059050600061134f6111c9565b905060008061135c61053a565b905061137185826118d290919063ffffffff16565b9050620186a08111156113b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b090612b8f565b60405180910390fd5b60005b838110156114f6578773ffffffffffffffffffffffffffffffffffffffff168582815481106113ee576113ed6125e1565b5b906000526020600020906005020160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036114e3578685828154811061144f5761144e6125e1565b5b90600052602060002090600502016001019080519060200190611473929190611d7e565b5085858281548110611488576114876125e1565b5b90600052602060002090600502016003018190555060018582815481106114b2576114b16125e1565b5b906000526020600020906005020160040160006101000a81548160ff021916908315150217905550600192506114f6565b80806114ee90612610565b9150506113bc565b508161163d57611504611e04565b60018461151191906128b7565b81600001818152505086816020018190525087816040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050858160600181815250506001816080019015159081151581525050848190806001815401808255809150506001900390600052602060002090600502016000909190919091506000820151816000015560208201518160010190805190602001906115c7929190611d7e565b5060408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506060820151816003015560808201518160040160006101000a81548160ff0219169083151502179055505050505b50505050505050565b60045481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146116da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d190612959565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611749576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174090612b23565b60405180910390fd5b60006005905060006117596111c9565b905060005b81811015611832578373ffffffffffffffffffffffffffffffffffffffff168382815481106117905761178f6125e1565b5b906000526020600020906005020160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361181f5760008382815481106117f2576117f16125e1565b5b906000526020600020906005020160040160006101000a81548160ff021916908315150217905550611832565b808061182a90612610565b91505061175e565b50505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146118c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118bd90612959565b60405180910390fd5b6118cf81611ccc565b50565b60008082846118e191906128b7565b9050838110156118f057600080fd5b8091505092915050565b600080830361190c5760009050611938565b6000828461191a9190612527565b905082848261192991906125b0565b1461193357600080fd5b809150505b92915050565b600080821161194c57600080fd5b6000828461195a91906125b0565b90508091505092915050565b600081116119a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a090612bfb565b60405180910390fd5b60006119c060045483611bf090919063ffffffff16565b9050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611a2a573d6000803e3d6000fd5b506000611a356111c9565b905060006005905060005b82811015611b6f57818181548110611a5b57611a5a6125e1565b5b906000526020600020906005020160040160009054906101000a900460ff1615611b5c576000611acd620186a0611abf858581548110611a9e57611a9d6125e1565b5b906000526020600020906005020160030154886118fa90919063ffffffff16565b61193e90919063ffffffff16565b9050828281548110611ae257611ae16125e1565b5b906000526020600020906005020160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611b59573d6000803e3d6000fd5b50505b8080611b6790612610565b915050611a40565b5060004714611be257600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611be0573d6000803e3d6000fd5b505b600060048190555050505050565b600082821115611bff57600080fd5b60008284611c0d9190612c1b565b90508091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611c88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7f90612b23565b60405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611d3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3290612b23565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b828054611d8a90612a14565b90600052602060002090601f016020900481019282611dac5760008555611df3565b82601f10611dc557805160ff1916838001178555611df3565b82800160010185558215611df3579182015b82811115611df2578251825591602001919060010190611dd7565b5b509050611e009190611e4b565b5090565b6040518060a001604052806000815260200160608152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600081526020016000151581525090565b5b80821115611e64576000816000905550600101611e4c565b5090565b6000819050919050565b611e7b81611e68565b82525050565b6000602082019050611e966000830184611e72565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611ec782611e9c565b9050919050565b611ed781611ebc565b82525050565b6000602082019050611ef26000830184611ece565b92915050565b6000604051905090565b600080fd5b600080fd5b611f1581611e68565b8114611f2057600080fd5b50565b600081359050611f3281611f0c565b92915050565b600060208284031215611f4e57611f4d611f02565b5b6000611f5c84828501611f23565b91505092915050565b611f6e81611ebc565b8114611f7957600080fd5b50565b600081359050611f8b81611f65565b92915050565b600060208284031215611fa757611fa6611f02565b5b6000611fb584828501611f7c565b91505092915050565b6000819050919050565b6000611fe3611fde611fd984611e9c565b611fbe565b611e9c565b9050919050565b6000611ff582611fc8565b9050919050565b600061200782611fea565b9050919050565b61201781611ffc565b82525050565b6000602082019050612032600083018461200e565b92915050565b600061204382611e9c565b9050919050565b600061205582612038565b9050919050565b6120658161204a565b811461207057600080fd5b50565b6000813590506120828161205c565b92915050565b60006020828403121561209e5761209d611f02565b5b60006120ac84828501612073565b91505092915050565b60006120c082611fea565b9050919050565b6120d0816120b5565b82525050565b60006020820190506120eb60008301846120c7565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561212b578082015181840152602081019050612110565b8381111561213a576000848401525b50505050565b6000601f19601f8301169050919050565b600061215c826120f1565b61216681856120fc565b935061217681856020860161210d565b61217f81612140565b840191505092915050565b60008115159050919050565b61219f8161218a565b82525050565b600060a0820190506121ba6000830188611e72565b81810360208301526121cc8187612151565b90506121db6040830186611ece565b6121e86060830185611e72565b6121f56080830184612196565b9695505050505050565b61220881612038565b82525050565b600060208201905061222360008301846121ff565b92915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61226b82612140565b810181811067ffffffffffffffff8211171561228a57612289612233565b5b80604052505050565b600061229d611ef8565b90506122a98282612262565b919050565b600067ffffffffffffffff8211156122c9576122c8612233565b5b6122d282612140565b9050602081019050919050565b82818337600083830152505050565b60006123016122fc846122ae565b612293565b90508281526020810184848401111561231d5761231c61222e565b5b6123288482856122df565b509392505050565b600082601f83011261234557612344612229565b5b81356123558482602086016122ee565b91505092915050565b60008060006060848603121561237757612376611f02565b5b600061238586828701611f7c565b935050602084013567ffffffffffffffff8111156123a6576123a5611f07565b5b6123b286828701612330565b92505060406123c386828701611f23565b9150509250925092565b6123d681612038565b81146123e157600080fd5b50565b6000813590506123f3816123cd565b92915050565b60006020828403121561240f5761240e611f02565b5b600061241d848285016123e4565b91505092915050565b600069ffffffffffffffffffff82169050919050565b61244581612426565b811461245057600080fd5b50565b6000815190506124628161243c565b92915050565b60008151905061247781611f0c565b92915050565b600080600080600060a0868803121561249957612498611f02565b5b60006124a788828901612453565b95505060206124b888828901612468565b94505060406124c988828901612468565b93505060606124da88828901612468565b92505060806124eb88828901612453565b9150509295509295909350565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061253282611e68565b915061253d83611e68565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612576576125756124f8565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006125bb82611e68565b91506125c683611e68565b9250826125d6576125d5612581565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061261b82611e68565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361264d5761264c6124f8565b5b600182019050919050565b7f496e737566666963656e742076616c7565000000000000000000000000000000600082015250565b600061268e6011836120fc565b915061269982612658565b602082019050919050565b600060208201905081810360008301526126bd81612681565b9050919050565b7f696e636f727265637420616d6f756e7400000000000000000000000000000000600082015250565b60006126fa6010836120fc565b9150612705826126c4565b602082019050919050565b60006020820190508181036000830152612729816126ed565b9050919050565b60006020828403121561274657612745611f02565b5b600061275484828501612468565b91505092915050565b7f636f6e747261637420686173206e6f7420656e6f75676820746f6b656e000000600082015250565b6000612793601d836120fc565b915061279e8261275d565b602082019050919050565b600060208201905081810360008301526127c281612786565b9050919050565b60006040820190506127de60008301856121ff565b6127eb6020830184611e72565b9392505050565b6127fb8161218a565b811461280657600080fd5b50565b600081519050612818816127f2565b92915050565b60006020828403121561283457612833611f02565b5b600061284284828501612809565b91505092915050565b7f7472616e73666572206572726f72000000000000000000000000000000000000600082015250565b6000612881600e836120fc565b915061288c8261284b565b602082019050919050565b600060208201905081810360008301526128b081612874565b9050919050565b60006128c282611e68565b91506128cd83611e68565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612902576129016124f8565b5b828201905092915050565b7f6f776e6572206f6e6c7900000000000000000000000000000000000000000000600082015250565b6000612943600a836120fc565b915061294e8261290d565b602082019050919050565b6000602082019050818103600083015261297281612936565b9050919050565b7f746f6b656e207072696365206973206e756c6c00000000000000000000000000600082015250565b60006129af6013836120fc565b91506129ba82612979565b602082019050919050565b600060208201905081810360008301526129de816129a2565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612a2c57607f821691505b602082108103612a3f57612a3e6129e5565b5b50919050565b7f62616c616e6365206e6f74206e756c6c2c207472616e736665722066756e647360008201527f2066697273740000000000000000000000000000000000000000000000000000602082015250565b6000612aa16026836120fc565b9150612aac82612a45565b604082019050919050565b60006020820190508181036000830152612ad081612a94565b9050919050565b7f61646472657373206e6f742076616c6964000000000000000000000000000000600082015250565b6000612b0d6011836120fc565b9150612b1882612ad7565b602082019050919050565b60006020820190508181036000830152612b3c81612b00565b9050919050565b7f746f74616c206665652063616e6e6f7420657863656564203130300000000000600082015250565b6000612b79601b836120fc565b9150612b8482612b43565b602082019050919050565b60006020820190508181036000830152612ba881612b6c565b9050919050565b7f6e6f206574686572207265636965766564000000000000000000000000000000600082015250565b6000612be56011836120fc565b9150612bf082612baf565b602082019050919050565b60006020820190508181036000830152612c1481612bd8565b9050919050565b6000612c2682611e68565b9150612c3183611e68565b925082821015612c4457612c436124f8565b5b82820390509291505056fea2646970667358221220b4bc1687ebefc7d8c88bebd4a4980b3459a851ec8f49d1c1f66992a80479177b64736f6c634300080d0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000075579d1c935bc600c7b4e30c54ecf86e703e5d880000000000000000000000001daccb936d45dcb63ef829f151cb33dc9d5373000000000000000000000000005f4ec3df9cbd43714fe2740f5e3616155c5b84190000000000000000000000000000000000000000000000000000000003938700
-----Decoded View---------------
Arg [0] : _tokenContract (address): 0x75579D1C935Bc600c7b4e30c54EcF86e703E5d88
Arg [1] : _etherWallet (address): 0x1daCcB936D45DcB63EF829f151CB33DC9D537300
Arg [2] : _priceFeed (address): 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419
Arg [3] : _tokenPrice (uint256): 60000000
-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 00000000000000000000000075579d1c935bc600c7b4e30c54ecf86e703e5d88
Arg [1] : 0000000000000000000000001daccb936d45dcb63ef829f151cb33dc9d537300
Arg [2] : 0000000000000000000000005f4ec3df9cbd43714fe2740f5e3616155c5b8419
Arg [3] : 0000000000000000000000000000000000000000000000000000000003938700
Deployed Bytecode Sourcemap
2281:8048:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3207:163;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2367:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8332:426;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3712:999;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5648:149;;;;;;;;;;;;;:::i;:::-;;5828:936;;;;;;;;;;;;;:::i;:::-;;9666:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2444:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2408:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10029:163;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10223:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2731:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2765:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2514:30;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;8176:148;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2340:20;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6894:1274;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2476:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8766:542;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9339:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3207:163;3251:7;3273:13;3296:9;;;;;;;;;;;:25;;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3271:52;;;;;;3357:5;3352:4;3341:10;;:15;;;;:::i;:::-;:21;;;;:::i;:::-;3334:28;;;3207:163;:::o;2367:34::-;;;;;;;;;;;;;:::o;8332:426::-;8384:4;8400:23;8426:1;8400:27;;8438:17;8458:26;:24;:26::i;:::-;8438:46;;8495:19;8517:16;8495:38;;8551:6;8546:170;8567:9;8563:1;:13;8546:170;;;8601:4;8606:1;8601:7;;;;;;;;:::i;:::-;;;;;;;;;;;;:14;;;;;;;;;;;;8597:108;;;8653:36;8673:4;8678:1;8673:7;;;;;;;;:::i;:::-;;;;;;;;;;;;:15;;;8653;:19;;:36;;;;:::i;:::-;8635:54;;8597:108;8578:3;;;;;:::i;:::-;;;;8546:170;;;;8735:15;8728:22;;;;;8332:426;:::o;3712:999::-;3782:13;3798:14;:12;:14::i;:::-;3782:30;;3823:23;3871:6;3865:5;3849:15;:21;;;;:::i;:::-;:28;;;;:::i;:::-;3823:54;;3915:9;3896:15;:28;;3888:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;4000:23;4026:21;:18;:21::i;:::-;4000:47;;4058:23;4084:48;4125:6;4084:36;4104:15;4084;:19;;:36;;;;:::i;:::-;:40;;:48;;;;:::i;:::-;4058:74;;4183:36;4203:15;4183:14;;:18;;:36;;;;:::i;:::-;4166:14;:53;;;;4253:36;4273:15;4253;:19;;:36;;;;:::i;:::-;4240:9;:49;;4232:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;4370:15;4328:13;;;;;;;;;;;:23;;;4360:4;4328:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:57;;4320:98;;;;;;;;;;;;:::i;:::-;;;;;;;;;4437:13;;;;;;;;;;;:22;;;4460:10;4472:15;4437:51;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4429:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;4542:17;4562:9;4542:29;;4582:28;4600:9;4582:17;:28::i;:::-;4637:15;4623:10;;:29;;;;;;;:::i;:::-;;;;;;;;4670:33;4675:10;4687:15;4670:33;;;;;;;:::i;:::-;;;;;;;;3771:940;;;;;3712:999;:::o;5648:149::-;3449:5;;;;;;;;;;3435:19;;:10;:19;;;3427:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;5702:13:::1;;;;;;;;;;;:22;;;5725:5;::::0;::::1;;;;;;;;5732:13;;;;;;;;;;;:23;;;5764:4;5732:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5702:69;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5694:95;;;;;;;;;;;;:::i;:::-;;;;;;;;;5648:149::o:0;5828:936::-;3449:5;;;;;;;;;;3435:19;;:10;:19;;;3427:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;5943:18:::1;5964:21;5943:42;;6064:19;6086:30;6101:14;;6086:10;:14;;:30;;;;:::i;:::-;6064:52;;6127:11;;;;;;;;;;;:20;;:33;6148:11;6127:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;6201:17;6221:26;:24;:26::i;:::-;6201:46;;6258:19;6280:16;6258:38;;6314:6;6309:251;6330:9;6326:1;:13;6309:251;;;6364:4;6369:1;6364:7;;;;;;;;:::i;:::-;;;;;;;;;;;;:14;;;;;;;;;;;;6360:189;;;6398:13;6414:44;6451:6;6414:32;6430:4;6435:1;6430:7;;;;;;;;:::i;:::-;;;;;;;;;;;;:15;;;6414:11;:15;;:32;;;;:::i;:::-;:36;;:44;;;;:::i;:::-;6398:60;;6500:4;6505:1;6500:7;;;;;;;;:::i;:::-;;;;;;;;;;;;:14;;;;;;;;;;;;:23;;:33;6524:8;6500:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;6379:170;6360:189;6341:3;;;;;:::i;:::-;;;;6309:251;;;;6656:1;6631:21;:26;6627:101;;6673:11;;;;;;;;;;;:20;;:43;6694:21;6673:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;6627:101;6755:1;6738:14;:18;;;;5870:894;;;;5828:936::o:0;9666:135::-;3449:5;;;;;;;;;;3435:19;;:10;:19;;;3427:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;9756:37:::1;9777:15;9756:20;:37::i;:::-;9666:135:::0;:::o;2444:25::-;;;;:::o;2408:29::-;;;;;;;;;;;;;:::o;10029:163::-;3449:5;;;;;;;;;;3435:19;;:10;:19;;;3427:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;10124:1:::1;10109:11;:16:::0;10101:48:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;10173:11;10160:10;:24;;;;10029:163:::0;:::o;10223:103::-;3449:5;;;;;;;;;;3435:19;;:10;:19;;;3427:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;10308:10:::1;10296:9;;:22;;;;;;;;;;;;;;;;;;10223:103:::0;:::o;2731:27::-;;;;;;;;;;;;;:::o;2765:25::-;;;;:::o;2514:30::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;8176:148::-;8232:4;8249:19;8271:16;8249:38;;8305:4;:11;;;;8298:18;;;8176:148;:::o;2340:20::-;;;;;;;;;;;;:::o;6894:1274::-;3449:5;;;;;;;;;;3435:19;;:10;:19;;;3427:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;3640:1:::1;3615:21;:26;3607:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;7058:1:::2;7036:24;;:10;:24;;::::0;7028:54:::2;;;;;;;;;;;;:::i;:::-;;;;;;;;;7159:19;7181:16;7159:38;;7253:17;7273:26;:24;:26::i;:::-;7253:46;;7312:14;7347:20:::0;7370:21:::2;:18;:21::i;:::-;7347:44;;7420:29;7440:8;7420:15;:19;;:29;;;;:::i;:::-;7402:47;;7487:6;7468:15;:25;;7460:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;7543:6;7538:300;7559:9;7555:1;:13;7538:300;;;7611:10;7593:28;;:4;7598:1;7593:7;;;;;;;;:::i;:::-;;;;;;;;;;;;:14;;;;;;;;;;;;:28;;::::0;7589:238:::2;;7659:5;7641:4;7646:1;7641:7;;;;;;;;:::i;:::-;;;;;;;;;;;;:12;;:23;;;;;;;;;;;;:::i;:::-;;7701:8;7683:4;7688:1;7683:7;;;;;;;;:::i;:::-;;;;;;;;;;;;:15;;:26;;;;7746:4;7728;7733:1;7728:7;;;;;;;;:::i;:::-;;;;;;;;;;;;:14;;;:22;;;;;;;;;;;;;;;;;;7783:4;7771:16;;7806:5;;7589:238;7570:3;;;;;:::i;:::-;;;;7538:300;;;;7899:9;7894:267;;7924:15;;:::i;:::-;7978:1;7966:9;:13;;;;:::i;:::-;7956:3;:6;;:24;;;::::0;::::2;8006:5;7995:3;:8;;:16;;;;8039:10;8026:3;:10;;:23;;;;;;;;;::::0;::::2;8078:8;8064:3;:11;;:22;;;::::0;::::2;8114:4;8101:3;:10;;:17;;;;;;;;;::::0;::::2;8135:4;8145:3;8135:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7909:252;7894:267;7017:1151;;;;6894:1274:::0;;;:::o;2476:29::-;;;;:::o;8766:542::-;3449:5;;;;;;;;;;3435:19;;:10;:19;;;3427:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;8873:1:::1;8851:24;;:10;:24;;::::0;8843:54:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;8974:19;8996:16;8974:38;;9068:17;9088:26;:24;:26::i;:::-;9068:46;;9130:6;9125:176;9146:9;9142:1;:13;9125:176;;;9198:10;9180:28;;:4;9185:1;9180:7;;;;;;;;:::i;:::-;;;;;;;;;;;;:14;;;;;;;;;;;;:28;;::::0;9176:114:::1;;9245:5;9228:4;9233:1;9228:7;;;;;;;;:::i;:::-;;;;;;;;;;;;:14;;;:22;;;;;;;;;;;;;;;;;;9269:5;;9176:114;9157:3;;;;;:::i;:::-;;;;9125:176;;;;8832:476;;8766:542:::0;:::o;9339:119::-;3449:5;;;;;;;;;;3435:19;;:10;:19;;;3427:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;9421:29:::1;9440:9;9421:18;:29::i;:::-;9339:119:::0;:::o;1418:150::-;1476:7;1496:9;1512:1;1508;:5;;;;:::i;:::-;1496:17;;1537:1;1532;:6;;1524:15;;;;;;1559:1;1552:8;;;1418:150;;;;:::o;177:433::-;235:7;484:1;479;:6;475:47;;509:1;502:8;;;;475:47;534:9;550:1;546;:5;;;;:::i;:::-;534:17;;579:1;574;570;:5;;;;:::i;:::-;:10;562:19;;;;;;601:1;594:8;;;177:433;;;;;:::o;743:303::-;801:7;900:1;896;:5;888:14;;;;;;913:9;929:1;925;:5;;;;:::i;:::-;913:17;;1037:1;1030:8;;;743:303;;;;:::o;4751:887::-;4837:1;4825:9;:13;4817:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;4939:19;4961:29;4975:14;;4961:9;:13;;:29;;;;:::i;:::-;4939:51;;5001:11;;;;;;;;;;;:20;;:33;5022:11;5001:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5075:17;5095:26;:24;:26::i;:::-;5075:46;;5132:19;5154:16;5132:38;;5188:6;5183:251;5204:9;5200:1;:13;5183:251;;;5238:4;5243:1;5238:7;;;;;;;;:::i;:::-;;;;;;;;;;;;:14;;;;;;;;;;;;5234:189;;;5272:13;5288:44;5325:6;5288:32;5304:4;5309:1;5304:7;;;;;;;;:::i;:::-;;;;;;;;;;;;:15;;;5288:11;:15;;:32;;;;:::i;:::-;:36;;:44;;;;:::i;:::-;5272:60;;5374:4;5379:1;5374:7;;;;;;;;:::i;:::-;;;;;;;;;;;;:14;;;;;;;;;;;;:23;;:33;5398:8;5374:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5253:170;5234:189;5215:3;;;;;:::i;:::-;;;;5183:251;;;;5530:1;5505:21;:26;5501:101;;5547:11;;;;;;;;;;;:20;;:43;5568:21;5547:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5501:101;5629:1;5612:14;:18;;;;4806:832;;;4751:887;:::o;1182:150::-;1240:7;1273:1;1268;:6;;1260:15;;;;;;1286:9;1302:1;1298;:5;;;;:::i;:::-;1286:17;;1323:1;1316:8;;;1182:150;;;;:::o;9807:190::-;9925:1;9898:29;;:15;:29;;;9890:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;9974:15;9960:11;;:29;;;;;;;;;;;;;;;;;;9807:190;:::o;9464:164::-;9568:1;9547:23;;:9;:23;;;9539:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;9611:9;9603:5;;:17;;;;;;;;;;;;;;;;;;9464:164;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:126::-;479:7;519:42;512:5;508:54;497:65;;442:126;;;:::o;574:104::-;619:7;648:24;666:5;648:24;:::i;:::-;637:35;;574:104;;;:::o;684:142::-;787:32;813:5;787:32;:::i;:::-;782:3;775:45;684:142;;:::o;832:254::-;941:4;979:2;968:9;964:18;956:26;;992:87;1076:1;1065:9;1061:17;1052:6;992:87;:::i;:::-;832:254;;;;:::o;1092:75::-;1125:6;1158:2;1152:9;1142:19;;1092:75;:::o;1173:117::-;1282:1;1279;1272:12;1296:117;1405:1;1402;1395:12;1419:122;1492:24;1510:5;1492:24;:::i;:::-;1485:5;1482:35;1472:63;;1531:1;1528;1521:12;1472:63;1419:122;:::o;1547:139::-;1593:5;1631:6;1618:20;1609:29;;1647:33;1674:5;1647:33;:::i;:::-;1547:139;;;;:::o;1692:329::-;1751:6;1800:2;1788:9;1779:7;1775:23;1771:32;1768:119;;;1806:79;;:::i;:::-;1768:119;1926:1;1951:53;1996:7;1987:6;1976:9;1972:22;1951:53;:::i;:::-;1941:63;;1897:117;1692:329;;;;:::o;2027:138::-;2108:32;2134:5;2108:32;:::i;:::-;2101:5;2098:43;2088:71;;2155:1;2152;2145:12;2088:71;2027:138;:::o;2171:155::-;2225:5;2263:6;2250:20;2241:29;;2279:41;2314:5;2279:41;:::i;:::-;2171:155;;;;:::o;2332:345::-;2399:6;2448:2;2436:9;2427:7;2423:23;2419:32;2416:119;;;2454:79;;:::i;:::-;2416:119;2574:1;2599:61;2652:7;2643:6;2632:9;2628:22;2599:61;:::i;:::-;2589:71;;2545:125;2332:345;;;;:::o;2683:60::-;2711:3;2732:5;2725:12;;2683:60;;;:::o;2749:142::-;2799:9;2832:53;2850:34;2859:24;2877:5;2859:24;:::i;:::-;2850:34;:::i;:::-;2832:53;:::i;:::-;2819:66;;2749:142;;;:::o;2897:126::-;2947:9;2980:37;3011:5;2980:37;:::i;:::-;2967:50;;2897:126;;;:::o;3029:142::-;3095:9;3128:37;3159:5;3128:37;:::i;:::-;3115:50;;3029:142;;;:::o;3177:163::-;3280:53;3327:5;3280:53;:::i;:::-;3275:3;3268:66;3177:163;;:::o;3346:254::-;3455:4;3493:2;3482:9;3478:18;3470:26;;3506:87;3590:1;3579:9;3575:17;3566:6;3506:87;:::i;:::-;3346:254;;;;:::o;3606:96::-;3643:7;3672:24;3690:5;3672:24;:::i;:::-;3661:35;;3606:96;;;:::o;3708:114::-;3763:7;3792:24;3810:5;3792:24;:::i;:::-;3781:35;;3708:114;;;:::o;3828:158::-;3919:42;3955:5;3919:42;:::i;:::-;3912:5;3909:53;3899:81;;3976:1;3973;3966:12;3899:81;3828:158;:::o;3992:175::-;4056:5;4094:6;4081:20;4072:29;;4110:51;4155:5;4110:51;:::i;:::-;3992:175;;;;:::o;4173:365::-;4250:6;4299:2;4287:9;4278:7;4274:23;4270:32;4267:119;;;4305:79;;:::i;:::-;4267:119;4425:1;4450:71;4513:7;4504:6;4493:9;4489:22;4450:71;:::i;:::-;4440:81;;4396:135;4173:365;;;;:::o;4544:144::-;4612:9;4645:37;4676:5;4645:37;:::i;:::-;4632:50;;4544:144;;;:::o;4694:167::-;4799:55;4848:5;4799:55;:::i;:::-;4794:3;4787:68;4694:167;;:::o;4867:258::-;4978:4;5016:2;5005:9;5001:18;4993:26;;5029:89;5115:1;5104:9;5100:17;5091:6;5029:89;:::i;:::-;4867:258;;;;:::o;5131:99::-;5183:6;5217:5;5211:12;5201:22;;5131:99;;;:::o;5236:169::-;5320:11;5354:6;5349:3;5342:19;5394:4;5389:3;5385:14;5370:29;;5236:169;;;;:::o;5411:307::-;5479:1;5489:113;5503:6;5500:1;5497:13;5489:113;;;5588:1;5583:3;5579:11;5573:18;5569:1;5564:3;5560:11;5553:39;5525:2;5522:1;5518:10;5513:15;;5489:113;;;5620:6;5617:1;5614:13;5611:101;;;5700:1;5691:6;5686:3;5682:16;5675:27;5611:101;5460:258;5411:307;;;:::o;5724:102::-;5765:6;5816:2;5812:7;5807:2;5800:5;5796:14;5792:28;5782:38;;5724:102;;;:::o;5832:364::-;5920:3;5948:39;5981:5;5948:39;:::i;:::-;6003:71;6067:6;6062:3;6003:71;:::i;:::-;5996:78;;6083:52;6128:6;6123:3;6116:4;6109:5;6105:16;6083:52;:::i;:::-;6160:29;6182:6;6160:29;:::i;:::-;6155:3;6151:39;6144:46;;5924:272;5832:364;;;;:::o;6202:90::-;6236:7;6279:5;6272:13;6265:21;6254:32;;6202:90;;;:::o;6298:109::-;6379:21;6394:5;6379:21;:::i;:::-;6374:3;6367:34;6298:109;;:::o;6413:775::-;6648:4;6686:3;6675:9;6671:19;6663:27;;6700:71;6768:1;6757:9;6753:17;6744:6;6700:71;:::i;:::-;6818:9;6812:4;6808:20;6803:2;6792:9;6788:18;6781:48;6846:78;6919:4;6910:6;6846:78;:::i;:::-;6838:86;;6934:88;7018:2;7007:9;7003:18;6994:6;6934:88;:::i;:::-;7032:72;7100:2;7089:9;7085:18;7076:6;7032:72;:::i;:::-;7114:67;7176:3;7165:9;7161:19;7152:6;7114:67;:::i;:::-;6413:775;;;;;;;;:::o;7194:118::-;7281:24;7299:5;7281:24;:::i;:::-;7276:3;7269:37;7194:118;;:::o;7318:222::-;7411:4;7449:2;7438:9;7434:18;7426:26;;7462:71;7530:1;7519:9;7515:17;7506:6;7462:71;:::i;:::-;7318:222;;;;:::o;7546:117::-;7655:1;7652;7645:12;7669:117;7778:1;7775;7768:12;7792:180;7840:77;7837:1;7830:88;7937:4;7934:1;7927:15;7961:4;7958:1;7951:15;7978:281;8061:27;8083:4;8061:27;:::i;:::-;8053:6;8049:40;8191:6;8179:10;8176:22;8155:18;8143:10;8140:34;8137:62;8134:88;;;8202:18;;:::i;:::-;8134:88;8242:10;8238:2;8231:22;8021:238;7978:281;;:::o;8265:129::-;8299:6;8326:20;;:::i;:::-;8316:30;;8355:33;8383:4;8375:6;8355:33;:::i;:::-;8265:129;;;:::o;8400:308::-;8462:4;8552:18;8544:6;8541:30;8538:56;;;8574:18;;:::i;:::-;8538:56;8612:29;8634:6;8612:29;:::i;:::-;8604:37;;8696:4;8690;8686:15;8678:23;;8400:308;;;:::o;8714:154::-;8798:6;8793:3;8788;8775:30;8860:1;8851:6;8846:3;8842:16;8835:27;8714:154;;;:::o;8874:412::-;8952:5;8977:66;8993:49;9035:6;8993:49;:::i;:::-;8977:66;:::i;:::-;8968:75;;9066:6;9059:5;9052:21;9104:4;9097:5;9093:16;9142:3;9133:6;9128:3;9124:16;9121:25;9118:112;;;9149:79;;:::i;:::-;9118:112;9239:41;9273:6;9268:3;9263;9239:41;:::i;:::-;8958:328;8874:412;;;;;:::o;9306:340::-;9362:5;9411:3;9404:4;9396:6;9392:17;9388:27;9378:122;;9419:79;;:::i;:::-;9378:122;9536:6;9523:20;9561:79;9636:3;9628:6;9621:4;9613:6;9609:17;9561:79;:::i;:::-;9552:88;;9368:278;9306:340;;;;:::o;9652:815::-;9747:6;9755;9763;9812:2;9800:9;9791:7;9787:23;9783:32;9780:119;;;9818:79;;:::i;:::-;9780:119;9938:1;9963:61;10016:7;10007:6;9996:9;9992:22;9963:61;:::i;:::-;9953:71;;9909:125;10101:2;10090:9;10086:18;10073:32;10132:18;10124:6;10121:30;10118:117;;;10154:79;;:::i;:::-;10118:117;10259:63;10314:7;10305:6;10294:9;10290:22;10259:63;:::i;:::-;10249:73;;10044:288;10371:2;10397:53;10442:7;10433:6;10422:9;10418:22;10397:53;:::i;:::-;10387:63;;10342:118;9652:815;;;;;:::o;10473:122::-;10546:24;10564:5;10546:24;:::i;:::-;10539:5;10536:35;10526:63;;10585:1;10582;10575:12;10526:63;10473:122;:::o;10601:139::-;10647:5;10685:6;10672:20;10663:29;;10701:33;10728:5;10701:33;:::i;:::-;10601:139;;;;:::o;10746:329::-;10805:6;10854:2;10842:9;10833:7;10829:23;10825:32;10822:119;;;10860:79;;:::i;:::-;10822:119;10980:1;11005:53;11050:7;11041:6;11030:9;11026:22;11005:53;:::i;:::-;10995:63;;10951:117;10746:329;;;;:::o;11081:105::-;11117:7;11157:22;11150:5;11146:34;11135:45;;11081:105;;;:::o;11192:120::-;11264:23;11281:5;11264:23;:::i;:::-;11257:5;11254:34;11244:62;;11302:1;11299;11292:12;11244:62;11192:120;:::o;11318:141::-;11374:5;11405:6;11399:13;11390:22;;11421:32;11447:5;11421:32;:::i;:::-;11318:141;;;;:::o;11465:143::-;11522:5;11553:6;11547:13;11538:22;;11569:33;11596:5;11569:33;:::i;:::-;11465:143;;;;:::o;11614:973::-;11718:6;11726;11734;11742;11750;11799:3;11787:9;11778:7;11774:23;11770:33;11767:120;;;11806:79;;:::i;:::-;11767:120;11926:1;11951:63;12006:7;11997:6;11986:9;11982:22;11951:63;:::i;:::-;11941:73;;11897:127;12063:2;12089:64;12145:7;12136:6;12125:9;12121:22;12089:64;:::i;:::-;12079:74;;12034:129;12202:2;12228:64;12284:7;12275:6;12264:9;12260:22;12228:64;:::i;:::-;12218:74;;12173:129;12341:2;12367:64;12423:7;12414:6;12403:9;12399:22;12367:64;:::i;:::-;12357:74;;12312:129;12480:3;12507:63;12562:7;12553:6;12542:9;12538:22;12507:63;:::i;:::-;12497:73;;12451:129;11614:973;;;;;;;;:::o;12593:180::-;12641:77;12638:1;12631:88;12738:4;12735:1;12728:15;12762:4;12759:1;12752:15;12779:348;12819:7;12842:20;12860:1;12842:20;:::i;:::-;12837:25;;12876:20;12894:1;12876:20;:::i;:::-;12871:25;;13064:1;12996:66;12992:74;12989:1;12986:81;12981:1;12974:9;12967:17;12963:105;12960:131;;;13071:18;;:::i;:::-;12960:131;13119:1;13116;13112:9;13101:20;;12779:348;;;;:::o;13133:180::-;13181:77;13178:1;13171:88;13278:4;13275:1;13268:15;13302:4;13299:1;13292:15;13319:185;13359:1;13376:20;13394:1;13376:20;:::i;:::-;13371:25;;13410:20;13428:1;13410:20;:::i;:::-;13405:25;;13449:1;13439:35;;13454:18;;:::i;:::-;13439:35;13496:1;13493;13489:9;13484:14;;13319:185;;;;:::o;13510:180::-;13558:77;13555:1;13548:88;13655:4;13652:1;13645:15;13679:4;13676:1;13669:15;13696:233;13735:3;13758:24;13776:5;13758:24;:::i;:::-;13749:33;;13804:66;13797:5;13794:77;13791:103;;13874:18;;:::i;:::-;13791:103;13921:1;13914:5;13910:13;13903:20;;13696:233;;;:::o;13935:167::-;14075:19;14071:1;14063:6;14059:14;14052:43;13935:167;:::o;14108:366::-;14250:3;14271:67;14335:2;14330:3;14271:67;:::i;:::-;14264:74;;14347:93;14436:3;14347:93;:::i;:::-;14465:2;14460:3;14456:12;14449:19;;14108:366;;;:::o;14480:419::-;14646:4;14684:2;14673:9;14669:18;14661:26;;14733:9;14727:4;14723:20;14719:1;14708:9;14704:17;14697:47;14761:131;14887:4;14761:131;:::i;:::-;14753:139;;14480:419;;;:::o;14905:166::-;15045:18;15041:1;15033:6;15029:14;15022:42;14905:166;:::o;15077:366::-;15219:3;15240:67;15304:2;15299:3;15240:67;:::i;:::-;15233:74;;15316:93;15405:3;15316:93;:::i;:::-;15434:2;15429:3;15425:12;15418:19;;15077:366;;;:::o;15449:419::-;15615:4;15653:2;15642:9;15638:18;15630:26;;15702:9;15696:4;15692:20;15688:1;15677:9;15673:17;15666:47;15730:131;15856:4;15730:131;:::i;:::-;15722:139;;15449:419;;;:::o;15874:351::-;15944:6;15993:2;15981:9;15972:7;15968:23;15964:32;15961:119;;;15999:79;;:::i;:::-;15961:119;16119:1;16144:64;16200:7;16191:6;16180:9;16176:22;16144:64;:::i;:::-;16134:74;;16090:128;15874:351;;;;:::o;16231:179::-;16371:31;16367:1;16359:6;16355:14;16348:55;16231:179;:::o;16416:366::-;16558:3;16579:67;16643:2;16638:3;16579:67;:::i;:::-;16572:74;;16655:93;16744:3;16655:93;:::i;:::-;16773:2;16768:3;16764:12;16757:19;;16416:366;;;:::o;16788:419::-;16954:4;16992:2;16981:9;16977:18;16969:26;;17041:9;17035:4;17031:20;17027:1;17016:9;17012:17;17005:47;17069:131;17195:4;17069:131;:::i;:::-;17061:139;;16788:419;;;:::o;17213:332::-;17334:4;17372:2;17361:9;17357:18;17349:26;;17385:71;17453:1;17442:9;17438:17;17429:6;17385:71;:::i;:::-;17466:72;17534:2;17523:9;17519:18;17510:6;17466:72;:::i;:::-;17213:332;;;;;:::o;17551:116::-;17621:21;17636:5;17621:21;:::i;:::-;17614:5;17611:32;17601:60;;17657:1;17654;17647:12;17601:60;17551:116;:::o;17673:137::-;17727:5;17758:6;17752:13;17743:22;;17774:30;17798:5;17774:30;:::i;:::-;17673:137;;;;:::o;17816:345::-;17883:6;17932:2;17920:9;17911:7;17907:23;17903:32;17900:119;;;17938:79;;:::i;:::-;17900:119;18058:1;18083:61;18136:7;18127:6;18116:9;18112:22;18083:61;:::i;:::-;18073:71;;18029:125;17816:345;;;;:::o;18167:164::-;18307:16;18303:1;18295:6;18291:14;18284:40;18167:164;:::o;18337:366::-;18479:3;18500:67;18564:2;18559:3;18500:67;:::i;:::-;18493:74;;18576:93;18665:3;18576:93;:::i;:::-;18694:2;18689:3;18685:12;18678:19;;18337:366;;;:::o;18709:419::-;18875:4;18913:2;18902:9;18898:18;18890:26;;18962:9;18956:4;18952:20;18948:1;18937:9;18933:17;18926:47;18990:131;19116:4;18990:131;:::i;:::-;18982:139;;18709:419;;;:::o;19134:305::-;19174:3;19193:20;19211:1;19193:20;:::i;:::-;19188:25;;19227:20;19245:1;19227:20;:::i;:::-;19222:25;;19381:1;19313:66;19309:74;19306:1;19303:81;19300:107;;;19387:18;;:::i;:::-;19300:107;19431:1;19428;19424:9;19417:16;;19134:305;;;;:::o;19445:160::-;19585:12;19581:1;19573:6;19569:14;19562:36;19445:160;:::o;19611:366::-;19753:3;19774:67;19838:2;19833:3;19774:67;:::i;:::-;19767:74;;19850:93;19939:3;19850:93;:::i;:::-;19968:2;19963:3;19959:12;19952:19;;19611:366;;;:::o;19983:419::-;20149:4;20187:2;20176:9;20172:18;20164:26;;20236:9;20230:4;20226:20;20222:1;20211:9;20207:17;20200:47;20264:131;20390:4;20264:131;:::i;:::-;20256:139;;19983:419;;;:::o;20408:169::-;20548:21;20544:1;20536:6;20532:14;20525:45;20408:169;:::o;20583:366::-;20725:3;20746:67;20810:2;20805:3;20746:67;:::i;:::-;20739:74;;20822:93;20911:3;20822:93;:::i;:::-;20940:2;20935:3;20931:12;20924:19;;20583:366;;;:::o;20955:419::-;21121:4;21159:2;21148:9;21144:18;21136:26;;21208:9;21202:4;21198:20;21194:1;21183:9;21179:17;21172:47;21236:131;21362:4;21236:131;:::i;:::-;21228:139;;20955:419;;;:::o;21380:180::-;21428:77;21425:1;21418:88;21525:4;21522:1;21515:15;21549:4;21546:1;21539:15;21566:320;21610:6;21647:1;21641:4;21637:12;21627:22;;21694:1;21688:4;21684:12;21715:18;21705:81;;21771:4;21763:6;21759:17;21749:27;;21705:81;21833:2;21825:6;21822:14;21802:18;21799:38;21796:84;;21852:18;;:::i;:::-;21796:84;21617:269;21566:320;;;:::o;21892:225::-;22032:34;22028:1;22020:6;22016:14;22009:58;22101:8;22096:2;22088:6;22084:15;22077:33;21892:225;:::o;22123:366::-;22265:3;22286:67;22350:2;22345:3;22286:67;:::i;:::-;22279:74;;22362:93;22451:3;22362:93;:::i;:::-;22480:2;22475:3;22471:12;22464:19;;22123:366;;;:::o;22495:419::-;22661:4;22699:2;22688:9;22684:18;22676:26;;22748:9;22742:4;22738:20;22734:1;22723:9;22719:17;22712:47;22776:131;22902:4;22776:131;:::i;:::-;22768:139;;22495:419;;;:::o;22920:167::-;23060:19;23056:1;23048:6;23044:14;23037:43;22920:167;:::o;23093:366::-;23235:3;23256:67;23320:2;23315:3;23256:67;:::i;:::-;23249:74;;23332:93;23421:3;23332:93;:::i;:::-;23450:2;23445:3;23441:12;23434:19;;23093:366;;;:::o;23465:419::-;23631:4;23669:2;23658:9;23654:18;23646:26;;23718:9;23712:4;23708:20;23704:1;23693:9;23689:17;23682:47;23746:131;23872:4;23746:131;:::i;:::-;23738:139;;23465:419;;;:::o;23890:177::-;24030:29;24026:1;24018:6;24014:14;24007:53;23890:177;:::o;24073:366::-;24215:3;24236:67;24300:2;24295:3;24236:67;:::i;:::-;24229:74;;24312:93;24401:3;24312:93;:::i;:::-;24430:2;24425:3;24421:12;24414:19;;24073:366;;;:::o;24445:419::-;24611:4;24649:2;24638:9;24634:18;24626:26;;24698:9;24692:4;24688:20;24684:1;24673:9;24669:17;24662:47;24726:131;24852:4;24726:131;:::i;:::-;24718:139;;24445:419;;;:::o;24870:167::-;25010:19;25006:1;24998:6;24994:14;24987:43;24870:167;:::o;25043:366::-;25185:3;25206:67;25270:2;25265:3;25206:67;:::i;:::-;25199:74;;25282:93;25371:3;25282:93;:::i;:::-;25400:2;25395:3;25391:12;25384:19;;25043:366;;;:::o;25415:419::-;25581:4;25619:2;25608:9;25604:18;25596:26;;25668:9;25662:4;25658:20;25654:1;25643:9;25639:17;25632:47;25696:131;25822:4;25696:131;:::i;:::-;25688:139;;25415:419;;;:::o;25840:191::-;25880:4;25900:20;25918:1;25900:20;:::i;:::-;25895:25;;25934:20;25952:1;25934:20;:::i;:::-;25929:25;;25973:1;25970;25967:8;25964:34;;;25978:18;;:::i;:::-;25964:34;26023:1;26020;26016:9;26008:17;;25840:191;;;;:::o
Swarm Source
ipfs://b4bc1687ebefc7d8c88bebd4a4980b3459a851ec8f49d1c1f66992a80479177b
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.