Contract 0xb28C485a96eD9506df0047Fc26e82866a27432D9

 

Contract Overview

Balance:
0 BNB

BNB Value:
$0.00

Token:
Txn Hash
Block
From
To
Value [Txn Fee]
0x3dd4eca1da40cc4397c7dcec07a08617486fa95708da430c9aa338beb51f778283328862021-06-16 0:49:465 days 18 hrs ago0x402a5a03a876cc4b89f1f7aced68f49841867628 IN  0xb28c485a96ed9506df0047fc26e82866a27432d90 BNB0.000693305
0x056819dee3d41add8ede151650f0dd2989d4b3397dff73ed464767d4cac1ac2682737782021-06-13 22:53:407 days 20 hrs ago0x9408dbe24f0dc76e8bf2ffe789e868821efa50b4 IN  0xb28c485a96ed9506df0047fc26e82866a27432d90 BNB0.000749485
0xf19de4156d32bd6dfdc0122687d7a0dcb11cc6ddcfae939ac7c6df318ebf8c8782163292021-06-11 22:40:359 days 20 hrs ago0x69e73d7d37448d020da509531d4204d05b4a591a IN  0xb28c485a96ed9506df0047fc26e82866a27432d90 BNB0.000899195
0x2f0d65cce56c622467906dba64b62ee0c3986aec895fee7203492629bd04ee9382097172021-06-11 17:07:5510 days 2 hrs ago0x9408dbe24f0dc76e8bf2ffe789e868821efa50b4 IN  0xb28c485a96ed9506df0047fc26e82866a27432d90 BNB0.000819715
0xf60865326e04d79a1b6c1e5b7800771a20410d2bfb7cf778e7a359dd2010103481814982021-06-10 17:32:3111 days 2 hrs ago0x4cf69ef55c2eba018aa3fe3908d87918b4849766 IN  0xb28c485a96ed9506df0047fc26e82866a27432d90 BNB0.00061959
0x81eafb0216b370ab315150feb0fb0f54a1a7e13accc0a5fdb02cd0445e21ce0781812542021-06-10 17:20:1911 days 2 hrs ago0x98b101e356aa0e5ddd5997869ec239b351119b54 IN  0xb28c485a96ed9506df0047fc26e82866a27432d90 BNB0.000285
0x2808f6ee3a26f881f6740e1b51c089d9141d2f683c7212fb0649309c8c53479881812412021-06-10 17:19:4011 days 2 hrs ago0x98b101e356aa0e5ddd5997869ec239b351119b54 IN  0xb28c485a96ed9506df0047fc26e82866a27432d90 BNB0.000165
0xaa7fc89808c2ef33cc81b337fa2ca179310bbdf228e886e325b9725edfe46bd281642772021-06-10 3:07:0011 days 16 hrs ago0xc3771aa39f7a7272f8e5dc9771170d74cb9411df IN  0xb28c485a96ed9506df0047fc26e82866a27432d90 BNB0.00100833
0xb6942f634e8bf38687ea491fe6f0c8f137d1c745c4ce29c171cd32b0ceba501481605772021-06-10 0:01:5411 days 19 hrs ago0xb37128f79244667c05f89f42ffa4170f6fc42fda IN  0xb28c485a96ed9506df0047fc26e82866a27432d90 BNB0.000918665
0x15cf299f076fee11524df25aa197ad373eb7eae7fa7f0b06fc95f3e93a909ae881578502021-06-09 21:45:3211 days 21 hrs ago0x39b8ef602353213eb4e104fe5eca708361f2e9ef IN  0xb28c485a96ed9506df0047fc26e82866a27432d90 BNB0.000619885
0x6a9da00e90a85eb0035c03f1e9111977ecaefe274ca8dc25aeffe7b31482910981572422021-06-09 21:15:0811 days 22 hrs ago0x596f2d7e4d4bbd1175e64c7b457940d1bb324825 IN  0xb28c485a96ed9506df0047fc26e82866a27432d90 BNB0.00071219
0x214b3b0cc8b9e09c9d5b16b2fac80241dd5dbc7f0544f3784d5072ad415b6aae81572392021-06-09 21:14:5911 days 22 hrs ago0xb034e3e525ade8fa88efe81b293078630aff0394 IN  0xb28c485a96ed9506df0047fc26e82866a27432d90 BNB0.000155915
0xe80e2d019ca444874f39c268259cca7b8dbeb45b3b57ca617e6899bb8448bc4b81571002021-06-09 21:08:0211 days 22 hrs ago0x51391f7c1aa74e38c074f773c18fe00d74a080e4 IN  0xb28c485a96ed9506df0047fc26e82866a27432d90 BNB0.000704435
0x3af262ed0e25a4aefc15eed7c3144c71cfb14d4491071f3749aaacf971d0025281570502021-06-09 21:05:3211 days 22 hrs ago0x4299f1ba54b8aa786ae2e5991aee330dd2c68981 IN  0xb28c485a96ed9506df0047fc26e82866a27432d90 BNB0.00154794
0xe9dcaac511fa84c2e87d3363ecdef0001eb42d297709200766970bcfd42652db81563412021-06-09 20:30:0511 days 23 hrs ago0x83c9a84c777c46acc95c8e6a0dcb6f87d5ab21ee IN  0xb28c485a96ed9506df0047fc26e82866a27432d90 BNB0.00015635
0xf746c79949dd8e5243e198d2f787152926a8001c621e4b0011cef96eb756e0cf81537722021-06-09 18:20:0512 days 1 hr ago0xbfc932b0331619268a97a5304f1a6e23650dfb02 IN  0xb28c485a96ed9506df0047fc26e82866a27432d90 BNB0.00114537
0x0bdc5ab11552e81a6ba3213820327ba203acfb6bda789a513c839519df694af581534022021-06-09 18:01:3512 days 1 hr ago0xc0ad33fbec2cb57aa78de7fb74fd69b75b916eff IN  0xb28c485a96ed9506df0047fc26e82866a27432d90 BNB0.000155915
0xf5680dcc840c69c73aad6790f3810b079dd79961daf9e96fec013a91106954c781519642021-06-09 16:49:2812 days 2 hrs ago0x1cb23a1f0d6f2489e7bad90c9c3ecdc70661e63e IN  0xb28c485a96ed9506df0047fc26e82866a27432d90 BNB0.000690115
0x60c55f49e6033b458763dcdd63069b3d200422907b7b63b756f8b146f9af899f81519552021-06-09 16:49:0112 days 2 hrs ago0x045a41a9d9cb0fc81cfe1e8f486e5c53a3b3ce8b IN  0xb28c485a96ed9506df0047fc26e82866a27432d90 BNB0.001008035
0x80a249df1f1fbf806407a63e3784bdde6c1f13fe3fcebfdcab2333d1714b52df81511032021-06-09 16:05:5612 days 3 hrs ago0xa86739f83c0e35213eac19d195b07b74bdcc720c IN  0xb28c485a96ed9506df0047fc26e82866a27432d90 BNB0.000690115
0xe16738199d625429367f08797d131520f4305232c3dd6ef31e762d2045df717d81491082021-06-09 14:26:0712 days 5 hrs ago0xff77b4f5b15ba42167b6d4f31345b9cece7cd20e IN  0xb28c485a96ed9506df0047fc26e82866a27432d90 BNB0.00075716
0x376288d1bf4344f9ef59afa1c0f77f8ea2957fce77bdbe8ee71692cad9b5c0f681485332021-06-09 13:57:2212 days 5 hrs ago0x13a8a945c9ddfe7e6581140b82f60bc806d8cf23 IN  0xb28c485a96ed9506df0047fc26e82866a27432d90 BNB0.0006276
0x4b4280fba98e8b4c0bca1766b210ba1fb0aa4b2769c6bfc9acd144b9f3829f1981473312021-06-09 12:57:1612 days 6 hrs ago0x90d8b8dbbffe6ce13bd6cc2e09be0cd6bde513b5 IN  0xb28c485a96ed9506df0047fc26e82866a27432d90 BNB0.00061959
0x16b60c98cbd2e1edd5b4043801985400d30263b5377b0d2219a49c51dbf0b31f81472282021-06-09 12:51:4912 days 6 hrs ago0x295bb1b3a3150f362b64a47d990382f2d1d468bd IN  0xb28c485a96ed9506df0047fc26e82866a27432d90 BNB0.0006276
0xb6cd2601f763ba41f6204bd028e5d8ba9a4f0284ba16918883689b19df52ab2281470132021-06-09 12:41:0412 days 6 hrs ago0xef04e9e1956ea56a6bf41ffe14d643a6f0d86702 IN  0xb28c485a96ed9506df0047fc26e82866a27432d90 BNB0.00061959
[ Download CSV Export 
Parent Txn Hash Block From To Value
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
CakeVault

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity Multiple files format)

File 1 of 4: CakeVault.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.6.12;
import "./CakeVault_State.sol";

