ERC-20
Overview
Max Total Supply
25,262,425.826971695525275111 AMBT
Holders
1,548
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
AMBTICO
Compiler Version
v0.4.21+commit.dfe3193c
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2018-04-09 */ pragma solidity 0.4.21; /** * @title SafeMath * @dev Math operations with safety checks that throw on error */ library SafeMath { function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; assert(c / a == b); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { // assert(b > 0); // Solidity automatically throws 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; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { assert(b <= a); return a - b; } function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; assert(c >= a); return c; } } contract AMBToken { using SafeMath for uint256; string public constant name = "Ambit token"; string public constant symbol = "AMBT"; uint8 public constant decimals = 18; uint256 public totalSupply; bool internal contractIsWorking = true; struct Investor { uint256 tokenBalance; uint256 icoInvest; bool activated; } mapping(address => Investor) internal investors; mapping(address => mapping (address => uint256)) internal allowed; /* Dividend's Structures */ uint256 internal dividendCandidate = 0; uint256[] internal dividends; enum ProfitStatus {Initial, StartFixed, EndFixed, Claimed} struct InvestorProfitData { uint256 start_balance; uint256 end_balance; ProfitStatus status; } mapping(address => mapping(uint32 => InvestorProfitData)) internal profits; event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); function balanceOf(address _owner) public view returns (uint256 balance) { return investors[_owner].tokenBalance; } function allowance(address _owner, address _spender) public view returns (uint256) { return allowed[_owner][_spender]; } function _approve(address _spender, uint256 _value) internal returns (bool) { allowed[msg.sender][_spender] = _value; emit Approval(msg.sender, _spender, _value); return true; } function approve(address _spender, uint256 _value) public returns (bool) { require(investors[msg.sender].activated && contractIsWorking); return _approve(_spender, _value); } function _transfer(address _from, address _to, uint256 _value) internal returns (bool) { require(_to != address(0)); require(_value <= investors[_from].tokenBalance); fixDividendBalances(_to, false); investors[_from].tokenBalance = investors[_from].tokenBalance.sub(_value); investors[_to].tokenBalance = investors[_to].tokenBalance.add(_value); emit Transfer(_from, _to, _value); return true; } function transfer(address _to, uint256 _value) public returns (bool) { require(investors[msg.sender].activated && contractIsWorking); fixDividendBalances(msg.sender, false); return _transfer( msg.sender, _to, _value); } function transferFrom(address _from, address _to, uint256 _value) public returns (bool) { require(investors[msg.sender].activated && investors[_from].activated && contractIsWorking); require(_to != address(0)); require(_value <= investors[_from].tokenBalance); require(_value <= allowed[_from][msg.sender]); fixDividendBalances(_from, false); fixDividendBalances(_to, false); investors[_from].tokenBalance = investors[_from].tokenBalance.sub(_value); investors[_to].tokenBalance = investors[_to].tokenBalance.add(_value); allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value); emit Transfer(_from, _to, _value); return true; } /* Eligible token and balance helper function */ function fixDividendBalances(address investor, bool revertIfClaimed) internal returns (InvestorProfitData storage current_profit, uint256 profit_per_token){ uint32 next_id = uint32(dividends.length); uint32 current_id = next_id - 1; current_profit = profits[investor][current_id]; if (revertIfClaimed) require(current_profit.status != ProfitStatus.Claimed); InvestorProfitData storage next_profit = profits[investor][next_id]; if (current_profit.status == ProfitStatus.Initial) { current_profit.start_balance = investors[investor].tokenBalance; current_profit.end_balance = investors[investor].tokenBalance; current_profit.status = ProfitStatus.EndFixed; next_profit.start_balance = investors[investor].tokenBalance; next_profit.status = ProfitStatus.StartFixed; } else if (current_profit.status == ProfitStatus.StartFixed) { current_profit.end_balance = investors[investor].tokenBalance; current_profit.status = ProfitStatus.EndFixed; next_profit.start_balance = investors[investor].tokenBalance; next_profit.status = ProfitStatus.StartFixed; } profit_per_token = dividends[current_id]; } } contract AMBTICO is AMBToken { uint256 internal constant ONE_TOKEN = 10 ** uint256(decimals);//just for convenience uint256 internal constant MILLION = 1000000; //just for convenience uint256 internal constant BOUNTY_QUANTITY = 3120000; uint256 internal constant RESERV_QUANTITY = 12480000; uint256 internal constant TOKEN_MAX_SUPPLY = 104 * MILLION * ONE_TOKEN; uint256 internal constant BOUNTY_TOKENS = BOUNTY_QUANTITY * ONE_TOKEN; uint256 internal constant RESERV_TOKENS = RESERV_QUANTITY * ONE_TOKEN; uint256 internal constant MIN_SOLD_TOKENS = 200 * ONE_TOKEN; uint256 internal constant SOFTCAP = BOUNTY_TOKENS + RESERV_TOKENS + 6 * MILLION * ONE_TOKEN; uint256 internal constant REFUND_PERIOD = 60 days; uint256 internal constant KYC_REVIEW_PERIOD = 60 days; address internal owner; address internal bountyManager; address internal dividendManager; address internal dApp; enum ContractMode {Initial, TokenSale, UnderSoftCap, DividendDistribution, Destroyed} ContractMode public mode = ContractMode.Initial; uint256 public icoFinishTime = 0; uint256 public tokenSold = 0; uint256 public etherCollected = 0; uint8 public currentSection = 0; uint[4] public saleSectionDiscounts = [ uint8(20), 10, 5]; uint[4] public saleSectionPrice = [ uint256(1000000000000000), 1125000000000000, 1187500000000000, 1250000000000000];//price: 0.40 0.45 0.475 0.50 cent | ETH/USD initial rate: 400 uint[4] public saleSectionCount = [ uint256(17 * MILLION), 20 * MILLION, 20 * MILLION, 47 * MILLION - (BOUNTY_QUANTITY+RESERV_QUANTITY)]; uint[4] public saleSectionInvest = [ uint256(saleSectionCount[0] * saleSectionPrice[0]), saleSectionCount[1] * saleSectionPrice[1], saleSectionCount[2] * saleSectionPrice[2], saleSectionCount[3] * saleSectionPrice[3]]; uint256 public buyBackPriceWei = 0 ether; event OwnershipTransferred (address previousOwner, address newOwner); event BountyManagerAssigned (address previousBountyManager, address newBountyManager); event DividendManagerAssigned (address previousDividendManager, address newDividendManager); event DAppAssigned (address previousDApp, address newDApp); event ModeChanged (ContractMode newMode, uint256 tokenBalance); event DividendDeclared (uint32 indexed dividendID, uint256 profitPerToken); event DividendClaimed (address indexed investor, uint256 amount); event BuyBack (address indexed requestor); event Refund (address indexed investor, uint256 amount); event Handbrake (ContractMode current_mode, bool functioning); event FundsAdded (address owner, uint256 amount); event FundsWithdrawal (address owner, uint256 amount); event BountyTransfered (address recipient, uint256 amount); event PriceChanged (uint256 newPrice); event BurnToken (uint256 amount); modifier grantOwner() { require(msg.sender == owner); _; } modifier grantBountyManager() { require(msg.sender == bountyManager); _; } modifier grantDividendManager() { require(msg.sender == dividendManager); _; } modifier grantDApp() { require(msg.sender == dApp); _; } function AMBTICO() public { owner = msg.sender; dividends.push(0); } function setTokenPrice(uint256 new_wei_price) public grantDApp { require(new_wei_price > 0); uint8 len = uint8(saleSectionPrice.length)-1; for (uint8 i=0; i<=len; i++) { uint256 prdsc = 100 - saleSectionDiscounts[i]; saleSectionPrice[i] = prdsc.mul(new_wei_price ).div(100); saleSectionInvest[i] = saleSectionPrice[i] * saleSectionCount[i]; } emit PriceChanged(new_wei_price); } function startICO() public grantOwner { require(contractIsWorking); require(mode == ContractMode.Initial); require(bountyManager != 0x0); totalSupply = TOKEN_MAX_SUPPLY; investors[this].tokenBalance = TOKEN_MAX_SUPPLY-(BOUNTY_TOKENS+RESERV_TOKENS); investors[bountyManager].tokenBalance = BOUNTY_TOKENS; investors[owner].tokenBalance = RESERV_TOKENS; tokenSold = investors[bountyManager].tokenBalance + investors[owner].tokenBalance; mode = ContractMode.TokenSale; emit ModeChanged(mode, investors[this].tokenBalance); } function getCurrentTokenPrice() public view returns(uint256) { require(currentSection < saleSectionCount.length); return saleSectionPrice[currentSection]; } function () public payable { invest(); } function invest() public payable { _invest(msg.sender,msg.value); } /* Used by ĐApp to accept Bitcoin transfers.*/ function investWithBitcoin(address ethAddress, uint256 ethWEI) public grantDApp { _invest(ethAddress,ethWEI); } function _invest(address msg_sender, uint256 msg_value) internal { require(contractIsWorking); require(currentSection < saleSectionCount.length); require(mode == ContractMode.TokenSale); require(msg_sender != bountyManager); uint wei_value = msg_value; uint _tokens = 0; while (wei_value > 0 && (currentSection < saleSectionCount.length)) { if (saleSectionInvest[currentSection] >= wei_value) { _tokens += ONE_TOKEN.mul(wei_value).div(saleSectionPrice[currentSection]); saleSectionInvest[currentSection] -= wei_value; wei_value =0; } else { _tokens += ONE_TOKEN.mul(saleSectionInvest[currentSection]).div(saleSectionPrice[currentSection]); wei_value -= saleSectionInvest[currentSection]; saleSectionInvest[currentSection] = 0; } if (saleSectionInvest[currentSection] <= 0) currentSection++; } require(_tokens >= MIN_SOLD_TOKENS); require(_transfer(this, msg_sender, _tokens)); profits[msg_sender][1] = InvestorProfitData({ start_balance: investors[msg_sender].tokenBalance, end_balance: investors[msg_sender].tokenBalance, status: ProfitStatus.StartFixed }); investors[msg_sender].icoInvest += (msg_value - wei_value); tokenSold += _tokens; etherCollected += (msg_value - wei_value); if (saleSectionInvest[saleSectionInvest.length-1] == 0 ) { _finishICO(); } if (wei_value > 0) { msg_sender.transfer(wei_value); } } function _finishICO() internal { require(contractIsWorking); require(mode == ContractMode.TokenSale); if (tokenSold >= SOFTCAP) { mode = ContractMode.DividendDistribution; } else { mode = ContractMode.UnderSoftCap; } investors[this].tokenBalance = 0; icoFinishTime = now; totalSupply = tokenSold; emit ModeChanged(mode, investors[this].tokenBalance); } function finishICO() public grantOwner { _finishICO(); } function getInvestedAmount(address investor) public view returns(uint256) { return investors[investor].icoInvest; } function activateAddress(address investor, bool status) public grantDApp { require(contractIsWorking); require(mode == ContractMode.DividendDistribution); require((now - icoFinishTime) < KYC_REVIEW_PERIOD); investors[investor].activated = status; } function isAddressActivated(address investor) public view returns (bool) { return investors[investor].activated; } /******* Dividend Declaration Section *********/ function declareDividend(uint256 profit_per_token) public grantDividendManager { dividendCandidate = profit_per_token; } function confirmDividend(uint256 profit_per_token) public grantOwner { require(contractIsWorking); require(dividendCandidate == profit_per_token); require(mode == ContractMode.DividendDistribution); dividends.push(dividendCandidate); emit DividendDeclared(uint32(dividends.length), dividendCandidate); dividendCandidate = 0; } function claimDividend() public { require(contractIsWorking); require(mode == ContractMode.DividendDistribution); require(investors[msg.sender].activated); InvestorProfitData storage current_profit; uint256 price_per_token; (current_profit, price_per_token) = fixDividendBalances(msg.sender, true); uint256 investorProfitWei = (current_profit.start_balance < current_profit.end_balance ? current_profit.start_balance : current_profit.end_balance ).div(ONE_TOKEN).mul(price_per_token); current_profit.status = ProfitStatus.Claimed; emit DividendClaimed(msg.sender, investorProfitWei); msg.sender.transfer(investorProfitWei); } function getDividendInfo() public view returns(uint256) { return dividends[dividends.length - 1]; } /******* emit BuyBack ********/ function setBuyBackPrice(uint256 token_buyback_price) public grantOwner { require(mode == ContractMode.DividendDistribution); buyBackPriceWei = token_buyback_price; } function buyback() public { require(contractIsWorking); require(mode == ContractMode.DividendDistribution); require(buyBackPriceWei > 0); uint256 token_amount = investors[msg.sender].tokenBalance; uint256 ether_amount = calcTokenToWei(token_amount); require(address(this).balance > ether_amount); if (transfer(this, token_amount)){ emit BuyBack(msg.sender); msg.sender.transfer(ether_amount); } } /******** Under SoftCap Section *********/ function refund() public { require(contractIsWorking); require(mode == ContractMode.UnderSoftCap); require(investors[msg.sender].tokenBalance >0); require(investors[msg.sender].icoInvest>0); require (address(this).balance > investors[msg.sender].icoInvest); if (_transfer(msg.sender, this, investors[msg.sender].tokenBalance)){ emit Refund(msg.sender, investors[msg.sender].icoInvest); msg.sender.transfer(investors[msg.sender].icoInvest); } } function destroyContract() public grantOwner { require(mode == ContractMode.UnderSoftCap); require((now - icoFinishTime) > REFUND_PERIOD); selfdestruct(owner); } /******** Permission related ********/ function transferOwnership(address new_owner) public grantOwner { require(contractIsWorking); require(new_owner != address(0)); emit OwnershipTransferred(owner, new_owner); owner = new_owner; } function setBountyManager(address new_bounty_manager) public grantOwner { require(investors[new_bounty_manager].tokenBalance ==0); if (mode == ContractMode.Initial) { emit BountyManagerAssigned(bountyManager, new_bounty_manager); bountyManager = new_bounty_manager; } else if (mode == ContractMode.TokenSale) { emit BountyManagerAssigned(bountyManager, new_bounty_manager); address old_bounty_manager = bountyManager; bountyManager = new_bounty_manager; require(_transfer(old_bounty_manager, new_bounty_manager, investors[old_bounty_manager].tokenBalance)); } else { revert(); } } function setDividendManager(address new_dividend_manager) public grantOwner { emit DividendManagerAssigned(dividendManager, new_dividend_manager); dividendManager = new_dividend_manager; } function setDApp(address new_dapp) public grantOwner { emit DAppAssigned(dApp, new_dapp); dApp = new_dapp; } /******** Security and funds section ********/ function transferBounty(address _to, uint256 _amount) public grantBountyManager { require(contractIsWorking); require(mode == ContractMode.DividendDistribution); if (_transfer(bountyManager, _to, _amount)) { emit BountyTransfered(_to, _amount); } } function burnTokens(uint256 tokenAmount) public grantOwner { require(contractIsWorking); require(mode == ContractMode.DividendDistribution); require(investors[msg.sender].tokenBalance > tokenAmount); investors[msg.sender].tokenBalance -= tokenAmount; totalSupply = totalSupply.sub(tokenAmount); emit BurnToken(tokenAmount); } function withdrawFunds(uint wei_value) grantOwner external { require(mode != ContractMode.UnderSoftCap); require(address(this).balance >= wei_value); emit FundsWithdrawal(msg.sender, wei_value); msg.sender.transfer(wei_value); } function addFunds() public payable grantOwner { require(contractIsWorking); emit FundsAdded(msg.sender, msg.value); } function pauseContract() public grantOwner { require(contractIsWorking); contractIsWorking = false; emit Handbrake(mode, contractIsWorking); } function restoreContract() public grantOwner { require(!contractIsWorking); contractIsWorking = true; emit Handbrake(mode, contractIsWorking); } /******** Helper functions ********/ function calcTokenToWei(uint256 token_amount) internal view returns (uint256) { return buyBackPriceWei.mul(token_amount).div(ONE_TOKEN); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"destroyContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"profit_per_token","type":"uint256"}],"name":"confirmDividend","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"investor","type":"address"}],"name":"isAddressActivated","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getDividendInfo","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"wei_value","type":"uint256"}],"name":"withdrawFunds","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"investor","type":"address"},{"name":"status","type":"bool"}],"name":"activateAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"investor","type":"address"}],"name":"getInvestedAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"mode","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"transferBounty","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"buyBackPriceWei","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"pauseContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"saleSectionDiscounts","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"etherCollected","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokenSold","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"refund","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"currentSection","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"saleSectionPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"new_wei_price","type":"uint256"}],"name":"setTokenPrice","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"new_dapp","type":"address"}],"name":"setDApp","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"tokenAmount","type":"uint256"}],"name":"burnTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"startICO","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"profit_per_token","type":"uint256"}],"name":"declareDividend","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"token_buyback_price","type":"uint256"}],"name":"setBuyBackPrice","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"new_dividend_manager","type":"address"}],"name":"setDividendManager","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"restoreContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"saleSectionInvest","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"addFunds","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"ethAddress","type":"address"},{"name":"ethWEI","type":"uint256"}],"name":"investWithBitcoin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"finishICO","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"icoFinishTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"saleSectionCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"invest","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[],"name":"claimDividend","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"new_owner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getCurrentTokenPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"buyback","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"new_bounty_manager","type":"address"}],"name":"setBountyManager","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":"previousOwner","type":"address"},{"indexed":false,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"previousBountyManager","type":"address"},{"indexed":false,"name":"newBountyManager","type":"address"}],"name":"BountyManagerAssigned","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"previousDividendManager","type":"address"},{"indexed":false,"name":"newDividendManager","type":"address"}],"name":"DividendManagerAssigned","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"previousDApp","type":"address"},{"indexed":false,"name":"newDApp","type":"address"}],"name":"DAppAssigned","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newMode","type":"uint8"},{"indexed":false,"name":"tokenBalance","type":"uint256"}],"name":"ModeChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"dividendID","type":"uint32"},{"indexed":false,"name":"profitPerToken","type":"uint256"}],"name":"DividendDeclared","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"investor","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"DividendClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"requestor","type":"address"}],"name":"BuyBack","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"investor","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Refund","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"current_mode","type":"uint8"},{"indexed":false,"name":"functioning","type":"bool"}],"name":"Handbrake","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"owner","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"FundsAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"owner","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"FundsWithdrawal","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"recipient","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"BountyTransfered","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newPrice","type":"uint256"}],"name":"PriceChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"BurnToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"}]
Contract Creation Code
606060405260018060006101000a81548160ff02191690831515021790555060006004556000600a60146101000a81548160ff021916908360048111156200004357fe5b02179055506000600b556000600c556000600d556000600e60006101000a81548160ff021916908360ff160217905550606060405190810160405280601460ff1660ff168152602001600a60ff168152602001600560ff16815250600f906003620000b0929190620002a9565b5060806040519081016040528066038d7ea4c6800081526020016603ff2e795f500081526020016604380663abb8008152602001660470de4df82000815250601390600462000101929190620002f3565b50608060405190810160405280620f42406011028152602001620f42406014028152602001620f4240601402815260200162be6e00622f9b8001620f4240602f0203815250601790600462000158929190620002f3565b50608060405190810160405280601360006004811015156200017657fe5b0154601760006004811015156200018957fe5b015402815260200160136001600481101515620001a257fe5b015460176001600481101515620001b557fe5b015402815260200160136002600481101515620001ce57fe5b015460176002600481101515620001e157fe5b015402815260200160136003600481101515620001fa57fe5b0154601760036004811015156200020d57fe5b015402815250601b90600462000225929190620002f3565b506000601f5534156200023757600080fd5b33600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600580548060010182816200028e919062000338565b9160005260206000209001600080909190915055506200038f565b8260048101928215620002e0579160200282015b82811115620002df578251829060ff16905591602001919060010190620002bd565b5b509050620002ef919062000367565b5090565b826004810192821562000325579160200282015b828111156200032457825182559160200191906001019062000307565b5b50905062000334919062000367565b5090565b815481835581811511620003625781836000526020600020918201910162000361919062000367565b5b505050565b6200038c91905b80821115620003885760008160009055506001016200036e565b5090565b90565b614346806200039f6000396000f300606060405260043610610230576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde031461023a578063092a5cce146102c8578063095ea7b3146102dd5780630a9ffbf9146103375780631327290d1461035a578063139e23b5146103ab578063155dd5ee146103d457806318160ddd146103f75780631a9938aa146104205780631ef987c11461046457806323b872dd146104b1578063295a52121461052a5780632f7442bb14610561578063313ce567146105a357806333fd9397146105d2578063439766ce146105fb5780634a39f589146106105780634b2cbc9d14610647578063519ee19e14610670578063590e1ae3146106995780635cc3623a146106ae5780636244e756146106dd5780636a61e5fc146107145780636bcab76c146107375780636d1b229d1461077057806370a08231146107935780637fa8c158146107e057806385fa33eb146107f55780638b008f0f146108185780638bf605371461083b57806391147dfa1461087457806395d89b4114610889578063986c821c14610917578063a26759cb1461094e578063a7f9df3814610958578063a9059cbb1461099a578063c4561d61146109f4578063dd62ed3e14610a09578063e246ddba14610a75578063e29d3dcd14610a9e578063e8b5e51f14610ad5578063f0fc6bca14610adf578063f2fde38b14610af4578063f751758b14610b2d578063f8ec691114610b56578063ff66a30514610b6b575b610238610ba4565b005b341561024557600080fd5b61024d610bb0565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561028d578082015181840152602081019050610272565b50505050905090810190601f1680156102ba5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156102d357600080fd5b6102db610be9565b005b34156102e857600080fd5b61031d600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610cc9565b604051808215151515815260200191505060405180910390f35b341561034257600080fd5b6103586004808035906020019091905050610d50565b005b341561036557600080fd5b610391600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610e86565b604051808215151515815260200191505060405180910390f35b34156103b657600080fd5b6103be610edf565b6040518082815260200191505060405180910390f35b34156103df57600080fd5b6103f56004808035906020019091905050610f09565b005b341561040257600080fd5b61040a61106e565b6040518082815260200191505060405180910390f35b341561042b57600080fd5b610462600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080351515906020019091905050611074565b005b341561046f57600080fd5b61049b600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611192565b6040518082815260200191505060405180910390f35b34156104bc57600080fd5b610510600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506111de565b604051808215151515815260200191505060405180910390f35b341561053557600080fd5b61053d611692565b6040518082600481111561054d57fe5b60ff16815260200191505060405180910390f35b341561056c57600080fd5b6105a1600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506116a5565b005b34156105ae57600080fd5b6105b66117f2565b604051808260ff1660ff16815260200191505060405180910390f35b34156105dd57600080fd5b6105e56117f7565b6040518082815260200191505060405180910390f35b341561060657600080fd5b61060e6117fd565b005b341561061b57600080fd5b6106316004808035906020019091905050611900565b6040518082815260200191505060405180910390f35b341561065257600080fd5b61065a61191a565b6040518082815260200191505060405180910390f35b341561067b57600080fd5b610683611920565b6040518082815260200191505060405180910390f35b34156106a457600080fd5b6106ac611926565b005b34156106b957600080fd5b6106c1611be5565b604051808260ff1660ff16815260200191505060405180910390f35b34156106e857600080fd5b6106fe6004808035906020019091905050611bf8565b6040518082815260200191505060405180910390f35b341561071f57600080fd5b6107356004808035906020019091905050611c12565b005b341561074257600080fd5b61076e600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611d7d565b005b341561077b57600080fd5b6107916004808035906020019091905050611ed6565b005b341561079e57600080fd5b6107ca600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612076565b6040518082815260200191505060405180910390f35b34156107eb57600080fd5b6107f36120c2565b005b341561080057600080fd5b61081660048080359060200190919050506124bc565b005b341561082357600080fd5b6108396004808035906020019091905050612522565b005b341561084657600080fd5b610872600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506125bc565b005b341561087f57600080fd5b610887612715565b005b341561089457600080fd5b61089c612818565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108dc5780820151818401526020810190506108c1565b50505050905090810190601f1680156109095780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561092257600080fd5b6109386004808035906020019091905050612851565b6040518082815260200191505060405180910390f35b61095661286b565b005b341561096357600080fd5b610998600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061294f565b005b34156109a557600080fd5b6109da600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506129b9565b604051808215151515815260200191505060405180910390f35b34156109ff57600080fd5b610a07612a4e565b005b3415610a1457600080fd5b610a5f600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612ab4565b6040518082815260200191505060405180910390f35b3415610a8057600080fd5b610a88612b3b565b6040518082815260200191505060405180910390f35b3415610aa957600080fd5b610abf6004808035906020019091905050612b41565b6040518082815260200191505060405180910390f35b610add610ba4565b005b3415610aea57600080fd5b610af2612b5b565b005b3415610aff57600080fd5b610b2b600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612d22565b005b3415610b3857600080fd5b610b40612ed2565b6040518082815260200191505060405180910390f35b3415610b6157600080fd5b610b69612f1d565b005b3415610b7657600080fd5b610ba2600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061308c565b005b610bae333461341c565b565b6040805190810160405280600b81526020017f416d62697420746f6b656e00000000000000000000000000000000000000000081525081565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610c4557600080fd5b60026004811115610c5257fe5b600a60149054906101000a900460ff166004811115610c6d57fe5b141515610c7957600080fd5b624f1a00600b544203111515610c8e57600080fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b6000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff168015610d335750600160009054906101000a900460ff165b1515610d3e57600080fd5b610d488383613955565b905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610dac57600080fd5b600160009054906101000a900460ff161515610dc757600080fd5b80600454141515610dd757600080fd5b60036004811115610de457fe5b600a60149054906101000a900460ff166004811115610dff57fe5b141515610e0b57600080fd5b60058054806001018281610e1f91906142c9565b916000526020600020900160006004549091909150555060058054905063ffffffff167f516637ed9baa7f9024aefcf62593a2848a93212ecff77f0634489101ca0edd866004546040518082815260200191505060405180910390a2600060048190555050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff169050919050565b60006005600160058054905003815481101515610ef857fe5b906000526020600020900154905090565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f6557600080fd5b60026004811115610f7257fe5b600a60149054906101000a900460ff166004811115610f8d57fe5b14151515610f9a57600080fd5b803073ffffffffffffffffffffffffffffffffffffffff163110151515610fc057600080fd5b7f99a7b857d177a9f5962228b830aa679ade0f8465fbb4fef3a472a060c6d8f8e83382604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a13373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050151561106b57600080fd5b50565b60005481565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156110d057600080fd5b600160009054906101000a900460ff1615156110eb57600080fd5b600360048111156110f857fe5b600a60149054906101000a900460ff16600481111561111357fe5b14151561111f57600080fd5b624f1a00600b54420310151561113457600080fd5b80600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160006101000a81548160ff0219169083151502179055505050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101549050919050565b6000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff1680156112885750600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff165b80156112a05750600160009054906101000a900460ff165b15156112ab57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156112e757600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154821115151561133857600080fd5b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156113c357600080fd5b6113ce846000613a47565b50506113db836000613a47565b505061143282600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154613df990919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506114cd82600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154613e1290919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506115a282600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613df990919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600a60149054906101000a900460ff1681565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561170157600080fd5b600160009054906101000a900460ff16151561171c57600080fd5b6003600481111561172957fe5b600a60149054906101000a900460ff16600481111561174457fe5b14151561175057600080fd5b61177d600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168383613e30565b156117ee577fd390a1c7d57b1522e21e618a8eb0ccaf710ecc071802a46a33b75a86edd11bcd8282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15b5050565b601281565b601f5481565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561185957600080fd5b600160009054906101000a900460ff16151561187457600080fd5b6000600160006101000a81548160ff0219169083151502179055507f8b6ba77db83ca6828303ce3a76183a5b2e5d3676098772c3a1776f22414c06d5600a60149054906101000a900460ff16600160009054906101000a900460ff16604051808360048111156118e057fe5b60ff168152602001821515151581526020019250505060405180910390a1565b600f8160048110151561190f57fe5b016000915090505481565b600d5481565b600c5481565b600160009054906101000a900460ff16151561194157600080fd5b6002600481111561194e57fe5b600a60149054906101000a900460ff16600481111561196957fe5b14151561197557600080fd5b6000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001541115156119c657600080fd5b6000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154111515611a1757600080fd5b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101543073ffffffffffffffffffffffffffffffffffffffff1631111515611a7e57600080fd5b611acb3330600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154613e30565b15611be3573373ffffffffffffffffffffffffffffffffffffffff167fbb28353e4598c3b9199101a66e0989549b659a59a54d2c27fbb183f1932c8e6d600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101546040518082815260200191505060405180910390a23373ffffffffffffffffffffffffffffffffffffffff166108fc600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101549081150290604051600060405180830381858888f193505050501515611be257600080fd5b5b565b600e60009054906101000a900460ff1681565b601381600481101515611c0757fe5b016000915090505481565b6000806000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611c7357600080fd5b600084111515611c8257600080fd5b60016004039250600091505b8260ff168260ff16111515611d4057600f8260ff16600481101515611caf57fe5b01546064039050611cdc6064611cce868461407190919063ffffffff16565b6140ac90919063ffffffff16565b60138360ff16600481101515611cee57fe5b018190555060178260ff16600481101515611d0557fe5b015460138360ff16600481101515611d1957fe5b015402601b8360ff16600481101515611d2e57fe5b01819055508180600101925050611c8e565b7fa6dc15bdb68da224c66db4b3838d9a2b205138e8cff6774e57d0af91e196d622846040518082815260200191505060405180910390a150505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611dd957600080fd5b7f53cbf36bca682794731284dc392e65f264608f1b5febeb3cb9cc54d8e3cfbcdb600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a180600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611f3257600080fd5b600160009054906101000a900460ff161515611f4d57600080fd5b60036004811115611f5a57fe5b600a60149054906101000a900460ff166004811115611f7557fe5b141515611f8157600080fd5b80600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154111515611fd157600080fd5b80600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000016000828254039250508190555061203681600054613df990919063ffffffff16565b6000819055507f066548819fc4bd1208ea1c8608597593134d5661f459c2ef75cad30918af5a33816040518082815260200191505060405180910390a150565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549050919050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561211e57600080fd5b600160009054906101000a900460ff16151561213957600080fd5b6000600481111561214657fe5b600a60149054906101000a900460ff16600481111561216157fe5b14151561216d57600080fd5b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515156121b557600080fd5b601260ff16600a0a620f424060680202600081905550601260ff16600a0a62be6e0002601260ff16600a0a622f9b800201601260ff16600a0a620f42406068020203600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550601260ff16600a0a622f9b800260026000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550601260ff16600a0a62be6e000260026000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555060026000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015460026000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015401600c819055506001600a60146101000a81548160ff0219169083600481111561241757fe5b02179055507fd276948ab5d173775ef24b296a707861e46a91d073413edaf92d2aab54e1e968600a60149054906101000a900460ff16600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154604051808360048111156124a057fe5b60ff1681526020018281526020019250505060405180910390a1565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561251857600080fd5b8060048190555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561257e57600080fd5b6003600481111561258b57fe5b600a60149054906101000a900460ff1660048111156125a657fe5b1415156125b257600080fd5b80601f8190555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561261857600080fd5b7f50128ce9e4dc550ba55ac18cfe0ff37e218bf52c0b09bc3c47cb951d334c82c0600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a180600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561277157600080fd5b600160009054906101000a900460ff1615151561278d57600080fd5b60018060006101000a81548160ff0219169083151502179055507f8b6ba77db83ca6828303ce3a76183a5b2e5d3676098772c3a1776f22414c06d5600a60149054906101000a900460ff16600160009054906101000a900460ff16604051808360048111156127f857fe5b60ff168152602001821515151581526020019250505060405180910390a1565b6040805190810160405280600481526020017f414d42540000000000000000000000000000000000000000000000000000000081525081565b601b8160048110151561286057fe5b016000915090505481565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156128c757600080fd5b600160009054906101000a900460ff1615156128e257600080fd5b7f8fe10ae416f22f5e5220b0018a6c1d4ff534d6aa3a471f2a20cb7747fe63e5b93334604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156129ab57600080fd5b6129b5828261341c565b5050565b6000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff168015612a235750600160009054906101000a900460ff165b1515612a2e57600080fd5b612a39336000613a47565b5050612a46338484613e30565b905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612aaa57600080fd5b612ab26140c7565b565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600b5481565b601781600481101515612b5057fe5b016000915090505481565b6000806000600160009054906101000a900460ff161515612b7b57600080fd5b60036004811115612b8857fe5b600a60149054906101000a900460ff166004811115612ba357fe5b141515612baf57600080fd5b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff161515612c0a57600080fd5b612c15336001613a47565b8093508194505050612c6782612c59601260ff16600a0a8660010154876000015410612c45578660010154612c4b565b86600001545b6140ac90919063ffffffff16565b61407190919063ffffffff16565b905060038360020160006101000a81548160ff02191690836003811115612c8a57fe5b02179055503373ffffffffffffffffffffffffffffffffffffffff167f5efa67896a23b651b741b525caacba039c00ca7853be3de8eb1f4269e8669c56826040518082815260200191505060405180910390a23373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501515612d1d57600080fd5b505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612d7e57600080fd5b600160009054906101000a900460ff161515612d9957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515612dd557600080fd5b7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a180600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006004600e60009054906101000a900460ff1660ff16101515612ef557600080fd5b6013600e60009054906101000a900460ff1660ff16600481101515612f1657fe5b0154905090565b600080600160009054906101000a900460ff161515612f3b57600080fd5b60036004811115612f4857fe5b600a60149054906101000a900460ff166004811115612f6357fe5b141515612f6f57600080fd5b6000601f54111515612f8057600080fd5b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549150612fce82614292565b9050803073ffffffffffffffffffffffffffffffffffffffff1631111515612ff557600080fd5b612fff30836129b9565b15613088573373ffffffffffffffffffffffffffffffffffffffff167f6f07c608a0ebb47da1f3f735c99b0268845b0d3a0a41a63a05dbd2813dbbab1760405160405180910390a23373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050151561308757600080fd5b5b5050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156130ea57600080fd5b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015414151561313b57600080fd5b6000600481111561314857fe5b600a60149054906101000a900460ff16600481111561316357fe5b1415613268577ff126362af28517089aec565765c53cd52ac859d2d341975b24bec57292ff62d5600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a181600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613418565b6001600481111561327557fe5b600a60149054906101000a900460ff16600481111561329057fe5b1415613412577ff126362af28517089aec565765c53cd52ac859d2d341975b24bec57292ff62d5600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a1600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506134028183600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154613e30565b151561340d57600080fd5b613417565b600080fd5b5b5050565b600080600160009054906101000a900460ff16151561343a57600080fd5b6004600e60009054906101000a900460ff1660ff1610151561345b57600080fd5b6001600481111561346857fe5b600a60149054906101000a900460ff16600481111561348357fe5b14151561348f57600080fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141515156134ec57600080fd5b829150600090505b60008211801561351657506004600e60009054906101000a900460ff1660ff16105b156136f95781601b600e60009054906101000a900460ff1660ff1660048110151561353d57fe5b01541015156135d1576135946013600e60009054906101000a900460ff1660ff1660048110151561356a57fe5b015461358684601260ff16600a0a61407190919063ffffffff16565b6140ac90919063ffffffff16565b8101905081601b600e60009054906101000a900460ff1660ff166004811015156135ba57fe5b016000828254039250508190555060009150613695565b6136416013600e60009054906101000a900460ff1660ff166004811015156135f557fe5b0154613633601b600e60009054906101000a900460ff1660ff1660048110151561361b57fe5b0154601260ff16600a0a61407190919063ffffffff16565b6140ac90919063ffffffff16565b81019050601b600e60009054906101000a900460ff1660ff1660048110151561366657fe5b0154820391506000601b600e60009054906101000a900460ff1660ff1660048110151561368f57fe5b01819055505b6000601b600e60009054906101000a900460ff1660ff166004811015156136b857fe5b01541115156136f457600e600081819054906101000a900460ff168092919060010191906101000a81548160ff021916908360ff160217905550505b6134f4565b601260ff16600a0a60c802811015151561371257600080fd5b61371d308583613e30565b151561372857600080fd5b606060405190810160405280600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001548152602001600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001548152602001600160038111156137d157fe5b815250600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600163ffffffff168152602001908152602001600020600082015181600001556020820151816001015560408201518160020160006101000a81548160ff0219169083600381111561386357fe5b0217905550905050818303600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000828254019250508190555080600c60008282540192505081905550818303600d600082825401925050819055506000601b60016004036004811015156138f457fe5b01541415613905576139046140c7565b5b600082111561394f578373ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050151561394e57600080fd5b5b50505050565b600081600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60008060008060006005805490509250600183039150600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008363ffffffff1663ffffffff16815260200190815260200160002094508515613af857600380811115613acd57fe5b8560020160009054906101000a900460ff166003811115613aea57fe5b14151515613af757600080fd5b5b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008463ffffffff1663ffffffff168152602001908152602001600020905060006003811115613b6357fe5b8560020160009054906101000a900460ff166003811115613b8057fe5b1415613cb857600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001548560000181905550600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154856001018190555060028560020160006101000a81548160ff02191690836003811115613c3d57fe5b0217905550600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154816000018190555060018160020160006101000a81548160ff02191690836003811115613cae57fe5b0217905550613dcc565b60016003811115613cc557fe5b8560020160009054906101000a900460ff166003811115613ce257fe5b1415613dcb57600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154856001018190555060028560020160006101000a81548160ff02191690836003811115613d5457fe5b0217905550600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154816000018190555060018160020160006101000a81548160ff02191690836003811115613dc557fe5b02179055505b5b60058263ffffffff16815481101515613de157fe5b90600052602060002090015493505050509250929050565b6000828211151515613e0757fe5b818303905092915050565b6000808284019050838110151515613e2657fe5b8091505092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515613e6d57600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001548211151515613ebe57600080fd5b613ec9836000613a47565b5050613f2082600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154613df990919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550613fbb82600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154613e1290919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600080600084141561408657600091506140a5565b828402905082848281151561409757fe5b041415156140a157fe5b8091505b5092915050565b60008082848115156140ba57fe5b0490508091505092915050565b600160009054906101000a900460ff1615156140e257600080fd5b600160048111156140ef57fe5b600a60149054906101000a900460ff16600481111561410a57fe5b14151561411657600080fd5b601260ff16600a0a620f424060060202601260ff16600a0a62be6e0002601260ff16600a0a622f9b80020101600c54101515614175576003600a60146101000a81548160ff0219169083600481111561416b57fe5b021790555061419a565b6002600a60146101000a81548160ff0219169083600481111561419457fe5b02179055505b6000600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555042600b81905550600c546000819055507fd276948ab5d173775ef24b296a707861e46a91d073413edaf92d2aab54e1e968600a60149054906101000a900460ff16600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546040518083600481111561427657fe5b60ff1681526020018281526020019250505060405180910390a1565b60006142c2601260ff16600a0a6142b484601f5461407190919063ffffffff16565b6140ac90919063ffffffff16565b9050919050565b8154818355818115116142f0578183600052602060002091820191016142ef91906142f5565b5b505050565b61431791905b808211156143135760008160009055506001016142fb565b5090565b905600a165627a7a723058206796df0ee0073e0391f737dda3c2a4cb1e0bf833dc51df295323d831882124050029
Deployed Bytecode
0x606060405260043610610230576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde031461023a578063092a5cce146102c8578063095ea7b3146102dd5780630a9ffbf9146103375780631327290d1461035a578063139e23b5146103ab578063155dd5ee146103d457806318160ddd146103f75780631a9938aa146104205780631ef987c11461046457806323b872dd146104b1578063295a52121461052a5780632f7442bb14610561578063313ce567146105a357806333fd9397146105d2578063439766ce146105fb5780634a39f589146106105780634b2cbc9d14610647578063519ee19e14610670578063590e1ae3146106995780635cc3623a146106ae5780636244e756146106dd5780636a61e5fc146107145780636bcab76c146107375780636d1b229d1461077057806370a08231146107935780637fa8c158146107e057806385fa33eb146107f55780638b008f0f146108185780638bf605371461083b57806391147dfa1461087457806395d89b4114610889578063986c821c14610917578063a26759cb1461094e578063a7f9df3814610958578063a9059cbb1461099a578063c4561d61146109f4578063dd62ed3e14610a09578063e246ddba14610a75578063e29d3dcd14610a9e578063e8b5e51f14610ad5578063f0fc6bca14610adf578063f2fde38b14610af4578063f751758b14610b2d578063f8ec691114610b56578063ff66a30514610b6b575b610238610ba4565b005b341561024557600080fd5b61024d610bb0565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561028d578082015181840152602081019050610272565b50505050905090810190601f1680156102ba5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156102d357600080fd5b6102db610be9565b005b34156102e857600080fd5b61031d600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610cc9565b604051808215151515815260200191505060405180910390f35b341561034257600080fd5b6103586004808035906020019091905050610d50565b005b341561036557600080fd5b610391600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610e86565b604051808215151515815260200191505060405180910390f35b34156103b657600080fd5b6103be610edf565b6040518082815260200191505060405180910390f35b34156103df57600080fd5b6103f56004808035906020019091905050610f09565b005b341561040257600080fd5b61040a61106e565b6040518082815260200191505060405180910390f35b341561042b57600080fd5b610462600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080351515906020019091905050611074565b005b341561046f57600080fd5b61049b600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611192565b6040518082815260200191505060405180910390f35b34156104bc57600080fd5b610510600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506111de565b604051808215151515815260200191505060405180910390f35b341561053557600080fd5b61053d611692565b6040518082600481111561054d57fe5b60ff16815260200191505060405180910390f35b341561056c57600080fd5b6105a1600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506116a5565b005b34156105ae57600080fd5b6105b66117f2565b604051808260ff1660ff16815260200191505060405180910390f35b34156105dd57600080fd5b6105e56117f7565b6040518082815260200191505060405180910390f35b341561060657600080fd5b61060e6117fd565b005b341561061b57600080fd5b6106316004808035906020019091905050611900565b6040518082815260200191505060405180910390f35b341561065257600080fd5b61065a61191a565b6040518082815260200191505060405180910390f35b341561067b57600080fd5b610683611920565b6040518082815260200191505060405180910390f35b34156106a457600080fd5b6106ac611926565b005b34156106b957600080fd5b6106c1611be5565b604051808260ff1660ff16815260200191505060405180910390f35b34156106e857600080fd5b6106fe6004808035906020019091905050611bf8565b6040518082815260200191505060405180910390f35b341561071f57600080fd5b6107356004808035906020019091905050611c12565b005b341561074257600080fd5b61076e600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611d7d565b005b341561077b57600080fd5b6107916004808035906020019091905050611ed6565b005b341561079e57600080fd5b6107ca600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612076565b6040518082815260200191505060405180910390f35b34156107eb57600080fd5b6107f36120c2565b005b341561080057600080fd5b61081660048080359060200190919050506124bc565b005b341561082357600080fd5b6108396004808035906020019091905050612522565b005b341561084657600080fd5b610872600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506125bc565b005b341561087f57600080fd5b610887612715565b005b341561089457600080fd5b61089c612818565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108dc5780820151818401526020810190506108c1565b50505050905090810190601f1680156109095780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561092257600080fd5b6109386004808035906020019091905050612851565b6040518082815260200191505060405180910390f35b61095661286b565b005b341561096357600080fd5b610998600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061294f565b005b34156109a557600080fd5b6109da600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506129b9565b604051808215151515815260200191505060405180910390f35b34156109ff57600080fd5b610a07612a4e565b005b3415610a1457600080fd5b610a5f600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612ab4565b6040518082815260200191505060405180910390f35b3415610a8057600080fd5b610a88612b3b565b6040518082815260200191505060405180910390f35b3415610aa957600080fd5b610abf6004808035906020019091905050612b41565b6040518082815260200191505060405180910390f35b610add610ba4565b005b3415610aea57600080fd5b610af2612b5b565b005b3415610aff57600080fd5b610b2b600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612d22565b005b3415610b3857600080fd5b610b40612ed2565b6040518082815260200191505060405180910390f35b3415610b6157600080fd5b610b69612f1d565b005b3415610b7657600080fd5b610ba2600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061308c565b005b610bae333461341c565b565b6040805190810160405280600b81526020017f416d62697420746f6b656e00000000000000000000000000000000000000000081525081565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610c4557600080fd5b60026004811115610c5257fe5b600a60149054906101000a900460ff166004811115610c6d57fe5b141515610c7957600080fd5b624f1a00600b544203111515610c8e57600080fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b6000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff168015610d335750600160009054906101000a900460ff165b1515610d3e57600080fd5b610d488383613955565b905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610dac57600080fd5b600160009054906101000a900460ff161515610dc757600080fd5b80600454141515610dd757600080fd5b60036004811115610de457fe5b600a60149054906101000a900460ff166004811115610dff57fe5b141515610e0b57600080fd5b60058054806001018281610e1f91906142c9565b916000526020600020900160006004549091909150555060058054905063ffffffff167f516637ed9baa7f9024aefcf62593a2848a93212ecff77f0634489101ca0edd866004546040518082815260200191505060405180910390a2600060048190555050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff169050919050565b60006005600160058054905003815481101515610ef857fe5b906000526020600020900154905090565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f6557600080fd5b60026004811115610f7257fe5b600a60149054906101000a900460ff166004811115610f8d57fe5b14151515610f9a57600080fd5b803073ffffffffffffffffffffffffffffffffffffffff163110151515610fc057600080fd5b7f99a7b857d177a9f5962228b830aa679ade0f8465fbb4fef3a472a060c6d8f8e83382604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a13373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050151561106b57600080fd5b50565b60005481565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156110d057600080fd5b600160009054906101000a900460ff1615156110eb57600080fd5b600360048111156110f857fe5b600a60149054906101000a900460ff16600481111561111357fe5b14151561111f57600080fd5b624f1a00600b54420310151561113457600080fd5b80600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160006101000a81548160ff0219169083151502179055505050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101549050919050565b6000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff1680156112885750600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff165b80156112a05750600160009054906101000a900460ff165b15156112ab57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156112e757600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154821115151561133857600080fd5b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156113c357600080fd5b6113ce846000613a47565b50506113db836000613a47565b505061143282600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154613df990919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506114cd82600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154613e1290919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506115a282600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613df990919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600a60149054906101000a900460ff1681565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561170157600080fd5b600160009054906101000a900460ff16151561171c57600080fd5b6003600481111561172957fe5b600a60149054906101000a900460ff16600481111561174457fe5b14151561175057600080fd5b61177d600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168383613e30565b156117ee577fd390a1c7d57b1522e21e618a8eb0ccaf710ecc071802a46a33b75a86edd11bcd8282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15b5050565b601281565b601f5481565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561185957600080fd5b600160009054906101000a900460ff16151561187457600080fd5b6000600160006101000a81548160ff0219169083151502179055507f8b6ba77db83ca6828303ce3a76183a5b2e5d3676098772c3a1776f22414c06d5600a60149054906101000a900460ff16600160009054906101000a900460ff16604051808360048111156118e057fe5b60ff168152602001821515151581526020019250505060405180910390a1565b600f8160048110151561190f57fe5b016000915090505481565b600d5481565b600c5481565b600160009054906101000a900460ff16151561194157600080fd5b6002600481111561194e57fe5b600a60149054906101000a900460ff16600481111561196957fe5b14151561197557600080fd5b6000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001541115156119c657600080fd5b6000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154111515611a1757600080fd5b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101543073ffffffffffffffffffffffffffffffffffffffff1631111515611a7e57600080fd5b611acb3330600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154613e30565b15611be3573373ffffffffffffffffffffffffffffffffffffffff167fbb28353e4598c3b9199101a66e0989549b659a59a54d2c27fbb183f1932c8e6d600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101546040518082815260200191505060405180910390a23373ffffffffffffffffffffffffffffffffffffffff166108fc600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101549081150290604051600060405180830381858888f193505050501515611be257600080fd5b5b565b600e60009054906101000a900460ff1681565b601381600481101515611c0757fe5b016000915090505481565b6000806000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611c7357600080fd5b600084111515611c8257600080fd5b60016004039250600091505b8260ff168260ff16111515611d4057600f8260ff16600481101515611caf57fe5b01546064039050611cdc6064611cce868461407190919063ffffffff16565b6140ac90919063ffffffff16565b60138360ff16600481101515611cee57fe5b018190555060178260ff16600481101515611d0557fe5b015460138360ff16600481101515611d1957fe5b015402601b8360ff16600481101515611d2e57fe5b01819055508180600101925050611c8e565b7fa6dc15bdb68da224c66db4b3838d9a2b205138e8cff6774e57d0af91e196d622846040518082815260200191505060405180910390a150505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611dd957600080fd5b7f53cbf36bca682794731284dc392e65f264608f1b5febeb3cb9cc54d8e3cfbcdb600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a180600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611f3257600080fd5b600160009054906101000a900460ff161515611f4d57600080fd5b60036004811115611f5a57fe5b600a60149054906101000a900460ff166004811115611f7557fe5b141515611f8157600080fd5b80600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154111515611fd157600080fd5b80600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000016000828254039250508190555061203681600054613df990919063ffffffff16565b6000819055507f066548819fc4bd1208ea1c8608597593134d5661f459c2ef75cad30918af5a33816040518082815260200191505060405180910390a150565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549050919050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561211e57600080fd5b600160009054906101000a900460ff16151561213957600080fd5b6000600481111561214657fe5b600a60149054906101000a900460ff16600481111561216157fe5b14151561216d57600080fd5b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515156121b557600080fd5b601260ff16600a0a620f424060680202600081905550601260ff16600a0a62be6e0002601260ff16600a0a622f9b800201601260ff16600a0a620f42406068020203600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550601260ff16600a0a622f9b800260026000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550601260ff16600a0a62be6e000260026000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555060026000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015460026000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015401600c819055506001600a60146101000a81548160ff0219169083600481111561241757fe5b02179055507fd276948ab5d173775ef24b296a707861e46a91d073413edaf92d2aab54e1e968600a60149054906101000a900460ff16600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154604051808360048111156124a057fe5b60ff1681526020018281526020019250505060405180910390a1565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561251857600080fd5b8060048190555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561257e57600080fd5b6003600481111561258b57fe5b600a60149054906101000a900460ff1660048111156125a657fe5b1415156125b257600080fd5b80601f8190555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561261857600080fd5b7f50128ce9e4dc550ba55ac18cfe0ff37e218bf52c0b09bc3c47cb951d334c82c0600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a180600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561277157600080fd5b600160009054906101000a900460ff1615151561278d57600080fd5b60018060006101000a81548160ff0219169083151502179055507f8b6ba77db83ca6828303ce3a76183a5b2e5d3676098772c3a1776f22414c06d5600a60149054906101000a900460ff16600160009054906101000a900460ff16604051808360048111156127f857fe5b60ff168152602001821515151581526020019250505060405180910390a1565b6040805190810160405280600481526020017f414d42540000000000000000000000000000000000000000000000000000000081525081565b601b8160048110151561286057fe5b016000915090505481565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156128c757600080fd5b600160009054906101000a900460ff1615156128e257600080fd5b7f8fe10ae416f22f5e5220b0018a6c1d4ff534d6aa3a471f2a20cb7747fe63e5b93334604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156129ab57600080fd5b6129b5828261341c565b5050565b6000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff168015612a235750600160009054906101000a900460ff165b1515612a2e57600080fd5b612a39336000613a47565b5050612a46338484613e30565b905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612aaa57600080fd5b612ab26140c7565b565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600b5481565b601781600481101515612b5057fe5b016000915090505481565b6000806000600160009054906101000a900460ff161515612b7b57600080fd5b60036004811115612b8857fe5b600a60149054906101000a900460ff166004811115612ba357fe5b141515612baf57600080fd5b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff161515612c0a57600080fd5b612c15336001613a47565b8093508194505050612c6782612c59601260ff16600a0a8660010154876000015410612c45578660010154612c4b565b86600001545b6140ac90919063ffffffff16565b61407190919063ffffffff16565b905060038360020160006101000a81548160ff02191690836003811115612c8a57fe5b02179055503373ffffffffffffffffffffffffffffffffffffffff167f5efa67896a23b651b741b525caacba039c00ca7853be3de8eb1f4269e8669c56826040518082815260200191505060405180910390a23373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501515612d1d57600080fd5b505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612d7e57600080fd5b600160009054906101000a900460ff161515612d9957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515612dd557600080fd5b7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a180600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006004600e60009054906101000a900460ff1660ff16101515612ef557600080fd5b6013600e60009054906101000a900460ff1660ff16600481101515612f1657fe5b0154905090565b600080600160009054906101000a900460ff161515612f3b57600080fd5b60036004811115612f4857fe5b600a60149054906101000a900460ff166004811115612f6357fe5b141515612f6f57600080fd5b6000601f54111515612f8057600080fd5b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549150612fce82614292565b9050803073ffffffffffffffffffffffffffffffffffffffff1631111515612ff557600080fd5b612fff30836129b9565b15613088573373ffffffffffffffffffffffffffffffffffffffff167f6f07c608a0ebb47da1f3f735c99b0268845b0d3a0a41a63a05dbd2813dbbab1760405160405180910390a23373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050151561308757600080fd5b5b5050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156130ea57600080fd5b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015414151561313b57600080fd5b6000600481111561314857fe5b600a60149054906101000a900460ff16600481111561316357fe5b1415613268577ff126362af28517089aec565765c53cd52ac859d2d341975b24bec57292ff62d5600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a181600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613418565b6001600481111561327557fe5b600a60149054906101000a900460ff16600481111561329057fe5b1415613412577ff126362af28517089aec565765c53cd52ac859d2d341975b24bec57292ff62d5600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a1600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506134028183600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154613e30565b151561340d57600080fd5b613417565b600080fd5b5b5050565b600080600160009054906101000a900460ff16151561343a57600080fd5b6004600e60009054906101000a900460ff1660ff1610151561345b57600080fd5b6001600481111561346857fe5b600a60149054906101000a900460ff16600481111561348357fe5b14151561348f57600080fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141515156134ec57600080fd5b829150600090505b60008211801561351657506004600e60009054906101000a900460ff1660ff16105b156136f95781601b600e60009054906101000a900460ff1660ff1660048110151561353d57fe5b01541015156135d1576135946013600e60009054906101000a900460ff1660ff1660048110151561356a57fe5b015461358684601260ff16600a0a61407190919063ffffffff16565b6140ac90919063ffffffff16565b8101905081601b600e60009054906101000a900460ff1660ff166004811015156135ba57fe5b016000828254039250508190555060009150613695565b6136416013600e60009054906101000a900460ff1660ff166004811015156135f557fe5b0154613633601b600e60009054906101000a900460ff1660ff1660048110151561361b57fe5b0154601260ff16600a0a61407190919063ffffffff16565b6140ac90919063ffffffff16565b81019050601b600e60009054906101000a900460ff1660ff1660048110151561366657fe5b0154820391506000601b600e60009054906101000a900460ff1660ff1660048110151561368f57fe5b01819055505b6000601b600e60009054906101000a900460ff1660ff166004811015156136b857fe5b01541115156136f457600e600081819054906101000a900460ff168092919060010191906101000a81548160ff021916908360ff160217905550505b6134f4565b601260ff16600a0a60c802811015151561371257600080fd5b61371d308583613e30565b151561372857600080fd5b606060405190810160405280600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001548152602001600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001548152602001600160038111156137d157fe5b815250600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600163ffffffff168152602001908152602001600020600082015181600001556020820151816001015560408201518160020160006101000a81548160ff0219169083600381111561386357fe5b0217905550905050818303600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000828254019250508190555080600c60008282540192505081905550818303600d600082825401925050819055506000601b60016004036004811015156138f457fe5b01541415613905576139046140c7565b5b600082111561394f578373ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050151561394e57600080fd5b5b50505050565b600081600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60008060008060006005805490509250600183039150600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008363ffffffff1663ffffffff16815260200190815260200160002094508515613af857600380811115613acd57fe5b8560020160009054906101000a900460ff166003811115613aea57fe5b14151515613af757600080fd5b5b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008463ffffffff1663ffffffff168152602001908152602001600020905060006003811115613b6357fe5b8560020160009054906101000a900460ff166003811115613b8057fe5b1415613cb857600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001548560000181905550600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154856001018190555060028560020160006101000a81548160ff02191690836003811115613c3d57fe5b0217905550600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154816000018190555060018160020160006101000a81548160ff02191690836003811115613cae57fe5b0217905550613dcc565b60016003811115613cc557fe5b8560020160009054906101000a900460ff166003811115613ce257fe5b1415613dcb57600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154856001018190555060028560020160006101000a81548160ff02191690836003811115613d5457fe5b0217905550600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154816000018190555060018160020160006101000a81548160ff02191690836003811115613dc557fe5b02179055505b5b60058263ffffffff16815481101515613de157fe5b90600052602060002090015493505050509250929050565b6000828211151515613e0757fe5b818303905092915050565b6000808284019050838110151515613e2657fe5b8091505092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515613e6d57600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001548211151515613ebe57600080fd5b613ec9836000613a47565b5050613f2082600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154613df990919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550613fbb82600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154613e1290919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600080600084141561408657600091506140a5565b828402905082848281151561409757fe5b041415156140a157fe5b8091505b5092915050565b60008082848115156140ba57fe5b0490508091505092915050565b600160009054906101000a900460ff1615156140e257600080fd5b600160048111156140ef57fe5b600a60149054906101000a900460ff16600481111561410a57fe5b14151561411657600080fd5b601260ff16600a0a620f424060060202601260ff16600a0a62be6e0002601260ff16600a0a622f9b80020101600c54101515614175576003600a60146101000a81548160ff0219169083600481111561416b57fe5b021790555061419a565b6002600a60146101000a81548160ff0219169083600481111561419457fe5b02179055505b6000600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555042600b81905550600c546000819055507fd276948ab5d173775ef24b296a707861e46a91d073413edaf92d2aab54e1e968600a60149054906101000a900460ff16600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546040518083600481111561427657fe5b60ff1681526020018281526020019250505060405180910390a1565b60006142c2601260ff16600a0a6142b484601f5461407190919063ffffffff16565b6140ac90919063ffffffff16565b9050919050565b8154818355818115116142f0578183600052602060002091820191016142ef91906142f5565b5b505050565b61431791905b808211156143135760008160009055506001016142fb565b5090565b905600a165627a7a723058206796df0ee0073e0391f737dda3c2a4cb1e0bf833dc51df295323d831882124050029
Swarm Source
bzzr://6796df0ee0073e0391f737dda3c2a4cb1e0bf833dc51df295323d83188212405
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.