ERC-20
Overview
Max Total Supply
56,537 EMONA
Holders
570
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 0 Decimals)
Balance
6 EMONAValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
EtheremonAsset
Compiler Version
v0.4.19+commit.c4cbbb05
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2018-03-14 */ pragma solidity ^0.4.18; // Etheremon ERC721 // copyright [email protected] contract SafeMath { /* function assert(bool assertion) internal { */ /* if (!assertion) { */ /* throw; */ /* } */ /* } // assert no longer needed once solidity is on 0.4.10 */ function safeAdd(uint256 x, uint256 y) pure internal returns(uint256) { uint256 z = x + y; assert((z >= x) && (z >= y)); return z; } function safeSubtract(uint256 x, uint256 y) pure internal returns(uint256) { assert(x >= y); uint256 z = x - y; return z; } function safeMult(uint256 x, uint256 y) pure internal returns(uint256) { uint256 z = x * y; assert((x == 0)||(z/x == y)); return z; } } contract BasicAccessControl { address public owner; // address[] public moderators; uint16 public totalModerators = 0; mapping (address => bool) public moderators; bool public isMaintaining = true; function BasicAccessControl() public { owner = msg.sender; } modifier onlyOwner { require(msg.sender == owner); _; } modifier onlyModerators() { require(moderators[msg.sender] == true); _; } modifier isActive { require(!isMaintaining); _; } function ChangeOwner(address _newOwner) onlyOwner public { if (_newOwner != address(0)) { owner = _newOwner; } } function AddModerator(address _newModerator) onlyOwner public { if (moderators[_newModerator] == false) { moderators[_newModerator] = true; totalModerators += 1; } } function RemoveModerator(address _oldModerator) onlyOwner public { if (moderators[_oldModerator] == true) { moderators[_oldModerator] = false; totalModerators -= 1; } } function UpdateMaintaining(bool _isMaintaining) onlyOwner public { isMaintaining = _isMaintaining; } } contract EtheremonEnum { enum ResultCode { SUCCESS, ERROR_CLASS_NOT_FOUND, ERROR_LOW_BALANCE, ERROR_SEND_FAIL, ERROR_NOT_TRAINER, ERROR_NOT_ENOUGH_MONEY, ERROR_INVALID_AMOUNT } enum ArrayType { CLASS_TYPE, STAT_STEP, STAT_START, STAT_BASE, OBJ_SKILL } enum PropertyType { ANCESTOR, XFACTOR } } contract EtheremonDataBase is EtheremonEnum, BasicAccessControl, SafeMath { uint64 public totalMonster; uint32 public totalClass; // write function withdrawEther(address _sendTo, uint _amount) onlyOwner public returns(ResultCode); function addElementToArrayType(ArrayType _type, uint64 _id, uint8 _value) onlyModerators public returns(uint); function updateIndexOfArrayType(ArrayType _type, uint64 _id, uint _index, uint8 _value) onlyModerators public returns(uint); function setMonsterClass(uint32 _classId, uint256 _price, uint256 _returnPrice, bool _catchable) onlyModerators public returns(uint32); function addMonsterObj(uint32 _classId, address _trainer, string _name) onlyModerators public returns(uint64); function setMonsterObj(uint64 _objId, string _name, uint32 _exp, uint32 _createIndex, uint32 _lastClaimIndex) onlyModerators public; function increaseMonsterExp(uint64 _objId, uint32 amount) onlyModerators public; function decreaseMonsterExp(uint64 _objId, uint32 amount) onlyModerators public; function removeMonsterIdMapping(address _trainer, uint64 _monsterId) onlyModerators public; function addMonsterIdMapping(address _trainer, uint64 _monsterId) onlyModerators public; function clearMonsterReturnBalance(uint64 _monsterId) onlyModerators public returns(uint256 amount); function collectAllReturnBalance(address _trainer) onlyModerators public returns(uint256 amount); function transferMonster(address _from, address _to, uint64 _monsterId) onlyModerators public returns(ResultCode); function addExtraBalance(address _trainer, uint256 _amount) onlyModerators public returns(uint256); function deductExtraBalance(address _trainer, uint256 _amount) onlyModerators public returns(uint256); function setExtraBalance(address _trainer, uint256 _amount) onlyModerators public; // read function getSizeArrayType(ArrayType _type, uint64 _id) constant public returns(uint); function getElementInArrayType(ArrayType _type, uint64 _id, uint _index) constant public returns(uint8); function getMonsterClass(uint32 _classId) constant public returns(uint32 classId, uint256 price, uint256 returnPrice, uint32 total, bool catchable); function getMonsterObj(uint64 _objId) constant public returns(uint64 objId, uint32 classId, address trainer, uint32 exp, uint32 createIndex, uint32 lastClaimIndex, uint createTime); function getMonsterName(uint64 _objId) constant public returns(string name); function getExtraBalance(address _trainer) constant public returns(uint256); function getMonsterDexSize(address _trainer) constant public returns(uint); function getMonsterObjId(address _trainer, uint index) constant public returns(uint64); function getExpectedBalance(address _trainer) constant public returns(uint256); function getMonsterReturn(uint64 _objId) constant public returns(uint256 current, uint256 total); } interface EtheremonBattle { function isOnBattle(uint64 _objId) constant external returns(bool); } interface EtheremonTradeInterface { function isOnTrading(uint64 _objId) constant external returns(bool); } contract ERC721 { // ERC20 compatible functions // function name() constant returns (string name); // function symbol() constant returns (string symbol); function totalSupply() public constant returns (uint256 supply); function balanceOf(address _owner) public constant returns (uint256 balance); // Functions that define ownership function ownerOf(uint256 _tokenId) public constant returns (address owner); function approve(address _to, uint256 _tokenId) external; function takeOwnership(uint256 _tokenId) external; function transfer(address _to, uint256 _tokenId) external; function transferFrom(address _from, address _to, uint256 _tokenId) external; function tokenOfOwnerByIndex(address _owner, uint256 _index) public constant returns (uint tokenId); // Token metadata //function tokenMetadata(uint256 _tokenId) constant returns (string infoUrl); // Events event Transfer(address indexed _from, address indexed _to, uint256 _tokenId); event Approval(address indexed _owner, address indexed _approved, uint256 _tokenId); } contract EtheremonAsset is BasicAccessControl, ERC721 { string public constant name = "EtheremonAsset"; string public constant symbol = "EMONA"; mapping (address => mapping (uint256 => address)) public allowed; // data contract address public dataContract; address public battleContract; address public tradeContract; // helper struct struct MonsterClassAcc { uint32 classId; uint256 price; uint256 returnPrice; uint32 total; bool catchable; } struct MonsterObjAcc { uint64 monsterId; uint32 classId; address trainer; string name; uint32 exp; uint32 createIndex; uint32 lastClaimIndex; uint createTime; } // modifier modifier requireDataContract { require(dataContract != address(0)); _; } modifier requireBattleContract { require(battleContract != address(0)); _; } modifier requireTradeContract { require(tradeContract != address(0)); _; } function EtheremonAsset(address _dataContract, address _battleContract, address _tradeContract) public { dataContract = _dataContract; battleContract = _battleContract; tradeContract = _tradeContract; } function setContract(address _dataContract, address _battleContract, address _tradeContract) onlyModerators external { dataContract = _dataContract; battleContract = _battleContract; tradeContract = _tradeContract; } // public function totalSupply() public constant requireDataContract returns (uint256 supply){ EtheremonDataBase data = EtheremonDataBase(dataContract); return data.totalMonster(); } function balanceOf(address _owner) public constant requireDataContract returns (uint balance) { EtheremonDataBase data = EtheremonDataBase(dataContract); return data.getMonsterDexSize(_owner); } function ownerOf(uint256 _tokenId) public constant requireDataContract returns (address owner) { EtheremonDataBase data = EtheremonDataBase(dataContract); MonsterObjAcc memory obj; (obj.monsterId, obj.classId, obj.trainer, obj.exp, obj.createIndex, obj.lastClaimIndex, obj.createTime) = data.getMonsterObj(uint64(_tokenId)); require(obj.monsterId == uint64(_tokenId)); return obj.trainer; } function isApprovable(address _owner, uint256 _tokenId) public constant requireDataContract requireBattleContract requireTradeContract returns(bool) { EtheremonDataBase data = EtheremonDataBase(dataContract); MonsterObjAcc memory obj; (obj.monsterId, obj.classId, obj.trainer, obj.exp, obj.createIndex, obj.lastClaimIndex, obj.createTime) = data.getMonsterObj(uint64(_tokenId)); if (obj.monsterId != uint64(_tokenId)) return false; if (obj.trainer != _owner) return false; // check battle & trade contract EtheremonBattle battle = EtheremonBattle(battleContract); EtheremonTradeInterface trade = EtheremonTradeInterface(tradeContract); return (!battle.isOnBattle(obj.monsterId) && !trade.isOnTrading(obj.monsterId)); } function approve(address _to, uint256 _tokenId) requireBattleContract requireTradeContract isActive external { EtheremonDataBase data = EtheremonDataBase(dataContract); MonsterObjAcc memory obj; (obj.monsterId, obj.classId, obj.trainer, obj.exp, obj.createIndex, obj.lastClaimIndex, obj.createTime) = data.getMonsterObj(uint64(_tokenId)); require(obj.monsterId == uint64(_tokenId)); require(msg.sender == obj.trainer); require(msg.sender != _to); // check battle & trade contract EtheremonBattle battle = EtheremonBattle(battleContract); EtheremonTradeInterface trade = EtheremonTradeInterface(tradeContract); if (battle.isOnBattle(obj.monsterId) || trade.isOnTrading(obj.monsterId)) revert(); allowed[msg.sender][_tokenId] = _to; Approval(msg.sender, _to, _tokenId); } function takeOwnership(uint256 _tokenId) requireDataContract requireBattleContract requireTradeContract isActive external { EtheremonDataBase data = EtheremonDataBase(dataContract); MonsterObjAcc memory obj; (obj.monsterId, obj.classId, obj.trainer, obj.exp, obj.createIndex, obj.lastClaimIndex, obj.createTime) = data.getMonsterObj(uint64(_tokenId)); require(obj.monsterId == uint64(_tokenId)); require(msg.sender != obj.trainer); require(allowed[obj.trainer][_tokenId] == msg.sender); // check battle & trade contract EtheremonBattle battle = EtheremonBattle(battleContract); EtheremonTradeInterface trade = EtheremonTradeInterface(tradeContract); if (battle.isOnBattle(obj.monsterId) || trade.isOnTrading(obj.monsterId)) revert(); // remove allowed allowed[obj.trainer][_tokenId] = address(0); // transfer owner data.removeMonsterIdMapping(obj.trainer, obj.monsterId); data.addMonsterIdMapping(msg.sender, obj.monsterId); Transfer(obj.trainer, msg.sender, _tokenId); } function transfer(address _to, uint256 _tokenId) requireDataContract isActive external { EtheremonDataBase data = EtheremonDataBase(dataContract); MonsterObjAcc memory obj; (obj.monsterId, obj.classId, obj.trainer, obj.exp, obj.createIndex, obj.lastClaimIndex, obj.createTime) = data.getMonsterObj(uint64(_tokenId)); require(obj.monsterId == uint64(_tokenId)); require(obj.trainer == msg.sender); require(msg.sender != _to); require(_to != address(0)); // check battle & trade contract EtheremonBattle battle = EtheremonBattle(battleContract); EtheremonTradeInterface trade = EtheremonTradeInterface(tradeContract); if (battle.isOnBattle(obj.monsterId) || trade.isOnTrading(obj.monsterId)) revert(); // remove allowed allowed[obj.trainer][_tokenId] = address(0); // transfer owner data.removeMonsterIdMapping(obj.trainer, obj.monsterId); data.addMonsterIdMapping(_to, obj.monsterId); Transfer(obj.trainer, _to, _tokenId); } function transferFrom(address _from, address _to, uint256 _tokenId) requireDataContract requireBattleContract requireTradeContract external { EtheremonDataBase data = EtheremonDataBase(dataContract); MonsterObjAcc memory obj; (obj.monsterId, obj.classId, obj.trainer, obj.exp, obj.createIndex, obj.lastClaimIndex, obj.createTime) = data.getMonsterObj(uint64(_tokenId)); require(obj.monsterId == uint64(_tokenId)); require(obj.trainer == _from); require(_to != address(0)); require(_to != _from); require(allowed[_from][_tokenId] == msg.sender); // check battle & trade contract EtheremonBattle battle = EtheremonBattle(battleContract); EtheremonTradeInterface trade = EtheremonTradeInterface(tradeContract); if (battle.isOnBattle(obj.monsterId) || trade.isOnTrading(obj.monsterId)) revert(); // remove allowed allowed[_from][_tokenId] = address(0); // transfer owner data.removeMonsterIdMapping(obj.trainer, obj.monsterId); data.addMonsterIdMapping(_to, obj.monsterId); Transfer(obj.trainer, _to, _tokenId); } function tokenOfOwnerByIndex(address _owner, uint256 _index) public constant requireDataContract returns (uint tokenId) { EtheremonDataBase data = EtheremonDataBase(dataContract); return data.getMonsterObjId(_owner, _index); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"approve","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"dataContract","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"moderators","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"supply","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_dataContract","type":"address"},{"name":"_battleContract","type":"address"},{"name":"_tradeContract","type":"address"}],"name":"setContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_index","type":"uint256"}],"name":"tokenOfOwnerByIndex","outputs":[{"name":"tokenId","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"battleContract","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_isMaintaining","type":"bool"}],"name":"UpdateMaintaining","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalModerators","outputs":[{"name":"","type":"uint16"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"name":"owner","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newModerator","type":"address"}],"name":"AddModerator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"uint256"}],"name":"allowed","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"isApprovable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"takeOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_oldModerator","type":"address"}],"name":"RemoveModerator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isMaintaining","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"ChangeOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"tradeContract","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_dataContract","type":"address"},{"name":"_battleContract","type":"address"},{"name":"_tradeContract","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_approved","type":"address"},{"indexed":false,"name":"_tokenId","type":"uint256"}],"name":"Approval","type":"event"}]
Contract Creation Code
606060405260008060146101000a81548161ffff021916908361ffff1602179055506001600260006101000a81548160ff021916908315150217905550341561004757600080fd5b604051606080613a7e83398101604052808051906020019091908051906020019091908051906020019091905050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050506138f48061018a6000396000f30060606040526004361061013e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde0314610143578063095ea7b3146101d15780630d6688181461021357806314d0f1ba1461026857806318160ddd146102b957806323b872dd146102e257806329291054146103435780632f745c59146103ba578063423b1ca31461041057806348ef5aa8146104655780634efb023e1461048a5780636352211e146104bb5780636c81fd6d1461051e57806370a0823114610557578063739f660d146105a45780638a0520fb146106265780638da5cb5b1461068057806395d89b41146106d5578063a9059cbb14610763578063b2e6ceeb146107a5578063b85d6275146107c8578063ee4e441614610801578063f28532921461082e578063ffa640d814610867575b600080fd5b341561014e57600080fd5b6101566108bc565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561019657808201518184015260208101905061017b565b50505050905090810190601f1680156101c35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156101dc57600080fd5b610211600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506108f5565b005b341561021e57600080fd5b610226610ec2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561027357600080fd5b61029f600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610ee8565b604051808215151515815260200191505060405180910390f35b34156102c457600080fd5b6102cc610f08565b6040518082815260200191505060405180910390f35b34156102ed57600080fd5b610341600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611025565b005b341561034e57600080fd5b6103b8600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506118c0565b005b34156103c557600080fd5b6103fa600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506119e7565b6040518082815260200191505060405180910390f35b341561041b57600080fd5b610423611b46565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561047057600080fd5b61048860048080351515906020019091905050611b6c565b005b341561049557600080fd5b61049d611be4565b604051808261ffff1661ffff16815260200191505060405180910390f35b34156104c657600080fd5b6104dc6004808035906020019091905050611bf8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561052957600080fd5b610555600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611e33565b005b341561056257600080fd5b61058e600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611f73565b6040518082815260200191505060405180910390f35b34156105af57600080fd5b6105e4600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506120bf565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561063157600080fd5b610666600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050612101565b604051808215151515815260200191505060405180910390f35b341561068b57600080fd5b6106936125e8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156106e057600080fd5b6106e861260d565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561072857808201518184015260208101905061070d565b50505050905090810190601f1680156107555780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561076e57600080fd5b6107a3600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050612646565b005b34156107b057600080fd5b6107c66004808035906020019091905050612d9a565b005b34156107d357600080fd5b6107ff600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506135e1565b005b341561080c57600080fd5b610814613722565b604051808215151515815260200191505060405180910390f35b341561083957600080fd5b610865600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050613735565b005b341561087257600080fd5b61087a61380a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6040805190810160405280600e81526020017f4574686572656d6f6e417373657400000000000000000000000000000000000081525081565b60006108ff613830565b600080600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415151561096057600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515156109be57600080fd5b600260009054906101000a900460ff161515156109da57600080fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1693508373ffffffffffffffffffffffffffffffffffffffff16630720246086600060405160e001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808267ffffffffffffffff1667ffffffffffffffff16815260200191505060e060405180830381600087803b1515610a8a57600080fd5b6102c65a03f11515610a9b57600080fd5b50505060405180519060200180519060200180519060200180519060200180519060200180519060200180519050896000018a6020018b6040018c6080018d60a0018e60c0018f60e001878152508763ffffffff1663ffffffff168152508763ffffffff1663ffffffff168152508763ffffffff1663ffffffff168152508773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152508763ffffffff1663ffffffff168152508767ffffffffffffffff1667ffffffffffffffff16815250505050505050508467ffffffffffffffff16836000015167ffffffffffffffff16141515610b9e57600080fd5b826040015173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610bdc57600080fd5b8573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151515610c1757600080fd5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508173ffffffffffffffffffffffffffffffffffffffff166335f097f384600001516000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808267ffffffffffffffff1667ffffffffffffffff168152602001915050602060405180830381600087803b1515610cf057600080fd5b6102c65a03f11515610d0157600080fd5b5050506040518051905080610dbc57508073ffffffffffffffffffffffffffffffffffffffff1663a847a71c84600001516000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808267ffffffffffffffff1667ffffffffffffffff168152602001915050602060405180830381600087803b1515610da057600080fd5b6102c65a03f11515610db157600080fd5b505050604051805190505b15610dc657600080fd5b85600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600087815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925876040518082815260200191505060405180910390a3505050505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60016020528060005260406000206000915054906101000a900460ff1681565b600080600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515610f6957600080fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff16637a09defe6000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515610ffa57600080fd5b6102c65a03f1151561100b57600080fd5b5050506040518051905067ffffffffffffffff1691505090565b600061102f613830565b600080600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415151561109057600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515156110ee57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415151561114c57600080fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1693508373ffffffffffffffffffffffffffffffffffffffff16630720246086600060405160e001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808267ffffffffffffffff1667ffffffffffffffff16815260200191505060e060405180830381600087803b15156111fc57600080fd5b6102c65a03f1151561120d57600080fd5b50505060405180519060200180519060200180519060200180519060200180519060200180519060200180519050896000018a6020018b6040018c6080018d60a0018e60c0018f60e001878152508763ffffffff1663ffffffff168152508763ffffffff1663ffffffff168152508763ffffffff1663ffffffff168152508773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152508763ffffffff1663ffffffff168152508767ffffffffffffffff1667ffffffffffffffff16815250505050505050508467ffffffffffffffff16836000015167ffffffffffffffff1614151561131057600080fd5b8673ffffffffffffffffffffffffffffffffffffffff16836040015173ffffffffffffffffffffffffffffffffffffffff1614151561134e57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415151561138a57600080fd5b8673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141515156113c557600080fd5b3373ffffffffffffffffffffffffffffffffffffffff16600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600087815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561146f57600080fd5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508173ffffffffffffffffffffffffffffffffffffffff166335f097f384600001516000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808267ffffffffffffffff1667ffffffffffffffff168152602001915050602060405180830381600087803b151561154857600080fd5b6102c65a03f1151561155957600080fd5b505050604051805190508061161457508073ffffffffffffffffffffffffffffffffffffffff1663a847a71c84600001516000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808267ffffffffffffffff1667ffffffffffffffff168152602001915050602060405180830381600087803b15156115f857600080fd5b6102c65a03f1151561160957600080fd5b505050604051805190505b1561161e57600080fd5b6000600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600087815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508373ffffffffffffffffffffffffffffffffffffffff166360c6ccb2846040015185600001516040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018267ffffffffffffffff1667ffffffffffffffff16815260200192505050600060405180830381600087803b151561176c57600080fd5b6102c65a03f1151561177d57600080fd5b5050508373ffffffffffffffffffffffffffffffffffffffff16639248019e8785600001516040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018267ffffffffffffffff1667ffffffffffffffff16815260200192505050600060405180830381600087803b151561183a57600080fd5b6102c65a03f1151561184b57600080fd5b5050508573ffffffffffffffffffffffffffffffffffffffff16836040015173ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a350505050505050565b60011515600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514151561191f57600080fd5b82600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b600080600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515611a4857600080fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff166375fe2e3385856000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515611b1857600080fd5b6102c65a03f11515611b2957600080fd5b5050506040518051905067ffffffffffffffff1691505092915050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611bc757600080fd5b80600260006101000a81548160ff02191690831515021790555050565b600060149054906101000a900461ffff1681565b600080611c03613830565b600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515611c6157600080fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508173ffffffffffffffffffffffffffffffffffffffff16630720246085600060405160e001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808267ffffffffffffffff1667ffffffffffffffff16815260200191505060e060405180830381600087803b1515611d1157600080fd5b6102c65a03f11515611d2257600080fd5b505050604051805190602001805190602001805190602001805190602001805190602001805190602001805190508760000188602001896040018a6080018b60a0018c60c0018d60e001878152508763ffffffff1663ffffffff168152508763ffffffff1663ffffffff168152508763ffffffff1663ffffffff168152508773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152508763ffffffff1663ffffffff168152508767ffffffffffffffff1667ffffffffffffffff16815250505050505050508367ffffffffffffffff16816000015167ffffffffffffffff16141515611e2557600080fd5b806040015192505050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e8e57600080fd5b60001515600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415611f705760018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600060148282829054906101000a900461ffff160192506101000a81548161ffff021916908361ffff1602179055505b50565b600080600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515611fd457600080fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff166347c17bac846000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b151561209c57600080fd5b6102c65a03f115156120ad57600080fd5b50505060405180519050915050919050565b60036020528160005260406000206020528060005260406000206000915091509054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008061210c613830565b600080600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415151561216d57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515156121cb57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415151561222957600080fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1693508373ffffffffffffffffffffffffffffffffffffffff16630720246087600060405160e001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808267ffffffffffffffff1667ffffffffffffffff16815260200191505060e060405180830381600087803b15156122d957600080fd5b6102c65a03f115156122ea57600080fd5b50505060405180519060200180519060200180519060200180519060200180519060200180519060200180519050896000018a6020018b6040018c6080018d60a0018e60c0018f60e001878152508763ffffffff1663ffffffff168152508763ffffffff1663ffffffff168152508763ffffffff1663ffffffff168152508773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152508763ffffffff1663ffffffff168152508767ffffffffffffffff1667ffffffffffffffff16815250505050505050508567ffffffffffffffff16836000015167ffffffffffffffff161415156123f157600094506125de565b8673ffffffffffffffffffffffffffffffffffffffff16836040015173ffffffffffffffffffffffffffffffffffffffff1614151561243357600094506125de565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508173ffffffffffffffffffffffffffffffffffffffff166335f097f384600001516000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808267ffffffffffffffff1667ffffffffffffffff168152602001915050602060405180830381600087803b151561250c57600080fd5b6102c65a03f1151561251d57600080fd5b505050604051805190501580156125db57508073ffffffffffffffffffffffffffffffffffffffff1663a847a71c84600001516000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808267ffffffffffffffff1667ffffffffffffffff168152602001915050602060405180830381600087803b15156125be57600080fd5b6102c65a03f115156125cf57600080fd5b50505060405180519050155b94505b5050505092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040805190810160405280600581526020017f454d4f4e4100000000000000000000000000000000000000000000000000000081525081565b6000612650613830565b600080600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515156126b157600080fd5b600260009054906101000a900460ff161515156126cd57600080fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1693508373ffffffffffffffffffffffffffffffffffffffff16630720246086600060405160e001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808267ffffffffffffffff1667ffffffffffffffff16815260200191505060e060405180830381600087803b151561277d57600080fd5b6102c65a03f1151561278e57600080fd5b50505060405180519060200180519060200180519060200180519060200180519060200180519060200180519050896000018a6020018b6040018c6080018d60a0018e60c0018f60e001878152508763ffffffff1663ffffffff168152508763ffffffff1663ffffffff168152508763ffffffff1663ffffffff168152508773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152508763ffffffff1663ffffffff168152508767ffffffffffffffff1667ffffffffffffffff16815250505050505050508467ffffffffffffffff16836000015167ffffffffffffffff1614151561289157600080fd5b3373ffffffffffffffffffffffffffffffffffffffff16836040015173ffffffffffffffffffffffffffffffffffffffff161415156128cf57600080fd5b8573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415151561290a57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415151561294657600080fd5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508173ffffffffffffffffffffffffffffffffffffffff166335f097f384600001516000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808267ffffffffffffffff1667ffffffffffffffff168152602001915050602060405180830381600087803b1515612a1f57600080fd5b6102c65a03f11515612a3057600080fd5b5050506040518051905080612aeb57508073ffffffffffffffffffffffffffffffffffffffff1663a847a71c84600001516000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808267ffffffffffffffff1667ffffffffffffffff168152602001915050602060405180830381600087803b1515612acf57600080fd5b6102c65a03f11515612ae057600080fd5b505050604051805190505b15612af557600080fd5b600060036000856040015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600087815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508373ffffffffffffffffffffffffffffffffffffffff166360c6ccb2846040015185600001516040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018267ffffffffffffffff1667ffffffffffffffff16815260200192505050600060405180830381600087803b1515612c4757600080fd5b6102c65a03f11515612c5857600080fd5b5050508373ffffffffffffffffffffffffffffffffffffffff16639248019e8785600001516040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018267ffffffffffffffff1667ffffffffffffffff16815260200192505050600060405180830381600087803b1515612d1557600080fd5b6102c65a03f11515612d2657600080fd5b5050508573ffffffffffffffffffffffffffffffffffffffff16836040015173ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a3505050505050565b6000612da4613830565b600080600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515612e0557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515612e6357600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515612ec157600080fd5b600260009054906101000a900460ff16151515612edd57600080fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1693508373ffffffffffffffffffffffffffffffffffffffff16630720246086600060405160e001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808267ffffffffffffffff1667ffffffffffffffff16815260200191505060e060405180830381600087803b1515612f8d57600080fd5b6102c65a03f11515612f9e57600080fd5b50505060405180519060200180519060200180519060200180519060200180519060200180519060200180519050896000018a6020018b6040018c6080018d60a0018e60c0018f60e001878152508763ffffffff1663ffffffff168152508763ffffffff1663ffffffff168152508763ffffffff1663ffffffff168152508773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152508763ffffffff1663ffffffff168152508767ffffffffffffffff1667ffffffffffffffff16815250505050505050508467ffffffffffffffff16836000015167ffffffffffffffff161415156130a157600080fd5b826040015173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515156130e057600080fd5b3373ffffffffffffffffffffffffffffffffffffffff1660036000856040015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600087815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561318e57600080fd5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508173ffffffffffffffffffffffffffffffffffffffff166335f097f384600001516000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808267ffffffffffffffff1667ffffffffffffffff168152602001915050602060405180830381600087803b151561326757600080fd5b6102c65a03f1151561327857600080fd5b505050604051805190508061333357508073ffffffffffffffffffffffffffffffffffffffff1663a847a71c84600001516000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808267ffffffffffffffff1667ffffffffffffffff168152602001915050602060405180830381600087803b151561331757600080fd5b6102c65a03f1151561332857600080fd5b505050604051805190505b1561333d57600080fd5b600060036000856040015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600087815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508373ffffffffffffffffffffffffffffffffffffffff166360c6ccb2846040015185600001516040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018267ffffffffffffffff1667ffffffffffffffff16815260200192505050600060405180830381600087803b151561348f57600080fd5b6102c65a03f115156134a057600080fd5b5050508373ffffffffffffffffffffffffffffffffffffffff16639248019e3385600001516040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018267ffffffffffffffff1667ffffffffffffffff16815260200192505050600060405180830381600087803b151561355d57600080fd5b6102c65a03f1151561356e57600080fd5b5050503373ffffffffffffffffffffffffffffffffffffffff16836040015173ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a35050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561363c57600080fd5b60011515600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515141561371f576000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600060148282829054906101000a900461ffff160392506101000a81548161ffff021916908361ffff1602179055505b50565b600260009054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561379057600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151561380757806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61010060405190810160405280600067ffffffffffffffff168152602001600063ffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016138806138b4565b8152602001600063ffffffff168152602001600063ffffffff168152602001600063ffffffff168152602001600081525090565b6020604051908101604052806000815250905600a165627a7a723058205ed7654fd0d5acec6aa8543cf3323a9b0b0b7e5687a409c2378c014dd6886dc90029000000000000000000000000abc1c404424bdf24c19a5cc5ef8f47781d18eb3e000000000000000000000000df6164efd12678bf6a7d5a1ddf73c831493f65740000000000000000000000004ba72f0f8dad13709ee28a992869e79d0fe47030
Deployed Bytecode
0x60606040526004361061013e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde0314610143578063095ea7b3146101d15780630d6688181461021357806314d0f1ba1461026857806318160ddd146102b957806323b872dd146102e257806329291054146103435780632f745c59146103ba578063423b1ca31461041057806348ef5aa8146104655780634efb023e1461048a5780636352211e146104bb5780636c81fd6d1461051e57806370a0823114610557578063739f660d146105a45780638a0520fb146106265780638da5cb5b1461068057806395d89b41146106d5578063a9059cbb14610763578063b2e6ceeb146107a5578063b85d6275146107c8578063ee4e441614610801578063f28532921461082e578063ffa640d814610867575b600080fd5b341561014e57600080fd5b6101566108bc565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561019657808201518184015260208101905061017b565b50505050905090810190601f1680156101c35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156101dc57600080fd5b610211600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506108f5565b005b341561021e57600080fd5b610226610ec2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561027357600080fd5b61029f600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610ee8565b604051808215151515815260200191505060405180910390f35b34156102c457600080fd5b6102cc610f08565b6040518082815260200191505060405180910390f35b34156102ed57600080fd5b610341600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611025565b005b341561034e57600080fd5b6103b8600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506118c0565b005b34156103c557600080fd5b6103fa600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506119e7565b6040518082815260200191505060405180910390f35b341561041b57600080fd5b610423611b46565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561047057600080fd5b61048860048080351515906020019091905050611b6c565b005b341561049557600080fd5b61049d611be4565b604051808261ffff1661ffff16815260200191505060405180910390f35b34156104c657600080fd5b6104dc6004808035906020019091905050611bf8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561052957600080fd5b610555600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611e33565b005b341561056257600080fd5b61058e600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611f73565b6040518082815260200191505060405180910390f35b34156105af57600080fd5b6105e4600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506120bf565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561063157600080fd5b610666600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050612101565b604051808215151515815260200191505060405180910390f35b341561068b57600080fd5b6106936125e8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156106e057600080fd5b6106e861260d565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561072857808201518184015260208101905061070d565b50505050905090810190601f1680156107555780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561076e57600080fd5b6107a3600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050612646565b005b34156107b057600080fd5b6107c66004808035906020019091905050612d9a565b005b34156107d357600080fd5b6107ff600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506135e1565b005b341561080c57600080fd5b610814613722565b604051808215151515815260200191505060405180910390f35b341561083957600080fd5b610865600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050613735565b005b341561087257600080fd5b61087a61380a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6040805190810160405280600e81526020017f4574686572656d6f6e417373657400000000000000000000000000000000000081525081565b60006108ff613830565b600080600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415151561096057600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515156109be57600080fd5b600260009054906101000a900460ff161515156109da57600080fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1693508373ffffffffffffffffffffffffffffffffffffffff16630720246086600060405160e001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808267ffffffffffffffff1667ffffffffffffffff16815260200191505060e060405180830381600087803b1515610a8a57600080fd5b6102c65a03f11515610a9b57600080fd5b50505060405180519060200180519060200180519060200180519060200180519060200180519060200180519050896000018a6020018b6040018c6080018d60a0018e60c0018f60e001878152508763ffffffff1663ffffffff168152508763ffffffff1663ffffffff168152508763ffffffff1663ffffffff168152508773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152508763ffffffff1663ffffffff168152508767ffffffffffffffff1667ffffffffffffffff16815250505050505050508467ffffffffffffffff16836000015167ffffffffffffffff16141515610b9e57600080fd5b826040015173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610bdc57600080fd5b8573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151515610c1757600080fd5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508173ffffffffffffffffffffffffffffffffffffffff166335f097f384600001516000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808267ffffffffffffffff1667ffffffffffffffff168152602001915050602060405180830381600087803b1515610cf057600080fd5b6102c65a03f11515610d0157600080fd5b5050506040518051905080610dbc57508073ffffffffffffffffffffffffffffffffffffffff1663a847a71c84600001516000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808267ffffffffffffffff1667ffffffffffffffff168152602001915050602060405180830381600087803b1515610da057600080fd5b6102c65a03f11515610db157600080fd5b505050604051805190505b15610dc657600080fd5b85600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600087815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925876040518082815260200191505060405180910390a3505050505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60016020528060005260406000206000915054906101000a900460ff1681565b600080600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515610f6957600080fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff16637a09defe6000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515610ffa57600080fd5b6102c65a03f1151561100b57600080fd5b5050506040518051905067ffffffffffffffff1691505090565b600061102f613830565b600080600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415151561109057600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515156110ee57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415151561114c57600080fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1693508373ffffffffffffffffffffffffffffffffffffffff16630720246086600060405160e001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808267ffffffffffffffff1667ffffffffffffffff16815260200191505060e060405180830381600087803b15156111fc57600080fd5b6102c65a03f1151561120d57600080fd5b50505060405180519060200180519060200180519060200180519060200180519060200180519060200180519050896000018a6020018b6040018c6080018d60a0018e60c0018f60e001878152508763ffffffff1663ffffffff168152508763ffffffff1663ffffffff168152508763ffffffff1663ffffffff168152508773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152508763ffffffff1663ffffffff168152508767ffffffffffffffff1667ffffffffffffffff16815250505050505050508467ffffffffffffffff16836000015167ffffffffffffffff1614151561131057600080fd5b8673ffffffffffffffffffffffffffffffffffffffff16836040015173ffffffffffffffffffffffffffffffffffffffff1614151561134e57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415151561138a57600080fd5b8673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141515156113c557600080fd5b3373ffffffffffffffffffffffffffffffffffffffff16600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600087815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561146f57600080fd5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508173ffffffffffffffffffffffffffffffffffffffff166335f097f384600001516000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808267ffffffffffffffff1667ffffffffffffffff168152602001915050602060405180830381600087803b151561154857600080fd5b6102c65a03f1151561155957600080fd5b505050604051805190508061161457508073ffffffffffffffffffffffffffffffffffffffff1663a847a71c84600001516000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808267ffffffffffffffff1667ffffffffffffffff168152602001915050602060405180830381600087803b15156115f857600080fd5b6102c65a03f1151561160957600080fd5b505050604051805190505b1561161e57600080fd5b6000600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600087815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508373ffffffffffffffffffffffffffffffffffffffff166360c6ccb2846040015185600001516040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018267ffffffffffffffff1667ffffffffffffffff16815260200192505050600060405180830381600087803b151561176c57600080fd5b6102c65a03f1151561177d57600080fd5b5050508373ffffffffffffffffffffffffffffffffffffffff16639248019e8785600001516040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018267ffffffffffffffff1667ffffffffffffffff16815260200192505050600060405180830381600087803b151561183a57600080fd5b6102c65a03f1151561184b57600080fd5b5050508573ffffffffffffffffffffffffffffffffffffffff16836040015173ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a350505050505050565b60011515600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514151561191f57600080fd5b82600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b600080600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515611a4857600080fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff166375fe2e3385856000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515611b1857600080fd5b6102c65a03f11515611b2957600080fd5b5050506040518051905067ffffffffffffffff1691505092915050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611bc757600080fd5b80600260006101000a81548160ff02191690831515021790555050565b600060149054906101000a900461ffff1681565b600080611c03613830565b600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515611c6157600080fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508173ffffffffffffffffffffffffffffffffffffffff16630720246085600060405160e001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808267ffffffffffffffff1667ffffffffffffffff16815260200191505060e060405180830381600087803b1515611d1157600080fd5b6102c65a03f11515611d2257600080fd5b505050604051805190602001805190602001805190602001805190602001805190602001805190602001805190508760000188602001896040018a6080018b60a0018c60c0018d60e001878152508763ffffffff1663ffffffff168152508763ffffffff1663ffffffff168152508763ffffffff1663ffffffff168152508773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152508763ffffffff1663ffffffff168152508767ffffffffffffffff1667ffffffffffffffff16815250505050505050508367ffffffffffffffff16816000015167ffffffffffffffff16141515611e2557600080fd5b806040015192505050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e8e57600080fd5b60001515600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415611f705760018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600060148282829054906101000a900461ffff160192506101000a81548161ffff021916908361ffff1602179055505b50565b600080600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515611fd457600080fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff166347c17bac846000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b151561209c57600080fd5b6102c65a03f115156120ad57600080fd5b50505060405180519050915050919050565b60036020528160005260406000206020528060005260406000206000915091509054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008061210c613830565b600080600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415151561216d57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515156121cb57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415151561222957600080fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1693508373ffffffffffffffffffffffffffffffffffffffff16630720246087600060405160e001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808267ffffffffffffffff1667ffffffffffffffff16815260200191505060e060405180830381600087803b15156122d957600080fd5b6102c65a03f115156122ea57600080fd5b50505060405180519060200180519060200180519060200180519060200180519060200180519060200180519050896000018a6020018b6040018c6080018d60a0018e60c0018f60e001878152508763ffffffff1663ffffffff168152508763ffffffff1663ffffffff168152508763ffffffff1663ffffffff168152508773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152508763ffffffff1663ffffffff168152508767ffffffffffffffff1667ffffffffffffffff16815250505050505050508567ffffffffffffffff16836000015167ffffffffffffffff161415156123f157600094506125de565b8673ffffffffffffffffffffffffffffffffffffffff16836040015173ffffffffffffffffffffffffffffffffffffffff1614151561243357600094506125de565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508173ffffffffffffffffffffffffffffffffffffffff166335f097f384600001516000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808267ffffffffffffffff1667ffffffffffffffff168152602001915050602060405180830381600087803b151561250c57600080fd5b6102c65a03f1151561251d57600080fd5b505050604051805190501580156125db57508073ffffffffffffffffffffffffffffffffffffffff1663a847a71c84600001516000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808267ffffffffffffffff1667ffffffffffffffff168152602001915050602060405180830381600087803b15156125be57600080fd5b6102c65a03f115156125cf57600080fd5b50505060405180519050155b94505b5050505092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040805190810160405280600581526020017f454d4f4e4100000000000000000000000000000000000000000000000000000081525081565b6000612650613830565b600080600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515156126b157600080fd5b600260009054906101000a900460ff161515156126cd57600080fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1693508373ffffffffffffffffffffffffffffffffffffffff16630720246086600060405160e001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808267ffffffffffffffff1667ffffffffffffffff16815260200191505060e060405180830381600087803b151561277d57600080fd5b6102c65a03f1151561278e57600080fd5b50505060405180519060200180519060200180519060200180519060200180519060200180519060200180519050896000018a6020018b6040018c6080018d60a0018e60c0018f60e001878152508763ffffffff1663ffffffff168152508763ffffffff1663ffffffff168152508763ffffffff1663ffffffff168152508773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152508763ffffffff1663ffffffff168152508767ffffffffffffffff1667ffffffffffffffff16815250505050505050508467ffffffffffffffff16836000015167ffffffffffffffff1614151561289157600080fd5b3373ffffffffffffffffffffffffffffffffffffffff16836040015173ffffffffffffffffffffffffffffffffffffffff161415156128cf57600080fd5b8573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415151561290a57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415151561294657600080fd5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508173ffffffffffffffffffffffffffffffffffffffff166335f097f384600001516000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808267ffffffffffffffff1667ffffffffffffffff168152602001915050602060405180830381600087803b1515612a1f57600080fd5b6102c65a03f11515612a3057600080fd5b5050506040518051905080612aeb57508073ffffffffffffffffffffffffffffffffffffffff1663a847a71c84600001516000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808267ffffffffffffffff1667ffffffffffffffff168152602001915050602060405180830381600087803b1515612acf57600080fd5b6102c65a03f11515612ae057600080fd5b505050604051805190505b15612af557600080fd5b600060036000856040015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600087815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508373ffffffffffffffffffffffffffffffffffffffff166360c6ccb2846040015185600001516040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018267ffffffffffffffff1667ffffffffffffffff16815260200192505050600060405180830381600087803b1515612c4757600080fd5b6102c65a03f11515612c5857600080fd5b5050508373ffffffffffffffffffffffffffffffffffffffff16639248019e8785600001516040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018267ffffffffffffffff1667ffffffffffffffff16815260200192505050600060405180830381600087803b1515612d1557600080fd5b6102c65a03f11515612d2657600080fd5b5050508573ffffffffffffffffffffffffffffffffffffffff16836040015173ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a3505050505050565b6000612da4613830565b600080600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515612e0557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515612e6357600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515612ec157600080fd5b600260009054906101000a900460ff16151515612edd57600080fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1693508373ffffffffffffffffffffffffffffffffffffffff16630720246086600060405160e001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808267ffffffffffffffff1667ffffffffffffffff16815260200191505060e060405180830381600087803b1515612f8d57600080fd5b6102c65a03f11515612f9e57600080fd5b50505060405180519060200180519060200180519060200180519060200180519060200180519060200180519050896000018a6020018b6040018c6080018d60a0018e60c0018f60e001878152508763ffffffff1663ffffffff168152508763ffffffff1663ffffffff168152508763ffffffff1663ffffffff168152508773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152508763ffffffff1663ffffffff168152508767ffffffffffffffff1667ffffffffffffffff16815250505050505050508467ffffffffffffffff16836000015167ffffffffffffffff161415156130a157600080fd5b826040015173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515156130e057600080fd5b3373ffffffffffffffffffffffffffffffffffffffff1660036000856040015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600087815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561318e57600080fd5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508173ffffffffffffffffffffffffffffffffffffffff166335f097f384600001516000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808267ffffffffffffffff1667ffffffffffffffff168152602001915050602060405180830381600087803b151561326757600080fd5b6102c65a03f1151561327857600080fd5b505050604051805190508061333357508073ffffffffffffffffffffffffffffffffffffffff1663a847a71c84600001516000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808267ffffffffffffffff1667ffffffffffffffff168152602001915050602060405180830381600087803b151561331757600080fd5b6102c65a03f1151561332857600080fd5b505050604051805190505b1561333d57600080fd5b600060036000856040015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600087815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508373ffffffffffffffffffffffffffffffffffffffff166360c6ccb2846040015185600001516040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018267ffffffffffffffff1667ffffffffffffffff16815260200192505050600060405180830381600087803b151561348f57600080fd5b6102c65a03f115156134a057600080fd5b5050508373ffffffffffffffffffffffffffffffffffffffff16639248019e3385600001516040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018267ffffffffffffffff1667ffffffffffffffff16815260200192505050600060405180830381600087803b151561355d57600080fd5b6102c65a03f1151561356e57600080fd5b5050503373ffffffffffffffffffffffffffffffffffffffff16836040015173ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a35050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561363c57600080fd5b60011515600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515141561371f576000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600060148282829054906101000a900461ffff160392506101000a81548161ffff021916908361ffff1602179055505b50565b600260009054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561379057600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151561380757806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61010060405190810160405280600067ffffffffffffffff168152602001600063ffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016138806138b4565b8152602001600063ffffffff168152602001600063ffffffff168152602001600063ffffffff168152602001600081525090565b6020604051908101604052806000815250905600a165627a7a723058205ed7654fd0d5acec6aa8543cf3323a9b0b0b7e5687a409c2378c014dd6886dc90029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000abc1c404424bdf24c19a5cc5ef8f47781d18eb3e000000000000000000000000df6164efd12678bf6a7d5a1ddf73c831493f65740000000000000000000000004ba72f0f8dad13709ee28a992869e79d0fe47030
-----Decoded View---------------
Arg [0] : _dataContract (address): 0xABC1c404424BDF24C19A5cC5EF8F47781D18Eb3E
Arg [1] : _battleContract (address): 0xDf6164EfD12678bF6A7d5A1Ddf73C831493F6574
Arg [2] : _tradeContract (address): 0x4bA72F0F8DAd13709EE28a992869E79d0fE47030
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 000000000000000000000000abc1c404424bdf24c19a5cc5ef8f47781d18eb3e
Arg [1] : 000000000000000000000000df6164efd12678bf6a7d5a1ddf73c831493f6574
Arg [2] : 0000000000000000000000004ba72f0f8dad13709ee28a992869e79d0fe47030
Swarm Source
bzzr://5ed7654fd0d5acec6aa8543cf3323a9b0b0b7e5687a409c2378c014dd6886dc9
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.