Overview
ETH Balance
0.002896240933524905 ETH
Eth Value
$9.53 (@ $3,290.09/ETH)More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 231 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Transfer | 10987433 | 1580 days ago | IN | 0 ETH | 0.00207254 | ||||
Transfer | 10987428 | 1580 days ago | IN | 0.01 ETH | 0.00447358 | ||||
Transfer | 10983253 | 1581 days ago | IN | 0 ETH | 0.0057095 | ||||
Transfer | 10982637 | 1581 days ago | IN | 0 ETH | 0.0028262 | ||||
Transfer | 10969879 | 1583 days ago | IN | 0 ETH | 0.00339144 | ||||
Transfer | 10965910 | 1584 days ago | IN | 0 ETH | 0.00462469 | ||||
Transfer | 10965891 | 1584 days ago | IN | 0 ETH | 0.0045676 | ||||
Transfer | 10965887 | 1584 days ago | IN | 0 ETH | 0.00479598 | ||||
Transfer | 10963428 | 1584 days ago | IN | 0 ETH | 0.01227542 | ||||
Transfer | 10959939 | 1585 days ago | IN | 0 ETH | 0.00433351 | ||||
Transfer | 10954053 | 1586 days ago | IN | 0 ETH | 0.00816458 | ||||
Transfer | 10941525 | 1588 days ago | IN | 0 ETH | 0.00333243 | ||||
Transfer | 10934173 | 1589 days ago | IN | 0 ETH | 0.00339144 | ||||
Disqualify Addre... | 10933121 | 1589 days ago | IN | 0 ETH | 0.00209916 | ||||
Disqualify Addre... | 10933112 | 1589 days ago | IN | 0 ETH | 0.00209916 | ||||
Disqualify Addre... | 10933109 | 1589 days ago | IN | 0 ETH | 0.00209916 | ||||
Disqualify Addre... | 10933107 | 1589 days ago | IN | 0 ETH | 0.00328164 | ||||
Disqualify Addre... | 10933102 | 1589 days ago | IN | 0 ETH | 0.00209916 | ||||
Transfer | 10932305 | 1589 days ago | IN | 0.045111 ETH | 0.01506892 | ||||
Transfer | 10930864 | 1589 days ago | IN | 1 ETH | 0.00874054 | ||||
Transfer | 10930820 | 1589 days ago | IN | 0 ETH | 0.00576545 | ||||
Transfer | 10928017 | 1590 days ago | IN | 0 ETH | 0.0057095 | ||||
Transfer | 10923229 | 1590 days ago | IN | 0 ETH | 0.00439631 | ||||
Transfer | 10921371 | 1591 days ago | IN | 0.01 ETH | 0.01638648 | ||||
Transfer | 10919420 | 1591 days ago | IN | 1.00021 ETH | 0.0136554 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
10987433 | 1580 days ago | 0.18051728 ETH | ||||
10987428 | 1580 days ago | 0.00055 ETH | ||||
10987428 | 1580 days ago | 0.00095 ETH | ||||
10983253 | 1581 days ago | 0.0325 ETH | ||||
10982637 | 1581 days ago | 0.14905651 ETH | ||||
10969879 | 1583 days ago | 0.18606005 ETH | ||||
10965910 | 1584 days ago | 0.10975 ETH | ||||
10965891 | 1584 days ago | 0.23676041 ETH | ||||
10965887 | 1584 days ago | 0.380625 ETH | ||||
10963428 | 1584 days ago | 0.07733333 ETH | ||||
10959939 | 1585 days ago | 0.16941751 ETH | ||||
10954053 | 1586 days ago | 0.1469718 ETH | ||||
10941525 | 1588 days ago | 0.37576834 ETH | ||||
10934173 | 1589 days ago | 0.07068799 ETH | ||||
10932305 | 1589 days ago | 0.0024811 ETH | ||||
10932305 | 1589 days ago | 0.00428554 ETH | ||||
10930864 | 1589 days ago | 0.055 ETH | ||||
10930864 | 1589 days ago | 0.095 ETH | ||||
10930820 | 1589 days ago | 0.20784327 ETH | ||||
10928017 | 1590 days ago | 0.16233445 ETH | ||||
10923229 | 1590 days ago | 0.22345586 ETH | ||||
10921371 | 1591 days ago | 0.00055 ETH | ||||
10921371 | 1591 days ago | 0.00095 ETH | ||||
10919420 | 1591 days ago | 0.05501155 ETH | ||||
10919420 | 1591 days ago | 0.09501995 ETH |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
DeFiEtherFund
Compiler Version
v0.4.25+commit.59dbf8f1
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-07-27 */ pragma solidity 0.4.25; /** * * The DEFI-ETHERFUND is a hedge fund based on the cryptocurrencies that helps to all investors in our fund * to Minimize the risks of investing in cryptocurrencies and * Maximize your ETH profits from 15% per day, 450% per month, 5400% per year. * Join Us www.DefiEtherFund.com * */ library Math { function min(uint a, uint b) internal pure returns(uint) { if (a > b) { return b; } return a; } } library Zero { function requireNotZero(address addr) internal pure { require(addr != address(0), "require not zero address"); } function requireNotZero(uint val) internal pure { require(val != 0, "require not zero value"); } function notZero(address addr) internal pure returns(bool) { return !(addr == address(0)); } function isZero(address addr) internal pure returns(bool) { return addr == address(0); } function isZero(uint a) internal pure returns(bool) { return a == 0; } function notZero(uint a) internal pure returns(bool) { return a != 0; } } library Percent { struct percent { uint num; uint den; } function mul(percent storage p, uint a) internal view returns (uint) { if (a == 0) { return 0; } return a*p.num/p.den; } function div(percent storage p, uint a) internal view returns (uint) { return a/p.num*p.den; } function sub(percent storage p, uint a) internal view returns (uint) { uint b = mul(p, a); if (b >= a) { return 0; } return a - b; } function add(percent storage p, uint a) internal view returns (uint) { return a + mul(p, a); } function toMemory(percent storage p) internal view returns (Percent.percent memory) { return Percent.percent(p.num, p.den); } function mmul(percent memory p, uint a) internal pure returns (uint) { if (a == 0) { return 0; } return a*p.num/p.den; } function mdiv(percent memory p, uint a) internal pure returns (uint) { return a/p.num*p.den; } function msub(percent memory p, uint a) internal pure returns (uint) { uint b = mmul(p, a); if (b >= a) { return 0; } return a - b; } function madd(percent memory p, uint a) internal pure returns (uint) { return a + mmul(p, a); } } library Address { function toAddress(bytes source) internal pure returns(address addr) { assembly { addr := mload(add(source,0x14)) } return addr; } function isNotContract(address addr) internal view returns(bool) { uint length; assembly { length := extcodesize(addr) } return length == 0; } } /** * @title SafeMath * @dev Math operations with safety checks that revert on error */ library SafeMath { /** * @dev Multiplies two numbers, reverts on overflow. */ function mul(uint256 _a, uint256 _b) internal pure returns (uint256) { if (_a == 0) { return 0; } uint256 c = _a * _b; require(c / _a == _b); return c; } /** * @dev Integer division of two numbers truncating the quotient, reverts on division by zero. */ function div(uint256 _a, uint256 _b) internal pure returns (uint256) { require(_b > 0); // Solidity only automatically asserts when dividing by 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 numbers, reverts on overflow (i.e. if subtrahend is greater than minuend). */ function sub(uint256 _a, uint256 _b) internal pure returns (uint256) { require(_b <= _a); uint256 c = _a - _b; return c; } /** * @dev Adds two numbers, reverts on overflow. */ function add(uint256 _a, uint256 _b) internal pure returns (uint256) { uint256 c = _a + _b; require(c >= _a); return c; } /** * @dev Divides two numbers 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; } } contract Accessibility { address private owner; modifier onlyOwner() { require(msg.sender == owner, "access denied"); _; } constructor() public { owner = msg.sender; } function disown() internal { delete owner; } } contract Rev1Storage { function investorShortInfo(address addr) public view returns(uint value, uint refBonus); } contract Rev2Storage { function investorInfo(address addr) public view returns(uint investment, uint paymentTime); } library PrivateEntrance { using PrivateEntrance for privateEntrance; using Math for uint; struct privateEntrance { Rev1Storage rev1Storage; Rev2Storage rev2Storage; uint investorMaxInvestment; uint endTimestamp; mapping(address=>bool) hasAccess; } function isActive(privateEntrance storage pe) internal view returns(bool) { return pe.endTimestamp > now; } function maxInvestmentFor(privateEntrance storage pe, address investorAddr) internal view returns(uint) { if (!pe.hasAccess[investorAddr]) { return 0; } (uint maxInvestment, ) = pe.rev1Storage.investorShortInfo(investorAddr); if (maxInvestment == 0) { return 0; } maxInvestment = Math.min(maxInvestment, pe.investorMaxInvestment); (uint currInvestment, ) = pe.rev2Storage.investorInfo(investorAddr); if (currInvestment >= maxInvestment) { return 0; } return maxInvestment-currInvestment; } function provideAccessFor(privateEntrance storage pe, address[] addrs) internal { for (uint16 i; i < addrs.length; i++) { pe.hasAccess[addrs[i]] = true; } } } contract InvestorsStorage is Accessibility { struct Investor { uint investment; uint paymentTime; } uint public size; mapping (address => Investor) private investors; function isInvestor(address addr) public view returns (bool) { return investors[addr].investment > 0; } function investorInfo(address addr) public view returns(uint investment, uint paymentTime) { investment = investors[addr].investment; paymentTime = investors[addr].paymentTime; } function newInvestor(address addr, uint investment, uint paymentTime) public onlyOwner returns (bool) { Investor storage inv = investors[addr]; if (inv.investment != 0 || investment == 0) { return false; } inv.investment = investment; inv.paymentTime = paymentTime; size++; return true; } function addInvestment(address addr, uint investment) public onlyOwner returns (bool) { if (investors[addr].investment == 0) { return false; } investors[addr].investment += investment; return true; } function setPaymentTime(address addr, uint paymentTime) public onlyOwner returns (bool) { if (investors[addr].investment == 0) { return false; } investors[addr].paymentTime = paymentTime; return true; } function disqalify(address addr) public onlyOwner returns (bool) { if (isInvestor(addr)) { investors[addr].investment = 0; } } } library RapidGrowthProtection { using RapidGrowthProtection for rapidGrowthProtection; struct rapidGrowthProtection { uint startTimestamp; uint maxDailyTotalInvestment; uint8 activityDays; mapping(uint8 => uint) dailyTotalInvestment; } function maxInvestmentAtNow(rapidGrowthProtection storage rgp) internal view returns(uint) { uint day = rgp.currDay(); if (day == 0 || day > rgp.activityDays) { return 0; } if (rgp.dailyTotalInvestment[uint8(day)] >= rgp.maxDailyTotalInvestment) { return 0; } return rgp.maxDailyTotalInvestment - rgp.dailyTotalInvestment[uint8(day)]; } function isActive(rapidGrowthProtection storage rgp) internal view returns(bool) { uint day = rgp.currDay(); return day != 0 && day <= rgp.activityDays; } function saveInvestment(rapidGrowthProtection storage rgp, uint investment) internal returns(bool) { uint day = rgp.currDay(); if (day == 0 || day > rgp.activityDays) { return false; } if (rgp.dailyTotalInvestment[uint8(day)] + investment > rgp.maxDailyTotalInvestment) { return false; } rgp.dailyTotalInvestment[uint8(day)] += investment; return true; } function startAt(rapidGrowthProtection storage rgp, uint timestamp) internal { rgp.startTimestamp = timestamp; // restart for (uint8 i = 1; i <= rgp.activityDays; i++) { if (rgp.dailyTotalInvestment[i] != 0) { delete rgp.dailyTotalInvestment[i]; } } } function currDay(rapidGrowthProtection storage rgp) internal view returns(uint day) { if (rgp.startTimestamp > now) { return 0; } day = (now - rgp.startTimestamp) / 24 hours + 1; } } contract DeFiEtherFund is Accessibility { using RapidGrowthProtection for RapidGrowthProtection.rapidGrowthProtection; using PrivateEntrance for PrivateEntrance.privateEntrance; using Percent for Percent.percent; using SafeMath for uint; using Math for uint; // easy read for investors using Address for *; using Zero for *; RapidGrowthProtection.rapidGrowthProtection private m_rgp; PrivateEntrance.privateEntrance private m_privEnter; mapping(address => bool) private m_referrals; InvestorsStorage private m_investors; // automatically generates getters uint public constant minInvesment = 10 finney; uint public constant maxBalance = 333e5 ether; address public advertisingAddress; address public adminsAddress; uint public investmentsNumber; uint public waveStartup; // percents Percent.percent private m_5_percent = Percent.percent(15,100); // 15/100 *100% = 10% Percent.percent private m_6_percent = Percent.percent(16,100); // 16/100 *100% = 15% Percent.percent private m_7_percent = Percent.percent(19,100); // 19/100 *100% = 19% Percent.percent private m_8_percent = Percent.percent(18,100); // 18/100 *100% = 12% Percent.percent private m_9_percent = Percent.percent(13,100); // 13/100 *100% = 13% Percent.percent private m_10_percent = Percent.percent(14,100); // 14/100 *100% = 14% Percent.percent private m_11_percent = Percent.percent(15,100); // 15/100 *100% = 15% Percent.percent private m_12_percent = Percent.percent(16,100); // 16/100 *100% = 16% Percent.percent private m_referal_percent = Percent.percent(10,100); // 10/100 *100% = 10% Percent.percent private m_referrer_percent = Percent.percent(10,100); // 10/100 *100% = 10% Percent.percent private m_referrer_percentMax = Percent.percent(15,100); // 15/100 *100% = 15% Percent.percent private m_adminsPercent = Percent.percent(55, 1000); // 55/100 *100% = 5.5% Percent.percent private m_advertisingPercent = Percent.percent(95, 1000);// 95/1000 *100% = 9.5% // more events for easy read from blockchain event LogPEInit(uint when, address rev1Storage, address rev2Storage, uint investorMaxInvestment, uint endTimestamp); event LogSendExcessOfEther(address indexed addr, uint when, uint value, uint investment, uint excess); event LogNewReferral(address indexed addr, address indexed referrerAddr, uint when, uint refBonus); event LogRGPInit(uint when, uint startTimestamp, uint maxDailyTotalInvestment, uint activityDays); event LogRGPInvestment(address indexed addr, uint when, uint investment, uint indexed day); event LogNewInvesment(address indexed addr, uint when, uint investment, uint value); event LogAutomaticReinvest(address indexed addr, uint when, uint investment); event LogPayDividends(address indexed addr, uint when, uint dividends); event LogNewInvestor(address indexed addr, uint when); event LogBalanceChanged(uint when, uint balance); event LogNextWave(uint when); event LogDisown(uint when); modifier balanceChanged { _; emit LogBalanceChanged(now, address(this).balance); } modifier notFromContract() { require(msg.sender.isNotContract(), "only externally accounts"); _; } constructor() public { adminsAddress = msg.sender; advertisingAddress = msg.sender; nextWave(); } function() public payable { // investor get him dividends if (msg.value.isZero()) { getMyDividends(); return; } // sender do invest doInvest(msg.data.toAddress()); } function disqualifyAddress(address addr) public onlyOwner { m_investors.disqalify(addr); } function doDisown() public onlyOwner { disown(); emit LogDisown(now); } function init(address rev1StorageAddr, uint timestamp) public onlyOwner { // init Rapid Growth Protection m_rgp.startTimestamp = timestamp + 1; m_rgp.maxDailyTotalInvestment = 500 ether; m_rgp.activityDays = 21; emit LogRGPInit( now, m_rgp.startTimestamp, m_rgp.maxDailyTotalInvestment, m_rgp.activityDays ); // init Private Entrance m_privEnter.rev1Storage = Rev1Storage(rev1StorageAddr); m_privEnter.rev2Storage = Rev2Storage(address(m_investors)); m_privEnter.investorMaxInvestment = 50 ether; m_privEnter.endTimestamp = timestamp; emit LogPEInit( now, address(m_privEnter.rev1Storage), address(m_privEnter.rev2Storage), m_privEnter.investorMaxInvestment, m_privEnter.endTimestamp ); } function setAdvertisingAddress(address addr) public onlyOwner { addr.requireNotZero(); advertisingAddress = addr; } function setAdminsAddress(address addr) public onlyOwner { addr.requireNotZero(); adminsAddress = addr; } function privateEntranceProvideAccessFor(address[] addrs) public onlyOwner { m_privEnter.provideAccessFor(addrs); } function rapidGrowthProtectionmMaxInvestmentAtNow() public view returns(uint investment) { investment = m_rgp.maxInvestmentAtNow(); } function investorsNumber() public view returns(uint) { return m_investors.size(); } function balanceETH() public view returns(uint) { return address(this).balance; } function advertisingPercent() public view returns(uint numerator, uint denominator) { (numerator, denominator) = (m_advertisingPercent.num, m_advertisingPercent.den); } function adminsPercent() public view returns(uint numerator, uint denominator) { (numerator, denominator) = (m_adminsPercent.num, m_adminsPercent.den); } function investorInfo(address investorAddr) public view returns(uint investment, uint paymentTime, bool isReferral) { (investment, paymentTime) = m_investors.investorInfo(investorAddr); isReferral = m_referrals[investorAddr]; } function investorDividendsAtNow(address investorAddr) public view returns(uint dividends) { dividends = calcDividends(investorAddr); } function dailyPercentAtNow() public view returns(uint numerator, uint denominator) { Percent.percent memory p = dailyPercent(); (numerator, denominator) = (p.num, p.den); } function getMyDividends() public notFromContract balanceChanged { // calculate dividends //check if 1 day passed after last payment require(now.sub(getMemInvestor(msg.sender).paymentTime) > 24 hours); uint dividends = calcDividends(msg.sender); require (dividends.notZero(), "cannot to pay zero dividends"); // update investor payment timestamp assert(m_investors.setPaymentTime(msg.sender, now)); // check enough eth - goto next wave if needed if (address(this).balance <= dividends) { nextWave(); dividends = address(this).balance; } // transfer dividends to investor msg.sender.transfer(dividends); emit LogPayDividends(msg.sender, now, dividends); } function doInvest(address referrerAddr) public payable notFromContract balanceChanged { uint investment = msg.value; uint receivedEther = msg.value; require(investment >= minInvesment, "investment must be >= minInvesment"); require(address(this).balance <= maxBalance, "the contract eth balance limit"); if (m_rgp.isActive()) { // use Rapid Growth Protection if needed uint rpgMaxInvest = m_rgp.maxInvestmentAtNow(); rpgMaxInvest.requireNotZero(); investment = Math.min(investment, rpgMaxInvest); assert(m_rgp.saveInvestment(investment)); emit LogRGPInvestment(msg.sender, now, investment, m_rgp.currDay()); } else if (m_privEnter.isActive()) { // use Private Entrance if needed uint peMaxInvest = m_privEnter.maxInvestmentFor(msg.sender); peMaxInvest.requireNotZero(); investment = Math.min(investment, peMaxInvest); } // send excess of ether if needed if (receivedEther > investment) { uint excess = receivedEther - investment; msg.sender.transfer(excess); receivedEther = investment; emit LogSendExcessOfEther(msg.sender, now, msg.value, investment, excess); } // commission advertisingAddress.send(m_advertisingPercent.mul(receivedEther)); adminsAddress.send(m_adminsPercent.mul(receivedEther)); bool senderIsInvestor = m_investors.isInvestor(msg.sender); // ref system works only once and only on first invest if (referrerAddr.notZero() && !senderIsInvestor && !m_referrals[msg.sender] && referrerAddr != msg.sender && m_investors.isInvestor(referrerAddr)) { m_referrals[msg.sender] = true; // add referral bonus to investor`s and referral`s investments uint referrerBonus = m_referrer_percent.mmul(investment); if (investment > 10 ether) { referrerBonus = m_referrer_percentMax.mmul(investment); } uint referalBonus = m_referal_percent.mmul(investment); assert(m_investors.addInvestment(referrerAddr, referrerBonus)); // add referrer bonus investment += referalBonus; // add referral bonus emit LogNewReferral(msg.sender, referrerAddr, now, referalBonus); } // automatic reinvest - prevent burning dividends uint dividends = calcDividends(msg.sender); if (senderIsInvestor && dividends.notZero()) { investment += dividends; emit LogAutomaticReinvest(msg.sender, now, dividends); } if (senderIsInvestor) { // update existing investor assert(m_investors.addInvestment(msg.sender, investment)); assert(m_investors.setPaymentTime(msg.sender, now)); } else { // create new investor assert(m_investors.newInvestor(msg.sender, investment, now)); emit LogNewInvestor(msg.sender, now); } investmentsNumber++; emit LogNewInvesment(msg.sender, now, investment, receivedEther); } function getMemInvestor(address investorAddr) internal view returns(InvestorsStorage.Investor memory) { (uint investment, uint paymentTime) = m_investors.investorInfo(investorAddr); return InvestorsStorage.Investor(investment, paymentTime); } function calcDividends(address investorAddr) internal view returns(uint dividends) { InvestorsStorage.Investor memory investor = getMemInvestor(investorAddr); // safe gas if dividends will be 0 if (investor.investment.isZero() || now.sub(investor.paymentTime) < 10 minutes) { return 0; } // for prevent burning daily dividends if 24h did not pass - calculate it per 10 min interval Percent.percent memory p = dailyPercent(); dividends = (now.sub(investor.paymentTime) / 10 minutes) * p.mmul(investor.investment) / 144; } function dailyPercent() internal view returns(Percent.percent memory p) { uint balance = address(this).balance; if (balance < 500 ether) { p = m_5_percent.toMemory(); } else if ( 500 ether <= balance && balance <= 1000 ether) { p = m_6_percent.toMemory(); } else if ( 1000 ether <= balance && balance <= 2500 ether) { p = m_7_percent.toMemory(); } else if ( 2500 ether <= balance && balance <= 10000 ether) { p = m_8_percent.toMemory(); } else if ( 10000 ether <= balance && balance <= 20000 ether) { p = m_9_percent.toMemory(); } else if ( 20000 ether <= balance && balance <= 30000 ether) { p = m_10_percent.toMemory(); } else if ( 30000 ether <= balance && balance <= 50000 ether) { p = m_11_percent.toMemory(); } else { p = m_12_percent.toMemory(); } } function nextWave() private { m_investors = new InvestorsStorage(); investmentsNumber = 0; waveStartup = now; m_rgp.startAt(now); emit LogRGPInit(now , m_rgp.startTimestamp, m_rgp.maxDailyTotalInvestment, m_rgp.activityDays); emit LogNextWave(now); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":false,"inputs":[{"name":"addrs","type":"address[]"}],"name":"privateEntranceProvideAccessFor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"disqualifyAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"advertisingAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"rev1StorageAddr","type":"address"},{"name":"timestamp","type":"uint256"}],"name":"init","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"minInvesment","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"adminsAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"investorsNumber","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"maxBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"investorAddr","type":"address"}],"name":"investorDividendsAtNow","outputs":[{"name":"dividends","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"rapidGrowthProtectionmMaxInvestmentAtNow","outputs":[{"name":"investment","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"advertisingPercent","outputs":[{"name":"numerator","type":"uint256"},{"name":"denominator","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"adminsPercent","outputs":[{"name":"numerator","type":"uint256"},{"name":"denominator","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"setAdminsAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"investmentsNumber","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"dailyPercentAtNow","outputs":[{"name":"numerator","type":"uint256"},{"name":"denominator","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"setAdvertisingAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"getMyDividends","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"referrerAddr","type":"address"}],"name":"doInvest","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"investorAddr","type":"address"}],"name":"investorInfo","outputs":[{"name":"investment","type":"uint256"},{"name":"paymentTime","type":"uint256"},{"name":"isReferral","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"waveStartup","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"balanceETH","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"doDisown","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"when","type":"uint256"},{"indexed":false,"name":"rev1Storage","type":"address"},{"indexed":false,"name":"rev2Storage","type":"address"},{"indexed":false,"name":"investorMaxInvestment","type":"uint256"},{"indexed":false,"name":"endTimestamp","type":"uint256"}],"name":"LogPEInit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"addr","type":"address"},{"indexed":false,"name":"when","type":"uint256"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"investment","type":"uint256"},{"indexed":false,"name":"excess","type":"uint256"}],"name":"LogSendExcessOfEther","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"addr","type":"address"},{"indexed":true,"name":"referrerAddr","type":"address"},{"indexed":false,"name":"when","type":"uint256"},{"indexed":false,"name":"refBonus","type":"uint256"}],"name":"LogNewReferral","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"when","type":"uint256"},{"indexed":false,"name":"startTimestamp","type":"uint256"},{"indexed":false,"name":"maxDailyTotalInvestment","type":"uint256"},{"indexed":false,"name":"activityDays","type":"uint256"}],"name":"LogRGPInit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"addr","type":"address"},{"indexed":false,"name":"when","type":"uint256"},{"indexed":false,"name":"investment","type":"uint256"},{"indexed":true,"name":"day","type":"uint256"}],"name":"LogRGPInvestment","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"addr","type":"address"},{"indexed":false,"name":"when","type":"uint256"},{"indexed":false,"name":"investment","type":"uint256"},{"indexed":false,"name":"value","type":"uint256"}],"name":"LogNewInvesment","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"addr","type":"address"},{"indexed":false,"name":"when","type":"uint256"},{"indexed":false,"name":"investment","type":"uint256"}],"name":"LogAutomaticReinvest","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"addr","type":"address"},{"indexed":false,"name":"when","type":"uint256"},{"indexed":false,"name":"dividends","type":"uint256"}],"name":"LogPayDividends","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"addr","type":"address"},{"indexed":false,"name":"when","type":"uint256"}],"name":"LogNewInvestor","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"when","type":"uint256"},{"indexed":false,"name":"balance","type":"uint256"}],"name":"LogBalanceChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"when","type":"uint256"}],"name":"LogNextWave","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"when","type":"uint256"}],"name":"LogDisown","type":"event"}]
Contract Creation Code
600f6080819052606460a08190526010828155601182905560c081905260e08290526012818155601383815561010081905261012084905260145560158390556101408190526101608390526016556017829055600d6101808190526101a08390526018556019829055600e6101c08190526101e0839052601a55601b829055610200839052610220829052601c839055601d829055610240819052610260829052601e55601f819055600a6102808190526102a0829052602081905560218290556102c08190526102e0829052602255602381905561030082905261032081905260249190915560255560376103408190526103e861036081905260269190915560278190556103c0604052605f6103808190526103a08290526028556029553480156200012d57600080fd5b506000805433600160a060020a03199182168117909255600d8054821683179055600c805490911690911790556200016d64010000000062000173810204565b620002d2565b6200017d620002c1565b604051809103906000f0801580156200019a573d6000803e3d6000fd5b50600b8054600160a060020a031916600160a060020a03929092169190911790556000600e5542600f819055620001e29060019064010000000062000269810262001ee31704565b6001546002546003546040805142815260208101949094528381019290925260ff166060830152517f16171a4e996b33ebb6320397242a4168f60c16e87fbd8b58f1744d68c4179caf9181900360800190a16040805142815290517fc66870ef5f6257a76295d443e9221488043ec691f830f6c6128755c3518e3c759181900360200190a1565b80825560015b600283015460ff90811690821611620002bc5760ff8116600090815260038401602052604090205415620002b35760ff811660009081526003840160205260408120555b6001016200026f565b505050565b6040516104c6806200277383390190565b61249180620002e26000396000f3006080604052600436106101275763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306127a11811461018657806315aa6833146101db5780631686531a146101fc578063399ae7241461022d5780633d7ac9f81461025157806362d2c55514610278578063653c31741461028d57806373ad468a146102a2578063900334b1146102b757806390b0636f146102d85780639396df32146102ed57806395a23c3a1461031b578063984d4a93146103305780639ec6e05414610351578063b8fde2a414610366578063cb192f2c1461037b578063d50030ad1461039c578063d82fa3f1146103b1578063dbcbaca4146103c5578063eafecc7a14610406578063ecbdbb321461041b578063fc7c41af14610430575b61013034610445565b156101425761013d61044d565b610184565b61018461017f6000368080601f0160208091040260200160405190810160405280939291908181526020018383808284375061069d945050505050565b6106a4565b005b34801561019257600080fd5b506040805160206004803580820135838102808601850190965280855261018495369593946024949385019291829185019084908082843750949750610ff39650505050505050565b3480156101e757600080fd5b50610184600160a060020a0360043516611057565b34801561020857600080fd5b5061021161113e565b60408051600160a060020a039092168252519081900360200190f35b34801561023957600080fd5b50610184600160a060020a036004351660243561114d565b34801561025d57600080fd5b506102666112b2565b60408051918252519081900360200190f35b34801561028457600080fd5b506102116112bd565b34801561029957600080fd5b506102666112cc565b3480156102ae57600080fd5b5061026661135c565b3480156102c357600080fd5b50610266600160a060020a036004351661136b565b3480156102e457600080fd5b5061026661137c565b3480156102f957600080fd5b5061030261138d565b6040805192835260208301919091528051918290030190f35b34801561032757600080fd5b50610302611397565b34801561033c57600080fd5b50610184600160a060020a03600435166113a1565b34801561035d57600080fd5b50610266611432565b34801561037257600080fd5b50610302611438565b34801561038757600080fd5b50610184600160a060020a036004351661145d565b3480156103a857600080fd5b5061018461044d565b610184600160a060020a03600435166106a4565b3480156103d157600080fd5b506103e6600160a060020a03600435166114ee565b604080519384526020840192909252151582820152519081900360600190f35b34801561041257600080fd5b506102666115b4565b34801561042757600080fd5b506102666115ba565b34801561043c57600080fd5b506101846115bf565b80155b919050565b60006104583361164c565b15156104ae576040805160e560020a62461bcd02815260206004820152601860248201527f6f6e6c792065787465726e616c6c79206163636f756e74730000000000000000604482015290519081900360640190fd5b620151806104cf6104be33611658565b60200151429063ffffffff61171c16565b116104d957600080fd5b6104e23361173a565b90506104ed816117ec565b1515610543576040805160e560020a62461bcd02815260206004820152601c60248201527f63616e6e6f7420746f20706179207a65726f206469766964656e647300000000604482015290519081900360640190fd5b600b54604080517f440135850000000000000000000000000000000000000000000000000000000081523360048201524260248201529051600160a060020a03909216916344013585916044808201926020929091908290030181600087803b1580156105af57600080fd5b505af11580156105c3573d6000803e3d6000fd5b505050506040513d60208110156105d957600080fd5b505115156105e357fe5b303181106105f7576105f36117f1565b5030315b604051339082156108fc029083906000818181858888f19350505050158015610624573d6000803e3d6000fd5b506040805142815260208101839052815133927f6710e0cad56444677ac916513b384a4acc6501cfb5219f59657ad4ddffef9d60928290030190a2604080514281523031602082015281517f32367fddaa1baa1c6a0fc5c3e8284df724bacc7b50e847c32c9f9765f9f96137929181900390910190a150565b6014015190565b600080808080808080806106b73361164c565b151561070d576040805160e560020a62461bcd02815260206004820152601860248201527f6f6e6c792065787465726e616c6c79206163636f756e74730000000000000000604482015290519081900360640190fd5b349850889750662386f26fc10000881015610798576040805160e560020a62461bcd02815260206004820152602260248201527f696e766573746d656e74206d757374206265203e3d206d696e496e7665736d6560448201527f6e74000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6a1b8b8c9e000e82a4800000303111156107fc576040805160e560020a62461bcd02815260206004820152601e60248201527f74686520636f6e7472616374206574682062616c616e6365206c696d69740000604482015290519081900360640190fd5b61080660016118e1565b1561088e57610815600161190c565b965061082087611986565b61082a89886119dd565b985061083d60018a63ffffffff6119f516565b151561084557fe5b61084f6001611a72565b60408051428152602081018c9052815133927f21cd51cc98547f9914bc0b314a40e645408acad21d1289eecb4dfb534fda7cfc928290030190a36108c6565b6108986005611a9c565b156108c6576108ae60053363ffffffff611aa516565b95506108b986611986565b6108c389876119dd565b98505b8888111561094e576040518989039550339086156108fc029087906000818181858888f19350505050158015610900573d6000803e3d6000fd5b50604080514281523460208201528082018b90526060810187905290518a995033917faac472d912a7451062b64c942775db41d65cce271603099e1c4760e072050951919081900360800190a25b600c54600160a060020a03166108fc61096e60288b63ffffffff611c3a16565b6040518115909202916000818181858888f15050600d54600160a060020a031692506108fc91506109a8905060268b63ffffffff611c3a16565b6040518115909202916000818181858888f15050600b54604080517fcee2a9cf0000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a03909216945063cee2a9cf935060248082019350602092918290030181600087803b158015610a2357600080fd5b505af1158015610a37573d6000803e3d6000fd5b505050506040513d6020811015610a4d57600080fd5b50519350610a63600160a060020a038b16611c65565b8015610a6d575083155b8015610a895750336000908152600a602052604090205460ff16155b8015610a9e5750600160a060020a038a163314155b8015610b3a5750600b54604080517fcee2a9cf000000000000000000000000000000000000000000000000000000008152600160a060020a038d811660048301529151919092169163cee2a9cf9160248083019260209291908290030181600087803b158015610b0d57600080fd5b505af1158015610b21573d6000803e3d6000fd5b505050506040513d6020811015610b3757600080fd5b50515b15610cd657336000908152600a6020908152604091829020805460ff191660011790558151808301909252602254825260235490820152610b81908a63ffffffff611c7316565b9250678ac7230489e80000891115610bbd576040805180820190915260245481526025546020820152610bba908a63ffffffff611c7316565b92505b6040805180820190915260208054825260215490820152610be4908a63ffffffff611c7316565b600b54604080517f20987e64000000000000000000000000000000000000000000000000000000008152600160a060020a038e811660048301526024820188905291519395509116916320987e64916044808201926020929091908290030181600087803b158015610c5557600080fd5b505af1158015610c69573d6000803e3d6000fd5b505050506040513d6020811015610c7f57600080fd5b50511515610c8957fe5b604080514281526020810184905281519a84019a600160a060020a038d169233927fc04fb14bddd876003a335c37b1fe6524ac1dbf74eb64dd08cd085fba4b97d592929081900390910190a35b610cdf3361173a565b9050838015610cf25750610cf2816117ec565b15610d3657604080514281526020810183905281519a83019a33927f149822e3a65d38c9b6f40e835864c61ef5ca0866219afc2db638e3f85ae78866928290030190a25b8315610e8257600b54604080517f20987e64000000000000000000000000000000000000000000000000000000008152336004820152602481018c90529051600160a060020a03909216916320987e64916044808201926020929091908290030181600087803b158015610da957600080fd5b505af1158015610dbd573d6000803e3d6000fd5b505050506040513d6020811015610dd357600080fd5b50511515610ddd57fe5b600b54604080517f440135850000000000000000000000000000000000000000000000000000000081523360048201524260248201529051600160a060020a03909216916344013585916044808201926020929091908290030181600087803b158015610e4957600080fd5b505af1158015610e5d573d6000803e3d6000fd5b505050506040513d6020811015610e7357600080fd5b50511515610e7d57fe5b610f60565b600b54604080517f41b2121c000000000000000000000000000000000000000000000000000000008152336004820152602481018c90524260448201529051600160a060020a03909216916341b2121c916064808201926020929091908290030181600087803b158015610ef557600080fd5b505af1158015610f09573d6000803e3d6000fd5b505050506040513d6020811015610f1f57600080fd5b50511515610f2957fe5b60408051428152905133917fc8616cf56c542aa2540734215ee474180fc3b9cc7c2fad288000504632cacf18919081900360200190a25b600e8054600101905560408051428152602081018b90528082018a9052905133917fd5a986028ae9e04f72859f7d3c1d8ae8b649c26be5b99d4c2d98ca4a19a0502e919081900360600190a2604080514281523031602082015281517f32367fddaa1baa1c6a0fc5c3e8284df724bacc7b50e847c32c9f9765f9f96137929181900390910190a150505050505050505050565b600054600160a060020a03163314611043576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020612446833981519152604482015290519081900360640190fd5b61105460058263ffffffff611c9616565b50565b600054600160a060020a031633146110a7576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020612446833981519152604482015290519081900360640190fd5b600b54604080517fd597d06f000000000000000000000000000000000000000000000000000000008152600160a060020a0384811660048301529151919092169163d597d06f9160248083019260209291908290030181600087803b15801561110f57600080fd5b505af1158015611123573d6000803e3d6000fd5b505050506040513d602081101561113957600080fd5b505050565b600c54600160a060020a031681565b600054600160a060020a0316331461119d576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020612446833981519152604482015290519081900360640190fd5b600180820190819055681b1ae4d6e2ef50000060028190556003805460ff1916601517908190556040805142815260208101949094528381019290925260ff166060830152517f16171a4e996b33ebb6320397242a4168f60c16e87fbd8b58f1744d68c4179caf9181900360800190a160058054600160a060020a0380851673ffffffffffffffffffffffffffffffffffffffff199283161792839055600b546006805490931690821617918290556802b5e3af16b1880000600781905560088590556040805142815294831660208601529290911683830152606083015260808201839052517f7e13d111fea1199cb6fb21cb38766240cfad970317820e8e5713da7a708285309181900360a00190a15050565b662386f26fc1000081565b600d54600160a060020a031681565b600b54604080517f949d225d0000000000000000000000000000000000000000000000000000000081529051600092600160a060020a03169163949d225d91600480830192602092919082900301818787803b15801561132b57600080fd5b505af115801561133f573d6000803e3d6000fd5b505050506040513d602081101561135557600080fd5b5051905090565b6a1b8b8c9e000e82a480000081565b60006113768261173a565b92915050565b6000611388600161190c565b905090565b6028546029549091565b6026546027549091565b600054600160a060020a031633146113f1576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020612446833981519152604482015290519081900360640190fd5b61140381600160a060020a0316611cfa565b600d805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600e5481565b600080611443611f58565b61144b611d5a565b80516020909101519094909350915050565b600054600160a060020a031633146114ad576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020612446833981519152604482015290519081900360640190fd5b6114bf81600160a060020a0316611cfa565b600c805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600b54604080517fdbcbaca4000000000000000000000000000000000000000000000000000000008152600160a060020a038481166004830152825160009485948594939091169263dbcbaca4926024808301939282900301818787803b15801561155857600080fd5b505af115801561156c573d6000803e3d6000fd5b505050506040513d604081101561158257600080fd5b508051602091820151600160a060020a039096166000908152600a909252604090912054909560ff9091169350915050565b600f5481565b303190565b600054600160a060020a0316331461160f576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020612446833981519152604482015290519081900360640190fd5b611617611ec4565b6040805142815290517f5189687a7ec9d4aebe2f548f952ffbbad19e4cd545c4a05b5e2369cd272dd5519181900360200190a1565b803b8015905b50919050565b611660611f58565b600b54604080517fdbcbaca4000000000000000000000000000000000000000000000000000000008152600160a060020a0385811660048301528251600094859492169263dbcbaca492602480830193919282900301818787803b1580156116c757600080fd5b505af11580156116db573d6000803e3d6000fd5b505050506040513d60408110156116f157600080fd5b50805160209182015160408051808201909152828152928301819052919450925090505b5050919050565b6000808383111561172c57600080fd5b5050808203805b5092915050565b6000611744611f58565b61174c611f58565b61175584611658565b91506117648260000151610445565b80611786575061025861178483602001514261171c90919063ffffffff16565b105b156117945760009250611715565b61179c611d5a565b82519091506090906117b590839063ffffffff611c7316565b6102586117cf85602001514261171c90919063ffffffff16565b8115156117d857fe5b04028115156117e357fe5b04949350505050565b151590565b6117f9611f6f565b604051809103906000f080158015611815573d6000803e3d6000fd5b50600b805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790556000600e5542600f81905561185a90600190611ee3565b6001546002546003546040805142815260208101949094528381019290925260ff166060830152517f16171a4e996b33ebb6320397242a4168f60c16e87fbd8b58f1744d68c4179caf9181900360800190a16040805142815290517fc66870ef5f6257a76295d443e9221488043ec691f830f6c6128755c3518e3c759181900360200190a1565b6000806118ed83611a72565b905080158015906119055750600283015460ff168111155b9392505050565b60008061191883611a72565b905080158061192d5750600283015460ff1681115b1561193b5760009150611652565b600183015460ff82166000908152600385016020526040902054106119635760009150611652565b60ff81166000908152600384016020526040902054600184015403915050919050565b801515611054576040805160e560020a62461bcd02815260206004820152601660248201527f72657175697265206e6f74207a65726f2076616c756500000000000000000000604482015290519081900360640190fd5b6000818311156119ee575080611376565b5090919050565b600080611a0184611a72565b9050801580611a165750600284015460ff1681115b15611a245760009150611733565b600184015460ff8216600090815260038601602052604090205484011115611a4f5760009150611733565b60ff16600090815260039390930160205250604090912080549091019055600190565b60004282600001541115611a8857506000610448565b815462015180904203046001019050919050565b60030154421090565b600160a060020a03811660009081526004830160205260408120548190819060ff161515611ad65760009250611c32565b8454604080517f993d3489000000000000000000000000000000000000000000000000000000008152600160a060020a038781166004830152825193169263993d3489926024808401939192918290030181600087803b158015611b3957600080fd5b505af1158015611b4d573d6000803e3d6000fd5b505050506040513d6040811015611b6357600080fd5b50519150811515611b775760009250611c32565b611b858286600201546119dd565b6001860154604080517fdbcbaca4000000000000000000000000000000000000000000000000000000008152600160a060020a03888116600483015282519496509092169263dbcbaca49260248082019392918290030181600087803b158015611bee57600080fd5b505af1158015611c02573d6000803e3d6000fd5b505050506040513d6040811015611c1857600080fd5b50519050818110611c2c5760009250611c32565b80820392505b505092915050565b6000811515611c4b57506000611376565b600183015483548302811515611c5d57fe5b049392505050565b600160a060020a0316151590565b6000811515611c8457506000611376565b602083015183518302811515611c5d57fe5b60005b81518161ffff161015611139576001836004016000848461ffff16815181101515611cc057fe5b602090810291909101810151600160a060020a03168252810191909152604001600020805460ff1916911515919091179055600101611c99565b600160a060020a0381161515611054576040805160e560020a62461bcd02815260206004820152601860248201527f72657175697265206e6f74207a65726f20616464726573730000000000000000604482015290519081900360640190fd5b611d62611f58565b3031681b1ae4d6e2ef500000811015611d8657611d7f6010611f33565b9150611ec0565b80681b1ae4d6e2ef50000011158015611da85750683635c9adc5dea000008111155b15611db757611d7f6012611f33565b80683635c9adc5dea0000011158015611dd9575068878678326eac9000008111155b15611de857611d7f6014611f33565b8068878678326eac90000011158015611e0b575069021e19e0c9bab24000008111155b15611e1a57611d7f6016611f33565b8069021e19e0c9bab240000011158015611e3e575069043c33c19375648000008111155b15611e4d57611d7f6018611f33565b8069043c33c193756480000011158015611e71575069065a4da25d3016c000008111155b15611e8057611d7f601a611f33565b8069065a4da25d3016c0000011158015611ea45750690a968163f0a57b4000008111155b15611eb357611d7f601c611f33565b611ebd601e611f33565b91505b5090565b6000805473ffffffffffffffffffffffffffffffffffffffff19169055565b80825560015b600283015460ff908116908216116111395760ff8116600090815260038401602052604090205415611f2b5760ff811660009081526003840160205260408120555b600101611ee9565b611f3b611f58565b506040805180820190915281548152600190910154602082015290565b604080518082019091526000808252602082015290565b6040516104c680611f80833901905600608060405260008054600160a060020a031916331790556104a1806100256000396000f3006080604052600436106100825763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166320987e64811461008757806341b2121c146100bf57806344013585146100e6578063949d225d1461010a578063cee2a9cf14610131578063d597d06f14610152578063dbcbaca414610173575b600080fd5b34801561009357600080fd5b506100ab600160a060020a03600435166024356101ad565b604080519115158252519081900360200190f35b3480156100cb57600080fd5b506100ab600160a060020a036004351660243560443561024d565b3480156100f257600080fd5b506100ab600160a060020a03600435166024356102f0565b34801561011657600080fd5b5061011f61038f565b60408051918252519081900360200190f35b34801561013d57600080fd5b506100ab600160a060020a0360043516610395565b34801561015e57600080fd5b506100ab600160a060020a03600435166103b5565b34801561017f57600080fd5b50610194600160a060020a0360043516610432565b6040805192835260208301919091528051918290030190f35b60008054600160a060020a031633146101fe576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020610456833981519152604482015290519081900360640190fd5b600160a060020a038316600090815260026020526040902054151561022557506000610247565b50600160a060020a038216600090815260026020526040902080548201905560015b92915050565b600080548190600160a060020a031633146102a0576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020610456833981519152604482015290519081900360640190fd5b50600160a060020a038416600090815260026020526040902080541515806102c6575083155b156102d457600091506102e8565b838155600180820184905580548101815591505b509392505050565b60008054600160a060020a03163314610341576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020610456833981519152604482015290519081900360640190fd5b600160a060020a038316600090815260026020526040902054151561036857506000610247565b50600160a060020a0382166000908152600260205260409020600190810182905592915050565b60015481565b600160a060020a038116600090815260026020526040812054115b919050565b60008054600160a060020a03163314610406576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020610456833981519152604482015290519081900360640190fd5b61040f82610395565b156103b057600160a060020a038216600090815260026020526040812055919050565b600160a060020a031660009081526002602052604090208054600190910154909156006163636573732064656e69656400000000000000000000000000000000000000a165627a7a72305820888d079002ac389832288795ba9f4da131b77e32ce6701e323028cc4b3f92ae600296163636573732064656e69656400000000000000000000000000000000000000a165627a7a72305820a514bf7c1c06f879750cc6000774de7a0e42fd535083968926cf9018823d5c4a0029608060405260008054600160a060020a031916331790556104a1806100256000396000f3006080604052600436106100825763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166320987e64811461008757806341b2121c146100bf57806344013585146100e6578063949d225d1461010a578063cee2a9cf14610131578063d597d06f14610152578063dbcbaca414610173575b600080fd5b34801561009357600080fd5b506100ab600160a060020a03600435166024356101ad565b604080519115158252519081900360200190f35b3480156100cb57600080fd5b506100ab600160a060020a036004351660243560443561024d565b3480156100f257600080fd5b506100ab600160a060020a03600435166024356102f0565b34801561011657600080fd5b5061011f61038f565b60408051918252519081900360200190f35b34801561013d57600080fd5b506100ab600160a060020a0360043516610395565b34801561015e57600080fd5b506100ab600160a060020a03600435166103b5565b34801561017f57600080fd5b50610194600160a060020a0360043516610432565b6040805192835260208301919091528051918290030190f35b60008054600160a060020a031633146101fe576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020610456833981519152604482015290519081900360640190fd5b600160a060020a038316600090815260026020526040902054151561022557506000610247565b50600160a060020a038216600090815260026020526040902080548201905560015b92915050565b600080548190600160a060020a031633146102a0576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020610456833981519152604482015290519081900360640190fd5b50600160a060020a038416600090815260026020526040902080541515806102c6575083155b156102d457600091506102e8565b838155600180820184905580548101815591505b509392505050565b60008054600160a060020a03163314610341576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020610456833981519152604482015290519081900360640190fd5b600160a060020a038316600090815260026020526040902054151561036857506000610247565b50600160a060020a0382166000908152600260205260409020600190810182905592915050565b60015481565b600160a060020a038116600090815260026020526040812054115b919050565b60008054600160a060020a03163314610406576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020610456833981519152604482015290519081900360640190fd5b61040f82610395565b156103b057600160a060020a038216600090815260026020526040812055919050565b600160a060020a031660009081526002602052604090208054600190910154909156006163636573732064656e69656400000000000000000000000000000000000000a165627a7a72305820888d079002ac389832288795ba9f4da131b77e32ce6701e323028cc4b3f92ae60029
Deployed Bytecode
0x6080604052600436106101275763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306127a11811461018657806315aa6833146101db5780631686531a146101fc578063399ae7241461022d5780633d7ac9f81461025157806362d2c55514610278578063653c31741461028d57806373ad468a146102a2578063900334b1146102b757806390b0636f146102d85780639396df32146102ed57806395a23c3a1461031b578063984d4a93146103305780639ec6e05414610351578063b8fde2a414610366578063cb192f2c1461037b578063d50030ad1461039c578063d82fa3f1146103b1578063dbcbaca4146103c5578063eafecc7a14610406578063ecbdbb321461041b578063fc7c41af14610430575b61013034610445565b156101425761013d61044d565b610184565b61018461017f6000368080601f0160208091040260200160405190810160405280939291908181526020018383808284375061069d945050505050565b6106a4565b005b34801561019257600080fd5b506040805160206004803580820135838102808601850190965280855261018495369593946024949385019291829185019084908082843750949750610ff39650505050505050565b3480156101e757600080fd5b50610184600160a060020a0360043516611057565b34801561020857600080fd5b5061021161113e565b60408051600160a060020a039092168252519081900360200190f35b34801561023957600080fd5b50610184600160a060020a036004351660243561114d565b34801561025d57600080fd5b506102666112b2565b60408051918252519081900360200190f35b34801561028457600080fd5b506102116112bd565b34801561029957600080fd5b506102666112cc565b3480156102ae57600080fd5b5061026661135c565b3480156102c357600080fd5b50610266600160a060020a036004351661136b565b3480156102e457600080fd5b5061026661137c565b3480156102f957600080fd5b5061030261138d565b6040805192835260208301919091528051918290030190f35b34801561032757600080fd5b50610302611397565b34801561033c57600080fd5b50610184600160a060020a03600435166113a1565b34801561035d57600080fd5b50610266611432565b34801561037257600080fd5b50610302611438565b34801561038757600080fd5b50610184600160a060020a036004351661145d565b3480156103a857600080fd5b5061018461044d565b610184600160a060020a03600435166106a4565b3480156103d157600080fd5b506103e6600160a060020a03600435166114ee565b604080519384526020840192909252151582820152519081900360600190f35b34801561041257600080fd5b506102666115b4565b34801561042757600080fd5b506102666115ba565b34801561043c57600080fd5b506101846115bf565b80155b919050565b60006104583361164c565b15156104ae576040805160e560020a62461bcd02815260206004820152601860248201527f6f6e6c792065787465726e616c6c79206163636f756e74730000000000000000604482015290519081900360640190fd5b620151806104cf6104be33611658565b60200151429063ffffffff61171c16565b116104d957600080fd5b6104e23361173a565b90506104ed816117ec565b1515610543576040805160e560020a62461bcd02815260206004820152601c60248201527f63616e6e6f7420746f20706179207a65726f206469766964656e647300000000604482015290519081900360640190fd5b600b54604080517f440135850000000000000000000000000000000000000000000000000000000081523360048201524260248201529051600160a060020a03909216916344013585916044808201926020929091908290030181600087803b1580156105af57600080fd5b505af11580156105c3573d6000803e3d6000fd5b505050506040513d60208110156105d957600080fd5b505115156105e357fe5b303181106105f7576105f36117f1565b5030315b604051339082156108fc029083906000818181858888f19350505050158015610624573d6000803e3d6000fd5b506040805142815260208101839052815133927f6710e0cad56444677ac916513b384a4acc6501cfb5219f59657ad4ddffef9d60928290030190a2604080514281523031602082015281517f32367fddaa1baa1c6a0fc5c3e8284df724bacc7b50e847c32c9f9765f9f96137929181900390910190a150565b6014015190565b600080808080808080806106b73361164c565b151561070d576040805160e560020a62461bcd02815260206004820152601860248201527f6f6e6c792065787465726e616c6c79206163636f756e74730000000000000000604482015290519081900360640190fd5b349850889750662386f26fc10000881015610798576040805160e560020a62461bcd02815260206004820152602260248201527f696e766573746d656e74206d757374206265203e3d206d696e496e7665736d6560448201527f6e74000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6a1b8b8c9e000e82a4800000303111156107fc576040805160e560020a62461bcd02815260206004820152601e60248201527f74686520636f6e7472616374206574682062616c616e6365206c696d69740000604482015290519081900360640190fd5b61080660016118e1565b1561088e57610815600161190c565b965061082087611986565b61082a89886119dd565b985061083d60018a63ffffffff6119f516565b151561084557fe5b61084f6001611a72565b60408051428152602081018c9052815133927f21cd51cc98547f9914bc0b314a40e645408acad21d1289eecb4dfb534fda7cfc928290030190a36108c6565b6108986005611a9c565b156108c6576108ae60053363ffffffff611aa516565b95506108b986611986565b6108c389876119dd565b98505b8888111561094e576040518989039550339086156108fc029087906000818181858888f19350505050158015610900573d6000803e3d6000fd5b50604080514281523460208201528082018b90526060810187905290518a995033917faac472d912a7451062b64c942775db41d65cce271603099e1c4760e072050951919081900360800190a25b600c54600160a060020a03166108fc61096e60288b63ffffffff611c3a16565b6040518115909202916000818181858888f15050600d54600160a060020a031692506108fc91506109a8905060268b63ffffffff611c3a16565b6040518115909202916000818181858888f15050600b54604080517fcee2a9cf0000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a03909216945063cee2a9cf935060248082019350602092918290030181600087803b158015610a2357600080fd5b505af1158015610a37573d6000803e3d6000fd5b505050506040513d6020811015610a4d57600080fd5b50519350610a63600160a060020a038b16611c65565b8015610a6d575083155b8015610a895750336000908152600a602052604090205460ff16155b8015610a9e5750600160a060020a038a163314155b8015610b3a5750600b54604080517fcee2a9cf000000000000000000000000000000000000000000000000000000008152600160a060020a038d811660048301529151919092169163cee2a9cf9160248083019260209291908290030181600087803b158015610b0d57600080fd5b505af1158015610b21573d6000803e3d6000fd5b505050506040513d6020811015610b3757600080fd5b50515b15610cd657336000908152600a6020908152604091829020805460ff191660011790558151808301909252602254825260235490820152610b81908a63ffffffff611c7316565b9250678ac7230489e80000891115610bbd576040805180820190915260245481526025546020820152610bba908a63ffffffff611c7316565b92505b6040805180820190915260208054825260215490820152610be4908a63ffffffff611c7316565b600b54604080517f20987e64000000000000000000000000000000000000000000000000000000008152600160a060020a038e811660048301526024820188905291519395509116916320987e64916044808201926020929091908290030181600087803b158015610c5557600080fd5b505af1158015610c69573d6000803e3d6000fd5b505050506040513d6020811015610c7f57600080fd5b50511515610c8957fe5b604080514281526020810184905281519a84019a600160a060020a038d169233927fc04fb14bddd876003a335c37b1fe6524ac1dbf74eb64dd08cd085fba4b97d592929081900390910190a35b610cdf3361173a565b9050838015610cf25750610cf2816117ec565b15610d3657604080514281526020810183905281519a83019a33927f149822e3a65d38c9b6f40e835864c61ef5ca0866219afc2db638e3f85ae78866928290030190a25b8315610e8257600b54604080517f20987e64000000000000000000000000000000000000000000000000000000008152336004820152602481018c90529051600160a060020a03909216916320987e64916044808201926020929091908290030181600087803b158015610da957600080fd5b505af1158015610dbd573d6000803e3d6000fd5b505050506040513d6020811015610dd357600080fd5b50511515610ddd57fe5b600b54604080517f440135850000000000000000000000000000000000000000000000000000000081523360048201524260248201529051600160a060020a03909216916344013585916044808201926020929091908290030181600087803b158015610e4957600080fd5b505af1158015610e5d573d6000803e3d6000fd5b505050506040513d6020811015610e7357600080fd5b50511515610e7d57fe5b610f60565b600b54604080517f41b2121c000000000000000000000000000000000000000000000000000000008152336004820152602481018c90524260448201529051600160a060020a03909216916341b2121c916064808201926020929091908290030181600087803b158015610ef557600080fd5b505af1158015610f09573d6000803e3d6000fd5b505050506040513d6020811015610f1f57600080fd5b50511515610f2957fe5b60408051428152905133917fc8616cf56c542aa2540734215ee474180fc3b9cc7c2fad288000504632cacf18919081900360200190a25b600e8054600101905560408051428152602081018b90528082018a9052905133917fd5a986028ae9e04f72859f7d3c1d8ae8b649c26be5b99d4c2d98ca4a19a0502e919081900360600190a2604080514281523031602082015281517f32367fddaa1baa1c6a0fc5c3e8284df724bacc7b50e847c32c9f9765f9f96137929181900390910190a150505050505050505050565b600054600160a060020a03163314611043576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020612446833981519152604482015290519081900360640190fd5b61105460058263ffffffff611c9616565b50565b600054600160a060020a031633146110a7576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020612446833981519152604482015290519081900360640190fd5b600b54604080517fd597d06f000000000000000000000000000000000000000000000000000000008152600160a060020a0384811660048301529151919092169163d597d06f9160248083019260209291908290030181600087803b15801561110f57600080fd5b505af1158015611123573d6000803e3d6000fd5b505050506040513d602081101561113957600080fd5b505050565b600c54600160a060020a031681565b600054600160a060020a0316331461119d576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020612446833981519152604482015290519081900360640190fd5b600180820190819055681b1ae4d6e2ef50000060028190556003805460ff1916601517908190556040805142815260208101949094528381019290925260ff166060830152517f16171a4e996b33ebb6320397242a4168f60c16e87fbd8b58f1744d68c4179caf9181900360800190a160058054600160a060020a0380851673ffffffffffffffffffffffffffffffffffffffff199283161792839055600b546006805490931690821617918290556802b5e3af16b1880000600781905560088590556040805142815294831660208601529290911683830152606083015260808201839052517f7e13d111fea1199cb6fb21cb38766240cfad970317820e8e5713da7a708285309181900360a00190a15050565b662386f26fc1000081565b600d54600160a060020a031681565b600b54604080517f949d225d0000000000000000000000000000000000000000000000000000000081529051600092600160a060020a03169163949d225d91600480830192602092919082900301818787803b15801561132b57600080fd5b505af115801561133f573d6000803e3d6000fd5b505050506040513d602081101561135557600080fd5b5051905090565b6a1b8b8c9e000e82a480000081565b60006113768261173a565b92915050565b6000611388600161190c565b905090565b6028546029549091565b6026546027549091565b600054600160a060020a031633146113f1576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020612446833981519152604482015290519081900360640190fd5b61140381600160a060020a0316611cfa565b600d805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600e5481565b600080611443611f58565b61144b611d5a565b80516020909101519094909350915050565b600054600160a060020a031633146114ad576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020612446833981519152604482015290519081900360640190fd5b6114bf81600160a060020a0316611cfa565b600c805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600b54604080517fdbcbaca4000000000000000000000000000000000000000000000000000000008152600160a060020a038481166004830152825160009485948594939091169263dbcbaca4926024808301939282900301818787803b15801561155857600080fd5b505af115801561156c573d6000803e3d6000fd5b505050506040513d604081101561158257600080fd5b508051602091820151600160a060020a039096166000908152600a909252604090912054909560ff9091169350915050565b600f5481565b303190565b600054600160a060020a0316331461160f576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020612446833981519152604482015290519081900360640190fd5b611617611ec4565b6040805142815290517f5189687a7ec9d4aebe2f548f952ffbbad19e4cd545c4a05b5e2369cd272dd5519181900360200190a1565b803b8015905b50919050565b611660611f58565b600b54604080517fdbcbaca4000000000000000000000000000000000000000000000000000000008152600160a060020a0385811660048301528251600094859492169263dbcbaca492602480830193919282900301818787803b1580156116c757600080fd5b505af11580156116db573d6000803e3d6000fd5b505050506040513d60408110156116f157600080fd5b50805160209182015160408051808201909152828152928301819052919450925090505b5050919050565b6000808383111561172c57600080fd5b5050808203805b5092915050565b6000611744611f58565b61174c611f58565b61175584611658565b91506117648260000151610445565b80611786575061025861178483602001514261171c90919063ffffffff16565b105b156117945760009250611715565b61179c611d5a565b82519091506090906117b590839063ffffffff611c7316565b6102586117cf85602001514261171c90919063ffffffff16565b8115156117d857fe5b04028115156117e357fe5b04949350505050565b151590565b6117f9611f6f565b604051809103906000f080158015611815573d6000803e3d6000fd5b50600b805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790556000600e5542600f81905561185a90600190611ee3565b6001546002546003546040805142815260208101949094528381019290925260ff166060830152517f16171a4e996b33ebb6320397242a4168f60c16e87fbd8b58f1744d68c4179caf9181900360800190a16040805142815290517fc66870ef5f6257a76295d443e9221488043ec691f830f6c6128755c3518e3c759181900360200190a1565b6000806118ed83611a72565b905080158015906119055750600283015460ff168111155b9392505050565b60008061191883611a72565b905080158061192d5750600283015460ff1681115b1561193b5760009150611652565b600183015460ff82166000908152600385016020526040902054106119635760009150611652565b60ff81166000908152600384016020526040902054600184015403915050919050565b801515611054576040805160e560020a62461bcd02815260206004820152601660248201527f72657175697265206e6f74207a65726f2076616c756500000000000000000000604482015290519081900360640190fd5b6000818311156119ee575080611376565b5090919050565b600080611a0184611a72565b9050801580611a165750600284015460ff1681115b15611a245760009150611733565b600184015460ff8216600090815260038601602052604090205484011115611a4f5760009150611733565b60ff16600090815260039390930160205250604090912080549091019055600190565b60004282600001541115611a8857506000610448565b815462015180904203046001019050919050565b60030154421090565b600160a060020a03811660009081526004830160205260408120548190819060ff161515611ad65760009250611c32565b8454604080517f993d3489000000000000000000000000000000000000000000000000000000008152600160a060020a038781166004830152825193169263993d3489926024808401939192918290030181600087803b158015611b3957600080fd5b505af1158015611b4d573d6000803e3d6000fd5b505050506040513d6040811015611b6357600080fd5b50519150811515611b775760009250611c32565b611b858286600201546119dd565b6001860154604080517fdbcbaca4000000000000000000000000000000000000000000000000000000008152600160a060020a03888116600483015282519496509092169263dbcbaca49260248082019392918290030181600087803b158015611bee57600080fd5b505af1158015611c02573d6000803e3d6000fd5b505050506040513d6040811015611c1857600080fd5b50519050818110611c2c5760009250611c32565b80820392505b505092915050565b6000811515611c4b57506000611376565b600183015483548302811515611c5d57fe5b049392505050565b600160a060020a0316151590565b6000811515611c8457506000611376565b602083015183518302811515611c5d57fe5b60005b81518161ffff161015611139576001836004016000848461ffff16815181101515611cc057fe5b602090810291909101810151600160a060020a03168252810191909152604001600020805460ff1916911515919091179055600101611c99565b600160a060020a0381161515611054576040805160e560020a62461bcd02815260206004820152601860248201527f72657175697265206e6f74207a65726f20616464726573730000000000000000604482015290519081900360640190fd5b611d62611f58565b3031681b1ae4d6e2ef500000811015611d8657611d7f6010611f33565b9150611ec0565b80681b1ae4d6e2ef50000011158015611da85750683635c9adc5dea000008111155b15611db757611d7f6012611f33565b80683635c9adc5dea0000011158015611dd9575068878678326eac9000008111155b15611de857611d7f6014611f33565b8068878678326eac90000011158015611e0b575069021e19e0c9bab24000008111155b15611e1a57611d7f6016611f33565b8069021e19e0c9bab240000011158015611e3e575069043c33c19375648000008111155b15611e4d57611d7f6018611f33565b8069043c33c193756480000011158015611e71575069065a4da25d3016c000008111155b15611e8057611d7f601a611f33565b8069065a4da25d3016c0000011158015611ea45750690a968163f0a57b4000008111155b15611eb357611d7f601c611f33565b611ebd601e611f33565b91505b5090565b6000805473ffffffffffffffffffffffffffffffffffffffff19169055565b80825560015b600283015460ff908116908216116111395760ff8116600090815260038401602052604090205415611f2b5760ff811660009081526003840160205260408120555b600101611ee9565b611f3b611f58565b506040805180820190915281548152600190910154602082015290565b604080518082019091526000808252602082015290565b6040516104c680611f80833901905600608060405260008054600160a060020a031916331790556104a1806100256000396000f3006080604052600436106100825763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166320987e64811461008757806341b2121c146100bf57806344013585146100e6578063949d225d1461010a578063cee2a9cf14610131578063d597d06f14610152578063dbcbaca414610173575b600080fd5b34801561009357600080fd5b506100ab600160a060020a03600435166024356101ad565b604080519115158252519081900360200190f35b3480156100cb57600080fd5b506100ab600160a060020a036004351660243560443561024d565b3480156100f257600080fd5b506100ab600160a060020a03600435166024356102f0565b34801561011657600080fd5b5061011f61038f565b60408051918252519081900360200190f35b34801561013d57600080fd5b506100ab600160a060020a0360043516610395565b34801561015e57600080fd5b506100ab600160a060020a03600435166103b5565b34801561017f57600080fd5b50610194600160a060020a0360043516610432565b6040805192835260208301919091528051918290030190f35b60008054600160a060020a031633146101fe576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020610456833981519152604482015290519081900360640190fd5b600160a060020a038316600090815260026020526040902054151561022557506000610247565b50600160a060020a038216600090815260026020526040902080548201905560015b92915050565b600080548190600160a060020a031633146102a0576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020610456833981519152604482015290519081900360640190fd5b50600160a060020a038416600090815260026020526040902080541515806102c6575083155b156102d457600091506102e8565b838155600180820184905580548101815591505b509392505050565b60008054600160a060020a03163314610341576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020610456833981519152604482015290519081900360640190fd5b600160a060020a038316600090815260026020526040902054151561036857506000610247565b50600160a060020a0382166000908152600260205260409020600190810182905592915050565b60015481565b600160a060020a038116600090815260026020526040812054115b919050565b60008054600160a060020a03163314610406576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020610456833981519152604482015290519081900360640190fd5b61040f82610395565b156103b057600160a060020a038216600090815260026020526040812055919050565b600160a060020a031660009081526002602052604090208054600190910154909156006163636573732064656e69656400000000000000000000000000000000000000a165627a7a72305820888d079002ac389832288795ba9f4da131b77e32ce6701e323028cc4b3f92ae600296163636573732064656e69656400000000000000000000000000000000000000a165627a7a72305820a514bf7c1c06f879750cc6000774de7a0e42fd535083968926cf9018823d5c4a0029
Deployed Bytecode Sourcemap
9193:12202:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12763:18;:9;:16;:18::i;:::-;12759:72;;;12792:16;:14;:16::i;:::-;12817:7;;12759:72;12864:30;12873:20;:8;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12873:18:0;;-1:-1:-1;;;;;12873:20:0:i;:::-;12864:8;:30::i;:::-;9193:12202;14192:123;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;14192:123:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14192:123:0;;-1:-1:-1;14192:123:0;;-1:-1:-1;;;;;;;14192:123:0;12906:98;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;12906:98:0;-1:-1:-1;;;;;12906:98:0;;;;;9902:33;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9902:33:0;;;;;;;;-1:-1:-1;;;;;9902:33:0;;;;;;;;;;;;;;13100:828;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;13100:828:0;-1:-1:-1;;;;;13100:828:0;;;;;;;9800:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9800:45:0;;;;;;;;;;;;;;;;;;;;9940:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9940:28:0;;;;14468:91;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14468:91:0;;;;9851:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9851:45:0;;;;15255:142;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;15255:142:0;-1:-1:-1;;;;;15255:142:0;;;;;14321:141;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14321:141:0;;;;14660:176;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14660:176:0;;;;;;;;;;;;;;;;;;;;;;;;;;;14842:161;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14842:161:0;;;;14068:118;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;14068:118:0;-1:-1:-1;;;;;14068:118:0;;;;;9973:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9973:29:0;;;;15403:185;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15403:185:0;;;;13934:128;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;13934:128:0;-1:-1:-1;;;;;13934:128:0;;;;;15594:750;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15594:750:0;;;;16350:3015;;-1:-1:-1;;;;;16350:3015:0;;;;;15009:240;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;15009:240:0;-1:-1:-1;;;;;15009:240:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10007:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10007:23:0;;;;14565:89;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14565:89:0;;;;13010:84;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13010:84:0;;;;941:78;1007:6;;941:78;;;;:::o;15594:750::-;15823:14;12495:26;:10;:24;:26::i;:::-;12487:63;;;;;;;-1:-1:-1;;;;;12487:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;15805:8;15755:47;15763:26;15778:10;15763:14;:26::i;:::-;:38;;;15755:3;;:47;:7;:47;:::i;:::-;:58;15747:67;;;;;;15840:25;15854:10;15840:13;:25::i;:::-;15823:42;;15881:19;:9;:17;:19::i;:::-;15872:61;;;;;;;-1:-1:-1;;;;;15872:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;15991:11;;:43;;;;;;16018:10;15991:43;;;;16030:3;15991:43;;;;;;-1:-1:-1;;;;;15991:11:0;;;;:26;;:43;;;;;;;;;;;;;;;:11;;:43;;;5:2:-1;;;;30:1;27;20:12;5:2;15991:43:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15991:43:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15991:43:0;15984:51;;;;;;16108:4;16100:21;:34;-1:-1:-1;16096:109:0;;16145:10;:8;:10::i;:::-;-1:-1:-1;16184:4:0;16176:21;16096:109;16253:30;;:10;;:30;;;;;16273:9;;16253:30;;;;16273:9;16253:10;:30;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;16295:43:0;;;16323:3;16295:43;;;;;;;;;;16311:10;;16295:43;;;;;;;;12396:45;;;12414:3;12396:45;;12427:4;12419:21;12396:45;;;;;;;;;;;;;;;;;15594:750;:::o;2428:143::-;2540:4;2529:16;2523:23;;2428:143::o;16350:3015::-;16443:15;;;;;;;;;12495:26;:10;:24;:26::i;:::-;12487:63;;;;;;;-1:-1:-1;;;;;12487:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;16461:9;;-1:-1:-1;16461:9:0;;-1:-1:-1;9836:9:0;16522:26;;;16514:73;;;;;-1:-1:-1;;;;;16514:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9885:11;16610:4;16602:21;:35;;16594:78;;;;;-1:-1:-1;;;;;16594:78:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;16685:16;:5;:14;:16::i;:::-;16681:604;;;16781:26;:5;:24;:26::i;:::-;16761:46;;16816:29;:12;:27;:29::i;:::-;16867:34;16876:10;16888:12;16867:8;:34::i;:::-;16854:47;-1:-1:-1;16917:32:0;:5;16854:47;16917:32;:20;:32;:::i;:::-;16910:40;;;;;;17010:15;:5;:13;:15::i;:::-;16964:62;;;16993:3;16964:62;;;;;;;;;;16981:10;;16964:62;;;;;;;;16681:604;;;17052:22;:11;:20;:22::i;:::-;17048:237;;;17145:40;:11;17174:10;17145:40;:28;:40;:::i;:::-;17126:59;;17194:28;:11;:26;:28::i;:::-;17244:33;17253:10;17265:11;17244:8;:33::i;:::-;17231:46;;17048:237;17352:10;17336:13;:26;17332:242;;;17422:27;;17387:26;;;;-1:-1:-1;17422:10:0;;:27;;;;;17387:26;;17422:27;;;;17387:26;17422:10;:27;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;17498:68:0;;;17531:3;17498:68;;17536:9;17498:68;;;;;;;;;;;;;;;;;;17474:10;;-1:-1:-1;17519:10:0;;17498:68;;;;;;;;;;17332:242;17601:18;;-1:-1:-1;;;;;17601:18:0;:64;17625:39;:20;17650:13;17625:39;:24;:39;:::i;:::-;17601:64;;;;;;;;;;;;;;;;-1:-1:-1;;17672:13:0;;-1:-1:-1;;;;;17672:13:0;;-1:-1:-1;17672:54:0;;-1:-1:-1;17691:34:0;;-1:-1:-1;17691:15:0;17711:13;17691:34;:19;:34;:::i;:::-;17672:54;;;;;;;;;;;;;;;;-1:-1:-1;;17759:11:0;;:34;;;;;;17782:10;17759:34;;;;;;-1:-1:-1;;;;;17759:11:0;;;;-1:-1:-1;17759:22:0;;-1:-1:-1;17759:34:0;;;;;-1:-1:-1;17759:34:0;;;;;;;;:11;;:34;;;5:2:-1;;;;30:1;27;20:12;5:2;17759:34:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17759:34:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17759:34:0;;-1:-1:-1;17866:22:0;-1:-1:-1;;;;;17866:20:0;;;:22::i;:::-;:43;;;;;17893:16;17892:17;17866:43;:71;;;;-1:-1:-1;17926:10:0;17914:23;;;;:11;:23;;;;;;;;17913:24;17866:71;:108;;;;-1:-1:-1;;;;;;17948:26:0;;17964:10;17948:26;;17866:108;:148;;;;-1:-1:-1;17978:11:0;;:36;;;;;;-1:-1:-1;;;;;17978:36:0;;;;;;;;;:11;;;;;:22;;:36;;;;;;;;;;;;;;:11;;:36;;;5:2:-1;;;;30:1;27;20:12;5:2;17978:36:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17978:36:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17978:36:0;17866:148;17862:783;;;18045:10;18033:23;;;;:11;:23;;;;;;;;;:30;;-1:-1:-1;;18033:30:0;18059:4;18033:30;;;18163:23;;;;;;;;:18;:23;;;;;;;;;:35;;18187:10;18163:35;:23;:35;:::i;:::-;18142:56;;18224:8;18211:10;:21;18207:102;;;18261:26;;;;;;;;;:21;:26;;;;;;;;;:38;;18288:10;18261:38;:26;:38;:::i;:::-;18245:54;;18207:102;18345:22;;;;;;;;;:17;:22;;;;;;;;;;:34;;18368:10;18345:34;:22;:34;:::i;:::-;18395:11;;:54;;;;;;-1:-1:-1;;;;;18395:54:0;;;;;;;;;;;;;;;18325;;-1:-1:-1;18395:11:0;;;:25;;:54;;;;;;;;;;;;;;;:11;;:54;;;5:2:-1;;;;30:1;27;20:12;5:2;18395:54:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18395:54:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18395:54:0;18388:62;;;;;;18578:59;;;18619:3;18578:59;;;;;;;;;;18481:26;;;;-1:-1:-1;;;;;18578:59:0;;;18593:10;;18578:59;;;;;;;;;;;17862:783;18725:25;18739:10;18725:13;:25::i;:::-;18708:42;;18761:16;:39;;;;;18781:19;:9;:17;:19::i;:::-;18757:147;;;18848:48;;;18881:3;18848:48;;;;;;;;;;18811:23;;;;18869:10;;18848:48;;;;;;;;18757:147;18916:16;18912:349;;;18985:11;;:49;;;;;;19011:10;18985:49;;;;;;;;;;;;-1:-1:-1;;;;;18985:11:0;;;;:25;;:49;;;;;;;;;;;;;;;:11;;:49;;;5:2:-1;;;;30:1;27;20:12;5:2;18985:49:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18985:49:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18985:49:0;18978:57;;;;;;19051:11;;:43;;;;;;19078:10;19051:43;;;;19090:3;19051:43;;;;;;-1:-1:-1;;;;;19051:11:0;;;;:26;;:43;;;;;;;;;;;;;;;:11;;:43;;;5:2:-1;;;;30:1;27;20:12;5:2;19051:43:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19051:43:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19051:43:0;19044:51;;;;;;18912:349;;;19155:11;;:52;;;;;;19179:10;19155:52;;;;;;;;;;19203:3;19155:52;;;;;;-1:-1:-1;;;;;19155:11:0;;;;:23;;:52;;;;;;;;;;;;;;;:11;;:52;;;5:2:-1;;;;30:1;27;20:12;5:2;19155:52:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19155:52:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19155:52:0;19148:60;;;;;;19222:31;;;19249:3;19222:31;;;;19237:10;;19222:31;;;;;;;;;;18912:349;19269:17;:19;;;;;;19300:59;;;19328:3;19300:59;;;;;;;;;;;;;;;;19316:10;;19300:59;;;;;;;;;;12396:45;;;12414:3;12396:45;;12427:4;12419:21;12396:45;;;;;;;;;;;;;;;;;16350:3015;;;;;;;;;;:::o;14192:123::-;4359:5;;-1:-1:-1;;;;;4359:5:0;4345:10;:19;4337:45;;;;;-1:-1:-1;;;;;4337:45:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;4337:45:0;;;;;;;;;;;;;;;14274:35;:11;14303:5;14274:35;:28;:35;:::i;:::-;14192:123;:::o;12906:98::-;4359:5;;-1:-1:-1;;;;;4359:5:0;4345:10;:19;4337:45;;;;;-1:-1:-1;;;;;4337:45:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;4337:45:0;;;;;;;;;;;;;;;12971:11;;:27;;;;;;-1:-1:-1;;;;;12971:27:0;;;;;;;;;:11;;;;;:21;;:27;;;;;;;;;;;;;;:11;;:27;;;5:2:-1;;;;30:1;27;20:12;5:2;12971:27:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12971:27:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;12906:98:0:o;9902:33::-;;;-1:-1:-1;;;;;9902:33:0;;:::o;13100:828::-;4359:5;;-1:-1:-1;;;;;4359:5:0;4345:10;:19;4337:45;;;;;-1:-1:-1;;;;;4337:45:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;4337:45:0;;;;;;;;;;;;;;;13251:1;13239:13;;;13216:36;;;;13291:9;13259:29;:41;;;13307:18;:23;;-1:-1:-1;;13307:23:0;13328:2;13307:23;;;;;13342:124;;;13361:3;13342:124;;;;;;;;;;;;;;;;13307:23;13441:18;13342:124;;;;;;;;;;;;;;13507:11;:54;;-1:-1:-1;;;;;13507:54:0;;;-1:-1:-1;;13507:54:0;;;;;;;;13614:11;;13568:23;:59;;;;;13614:11;;;13568:59;;;;;13670:8;13634:33;:44;;;13685:24;:36;;;13733:189;;;13751:3;13733:189;;13772:23;;;13733:189;;;;13814:23;;;;13733:189;;;;;;;;;;;;;;;;;;;;;;;;13100:828;;:::o;9800:45::-;9836:9;9800:45;:::o;9940:28::-;;;-1:-1:-1;;;;;9940:28:0;;:::o;14468:91::-;14535:11;;:18;;;;;;;;14515:4;;-1:-1:-1;;;;;14535:11:0;;:16;;:18;;;;;;;;;;;;;;14515:4;14535:11;:18;;;5:2:-1;;;;30:1;27;20:12;5:2;14535:18:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14535:18:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14535:18:0;;-1:-1:-1;14468:91:0;:::o;9851:45::-;9885:11;9851:45;:::o;15255:142::-;15329:14;15364:27;15378:12;15364:13;:27::i;:::-;15352:39;15255:142;-1:-1:-1;;15255:142:0:o;14321:141::-;14393:15;14430:26;:5;:24;:26::i;:::-;14417:39;;14321:141;:::o;14660:176::-;14779:20;:24;14805;;14779;;14660:176::o;14842:161::-;14956:15;:19;14977;;14956;;14842:161::o;14068:118::-;4359:5;;-1:-1:-1;;;;;4359:5:0;4345:10;:19;4337:45;;;;;-1:-1:-1;;;;;4337:45:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;4337:45:0;;;;;;;;;;;;;;;14132:21;:4;-1:-1:-1;;;;;14132:19:0;;:21::i;:::-;14160:13;:20;;-1:-1:-1;;14160:20:0;-1:-1:-1;;;;;14160:20:0;;;;;;;;;;14068:118::o;9973:29::-;;;;:::o;15403:185::-;15452:14;15468:16;15493:24;;:::i;:::-;15520:14;:12;:14::i;:::-;15569:5;;15576;;;;;15569;;15576;;-1:-1:-1;15403:185:0;-1:-1:-1;;15403:185:0:o;13934:128::-;4359:5;;-1:-1:-1;;;;;4359:5:0;4345:10;:19;4337:45;;;;;-1:-1:-1;;;;;4337:45:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;4337:45:0;;;;;;;;;;;;;;;14003:21;:4;-1:-1:-1;;;;;14003:19:0;;:21::i;:::-;14031:18;:25;;-1:-1:-1;;14031:25:0;-1:-1:-1;;;;;14031:25:0;;;;;;;;;;13934:128::o;15009:240::-;15160:11;;:38;;;;;;-1:-1:-1;;;;;15160:38:0;;;;;;;;;15073:15;;;;;;15160:11;;;;;:24;;:38;;;;;;;;;;;15073:15;15160:11;:38;;;5:2:-1;;;;30:1;27;20:12;5:2;15160:38:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15160:38:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15160:38:0;;;;;;;-1:-1:-1;;;;;15218:25:0;;;;;;;:11;:25;;;15160:38;15218:25;;;;15160:38;;15218:25;;;;;-1:-1:-1;15009:240:0;-1:-1:-1;;15009:240:0:o;10007:23::-;;;;:::o;14565:89::-;14635:4;14627:21;14565:89;:::o;13010:84::-;4359:5;;-1:-1:-1;;;;;4359:5:0;4345:10;:19;4337:45;;;;;-1:-1:-1;;;;;4337:45:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;4337:45:0;;;;;;;;;;;;;;;13054:8;:6;:8::i;:::-;13074:14;;;13084:3;13074:14;;;;;;;;;;;;;13010:84::o;2577:160::-;2688:17;;2720:11;;;2577:160;;;;;:::o;19371:255::-;19439:25;;:::i;:::-;19518:11;;:38;;;;;;-1:-1:-1;;;;;19518:38:0;;;;;;;;;19481:15;;;;19518:11;;;:24;;:38;;;;;;;;;;;;19481:15;19518:11;:38;;;5:2:-1;;;;30:1;27;20:12;5:2;19518:38:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19518:38:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19518:38:0;;;;;;;;19570:50;;;;;;;;;;;;;;;;;;;-1:-1:-1;19518:38:0;-1:-1:-1;19518:38:0;-1:-1:-1;19371:255:0;;;;;;:::o;3643:142::-;3703:7;;3727:8;;;;3719:17;;;;;;-1:-1:-1;;3755:7:0;;;;3643:142;;;;;;:::o;19632:573::-;19699:14;19722:41;;:::i;:::-;20059:24;;:::i;:::-;19766:28;19781:12;19766:14;:28::i;:::-;19722:72;;19847:28;:8;:19;;;:26;:28::i;:::-;:74;;;;19911:10;19879:29;19887:8;:20;;;19879:3;:7;;:29;;;;:::i;:::-;:42;19847:74;19843:105;;;19939:1;19932:8;;;;19843:105;20086:14;:12;:14::i;:::-;20173:19;;20059:41;;-1:-1:-1;20196:3:0;;20166:27;;20059:41;;20166:27;:6;:27;:::i;:::-;20152:10;20120:29;20128:8;:20;;;20120:3;:7;;:29;;;;:::i;:::-;:42;;;;;;;;20119:74;:80;;;;;;;;;19632:573;-1:-1:-1;;;;19632:573:0:o;1025:79::-;1092:6;;;1025:79::o;21109:283::-;21158:22;;:::i;:::-;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;21144:11:0;:36;;-1:-1:-1;;21144:36:0;-1:-1:-1;;;;;21144:36:0;;;;;;;;;;-1:-1:-1;21187:17:0;:21;21229:3;21215:11;:17;;;21239:18;;-1:-1:-1;;21239:13:0;:18::i;:::-;21286:5;:20;21308:29;;21339:18;;21269:89;;;21280:3;21269:89;;;;;;;;;;;;;;;;21339:18;;21269:89;;;;;;;;;;;;;;21370:16;;;21382:3;21370:16;;;;;;;;;;;;;21109:283::o;8089:167::-;8164:4;8177:8;8188:13;:3;:11;:13::i;:::-;8177:24;-1:-1:-1;8215:8:0;;;;;:35;;-1:-1:-1;8234:16:0;;;;;;8227:23;;;8215:35;8208:42;8089:167;-1:-1:-1;;;8089:167:0:o;7700:383::-;7785:4;7798:8;7809:13;:3;:11;:13::i;:::-;7798:24;-1:-1:-1;7833:8:0;;;:34;;-1:-1:-1;7851:16:0;;;;;;7845:22;;7833:34;7829:65;;;7885:1;7878:8;;;;7829:65;7944:27;;;;7904:36;;;;;;;:24;;;:36;;;;;;:67;7900:98;;7989:1;7982:8;;;;7900:98;8041:36;;;;;;;:24;;;:36;;;;;;8011:27;;;;:66;;-1:-1:-1;7700:383:0;;;;:::o;623:104::-;686:8;;;678:43;;;;;-1:-1:-1;;;;;678:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;;350:120;401:4;422:1;418;:5;414:36;;;-1:-1:-1;441:1:0;434:8;;414:36;-1:-1:-1;463:1:0;;350:120;-1:-1:-1;350:120:0:o;8262:406::-;8355:4;8368:8;8379:13;:3;:11;:13::i;:::-;8368:24;-1:-1:-1;8403:8:0;;;:34;;-1:-1:-1;8421:16:0;;;;;;8415:22;;8403:34;8399:69;;;8455:5;8448:12;;;;8399:69;8530:27;;;;8478:36;;;;;;;:24;;;:36;;;;;;:49;;:79;8474:114;;;8575:5;8568:12;;;;8474:114;8594:36;;;;;;:24;;;;;:36;;-1:-1:-1;8594:36:0;;;;:50;;;;;;;-1:-1:-1;;8262:406:0:o;8980:206::-;9054:8;9096:3;9075;:18;;;:24;9071:55;;;-1:-1:-1;9117:1:0;9110:8;;9071:55;9145:18;;9167:8;;9139:3;:24;9138:37;9178:1;9138:41;9132:47;;8980:206;;;:::o;5062:115::-;5150:15;;;5168:3;-1:-1:-1;;5062:115:0:o;5183:575::-;-1:-1:-1;;;;;5299:26:0;;5281:4;5299:26;;;:12;;;:26;;;;;;5281:4;;;;5299:26;;5298:27;5294:58;;;5343:1;5336:8;;;;5294:58;5385:14;;:46;;;;;;-1:-1:-1;;;;;5385:46:0;;;;;;;;;:14;;;:32;;:46;;;;;;;;;;;;;:14;;:46;;;5:2:-1;;;;30:1;27;20:12;5:2;5385:46:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5385:46:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5385:46:0;;-1:-1:-1;5442:18:0;;5438:49;;;5478:1;5471:8;;;;5438:49;5509;5518:13;5533:2;:24;;;5509:8;:49::i;:::-;5593:14;;;;:41;;;;;;-1:-1:-1;;;;;5593:41:0;;;;;;;;;5493:65;;-1:-1:-1;5593:14:0;;;;:27;;:41;;;;;;;;;;;;:14;;:41;;;5:2:-1;;;;30:1;27;20:12;5:2;5593:41:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5593:41:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5593:41:0;;-1:-1:-1;5651:31:0;;;5647:62;;5700:1;5693:8;;;;5647:62;5738:14;5724:13;:28;5717:35;;5183:575;;;;;;;:::o;1193:145::-;1256:4;1273:6;;1269:37;;;-1:-1:-1;1297:1:0;1290:8;;1269:37;1327:5;;;;1321;;1319:7;;:13;;;;;;;;;1193:145;-1:-1:-1;;;1193:145:0:o;733:100::-;-1:-1:-1;;;;;808:18:0;;806:21;;733:100::o;1867:145::-;1930:4;1947:6;;1943:37;;;-1:-1:-1;1971:1:0;1964:8;;1943:37;2001:5;;;;1995;;1993:7;;:13;;;;;;5764:176;5856:8;5851:84;5870:5;:12;5866:1;:16;;;5851:84;;;5923:4;5898:2;:12;;:22;5911:5;5917:1;5911:8;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5898:22:0;;;;;;;;;;;-1:-1:-1;5898:22:0;:29;;-1:-1:-1;;5898:29:0;;;;;;;;;;-1:-1:-1;5884:3:0;5851:84;;497:120;-1:-1:-1;;;;;564:18:0;;;;556:55;;;;;-1:-1:-1;;;;;556:55:0;;;;;;;;;;;;;;;;;;;;;;;;;;;20211:892;20257:24;;:::i;:::-;20313:4;20305:21;20349:9;20339:19;;20335:762;;;20374:22;:11;:20;:22::i;:::-;20370:26;;20335:762;;;20429:7;20416:9;:20;;:45;;;;;20451:10;20440:7;:21;;20416:45;20411:686;;;20476:22;:11;:20;:22::i;20411:686::-;20535:7;20521:10;:21;;:46;;;;;20557:10;20546:7;:21;;20521:46;20516:581;;;20582:22;:11;:20;:22::i;20516:581::-;20640:7;20626:10;:21;;:47;;;;;20662:11;20651:7;:22;;20626:47;20621:476;;;20688:22;:11;:20;:22::i;20621:476::-;20746:7;20731:11;:22;;:48;;;;;20768:11;20757:7;:22;;20731:48;20726:371;;;20794:22;:11;:20;:22::i;20726:371::-;20854:7;20839:11;:22;;:48;;;;;20876:11;20865:7;:22;;20839:48;20834:263;;;20902:23;:12;:21;:23::i;20834:263::-;20961:7;20946:11;:22;;:48;;;;;20983:11;20972:7;:22;;20946:48;20941:156;;;21009:23;:12;:21;:23::i;20941:156::-;21062:23;:12;:21;:23::i;:::-;21058:27;;20941:156;20211:892;;:::o;4460:52::-;4501:5;4494:12;;-1:-1:-1;;4494:12:0;;;4460:52::o;8674:300::-;8759:30;;;8829:1;8814:155;8837:16;;;;;;;;8832:21;;;;8814:155;;8873:27;;;;;;;:24;;;:27;;;;;;:32;8869:93;;8925:27;;;;;;;:24;;;:27;;;;;8918:34;8869:93;8855:3;;8814:155;;1728:133;1788:15;;:::i;:::-;-1:-1:-1;1826:29:0;;;;;;;;;1842:5;;1826:29;;1849:5;;;;;1826:29;;;;;1728:133::o;9193:12202::-;;;;;;;;;;-1:-1:-1;9193:12202:0;;;;;;;;:::o;:::-;;;;;;;;;;:::o
Swarm Source
bzzr://888d079002ac389832288795ba9f4da131b77e32ce6701e323028cc4b3f92ae6
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | Ether (ETH) | 100.00% | $3,288.03 | 0.00289624 | $9.52 |
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.