contract CakeVault is CakeVault_State{
	event Newbie(address user);
	event NewDeposit(address indexed user, uint256 amount);
	event Withdrawn(address indexed user, uint256 amount);
	event RefBonus(address indexed referrer, address indexed referral, uint256 indexed level, uint256 amount);
	event FeePayed(address indexed user, uint256 totalAmount);
	event Reinvestment(address indexed user, uint256 amount);

	constructor(address payable devAddr, address payable SecAddr, address payable markAddrs, address payable projectAddrs,
		address payable partAddr, IBEP20 token_) public {
		require(!isContract(devAddr) && !isContract(SecAddr) && !isContract(partAddr) && !isContract(markAddrs));
		secureAddress = SecAddr;
		devAddress = devAddr;
		projectAdress =  projectAddrs;
		partnerAdress = partAddr;
		marketingAdress = markAddrs;
		token = token_;
		emit Paused(msg.sender);
	}

	modifier checkUser_() {
		uint256 check;
		check = block.timestamp.sub(getlastActionDate(users[msg.sender]));
		require(check > TIME_STEP,'try again later');
		_;
	}

	function checkUser() external view returns (bool){
		uint256 check;
		check = block.timestamp.sub(getlastActionDate(users[msg.sender]));
		if(check > TIME_STEP)
		return true;
	}

	function invest(address payable referrer, uint256 investAmt) external {
		require(investAmt >= INVEST_MIN_AMOUNT, 'insufficient deposit');

		token.transferFrom(msg.sender,address(this),investAmt);

		uint256 investFee = (investAmt.mul(INVEST_FEE)).div(PERCENTS_DIVIDER);

		token.transfer(partnerAdress,(investFee.mul(300)).div(PERCENTS_DIVIDER));
		token.transfer(devAddress,(investFee.mul(300)).div(PERCENTS_DIVIDER));
		token.transfer(marketingAdress,(investFee.mul(200)).div(PERCENTS_DIVIDER));
		token.transfer(projectAdress,(investFee.mul(200)).div(PERCENTS_DIVIDER));
		token.transfer(secureAddress,(investAmt.mul(SECURE_FEE)).div(PERCENTS_DIVIDER));

		emit FeePayed(msg.sender, (investAmt.mul(INVEST_FEE.add(SECURE_FEE))).div(PERCENTS_DIVIDER));

		User storage user = users[msg.sender];

		if (user.referrer == address(0) && users[referrer].depositsLength > 0 && referrer != msg.sender) {
			user.referrer = referrer;
		}

		if (user.referrer != address(0)) {
			address payable upline = user.referrer;
			for(uint256 i = 0; i < REFERRAL_PERCENTS.length; i++) {
				if(upline != address(0)) {
					uint256 amount = (investAmt.mul(REFERRAL_PERCENTS[i])).div(PERCENTS_DIVIDER);
					users[upline].bonus = users[upline].bonus.add(amount);
					if(user.depositsLength == 0)
					users[upline].referrerCount[i] = users[upline].referrerCount[i].add(1);
					emit RefBonus(upline, msg.sender, i, amount);
					upline = users[upline].referrer;
				} else break;
			}
		}

		if (user.depositsLength == 0) {
			user.checkpoint = block.timestamp;
			totalUsers = totalUsers.add(1);
			emit Newbie(msg.sender);
		}

		Deposit memory newDeposit;
		newDeposit.amount = investAmt;
		newDeposit.initAmount = investAmt;
		newDeposit.start = block.timestamp;
		user.deposits[user.depositsLength] = newDeposit;
		user.depositsLength++;

		totalInvested = totalInvested.add(investAmt);
		totalDeposits = totalDeposits.add(1);
		emit NewDeposit(msg.sender, investAmt);
	}

	function withdraw() external whenNotPaused checkUser_ returns(bool) {
		require(isActive(msg.sender), "Dont is User");
		User storage user = users[msg.sender];

		uint256 totalAmount;
		uint256 userPercentRate = getUserholdRate(msg.sender).add(getBonusPoolPercent());

		for(uint256 i = 0; i < user.depositsLength; i++) {
			uint256 dividends;
			Deposit memory deposit = user.deposits[i];

			if(deposit.withdrawn < getMaxprofit(deposit)) {
				dividends = calculateDividents(deposit, userPercentRate, user);

				if(dividends > 0) {
					user.deposits[i].withdrawn = user.deposits[i].withdrawn.add(dividends); /// changing of storage data
					totalAmount = totalAmount.add(dividends);
				}
			}
		}

		uint256 referralBonus = user.bonus;
		if(referralBonus > 0) {
			totalAmount = totalAmount.add(referralBonus);
			delete user.bonus;
		}

		require(totalAmount >= MIN_WITHDRAW, "User has no dividends");

		uint256 contractBalance = getContractBalance();
		if(contractBalance < totalAmount) {
			totalAmount = contractBalance;
		}

		user.checkpoint = block.timestamp;

		uint256 fee = (totalAmount.mul(WITHDRAW_FEE_PERCENT)).div(PERCENTS_DIVIDER);

		uint256 toTransfer = totalAmount.sub(fee);

		totalWithdrawn = totalWithdrawn.add(totalAmount);

		token.transfer(secureAddress,fee);

		token.transfer(msg.sender,toTransfer);


		emit FeePayed(msg.sender, fee);
		emit Withdrawn(msg.sender, totalAmount);
		return true;

	}

	function reinvestment() external whenNotPaused checkUser_ returns(bool) {
		require(isActive(msg.sender), "Dont is User");
		User storage user = users[msg.sender];

		uint256 totalDividends;

		uint256 userPercentRate = getUserholdRate(msg.sender).add(getBonusPoolPercent());

		for(uint256 i = 0; i < user.depositsLength; i++) {
			uint256 dividends;
			Deposit memory deposit = user.deposits[i];

			if(deposit.withdrawn < getMaxprofit(deposit)) {
				dividends = calculateDividents(deposit, userPercentRate, user);

				if(dividends > 0) {
					user.deposits[i].amount = user.deposits[i].amount.add(dividends);
					totalDividends = totalDividends.add(dividends);
				}
			}
		}

		require(totalDividends > 0, "User has no dividends");

		user.reinvested = user.reinvested.add(totalDividends);
		totalReinvested = totalReinvested.add(totalDividends);
		user.lasReinvest = block.timestamp;

		uint256 fee = totalDividends.mul(INVEST_FEE).div(PERCENTS_DIVIDER).div(2);
		token.transfer(devAddress, fee);
		token.transfer(marketingAdress, fee);
		emit FeePayed(msg.sender, fee);
		emit Reinvestment(msg.sender, totalDividends);
		return true;
	}

	function getNextUserAssignment(address userAddress) public view returns (uint256) {
		uint256 checkpoint = getlastActionDate(users[userAddress]);
		if(initDate > checkpoint)
			checkpoint = initDate;
		return checkpoint.add(TIME_STEP);
	}

	function getUserholdRate(address userAddress) public view returns (uint256) {

		if(isActive(userAddress)) {
				uint256 checkpoint = users[userAddress].checkpoint;
				if(initDate > checkpoint)
					checkpoint = initDate;
				uint256 holdProfit = ((block.timestamp.sub(checkpoint)).div(TIME_STEP)).mul(HOLD_PERCENT);
				if(holdProfit > MAX_HOLD_PERCENT)
					holdProfit = MAX_HOLD_PERCENT;
				return holdProfit;
		}
	}

	function getPublicData() external view returns(uint256 totalUsers_,
		uint256 totalInvested_,
		uint256 totalReinvested_,
		uint256 totalWithdrawn_,
		uint256 totalDeposits_,
		uint256 balance_,
		uint256 roidBase,
		uint256 bonusPool,
		uint256 comunityBonus,
		uint256 currentRoi,
		uint256 maxProfit,
		uint256 minDeposit,
		uint256 daysFormdeploy
		) {
		totalUsers_ = totalUsers;
		totalInvested_ = totalInvested;
		totalReinvested_ = totalReinvested;
		totalWithdrawn_ = totalWithdrawn;
		totalDeposits_ = totalDeposits;
		balance_ = getContractBalance();
		roidBase = ROI_BASE;
		bonusPool = getBonusPoolPercent();
		comunityBonus = getComunityBonus();
		currentRoi = ROI_BASE.add(comunityBonus).add(bonusPool);
		maxProfit = MAX_PROFIT;
		minDeposit = INVEST_MIN_AMOUNT;
		daysFormdeploy = (block.timestamp.sub(initDate)).div(TIME_STEP);
	}

	function getUserData(address userAddress) external view returns(uint256 totalWithdrawn_,
		uint256 totalDeposits_,
		uint256 totalBonus_,
		uint256 totalreinvest_,
		uint256 hold_,
		uint256 balance_,
		uint256 nextAssignment_,
		uint256 amountOfDeposits,
		uint256 checkpoint,
		bool isUser_,
		address referrer_,
		uint256[3] memory referrerCount_
	){
		User memory user = users[userAddress];
		totalWithdrawn_ = getUserTotalWithdrawn(userAddress);
		totalDeposits_ = getUserTotalDeposits(userAddress);
		nextAssignment_ = getNextUserAssignment(userAddress);
		balance_ = getUserDividends(userAddress);
		hold_ = getUserholdRate(userAddress);
		totalreinvest_ = user.reinvested;
		totalBonus_ = user.bonus;
		amountOfDeposits = user.depositsLength;
		checkpoint = getlastActionDate(user);
		isUser_ = user.depositsLength > 0;
		referrer_ = user.referrer;
		referrerCount_ = user.referrerCount;

	}

	function getContractBalance() public view returns (uint256) {
		return token.balanceOf(address(this));
	}

	function getUserDividends(address userAddress) internal view returns (uint256) {
		User memory user = users[userAddress];

		uint256 totalDividends;
		uint256 userPercentRate = getUserholdRate(userAddress).add(getBonusPoolPercent());

		for(uint256 i = 0; i < user.depositsLength; i++) {

			Deposit memory deposit = users[userAddress].deposits[i];

			if(deposit.withdrawn < getMaxprofit(deposit)) {
				uint256 dividends = calculateDividents(deposit, userPercentRate, user);
				totalDividends = totalDividends.add(dividends);
			}

		}

		return totalDividends;
	}

	function calculateDividents(Deposit memory deposit, uint256 userPercentRate, User memory user) internal view returns (uint256) {
		uint256 dividends;
		uint256	depositPercentRate = userPercentRate.add(getDepositRoi(deposit));

		uint256 checkDate = getDepsitStartDate(deposit);

		if(checkDate < getlastActionDate(user)) {
			checkDate = getlastActionDate(user);
		}

		dividends = (deposit.amount
		.mul(depositPercentRate.mul(block.timestamp.sub(checkDate))))
		.div((PERCENTS_DIVIDER).mul(TIME_STEP))
		;

		if(deposit.withdrawn.add(dividends) > getMaxprofit(deposit)) {
			dividends = getMaxprofit(deposit).sub(deposit.withdrawn);
		}
		return dividends;

	}

	function isActive(address userAddress) public view returns (bool) {
		User memory user = users[userAddress];

		if (user.depositsLength > 0) {
			if(users[userAddress].deposits[user.depositsLength-1].withdrawn < getMaxprofit(users[userAddress].deposits[user.depositsLength-1])) {
				return true;
			}
		}
	}

	function getUserDepositInfo(address userAddress, uint256 index) external view returns(
		uint256 initAmount_,
		uint256 amount_,
		uint256 withdrawn_,
		uint256 timeStart_,
		uint256 reinvested_,
		uint256 maxProfit
		) {
		User memory user = users[userAddress];
		Deposit memory deposit = users[userAddress].deposits[index];
		initAmount_ = deposit.initAmount;
		amount_ = deposit.amount;
		withdrawn_ = deposit.withdrawn;
		timeStart_= getDepsitStartDate(deposit);
		reinvested_ = user.reinvested;
		maxProfit = getMaxprofit(deposit);
	}


	function getUserTotalDeposits(address userAddress) internal view returns(uint256) {
		User memory user = users[userAddress];
		uint256 amount;
		for(uint256 i = 0; i < user.depositsLength; i++) {
			amount = amount.add(users[userAddress].deposits[i].amount);
		}
		return amount;
	}

	function getUserTotalWithdrawn(address userAddress) internal view returns(uint256) {
		User memory user = users[userAddress];

		uint256 amount;

		for(uint256 i = 0; i < user.depositsLength; i++) {
			amount = amount.add(users[userAddress].deposits[i].withdrawn);
		}
		return amount;
	}

	function getlastActionDate(User memory user) internal view returns(uint256) {
		uint256 checkpoint;
		if(user.checkpoint > user.lasReinvest) {
			checkpoint = user.checkpoint;
		} else {
			checkpoint = user.lasReinvest;
		}

		if(initDate > checkpoint)
			checkpoint = initDate;

		return checkpoint;
	}

	function isContract(address addr) internal view returns (bool) {
		uint256 size;
		assembly { size := extcodesize(addr) }
		return size > 0;
	}

	function getComunityBonus() public view returns(uint256) {
		uint256 delta = (block.timestamp.sub(initDate)).div(TIME_STEP);
		uint256 bonus = delta.mul(COMUNITY_BONUS);
		if(bonus > MAX_COMUNITY_BONUS) {
			bonus = MAX_COMUNITY_BONUS;
		}
		return bonus;
	}

	function getDepositRoi(Deposit memory ndeposit) private view returns(uint256) {
		uint256 delta = (getDepsitStartDate(ndeposit).sub(initDate)).div(TIME_STEP);
		uint256 bonus = delta.mul(COMUNITY_BONUS);
		if(bonus > MAX_COMUNITY_BONUS) {
			bonus = MAX_COMUNITY_BONUS;
		}
		return ROI_BASE.add(bonus);
	}

	function getDepsitStartDate(Deposit memory ndeposit) private view returns(uint256) {
		if(initDate > ndeposit.start) {
			return initDate;
		} else {
			return ndeposit.start;
		}
	}

	function getBonusPoolPercent() public view returns(uint256) {
		uint256 pool;
		pool = (getContractBalance().mul(BONUS_POOL)).div(POOL_DIVIDER);
		if(pool > MAX_BONUS_POOL) {
			pool = MAX_BONUS_POOL;
		}
		return pool;
	}

}

