ERC-20
Overview
Max Total Supply
32 EMONF
Holders
9
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 0 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
EmontFrenzy
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-06-03 */ pragma solidity ^0.4.19; contract BasicAccessControl { address public owner; // address[] public moderators; uint16 public totalModerators = 0; mapping (address => bool) public moderators; bool public isMaintaining = false; function BasicAccessControl() public { owner = msg.sender; } modifier onlyOwner { require(msg.sender == owner); _; } modifier onlyModerators() { require(msg.sender == owner || 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 ERC20Interface { function totalSupply() public constant returns (uint); function balanceOf(address tokenOwner) public constant returns (uint balance); function allowance(address tokenOwner, address spender) public constant returns (uint remaining); function transfer(address to, uint tokens) public returns (bool success); function approve(address spender, uint tokens) public returns (bool success); function transferFrom(address from, address to, uint tokens) public returns (bool success); } contract EmontFrenzy is BasicAccessControl { uint constant public HIGH = 20; uint constant public BASE_POS = 510; uint constant public ONE_EMONT = 10 ** 8; struct Fish { address player; uint weight; bool active; // location != 0 } // private uint private seed; // address address public tokenContract; // variable uint public addFee = 0.01 ether; uint public addWeight = 5 * 10 ** 8; // emont uint public moveCharge = 5; // percentage uint public cashOutRate = 100; // to EMONT rate uint public cashInRate = 50; // from EMONT to fish weight uint public width = 50; uint public minJump = 2 * 2; uint public maxPos = HIGH * width; // valid pos (0 -> maxPos - 1) mapping(uint => Fish) fishMap; mapping(uint => uint) ocean; // pos => fish id mapping(uint => uint) bonus; // pos => emont amount mapping(address => uint) players; mapping(uint => uint) maxJumps; // weight in EMONT => square length uint public totalFish = 0; // event event Transfer(address indexed _from, address indexed _to, uint256 _tokenId); event EventCashout(address indexed player, uint fishId, uint weight); event EventBonus(uint pos, uint value); event EventMove(address indexed player, uint fishId, uint fromPos, uint toPos, uint weight); event EventEat(address indexed player, address indexed defender, uint playerFishId, uint defenderFishId, uint fromPos, uint toPos, uint playerWeight); event EventSuicide(address indexed player, address indexed defender, uint playerFishId, uint defenderFishId, uint fromPos, uint toPos, uint defenderWeight); // modifier modifier requireTokenContract { require(tokenContract != address(0)); _; } function EmontFrenzy(address _tokenContract) public { tokenContract = _tokenContract; seed = getRandom(0); } function setConfig(uint _addFee, uint _addWeight, uint _moveCharge, uint _cashOutRate, uint _cashInRate, uint _width) onlyModerators external { addFee = _addFee; addWeight = _addWeight; moveCharge = _moveCharge; cashOutRate = _cashOutRate; cashInRate = _cashInRate; width = _width; maxPos = HIGH * width; } // weight in emont, x*x function updateMaxJump(uint _weight, uint _squareLength) onlyModerators external { maxJumps[_weight] = _squareLength; } function setDefaultMaxJump() onlyModerators external { maxJumps[0] = 50 * 50; maxJumps[1] = 30 * 30; maxJumps[2] = 20 * 20; maxJumps[3] = 15 * 15; maxJumps[4] = 12 * 12; maxJumps[5] = 9 * 9; maxJumps[6] = 7 * 7; maxJumps[7] = 7 * 7; maxJumps[8] = 6 * 6; maxJumps[9] = 6 * 6; maxJumps[10] = 6 * 6; maxJumps[11] = 5 * 5; maxJumps[12] = 5 * 5; maxJumps[13] = 5 * 5; maxJumps[14] = 5 * 5; maxJumps[15] = 4 * 4; maxJumps[16] = 4 * 4; maxJumps[17] = 4 * 4; maxJumps[18] = 4 * 4; maxJumps[19] = 4 * 4; maxJumps[20] = 3 * 3; maxJumps[21] = 3 * 3; maxJumps[22] = 3 * 3; maxJumps[23] = 3 * 3; maxJumps[24] = 3 * 3; maxJumps[25] = 3 * 3; } function updateMinJump(uint _minJump) onlyModerators external { minJump = _minJump; } // moderators function withdrawEther(address _sendTo, uint _amount) onlyModerators external { // no user money is kept in this contract, only trasaction fee if (_amount > address(this).balance) { revert(); } _sendTo.transfer(_amount); } function withdrawToken(address _sendTo, uint _amount) onlyModerators requireTokenContract external { ERC20Interface token = ERC20Interface(tokenContract); if (_amount > token.balanceOf(address(this))) { revert(); } token.transfer(_sendTo, _amount); } function addBonus(uint _pos, uint _amount) onlyModerators external { bonus[_pos] += _amount; EventBonus(_pos, _amount); } // for payment contract to call function AddFishByToken(address _player, uint tokens) onlyModerators external { uint weight = tokens * cashInRate / 100; if (weight != addWeight) revert(); // max: one fish per address if (fishMap[players[_player]].weight > 0) revert(); totalFish += 1; Fish storage fish = fishMap[totalFish]; fish.player = _player; fish.weight = addWeight; fish.active = false; players[_player] = totalFish; seed = getRandom(seed); Transfer(address(0), _player, totalFish); } // public functions function getRandom(uint _seed) constant public returns(uint) { return uint(keccak256(block.timestamp, block.difficulty)) ^ _seed; } function AddFish() isActive payable external { if (msg.value != addFee) revert(); // max: one fish per address if (fishMap[players[msg.sender]].weight > 0) revert(); totalFish += 1; Fish storage fish = fishMap[totalFish]; fish.player = msg.sender; fish.weight = addWeight; fish.active = false; players[msg.sender] = totalFish; seed = getRandom(seed); Transfer(address(0), msg.sender, totalFish); } function DeductABS(uint _a, uint _b) pure public returns(uint) { if (_a > _b) return (_a - _b); return (_b - _a); } function MoveFish(uint _fromPos, uint _toPos) isActive external { // check valid _x, _y if (_toPos >= maxPos && _fromPos != _toPos) revert(); uint fishId = players[msg.sender]; Fish storage fish = fishMap[fishId]; if (fish.weight == 0) revert(); if (!fish.active && _fromPos != BASE_POS) revert(); if (fish.active && ocean[_fromPos] != fishId) revert(); // check valid move uint tempX = DeductABS(_fromPos / HIGH, _toPos / HIGH); uint tempY = DeductABS(_fromPos % HIGH, _toPos % HIGH); uint squareLength = maxJumps[fish.weight / ONE_EMONT]; if (squareLength == 0) squareLength = minJump; if (tempX * tempX + tempY * tempY > squareLength) revert(); // move ocean[_fromPos] = 0; // charge when swiming except from the base if (_fromPos != BASE_POS) { tempX = (moveCharge * fish.weight) / 100; bonus[_fromPos] += tempX; fish.weight -= tempX; } else { fish.active = true; } // go back to base if (_toPos == BASE_POS) { fish.active = false; EventMove(msg.sender, fishId, _fromPos, _toPos, fish.weight); return; } tempX = ocean[_toPos]; // target fish id // no fish at that location if (tempX == 0) { if (bonus[_toPos] > 0) { fish.weight += bonus[_toPos]; bonus[_toPos] = 0; } // update location EventMove(msg.sender, fishId, _fromPos, _toPos, fish.weight); ocean[_toPos] = fishId; } else { // can not attack from the base if (_fromPos == BASE_POS) revert(); Fish storage targetFish = fishMap[tempX]; if (targetFish.weight <= fish.weight) { // eat the target fish fish.weight += targetFish.weight; targetFish.weight = 0; // update location ocean[_toPos] = fishId; EventEat(msg.sender, targetFish.player, fishId, tempX, _fromPos, _toPos, fish.weight); Transfer(targetFish.player, address(0), tempX); } else { // bonus to others seed = getRandom(seed); tempY = seed % (maxPos - 1); if (tempY == BASE_POS) tempY += 1; bonus[tempY] = fish.weight * 2; EventBonus(tempY, fish.weight * 2); // suicide targetFish.weight -= fish.weight; fish.weight = 0; EventSuicide(msg.sender, targetFish.player, fishId, tempX, _fromPos, _toPos, targetFish.weight); Transfer(msg.sender, address(0), fishId); } } } function CashOut(uint _amount) isActive external { uint fishId = players[msg.sender]; Fish storage fish = fishMap[fishId]; if (fish.weight < _amount + addWeight) revert(); fish.weight -= _amount; ERC20Interface token = ERC20Interface(tokenContract); if (_amount > token.balanceOf(address(this))) { revert(); } token.transfer(msg.sender, (_amount * cashOutRate) / 100); EventCashout(msg.sender, fishId, fish.weight); } // public get function getFish(uint32 _fishId) constant public returns(address player, uint weight, bool active) { Fish storage fish = fishMap[_fishId]; return (fish.player, fish.weight, fish.active); } function getFishByAddress(address _player) constant public returns(uint fishId, address player, uint weight, bool active) { fishId = players[_player]; Fish storage fish = fishMap[fishId]; player = fish.player; weight =fish.weight; active = fish.active; } function getFishIdByAddress(address _player) constant public returns(uint fishId) { return players[_player]; } function getFishIdByPos(uint _pos) constant public returns(uint fishId) { return ocean[_pos]; } function getFishByPos(uint _pos) constant public returns(uint fishId, address player, uint weight) { fishId = ocean[_pos]; Fish storage fish = fishMap[fishId]; return (fishId, fish.player, fish.weight); } // cell has valid fish or bonus function findTargetCell(uint _fromPos, uint _toPos) constant public returns(uint pos, uint fishId, address player, uint weight) { for (uint index = _fromPos; index <= _toPos; index+=1) { if (ocean[index] > 0) { fishId = ocean[index]; Fish storage fish = fishMap[fishId]; return (index, fishId, fish.player, fish.weight); } if (bonus[index] > 0) { return (index, 0, address(0), bonus[index]); } } } function getStats() constant public returns(uint countFish, uint countBonus) { countFish = 0; countBonus = 0; for (uint index = 0; index < width * HIGH; index++) { if (ocean[index] > 0) { countFish += 1; } else if (bonus[index] > 0) { countBonus += 1; } } } function getFishAtBase(uint _fishId) constant public returns(uint fishId, address player, uint weight) { for (uint id = _fishId; id <= totalFish; id++) { Fish storage fish = fishMap[id]; if (fish.weight > 0 && !fish.active) { return (id, fish.player, fish.weight); } } return (0, address(0), 0); } function getMaxJump(uint _weight) constant public returns(uint) { return maxJumps[_weight]; } // some meta data string public constant name = "EmontFrenzy"; string public constant symbol = "EMONF"; function totalSupply() public view returns (uint256) { return totalFish; } function balanceOf(address _owner) public view returns (uint256 _balance) { if (fishMap[players[_owner]].weight > 0) return 1; return 0; } function ownerOf(uint256 _tokenId) public view returns (address _owner) { Fish storage fish = fishMap[_tokenId]; if (fish.weight > 0) return fish.player; return address(0); } function transfer(address _to, uint256 _tokenId) public{ require(_to != address(0)); uint fishId = players[msg.sender]; Fish storage fish = fishMap[fishId]; if (fishId == 0 || fish.weight == 0 || fishId != _tokenId) revert(); if (balanceOf(_to) > 0) revert(); fish.player = _to; players[msg.sender] = 0; players[_to] = fishId; Transfer(msg.sender, _to, _tokenId); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[],"name":"maxPos","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"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":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"addFee","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_addFee","type":"uint256"},{"name":"_addWeight","type":"uint256"},{"name":"_moveCharge","type":"uint256"},{"name":"_cashOutRate","type":"uint256"},{"name":"_cashInRate","type":"uint256"},{"name":"_width","type":"uint256"}],"name":"setConfig","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_isMaintaining","type":"bool"}],"name":"UpdateMaintaining","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_weight","type":"uint256"}],"name":"getMaxJump","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalModerators","outputs":[{"name":"","type":"uint16"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_fishId","type":"uint32"}],"name":"getFish","outputs":[{"name":"player","type":"address"},{"name":"weight","type":"uint256"},{"name":"active","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"cashOutRate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_sendTo","type":"address"},{"name":"_amount","type":"uint256"}],"name":"withdrawEther","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ONE_EMONT","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokenContract","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_player","type":"address"},{"name":"tokens","type":"uint256"}],"name":"AddFishByToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"BASE_POS","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalFish","outputs":[{"name":"","type":"uint256"}],"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":true,"inputs":[],"name":"cashInRate","outputs":[{"name":"","type":"uint256"}],"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":false,"inputs":[{"name":"_fromPos","type":"uint256"},{"name":"_toPos","type":"uint256"}],"name":"MoveFish","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_fromPos","type":"uint256"},{"name":"_toPos","type":"uint256"}],"name":"findTargetCell","outputs":[{"name":"pos","type":"uint256"},{"name":"fishId","type":"uint256"},{"name":"player","type":"address"},{"name":"weight","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"AddFish","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_weight","type":"uint256"},{"name":"_squareLength","type":"uint256"}],"name":"updateMaxJump","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_player","type":"address"}],"name":"getFishIdByAddress","outputs":[{"name":"fishId","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_sendTo","type":"address"},{"name":"_amount","type":"uint256"}],"name":"withdrawToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"width","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"}],"name":"CashOut","outputs":[],"payable":false,"stateMutability":"nonpayable","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":"_pos","type":"uint256"},{"name":"_amount","type":"uint256"}],"name":"addBonus","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_fishId","type":"uint256"}],"name":"getFishAtBase","outputs":[{"name":"fishId","type":"uint256"},{"name":"player","type":"address"},{"name":"weight","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"HIGH","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_oldModerator","type":"address"}],"name":"RemoveModerator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_pos","type":"uint256"}],"name":"getFishIdByPos","outputs":[{"name":"fishId","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"moveCharge","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getStats","outputs":[{"name":"countFish","type":"uint256"},{"name":"countBonus","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_seed","type":"uint256"}],"name":"getRandom","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"minJump","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_minJump","type":"uint256"}],"name":"updateMinJump","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_a","type":"uint256"},{"name":"_b","type":"uint256"}],"name":"DeductABS","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"_pos","type":"uint256"}],"name":"getFishByPos","outputs":[{"name":"fishId","type":"uint256"},{"name":"player","type":"address"},{"name":"weight","type":"uint256"}],"payable":false,"stateMutability":"view","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":false,"inputs":[],"name":"setDefaultMaxJump","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_player","type":"address"}],"name":"getFishByAddress","outputs":[{"name":"fishId","type":"uint256"},{"name":"player","type":"address"},{"name":"weight","type":"uint256"},{"name":"active","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"addWeight","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_tokenContract","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":"player","type":"address"},{"indexed":false,"name":"fishId","type":"uint256"},{"indexed":false,"name":"weight","type":"uint256"}],"name":"EventCashout","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"pos","type":"uint256"},{"indexed":false,"name":"value","type":"uint256"}],"name":"EventBonus","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"player","type":"address"},{"indexed":false,"name":"fishId","type":"uint256"},{"indexed":false,"name":"fromPos","type":"uint256"},{"indexed":false,"name":"toPos","type":"uint256"},{"indexed":false,"name":"weight","type":"uint256"}],"name":"EventMove","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"player","type":"address"},{"indexed":true,"name":"defender","type":"address"},{"indexed":false,"name":"playerFishId","type":"uint256"},{"indexed":false,"name":"defenderFishId","type":"uint256"},{"indexed":false,"name":"fromPos","type":"uint256"},{"indexed":false,"name":"toPos","type":"uint256"},{"indexed":false,"name":"playerWeight","type":"uint256"}],"name":"EventEat","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"player","type":"address"},{"indexed":true,"name":"defender","type":"address"},{"indexed":false,"name":"playerFishId","type":"uint256"},{"indexed":false,"name":"defenderFishId","type":"uint256"},{"indexed":false,"name":"fromPos","type":"uint256"},{"indexed":false,"name":"toPos","type":"uint256"},{"indexed":false,"name":"defenderWeight","type":"uint256"}],"name":"EventSuicide","type":"event"}]
Contract Creation Code
606060405260008060146101000a81548161ffff021916908361ffff1602179055506000600260006101000a81548160ff021916908315150217905550662386f26fc10000600555631dcd65006006556005600755606460085560326009556032600a556004600b55600a54601402600c55600060125534156200008257600080fd5b6040516020806200361283398101604052808051906020019091905050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200014060006200014d6401000000000262002dea176401000000009004565b600381905550506200017a565b60008142446040518083815260200182815260200192505050604051809103902060019004189050919050565b613488806200018a6000396000f300606060405260043610610251576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806301239adf1461025657806306fdde031461027f57806314d0f1ba1461030d57806318160ddd1461035e5780632f48f1511461038757806333835161146103b057806348ef5aa8146104005780634db77d9d146104255780634efb023e1461045c5780634fbf6e9f1461048d578063503c849e14610508578063522f68151461053157806354f60aea1461057357806355a373d61461059c57806359b62658146105f15780635c7b9ccf1461063357806362b26f951461065c5780636352211e14610685578063672324ac146106e85780636c81fd6d1461071157806370a082311461074a578063754ad9811461079757806378761590146107c35780637c17dc02146108445780638da5cb5b1461084e578063905473cf146108a357806395d89b41146108cf5780639b01c7ac1461095d5780639e281a98146109aa5780639ededf77146109ec5780639ffa071114610a15578063a9059cbb14610a38578063b02b69d614610a7a578063b60868be14610aa6578063b73974a114610b17578063b85d627514610b40578063be32eeba14610b79578063c0b332c114610bb0578063c59d484714610bd9578063cd4b691414610c09578063cf2d03ae14610c40578063d398806d14610c69578063d4fa902114610c8c578063ecd747de14610ccc578063ee4e441614610d3d578063f285329214610d6a578063f838ea1a14610da3578063f8ecb55814610db8578063fbe3549c14610e4a575b600080fd5b341561026157600080fd5b610269610e73565b6040518082815260200191505060405180910390f35b341561028a57600080fd5b610292610e79565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102d25780820151818401526020810190506102b7565b50505050905090810190601f1680156102ff5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561031857600080fd5b610344600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610eb2565b604051808215151515815260200191505060405180910390f35b341561036957600080fd5b610371610ed2565b6040518082815260200191505060405180910390f35b341561039257600080fd5b61039a610edc565b6040518082815260200191505060405180910390f35b34156103bb57600080fd5b6103fe6004808035906020019091908035906020019091908035906020019091908035906020019091908035906020019091908035906020019091905050610ee2565b005b341561040b57600080fd5b61042360048080351515906020019091905050610fd6565b005b341561043057600080fd5b610446600480803590602001909190505061104e565b6040518082815260200191505060405180910390f35b341561046757600080fd5b61046f61106b565b604051808261ffff1661ffff16815260200191505060405180910390f35b341561049857600080fd5b6104b4600480803563ffffffff1690602001909190505061107f565b604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182151515158152602001935050505060405180910390f35b341561051357600080fd5b61051b6110ea565b6040518082815260200191505060405180910390f35b341561053c57600080fd5b610571600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506110f0565b005b341561057e57600080fd5b61058661120e565b6040518082815260200191505060405180910390f35b34156105a757600080fd5b6105af611216565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156105fc57600080fd5b610631600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061123c565b005b341561063e57600080fd5b6106466114d3565b6040518082815260200191505060405180910390f35b341561066757600080fd5b61066f6114d9565b6040518082815260200191505060405180910390f35b341561069057600080fd5b6106a660048080359060200190919050506114df565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156106f357600080fd5b6106fb61153b565b6040518082815260200191505060405180910390f35b341561071c57600080fd5b610748600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611541565b005b341561075557600080fd5b610781600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611681565b6040518082815260200191505060405180910390f35b34156107a257600080fd5b6107c160048080359060200190919080359060200190919050506116f3565b005b34156107ce57600080fd5b6107ed6004808035906020019091908035906020019091905050611e43565b604051808581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200194505050505060405180910390f35b61084c611f34565b005b341561085957600080fd5b61086161211a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156108ae57600080fd5b6108cd600480803590602001909190803590602001909190505061213f565b005b34156108da57600080fd5b6108e2612211565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610922578082015181840152602081019050610907565b50505050905090810190601f16801561094f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561096857600080fd5b610994600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061224a565b6040518082815260200191505060405180910390f35b34156109b557600080fd5b6109ea600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050612293565b005b34156109f757600080fd5b6109ff612564565b6040518082815260200191505060405180910390f35b3415610a2057600080fd5b610a36600480803590602001909190505061256a565b005b3415610a4357600080fd5b610a78600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061282f565b005b3415610a8557600080fd5b610aa46004808035906020019091908035906020019091905050612a3a565b005b3415610ab157600080fd5b610ac76004808035906020019091905050612b54565b604051808481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390f35b3415610b2257600080fd5b610b2a612c06565b6040518082815260200191505060405180910390f35b3415610b4b57600080fd5b610b77600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612c0b565b005b3415610b8457600080fd5b610b9a6004808035906020019091905050612d4c565b6040518082815260200191505060405180910390f35b3415610bbb57600080fd5b610bc3612d69565b6040518082815260200191505060405180910390f35b3415610be457600080fd5b610bec612d6f565b604051808381526020018281526020019250505060405180910390f35b3415610c1457600080fd5b610c2a6004808035906020019091905050612dea565b6040518082815260200191505060405180910390f35b3415610c4b57600080fd5b610c53612e17565b6040518082815260200191505060405180910390f35b3415610c7457600080fd5b610c8a6004808035906020019091905050612e1d565b005b3415610c9757600080fd5b610cb66004808035906020019091908035906020019091905050612edd565b6040518082815260200191505060405180910390f35b3415610cd757600080fd5b610ced6004808035906020019091905050612efd565b604051808481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390f35b3415610d4857600080fd5b610d50612f67565b604051808215151515815260200191505060405180910390f35b3415610d7557600080fd5b610da1600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612f7a565b005b3415610dae57600080fd5b610db661304f565b005b3415610dc357600080fd5b610def600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506133ad565b604051808581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018215151515815260200194505050505060405180910390f35b3415610e5557600080fd5b610e5d613456565b6040518082815260200191505060405180910390f35b600c5481565b6040805190810160405280600b81526020017f456d6f6e744672656e7a7900000000000000000000000000000000000000000081525081565b60016020528060005260406000206000915054906101000a900460ff1681565b6000601254905090565b60055481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610f8d575060011515600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b1515610f9857600080fd5b856005819055508460068190555083600781905550826008819055508160098190555080600a81905550600a54601402600c81905550505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561103157600080fd5b80600260006101000a81548160ff02191690831515021790555050565b600060116000838152602001908152602001600020549050919050565b600060149054906101000a900461ffff1681565b600080600080600d60008663ffffffff16815260200190815260200160002090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600101548260020160009054906101000a900460ff16935093509350509193909250565b60085481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061119b575060011515600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b15156111a657600080fd5b3073ffffffffffffffffffffffffffffffffffffffff16318111156111ca57600080fd5b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050151561120a57600080fd5b5050565b6305f5e10081565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806112ea575060011515600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b15156112f557600080fd5b6064600954840281151561130557fe5b0491506006548214151561131857600080fd5b6000600d6000601060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054815260200190815260200160002060010154111561137b57600080fd5b6001601260008282540192505081905550600d600060125481526020019081526020016000209050838160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600654816001018190555060008160020160006101000a81548160ff021916908315150217905550601254601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061145f600354612dea565b6003819055508373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012546040518082815260200191505060405180910390a350505050565b6101fe81565b60125481565b600080600d60008481526020019081526020016000209050600081600101541115611530578060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150611535565b600091505b50919050565b60095481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561159c57600080fd5b60001515600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515141561167e5760018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600060148282829054906101000a900461ffff160192506101000a81548161ffff021916908361ffff1602179055505b50565b600080600d6000601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481526020019081526020016000206001015411156116e957600190506116ee565b600090505b919050565b600080600080600080600260009054906101000a900460ff1615151561171857600080fd5b600c54871015801561172a5750868814155b1561173457600080fd5b601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549550600d6000878152602001908152602001600020945060008560010154141561179d57600080fd5b8460020160009054906101000a900460ff161580156117be57506101fe8814155b156117c857600080fd5b8460020160009054906101000a900460ff1680156117f9575085600e60008a81526020019081526020016000205414155b1561180357600080fd5b61182560148981151561181257fe5b0460148981151561181f57fe5b04612edd565b935061184960148981151561183657fe5b0660148981151561184357fe5b06612edd565b9250601160006305f5e100876001015481151561186257fe5b048152602001908152602001600020549150600082141561188357600b5491505b8183840285860201111561189657600080fd5b6000600e60008a8152602001908152602001600020819055506101fe881415156119095760648560010154600754028115156118ce57fe5b04935083600f60008a815260200190815260200160002060008282540192505081905550838560010160008282540392505081905550611927565b60018560020160006101000a81548160ff0219169083151502179055505b6101fe8714156119bd5760008560020160006101000a81548160ff0219169083151502179055503373ffffffffffffffffffffffffffffffffffffffff167f0a4f6de26755798436390daf3719fe42b9f04c44b2fe0625de4342e1e2459a10878a8a89600101546040518085815260200184815260200183815260200182815260200194505050505060405180910390a2611e39565b600e60008881526020019081526020016000205493506000841415611abe576000600f6000898152602001908152602001600020541115611a3757600f60008881526020019081526020016000205485600101600082825401925050819055506000600f6000898152602001908152602001600020819055505b3373ffffffffffffffffffffffffffffffffffffffff167f0a4f6de26755798436390daf3719fe42b9f04c44b2fe0625de4342e1e2459a10878a8a89600101546040518085815260200184815260200183815260200182815260200194505050505060405180910390a285600e600089815260200190815260200160002081905550611e38565b6101fe881415611acd57600080fd5b600d6000858152602001908152602001600020905084600101548160010154111515611c6757806001015485600101600082825401925050819055506000816001018190555085600e6000898152602001908152602001600020819055508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc15f52570a93e125c446dad9d62b70661ca12a0f34b6b4fe6375284706576c4f88878c8c8b60010154604051808681526020018581526020018481526020018381526020018281526020019550505050505060405180910390a3600073ffffffffffffffffffffffffffffffffffffffff168160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a3611e37565b611c72600354612dea565b6003819055506001600c5403600354811515611c8a57fe5b0692506101fe831415611c9e576001830192505b6002856001015402600f6000858152602001908152602001600020819055507f8711a2393e2fe98769f70ccbd7a1a0f7db5582a113e5645a5ef1e637f3eee0e2836002876001015402604051808381526020018281526020019250505060405180910390a184600101548160010160008282540392505081905550600085600101819055508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fca1dfeb0fb285992538d0b85b07f749d9c530b608237c5aca0726b3ee383509f88878c8c8760010154604051808681526020018581526020018481526020018381526020018281526020019550505050505060405180910390a3600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef886040518082815260200191505060405180910390a35b5b5b5050505050505050565b6000806000806000808791505b8682111515611f28576000600e6000848152602001908152602001600020541115611ed957600e6000838152602001908152602001600020549450600d6000868152602001908152602001600020905081858260000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683600101549550955095509550611f29565b6000600f6000848152602001908152602001600020541115611f1d5781600080600f6000868152602001908152602001600020548292509550955095509550611f29565b600182019150611e50565b5b505092959194509250565b6000600260009054906101000a900460ff16151515611f5257600080fd5b60055434141515611f6257600080fd5b6000600d6000601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548152602001908152602001600020600101541115611fc557600080fd5b6001601260008282540192505081905550600d600060125481526020019081526020016000209050338160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600654816001018190555060008160020160006101000a81548160ff021916908315150217905550601254601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120a9600354612dea565b6003819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012546040518082815260200191505060405180910390a350565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806121ea575060011515600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b15156121f557600080fd5b8060116000848152602001908152602001600020819055505050565b6040805190810160405280600581526020017f454d4f4e4600000000000000000000000000000000000000000000000000000081525081565b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480612340575060011515600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b151561234b57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515156123a957600080fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff166370a08231306000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b151561247157600080fd5b6102c65a03f1151561248257600080fd5b5050506040518051905082111561249857600080fd5b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84846000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b151561254357600080fd5b6102c65a03f1151561255457600080fd5b5050506040518051905050505050565b600a5481565b6000806000600260009054906101000a900460ff1615151561258b57600080fd5b601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549250600d600084815260200190815260200160002091506006548401826001015410156125f757600080fd5b838260010160008282540392505081905550600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff166370a08231306000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15156126d157600080fd5b6102c65a03f115156126e257600080fd5b505050604051805190508411156126f857600080fd5b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb336064600854880281151561272557fe5b046000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15156127b357600080fd5b6102c65a03f115156127c457600080fd5b50505060405180519050503373ffffffffffffffffffffffffffffffffffffffff167f34f1b4b50ab1fe8066f90e4b650517b54750c5450d115a4ca83183ba27d69b48848460010154604051808381526020018281526020019250505060405180910390a250505050565b600080600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415151561286e57600080fd5b601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549150600d6000838152602001908152602001600020905060008214806128d8575060008160010154145b806128e35750828214155b156128ed57600080fd5b60006128f885611681565b111561290357600080fd5b838160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a350505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480612ae5575060011515600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b1515612af057600080fd5b80600f6000848152602001908152602001600020600082825401925050819055507f8711a2393e2fe98769f70ccbd7a1a0f7db5582a113e5645a5ef1e637f3eee0e28282604051808381526020018281526020019250505060405180910390a15050565b60008060008060008591505b60125482111515612beb57600d6000838152602001908152602001600020905060008160010154118015612ba357508060020160009054906101000a900460ff16155b15612bde57818160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168260010154945094509450612bfd565b8180600101925050612b60565b60008060008292508090509450945094505b50509193909250565b601481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612c6657600080fd5b60011515600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415612d49576000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600060148282829054906101000a900461ffff160392506101000a81548161ffff021916908361ffff1602179055505b50565b6000600e6000838152602001908152602001600020549050919050565b60075481565b600080600080925060009150600090505b6014600a5402811015612de5576000600e6000838152602001908152602001600020541115612db457600183019250612dd8565b6000600f6000838152602001908152602001600020541115612dd7576001820191505b5b8080600101915050612d80565b509091565b60008142446040518083815260200182815260200192505050604051809103902060019004189050919050565b600b5481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480612ec8575060011515600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b1515612ed357600080fd5b80600b8190555050565b600081831115612ef1578183039050612ef7565b82820390505b92915050565b600080600080600e6000868152602001908152602001600020549350600d60008581526020019081526020016000209050838160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168260010154935093509350509193909250565b600260009054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612fd557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151561304c57806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806130fa575060011515600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b151561310557600080fd5b6109c4601160008081526020019081526020016000208190555061038460116000600181526020019081526020016000208190555061019060116000600281526020019081526020016000208190555060e1601160006003815260200190815260200160002081905550609060116000600481526020019081526020016000208190555060516011600060058152602001908152602001600020819055506031601160006006815260200190815260200160002081905550603160116000600781526020019081526020016000208190555060246011600060088152602001908152602001600020819055506024601160006009815260200190815260200160002081905550602460116000600a815260200190815260200160002081905550601960116000600b815260200190815260200160002081905550601960116000600c815260200190815260200160002081905550601960116000600d815260200190815260200160002081905550601960116000600e815260200190815260200160002081905550601060116000600f8152602001908152602001600020819055506010601160006010815260200190815260200160002081905550601060116000601181526020019081526020016000208190555060106011600060128152602001908152602001600020819055506010601160006013815260200190815260200160002081905550600960116000601481526020019081526020016000208190555060096011600060158152602001908152602001600020819055506009601160006016815260200190815260200160002081905550600960116000601781526020019081526020016000208190555060096011600060188152602001908152602001600020819055506009601160006019815260200190815260200160002081905550565b6000806000806000601060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549450600d600086815260200190815260200160002090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169350806001015492508060020160009054906101000a900460ff169150509193509193565b600654815600a165627a7a723058206c406328c6f2d09cef94851ce0a80164f53acbea30373363958c4278ed71fabe002900000000000000000000000095daaab98046846bf4b2853e23cba236fa394a31
Deployed Bytecode
0x606060405260043610610251576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806301239adf1461025657806306fdde031461027f57806314d0f1ba1461030d57806318160ddd1461035e5780632f48f1511461038757806333835161146103b057806348ef5aa8146104005780634db77d9d146104255780634efb023e1461045c5780634fbf6e9f1461048d578063503c849e14610508578063522f68151461053157806354f60aea1461057357806355a373d61461059c57806359b62658146105f15780635c7b9ccf1461063357806362b26f951461065c5780636352211e14610685578063672324ac146106e85780636c81fd6d1461071157806370a082311461074a578063754ad9811461079757806378761590146107c35780637c17dc02146108445780638da5cb5b1461084e578063905473cf146108a357806395d89b41146108cf5780639b01c7ac1461095d5780639e281a98146109aa5780639ededf77146109ec5780639ffa071114610a15578063a9059cbb14610a38578063b02b69d614610a7a578063b60868be14610aa6578063b73974a114610b17578063b85d627514610b40578063be32eeba14610b79578063c0b332c114610bb0578063c59d484714610bd9578063cd4b691414610c09578063cf2d03ae14610c40578063d398806d14610c69578063d4fa902114610c8c578063ecd747de14610ccc578063ee4e441614610d3d578063f285329214610d6a578063f838ea1a14610da3578063f8ecb55814610db8578063fbe3549c14610e4a575b600080fd5b341561026157600080fd5b610269610e73565b6040518082815260200191505060405180910390f35b341561028a57600080fd5b610292610e79565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102d25780820151818401526020810190506102b7565b50505050905090810190601f1680156102ff5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561031857600080fd5b610344600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610eb2565b604051808215151515815260200191505060405180910390f35b341561036957600080fd5b610371610ed2565b6040518082815260200191505060405180910390f35b341561039257600080fd5b61039a610edc565b6040518082815260200191505060405180910390f35b34156103bb57600080fd5b6103fe6004808035906020019091908035906020019091908035906020019091908035906020019091908035906020019091908035906020019091905050610ee2565b005b341561040b57600080fd5b61042360048080351515906020019091905050610fd6565b005b341561043057600080fd5b610446600480803590602001909190505061104e565b6040518082815260200191505060405180910390f35b341561046757600080fd5b61046f61106b565b604051808261ffff1661ffff16815260200191505060405180910390f35b341561049857600080fd5b6104b4600480803563ffffffff1690602001909190505061107f565b604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182151515158152602001935050505060405180910390f35b341561051357600080fd5b61051b6110ea565b6040518082815260200191505060405180910390f35b341561053c57600080fd5b610571600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506110f0565b005b341561057e57600080fd5b61058661120e565b6040518082815260200191505060405180910390f35b34156105a757600080fd5b6105af611216565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156105fc57600080fd5b610631600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061123c565b005b341561063e57600080fd5b6106466114d3565b6040518082815260200191505060405180910390f35b341561066757600080fd5b61066f6114d9565b6040518082815260200191505060405180910390f35b341561069057600080fd5b6106a660048080359060200190919050506114df565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156106f357600080fd5b6106fb61153b565b6040518082815260200191505060405180910390f35b341561071c57600080fd5b610748600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611541565b005b341561075557600080fd5b610781600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611681565b6040518082815260200191505060405180910390f35b34156107a257600080fd5b6107c160048080359060200190919080359060200190919050506116f3565b005b34156107ce57600080fd5b6107ed6004808035906020019091908035906020019091905050611e43565b604051808581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200194505050505060405180910390f35b61084c611f34565b005b341561085957600080fd5b61086161211a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156108ae57600080fd5b6108cd600480803590602001909190803590602001909190505061213f565b005b34156108da57600080fd5b6108e2612211565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610922578082015181840152602081019050610907565b50505050905090810190601f16801561094f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561096857600080fd5b610994600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061224a565b6040518082815260200191505060405180910390f35b34156109b557600080fd5b6109ea600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050612293565b005b34156109f757600080fd5b6109ff612564565b6040518082815260200191505060405180910390f35b3415610a2057600080fd5b610a36600480803590602001909190505061256a565b005b3415610a4357600080fd5b610a78600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061282f565b005b3415610a8557600080fd5b610aa46004808035906020019091908035906020019091905050612a3a565b005b3415610ab157600080fd5b610ac76004808035906020019091905050612b54565b604051808481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390f35b3415610b2257600080fd5b610b2a612c06565b6040518082815260200191505060405180910390f35b3415610b4b57600080fd5b610b77600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612c0b565b005b3415610b8457600080fd5b610b9a6004808035906020019091905050612d4c565b6040518082815260200191505060405180910390f35b3415610bbb57600080fd5b610bc3612d69565b6040518082815260200191505060405180910390f35b3415610be457600080fd5b610bec612d6f565b604051808381526020018281526020019250505060405180910390f35b3415610c1457600080fd5b610c2a6004808035906020019091905050612dea565b6040518082815260200191505060405180910390f35b3415610c4b57600080fd5b610c53612e17565b6040518082815260200191505060405180910390f35b3415610c7457600080fd5b610c8a6004808035906020019091905050612e1d565b005b3415610c9757600080fd5b610cb66004808035906020019091908035906020019091905050612edd565b6040518082815260200191505060405180910390f35b3415610cd757600080fd5b610ced6004808035906020019091905050612efd565b604051808481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390f35b3415610d4857600080fd5b610d50612f67565b604051808215151515815260200191505060405180910390f35b3415610d7557600080fd5b610da1600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612f7a565b005b3415610dae57600080fd5b610db661304f565b005b3415610dc357600080fd5b610def600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506133ad565b604051808581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018215151515815260200194505050505060405180910390f35b3415610e5557600080fd5b610e5d613456565b6040518082815260200191505060405180910390f35b600c5481565b6040805190810160405280600b81526020017f456d6f6e744672656e7a7900000000000000000000000000000000000000000081525081565b60016020528060005260406000206000915054906101000a900460ff1681565b6000601254905090565b60055481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610f8d575060011515600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b1515610f9857600080fd5b856005819055508460068190555083600781905550826008819055508160098190555080600a81905550600a54601402600c81905550505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561103157600080fd5b80600260006101000a81548160ff02191690831515021790555050565b600060116000838152602001908152602001600020549050919050565b600060149054906101000a900461ffff1681565b600080600080600d60008663ffffffff16815260200190815260200160002090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600101548260020160009054906101000a900460ff16935093509350509193909250565b60085481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061119b575060011515600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b15156111a657600080fd5b3073ffffffffffffffffffffffffffffffffffffffff16318111156111ca57600080fd5b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050151561120a57600080fd5b5050565b6305f5e10081565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806112ea575060011515600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b15156112f557600080fd5b6064600954840281151561130557fe5b0491506006548214151561131857600080fd5b6000600d6000601060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054815260200190815260200160002060010154111561137b57600080fd5b6001601260008282540192505081905550600d600060125481526020019081526020016000209050838160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600654816001018190555060008160020160006101000a81548160ff021916908315150217905550601254601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061145f600354612dea565b6003819055508373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012546040518082815260200191505060405180910390a350505050565b6101fe81565b60125481565b600080600d60008481526020019081526020016000209050600081600101541115611530578060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150611535565b600091505b50919050565b60095481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561159c57600080fd5b60001515600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515141561167e5760018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600060148282829054906101000a900461ffff160192506101000a81548161ffff021916908361ffff1602179055505b50565b600080600d6000601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481526020019081526020016000206001015411156116e957600190506116ee565b600090505b919050565b600080600080600080600260009054906101000a900460ff1615151561171857600080fd5b600c54871015801561172a5750868814155b1561173457600080fd5b601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549550600d6000878152602001908152602001600020945060008560010154141561179d57600080fd5b8460020160009054906101000a900460ff161580156117be57506101fe8814155b156117c857600080fd5b8460020160009054906101000a900460ff1680156117f9575085600e60008a81526020019081526020016000205414155b1561180357600080fd5b61182560148981151561181257fe5b0460148981151561181f57fe5b04612edd565b935061184960148981151561183657fe5b0660148981151561184357fe5b06612edd565b9250601160006305f5e100876001015481151561186257fe5b048152602001908152602001600020549150600082141561188357600b5491505b8183840285860201111561189657600080fd5b6000600e60008a8152602001908152602001600020819055506101fe881415156119095760648560010154600754028115156118ce57fe5b04935083600f60008a815260200190815260200160002060008282540192505081905550838560010160008282540392505081905550611927565b60018560020160006101000a81548160ff0219169083151502179055505b6101fe8714156119bd5760008560020160006101000a81548160ff0219169083151502179055503373ffffffffffffffffffffffffffffffffffffffff167f0a4f6de26755798436390daf3719fe42b9f04c44b2fe0625de4342e1e2459a10878a8a89600101546040518085815260200184815260200183815260200182815260200194505050505060405180910390a2611e39565b600e60008881526020019081526020016000205493506000841415611abe576000600f6000898152602001908152602001600020541115611a3757600f60008881526020019081526020016000205485600101600082825401925050819055506000600f6000898152602001908152602001600020819055505b3373ffffffffffffffffffffffffffffffffffffffff167f0a4f6de26755798436390daf3719fe42b9f04c44b2fe0625de4342e1e2459a10878a8a89600101546040518085815260200184815260200183815260200182815260200194505050505060405180910390a285600e600089815260200190815260200160002081905550611e38565b6101fe881415611acd57600080fd5b600d6000858152602001908152602001600020905084600101548160010154111515611c6757806001015485600101600082825401925050819055506000816001018190555085600e6000898152602001908152602001600020819055508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc15f52570a93e125c446dad9d62b70661ca12a0f34b6b4fe6375284706576c4f88878c8c8b60010154604051808681526020018581526020018481526020018381526020018281526020019550505050505060405180910390a3600073ffffffffffffffffffffffffffffffffffffffff168160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a3611e37565b611c72600354612dea565b6003819055506001600c5403600354811515611c8a57fe5b0692506101fe831415611c9e576001830192505b6002856001015402600f6000858152602001908152602001600020819055507f8711a2393e2fe98769f70ccbd7a1a0f7db5582a113e5645a5ef1e637f3eee0e2836002876001015402604051808381526020018281526020019250505060405180910390a184600101548160010160008282540392505081905550600085600101819055508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fca1dfeb0fb285992538d0b85b07f749d9c530b608237c5aca0726b3ee383509f88878c8c8760010154604051808681526020018581526020018481526020018381526020018281526020019550505050505060405180910390a3600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef886040518082815260200191505060405180910390a35b5b5b5050505050505050565b6000806000806000808791505b8682111515611f28576000600e6000848152602001908152602001600020541115611ed957600e6000838152602001908152602001600020549450600d6000868152602001908152602001600020905081858260000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683600101549550955095509550611f29565b6000600f6000848152602001908152602001600020541115611f1d5781600080600f6000868152602001908152602001600020548292509550955095509550611f29565b600182019150611e50565b5b505092959194509250565b6000600260009054906101000a900460ff16151515611f5257600080fd5b60055434141515611f6257600080fd5b6000600d6000601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548152602001908152602001600020600101541115611fc557600080fd5b6001601260008282540192505081905550600d600060125481526020019081526020016000209050338160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600654816001018190555060008160020160006101000a81548160ff021916908315150217905550601254601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120a9600354612dea565b6003819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012546040518082815260200191505060405180910390a350565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806121ea575060011515600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b15156121f557600080fd5b8060116000848152602001908152602001600020819055505050565b6040805190810160405280600581526020017f454d4f4e4600000000000000000000000000000000000000000000000000000081525081565b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480612340575060011515600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b151561234b57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515156123a957600080fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff166370a08231306000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b151561247157600080fd5b6102c65a03f1151561248257600080fd5b5050506040518051905082111561249857600080fd5b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84846000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b151561254357600080fd5b6102c65a03f1151561255457600080fd5b5050506040518051905050505050565b600a5481565b6000806000600260009054906101000a900460ff1615151561258b57600080fd5b601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549250600d600084815260200190815260200160002091506006548401826001015410156125f757600080fd5b838260010160008282540392505081905550600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff166370a08231306000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15156126d157600080fd5b6102c65a03f115156126e257600080fd5b505050604051805190508411156126f857600080fd5b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb336064600854880281151561272557fe5b046000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15156127b357600080fd5b6102c65a03f115156127c457600080fd5b50505060405180519050503373ffffffffffffffffffffffffffffffffffffffff167f34f1b4b50ab1fe8066f90e4b650517b54750c5450d115a4ca83183ba27d69b48848460010154604051808381526020018281526020019250505060405180910390a250505050565b600080600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415151561286e57600080fd5b601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549150600d6000838152602001908152602001600020905060008214806128d8575060008160010154145b806128e35750828214155b156128ed57600080fd5b60006128f885611681565b111561290357600080fd5b838160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a350505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480612ae5575060011515600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b1515612af057600080fd5b80600f6000848152602001908152602001600020600082825401925050819055507f8711a2393e2fe98769f70ccbd7a1a0f7db5582a113e5645a5ef1e637f3eee0e28282604051808381526020018281526020019250505060405180910390a15050565b60008060008060008591505b60125482111515612beb57600d6000838152602001908152602001600020905060008160010154118015612ba357508060020160009054906101000a900460ff16155b15612bde57818160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168260010154945094509450612bfd565b8180600101925050612b60565b60008060008292508090509450945094505b50509193909250565b601481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612c6657600080fd5b60011515600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415612d49576000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600060148282829054906101000a900461ffff160392506101000a81548161ffff021916908361ffff1602179055505b50565b6000600e6000838152602001908152602001600020549050919050565b60075481565b600080600080925060009150600090505b6014600a5402811015612de5576000600e6000838152602001908152602001600020541115612db457600183019250612dd8565b6000600f6000838152602001908152602001600020541115612dd7576001820191505b5b8080600101915050612d80565b509091565b60008142446040518083815260200182815260200192505050604051809103902060019004189050919050565b600b5481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480612ec8575060011515600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b1515612ed357600080fd5b80600b8190555050565b600081831115612ef1578183039050612ef7565b82820390505b92915050565b600080600080600e6000868152602001908152602001600020549350600d60008581526020019081526020016000209050838160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168260010154935093509350509193909250565b600260009054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612fd557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151561304c57806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806130fa575060011515600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b151561310557600080fd5b6109c4601160008081526020019081526020016000208190555061038460116000600181526020019081526020016000208190555061019060116000600281526020019081526020016000208190555060e1601160006003815260200190815260200160002081905550609060116000600481526020019081526020016000208190555060516011600060058152602001908152602001600020819055506031601160006006815260200190815260200160002081905550603160116000600781526020019081526020016000208190555060246011600060088152602001908152602001600020819055506024601160006009815260200190815260200160002081905550602460116000600a815260200190815260200160002081905550601960116000600b815260200190815260200160002081905550601960116000600c815260200190815260200160002081905550601960116000600d815260200190815260200160002081905550601960116000600e815260200190815260200160002081905550601060116000600f8152602001908152602001600020819055506010601160006010815260200190815260200160002081905550601060116000601181526020019081526020016000208190555060106011600060128152602001908152602001600020819055506010601160006013815260200190815260200160002081905550600960116000601481526020019081526020016000208190555060096011600060158152602001908152602001600020819055506009601160006016815260200190815260200160002081905550600960116000601781526020019081526020016000208190555060096011600060188152602001908152602001600020819055506009601160006019815260200190815260200160002081905550565b6000806000806000601060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549450600d600086815260200190815260200160002090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169350806001015492508060020160009054906101000a900460ff169150509193509193565b600654815600a165627a7a723058206c406328c6f2d09cef94851ce0a80164f53acbea30373363958c4278ed71fabe0029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000095daaab98046846bf4b2853e23cba236fa394a31
-----Decoded View---------------
Arg [0] : _tokenContract (address): 0x95dAaaB98046846bF4B2853e23cba236fa394A31
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000095daaab98046846bf4b2853e23cba236fa394a31
Swarm Source
bzzr://6c406328c6f2d09cef94851ce0a80164f53acbea30373363958c4278ed71fabe
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.