Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 1,605 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Add Virus Def | 9775892 | 1624 days ago | IN | 0 ETH | 0.00017605 | ||||
Add Virus Def | 9344879 | 1691 days ago | IN | 0 ETH | 0.00008802 | ||||
Add Virus Def | 9243965 | 1706 days ago | IN | 0 ETH | 0.00024556 | ||||
Add Virus Def | 9243932 | 1706 days ago | IN | 0 ETH | 0.00024556 | ||||
Add Virus Def | 8945920 | 1759 days ago | IN | 0 ETH | 0.00007847 | ||||
Add Virus Def | 8822652 | 1780 days ago | IN | 0 ETH | 0.00006393 | ||||
Add Virus Def | 8808294 | 1782 days ago | IN | 0 ETH | 0.00007893 | ||||
Add Virus Def | 8797714 | 1784 days ago | IN | 0 ETH | 0.00039466 | ||||
Add Virus Def | 8041636 | 1901 days ago | IN | 0 ETH | 0.00015786 | ||||
Add Virus Def | 7988959 | 1910 days ago | IN | 0 ETH | 0.0003953 | ||||
Add Virus Def | 7754698 | 1946 days ago | IN | 0 ETH | 0.00007039 | ||||
Add Virus Def | 7703713 | 1954 days ago | IN | 0 ETH | 0.00007039 | ||||
Add Virus Def | 7621256 | 1967 days ago | IN | 0 ETH | 0.00008319 | ||||
Attack | 7609391 | 1969 days ago | IN | 0 ETH | 0.00014912 | ||||
Attack | 7609284 | 1969 days ago | IN | 0 ETH | 0.00014706 | ||||
Attack | 7609120 | 1969 days ago | IN | 0 ETH | 0.00016206 | ||||
Add Virus Def | 7608386 | 1969 days ago | IN | 0 ETH | 0.00006408 | ||||
Attack | 7602733 | 1970 days ago | IN | 0 ETH | 0.00014912 | ||||
Attack | 7602559 | 1970 days ago | IN | 0 ETH | 0.00014699 | ||||
Attack | 7602455 | 1970 days ago | IN | 0 ETH | 0.00016206 | ||||
Add Virus Def | 7602429 | 1970 days ago | IN | 0 ETH | 0.00008319 | ||||
Attack | 7600830 | 1970 days ago | IN | 0 ETH | 0.0008 | ||||
Attack | 7600774 | 1970 days ago | IN | 0 ETH | 0.0008 | ||||
Attack | 7594368 | 1971 days ago | IN | 0 ETH | 0.00014906 | ||||
Attack | 7594138 | 1971 days ago | IN | 0 ETH | 0.00014706 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
CryptoArena
Compiler Version
v0.4.25+commit.59dbf8f1
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2019-02-13 */ pragma solidity ^0.4.25; /* * CryptoMiningWar - Build your own empire on Blockchain * Author: InspiGames * Website: https://cryptominingwar.github.io/ */ library SafeMath { /** * @dev Multiplies two numbers, throws on overflow. */ 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; } /** * @dev Integer division of two numbers, truncating the quotient. */ 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; } /** * @dev Substracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend). */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { assert(b <= a); return a - b; } /** * @dev Adds two numbers, throws on overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; assert(c >= a); return c; } function min(uint256 a, uint256 b) internal pure returns (uint256) { return a < b ? a : b; } } contract CryptoMiningWarInterface { uint256 public roundNumber; uint256 public deadline; function addHashrate( address /*_addr*/, uint256 /*_value*/ ) external pure {} function subCrystal( address /*_addr*/, uint256 /*_value*/ ) external pure {} function addCrystal( address /*_addr*/, uint256 /*_value*/ ) external pure {} function isMiningWarContract() external pure returns(bool); } interface CryptoEngineerInterface { function addVirus(address /*_addr*/, uint256 /*_value*/) external pure; function subVirus(address /*_addr*/, uint256 /*_value*/) external pure; function isContractMiniGame() external pure returns( bool /*_isContractMiniGame*/); function isEngineerContract() external pure returns(bool); function calCurrentVirus(address /*_addr*/) external view returns(uint256 /*_currentVirus*/); function calCurrentCrystals(address /*_addr*/) external pure returns(uint256 /*_currentCrystals*/); } interface CryptoProgramFactoryInterface { function isContractMiniGame() external pure returns( bool /*_isContractMiniGame*/ ); function isProgramFactoryContract() external pure returns(bool); function subPrograms(address /*_addr*/, uint256[] /*_programs*/) external; function getData(address _addr) external pure returns(uint256 /*_factoryLevel*/, uint256 /*_factoryTime*/, uint256[] /*memory _programs*/); function getProgramsValue() external pure returns(uint256[]); } interface MiniGameInterface { function isContractMiniGame() external pure returns( bool /*_isContractMiniGame*/ ); function fallback() external payable; } interface MemoryArenaInterface { function setVirusDef(address /*_addr*/, uint256 /*_value*/) external pure; function setNextTimeAtk(address /*_addr*/, uint256 /*_value*/) external pure; function setEndTimeUnequalledDef(address /*_addr*/, uint256 /*_value*/) external pure; function setNextTimeArenaBonus(address /*_addr*/, uint256 /*_value*/) external pure; function setBonusPoint(address /*_addr*/, uint256 /*_value*/) external pure; function getData(address _addr) external view returns(uint256 /*virusDef*/, uint256 /*nextTimeAtk*/, uint256 /*endTimeUnequalledDef*/, uint256 /*nextTimeArenaBonus*/, uint256 /*bonusPoint*/); function isMemoryArenaContract() external pure returns(bool); } contract CryptoArena { using SafeMath for uint256; address public administrator; uint256 private VIRUS_NORMAL = 0; uint256 private HALF_TIME_ATK= 60 * 15; uint256 private CRTSTAL_MINING_PERIOD = 86400; uint256 private VIRUS_MINING_PERIOD = 86400; uint256 private ROUND_TIME_MINING_WAR = 86400 * 7; uint256 private TIME_DAY = 24 hours; CryptoMiningWarInterface public MiningWar; CryptoEngineerInterface public Engineer; CryptoProgramFactoryInterface public Factory; MemoryArenaInterface public MemoryArena; // factory info mapping(uint256 => Virus) public viruses; // minigame info mapping(address => bool) public miniGames; mapping(uint256 => uint256) public arenaBonus; struct Virus { uint256 atk; uint256 def; } modifier isAdministrator() { require(msg.sender == administrator); _; } modifier onlyContractsMiniGame() { require(miniGames[msg.sender] == true); _; } event Attack(address atkAddress, address defAddress, bool victory, uint256 reward, uint256 virusAtkDead, uint256 virusDefDead, uint256 atk, uint256 def, uint256 round); // 1 : crystals, 2: hashrate, 3: virus event Programs(uint256 programLv1, uint256 programLv2, uint256 programLv3, uint256 programLv4); event ArenaBonus(address player, uint256 bonus); constructor() public { administrator = msg.sender; // set interface contract setMiningWarInterface(0x1b002cd1ba79dfad65e8abfbb3a97826e4960fe5); setEngineerInterface(0xd7afbf5141a7f1d6b0473175f7a6b0a7954ed3d2); setFactoryInterface(0x0498e54b6598e96b7a42ade3d238378dc57b5bb2); setMemoryArenaInterface(0x5fafca56f6860dceeb6e7495a74a806545802895); // setting virusupd viruses[VIRUS_NORMAL] = Virus(1,1); // init arena bonus initArenaBonus(); } function initArenaBonus() private { arenaBonus[0] = 15000; arenaBonus[1] = 50000; arenaBonus[2] = 100000; arenaBonus[3] = 200000; arenaBonus[4] = 350000; arenaBonus[5] = 500000; arenaBonus[6] = 1500000; } function () public payable { } /** * @dev MainContract used this function to verify game's contract */ function isContractMiniGame() public pure returns( bool _isContractMiniGame ) { _isContractMiniGame = true; } function isArenaContract() public pure returns(bool) { return true; } function upgrade(address addr) public isAdministrator { selfdestruct(addr); } /** * @dev Main Contract call this function to setup mini game. */ function setupMiniGame( uint256 /*_miningWarRoundNumber*/, uint256 /*_miningWarDeadline*/ ) public pure { } //-------------------------------------------------------------------------- // ADMIN ACTION //-------------------------------------------------------------------------- function setArenaBonus(uint256 idx, uint256 _value) public isAdministrator { arenaBonus[idx] = _value; } //-------------------------------------------------------------------------- // SETTING CONTRACT MINI GAME //-------------------------------------------------------------------------- function setContractsMiniGame( address _addr ) public isAdministrator { MiniGameInterface MiniGame = MiniGameInterface( _addr ); if( MiniGame.isContractMiniGame() == false ) revert(); miniGames[_addr] = true; } /** * @dev remove mini game contract from main contract * @param _addr mini game contract address */ function removeContractMiniGame(address _addr) public isAdministrator { miniGames[_addr] = false; } // --------------------------------------------------------------------------------------- // SET INTERFACE CONTRACT // --------------------------------------------------------------------------------------- function setMiningWarInterface(address _addr) public isAdministrator { CryptoMiningWarInterface miningWarInterface = CryptoMiningWarInterface(_addr); require(miningWarInterface.isMiningWarContract() == true); MiningWar = miningWarInterface; } function setEngineerInterface(address _addr) public isAdministrator { CryptoEngineerInterface engineerInterface = CryptoEngineerInterface(_addr); require(engineerInterface.isEngineerContract() == true); Engineer = engineerInterface; } function setFactoryInterface(address _addr) public isAdministrator { CryptoProgramFactoryInterface factoryInterface = CryptoProgramFactoryInterface(_addr); // require(factoryInterface.isProgramFactoryContract() == true); Factory = factoryInterface; } function setMemoryArenaInterface(address _addr) public isAdministrator { MemoryArenaInterface memoryArenaInterface = MemoryArenaInterface(_addr); require(memoryArenaInterface.isMemoryArenaContract() == true); MemoryArena = memoryArenaInterface; } // -------------------------------------------------------------------------------------------------------------- // FUCTION FOR NEXT VERSION // -------------------------------------------------------------------------------------------------------------- /** * @dev additional time unequalled defence * @param _addr player address */ function setVirusDef(address _addr, uint256 _value) public isAdministrator { MemoryArena.setVirusDef(_addr, SafeMath.mul(_value, VIRUS_MINING_PERIOD)); } function setAtkNowForPlayer(address _addr) public onlyContractsMiniGame { MemoryArena.setNextTimeAtk(_addr, now); } function setPlayerVirusDef(address _addr, uint256 _value) public onlyContractsMiniGame { MemoryArena.setVirusDef(_addr, SafeMath.mul(_value, VIRUS_MINING_PERIOD)); } function addVirusDef(address _addr, uint256 _virus) public { require(miniGames[msg.sender] == true || msg.sender == _addr); Engineer.subVirus(_addr, _virus); uint256 virusDef; (virusDef, , , ,) = MemoryArena.getData(_addr); virusDef += SafeMath.mul(_virus, VIRUS_MINING_PERIOD); MemoryArena.setVirusDef(_addr, virusDef); } function subVirusDef(address _addr, uint256 _virus) public onlyContractsMiniGame { _virus = SafeMath.mul(_virus, VIRUS_MINING_PERIOD); uint256 virusDef; (virusDef, , , ,) = MemoryArena.getData(_addr); if (virusDef < _virus) revert(); virusDef -= _virus; MemoryArena.setVirusDef(_addr, virusDef); } function addTimeUnequalledDefence(address _addr, uint256 _value) public onlyContractsMiniGame { uint256 endTimeUnequalledDef; (,,endTimeUnequalledDef,,) = MemoryArena.getData(_addr); if (endTimeUnequalledDef < now) endTimeUnequalledDef = now; MemoryArena.setEndTimeUnequalledDef(_addr, SafeMath.add(endTimeUnequalledDef, _value)); } // -------------------------------------------------------------------------------------------------------------- // MAIN CONTENT // -------------------------------------------------------------------------------------------------------------- function setVirusInfo(uint256 _atk, uint256 _def) public isAdministrator { Virus storage v = viruses[VIRUS_NORMAL]; v.atk = _atk; v.def = _def; } /** * @dev ATTACK * _programs[0]: + 10% _virus; * _programs[1]: revival 15 % _virus if this atk lose(not use item before) * _programs[2]: + 20% dame * _programs[3]: -5% virus defence of player you want attack */ function attack(address _defAddress, uint256 _virus, uint256[] _programs) public { require(validateAttack(msg.sender, _defAddress) == true); require(_programs.length == 4); require(validatePrograms(_programs) == true); Factory.subPrograms(msg.sender, _programs); MemoryArena.setNextTimeAtk(msg.sender, now + HALF_TIME_ATK); uint256 virusDef; // def of player def (virusDef, , , ,) = MemoryArena.getData(_defAddress); if (virusDef == 0) return endAttack(_defAddress, true, 0, 0, SafeMath.mul(_virus, VIRUS_MINING_PERIOD), 0, 1, _programs); Engineer.subVirus(msg.sender, _virus); uint256[] memory programsValue = Factory.getProgramsValue(); firstAttack(_defAddress, SafeMath.mul(_virus, VIRUS_MINING_PERIOD), _programs, programsValue, virusDef); } function firstAttack(address _defAddress, uint256 _virus, uint256[] _programs, uint256[] programsValue, uint256 virusDef) private { uint256 atk; uint256 def; uint256 virusAtkDead; uint256 virusDefDead; bool victory; (atk, def, virusAtkDead, virusDefDead, victory) = getResultAtk(msg.sender, _defAddress, _virus, _programs, programsValue, virusDef, true); if (_virus > virusAtkDead) Engineer.addVirus(msg.sender, SafeMath.div(SafeMath.sub(_virus, virusAtkDead), VIRUS_MINING_PERIOD)); endAttack(_defAddress, victory, SafeMath.div(virusAtkDead, VIRUS_MINING_PERIOD), SafeMath.div(virusDefDead, VIRUS_MINING_PERIOD), atk, def, 1, _programs); if (victory == false && _programs[1] == 1) againAttack(_defAddress, SafeMath.div(SafeMath.mul(SafeMath.mul(_virus, VIRUS_MINING_PERIOD), programsValue[1]), 100), programsValue); // revival 15 % _virus if this atk lose(not use item before) } function againAttack(address _defAddress, uint256 _virus, uint256[] programsValue) private returns(bool victory) { uint256 virusDef; // def of player def (virusDef, , , ,) = MemoryArena.getData(_defAddress); uint256[] memory programs; uint256 atk; uint256 def; uint256 virusDefDead; (atk, def, , virusDefDead, victory) = getResultAtk(msg.sender, _defAddress, _virus, programs, programsValue, virusDef, false); endAttack(_defAddress, victory, 0, SafeMath.div(virusDefDead, VIRUS_MINING_PERIOD), atk, def, 2, programs); } function getResultAtk(address atkAddress, address defAddress, uint256 _virus, uint256[] _programs, uint256[] programsValue, uint256 virusDef, bool isFirstAttack) private returns( uint256 atk, uint256 def, uint256 virusAtkDead, uint256 virusDefDead, bool victory ){ atk = _virus; uint256 rateAtk = 50 + randomNumber(atkAddress, 1, 101); uint256 rateDef = 50 + randomNumber(defAddress, rateAtk, 101); if (_programs[0] == 1 && isFirstAttack == true) // + 10% _virus; atk += SafeMath.div(SafeMath.mul(atk, programsValue[0]), 100); if (_programs[3] == 1 && isFirstAttack == true) {// -5% virus defence of player you want attack virusDef = SafeMath.sub(virusDef, SafeMath.div(SafeMath.mul(virusDef, programsValue[3]), 100)); MemoryArena.setVirusDef(defAddress, virusDef); } atk = SafeMath.div(SafeMath.mul(SafeMath.mul(atk, viruses[VIRUS_NORMAL].atk), rateAtk), 100); def = SafeMath.div(SafeMath.mul(SafeMath.mul(virusDef, viruses[VIRUS_NORMAL].def), rateDef), 100); if (_programs[2] == 1 && isFirstAttack == true) //+ 20% dame atk += SafeMath.div(SafeMath.mul(atk, programsValue[2]), 100); if (atk >= def) { virusAtkDead = SafeMath.min(_virus, SafeMath.div(SafeMath.mul(def, 100), SafeMath.mul(viruses[VIRUS_NORMAL].atk, rateAtk))); virusDefDead = virusDef; victory = true; } else { virusAtkDead = _virus; virusDefDead = SafeMath.min(virusDef, SafeMath.div(SafeMath.mul(atk, 100), SafeMath.mul(viruses[VIRUS_NORMAL].def, rateDef))); } MemoryArena.setVirusDef(defAddress, SafeMath.sub(virusDef, virusDefDead)); } function endAttack(address _defAddress, bool victory, uint256 virusAtkDead, uint256 virusDefDead, uint256 atk, uint256 def, uint256 round, uint256[] programs) private { uint256 reward = 0; if (victory == true) { uint256 pDefCrystals = Engineer.calCurrentCrystals(_defAddress); // subtract random 10% to 50% current crystals of player defence uint256 rate = 10 + randomNumber(_defAddress, pDefCrystals, 41); reward = SafeMath.div(SafeMath.mul(pDefCrystals, rate),100); if (reward > 0) { MiningWar.subCrystal(_defAddress, reward); MiningWar.addCrystal(msg.sender, reward); } updateBonusPoint(msg.sender); } emit Attack(msg.sender, _defAddress, victory, reward, virusAtkDead, virusDefDead, atk, def, round); if (round == 1) emit Programs( programs[0], programs[1], programs[2], programs[3]); } function updateBonusPoint(address _addr) private { uint256 nextTimeArenaBonus; uint256 bonusPoint; (,,,nextTimeArenaBonus, bonusPoint) = MemoryArena.getData(_addr); if (now >= nextTimeArenaBonus) { bonusPoint += 1; } if (bonusPoint == 3) { bonusPoint = 0; nextTimeArenaBonus = now + TIME_DAY; uint256 noDayStartMiningWar = getNoDayStartMiningWar(); MiningWar.addCrystal(_addr, arenaBonus[noDayStartMiningWar - 1]); emit ArenaBonus(_addr, arenaBonus[noDayStartMiningWar - 1]); } MemoryArena.setNextTimeArenaBonus(_addr, nextTimeArenaBonus); MemoryArena.setBonusPoint(_addr, bonusPoint); } function validateAttack(address _atkAddress, address _defAddress) private view returns(bool _status) { uint256 nextTimeAtk; (,nextTimeAtk,,,) = MemoryArena.getData(_atkAddress); if ( _atkAddress != _defAddress && nextTimeAtk <= now && canAttack(_defAddress) == true ) { _status = true; } } function validatePrograms(uint256[] _programs) private pure returns(bool _status) { _status = true; for(uint256 idx = 0; idx < _programs.length; idx++) { if (_programs[idx] != 0 && _programs[idx] != 1) _status = false; } } function canAttack(address _addr) private view returns(bool _canAtk) { uint256 endTimeUnequalledDef; (,,endTimeUnequalledDef,,) = MemoryArena.getData(_addr); if ( endTimeUnequalledDef < now && Engineer.calCurrentCrystals(_addr) >= 5000 ) { _canAtk = true; } } // -------------------------------------------------------------------------------------------------------------- // CALL FUNCTION // -------------------------------------------------------------------------------------------------------------- function getData(address _addr) public view returns( uint256 _virusDef, uint256 _nextTimeAtk, uint256 _endTimeUnequalledDef, bool _canAtk, // engineer uint256 _currentVirus, // mingin war uint256 _currentCrystals ) { (_virusDef, _nextTimeAtk, _endTimeUnequalledDef, ,) = MemoryArena.getData(_addr); _virusDef = SafeMath.div(_virusDef, VIRUS_MINING_PERIOD); _currentVirus = SafeMath.div(Engineer.calCurrentVirus(_addr), VIRUS_MINING_PERIOD); _currentCrystals = Engineer.calCurrentCrystals(_addr); _canAtk = canAttack(_addr); } function getDataForUI(address _addr) public view returns( uint256 _virusDef, uint256 _nextTimeAtk, uint256 _endTimeUnequalledDef, uint256 _nextTimeArenaBonus, uint256 _bonusPoint, bool _canAtk, // engineer uint256 _currentVirus, // mingin war uint256 _currentCrystals ) { (_virusDef, _nextTimeAtk, _endTimeUnequalledDef, _nextTimeArenaBonus, _bonusPoint) = MemoryArena.getData(_addr); _virusDef = SafeMath.div(_virusDef, VIRUS_MINING_PERIOD); _currentVirus = SafeMath.div(Engineer.calCurrentVirus(_addr), VIRUS_MINING_PERIOD); _currentCrystals = Engineer.calCurrentCrystals(_addr); _canAtk = canAttack(_addr); } // -------------------------------------------------------------------------------------------------------------- // INTERNAL FUNCTION // -------------------------------------------------------------------------------------------------------------- function randomNumber(address _addr, uint256 randNonce, uint256 _maxNumber) private view returns(uint256) { return uint256(keccak256(abi.encodePacked(now, _addr, randNonce))) % _maxNumber; } function getNoDayStartMiningWar() public view returns(uint256) { uint256 deadline = MiningWar.deadline(); if (deadline < now) return 7; uint256 timeEndMiningWar = deadline - now; uint256 noDayEndMiningWar = SafeMath.div(timeEndMiningWar, TIME_DAY); return SafeMath.sub(7, noDayEndMiningWar); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"upgrade","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"}],"name":"setFactoryInterface","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"viruses","outputs":[{"name":"atk","type":"uint256"},{"name":"def","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"idx","type":"uint256"},{"name":"_value","type":"uint256"}],"name":"setArenaBonus","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isContractMiniGame","outputs":[{"name":"_isContractMiniGame","type":"bool"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"},{"name":"_virus","type":"uint256"}],"name":"addVirusDef","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_addr","type":"address"}],"name":"getData","outputs":[{"name":"_virusDef","type":"uint256"},{"name":"_nextTimeAtk","type":"uint256"},{"name":"_endTimeUnequalledDef","type":"uint256"},{"name":"_canAtk","type":"bool"},{"name":"_currentVirus","type":"uint256"},{"name":"_currentCrystals","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_atk","type":"uint256"},{"name":"_def","type":"uint256"}],"name":"setVirusInfo","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"MemoryArena","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"},{"name":"_value","type":"uint256"}],"name":"setPlayerVirusDef","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"}],"name":"setAtkNowForPlayer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"}],"name":"setContractsMiniGame","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"}],"name":"setMemoryArenaInterface","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isArenaContract","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"}],"name":"setMiningWarInterface","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"},{"name":"_virus","type":"uint256"}],"name":"subVirusDef","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"}],"name":"removeContractMiniGame","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"arenaBonus","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"miniGames","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"Engineer","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"name":"setupMiniGame","outputs":[],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[],"name":"MiningWar","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"Factory","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_addr","type":"address"}],"name":"getDataForUI","outputs":[{"name":"_virusDef","type":"uint256"},{"name":"_nextTimeAtk","type":"uint256"},{"name":"_endTimeUnequalledDef","type":"uint256"},{"name":"_nextTimeArenaBonus","type":"uint256"},{"name":"_bonusPoint","type":"uint256"},{"name":"_canAtk","type":"bool"},{"name":"_currentVirus","type":"uint256"},{"name":"_currentCrystals","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"},{"name":"_value","type":"uint256"}],"name":"setVirusDef","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"},{"name":"_value","type":"uint256"}],"name":"addTimeUnequalledDefence","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"administrator","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getNoDayStartMiningWar","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_defAddress","type":"address"},{"name":"_virus","type":"uint256"},{"name":"_programs","type":"uint256[]"}],"name":"attack","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"}],"name":"setEngineerInterface","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":"atkAddress","type":"address"},{"indexed":false,"name":"defAddress","type":"address"},{"indexed":false,"name":"victory","type":"bool"},{"indexed":false,"name":"reward","type":"uint256"},{"indexed":false,"name":"virusAtkDead","type":"uint256"},{"indexed":false,"name":"virusDefDead","type":"uint256"},{"indexed":false,"name":"atk","type":"uint256"},{"indexed":false,"name":"def","type":"uint256"},{"indexed":false,"name":"round","type":"uint256"}],"name":"Attack","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"programLv1","type":"uint256"},{"indexed":false,"name":"programLv2","type":"uint256"},{"indexed":false,"name":"programLv3","type":"uint256"},{"indexed":false,"name":"programLv4","type":"uint256"}],"name":"Programs","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"player","type":"address"},{"indexed":false,"name":"bonus","type":"uint256"}],"name":"ArenaBonus","type":"event"}]
Contract Creation Code
60806040526000600155610384600255620151806003556201518060045562093a80600555620151806006553480156200003857600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620000a7731b002cd1ba79dfad65e8abfbb3a97826e4960fe562000193640100000000026401000000009004565b620000d573d7afbf5141a7f1d6b0473175f7a6b0a7954ed3d2620002ee640100000000026401000000009004565b62000103730498e54b6598e96b7a42ade3d238378dc57b5bb262000449640100000000026401000000009004565b62000131735fafca56f6860dceeb6e7495a74a806545802895620004ef640100000000026401000000009004565b6040805190810160405280600181526020016001815250600b6000600154815260200190815260200160002060008201518160000155602082015181600101559050506200018d6200064a640100000000026401000000009004565b6200070d565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515620001f157600080fd5b819050600115158173ffffffffffffffffffffffffffffffffffffffff1663688b5c2b6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156200025d57600080fd5b505af115801562000272573d6000803e3d6000fd5b505050506040513d60208110156200028957600080fd5b81019080805190602001909291905050501515141515620002a957600080fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156200034c57600080fd5b819050600115158173ffffffffffffffffffffffffffffffffffffffff1663b9a59b836040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015620003b857600080fd5b505af1158015620003cd573d6000803e3d6000fd5b505050506040513d6020811015620003e457600080fd5b810190808051906020019092919050505015151415156200040457600080fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515620004a757600080fd5b81905080600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156200054d57600080fd5b819050600115158173ffffffffffffffffffffffffffffffffffffffff1663d83cecfc6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015620005b957600080fd5b505af1158015620005ce573d6000803e3d6000fd5b505050506040513d6020811015620005e557600080fd5b810190808051906020019092919050505015151415156200060557600080fd5b80600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b613a98600d60008081526020019081526020016000208190555061c350600d60006001815260200190815260200160002081905550620186a0600d6000600281526020019081526020016000208190555062030d40600d6000600381526020019081526020016000208190555062055730600d600060048152602001908152602001600020819055506207a120600d600060058152602001908152602001600020819055506216e360600d60006006815260200190815260200160002081905550565b6144ae806200071d6000396000f300608060405260043610610180576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630900f0101461018257806319afa824146101c55780631bb57b9614610208578063298b0457146102505780633281d57614610287578063374e164c146102b657806338266b22146103035780634bbb58b2146103815780636daf547b146103b85780637df841cd1461040f5780637f3e4d1b1461045c57806384ffcb5d1461049f5780638877ccd5146104e25780638890e13d146105255780638a56b2301461055457806398598905146105975780639ff12bba146105e4578063a94b7ea114610627578063b239dac614610668578063b4bd7d41146106c3578063be7ccd7e1461071a578063c3f656f114610751578063c83dd231146107a8578063e7597784146107ff578063e9c0b8f61461088b578063f0af0844146108d8578063f53d0a8e14610925578063fb75dc9f1461097c578063feb31939146109a7578063ffa651b614610a37575b005b34801561018e57600080fd5b506101c3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a7a565b005b3480156101d157600080fd5b50610206600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610aee565b005b34801561021457600080fd5b5061023360048036038101908080359060200190929190505050610b93565b604051808381526020018281526020019250505060405180910390f35b34801561025c57600080fd5b506102856004803603810190808035906020019092919080359060200190929190505050610bb7565b005b34801561029357600080fd5b5061029c610c2e565b604051808215151515815260200191505060405180910390f35b3480156102c257600080fd5b50610301600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c37565b005b34801561030f57600080fd5b50610344600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fcb565b6040518087815260200186815260200185815260200184151515158152602001838152602001828152602001965050505050505060405180910390f35b34801561038d57600080fd5b506103b66004803603810190808035906020019092919080359060200190929190505050611324565b005b3480156103c457600080fd5b506103cd6113af565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561041b57600080fd5b5061045a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506113d5565b005b34801561046857600080fd5b5061049d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611520565b005b3480156104ab57600080fd5b506104e0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061165f565b005b3480156104ee57600080fd5b50610523600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117cb565b005b34801561053157600080fd5b5061053a611921565b604051808215151515815260200191505060405180910390f35b34801561056057600080fd5b50610595600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061192a565b005b3480156105a357600080fd5b506105e2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611a80565b005b3480156105f057600080fd5b50610625600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d11565b005b34801561063357600080fd5b5061065260048036038101908080359060200190929190505050611dc7565b6040518082815260200191505060405180910390f35b34801561067457600080fd5b506106a9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ddf565b604051808215151515815260200191505060405180910390f35b3480156106cf57600080fd5b506106d8611dff565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561072657600080fd5b5061074f6004803603810190808035906020019092919080359060200190929190505050611e25565b005b34801561075d57600080fd5b50610766611e29565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107b457600080fd5b506107bd611e4f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561080b57600080fd5b50610840600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e75565b60405180898152602001888152602001878152602001868152602001858152602001841515151581526020018381526020018281526020019850505050505050505060405180910390f35b34801561089757600080fd5b506108d6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506121d8565b005b3480156108e457600080fd5b50610923600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061231f565b005b34801561093157600080fd5b5061093a6125a7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561098857600080fd5b506109916125cc565b6040518082815260200191505060405180910390f35b3480156109b357600080fd5b50610a35600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192905050506126cd565b005b348015610a4357600080fd5b50610a78600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612c88565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610ad557600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16ff5b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610b4b57600080fd5b81905080600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600b6020528060005260406000206000915090508060000154908060010154905082565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610c1257600080fd5b80600d6000848152602001908152602001600020819055505050565b60006001905090565b600060011515600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151480610cc357508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515610cce57600080fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663920775d484846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015610d9357600080fd5b505af1158015610da7573d6000803e3d6000fd5b50505050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338266b22846040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060a060405180830381600087803b158015610e6857600080fd5b505af1158015610e7c573d6000803e3d6000fd5b505050506040513d60a0811015610e9257600080fd5b8101908080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291905050509091925090915090505080915050610ee582600454612dde565b81019050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e9c0b8f684836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015610fae57600080fd5b505af1158015610fc2573d6000803e3d6000fd5b50505050505050565b600080600080600080600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338266b22886040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060a060405180830381600087803b15801561109157600080fd5b505af11580156110a5573d6000803e3d6000fd5b505050506040513d60a08110156110bb57600080fd5b81019080805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919050505090505080965081975082985050505061110f86600454612e19565b9550611214600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166378f55622896040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156111d157600080fd5b505af11580156111e5573d6000803e3d6000fd5b505050506040513d60208110156111fb57600080fd5b8101908080519060200190929190505050600454612e19565b9150600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166395360a02886040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156112d357600080fd5b505af11580156112e7573d6000803e3d6000fd5b505050506040513d60208110156112fd57600080fd5b8101908080519060200190929190505050905061131987612e34565b925091939550919395565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561138157600080fd5b600b600060015481526020019081526020016000209050828160000181905550818160010181905550505050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60011515600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514151561143457600080fd5b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e9c0b8f68361147f84600454612dde565b6040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561150457600080fd5b505af1158015611518573d6000803e3d6000fd5b505050505050565b60011515600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514151561157f57600080fd5b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f872334682426040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561164457600080fd5b505af1158015611658573d6000803e3d6000fd5b5050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156116bc57600080fd5b819050600015158173ffffffffffffffffffffffffffffffffffffffff16633281d5766040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561172757600080fd5b505af115801561173b573d6000803e3d6000fd5b505050506040513d602081101561175157600080fd5b81019080805190602001909291905050501515141561176f57600080fd5b6001600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561182857600080fd5b819050600115158173ffffffffffffffffffffffffffffffffffffffff1663d83cecfc6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561189357600080fd5b505af11580156118a7573d6000803e3d6000fd5b505050506040513d60208110156118bd57600080fd5b810190808051906020019092919050505015151415156118dc57600080fd5b80600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60006001905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561198757600080fd5b819050600115158173ffffffffffffffffffffffffffffffffffffffff1663688b5c2b6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156119f257600080fd5b505af1158015611a06573d6000803e3d6000fd5b505050506040513d6020811015611a1c57600080fd5b81019080805190602001909291905050501515141515611a3b57600080fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600060011515600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515141515611ae157600080fd5b611aed82600454612dde565b9150600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338266b22846040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060a060405180830381600087803b158015611bac57600080fd5b505af1158015611bc0573d6000803e3d6000fd5b505050506040513d60a0811015611bd657600080fd5b810190808051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190505050909192509091509050508091505081811015611c2a57600080fd5b8181039050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e9c0b8f684836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015611cf457600080fd5b505af1158015611d08573d6000803e3d6000fd5b50505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611d6c57600080fd5b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600d6020528060005260406000206000915090505481565b600c6020528060005260406000206000915054906101000a900460ff1681565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600080600080600080600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338266b228a6040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060a060405180830381600087803b158015611f3e57600080fd5b505af1158015611f52573d6000803e3d6000fd5b505050506040513d60a0811015611f6857600080fd5b810190808051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190505050809850819950829a50839b50849c505050505050611fc188600454612e19565b97506120c6600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166378f556228b6040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561208357600080fd5b505af1158015612097573d6000803e3d6000fd5b505050506040513d60208110156120ad57600080fd5b8101908080519060200190929190505050600454612e19565b9150600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166395360a028a6040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561218557600080fd5b505af1158015612199573d6000803e3d6000fd5b505050506040513d60208110156121af57600080fd5b810190808051906020019092919050505090506121cb89612e34565b9250919395975091939597565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561223357600080fd5b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e9c0b8f68361227e84600454612dde565b6040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561230357600080fd5b505af1158015612317573d6000803e3d6000fd5b505050505050565b600060011515600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514151561238057600080fd5b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338266b22846040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060a060405180830381600087803b15801561243d57600080fd5b505af1158015612451573d6000803e3d6000fd5b505050506040513d60a081101561246757600080fd5b81019080805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919050505090919293509091925090505080915050428110156124bc574290505b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663805851c284612505848661307f565b6040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561258a57600080fd5b505af115801561259e573d6000803e3d6000fd5b50505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600080600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166329dcb0cf6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561265857600080fd5b505af115801561266c573d6000803e3d6000fd5b505050506040513d602081101561268257600080fd5b81019080805190602001909291905050509250428310156126a657600793506126c7565b42830391506126b782600654612e19565b90506126c460078261309d565b93505b50505090565b60006060600115156126df33876130b6565b15151415156126ed57600080fd5b600483511415156126fd57600080fd5b6001151561270a8461324d565b151514151561271857600080fd5b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632222e43a33856040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019060200280838360005b838110156127f85780820151818401526020810190506127dd565b505050509050019350505050600060405180830381600087803b15801561281e57600080fd5b505af1158015612832573d6000803e3d6000fd5b50505050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f87233463360025442016040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156128ff57600080fd5b505af1158015612913573d6000803e3d6000fd5b50505050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338266b22866040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060a060405180830381600087803b1580156129d457600080fd5b505af11580156129e8573d6000803e3d6000fd5b505050506040513d60a08110156129fe57600080fd5b81019080805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919050505090919250909150905050809250506000821415612a7257612a6d856001600080612a6389600454612dde565b600060018a6132bf565b612c81565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663920775d433866040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015612b3757600080fd5b505af1158015612b4b573d6000803e3d6000fd5b50505050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663669a828b6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b158015612bd557600080fd5b505af1158015612be9573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052506020811015612c1357600080fd5b810190808051640100000000811115612c2b57600080fd5b82810190506020810184811115612c4157600080fd5b8151856020820283011164010000000082111715612c5e57600080fd5b50509291905050509050612c8085612c7886600454612dde565b85848661375c565b5b5050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612ce557600080fd5b819050600115158173ffffffffffffffffffffffffffffffffffffffff1663b9a59b836040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015612d5057600080fd5b505af1158015612d64573d6000803e3d6000fd5b505050506040513d6020811015612d7a57600080fd5b81019080805190602001909291905050501515141515612d9957600080fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6000806000841415612df35760009150612e12565b8284029050828482811515612e0457fe5b04141515612e0e57fe5b8091505b5092915050565b6000808284811515612e2757fe5b0490508091505092915050565b600080600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338266b22846040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060a060405180830381600087803b158015612ef457600080fd5b505af1158015612f08573d6000803e3d6000fd5b505050506040513d60a0811015612f1e57600080fd5b81019080805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919050505090919293509091925090505080915050428110801561306f5750611388600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166395360a02856040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561303157600080fd5b505af1158015613045573d6000803e3d6000fd5b505050506040513d602081101561305b57600080fd5b810190808051906020019092919050505010155b1561307957600191505b50919050565b600080828401905083811015151561309357fe5b8091505092915050565b60008282111515156130ab57fe5b818303905092915050565b600080600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338266b22856040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060a060405180830381600087803b15801561317657600080fd5b505af115801561318a573d6000803e3d6000fd5b505050506040513d60a08110156131a057600080fd5b8101908080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291905050509091929350909150905050809150508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156132245750428111155b801561323c57506001151561323884612e34565b1515145b1561324657600191505b5092915050565b60008060019150600090505b82518110156132b9576000838281518110151561327257fe5b90602001906020020151141580156132a257506001838281518110151561329557fe5b9060200190602002015114155b156132ac57600091505b8080600101915050613259565b50919050565b6000806000809250600115158a151514156135c357600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166395360a028c6040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561339157600080fd5b505af11580156133a5573d6000803e3d6000fd5b505050506040513d60208110156133bb57600080fd5b810190808051906020019092919050505091506133da8b836029613929565b600a0190506133f36133ec8383612dde565b6064612e19565b925060008311156135b957600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b04eb6398c856040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156134c357600080fd5b505af11580156134d7573d6000803e3d6000fd5b50505050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f6e212ea33856040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156135a057600080fd5b505af11580156135b4573d6000803e3d6000fd5b505050505b6135c233613a10565b5b7fb521f84624afe810424a8cbb85a0740a5999831e697a75fa208455349473e7c7338c8c868d8d8d8d8d604051808a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200188151515158152602001878152602001868152602001858152602001848152602001838152602001828152602001995050505050505050505060405180910390a1600185141561374f577fe71af83b34f734e9b87bbcb0fba4bf4e7c28c768c814fe98932dc7ce791d0fb68460008151811015156136cf57fe5b906020019060200201518560018151811015156136e857fe5b9060200190602002015186600281518110151561370157fe5b9060200190602002015187600381518110151561371a57fe5b906020019060200201516040518085815260200184815260200183815260200182815260200194505050505060405180910390a15b5050505050505050505050565b6000806000806000613774338b8b8b8b8b6001613eac565b80955081965082975083985084995050505050508289111561388257600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ec6f772d336137e46137dc8d8861309d565b600454612e19565b6040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561386957600080fd5b505af115801561387d573d6000803e3d6000fd5b505050505b6138a98a8261389386600454612e19565b61389f86600454612e19565b898960018f6132bf565b600015158115151480156138d5575060018860018151811015156138c957fe5b90602001906020020151145b1561391d5761391b8a61391561390e6138f08d600454612dde565b8b60018151811015156138ff57fe5b90602001906020020151612dde565b6064612e19565b896142e5565b505b50505050505050505050565b600081428585604051602001808481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140182815260200193505050506040516020818303038152906040526040518082805190602001908083835b6020831015156139cc57805182526020820191506020810190506020830392506139a7565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902060019004811515613a0657fe5b0690509392505050565b6000806000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338266b22856040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060a060405180830381600087803b158015613ad257600080fd5b505af1158015613ae6573d6000803e3d6000fd5b505050506040513d60a0811015613afc57600080fd5b81019080805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919050505090919293509091925090915080935081945050508242101515613b59576001820191505b6003821415613cec576000915060065442019250613b756125cc565b9050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f6e212ea85600d6000600186038152602001908152602001600020546040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015613c5257600080fd5b505af1158015613c66573d6000803e3d6000fd5b505050507fea7cd0de76ac8eb0d5724fb1899c743126230de73befa0953b014e1be7d159ea84600d600060018503815260200190815260200160002054604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639c1c840885856040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015613db157600080fd5b505af1158015613dc5573d6000803e3d6000fd5b50505050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b419e98385846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015613e8e57600080fd5b505af1158015613ea2573d6000803e3d6000fd5b5050505050505050565b60008060008060008060008b9650613ec78e60016065613929565b6032019150613ed88d836065613929565b603201905060018b6000815181101515613eee57fe5b90602001906020020151148015613f09575060011515881515145b15613f3f57613f3a613f33888c6000815181101515613f2457fe5b90602001906020020151612dde565b6064612e19565b870196505b60018b6003815181101515613f5057fe5b90602001906020020151148015613f6b575060011515881515145b1561408557613fa589613fa0613f998c8e6003815181101515613f8a57fe5b90602001906020020151612dde565b6064612e19565b61309d565b9850600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e9c0b8f68e8b6040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561406c57600080fd5b505af1158015614080573d6000803e3d6000fd5b505050505b6140ba6140b36140ad89600b6000600154815260200190815260200160002060000154612dde565b84612dde565b6064612e19565b96506140f16140ea6140e48b600b6000600154815260200190815260200160002060010154612dde565b83612dde565b6064612e19565b955060018b600281518110151561410457fe5b9060200190602002015114801561411f575060011515881515145b1561415557614150614149888c600281518110151561413a57fe5b90602001906020020151612dde565b6064612e19565b870196505b85871015156141aa5761419c8c614197614170896064612dde565b614192600b600060015481526020019081526020016000206000015487612dde565b612e19565b614469565b9450889350600192506141ee565b8b94506141eb896141e66141bf8a6064612dde565b6141e1600b600060015481526020019081526020016000206001015486612dde565b612e19565b614469565b93505b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e9c0b8f68e6142378c8861309d565b6040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156142bc57600080fd5b505af11580156142d0573d6000803e3d6000fd5b50505050505097509750975097509792505050565b60008060606000806000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338266b228a6040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060a060405180830381600087803b1580156143ac57600080fd5b505af11580156143c0573d6000803e3d6000fd5b505050506040513d60a08110156143d657600080fd5b810190808051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190505050909192509091509050508095505061442d338a8a878b8a6000613eac565b9091508099508194508295508396505050505061445d8987600061445385600454612e19565b878760028b6132bf565b50505050509392505050565b6000818310614478578161447a565b825b9050929150505600a165627a7a723058203826de86df67238e25a96e679a9b4e6f5b1fc7eaefd6782b42b9f898d689cbee0029
Deployed Bytecode
0x608060405260043610610180576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630900f0101461018257806319afa824146101c55780631bb57b9614610208578063298b0457146102505780633281d57614610287578063374e164c146102b657806338266b22146103035780634bbb58b2146103815780636daf547b146103b85780637df841cd1461040f5780637f3e4d1b1461045c57806384ffcb5d1461049f5780638877ccd5146104e25780638890e13d146105255780638a56b2301461055457806398598905146105975780639ff12bba146105e4578063a94b7ea114610627578063b239dac614610668578063b4bd7d41146106c3578063be7ccd7e1461071a578063c3f656f114610751578063c83dd231146107a8578063e7597784146107ff578063e9c0b8f61461088b578063f0af0844146108d8578063f53d0a8e14610925578063fb75dc9f1461097c578063feb31939146109a7578063ffa651b614610a37575b005b34801561018e57600080fd5b506101c3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a7a565b005b3480156101d157600080fd5b50610206600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610aee565b005b34801561021457600080fd5b5061023360048036038101908080359060200190929190505050610b93565b604051808381526020018281526020019250505060405180910390f35b34801561025c57600080fd5b506102856004803603810190808035906020019092919080359060200190929190505050610bb7565b005b34801561029357600080fd5b5061029c610c2e565b604051808215151515815260200191505060405180910390f35b3480156102c257600080fd5b50610301600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c37565b005b34801561030f57600080fd5b50610344600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fcb565b6040518087815260200186815260200185815260200184151515158152602001838152602001828152602001965050505050505060405180910390f35b34801561038d57600080fd5b506103b66004803603810190808035906020019092919080359060200190929190505050611324565b005b3480156103c457600080fd5b506103cd6113af565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561041b57600080fd5b5061045a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506113d5565b005b34801561046857600080fd5b5061049d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611520565b005b3480156104ab57600080fd5b506104e0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061165f565b005b3480156104ee57600080fd5b50610523600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117cb565b005b34801561053157600080fd5b5061053a611921565b604051808215151515815260200191505060405180910390f35b34801561056057600080fd5b50610595600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061192a565b005b3480156105a357600080fd5b506105e2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611a80565b005b3480156105f057600080fd5b50610625600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d11565b005b34801561063357600080fd5b5061065260048036038101908080359060200190929190505050611dc7565b6040518082815260200191505060405180910390f35b34801561067457600080fd5b506106a9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ddf565b604051808215151515815260200191505060405180910390f35b3480156106cf57600080fd5b506106d8611dff565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561072657600080fd5b5061074f6004803603810190808035906020019092919080359060200190929190505050611e25565b005b34801561075d57600080fd5b50610766611e29565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107b457600080fd5b506107bd611e4f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561080b57600080fd5b50610840600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e75565b60405180898152602001888152602001878152602001868152602001858152602001841515151581526020018381526020018281526020019850505050505050505060405180910390f35b34801561089757600080fd5b506108d6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506121d8565b005b3480156108e457600080fd5b50610923600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061231f565b005b34801561093157600080fd5b5061093a6125a7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561098857600080fd5b506109916125cc565b6040518082815260200191505060405180910390f35b3480156109b357600080fd5b50610a35600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192905050506126cd565b005b348015610a4357600080fd5b50610a78600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612c88565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610ad557600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16ff5b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610b4b57600080fd5b81905080600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600b6020528060005260406000206000915090508060000154908060010154905082565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610c1257600080fd5b80600d6000848152602001908152602001600020819055505050565b60006001905090565b600060011515600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151480610cc357508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515610cce57600080fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663920775d484846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015610d9357600080fd5b505af1158015610da7573d6000803e3d6000fd5b50505050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338266b22846040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060a060405180830381600087803b158015610e6857600080fd5b505af1158015610e7c573d6000803e3d6000fd5b505050506040513d60a0811015610e9257600080fd5b8101908080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291905050509091925090915090505080915050610ee582600454612dde565b81019050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e9c0b8f684836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015610fae57600080fd5b505af1158015610fc2573d6000803e3d6000fd5b50505050505050565b600080600080600080600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338266b22886040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060a060405180830381600087803b15801561109157600080fd5b505af11580156110a5573d6000803e3d6000fd5b505050506040513d60a08110156110bb57600080fd5b81019080805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919050505090505080965081975082985050505061110f86600454612e19565b9550611214600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166378f55622896040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156111d157600080fd5b505af11580156111e5573d6000803e3d6000fd5b505050506040513d60208110156111fb57600080fd5b8101908080519060200190929190505050600454612e19565b9150600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166395360a02886040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156112d357600080fd5b505af11580156112e7573d6000803e3d6000fd5b505050506040513d60208110156112fd57600080fd5b8101908080519060200190929190505050905061131987612e34565b925091939550919395565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561138157600080fd5b600b600060015481526020019081526020016000209050828160000181905550818160010181905550505050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60011515600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514151561143457600080fd5b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e9c0b8f68361147f84600454612dde565b6040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561150457600080fd5b505af1158015611518573d6000803e3d6000fd5b505050505050565b60011515600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514151561157f57600080fd5b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f872334682426040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561164457600080fd5b505af1158015611658573d6000803e3d6000fd5b5050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156116bc57600080fd5b819050600015158173ffffffffffffffffffffffffffffffffffffffff16633281d5766040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561172757600080fd5b505af115801561173b573d6000803e3d6000fd5b505050506040513d602081101561175157600080fd5b81019080805190602001909291905050501515141561176f57600080fd5b6001600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561182857600080fd5b819050600115158173ffffffffffffffffffffffffffffffffffffffff1663d83cecfc6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561189357600080fd5b505af11580156118a7573d6000803e3d6000fd5b505050506040513d60208110156118bd57600080fd5b810190808051906020019092919050505015151415156118dc57600080fd5b80600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60006001905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561198757600080fd5b819050600115158173ffffffffffffffffffffffffffffffffffffffff1663688b5c2b6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156119f257600080fd5b505af1158015611a06573d6000803e3d6000fd5b505050506040513d6020811015611a1c57600080fd5b81019080805190602001909291905050501515141515611a3b57600080fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600060011515600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515141515611ae157600080fd5b611aed82600454612dde565b9150600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338266b22846040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060a060405180830381600087803b158015611bac57600080fd5b505af1158015611bc0573d6000803e3d6000fd5b505050506040513d60a0811015611bd657600080fd5b810190808051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190505050909192509091509050508091505081811015611c2a57600080fd5b8181039050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e9c0b8f684836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015611cf457600080fd5b505af1158015611d08573d6000803e3d6000fd5b50505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611d6c57600080fd5b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600d6020528060005260406000206000915090505481565b600c6020528060005260406000206000915054906101000a900460ff1681565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600080600080600080600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338266b228a6040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060a060405180830381600087803b158015611f3e57600080fd5b505af1158015611f52573d6000803e3d6000fd5b505050506040513d60a0811015611f6857600080fd5b810190808051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190505050809850819950829a50839b50849c505050505050611fc188600454612e19565b97506120c6600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166378f556228b6040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561208357600080fd5b505af1158015612097573d6000803e3d6000fd5b505050506040513d60208110156120ad57600080fd5b8101908080519060200190929190505050600454612e19565b9150600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166395360a028a6040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561218557600080fd5b505af1158015612199573d6000803e3d6000fd5b505050506040513d60208110156121af57600080fd5b810190808051906020019092919050505090506121cb89612e34565b9250919395975091939597565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561223357600080fd5b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e9c0b8f68361227e84600454612dde565b6040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561230357600080fd5b505af1158015612317573d6000803e3d6000fd5b505050505050565b600060011515600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514151561238057600080fd5b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338266b22846040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060a060405180830381600087803b15801561243d57600080fd5b505af1158015612451573d6000803e3d6000fd5b505050506040513d60a081101561246757600080fd5b81019080805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919050505090919293509091925090505080915050428110156124bc574290505b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663805851c284612505848661307f565b6040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561258a57600080fd5b505af115801561259e573d6000803e3d6000fd5b50505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600080600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166329dcb0cf6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561265857600080fd5b505af115801561266c573d6000803e3d6000fd5b505050506040513d602081101561268257600080fd5b81019080805190602001909291905050509250428310156126a657600793506126c7565b42830391506126b782600654612e19565b90506126c460078261309d565b93505b50505090565b60006060600115156126df33876130b6565b15151415156126ed57600080fd5b600483511415156126fd57600080fd5b6001151561270a8461324d565b151514151561271857600080fd5b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632222e43a33856040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019060200280838360005b838110156127f85780820151818401526020810190506127dd565b505050509050019350505050600060405180830381600087803b15801561281e57600080fd5b505af1158015612832573d6000803e3d6000fd5b50505050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f87233463360025442016040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156128ff57600080fd5b505af1158015612913573d6000803e3d6000fd5b50505050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338266b22866040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060a060405180830381600087803b1580156129d457600080fd5b505af11580156129e8573d6000803e3d6000fd5b505050506040513d60a08110156129fe57600080fd5b81019080805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919050505090919250909150905050809250506000821415612a7257612a6d856001600080612a6389600454612dde565b600060018a6132bf565b612c81565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663920775d433866040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015612b3757600080fd5b505af1158015612b4b573d6000803e3d6000fd5b50505050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663669a828b6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b158015612bd557600080fd5b505af1158015612be9573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052506020811015612c1357600080fd5b810190808051640100000000811115612c2b57600080fd5b82810190506020810184811115612c4157600080fd5b8151856020820283011164010000000082111715612c5e57600080fd5b50509291905050509050612c8085612c7886600454612dde565b85848661375c565b5b5050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612ce557600080fd5b819050600115158173ffffffffffffffffffffffffffffffffffffffff1663b9a59b836040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015612d5057600080fd5b505af1158015612d64573d6000803e3d6000fd5b505050506040513d6020811015612d7a57600080fd5b81019080805190602001909291905050501515141515612d9957600080fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6000806000841415612df35760009150612e12565b8284029050828482811515612e0457fe5b04141515612e0e57fe5b8091505b5092915050565b6000808284811515612e2757fe5b0490508091505092915050565b600080600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338266b22846040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060a060405180830381600087803b158015612ef457600080fd5b505af1158015612f08573d6000803e3d6000fd5b505050506040513d60a0811015612f1e57600080fd5b81019080805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919050505090919293509091925090505080915050428110801561306f5750611388600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166395360a02856040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561303157600080fd5b505af1158015613045573d6000803e3d6000fd5b505050506040513d602081101561305b57600080fd5b810190808051906020019092919050505010155b1561307957600191505b50919050565b600080828401905083811015151561309357fe5b8091505092915050565b60008282111515156130ab57fe5b818303905092915050565b600080600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338266b22856040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060a060405180830381600087803b15801561317657600080fd5b505af115801561318a573d6000803e3d6000fd5b505050506040513d60a08110156131a057600080fd5b8101908080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291905050509091929350909150905050809150508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156132245750428111155b801561323c57506001151561323884612e34565b1515145b1561324657600191505b5092915050565b60008060019150600090505b82518110156132b9576000838281518110151561327257fe5b90602001906020020151141580156132a257506001838281518110151561329557fe5b9060200190602002015114155b156132ac57600091505b8080600101915050613259565b50919050565b6000806000809250600115158a151514156135c357600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166395360a028c6040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561339157600080fd5b505af11580156133a5573d6000803e3d6000fd5b505050506040513d60208110156133bb57600080fd5b810190808051906020019092919050505091506133da8b836029613929565b600a0190506133f36133ec8383612dde565b6064612e19565b925060008311156135b957600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b04eb6398c856040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156134c357600080fd5b505af11580156134d7573d6000803e3d6000fd5b50505050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f6e212ea33856040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156135a057600080fd5b505af11580156135b4573d6000803e3d6000fd5b505050505b6135c233613a10565b5b7fb521f84624afe810424a8cbb85a0740a5999831e697a75fa208455349473e7c7338c8c868d8d8d8d8d604051808a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200188151515158152602001878152602001868152602001858152602001848152602001838152602001828152602001995050505050505050505060405180910390a1600185141561374f577fe71af83b34f734e9b87bbcb0fba4bf4e7c28c768c814fe98932dc7ce791d0fb68460008151811015156136cf57fe5b906020019060200201518560018151811015156136e857fe5b9060200190602002015186600281518110151561370157fe5b9060200190602002015187600381518110151561371a57fe5b906020019060200201516040518085815260200184815260200183815260200182815260200194505050505060405180910390a15b5050505050505050505050565b6000806000806000613774338b8b8b8b8b6001613eac565b80955081965082975083985084995050505050508289111561388257600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ec6f772d336137e46137dc8d8861309d565b600454612e19565b6040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561386957600080fd5b505af115801561387d573d6000803e3d6000fd5b505050505b6138a98a8261389386600454612e19565b61389f86600454612e19565b898960018f6132bf565b600015158115151480156138d5575060018860018151811015156138c957fe5b90602001906020020151145b1561391d5761391b8a61391561390e6138f08d600454612dde565b8b60018151811015156138ff57fe5b90602001906020020151612dde565b6064612e19565b896142e5565b505b50505050505050505050565b600081428585604051602001808481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140182815260200193505050506040516020818303038152906040526040518082805190602001908083835b6020831015156139cc57805182526020820191506020810190506020830392506139a7565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902060019004811515613a0657fe5b0690509392505050565b6000806000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338266b22856040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060a060405180830381600087803b158015613ad257600080fd5b505af1158015613ae6573d6000803e3d6000fd5b505050506040513d60a0811015613afc57600080fd5b81019080805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919050505090919293509091925090915080935081945050508242101515613b59576001820191505b6003821415613cec576000915060065442019250613b756125cc565b9050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f6e212ea85600d6000600186038152602001908152602001600020546040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015613c5257600080fd5b505af1158015613c66573d6000803e3d6000fd5b505050507fea7cd0de76ac8eb0d5724fb1899c743126230de73befa0953b014e1be7d159ea84600d600060018503815260200190815260200160002054604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639c1c840885856040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015613db157600080fd5b505af1158015613dc5573d6000803e3d6000fd5b50505050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b419e98385846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015613e8e57600080fd5b505af1158015613ea2573d6000803e3d6000fd5b5050505050505050565b60008060008060008060008b9650613ec78e60016065613929565b6032019150613ed88d836065613929565b603201905060018b6000815181101515613eee57fe5b90602001906020020151148015613f09575060011515881515145b15613f3f57613f3a613f33888c6000815181101515613f2457fe5b90602001906020020151612dde565b6064612e19565b870196505b60018b6003815181101515613f5057fe5b90602001906020020151148015613f6b575060011515881515145b1561408557613fa589613fa0613f998c8e6003815181101515613f8a57fe5b90602001906020020151612dde565b6064612e19565b61309d565b9850600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e9c0b8f68e8b6040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561406c57600080fd5b505af1158015614080573d6000803e3d6000fd5b505050505b6140ba6140b36140ad89600b6000600154815260200190815260200160002060000154612dde565b84612dde565b6064612e19565b96506140f16140ea6140e48b600b6000600154815260200190815260200160002060010154612dde565b83612dde565b6064612e19565b955060018b600281518110151561410457fe5b9060200190602002015114801561411f575060011515881515145b1561415557614150614149888c600281518110151561413a57fe5b90602001906020020151612dde565b6064612e19565b870196505b85871015156141aa5761419c8c614197614170896064612dde565b614192600b600060015481526020019081526020016000206000015487612dde565b612e19565b614469565b9450889350600192506141ee565b8b94506141eb896141e66141bf8a6064612dde565b6141e1600b600060015481526020019081526020016000206001015486612dde565b612e19565b614469565b93505b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e9c0b8f68e6142378c8861309d565b6040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156142bc57600080fd5b505af11580156142d0573d6000803e3d6000fd5b50505050505097509750975097509792505050565b60008060606000806000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338266b228a6040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060a060405180830381600087803b1580156143ac57600080fd5b505af11580156143c0573d6000803e3d6000fd5b505050506040513d60a08110156143d657600080fd5b810190808051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190505050909192509091509050508095505061442d338a8a878b8a6000613eac565b9091508099508194508295508396505050505061445d8987600061445385600454612e19565b878760028b6132bf565b50505050509392505050565b6000818310614478578161447a565b825b9050929150505600a165627a7a723058203826de86df67238e25a96e679a9b4e6f5b1fc7eaefd6782b42b9f898d689cbee0029
Swarm Source
bzzr://3826de86df67238e25a96e679a9b4e6f5b1fc7eaefd6782b42b9f898d689cbee
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.