File 2 of 4: CakeVault_State.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.6.12;
import "./SafeMath.sol";
import "./IBEP20.sol";

contract CakeVault_State{
	using SafeMath for uint256;
	IBEP20 public token;
	uint256[3] internal REFERRAL_PERCENTS = [50, 20, 10];
	uint256 constant internal INVEST_MIN_AMOUNT = 250 finney ;
	uint256 constant internal ROI_BASE = 80;
	uint256 constant internal COMUNITY_BONUS = 10;
	uint256 constant internal MAX_COMUNITY_BONUS = 80;
	uint256 constant internal INVEST_FEE = 100;
	uint256 constant internal SECURE_FEE = 20;
	uint256 constant internal MIN_WITHDRAW = 250 finney;
	uint256 constant internal WITHDRAW_FEE_PERCENT = 50;
	uint256 constant internal HOLD_PERCENT = 5;
	uint256 constant internal MAX_HOLD_PERCENT = 60;
	uint256 constant internal BONUS_POOL = 1;
	uint256 constant internal MAX_BONUS_POOL = 80;
	uint256 constant internal POOL_DIVIDER = 200 ether;
	uint256 constant internal MAX_PROFIT = 2000;
	uint256 constant internal PERCENTS_DIVIDER = 1000;
	uint256 constant internal TIME_STEP = 1 days;

	uint256 internal initDate;

	uint256 internal totalUsers;
	uint256 internal totalInvested;
	uint256 internal totalWithdrawn;
	uint256 internal totalDeposits;
	uint256 internal totalReinvested;

	address public partnerAdress;
	
	address public marketingAdress;
	address public projectAdress;
	address public devAddress;
	address public secureAddress;

	struct Deposit {
		uint256 amount;
		uint256 withdrawn;
		uint256 initAmount;
		uint256 start;
	}

	struct User {
		mapping (uint256 => Deposit) deposits;
		uint256 depositsLength;
		uint256 reinvested;
		uint256 bonus;
		uint256 checkpoint;
		uint256 lasReinvest;
		uint256[3] referrerCount;
		address payable referrer;
	}

	mapping (address => User) public users;

	event Paused(address account);
	event Unpaused(address account);

	modifier onlyOwner() {
		require(devAddress == msg.sender, "Ownable: caller is not the owner");
		_;
	}

	modifier whenNotPaused() {
		require(initDate > 0, "Pausable: paused");
		_;
	}

	modifier whenPaused() {
		require(initDate == 0, "Pausable: not paused");
		_;
	}

	function unpause() external whenPaused onlyOwner{
		initDate = block.timestamp;
		emit Unpaused(msg.sender);
	}

	function isPaused() external view returns(bool) {
		return (initDate == 0);
	}

	function getMaxprofit(Deposit memory ndeposit) internal pure returns(uint256) {
		return (ndeposit.initAmount.mul(MAX_PROFIT)).div(PERCENTS_DIVIDER);
	}

}

File 3 of 4: IBEP20.sol
// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.6.12;

interface IBEP20{
    function totalSupply() external view returns (uint);
    function balanceOf(address guy) external view returns (uint);
    function allowance(address src, address guy) external view returns (uint);
    function burn(uint256 amount) external;
    function approve(address guy, uint wad) external returns (bool);
    function transfer(address dst, uint wad) external returns (bool);
    function transferFrom(address src, address dst, uint wad
    ) external returns (bool);
}

File 4 of 4: SafeMath.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.6.12;

/**
 * @dev Wrappers over Solidity's arithmetic operations with added overflow
 * checks.
 *
 * Arithmetic operations in Solidity wrap on overflow. This can easily result
 * in bugs, because programmers usually assume that an overflow raises an
 * error, which is the standard behavior in high level programming languages.
 * `SafeMath` restores this intuition by reverting the transaction when an
 * operation overflows.
 *
 * Using this library instead of the unchecked operations eliminates an entire
 * class of bugs, so it's recommended to use it always.
 */
library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     *
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     *
     * - Multiplication cannot 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-contracts/pull/522
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts with custom message when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

Contract ABI

[{"inputs":[{"internalType":"address payable","name":"devAddr","type":"address"},{"internalType":"address payable","name":"SecAddr","type":"address"},{"internalType":"address payable","name":"markAddrs","type":"address"},{"internalType":"address payable","name":"projectAddrs","type":"address"},{"internalType":"address payable","name":"partAddr","type":"address"},{"internalType":"contract IBEP20","name":"token_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"totalAmount","type":"uint256"}],"name":"FeePayed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"NewDeposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"user","type":"address"}],"name":"Newbie","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"referrer","type":"address"},{"indexed":true,"internalType":"address","name":"referral","type":"address"},{"indexed":true,"internalType":"uint256","name":"level","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"RefBonus","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Reinvestment","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Withdrawn","type":"event"},{"inputs":[],"name":"checkUser","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"devAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBonusPoolPercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getComunityBonus","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getContractBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"}],"name":"getNextUserAssignment","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPublicData","outputs":[{"internalType":"uint256","name":"totalUsers_","type":"uint256"},{"internalType":"uint256","name":"totalInvested_","type":"uint256"},{"internalType":"uint256","name":"totalReinvested_","type":"uint256"},{"internalType":"uint256","name":"totalWithdrawn_","type":"uint256"},{"internalType":"uint256","name":"totalDeposits_","type":"uint256"},{"internalType":"uint256","name":"balance_","type":"uint256"},{"internalType":"uint256","name":"roidBase","type":"uint256"},{"internalType":"uint256","name":"bonusPool","type":"uint256"},{"internalType":"uint256","name":"comunityBonus","type":"uint256"},{"internalType":"uint256","name":"currentRoi","type":"uint256"},{"internalType":"uint256","name":"maxProfit","type":"uint256"},{"internalType":"uint256","name":"minDeposit","type":"uint256"},{"internalType":"uint256","name":"daysFormdeploy","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"}],"name":"getUserData","outputs":[{"internalType":"uint256","name":"totalWithdrawn_","type":"uint256"},{"internalType":"uint256","name":"totalDeposits_","type":"uint256"},{"internalType":"uint256","name":"totalBonus_","type":"uint256"},{"internalType":"uint256","name":"totalreinvest_","type":"uint256"},{"internalType":"uint256","name":"hold_","type":"uint256"},{"internalType":"uint256","name":"balance_","type":"uint256"},{"internalType":"uint256","name":"nextAssignment_","type":"uint256"},{"internalType":"uint256","name":"amountOfDeposits","type":"uint256"},{"internalType":"uint256","name":"checkpoint","type":"uint256"},{"internalType":"bool","name":"isUser_","type":"bool"},{"internalType":"address","name":"referrer_","type":"address"},{"internalType":"uint256[3]","name":"referrerCount_","type":"uint256[3]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getUserDepositInfo","outputs":[{"internalType":"uint256","name":"initAmount_","type":"uint256"},{"internalType":"uint256","name":"amount_","type":"uint256"},{"internalType":"uint256","name":"withdrawn_","type":"uint256"},{"internalType":"uint256","name":"timeStart_","type":"uint256"},{"internalType":"uint256","name":"reinvested_","type":"uint256"},{"internalType":"uint256","name":"maxProfit","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"}],"name":"getUserholdRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"referrer","type":"address"},{"internalType":"uint256","name":"investAmt","type":"uint256"}],"name":"invest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"}],"name":"isActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isPaused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingAdress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"partnerAdress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"projectAdress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"reinvestment","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"secureAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"contract IBEP20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"users","outputs":[{"internalType":"uint256","name":"depositsLength","type":"uint256"},{"internalType":"uint256","name":"reinvested","type":"uint256"},{"internalType":"uint256","name":"bonus","type":"uint256"},{"internalType":"uint256","name":"checkpoint","type":"uint256"},{"internalType":"uint256","name":"lasReinvest","type":"uint256"},{"internalType":"address payable","name":"referrer","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]

60806040526040518060600160405280603260ff168152602001601460ff168152602001600a60ff1681525060019060036200003d92919062000312565b503480156200004b57600080fd5b506040516200439238038062004392833981810160405260c08110156200007157600080fd5b81019080805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190505050620000c586620002ff60201b60201c565b158015620000e15750620000df85620002ff60201b60201c565b155b8015620000fc5750620000fa82620002ff60201b60201c565b155b80156200011757506200011584620002ff60201b60201c565b155b6200012157600080fd5b84600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555085600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15050505050506200037b565b600080823b905060008111915050919050565b826003810192821562000349579160200282015b8281111562000348578251829060ff1690559160200191906001019062000326565b5b5090506200035891906200035c565b5090565b5b80821115620003775760008160009055506001016200035d565b5090565b614007806200038b6000396000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c8063b5eef3c3116100b8578063c15625471161007c578063c15625471461050b578063ca6d919c1461052b578063d7bd480a1461055f578063fc0c546a146105b7578063ff6f5dd7146105eb578063ffc9896b1461064357610142565b8063b5eef3c314610374578063b83fff0914610392578063b9b8c246146103c6578063bf7ce74214610414578063c0806b031461048657610142565b80636ee16c5b1161010a5780636ee16c5b1461020d5780636f9fb98a1461022b5780639f8a13d714610249578063a87430ba146102a3578063b187bd2614610334578063b5e86bea1461035457610142565b80633ad10ef6146101475780633ccfd60b1461017b5780633f4ba83a1461019b578063520a5935146101a55780635a759d65146101d9575b600080fd5b61014f610728565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61018361074e565b60405180821515815260200191505060405180910390f35b6101a3610fc0565b005b6101ad611151565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101e1611177565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61021561119d565b6040518082815260200191505060405180910390f35b6102336111fa565b6040518082815260200191505060405180910390f35b61028b6004803603602081101561025f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112c4565b60405180821515815260200191505060405180910390f35b6102e5600480360360208110156102b957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114ff565b604051808781526020018681526020018581526020018481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff168152602001965050505050505060405180910390f35b61033c61155b565b60405180821515815260200191505060405180910390f35b61035c611567565b60405180821515815260200191505060405180910390f35b61037c611dc3565b6040518082815260200191505060405180910390f35b61039a611e13565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610412600480360360408110156103dc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611e39565b005b61041c612bf4565b604051808e81526020018d81526020018c81526020018b81526020018a81526020018981526020018881526020018781526020018681526020018581526020018481526020018381526020018281526020019d505050505050505050505050505060405180910390f35b6104d26004803603604081101561049c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612cb6565b60405180878152602001868152602001858152602001848152602001838152602001828152602001965050505050505060405180910390f35b610513612eae565b60405180821515815260200191505060405180910390f35b610533612ffe565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6105a16004803603602081101561057557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613024565b6040518082815260200191505060405180910390f35b6105bf6130e8565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61062d6004803603602081101561060157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061310c565b6040518082815260200191505060405180910390f35b6106856004803603602081101561065957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061325e565b604051808d81526020018c81526020018b81526020018a815260200189815260200188815260200187815260200186815260200185815260200184151581526020018373ffffffffffffffffffffffffffffffffffffffff16815260200182600360200280838360005b8381101561070a5780820151818401526020810190506106ef565b505050509050019c5050505050505050505050505060405180910390f35b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600454116107c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b60006108fa6108eb600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060e0016040529081600182015481526020016002820154815260200160038201548152602001600482015481526020016005820154815260200160068201600380602002604051908101604052809291908260038015610887576020028201915b815481526020019060010190808311610873575b505050505081526020016009820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681525050613417565b4261345790919063ffffffff16565b9050620151808111610974576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f74727920616761696e206c61746572000000000000000000000000000000000081525060200191505060405180910390fd5b61097d336112c4565b6109ef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f446f6e742069732055736572000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600080610a57610a40611dc3565b610a4933613024565b6134a190919063ffffffff16565b905060005b8360010154811015610c2b576000610a72613f0d565b8560000160008481526020019081526020016000206040518060800160405290816000820154815260200160018201548152602001600282015481526020016003820154815250509050610ac581613529565b81602001511015610c1c57610bb38185886040518060e0016040529081600182015481526020016002820154815260200160038201548152602001600482015481526020016005820154815260200160068201600380602002604051908101604052809291908260038015610b4f576020028201915b815481526020019060010190808311610b3b575b505050505081526020016009820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152505061355f565b91506000821115610c1b57610be982876000016000868152602001908152602001600020600101546134a190919063ffffffff16565b86600001600085815260200190815260200160002060010181905550610c1882866134a190919063ffffffff16565b94505b5b50508080600101915050610a5c565b506000836003015490506000811115610c5c57610c5181846134a190919063ffffffff16565b925083600301600090555b6703782dace9d90000831015610cda576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f5573657220686173206e6f206469766964656e6473000000000000000000000081525060200191505060405180910390fd5b6000610ce46111fa565b905083811015610cf2578093505b4285600401819055506000610d256103e8610d1760328861366590919063ffffffff16565b6136eb90919063ffffffff16565b90506000610d3c828761345790919063ffffffff16565b9050610d53866007546134a190919063ffffffff16565b60078190555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610e0c57600080fd5b505af1158015610e20573d6000803e3d6000fd5b505050506040513d6020811015610e3657600080fd5b81019080805190602001909291905050505060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610ed957600080fd5b505af1158015610eed573d6000803e3d6000fd5b505050506040513d6020811015610f0357600080fd5b8101908080519060200190929190505050503373ffffffffffffffffffffffffffffffffffffffff167f2899dc8c12def1caa9accb64257cf2fd9f960f21bb27a560a757eae3c2ec43c1836040518082815260200191505060405180910390a23373ffffffffffffffffffffffffffffffffffffffff167f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5876040518082815260200191505060405180910390a260019850505050505050505090565b600060045414611038576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f5061757361626c653a206e6f742070617573656400000000000000000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff16600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b426004819055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806111ca620151806111bc6004544261345790919063ffffffff16565b6136eb90919063ffffffff16565b905060006111e2600a8361366590919063ffffffff16565b905060508111156111f257605090505b809250505090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561128457600080fd5b505afa158015611298573d6000803e3d6000fd5b505050506040513d60208110156112ae57600080fd5b8101908080519060200190929190505050905090565b60006112ce613f35565b600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060e0016040529081600182015481526020016002820154815260200160038201548152602001600482015481526020016005820154815260200160068201600380602002604051908101604052809291908260038015611386576020028201915b815481526020019060010190808311611372575b505050505081526020016009820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152505090506000816000015111156114f857611489600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001600060018460000151038152602001908152602001600020604051806080016040529081600082015481526020016001820154815260200160028201548152602001600382015481525050613529565b600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000016000600184600001510381526020019081526020016000206001015410156114f75760019150506114fa565b5b505b919050565b600f6020528060005260406000206000915090508060010154908060020154908060030154908060040154908060050154908060090160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905086565b60008060045414905090565b600080600454116115e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b6000611713611704600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060e00160405290816001820154815260200160028201548152602001600382015481526020016004820154815260200160058201548152602001600682016003806020026040519081016040528092919082600380156116a0576020028201915b81548152602001906001019080831161168c575b505050505081526020016009820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681525050613417565b4261345790919063ffffffff16565b905062015180811161178d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f74727920616761696e206c61746572000000000000000000000000000000000081525060200191505060405180910390fd5b611796336112c4565b611808576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f446f6e742069732055736572000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600080611870611859611dc3565b61186233613024565b6134a190919063ffffffff16565b905060005b8360010154811015611a4457600061188b613f0d565b85600001600084815260200190815260200160002060405180608001604052908160008201548152602001600182015481526020016002820154815260200160038201548152505090506118de81613529565b81602001511015611a35576119cc8185886040518060e0016040529081600182015481526020016002820154815260200160038201548152602001600482015481526020016005820154815260200160068201600380602002604051908101604052809291908260038015611968576020028201915b815481526020019060010190808311611954575b505050505081526020016009820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152505061355f565b91506000821115611a3457611a0282876000016000868152602001908152602001600020600001546134a190919063ffffffff16565b86600001600085815260200190815260200160002060000181905550611a3182866134a190919063ffffffff16565b94505b5b50508080600101915050611875565b5060008211611abb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f5573657220686173206e6f206469766964656e6473000000000000000000000081525060200191505060405180910390fd5b611ad28284600201546134a190919063ffffffff16565b8360020181905550611aef826009546134a190919063ffffffff16565b6009819055504283600501819055506000611b3b6002611b2d6103e8611b1f60648861366590919063ffffffff16565b6136eb90919063ffffffff16565b6136eb90919063ffffffff16565b905060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015611bf057600080fd5b505af1158015611c04573d6000803e3d6000fd5b505050506040513d6020811015611c1a57600080fd5b81019080805190602001909291905050505060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015611cdf57600080fd5b505af1158015611cf3573d6000803e3d6000fd5b505050506040513d6020811015611d0957600080fd5b8101908080519060200190929190505050503373ffffffffffffffffffffffffffffffffffffffff167f2899dc8c12def1caa9accb64257cf2fd9f960f21bb27a560a757eae3c2ec43c1826040518082815260200191505060405180910390a23373ffffffffffffffffffffffffffffffffffffffff167ff218ee5b0fa9dbbcd9731866559aa37dc58548988accdbbb5729cb5beced6f03846040518082815260200191505060405180910390a260019550505050505090565b600080611dfc680ad78ebc5ac6200000611dee6001611de06111fa565b61366590919063ffffffff16565b6136eb90919063ffffffff16565b90506050811115611e0c57605090505b8091505090565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6703782dace9d90000811015611eb7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f696e73756666696369656e74206465706f73697400000000000000000000000081525060200191505060405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015611f6657600080fd5b505af1158015611f7a573d6000803e3d6000fd5b505050506040513d6020811015611f9057600080fd5b8101908080519060200190929190505050506000611fcc6103e8611fbe60648561366590919063ffffffff16565b6136eb90919063ffffffff16565b905060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166120566103e861204861012c8761366590919063ffffffff16565b6136eb90919063ffffffff16565b6040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156120a957600080fd5b505af11580156120bd573d6000803e3d6000fd5b505050506040513d60208110156120d357600080fd5b81019080805190602001909291905050505060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661216d6103e861215f61012c8761366590919063ffffffff16565b6136eb90919063ffffffff16565b6040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156121c057600080fd5b505af11580156121d4573d6000803e3d6000fd5b505050506040513d60208110156121ea57600080fd5b81019080805190602001909291905050505060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166122836103e861227560c88761366590919063ffffffff16565b6136eb90919063ffffffff16565b6040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156122d657600080fd5b505af11580156122ea573d6000803e3d6000fd5b505050506040513d602081101561230057600080fd5b81019080805190602001909291905050505060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166123996103e861238b60c88761366590919063ffffffff16565b6136eb90919063ffffffff16565b6040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156123ec57600080fd5b505af1158015612400573d6000803e3d6000fd5b505050506040513d602081101561241657600080fd5b81019080805190602001909291905050505060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166124af6103e86124a160148861366590919063ffffffff16565b6136eb90919063ffffffff16565b6040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561250257600080fd5b505af1158015612516573d6000803e3d6000fd5b505050506040513d602081101561252c57600080fd5b8101908080519060200190929190505050503373ffffffffffffffffffffffffffffffffffffffff167f2899dc8c12def1caa9accb64257cf2fd9f960f21bb27a560a757eae3c2ec43c16125b16103e86125a3612594601460646134a190919063ffffffff16565b8761366590919063ffffffff16565b6136eb90919063ffffffff16565b6040518082815260200191505060405180910390a26000600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600073ffffffffffffffffffffffffffffffffffffffff168160090160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480156126ab57506000600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154115b80156126e357503373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561272c57838160090160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b600073ffffffffffffffffffffffffffffffffffffffff168160090160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612a695760008160090160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060005b6003811015612a6657600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614612a545760006128246103e86128166001856003811061280557fe5b01548961366590919063ffffffff16565b6136eb90919063ffffffff16565b905061287b81600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301546134a190919063ffffffff16565b600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030181905550600084600101541415612983576129306001600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600601846003811061292057fe5b01546134a190919063ffffffff16565b600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600601836003811061297d57fe5b01819055505b813373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fd41f7e766eebcc7ff42b11ac8691bdf864db4afc0c55e71d629d54edce460d98846040518082815260200191505060405180910390a4600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060090160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16925050612a59565b612a66565b80806001019150506127b0565b50505b600081600101541415612ae957428160040181905550612a9560016005546134a190919063ffffffff16565b6005819055507f9fd565cd14c3c391679eb0cad12a14dcf7534e9d3462bcb9b67a098a9bbbc24a33604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b612af1613f0d565b8381600001818152505083816040018181525050428160600181815250508082600001600084600101548152602001908152602001600020600082015181600001556020820151816001015560408201518160020155606082015181600301559050508160010160008154809291906001019190505550612b7d846006546134a190919063ffffffff16565b600681905550612b9960016008546134a190919063ffffffff16565b6008819055503373ffffffffffffffffffffffffffffffffffffffff167f2cb77763bc1e8490c1a904905c4d74b4269919aca114464f4bb4d911e60de364856040518082815260200191505060405180910390a25050505050565b60008060008060008060008060008060008060006005549c506006549b506009549a5060075499506008549850612c296111fa565b975060509650612c37611dc3565b9550612c4161119d565b9450612c6986612c5b8760506134a190919063ffffffff16565b6134a190919063ffffffff16565b93506107d092506703782dace9d900009150612ca562015180612c976004544261345790919063ffffffff16565b6136eb90919063ffffffff16565b9050909192939495969798999a9b9c565b600080600080600080612cc7613f35565b600f60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060e0016040529081600182015481526020016002820154815260200160038201548152602001600482015481526020016005820154815260200160068201600380602002604051908101604052809291908260038015612d7f576020028201915b815481526020019060010190808311612d6b575b505050505081526020016009820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250509050612de8613f0d565b600f60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008a81526020019081526020016000206040518060800160405290816000820154815260200160018201548152602001600282015481526020016003820154815250509050806040015197508060000151965080602001519550612e8e81613735565b945081602001519350612ea081613529565b925050509295509295509295565b600080612fe2612fd3600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060e0016040529081600182015481526020016002820154815260200160038201548152602001600482015481526020016005820154815260200160068201600380602002604051908101604052809291908260038015612f6f576020028201915b815481526020019060010190808311612f5b575b505050505081526020016009820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681525050613417565b4261345790919063ffffffff16565b905062015180811115612ff9576001915050612ffb565b505b90565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061302f826112c4565b156130e2576000600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040154905080600454111561308b5760045490505b60006130c860056130ba620151806130ac864261345790919063ffffffff16565b6136eb90919063ffffffff16565b61366590919063ffffffff16565b9050603c8111156130d857603c90505b80925050506130e3565b5b919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008061322e600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060e00160405290816001820154815260200160028201548152602001600382015481526020016004820154815260200160058201548152602001600682016003806020026040519081016040528092919082600380156131ca576020028201915b8154815260200190600101908083116131b6575b505050505081526020016009820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681525050613417565b90508060045411156132405760045490505b61325662015180826134a190919063ffffffff16565b915050919050565b6000806000806000806000806000806000613277613f8e565b61327f613f35565b600f60008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060e0016040529081600182015481526020016002820154815260200160038201548152602001600482015481526020016005820154815260200160068201600380602002604051908101604052809291908260038015613337576020028201915b815481526020019060010190808311613323575b505050505081526020016009820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152505090506133a18e61375c565b9c506133ac8e613916565b9b506133b78e61310c565b96506133c28e613ad0565b97506133cd8e613024565b98508060200151995080604001519a50806000015195506133ed81613417565b9450600081600001511193508060c0015192508060a0015191505091939597999b5091939597999b565b600080826080015183606001511115613436578260600151905061343e565b826080015190505b80600454111561344e5760045490505b80915050919050565b600061349983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613d0d565b905092915050565b60008082840190508381101561351f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60006135586103e861354a6107d0856040015161366590919063ffffffff16565b6136eb90919063ffffffff16565b9050919050565b600080600061357f61357087613dcd565b866134a190919063ffffffff16565b9050600061358c87613735565b905061359785613417565b8110156135aa576135a785613417565b90505b61360e6135c5620151806103e861366590919063ffffffff16565b6136006135ed6135de854261345790919063ffffffff16565b8661366590919063ffffffff16565b8a6000015161366590919063ffffffff16565b6136eb90919063ffffffff16565b925061361987613529565b6136308489602001516134a190919063ffffffff16565b111561365857613655876020015161364789613529565b61345790919063ffffffff16565b92505b8293505050509392505050565b60008083141561367857600090506136e5565b600082840290508284828161368957fe5b04146136e0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180613fb16021913960400191505060405180910390fd5b809150505b92915050565b600061372d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613e47565b905092915050565b60008160600151600454111561374f576004549050613757565b816060015190505b919050565b6000613766613f35565b600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060e001604052908160018201548152602001600282015481526020016003820154815260200160048201548152602001600582015481526020016006820160038060200260405190810160405280929190826003801561381e576020028201915b81548152602001906001019080831161380a575b505050505081526020016009820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250509050600080600090505b826000015181101561390b576138fc600f60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001600083815260200190815260200160002060010154836134a190919063ffffffff16565b91508080600101915050613887565b508092505050919050565b6000613920613f35565b600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060e00160405290816001820154815260200160028201548152602001600382015481526020016004820154815260200160058201548152602001600682016003806020026040519081016040528092919082600380156139d8576020028201915b8154815260200190600101908083116139c4575b505050505081526020016009820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250509050600080600090505b8260000151811015613ac557613ab6600f60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001600083815260200190815260200160002060000154836134a190919063ffffffff16565b91508080600101915050613a41565b508092505050919050565b6000613ada613f35565b600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060e0016040529081600182015481526020016002820154815260200160038201548152602001600482015481526020016005820154815260200160068201600380602002604051908101604052809291908260038015613b92576020028201915b815481526020019060010190808311613b7e575b505050505081526020016009820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250509050600080613c18613c01611dc3565b613c0a87613024565b6134a190919063ffffffff16565b905060005b8360000151811015613d0157613c31613f0d565b600f60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008381526020019081526020016000206040518060800160405290816000820154815260200160018201548152602001600282015481526020016003820154815250509050613cc281613529565b81602001511015613cf3576000613cda82858861355f565b9050613cef81866134a190919063ffffffff16565b9450505b508080600101915050613c1d565b50819350505050919050565b6000838311158290613dba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613d7f578082015181840152602081019050613d64565b50505050905090810190601f168015613dac5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600080613e0262015180613df4600454613de687613735565b61345790919063ffffffff16565b6136eb90919063ffffffff16565b90506000613e1a600a8361366590919063ffffffff16565b90506050811115613e2a57605090505b613e3e8160506134a190919063ffffffff16565b92505050919050565b60008083118290613ef3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613eb8578082015181840152602081019050613e9d565b50505050905090810190601f168015613ee55780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581613eff57fe5b049050809150509392505050565b6040518060800160405280600081526020016000815260200160008152602001600081525090565b6040518060e001604052806000815260200160008152602001600081526020016000815260200160008152602001613f6b613f8e565b8152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b604051806060016040528060039060208202803683378082019150509050509056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a264697066735822122074ff45c761600b2f3e0d100aaedd170f62fcb497c982cb7c1b8f550e0249abbc64736f6c634300060c003300000000000000000000000009f46b627a9853a84caa380006f7d97d7316c1840000000000000000000000001ce67f0473bf157b7a2cb516844a8df8e24878e70000000000000000000000001963ce68e562d41f7ddd3696a607237b0d987239000000000000000000000000195b7d3fba430f557f9d2fe224c65ee24e31f4850000000000000000000000008156b0b62bb9cde966b90cf0a280caa060079abf0000000000000000000000000e09fabb73bd3ade0a17ecc321fd13a19e81ce82

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

00000000000000000000000009f46b627a9853a84caa380006f7d97d7316c1840000000000000000000000001ce67f0473bf157b7a2cb516844a8df8e24878e70000000000000000000000001963ce68e562d41f7ddd3696a607237b0d987239000000000000000000000000195b7d3fba430f557f9d2fe224c65ee24e31f4850000000000000000000000008156b0b62bb9cde966b90cf0a280caa060079abf0000000000000000000000000e09fabb73bd3ade0a17ecc321fd13a19e81ce82

-----Encoded View---------------
6 Constructor Arguments found :
Arg [0] : 00000000000000000000000009f46b627a9853a84caa380006f7d97d7316c184
Arg [1] : 0000000000000000000000001ce67f0473bf157b7a2cb516844a8df8e24878e7
Arg [2] : 0000000000000000000000001963ce68e562d41f7ddd3696a607237b0d987239
Arg [3] : 000000000000000000000000195b7d3fba430f557f9d2fe224c65ee24e31f485
Arg [4] : 0000000000000000000000008156b0b62bb9cde966b90cf0a280caa060079abf
Arg [5] : 0000000000000000000000000e09fabb73bd3ade0a17ecc321fd13a19e81ce82


Deployed ByteCode Sourcemap

90:12400:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1315:25:1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;3285:1430:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;2082:111:1;;;:::i;:::-;;1251:30;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;1343:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;11510:258:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8284:105;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9627:308;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;1701:38:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2196:78;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;4718:1145:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;12265:222;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1284:28:1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;1321:1961:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6531:848;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9938:539;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1140:178;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;1218:28:1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;6107:421:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;162:19:1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;5866:238:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7382:899;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1315:25:1;;;;;;;;;;;;;:::o;3285:1430:0:-;3347:4;1964:1:1;1953:8;;:12;1945:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;998:13:0::1;1023:57;1043:36;1061:5;:17;1067:10;1061:17;;;;;;;;;;;;;;;1043:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;:17;:36::i;:::-;1023:15;:19;;:57;;;;:::i;:::-;1015:65;;1013:6:1;1092:5:0;:17;1084:44;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;3365:20:::2;3374:10;3365:8;:20::i;:::-;3357:45;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;3406:17;3426:5;:17;3432:10;3426:17;;;;;;;;;;;;;;;3406:37;;3448:19;3471:23:::0;3497:54:::2;3529:21;:19;:21::i;:::-;3497:27;3513:10;3497:15;:27::i;:::-;:31;;:54;;;;:::i;:::-;3471:80;;3560:9;3556:431;3579:4;:19;;;3575:1;:23;3556:431;;;3610:17;3632:22;;:::i;:::-;3657:4;:13;;:16;3671:1;3657:16;;;;;;;;;;;3632:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;3702:21;3715:7;3702:12;:21::i;:::-;3682:7;:17;;;:41;3679:304;;;3743:50;3762:7;3771:15;3788:4;3743:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;:18;:50::i;:::-;3731:62;;3815:1;3803:9;:13;3800:178;;;3854:41;3885:9;3854:4;:13;;:16;3868:1;3854:16;;;;;;;;;;;:26;;;:30;;:41;;;;:::i;:::-;3825:4;:13;;:16;3839:1;3825:16;;;;;;;;;;;:26;;:70;;;;3945:26;3961:9;3945:11;:15;;:26;;;;:::i;:::-;3931:40;;3800:178;3679:304;3556:431;;3600:3;;;;;;;3556:431;;;;3991:21;4015:4;:10;;;3991:34;;4048:1;4032:13;:17;4029:98;;;4070:30;4086:13;4070:11;:15;;:30;;;;:::i;:::-;4056:44;;4112:4;:10;;4105:17;;;4029:98;571:10:1;4139:11:0;:27;;4131:61;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;4197:23;4223:20;:18;:20::i;:::-;4197:46;;4268:11;4250:15;:29;4247:73;;;4300:15;4286:29;;4247:73;4342:15;4324:4;:15;;:33;;;;4362:11;4376:61;968:4:1;4377:37:0;633:2:1;4377:11:0;:15;;:37;;;;:::i;:::-;4376:43;;:61;;;;:::i;:::-;4362:75;;4442:18;4463:20;4479:3;4463:11;:15;;:20;;;;:::i;:::-;4442:41;;4505:31;4524:11;4505:14;;:18;;:31;;;;:::i;:::-;4488:14;:48;;;;4541:5;::::0;::::2;;;;;;;;:14;;;4556:13;;;;;;;;;;;4570:3;4541:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;4579:5;::::0;::::2;;;;;;;;:14;;;4594:10;4605;4579:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;4636:10;4627:25;;;4648:3;4627:25;;;;;;;;;;;;;;;;;;4671:10;4661:34;;;4683:11;4661:34;;;;;;;;;;;;;;;;;;4706:4;4699:11;;;;;;;;;1990:1:1::1;3285:1430:0::0;:::o;2082:111:1:-;2044:1;2032:8;;:13;2024:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1857:10:::1;1843:24;;:10;;;;;;;;;;;:24;;;1835:69;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;2145:15:::2;2134:8;:26;;;;2169:20;2178:10;2169:20;;;;;;;;;;;;;;;;;;;;2082:111::o:0;1251:30::-;;;;;;;;;;;;;:::o;1343:28::-;;;;;;;;;;;;;:::o;11510:258:0:-;11558:7;11571:13;11587:46;1013:6:1;11588:29:0;11608:8;;11588:15;:19;;:29;;;;:::i;:::-;11587:35;;:46;;;;:::i;:::-;11571:62;;11637:13;11653:25;384:2:1;11653:5:0;:9;;:25;;;;:::i;:::-;11637:41;;436:2:1;11685:5:0;:26;11682:67;;;436:2:1;11718:26:0;;11682:67;11759:5;11752:12;;;;11510:258;:::o;8284:105::-;8335:7;8355:5;;;;;;;;;;;:15;;;8379:4;8355:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8348:37;;8284:105;:::o;9627:308::-;9687:4;9697:16;;:::i;:::-;9716:5;:18;9722:11;9716:18;;;;;;;;;;;;;;;9697:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9765:1;9743:4;:19;;;:23;9739:193;;;9839:64;9852:5;:18;9858:11;9852:18;;;;;;;;;;;;;;;:27;;:50;9900:1;9880:4;:19;;;:21;9852:50;;;;;;;;;;;9839:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:12;:64::i;:::-;9776:5;:18;9782:11;9776:18;;;;;;;;;;;;;;;:27;;:50;9824:1;9804:4;:19;;;:21;9776:50;;;;;;;;;;;:60;;;:127;9773:155;;;9918:4;9911:11;;;;;9773:155;9739:193;9627:308;;;;;:::o;1701:38:1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2196:78::-;2238:4;2268:1;2256:8;;:13;2248:22;;2196:78;:::o;4718:1145:0:-;4784:4;1964:1:1;1953:8;;:12;1945:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;998:13:0::1;1023:57;1043:36;1061:5;:17;1067:10;1061:17;;;;;;;;;;;;;;;1043:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;:17;:36::i;:::-;1023:15;:19;;:57;;;;:::i;:::-;1015:65;;1013:6:1;1092:5:0;:17;1084:44;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;4802:20:::2;4811:10;4802:8;:20::i;:::-;4794:45;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;4843:17;4863:5;:17;4869:10;4863:17;;;;;;;;;;;;;;;4843:37;;4885:22;4912:23:::0;4938:54:::2;4970:21;:19;:21::i;:::-;4938:27;4954:10;4938:15;:27::i;:::-;:31;;:54;;;;:::i;:::-;4912:80;;5001:9;4997:402;5020:4;:19;;;5016:1;:23;4997:402;;;5051:17;5073:22;;:::i;:::-;5098:4;:13;;:16;5112:1;5098:16;;;;;;;;;;;5073:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;5143:21;5156:7;5143:12;:21::i;:::-;5123:7;:17;;;:41;5120:275;;;5184:50;5203:7;5212:15;5229:4;5184:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;:18;:50::i;:::-;5172:62;;5256:1;5244:9;:13;5241:149;;;5292:38;5320:9;5292:4;:13;;:16;5306:1;5292:16;;;;;;;;;;;:23;;;:27;;:38;;;;:::i;:::-;5266:4;:13;;:16;5280:1;5266:16;;;;;;;;;;;:23;;:64;;;;5354:29;5373:9;5354:14;:18;;:29;;;;:::i;:::-;5337:46;;5241:149;5120:275;4997:402;;5041:3;;;;;;;4997:402;;;;5428:1;5411:14;:18;5403:52;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;5478:35;5498:14;5478:4;:15;;;:19;;:35;;;;:::i;:::-;5460:4;:15;;:53;;;;5535:35;5555:14;5535:15;;:19;;:35;;;;:::i;:::-;5517:15;:53;;;;5593:15;5574:4;:16;;:34;;;;5613:11;5627:59;5684:1;5627:52;968:4:1;5627:30:0;480:3:1;5627:14:0;:18;;:30;;;;:::i;:::-;:34;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;5613:73;;5690:5;::::0;::::2;;;;;;;;:14;;;5705:10;;;;;;;;;;;5717:3;5690:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;5725:5;::::0;::::2;;;;;;;;:14;;;5740:15;;;;;;;;;;;5757:3;5725:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;5779:10;5770:25;;;5791:3;5770:25;;;;;;;;;;;;;;;;;;5817:10;5804:40;;;5829:14;5804:40;;;;;;;;;;;;;;;;;;5855:4;5848:11;;;;;;1990:1:1::1;4718:1145:0::0;:::o;12265:222::-;12316:7;12329:12;12352:56;865:9:1;12353:36:0;772:1:1;12353:20:0;:18;:20::i;:::-;:24;;:36;;;;:::i;:::-;12352:42;;:56;;;;:::i;:::-;12345:63;;819:2:1;12415:4:0;:21;12412:57;;;819:2:1;12443:21:0;;12412:57;12479:4;12472:11;;;12265:222;:::o;1284:28:1:-;;;;;;;;;;;;;:::o;1321:1961:0:-;285:10:1;1403:9:0;:30;;1395:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1463:5;;;;;;;;;;:18;;;1482:10;1501:4;1507:9;1463:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1522:17;1542:49;968:4:1;1543:25:0;480:3:1;1543:9:0;:13;;:25;;;;:::i;:::-;1542:31;;:49;;;;:::i;:::-;1522:69;;1596:5;;;;;;;;;;:14;;;1611:13;;;;;;;;;;;1625:42;968:4:1;1626:18:0;1640:3;1626:9;:13;;:18;;;;:::i;:::-;1625:24;;:42;;;;:::i;:::-;1596:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1672:5;;;;;;;;;;:14;;;1687:10;;;;;;;;;;;1698:42;968:4:1;1699:18:0;1713:3;1699:9;:13;;:18;;;;:::i;:::-;1698:24;;:42;;;;:::i;:::-;1672:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1745:5;;;;;;;;;;:14;;;1760:15;;;;;;;;;;;1776:42;968:4:1;1777:18:0;1791:3;1777:9;:13;;:18;;;;:::i;:::-;1776:24;;:42;;;;:::i;:::-;1745:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1823:5;;;;;;;;;;:14;;;1838:13;;;;;;;;;;;1852:42;968:4:1;1853:18:0;1867:3;1853:9;:13;;:18;;;;:::i;:::-;1852:24;;:42;;;;:::i;:::-;1823:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1899:5;;;;;;;;;;:14;;;1914:13;;;;;;;;;;;1928:49;968:4:1;1929:25:0;525:2:1;1929:9:0;:13;;:25;;;;:::i;:::-;1928:31;;:49;;;;:::i;:::-;1899:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1997:10;1988:87;;;2009:65;968:4:1;2010:41:0;2024:26;525:2:1;480:3;2024:14:0;;:26;;;;:::i;:::-;2010:9;:13;;:41;;;;:::i;:::-;2009:47;;:65;;;;:::i;:::-;1988:87;;;;;;;;;;;;;;;;;;2080:17;2100:5;:17;2106:10;2100:17;;;;;;;;;;;;;;;2080:37;;2151:1;2126:27;;:4;:13;;;;;;;;;;;;:27;;;:65;;;;;2190:1;2157:5;:15;2163:8;2157:15;;;;;;;;;;;;;;;:30;;;:34;2126:65;:91;;;;;2207:10;2195:22;;:8;:22;;;;2126:91;2122:131;;;2240:8;2224:4;:13;;;:24;;;;;;;;;;;;;;;;;;2122:131;2286:1;2261:27;;:4;:13;;;;;;;;;;;;:27;;;2257:537;;2295:22;2320:4;:13;;;;;;;;;;;;2295:38;;2342:9;2338:452;2361:24;2357:1;:28;2338:452;;;2419:1;2401:20;;:6;:20;;;2398:386;;2430:14;2447:59;968:4:1;2448:35:0;2462:17;2480:1;2462:20;;;;;;;;;2448:9;:13;;:35;;;;:::i;:::-;2447:41;;:59;;;;:::i;:::-;2430:76;;2535:31;2559:6;2535:5;:13;2541:6;2535:13;;;;;;;;;;;;;;;:19;;;:23;;:31;;;;:::i;:::-;2513:5;:13;2519:6;2513:13;;;;;;;;;;;;;;;:19;;:53;;;;2599:1;2576:4;:19;;;:24;2573:104;;;2640:37;2675:1;2640:5;:13;2646:6;2640:13;;;;;;;;;;;;;;;:27;;2668:1;2640:30;;;;;;;;;:34;;:37;;;;:::i;:::-;2607:5;:13;2613:6;2607:13;;;;;;;;;;;;;;;:27;;2635:1;2607:30;;;;;;;;:70;;;;2573:104;2718:1;2706:10;2689:39;;2698:6;2689:39;;;2721:6;2689:39;;;;;;;;;;;;;;;;;;2744:5;:13;2750:6;2744:13;;;;;;;;;;;;;;;:22;;;;;;;;;;;;2735:31;;2398:386;;;;2779:5;;2398:386;2387:3;;;;;;;2338:452;;;;2257:537;;2825:1;2802:4;:19;;;:24;2798:136;;;2851:15;2833:4;:15;;:33;;;;2884:17;2899:1;2884:10;;:14;;:17;;;;:::i;:::-;2871:10;:30;;;;2911:18;2918:10;2911:18;;;;;;;;;;;;;;;;;;;;2798:136;2938:25;;:::i;:::-;2987:9;2967:10;:17;;:29;;;;;3024:9;3000:10;:21;;:33;;;;;3056:15;3037:10;:16;;:34;;;;;3112:10;3075:4;:13;;:34;3089:4;:19;;;3075:34;;;;;;;;;;;:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3126:4;:19;;;:21;;;;;;;;;;;;;3168:28;3186:9;3168:13;;:17;;:28;;;;:::i;:::-;3152:13;:44;;;;3216:20;3234:1;3216:13;;:17;;:20;;;;:::i;:::-;3200:13;:36;;;;3256:10;3245:33;;;3268:9;3245:33;;;;;;;;;;;;;;;;;;1321:1961;;;;;:::o;6531:848::-;6578:19;6601:22;6627:24;6655:23;6682:22;6708:16;6728;6748:17;6769:21;6794:18;6816:17;6837:18;6859:22;6904:10;;6890:24;;6935:13;;6918:30;;6971:15;;6952:34;;7008:14;;6990:32;;7043:13;;7026:30;;7071:20;:18;:20::i;:::-;7060:31;;336:2:1;7095:19:0;;7130:21;:19;:21::i;:::-;7118:33;;7171:18;:16;:18::i;:::-;7155:34;;7206:42;7238:9;7206:27;7219:13;336:2:1;7206:12:0;;:27;;;;:::i;:::-;:31;;:42;;;;:::i;:::-;7193:55;;916:4:1;7252:22:0;;285:10:1;7278:30:0;;7329:46;1013:6:1;7330:29:0;7350:8;;7330:15;:19;;:29;;;;:::i;:::-;7329:35;;:46;;;;:::i;:::-;7312:63;;6531:848;;;;;;;;;;;;;:::o;9938:539::-;10027:19;10050:15;10069:18;10091;10113:19;10136:17;10162:16;;:::i;:::-;10181:5;:18;10187:11;10181:18;;;;;;;;;;;;;;;10162:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10203:22;;:::i;:::-;10228:5;:18;10234:11;10228:18;;;;;;;;;;;;;;;:27;;:34;10256:5;10228:34;;;;;;;;;;;10203:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10280:7;:18;;;10266:32;;10312:7;:14;;;10302:24;;10343:7;:17;;;10330:30;;10376:27;10395:7;10376:18;:27::i;:::-;10364:39;;10421:4;:15;;;10407:29;;10452:21;10465:7;10452:12;:21::i;:::-;10440:33;;9938:539;;;;;;;;;;:::o;1140:178::-;1184:4;1193:13;1218:57;1238:36;1256:5;:17;1262:10;1256:17;;;;;;;;;;;;;;;1238:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:17;:36::i;:::-;1218:15;:19;;:57;;;;:::i;:::-;1210:65;;1013:6:1;1282:5:0;:17;1279:35;;;1310:4;1303:11;;;;;1279:35;1140:178;;;:::o;1218:28:1:-;;;;;;;;;;;;;:::o;6107:421:0:-;6174:7;6191:21;6200:11;6191:8;:21::i;:::-;6188:337;;;6220:18;6241:5;:18;6247:11;6241:18;;;;;;;;;;;;;;;:29;;;6220:50;;6290:10;6279:8;;:21;6276:52;;;6320:8;;6307:21;;6276:52;6334:18;6355:68;679:1:1;6356:48:0;1013:6:1;6357:31:0;6377:10;6357:15;:19;;:31;;;;:::i;:::-;6356:37;;:48;;;;:::i;:::-;6355:54;;:68;;;;:::i;:::-;6334:89;;728:2:1;6432:10:0;:29;6429:68;;;728:2:1;6468:29:0;;6429:68;6510:10;6503:17;;;;;;6188:337;6107:421;;;;:::o;162:19:1:-;;;;;;;;;;;;:::o;5866:238:0:-;5939:7;5952:18;5973:37;5991:5;:18;5997:11;5991:18;;;;;;;;;;;;;;;5973:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:17;:37::i;:::-;5952:58;;6028:10;6017:8;;:21;6014:50;;;6056:8;;6043:21;;6014:50;6075:25;1013:6:1;6075:10:0;:14;;:25;;;;:::i;:::-;6068:32;;;5866:238;;;:::o;7382:899::-;7446:23;7473:22;7499:19;7522:22;7548:13;7565:16;7585:23;7612:24;7640:18;7662:12;7678:17;7699:32;;:::i;:::-;7738:16;;:::i;:::-;7757:5;:18;7763:11;7757:18;;;;;;;;;;;;;;;7738:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7797:34;7819:11;7797:21;:34::i;:::-;7779:52;;7852:33;7873:11;7852:20;:33::i;:::-;7835:50;;7907:34;7929:11;7907:21;:34::i;:::-;7889:52;;7956:29;7973:11;7956:16;:29::i;:::-;7945:40;;7997:28;8013:11;7997:15;:28::i;:::-;7989:36;;8046:4;:15;;;8029:32;;8079:4;:10;;;8065:24;;8112:4;:19;;;8093:38;;8148:23;8166:4;8148:17;:23::i;:::-;8135:36;;8207:1;8185:4;:19;;;:23;8175:33;;8224:4;:13;;;8212:25;;8258:4;:18;;;8241:35;;7382:899;;;;;;;;;;;;;;:::o;11057:304::-;11124:7;11137:18;11180:4;:16;;;11162:4;:15;;;:34;11159:122;;;11216:4;:15;;;11203:28;;11159:122;;;11260:4;:16;;;11247:29;;11159:122;11299:10;11288:8;;:21;11285:50;;;11327:8;;11314:21;;11285:50;11347:10;11340:17;;;11057:304;;;:::o;1321:134:3:-;1379:7;1405:43;1409:1;1412;1405:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1398:50;;1321:134;;;;:::o;874:176::-;932:7;951:9;967:1;963;:5;951:17;;991:1;986;:6;;978:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1042:1;1035:8;;;874:176;;;;:::o;2277:152:1:-;2346:7;2366:59;968:4;2367:35;916:4;2367:8;:19;;;:23;;:35;;;;:::i;:::-;2366:41;;:59;;;;:::i;:::-;2359:66;;2277:152;;;:::o;8962:662:0:-;9080:7;9093:17;9114:26;9143:43;9163:22;9177:7;9163:13;:22::i;:::-;9143:15;:19;;:43;;;;:::i;:::-;9114:72;;9191:17;9211:27;9230:7;9211:18;:27::i;:::-;9191:47;;9258:23;9276:4;9258:17;:23::i;:::-;9246:9;:35;9243:85;;;9300:23;9318:4;9300:17;:23::i;:::-;9288:35;;9243:85;9344:121;9431:33;1013:6:1;968:4;9431:22:0;;:33;;;;:::i;:::-;9345:77;9367:54;9390:30;9410:9;9390:15;:19;;:30;;;;:::i;:::-;9367:18;:22;;:54;;;;:::i;:::-;9345:7;:14;;;:21;;:77;;;;:::i;:::-;9344:86;;:121;;;;:::i;:::-;9332:133;;9511:21;9524:7;9511:12;:21::i;:::-;9476:32;9498:9;9476:7;:17;;;:21;;:32;;;;:::i;:::-;:56;9473:127;;;9551:44;9577:7;:17;;;9551:21;9564:7;9551:12;:21::i;:::-;:25;;:44;;;;:::i;:::-;9539:56;;9473:127;9610:9;9603:16;;;;;8962:662;;;;;:::o;2180:459:3:-;2238:7;2484:1;2479;:6;2475:45;;;2508:1;2501:8;;;;2475:45;2530:9;2546:1;2542;:5;2530:17;;2574:1;2569;2565;:5;;;;;;:10;2557:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2631:1;2624:8;;;2180:459;;;;;:::o;3101:130::-;3159:7;3185:39;3189:1;3192;3185:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3178:46;;3101:130;;;;:::o;12080:182:0:-;12154:7;12181:8;:14;;;12170:8;;:25;12167:92;;;12209:8;;12202:15;;;;12167:92;12240:8;:14;;;12233:21;;12080:182;;;;:::o;10766:288::-;10840:7;10853:16;;:::i;:::-;10872:5;:18;10878:11;10872:18;;;;;;;;;;;;;;;10853:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10895:14;10918:9;10930:1;10918:13;;10914:120;10937:4;:19;;;10933:1;:23;10914:120;;;10977:52;10988:5;:18;10994:11;10988:18;;;;;;;;;;;;;;;:27;;:30;11016:1;10988:30;;;;;;;;;;;:40;;;10977:6;:10;;:52;;;;:::i;:::-;10968:61;;10958:3;;;;;;;10914:120;;;;11044:6;11037:13;;;;10766:288;;;:::o;10481:282::-;10554:7;10567:16;;:::i;:::-;10586:5;:18;10592:11;10586:18;;;;;;;;;;;;;;;10567:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10608:14;10630:9;10642:1;10630:13;;10626:117;10649:4;:19;;;10645:1;:23;10626:117;;;10689:49;10700:5;:18;10706:11;10700:18;;;;;;;;;;;;;;;:27;;:30;10728:1;10700:30;;;;;;;;;;;:37;;;10689:6;:10;;:49;;;;:::i;:::-;10680:58;;10670:3;;;;;;;10626:117;;;;10753:6;10746:13;;;;10481:282;;;:::o;8392:567::-;8462:7;8475:16;;:::i;:::-;8494:5;:18;8500:11;8494:18;;;;;;;;;;;;;;;8475:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8517:22;8543:23;8569:55;8602:21;:19;:21::i;:::-;8569:28;8585:11;8569:15;:28::i;:::-;:32;;:55;;;;:::i;:::-;8543:81;;8633:9;8629:301;8652:4;:19;;;8648:1;:23;8629:301;;;8684:22;;:::i;:::-;8709:5;:18;8715:11;8709:18;;;;;;;;;;;;;;;:27;;:30;8737:1;8709:30;;;;;;;;;;;8684:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8768:21;8781:7;8768:12;:21::i;:::-;8748:7;:17;;;:41;8745:180;;;8797:17;8817:50;8836:7;8845:15;8862:4;8817:18;:50::i;:::-;8797:70;;8890:29;8909:9;8890:14;:18;;:29;;;;:::i;:::-;8873:46;;8745:180;;8629:301;8673:3;;;;;;;8629:301;;;;8941:14;8934:21;;;;;8392:567;;;:::o;1746:187:3:-;1832:7;1864:1;1859;:6;;1867:12;1851:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1890:9;1906:1;1902;:5;1890:17;;1925:1;1918:8;;;1746:187;;;;;:::o;11771:306:0:-;11840:7;11853:13;11869:59;1013:6:1;11870:42:0;11903:8;;11870:28;11889:8;11870:18;:28::i;:::-;:32;;:42;;;;:::i;:::-;11869:48;;:59;;;;:::i;:::-;11853:75;;11932:13;11948:25;384:2:1;11948:5:0;:9;;:25;;;;:::i;:::-;11932:41;;436:2:1;11980:5:0;:26;11977:67;;;436:2:1;12013:26:0;;11977:67;12054:19;12067:5;336:2:1;12054:12:0;;:19;;;;:::i;:::-;12047:26;;;;11771:306;;;:::o;3713:272:3:-;3799:7;3830:1;3826;:5;3833:12;3818:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3856:9;3872:1;3868;:5;;;;;;3856:17;;3977:1;3970:8;;;3713:272;;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o

Swarm Source

ipfs://74ff45c761600b2f3e0d100aaedd170f62fcb497c982cb7c1b8f550e0249abbc
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.