Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 6,071 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Draw Redress | 11988626 | 1379 days ago | IN | 0 ETH | 0.01874334 | ||||
Draw Redress | 11984008 | 1380 days ago | IN | 0 ETH | 0.00893092 | ||||
Draw Redress | 11982569 | 1380 days ago | IN | 0 ETH | 0.00842425 | ||||
Draw Redress | 11982523 | 1380 days ago | IN | 0 ETH | 0.0103265 | ||||
Draw Redress | 11982462 | 1380 days ago | IN | 0 ETH | 0.01361544 | ||||
Draw Redress | 11956065 | 1384 days ago | IN | 0 ETH | 0.01909699 | ||||
Draw Redress | 11878849 | 1396 days ago | IN | 0 ETH | 0.0213957 | ||||
Draw Redress | 11870277 | 1397 days ago | IN | 0 ETH | 0.01520686 | ||||
Draw Redress | 11823230 | 1405 days ago | IN | 0 ETH | 0.0353275 | ||||
Draw Redress | 11820639 | 1405 days ago | IN | 0 ETH | 0.02422488 | ||||
Draw Redress | 11767740 | 1413 days ago | IN | 0 ETH | 0.02528583 | ||||
Draw Redress | 11759173 | 1414 days ago | IN | 0 ETH | 0.01834312 | ||||
Draw Redress | 11755495 | 1415 days ago | IN | 0 ETH | 0.00919484 | ||||
Draw Redress | 11753250 | 1415 days ago | IN | 0 ETH | 0.02422488 | ||||
Draw Redress | 11737335 | 1418 days ago | IN | 0 ETH | 0.008696 | ||||
Draw Redress | 11731061 | 1419 days ago | IN | 0 ETH | 0.00570675 | ||||
Draw Redress | 11730840 | 1419 days ago | IN | 0 ETH | 0.00572963 | ||||
Draw Redress | 11729921 | 1419 days ago | IN | 0 ETH | 0.00611437 | ||||
Draw Redress | 11725763 | 1420 days ago | IN | 0 ETH | 0.01548975 | ||||
Draw Redress | 11716410 | 1421 days ago | IN | 0 ETH | 0.00883187 | ||||
Draw Redress | 11715752 | 1421 days ago | IN | 0 ETH | 0.005435 | ||||
Draw Redress | 11714297 | 1421 days ago | IN | 0 ETH | 0.006522 | ||||
Draw Redress | 11714218 | 1421 days ago | IN | 0 ETH | 0.00679375 | ||||
Draw Redress | 11714118 | 1421 days ago | IN | 0 ETH | 0.00679375 | ||||
Draw Redress | 11714082 | 1421 days ago | IN | 0 ETH | 0.00611437 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
11379594 | 1473 days ago | 62.98303776 ETH | ||||
11378642 | 1473 days ago | 0.05 ETH | ||||
11378642 | 1473 days ago | 0.05 ETH | ||||
11378483 | 1473 days ago | 0.934035 ETH | ||||
11377962 | 1473 days ago | 0.05 ETH | ||||
11377962 | 1473 days ago | 0.05 ETH | ||||
11377520 | 1473 days ago | 0.05 ETH | ||||
11377520 | 1473 days ago | 0.05 ETH | ||||
11377472 | 1473 days ago | 0.05 ETH | ||||
11377472 | 1473 days ago | 0.05 ETH | ||||
11376273 | 1473 days ago | 0.05 ETH | ||||
11376273 | 1473 days ago | 0.05 ETH | ||||
11375515 | 1473 days ago | 0.1152 ETH | ||||
11375454 | 1473 days ago | 0.096 ETH | ||||
11373595 | 1474 days ago | 0.1 ETH | ||||
11373595 | 1474 days ago | 0.1 ETH | ||||
11373379 | 1474 days ago | 0.20124 ETH | ||||
11373366 | 1474 days ago | 0.45 ETH | ||||
11373366 | 1474 days ago | 0.45 ETH | ||||
11373352 | 1474 days ago | 0.2592 ETH | ||||
11373013 | 1474 days ago | 0.3354 ETH | ||||
11372984 | 1474 days ago | 0.53064 ETH | ||||
11372941 | 1474 days ago | 0.62049 ETH | ||||
11372936 | 1474 days ago | 0.225 ETH | ||||
11372915 | 1474 days ago | 0.53016 ETH |
Loading...
Loading
This contract contains unverified libraries: lib_math, DepositedHistory
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.
Contract Name:
Round
Compiler Version
v0.5.1+commit.c8a2cb62
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-06-28 */ pragma solidity >=0.5.0 <0.6.0; contract InternalModule { address[] _authAddress; address payable public _defaultReciver = address(0x2E5600376D4F07F13Ea69Caf416FB2F7B6659897); address payable[] public _contractOwners = [ address(0xc99D13544297d5baD9e0b0Ca0E94A4E614312F33) ]; constructor() public { _contractOwners.push(msg.sender); } modifier OwnerOnly() { bool exist = false; for ( uint i = 0; i < _contractOwners.length; i++ ) { if ( _contractOwners[i] == msg.sender ) { exist = true; break; } } require(exist); _; } modifier DAODefense() { uint256 size; address payable safeAddr = msg.sender; assembly {size := extcodesize(safeAddr)} require( size == 0, "DAO_Warning" ); _; } modifier APIMethod() { bool exist = false; for (uint i = 0; i < _authAddress.length; i++) { if ( _authAddress[i] == msg.sender ) { exist = true; break; } } require(exist); _; } function AuthAddresses() external view returns (address[] memory authAddr) { return _authAddress; } function AddAuthAddress(address _addr) external OwnerOnly { _authAddress.push(_addr); } function DelAuthAddress(address _addr) external OwnerOnly { for (uint i = 0; i < _authAddress.length; i++) { if (_authAddress[i] == _addr) { for (uint j = 0; j < _authAddress.length - 1; j++) { _authAddress[j] = _authAddress[j+1]; } delete _authAddress[_authAddress.length - 1]; _authAddress.length--; return ; } } } } pragma solidity >=0.5.1 <0.7.0; contract KState { address private _KDeveloper; address internal _KIMPLAddress; address[] _KAuthAddress; address payable public _KDefaultReciver = address(0x2E5600376D4F07F13Ea69Caf416FB2F7B6659897); address payable[] public _KContractOwners = [ address(0xc99D13544297d5baD9e0b0Ca0E94A4E614312F33) ]; bool public _KContractBroken; mapping (address => bool) _KWithdrawabledAddress; constructor() public { _KDeveloper = msg.sender; _KContractOwners.push(msg.sender); } modifier KWhenBroken() { require(_KContractBroken); _; } modifier KWhenNotBroken() { require(!_KContractBroken); _; } modifier KOwnerOnly() { bool exist = false; for ( uint i = 0; i < _KContractOwners.length; i++ ) { if ( _KContractOwners[i] == msg.sender ) { exist = true; break; } } require(exist); _; } function KSetContractBroken(bool broken) external KOwnerOnly { _KContractBroken = broken; } modifier KDAODefense() { uint256 size; address payable safeAddr = msg.sender; assembly {size := extcodesize(safeAddr)} require( size == 0, "DAO_Warning" ); _; } modifier KAPIMethod() { bool exist = false; for (uint i = 0; i < _KAuthAddress.length; i++) { if ( _KAuthAddress[i] == msg.sender ) { exist = true; break; } } require(exist); _; } function KAuthAddresses() external view returns (address[] memory authAddr) { return _KAuthAddress; } function KAddAuthAddress(address _addr) external KOwnerOnly { _KAuthAddress.push(_addr); } modifier KDeveloperOnly { require(msg.sender == _KDeveloper); _; } function KSetImplAddress(address impl) external KDeveloperOnly { _KIMPLAddress = impl; } function KGetImplAddress() external view KDeveloperOnly returns (address) { return _KIMPLAddress; } } contract KDoctor is KState { modifier write {_;} } contract KContract is KState { modifier write { if ( _KIMPLAddress != address(0x0) ) { (, bytes memory ret) = address(_KIMPLAddress).delegatecall(msg.data); assembly { return( add(ret, 0x20), mload(ret) ) } } else { _; } } } pragma solidity >=0.4.22 <0.7.0; library UserRelation { struct MainDB { uint totalAddresses; mapping ( address => address ) _recommerMapping; mapping ( address => address[] ) _recommerList; mapping ( address => uint256 ) _recommerCountMapping; mapping ( bytes6 => address ) _shortCodeMapping; mapping ( address => bytes6 ) _addressShotCodeMapping; } function Init(MainDB storage self) internal { address rootAddr = address(0xdead); bytes6 rootCode = 0x303030303030; self._recommerMapping[rootAddr] = address(0xdeaddead); self._shortCodeMapping[rootCode] = rootAddr; self._addressShotCodeMapping[rootAddr] = rootCode; } function GetIntroducer( MainDB storage self, address _owner ) internal view returns (address) { return self._recommerMapping[_owner]; } function RecommendList( MainDB storage self, address _owner ) internal view returns ( address[] memory list, uint256 len ) { return (self._recommerList[_owner], self._recommerList[_owner].length ); } function RegisterShortCode( MainDB storage self, address _owner, bytes6 shortCode ) internal returns (bool) { if ( self._shortCodeMapping[shortCode] != address(0x0) ) { return false; } if ( self._addressShotCodeMapping[_owner] != bytes6(0x0) ) { return false; } self._shortCodeMapping[shortCode] = _owner; self._addressShotCodeMapping[_owner] = shortCode; return true; } function ShortCodeToAddress( MainDB storage self, bytes6 shortCode ) internal view returns (address) { return self._shortCodeMapping[shortCode]; } function AddressToShortCode( MainDB storage self, address addr ) internal view returns (bytes6) { return self._addressShotCodeMapping[addr]; } function AddRelation( MainDB storage self, address owner, address recommer ) internal returns (int) { if ( recommer == owner ) { require(false, "-1"); return -1; } require( recommer != owner, "-1" ); require( self._recommerMapping[owner] == address(0x0), "-2"); if ( recommer != address(0xdead) ) { require( self._recommerMapping[recommer] != address(0x0), "-3"); } self._recommerMapping[owner] = recommer; self._recommerList[recommer].push(owner); self._recommerCountMapping[recommer] ++; self.totalAddresses++; return 0; } function AddRelationEx( MainDB storage self, address owner, address recommer, bytes6 regShoutCode ) internal returns (int) { if ( !RegisterShortCode(self, owner, regShoutCode) ) { return -4; } return AddRelation(self, owner, recommer); } function TeamMemberTotal( MainDB storage self, address _addr ) internal view returns (uint256) { return self._recommerCountMapping[_addr]; } } pragma solidity >=0.4.22 <0.7.0; library Achievement { using UserRelation for UserRelation.MainDB; struct MainDB { uint latestVersion; uint currVersion; mapping(uint => mapping(address => uint) ) achievementMapping; mapping ( address => uint256 ) _vaildMemberCountMapping; mapping ( address => bool ) _vaildMembersMapping; mapping ( address => uint256 ) _despositTotalMapping; } function AppendAchievement( MainDB storage self, UserRelation.MainDB storage userRelation, address owner, uint value ) internal { require(value > 0, "ValueIsZero"); for ( address parent = owner; parent != address(0x0) && parent != address(0xdead); parent = userRelation.GetIntroducer(parent) ) { self.achievementMapping[self.currVersion][parent] += value; } } function DivestmentAchievement( MainDB storage self, UserRelation.MainDB storage userRelation, address owner, uint value) internal { for ( address parent = owner; parent != address(0x0) && parent != address(0xdaed); parent = userRelation.GetIntroducer(parent) ) { if ( self.achievementMapping[self.currVersion][parent] < value ) { self.achievementMapping[self.currVersion][parent] = 0; } else { self.achievementMapping[self.currVersion][parent] -= value; } } } function AchievementValueOfOwner( MainDB storage self, address owner ) internal view returns (uint) { return self.achievementMapping[self.currVersion][owner]; } function AchievementDistribution( MainDB storage self, UserRelation.MainDB storage userRelation, address owner) internal view returns ( uint totalSum, uint large, uint len, address[] memory addrs, uint[] memory values ) { totalSum = self.achievementMapping[self.currVersion][owner]; (addrs, len) = userRelation.RecommendList(owner); for ( uint i = 0; i < len; i++ ) { values[i] = self.achievementMapping[self.currVersion][addrs[i]]; if ( self.achievementMapping[self.currVersion][addrs[i]] > large ) { large = self.achievementMapping[self.currVersion][addrs[i]]; } } } function AchievementDynamicValue( MainDB storage self, UserRelation.MainDB storage userRelation, address owner) internal view returns ( uint v ) { uint large; uint largeId; (address[] memory addrs, uint len) = userRelation.RecommendList(owner); uint[] memory values = new uint[](len); for ( uint i = 0; i < len; i++ ) { values[i] = self.achievementMapping[self.currVersion][addrs[i]]; if ( self.achievementMapping[self.currVersion][addrs[i]] > large ) { large = self.achievementMapping[self.currVersion][addrs[i]]; largeId = i; } } for ( uint i = 0; i < len; i++ ) { if ( i != largeId ) { if ( values[i] > 10000 ether ) { v += ((values[i]) / 1 ether) + 90000; } else { v += (values[i] / 1 ether) * 10; } } else { v += (values[i] / 1 ether) / 1000; } } } function ValidMembersCountOf( MainDB storage self, address _addr ) internal view returns (uint256) { return self._vaildMemberCountMapping[_addr]; } function InvestTotalEtherOf( MainDB storage self, address _addr ) internal view returns (uint256) { return self._despositTotalMapping[_addr]; } function DirectValidMembersCount( MainDB storage self, UserRelation.MainDB storage userRelation, address _addr ) internal view returns (uint256) { uint256 count = 0; address[] storage rlist = userRelation._recommerList[_addr]; for ( uint i = 0; i < rlist.length; i++ ) { if ( self._vaildMembersMapping[rlist[i]] ) { count ++; } } return count; } function IsValidMember( MainDB storage self, address _addr ) internal view returns (bool) { return self._vaildMembersMapping[_addr]; } function MarkValidAddress( MainDB storage self, UserRelation.MainDB storage userRelation, address _addr, uint256 _evalue ) external { if ( self._vaildMembersMapping[_addr] == false ) { address parent = userRelation._recommerMapping[_addr]; for ( uint i = 0; i < 15; i++ ) { self._vaildMemberCountMapping[parent] ++; parent = userRelation._recommerMapping[parent]; if ( parent == address(0x0) ) { break; } } self._vaildMembersMapping[_addr] = true; } self._despositTotalMapping[_addr] += _evalue; } } pragma solidity >=0.5.1 <0.6.0; contract Recommend is KContract { UserRelation.MainDB _userRelation; using UserRelation for UserRelation.MainDB; constructor() public { _userRelation.Init(); } function GetIntroducer( address _owner ) external view returns (address) { return _userRelation.GetIntroducer(_owner); } function RecommendList( address _owner) external view returns ( address[] memory list, uint256 len ) { return _userRelation.RecommendList(_owner); } function ShortCodeToAddress( bytes6 shortCode ) external view returns (address) { return _userRelation.ShortCodeToAddress(shortCode); } function AddressToShortCode( address _addr ) external view returns (bytes6) { return _userRelation.AddressToShortCode(_addr); } function TeamMemberTotal( address _addr ) external view returns (uint256) { return _userRelation.TeamMemberTotal(_addr); } function RegisterShortCode( bytes6 shortCode ) external write { require(_userRelation.RegisterShortCode(msg.sender, shortCode)); } function BindRelation( address _recommer ) external write { require( _userRelation.AddRelation(msg.sender, _recommer) >= 0, "-1" ); } function BindRelationEx( address _recommer, bytes6 shortCode ) external write{ require( _userRelation.AddRelationEx(msg.sender, _recommer, shortCode) >= 0, "-1" ); } function AddressesCount() external view returns (uint) { return _userRelation.totalAddresses; } } pragma solidity >=0.5.1 <0.6.0; contract RecommendSmallTeam is Recommend { Achievement.MainDB _achievementer; using Achievement for Achievement.MainDB; function API_AppendAchievement( address owner, uint value ) external write KAPIMethod { _achievementer.AppendAchievement( _userRelation, owner, value ); } function API_DivestmentAchievement( address owner, uint value) external write KAPIMethod { _achievementer.DivestmentAchievement( _userRelation, owner, value ); } function AchievementValueOf( address owner ) external view returns (uint) { return _achievementer.AchievementValueOfOwner(owner); } function AchievementDistributionOf( address owner) external view returns ( uint totalSum, uint large, uint len, address[] memory addrs, uint[] memory values ) { return _achievementer.AchievementDistribution(_userRelation, owner ); } function AchievementDynamicValue( address owner) external view returns ( uint ) { return _achievementer.AchievementDynamicValue(_userRelation, owner); } function ValidMembersCountOf( address _addr ) external view returns (uint256) { return _achievementer.ValidMembersCountOf(_addr); } function InvestTotalEtherOf( address _addr ) external view returns (uint256) { return _achievementer.InvestTotalEtherOf(_addr); } function DirectValidMembersCount( address _addr ) external view returns (uint256) { return _achievementer.DirectValidMembersCount(_userRelation, _addr); } function IsValidMember( address _addr ) external view returns (bool) { return _achievementer.IsValidMember(_addr); } function TotalAddresses() external view returns (uint) { return _userRelation.totalAddresses; } function API_MarkValid( address _addr, uint256 _evalue ) external KAPIMethod { return _achievementer.MarkValidAddress(_userRelation, _addr, _evalue); } function Developer_VersionInfo() external view returns (uint latest, uint curr) { return (_achievementer.latestVersion, _achievementer.currVersion); } function Developer_PushNewDataVersion() external write KDeveloperOnly { _achievementer.latestVersion++; } function Developer_SetDataVersion(uint v) external write KDeveloperOnly { _achievementer.currVersion = v; } function Developer_WriteRelation( address _parent, address[] calldata _children, bytes6[] calldata _shortCode, bool force ) external write KDeveloperOnly { for ( uint i = 0; i < _children.length; i++ ) { _userRelation._recommerMapping[_children[i]] = _parent; _userRelation._shortCodeMapping[_shortCode[i]] = _children[i]; _userRelation._addressShotCodeMapping[_children[i]] = _shortCode[i]; } if ( force ) { for ( uint i = 0; i < _children.length; i++ ) { _userRelation._recommerList[_parent].push(_children[i]); } _userRelation._recommerCountMapping[_parent] += _children.length; } else { _userRelation._recommerList[_parent] = _children; _userRelation._recommerCountMapping[_parent] = _children.length; } _userRelation.totalAddresses += _children.length; } } pragma solidity >=0.5.0 <0.6.0; contract TuringInterface { function CallOnlyOnceInit( address roundAddress ) external; function GetProfitPropBytime(uint256 time) external view returns (uint256); function GetCurrentWithrawThreshold() external view returns (uint256); function GetDepositedLimitMaxCurrent() external view returns (uint256); function GetDepositedLimitCurrentDelta() external view returns (uint256); function Analysis() external; function API_SubDepositedLimitCurrent(uint256 v) external; function API_PowerOn() external; } pragma solidity >=0.5.0 <0.6.0; interface CostInterface { function CurrentCostProp() external view returns (uint); function WithdrawCost(uint value) external view returns (uint); function DepositedCost(uint value) external view returns (uint); } pragma solidity >=0.5.0 <0.6.0; contract ERC20Interface { uint256 public totalSupply; string public name; uint8 public decimals; string public symbol; function balanceOf(address _owner) public view returns (uint256 balance); function transfer(address _to, uint256 _value) public returns (bool success); function transferFrom(address _from, address _to, uint256 _value) public returns (bool success); function approve(address _spender, uint256 _value) public returns (bool success); function allowance(address _owner, address _spender) public view returns (uint256 remaining); event Transfer(address indexed _from, address indexed _to, uint256 _value); event Approval(address indexed _owner, address indexed _spender, uint256 _value); function API_MoveToken(address _from, address _to, uint256 _value) external; } pragma solidity >=0.5.0 <0.6.0; interface LevelSubInterface { function LevelOf( address _owner ) external view returns (uint256 lv); function CanUpgradeLv( address _rootAddr ) external view returns (int); function DoUpgradeLv( ) external returns (uint256); function ProfitHandle( address _owner, uint256 _amount ) external view returns ( uint256 len, address[] memory addrs, uint256[] memory profits ); function PaymentToUpgradeNoder() external payable; function ManagerListOfLevel( uint256 lv ) external view returns (address[] memory addrs); } pragma solidity >=0.5.0 <0.6.0; interface LuckAssetsPoolInterface { function RewardsAmount() external view returns (uint256); function WithdrawRewards() external returns (uint256); function InPoolProp() external view returns (uint256); function API_AddLatestAddress( address owner, uint256 amount ) external returns (bool openable); function NeedPauseGame() external view returns (bool); function API_Reboot() external returns (bool); function API_GameOver() external returns (bool); function API_Clear( address owner ) external; event Log_Winner( address owner, uint256 when, uint256 amount); } pragma solidity >=0.5.0 <0.6.0; interface StatisticsInterface { function GetStaticProfitTotalAmount() external view returns (uint256); function GetDynamicProfitTotalAmount() external view returns (uint256); function API_AddStaticTotalAmount( address player, uint256 value ) external; function API_AddDynamicTotalAmount( address player, uint256 value ) external; function API_AddWinnerCount() external; } pragma solidity >=0.5.0 <0.6.0; library lib_math { function CurrentDayzeroTime() public view returns (uint256) { return (now / OneDay()) * OneDay(); } function ConvertTimeToDay(uint256 t) public pure returns (uint256) { return (t / OneDay()) * OneDay(); } function OneDay() public pure returns (uint256) { return 1 days; } function OneHours() public pure returns (uint256) { return 1 hours; } } pragma solidity >=0.5.0 <0.6.0; library DepositedHistory { struct DB { uint256 currentDepostiTotalAmount; mapping (address => DepositedRecord) map; mapping (address => EverIn[]) amountInputs; mapping (address => Statistics) totalMap; } struct Statistics { bool isExist; uint256 totalIn; uint256 totalOut; } struct EverIn { uint256 timeOfDayZero; uint256 amount; } struct DepositedRecord { uint256 createTime; uint256 latestDepositInTime; uint256 latestWithdrawTime; uint256 depositMaxLimit; uint256 currentEther; uint256 withdrawableTotal; uint256 canWithdrawProfix; uint8 profixMultiplier; } function MaxProfixDelta( DB storage self, address owner) public view returns (uint256) { if ( !isExist(self, owner) ) { return 0; } return (self.map[owner].currentEther * self.map[owner].profixMultiplier) - self.map[owner].withdrawableTotal; } function isExist( DB storage self, address owner ) public view returns (bool) { return self.map[owner].createTime != 0; } function Create( DB storage self, address owner, uint256 value, uint256 maxlimit, uint8 muler ) public returns (bool) { uint256 dayz = lib_math.CurrentDayzeroTime(); if ( self.map[owner].createTime != 0 ) { return false; } self.map[owner] = DepositedRecord(dayz, dayz, dayz, maxlimit, value, 0, 0, muler); self.currentDepostiTotalAmount += value; if ( !self.totalMap[owner].isExist ) { self.totalMap[owner] = Statistics(true, value, 0); } else { self.totalMap[owner].totalIn += value; } self.amountInputs[owner].push( EverIn(lib_math.CurrentDayzeroTime(), value) ); return true; } function Clear( DB storage self, address owner) internal { self.map[owner].createTime = 0; self.map[owner].currentEther = 0; self.map[owner].latestDepositInTime = 0; self.map[owner].latestWithdrawTime = 0; self.map[owner].depositMaxLimit = 0; self.map[owner].currentEther = 0; self.map[owner].withdrawableTotal = 0; self.map[owner].canWithdrawProfix = 0; self.map[owner].profixMultiplier = 0; } function AppendEtherValue( DB storage self, address owner, uint256 appendValue ) public returns (bool) { if ( self.map[owner].createTime == 0 ) { return false; } self.map[owner].currentEther += appendValue; self.map[owner].latestDepositInTime = now; self.currentDepostiTotalAmount += appendValue; self.totalMap[owner].totalIn += appendValue; EverIn storage lr = self.amountInputs[owner][ self.amountInputs[owner].length - 1 ]; if ( lr.timeOfDayZero == lib_math.CurrentDayzeroTime() ) { lr.amount += appendValue; } else { self.amountInputs[owner].push( EverIn(lib_math.CurrentDayzeroTime(), lr.amount + appendValue) ); } return true; } function PushWithdrawableTotalRecord( DB storage self, address owner, uint256 profix ) public returns (bool) { if ( self.map[owner].createTime == 0 ) { return false; } self.map[owner].canWithdrawProfix = 0; self.map[owner].withdrawableTotal += profix; self.map[owner].latestWithdrawTime = lib_math.CurrentDayzeroTime(); self.totalMap[owner].totalOut += profix; if ( self.map[owner].withdrawableTotal > self.map[owner].currentEther * self.map[owner].profixMultiplier ) { self.map[owner].withdrawableTotal = self.map[owner].currentEther * self.map[owner].profixMultiplier; } return true; } function GetNearestTotoalInput( DB storage self, address owner, uint256 timeOfDayZero) public view returns (uint256) { EverIn memory lr = self.amountInputs[owner][self.amountInputs[owner].length - 1 ]; if ( timeOfDayZero >= lr.timeOfDayZero ) { return lr.amount; } else { for ( uint256 i2 = self.amountInputs[owner].length; i2 >= 1; i2--) { uint256 i = i2 - 1; if ( self.amountInputs[owner][i].timeOfDayZero <= timeOfDayZero ) { return self.amountInputs[owner][i].amount; } } } return 0; } } contract Round is InternalModule { bool public isBroken = false; TuringInterface public _TuringInc; RecommendSmallTeam public _RecommendInc; ERC20Interface public _ERC20Inc; CostInterface public _CostInc; LevelSubInterface public _LevelSubInc; StatisticsInterface public _StatisticsInc; LuckAssetsPoolInterface public _luckPoolA; LuckAssetsPoolInterface public _luckPoolB; constructor ( TuringInterface TuringInc, RecommendSmallTeam RecommendInc, ERC20Interface ERC20Inc, CostInterface CostInc, LevelSubInterface LevelSubInc, StatisticsInterface StatisticsInc, LuckAssetsPoolInterface luckPoolA, LuckAssetsPoolInterface luckPoolB ) public { _TuringInc = TuringInc; _RecommendInc = RecommendInc; _ERC20Inc = ERC20Inc; _CostInc = CostInc; _LevelSubInc = LevelSubInc; _StatisticsInc = StatisticsInc; _luckPoolA = luckPoolA; _luckPoolB = luckPoolB; } uint256 public _depositMinLimit = 1 ether; uint256 public _depositMaxLimit = 50 ether; uint8 public _profixMultiplier = 3; uint256[] public _dynamicProfits = [20, 15, 10, 5, 5, 5, 5, 5, 5, 5, 3, 3, 3, 3, 3]; DepositedHistory.DB private _depostedHistory; using DepositedHistory for DepositedHistory.DB; uint256 public _beforBrokenedCostProp; mapping( address => bool ) _redressableMapping; event Log_ProfixHistory(address indexed owner, uint256 indexed value, uint8 indexed ptype, uint256 time); event Log_NewDeposited(address indexed owner, uint256 indexed time, uint256 indexed value); event Log_NewWinner(address indexed owner, uint256 indexed time, uint256 indexed baseAmount, uint8 mn); event Log_WithdrawProfix(address indexed addr, uint256 indexed time, uint256 indexed value, uint256 rvalue); modifier OnlyInBrokened() { require( isBroken ); _; } modifier OnlyInPlaying() { require( !isBroken ); _; } modifier PauseDisable() { require ( !_luckPoolA.NeedPauseGame() ); _; } modifier DAODefense() { uint256 size; address payable safeAddr = msg.sender; assembly {size := extcodesize(safeAddr)} require( size == 0, "DAO_Warning" ); _; } function GetEvenInRecord(address owner, uint256 index) external view returns ( uint256 time, uint256 total, uint256 len ) { return ( _depostedHistory.amountInputs[owner][index].timeOfDayZero, _depostedHistory.amountInputs[owner][index].amount, _depostedHistory.amountInputs[owner].length ); } function Join() external payable OnlyInPlaying PauseDisable DAODefense { _TuringInc.Analysis(); require( _RecommendInc.GetIntroducer(msg.sender) != address(0x0), "E01" ); require( _TuringInc.GetDepositedLimitCurrentDelta() >= msg.value ); _TuringInc.API_SubDepositedLimitCurrent( msg.value ); require( msg.value >= _depositMinLimit, "E07" ); uint256 cost = _CostInc.DepositedCost(msg.value); _ERC20Inc.transferFrom( msg.sender, address(0xdead), cost ); if ( _depostedHistory.isExist(msg.sender) ) { DepositedHistory.DepositedRecord memory r = _depostedHistory.map[msg.sender]; require( msg.value <= r.depositMaxLimit - r.currentEther); require( now - r.latestDepositInTime >= lib_math.OneDay() * 2 ); _depostedHistory.AppendEtherValue(msg.sender, msg.value); } else { require( msg.value <= _depositMaxLimit ); _depostedHistory.Create(msg.sender, msg.value, _depositMaxLimit, _profixMultiplier); } emit Log_NewDeposited( msg.sender, now, msg.value); if ( address(this).balance > 3000 ether ) { _TuringInc.API_PowerOn(); } address payable lpiaddrA = address( uint160( address(_luckPoolA) ) ); address payable lpiaddrB = address( uint160( address(_luckPoolB) ) ); lpiaddrA.transfer(msg.value * _luckPoolA.InPoolProp() / 100); lpiaddrB.transfer(msg.value * _luckPoolB.InPoolProp() / 100); _luckPoolA.API_AddLatestAddress(msg.sender, msg.value); _luckPoolB.API_AddLatestAddress(msg.sender, msg.value); _RecommendInc.API_MarkValid( msg.sender, msg.value ); return ; } function CurrentDepsitedTotalAmount() external view returns (uint256) { return _depostedHistory.currentDepostiTotalAmount; } function CurrentCanWithdrawProfix(address owner) public view returns (uint256 st, uint256 dy) { if ( !_depostedHistory.isExist(owner) ) { return (0, 0); } DepositedHistory.DepositedRecord memory r = _depostedHistory.map[owner]; uint256 deltaDays = (lib_math.CurrentDayzeroTime() - r.latestWithdrawTime) / lib_math.OneDay(); uint256 staticTotal = 0; for (uint256 i = 0; i < deltaDays; i++) { uint256 cday = lib_math.CurrentDayzeroTime() - (i * lib_math.OneDay()); uint256 dp = _TuringInc.GetProfitPropBytime( cday ); staticTotal = staticTotal + (_depostedHistory.GetNearestTotoalInput(owner, cday) * dp / 1000); } return (staticTotal, r.canWithdrawProfix); } function WithdrawProfix() external OnlyInPlaying PauseDisable DAODefense { DepositedHistory.DepositedRecord memory r = _depostedHistory.map[msg.sender]; (uint256 stProfix, uint256 dyProfix) = CurrentCanWithdrawProfix(msg.sender); uint256 totalProfix = stProfix + dyProfix; if ( _depostedHistory.MaxProfixDelta(msg.sender) < totalProfix ) { totalProfix = _depostedHistory.MaxProfixDelta(msg.sender); _StatisticsInc.API_AddWinnerCount(); _depostedHistory.Clear(msg.sender); _depostedHistory.totalMap[msg.sender].totalOut += totalProfix; emit Log_NewWinner(msg.sender, now, r.currentEther, r.profixMultiplier); } else { _depostedHistory.PushWithdrawableTotalRecord(msg.sender, totalProfix); } uint256 realStProfix = totalProfix * _TuringInc.GetCurrentWithrawThreshold() / 100; uint256 cost = _CostInc.WithdrawCost( totalProfix ); _ERC20Inc.transferFrom(msg.sender, address(0xdead), cost); msg.sender.transfer(realStProfix); emit Log_ProfixHistory(msg.sender, stProfix * _TuringInc.GetCurrentWithrawThreshold() / 100, 40, now); emit Log_WithdrawProfix(msg.sender, now, totalProfix, realStProfix); if ( stProfix <= 0 ) { return; } _StatisticsInc.API_AddStaticTotalAmount(msg.sender, stProfix); uint256 senderDepositedValue = r.currentEther; uint256 dyProfixBaseValue = stProfix; address parentAddr = msg.sender; for ( uint256 i = 0; i < _dynamicProfits.length; i++ ) { parentAddr = _RecommendInc.GetIntroducer(parentAddr); if ( parentAddr == address(0x0) ) { break; } uint256 pdmcount = _RecommendInc.DirectValidMembersCount( parentAddr ); if ( pdmcount >= 6 || _LevelSubInc.LevelOf(parentAddr) > 0 ) { pdmcount = _dynamicProfits.length; } if ( (i + 1) > pdmcount ) { continue; } if ( _depostedHistory.isExist(parentAddr) ) { uint256 parentDyProfix = dyProfixBaseValue * _dynamicProfits[i] / 100; if ( senderDepositedValue > _depostedHistory.map[parentAddr].currentEther && _depostedHistory.map[parentAddr].currentEther < 30 ether ) { parentDyProfix = parentDyProfix * ( _depostedHistory.map[parentAddr].currentEther * 100 / senderDepositedValue ) / 100; } emit Log_ProfixHistory(parentAddr, parentDyProfix, uint8(i), now); _depostedHistory.map[parentAddr].canWithdrawProfix += parentDyProfix; _StatisticsInc.API_AddDynamicTotalAmount(parentAddr, parentDyProfix); } } uint256 len = 0; address[] memory addrs; uint256[] memory profits; (len, addrs, profits) = _LevelSubInc.ProfitHandle( msg.sender, stProfix ); for ( uint j = 0; j < len; j++ ) { if ( addrs[j] == address(0x0) ) { continue ; } if ( len - j < 3 ) { emit Log_ProfixHistory(addrs[j], profits[j], uint8( 30 + _LevelSubInc.LevelOf(addrs[j])), now); } else { emit Log_ProfixHistory(addrs[j], profits[j], uint8( 20 + _LevelSubInc.LevelOf(addrs[j])), now); } _depostedHistory.map[addrs[j]].canWithdrawProfix += profits[j]; _StatisticsInc.API_AddDynamicTotalAmount(addrs[j], profits[j]); } } function TotalInOutAmount() external view returns (uint256 inEther, uint256 outEther) { return ( _depostedHistory.totalMap[msg.sender].totalIn, _depostedHistory.totalMap[msg.sender].totalOut ); } function GetRedressInfo() external view OnlyInBrokened returns (uint256 total, bool withdrawable) { DepositedHistory.Statistics memory r = _depostedHistory.totalMap[msg.sender]; if ( r.totalOut >= r.totalIn ) { return (0, false); } uint256 subEther = r.totalIn - r.totalOut; uint256 redtotal = (subEther * _beforBrokenedCostProp / 1 ether); return (redtotal, _redressableMapping[msg.sender]); } function DrawRedress() external OnlyInBrokened returns (bool) { DepositedHistory.Statistics memory r = _depostedHistory.totalMap[msg.sender]; if ( r.totalOut >= r.totalIn ) { return false; } if ( !_redressableMapping[msg.sender] ) { _redressableMapping[msg.sender] = true; uint256 subEther = r.totalIn - r.totalOut; uint256 redtotal = (subEther * _beforBrokenedCostProp / 1 ether); _utopiaInc.API_AppendLockedDepositAmount(msg.sender, redtotal); return true; } return false; } function GetCurrentGameStatus() external view returns ( uint256 createTime, uint256 latestDepositInTime, uint256 latestWithdrawTime, uint256 depositMaxLimit, uint256 currentEther, uint256 withdrawableTotal, uint256 canWithdrawProfix, uint8 profixMultiplier ) { createTime = _depostedHistory.map[msg.sender].createTime; latestDepositInTime = _depostedHistory.map[msg.sender].latestDepositInTime; latestWithdrawTime = _depostedHistory.map[msg.sender].latestWithdrawTime; depositMaxLimit = _depostedHistory.map[msg.sender].depositMaxLimit; currentEther = _depostedHistory.map[msg.sender].currentEther; withdrawableTotal = _depostedHistory.map[msg.sender].withdrawableTotal; canWithdrawProfix = _depostedHistory.map[msg.sender].canWithdrawProfix; profixMultiplier = _depostedHistory.map[msg.sender].profixMultiplier; } function Owner_TryResumeRound() external OwnerOnly { if ( address(this).balance < 100 ether ) { isBroken = true; _beforBrokenedCostProp = _CostInc.CurrentCostProp(); _defaultReciver.transfer( address(this).balance ); _luckPoolB.API_GameOver(); } else { _luckPoolA.API_Reboot(); } } function Redeem() external OnlyInPlaying PauseDisable DAODefense { DepositedHistory.Statistics storage tr = _depostedHistory.totalMap[msg.sender]; DepositedHistory.DepositedRecord storage r = _depostedHistory.map[msg.sender]; require(now - r.latestDepositInTime >= lib_math.OneDay() * 90 ); require(tr.totalIn > tr.totalOut); uint256 deltaEther = tr.totalIn - tr.totalOut; require(address(this).balance >= deltaEther); _depostedHistory.Clear(msg.sender); tr.totalOut = tr.totalIn; msg.sender.transfer(deltaEther); } function Owner_SetProfixMultiplier(uint8 m) external OwnerOnly { _profixMultiplier = m; } function Owner_SetDepositLimit(uint256 min, uint256 max) external OwnerOnly { _depositMinLimit = min; _depositMaxLimit = max; } function Owner_SetDynamicProfits(uint d, uint p) external OwnerOnly { _dynamicProfits[d] = p; } UtopiaInterface _utopiaInc; function Owner_SetUtopiaInterface(UtopiaInterface inc) external OwnerOnly { _utopiaInc = inc; } function () payable external {} } interface UtopiaInterface { function API_AppendLockedDepositAmount(address owner, uint amount) external; }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[],"name":"_ERC20Inc","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"_depositMaxLimit","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isBroken","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"_CostInc","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"_LevelSubInc","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"TotalInOutAmount","outputs":[{"name":"inEther","type":"uint256"},{"name":"outEther","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"min","type":"uint256"},{"name":"max","type":"uint256"}],"name":"Owner_SetDepositLimit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"GetCurrentGameStatus","outputs":[{"name":"createTime","type":"uint256"},{"name":"latestDepositInTime","type":"uint256"},{"name":"latestWithdrawTime","type":"uint256"},{"name":"depositMaxLimit","type":"uint256"},{"name":"currentEther","type":"uint256"},{"name":"withdrawableTotal","type":"uint256"},{"name":"canWithdrawProfix","type":"uint256"},{"name":"profixMultiplier","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"_TuringInc","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"_contractOwners","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"_profixMultiplier","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"Join","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"d","type":"uint256"},{"name":"p","type":"uint256"}],"name":"Owner_SetDynamicProfits","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"Owner_TryResumeRound","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"_beforBrokenedCostProp","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"owner","type":"address"},{"name":"index","type":"uint256"}],"name":"GetEvenInRecord","outputs":[{"name":"time","type":"uint256"},{"name":"total","type":"uint256"},{"name":"len","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"}],"name":"AddAuthAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"CurrentDepsitedTotalAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"AuthAddresses","outputs":[{"name":"authAddr","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"GetRedressInfo","outputs":[{"name":"total","type":"uint256"},{"name":"withdrawable","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"_depositMinLimit","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"_StatisticsInc","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"_RecommendInc","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"inc","type":"address"}],"name":"Owner_SetUtopiaInterface","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"_luckPoolA","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"owner","type":"address"}],"name":"CurrentCanWithdrawProfix","outputs":[{"name":"st","type":"uint256"},{"name":"dy","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"_defaultReciver","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"Redeem","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"_luckPoolB","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"DrawRedress","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"m","type":"uint8"}],"name":"Owner_SetProfixMultiplier","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"}],"name":"DelAuthAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"_dynamicProfits","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"WithdrawProfix","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"TuringInc","type":"address"},{"name":"RecommendInc","type":"address"},{"name":"ERC20Inc","type":"address"},{"name":"CostInc","type":"address"},{"name":"LevelSubInc","type":"address"},{"name":"StatisticsInc","type":"address"},{"name":"luckPoolA","type":"address"},{"name":"luckPoolB","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"value","type":"uint256"},{"indexed":true,"name":"ptype","type":"uint8"},{"indexed":false,"name":"time","type":"uint256"}],"name":"Log_ProfixHistory","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"time","type":"uint256"},{"indexed":true,"name":"value","type":"uint256"}],"name":"Log_NewDeposited","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"time","type":"uint256"},{"indexed":true,"name":"baseAmount","type":"uint256"},{"indexed":false,"name":"mn","type":"uint8"}],"name":"Log_NewWinner","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"addr","type":"address"},{"indexed":true,"name":"time","type":"uint256"},{"indexed":true,"name":"value","type":"uint256"},{"indexed":false,"name":"rvalue","type":"uint256"}],"name":"Log_WithdrawProfix","type":"event"}]
Contract Creation Code
60018054600160a060020a031916732e5600376d4f07f13ea69caf416fb2f7b665989717815560a060405273c99d13544297d5bad9e0b0ca0e94a4e614312f33608090815262000053916002919062000240565b506003805460ff199081168255670de0b6b3a7640000600b556802b5e3af16b1880000600c55600d805490911682179055604080516101e08101825260148152600f60208201819052600a928201929092526005606082018190526080820181905260a0820181905260c0820181905260e0820181905261010082018190526101208201526101408101839052610160810183905261018081018390526101a081018390526101c08101929092526200010f91600e91620002aa565b503480156200011d57600080fd5b506040516101008062003c9583398101806040526101008110156200014157600080fd5b508051602082015160408301516060840151608085015160a086015160c087015160e090970151600280546001810182556000919091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805433600160a060020a0319918216179091556003805461010060a860020a031916610100600160a060020a039a8b160217905560048054821697891697909717909655600580548716958816959095179094556006805486169387169390931790925560078054851691861691909117905560088054841691851691909117905560098054831694841694909417909355600a80549091169190921617905562000342565b82805482825590600052602060002090810192821562000298579160200282015b82811115620002985782518254600160a060020a031916600160a060020a0390911617825560209092019160019091019062000261565b50620002a6929150620002fb565b5090565b828054828255906000526020600020908101928215620002ed579160200282015b82811115620002ed578251829060ff16905591602001919060010190620002cb565b50620002a692915062000325565b6200032291905b80821115620002a6578054600160a060020a031916815560010162000302565b90565b6200032291905b80821115620002a657600081556001016200032c565b61394380620003526000396000f3fe6080604052600436106101a4577c0100000000000000000000000000000000000000000000000000000000600035046245369581146101a657806309f53604146101d75780630dfbe1af146101fe57806318a12466146102275780632b38d1861461023c5780632d39c6ee146102515780633324f14a1461027f5780633f394285146102af578063596aaf4e146103085780635a49f4711461031d57806360553afb14610347578063630b0dbf146103725780636381bfce1461037a5780636458b3db146103aa578063738486dd146103bf578063782e73bf146103d4578063785df1a11461042b5780638422f40d1461045e5780639570f90114610473578063967750ea146104d85780639762741c146105065780639897259b1461051b5780639ad9b73014610530578063a49ee51814610545578063c82d532f14610578578063cb8b7bea1461058d578063d7f3de83146105c0578063d95402e7146105d5578063db41a38c146105ea578063e6fb65b5146105ff578063f123e7b814610614578063f602dd0614610641578063f98fd46414610674578063feea02261461069e575b005b3480156101b257600080fd5b506101bb6106b3565b60408051600160a060020a039092168252519081900360200190f35b3480156101e357600080fd5b506101ec6106c2565b60408051918252519081900360200190f35b34801561020a57600080fd5b506102136106c8565b604080519115158252519081900360200190f35b34801561023357600080fd5b506101bb6106d1565b34801561024857600080fd5b506101bb6106e0565b34801561025d57600080fd5b506102666106ef565b6040805192835260208301919091528051918290030190f35b34801561028b57600080fd5b506101a4600480360360408110156102a257600080fd5b508035906020013561070e565b3480156102bb57600080fd5b506102c4610772565b604080519889526020890197909752878701959095526060870193909352608086019190915260a085015260c084015260ff1660e083015251908190036101000190f35b34801561031457600080fd5b506101bb6107bd565b34801561032957600080fd5b506101bb6004803603602081101561034057600080fd5b50356107d1565b34801561035357600080fd5b5061035c6107f9565b6040805160ff9092168252519081900360200190f35b6101a4610802565b34801561038657600080fd5b506101a46004803603604081101561039d57600080fd5b5080359060200135611504565b3480156103b657600080fd5b506101a461157d565b3480156103cb57600080fd5b506101ec6117f6565b3480156103e057600080fd5b5061040d600480360360408110156103f757600080fd5b50600160a060020a0381351690602001356117fc565b60408051938452602084019290925282820152519081900360600190f35b34801561043757600080fd5b506101a46004803603602081101561044e57600080fd5b5035600160a060020a0316611892565b34801561046a57600080fd5b506101ec611947565b34801561047f57600080fd5b5061048861194e565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156104c45781810151838201526020016104ac565b505050509050019250505060405180910390f35b3480156104e457600080fd5b506104ed6119b0565b6040805192835290151560208301528051918290030190f35b34801561051257600080fd5b506101ec611a59565b34801561052757600080fd5b506101bb611a5f565b34801561053c57600080fd5b506101bb611a6e565b34801561055157600080fd5b506101a46004803603602081101561056857600080fd5b5035600160a060020a0316611a7d565b34801561058457600080fd5b506101bb611b05565b34801561059957600080fd5b50610266600480360360208110156105b057600080fd5b5035600160a060020a0316611b14565b3480156105cc57600080fd5b506101bb61202b565b3480156105e157600080fd5b506101a461203a565b3480156105f657600080fd5b506101bb612298565b34801561060b57600080fd5b506102136122a7565b34801561062057600080fd5b506101a46004803603602081101561063757600080fd5b503560ff166123fc565b34801561064d57600080fd5b506101a46004803603602081101561066457600080fd5b5035600160a060020a031661246b565b34801561068057600080fd5b506101ec6004803603602081101561069757600080fd5b50356125e0565b3480156106aa57600080fd5b506101a46125ff565b600554600160a060020a031681565b600c5481565b60035460ff1681565b600654600160a060020a031681565b600754600160a060020a031681565b33600090815260126020526040902060018101546002909101545b9091565b6000805b60025481101561075957600280543391908390811061072d57fe5b600091825260209091200154600160a060020a031614156107515760019150610759565b600101610712565b5080151561076657600080fd5b50600b91909155600c55565b3360009081526010602052604090208054600182015460028301546003840154600485015460058601546006870154600790970154959794969395929491939092909160ff90911690565b6003546101009004600160a060020a031681565b60028054829081106107df57fe5b600091825260209091200154600160a060020a0316905081565b600d5460ff1681565b60035460ff161561081257600080fd5b600960009054906101000a9004600160a060020a0316600160a060020a031663517cd6fd6040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b15801561087c57600080fd5b505afa158015610890573d6000803e3d6000fd5b505050506040513d60208110156108a657600080fd5b5051156108b257600080fd5b33803b90811561092357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f44414f5f5761726e696e67000000000000000000000000000000000000000000604482015290519081900360640190fd5b600360019054906101000a9004600160a060020a0316600160a060020a031663a3b297796040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b15801561098f57600080fd5b505af11580156109a3573d6000803e3d6000fd5b505060048054604080517f96f0ff6200000000000000000000000000000000000000000000000000000000815233938101939093525160009450600160a060020a0390911692506396f0ff6291602480820192602092909190829003018186803b158015610a1057600080fd5b505afa158015610a24573d6000803e3d6000fd5b505050506040513d6020811015610a3a57600080fd5b5051600160a060020a03161415610ab257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f4530310000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b34600360019054906101000a9004600160a060020a0316600160a060020a03166338a55e4f6040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b158015610b1d57600080fd5b505afa158015610b31573d6000803e3d6000fd5b505050506040513d6020811015610b4757600080fd5b50511015610b5457600080fd5b600360019054906101000a9004600160a060020a0316600160a060020a031663c0855de4346040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b158015610bcb57600080fd5b505af1158015610bdf573d6000803e3d6000fd5b50505050600b543410151515610c5657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f4530370000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b600654604080517ff96774190000000000000000000000000000000000000000000000000000000081523460048201529051600092600160a060020a03169163f9677419916024808301926020929190829003018186803b158015610cba57600080fd5b505afa158015610cce573d6000803e3d6000fd5b505050506040513d6020811015610ce457600080fd5b5051600554604080517f23b872dd00000000000000000000000000000000000000000000000000000000815233600482015261dead6024820152604481018490529051929350600160a060020a03909116916323b872dd916064808201926020929091908290030181600087803b158015610d5e57600080fd5b505af1158015610d72573d6000803e3d6000fd5b505050506040513d6020811015610d8857600080fd5b5050604080517f8f7b462a000000000000000000000000000000000000000000000000000000008152600f6004820152336024820152905173dc8936cdc3123928342f375b35751acbf0d7004791638f7b462a916044808301926020929190829003018186803b158015610dfb57600080fd5b505af4158015610e0f573d6000803e3d6000fd5b505050506040513d6020811015610e2557600080fd5b50511561100757610e3461386d565b503360009081526010602090815260409182902082516101008101845281548152600182015492810192909252600281015492820192909252600382015460608201819052600483015460808301819052600584015460a0840152600684015460c084015260079093015460ff1660e083015290919003341115610eb757600080fd5b73307f824808607dfa13ef7fa4370dd267c4ba08f363cb1511126040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b158015610f1757600080fd5b505af4158015610f2b573d6000803e3d6000fd5b505050506040513d6020811015610f4157600080fd5b50516020820151600290910242919091031015610f5d57600080fd5b604080517fe379bd2f000000000000000000000000000000000000000000000000000000008152600f6004820152336024820152346044820152905173dc8936cdc3123928342f375b35751acbf0d700479163e379bd2f916064808301926020929190829003018186803b158015610fd457600080fd5b505af4158015610fe8573d6000803e3d6000fd5b505050506040513d6020811015610ffe57600080fd5b506110d1915050565b600c5434111561101657600080fd5b600c54600d54604080517fb20eecb9000000000000000000000000000000000000000000000000000000008152600f6004820152336024820152346044820152606481019390935260ff90911660848301525173dc8936cdc3123928342f375b35751acbf0d700479163b20eecb99160a4808301926020929190829003018186803b1580156110a457600080fd5b505af41580156110b8573d6000803e3d6000fd5b505050506040513d60208110156110ce57600080fd5b50505b6040513490429033907f6dfc0576ff2e859e84c11ce699c4b4cbd18d83bd6e63342e4ff34fc1f5bbc03290600090a468a2a15d09519be000003031111561119757600360019054906101000a9004600160a060020a0316600160a060020a031663be45c4746040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b15801561117e57600080fd5b505af1158015611192573d6000803e3d6000fd5b505050505b600954600a54604080517fe02d08c20000000000000000000000000000000000000000000000000000000081529051600160a060020a03938416939092169183916108fc91606491849163e02d08c291600480820192602092909190829003018186803b15801561120757600080fd5b505afa15801561121b573d6000803e3d6000fd5b505050506040513d602081101561123157600080fd5b5051340281151561123e57fe5b049081150290604051600060405180830381858888f1935050505015801561126a573d6000803e3d6000fd5b5080600160a060020a03166108fc6064600a60009054906101000a9004600160a060020a0316600160a060020a031663e02d08c26040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b1580156112e457600080fd5b505afa1580156112f8573d6000803e3d6000fd5b505050506040513d602081101561130e57600080fd5b5051340281151561131b57fe5b049081150290604051600060405180830381858888f19350505050158015611347573d6000803e3d6000fd5b50600954604080517f07796ea90000000000000000000000000000000000000000000000000000000081523360048201523460248201529051600160a060020a03909216916307796ea9916044808201926020929091908290030181600087803b1580156113b457600080fd5b505af11580156113c8573d6000803e3d6000fd5b505050506040513d60208110156113de57600080fd5b5050600a54604080517f07796ea90000000000000000000000000000000000000000000000000000000081523360048201523460248201529051600160a060020a03909216916307796ea9916044808201926020929091908290030181600087803b15801561144c57600080fd5b505af1158015611460573d6000803e3d6000fd5b505050506040513d602081101561147657600080fd5b505060048054604080517f8101420a000000000000000000000000000000000000000000000000000000008152339381019390935234602484015251600160a060020a0390911691638101420a91604480830192600092919082900301818387803b1580156114e457600080fd5b505af11580156114f8573d6000803e3d6000fd5b505050505050505b5050565b6000805b60025481101561154f57600280543391908390811061152357fe5b600091825260209091200154600160a060020a03161415611547576001915061154f565b600101611508565b5080151561155c57600080fd5b81600e8481548110151561156c57fe5b600091825260209091200155505050565b6000805b6002548110156115c857600280543391908390811061159c57fe5b600091825260209091200154600160a060020a031614156115c057600191506115c8565b600101611581565b508015156115d557600080fd5b68056bc75e2d631000003031101561175a576003805460ff19166001179055600654604080517f9a4bb6150000000000000000000000000000000000000000000000000000000081529051600160a060020a0390921691639a4bb61591600480820192602092909190829003018186803b15801561165257600080fd5b505afa158015611666573d6000803e3d6000fd5b505050506040513d602081101561167c57600080fd5b5051601355600154604051600160a060020a0390911690303180156108fc02916000818181858888f193505050501580156116bb573d6000803e3d6000fd5b50600a60009054906101000a9004600160a060020a0316600160a060020a0316639120fbb46040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561172857600080fd5b505af115801561173c573d6000803e3d6000fd5b505050506040513d602081101561175257600080fd5b506117f39050565b600960009054906101000a9004600160a060020a0316600160a060020a0316639ae0bf2b6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156117c657600080fd5b505af11580156117da573d6000803e3d6000fd5b505050506040513d60208110156117f057600080fd5b50505b50565b60135481565b600160a060020a03821660009081526011602052604081208054829182918590811061182457fe5b60009182526020808320600290920290910154600160a060020a03881683526011909152604090912080548690811061185957fe5b6000918252602080832060029290920290910160010154600160a060020a03989098168252601190526040902054909690945092505050565b6000805b6002548110156118dd5760028054339190839081106118b157fe5b600091825260209091200154600160a060020a031614156118d557600191506118dd565b600101611896565b508015156118ea57600080fd5b50600080546001810182559080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600f545b90565b606060008054806020026020016040519081016040528092919081815260200182805480156119a657602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311611988575b5050505050905090565b600354600090819060ff1615156119c657600080fd5b6119ce6138b6565b50336000908152601260209081526040918290208251606081018452815460ff161515815260018201549281018390526002909101549281018390529110611a1d57506000915081905061070a565b60408181015160209283015160135433600090815260149095529290932054670de0b6b3a764000091909303909102049360ff90911692509050565b600b5481565b600854600160a060020a031681565b600454600160a060020a031681565b6000805b600254811015611ac8576002805433919083908110611a9c57fe5b600091825260209091200154600160a060020a03161415611ac05760019150611ac8565b600101611a81565b50801515611ad557600080fd5b506015805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600954600160a060020a031681565b604080517f8f7b462a000000000000000000000000000000000000000000000000000000008152600f6004820152600160a060020a03831660248201529051600091829173dc8936cdc3123928342f375b35751acbf0d7004791638f7b462a916044808301926020929190829003018186803b158015611b9357600080fd5b505af4158015611ba7573d6000803e3d6000fd5b505050506040513d6020811015611bbd57600080fd5b50511515611bd057506000905080612026565b611bd861386d565b50600160a060020a038316600090815260106020908152604080832081516101008101835281548152600182015481850152600282015481840152600382015460608201526004808301546080830152600583015460a0830152600683015460c083015260079092015460ff1660e082015282517fcb151112000000000000000000000000000000000000000000000000000000008152925190949373307f824808607dfa13ef7fa4370dd267c4ba08f39363cb151112938181019391829003018186803b158015611ca957600080fd5b505af4158015611cbd573d6000803e3d6000fd5b505050506040513d6020811015611cd357600080fd5b505160408084015181517fa4b223560000000000000000000000000000000000000000000000000000000081529151909173307f824808607dfa13ef7fa4370dd267c4ba08f39163a4b2235691600480820192602092909190829003018186803b158015611d4057600080fd5b505af4158015611d54573d6000803e3d6000fd5b505050506040513d6020811015611d6a57600080fd5b505103811515611d7657fe5b0490506000805b8281101561201757600073307f824808607dfa13ef7fa4370dd267c4ba08f363cb1511126040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b158015611de757600080fd5b505af4158015611dfb573d6000803e3d6000fd5b505050506040513d6020811015611e1157600080fd5b5051604080517fa4b2235600000000000000000000000000000000000000000000000000000000815290519184029173307f824808607dfa13ef7fa4370dd267c4ba08f39163a4b22356916004808301926020929190829003018186803b158015611e7b57600080fd5b505af4158015611e8f573d6000803e3d6000fd5b505050506040513d6020811015611ea557600080fd5b5051600354604080517fa16aa6e300000000000000000000000000000000000000000000000000000000815293909203600484018190529151919350600092610100909104600160a060020a03169163a16aa6e391602480820192602092909190829003018186803b158015611f1a57600080fd5b505afa158015611f2e573d6000803e3d6000fd5b505050506040513d6020811015611f4457600080fd5b5051604080517ff4bbc2d5000000000000000000000000000000000000000000000000000000008152600f6004820152600160a060020a038c1660248201526044810185905290519192506103e891839173dc8936cdc3123928342f375b35751acbf0d700479163f4bbc2d591606480820192602092909190829003018186803b158015611fd157600080fd5b505af4158015611fe5573d6000803e3d6000fd5b505050506040513d6020811015611ffb57600080fd5b50510281151561200757fe5b0493909301925050600101611d7d565b50808360c00151945094505050505b915091565b600154600160a060020a031681565b60035460ff161561204a57600080fd5b600960009054906101000a9004600160a060020a0316600160a060020a031663517cd6fd6040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b1580156120b457600080fd5b505afa1580156120c8573d6000803e3d6000fd5b505050506040513d60208110156120de57600080fd5b5051156120ea57600080fd5b33803b90811561215b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f44414f5f5761726e696e67000000000000000000000000000000000000000000604482015290519081900360640190fd5b336000908152601260209081526040808320601083529281902081517fcb1511120000000000000000000000000000000000000000000000000000000081529151909273307f824808607dfa13ef7fa4370dd267c4ba08f39263cb1511129260048083019392829003018186803b1580156121d557600080fd5b505af41580156121e9573d6000803e3d6000fd5b505050506040513d60208110156121ff57600080fd5b50516001820154605a9091024291909103101561221b57600080fd5b600282015460018301541161222f57600080fd5b6002820154600183015403303181111561224857600080fd5b612259600f3363ffffffff61381c16565b60018301546002840155604051339082156108fc029083906000818181858888f19350505050158015612290573d6000803e3d6000fd5b505050505050565b600a54600160a060020a031681565b60035460009060ff1615156122bb57600080fd5b6122c36138b6565b50336000908152601260209081526040918290208251606081018452815460ff16151581526001820154928101839052600290910154928101839052911061230f57600091505061194b565b3360009081526014602052604090205460ff1615156123f457336000908152601460209081526040808320805460ff19166001179055830151908301516013549190039190670de0b6b3a7640000908302601554604080517f42b8c3be00000000000000000000000000000000000000000000000000000000815233600482015293909204602484018190529151919350600160a060020a0316916342b8c3be91604480830192600092919082900301818387803b1580156123d057600080fd5b505af11580156123e4573d6000803e3d6000fd5b505050506001935050505061194b565b600091505090565b6000805b60025481101561244757600280543391908390811061241b57fe5b600091825260209091200154600160a060020a0316141561243f5760019150612447565b600101612400565b5080151561245457600080fd5b50600d805460ff191660ff92909216919091179055565b6000805b6002548110156124b657600280543391908390811061248a57fe5b600091825260209091200154600160a060020a031614156124ae57600191506124b6565b60010161246f565b508015156124c357600080fd5b60005b6000548110156117f05782600160a060020a03166000828154811015156124e957fe5b600091825260209091200154600160a060020a031614156125d85760005b6000546000190181101561258857600080546001830190811061252657fe5b60009182526020822001548154600160a060020a0390911691908390811061254a57fe5b6000918252602090912001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055600101612507565b5060008054600019810190811061259b57fe5b60009182526020822001805473ffffffffffffffffffffffffffffffffffffffff191690558054906125d19060001983016138da565b5050611500565b6001016124c6565b600e8054829081106125ee57fe5b600091825260209091200154905081565b60035460ff161561260f57600080fd5b600960009054906101000a9004600160a060020a0316600160a060020a031663517cd6fd6040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b15801561267957600080fd5b505afa15801561268d573d6000803e3d6000fd5b505050506040513d60208110156126a357600080fd5b5051156126af57600080fd5b33803b90811561272057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f44414f5f5761726e696e67000000000000000000000000000000000000000000604482015290519081900360640190fd5b61272861386d565b50336000818152601060209081526040808320815161010081018352815481526001820154938101939093526002810154918301919091526003810154606083015260048101546080830152600581015460a0830152600681015460c08301526007015460ff1660e08201529181906127a090611b14565b604080517ff61a394e000000000000000000000000000000000000000000000000000000008152600f6004820152336024820152905192945090925083830191829173dc8936cdc3123928342f375b35751acbf0d700479163f61a394e91604480820192602092909190829003018186803b15801561281e57600080fd5b505af4158015612832573d6000803e3d6000fd5b505050506040513d602081101561284857600080fd5b505110156129e057604080517ff61a394e000000000000000000000000000000000000000000000000000000008152600f6004820152336024820152905173dc8936cdc3123928342f375b35751acbf0d700479163f61a394e916044808301926020929190829003018186803b1580156128c157600080fd5b505af41580156128d5573d6000803e3d6000fd5b505050506040513d60208110156128eb57600080fd5b5051600854604080517f1d8aa70f0000000000000000000000000000000000000000000000000000000081529051929350600160a060020a0390911691631d8aa70f9160048082019260009290919082900301818387803b15801561294f57600080fd5b505af1158015612963573d6000803e3d6000fd5b5050505061297b33600f61381c90919063ffffffff16565b33600081815260126020908152604091829020600201805485019055608087015160e0880151835160ff909116815292519093429390927f758483615ea2dffe0b747b135e6bb751e0e1ca1c6642199478e811385a87e6a992918290030190a4612a85565b604080517f6bc84779000000000000000000000000000000000000000000000000000000008152600f600482015233602482015260448101839052905173dc8936cdc3123928342f375b35751acbf0d7004791636bc84779916064808301926020929190829003018186803b158015612a5857600080fd5b505af4158015612a6c573d6000803e3d6000fd5b505050506040513d6020811015612a8257600080fd5b50505b60006064600360019054906101000a9004600160a060020a0316600160a060020a0316638b5f04736040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b158015612af357600080fd5b505afa158015612b07573d6000803e3d6000fd5b505050506040513d6020811015612b1d57600080fd5b50518302811515612b2a57fe5b600654604080517f232012a5000000000000000000000000000000000000000000000000000000008152600481018790529051939092049350600092600160a060020a039091169163232012a5916024808301926020929190829003018186803b158015612b9757600080fd5b505afa158015612bab573d6000803e3d6000fd5b505050506040513d6020811015612bc157600080fd5b5051600554604080517f23b872dd00000000000000000000000000000000000000000000000000000000815233600482015261dead6024820152604481018490529051929350600160a060020a03909116916323b872dd916064808201926020929091908290030181600087803b158015612c3b57600080fd5b505af1158015612c4f573d6000803e3d6000fd5b505050506040513d6020811015612c6557600080fd5b5050604051339083156108fc029084906000818181858888f19350505050158015612c94573d6000803e3d6000fd5b5060286064600360019054906101000a9004600160a060020a0316600160a060020a0316638b5f04736040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b158015612d0357600080fd5b505afa158015612d17573d6000803e3d6000fd5b505050506040513d6020811015612d2d57600080fd5b50518702811515612d3a57fe5b0433600160a060020a03167f63c406ee52a25370998ce916084682c3b657f8bb0e614598b90971e8fe35c314426040518082815260200191505060405180910390a46040805183815290518491429133917f774a069a9fedf826ac6e63a9120cca534748c55576b857d2e63e240a48be94b1919081900360200190a460008511612dc957505050505050611500565b600854604080517f590deeaf000000000000000000000000000000000000000000000000000000008152336004820152602481018890529051600160a060020a039092169163590deeaf9160448082019260009290919082900301818387803b158015612e3557600080fd5b505af1158015612e49573d6000803e3d6000fd5b505050506080860151853360005b600e548110156132b95760048054604080517f96f0ff62000000000000000000000000000000000000000000000000000000008152600160a060020a0386811694820194909452905192909116916396f0ff6291602480820192602092909190829003018186803b158015612ecb57600080fd5b505afa158015612edf573d6000803e3d6000fd5b505050506040513d6020811015612ef557600080fd5b50519150600160a060020a0382161515612f0e576132b9565b60048054604080517fc4226807000000000000000000000000000000000000000000000000000000008152600160a060020a038681169482019490945290516000939092169163c422680791602480820192602092909190829003018186803b158015612f7a57600080fd5b505afa158015612f8e573d6000803e3d6000fd5b505050506040513d6020811015612fa457600080fd5b5051905060068110158061304b5750600754604080517fe8c3fb7d000000000000000000000000000000000000000000000000000000008152600160a060020a0386811660048301529151600093929092169163e8c3fb7d91602480820192602092909190829003018186803b15801561301d57600080fd5b505afa158015613031573d6000803e3d6000fd5b505050506040513d602081101561304757600080fd5b5051115b156130555750600e545b8082600101111561306657506132b1565b604080517f8f7b462a000000000000000000000000000000000000000000000000000000008152600f6004820152600160a060020a0385166024820152905173dc8936cdc3123928342f375b35751acbf0d7004791638f7b462a916044808301926020929190829003018186803b1580156130e057600080fd5b505af41580156130f4573d6000803e3d6000fd5b505050506040513d602081101561310a57600080fd5b5051156132af5760006064600e8481548110151561312457fe5b9060005260206000200154860281151561313a57fe5b600160a060020a03861660009081526010602052604090206004015491900491508611801561318c5750600160a060020a0384166000908152601060205260409020600401546801a055690d9db80000115b156131cd57600160a060020a038416600090815260106020526040902060040154606490879082028115156131bd57fe5b0482028115156131c957fe5b0490505b8260ff168185600160a060020a03167f63c406ee52a25370998ce916084682c3b657f8bb0e614598b90971e8fe35c314426040518082815260200191505060405180910390a4600160a060020a0380851660008181526010602052604080822060060180548601905560085481517fecf54bde000000000000000000000000000000000000000000000000000000008152600481019490945260248401869052905193169263ecf54bde92604480820193929182900301818387803b15801561329557600080fd5b505af11580156132a9573d6000803e3d6000fd5b50505050505b505b600101612e57565b50600754604080517fb545ddac000000000000000000000000000000000000000000000000000000008152336004820152602481018b905290516000926060928392600160a060020a039092169163b545ddac916044808201928892909190829003018186803b15801561332c57600080fd5b505afa158015613340573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052606081101561338757600080fd5b8151602083018051919392830192916401000000008111156133a857600080fd5b820160208101848111156133bb57600080fd5b81518560208202830111640100000000821117156133d857600080fd5b505092919060200180516401000000008111156133f457600080fd5b8201602081018481111561340757600080fd5b815185602082028301116401000000008211171561342457600080fd5b50959850939650929450600093505050505b8381101561380b57825160009084908390811061344f57fe5b90602001906020020151600160a060020a0316141561346d57613803565b600381850310156135b1576007548351600160a060020a039091169063e8c3fb7d9085908490811061349b57fe5b906020019060200201516040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082600160a060020a0316600160a060020a0316815260200191505060206040518083038186803b15801561350757600080fd5b505afa15801561351b573d6000803e3d6000fd5b505050506040513d602081101561353157600080fd5b50518251601e90910160ff169083908390811061354a57fe5b90602001906020020151848381518110151561356257fe5b90602001906020020151600160a060020a03167f63c406ee52a25370998ce916084682c3b657f8bb0e614598b90971e8fe35c314426040518082815260200191505060405180910390a46136e6565b6007548351600160a060020a039091169063e8c3fb7d908590849081106135d457fe5b906020019060200201516040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082600160a060020a0316600160a060020a0316815260200191505060206040518083038186803b15801561364057600080fd5b505afa158015613654573d6000803e3d6000fd5b505050506040513d602081101561366a57600080fd5b50518251601490910160ff169083908390811061368357fe5b90602001906020020151848381518110151561369b57fe5b90602001906020020151600160a060020a03167f63c406ee52a25370998ce916084682c3b657f8bb0e614598b90971e8fe35c314426040518082815260200191505060405180910390a45b81818151811015156136f457fe5b90602001906020020151600f6001016000858481518110151561371357fe5b6020908102909101810151600160a060020a039081168352908201929092526040016000206006018054909201909155600854845191169063ecf54bde9085908490811061375d57fe5b90602001906020020151848481518110151561377557fe5b906020019060200201516040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050600060405180830381600087803b1580156137ea57600080fd5b505af11580156137fe573d6000803e3d6000fd5b505050505b600101613436565b505050505050505050505050505050565b600160a060020a03166000908152600191820160205260408120818155600481018290559182018190556002820181905560038201819055600582018190556006820155600701805460ff19169055565b6101006040519081016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600060ff1681525090565b60606040519081016040528060001515815260200160008152602001600081525090565b8154818355818111156117f0576000838152602090206117f091810190830161194b91905b8082111561391357600081556001016138ff565b509056fea165627a7a723058200f04b849a70e5f5d0d7a90a0509646c167d6517a926f4284bed71c404ddf816e0029000000000000000000000000def65fba8f50f01b811c8247b89bb7f95f6f2e240000000000000000000000003fe5eb14a8e99d7ba8b421c5285b5c0d8292cd1300000000000000000000000091c4b0cfc5eac8b8c5fd953ae9fbc707b520a7d60000000000000000000000000baa130c0f3dcab39981dd5d6a781dcc517eb5d00000000000000000000000002655e4b1957ff8fa6536f705f3f7feb7d910ff7600000000000000000000000039df96d505a10e2202e1b0a27dc29ba136b6a8ec00000000000000000000000058d9aeff5bd966717a61439fffd2273102084b90000000000000000000000000c3715c9614d5d37a0732c47db6bbb6bbc014a822
Deployed Bytecode
0x6080604052600436106101a4577c0100000000000000000000000000000000000000000000000000000000600035046245369581146101a657806309f53604146101d75780630dfbe1af146101fe57806318a12466146102275780632b38d1861461023c5780632d39c6ee146102515780633324f14a1461027f5780633f394285146102af578063596aaf4e146103085780635a49f4711461031d57806360553afb14610347578063630b0dbf146103725780636381bfce1461037a5780636458b3db146103aa578063738486dd146103bf578063782e73bf146103d4578063785df1a11461042b5780638422f40d1461045e5780639570f90114610473578063967750ea146104d85780639762741c146105065780639897259b1461051b5780639ad9b73014610530578063a49ee51814610545578063c82d532f14610578578063cb8b7bea1461058d578063d7f3de83146105c0578063d95402e7146105d5578063db41a38c146105ea578063e6fb65b5146105ff578063f123e7b814610614578063f602dd0614610641578063f98fd46414610674578063feea02261461069e575b005b3480156101b257600080fd5b506101bb6106b3565b60408051600160a060020a039092168252519081900360200190f35b3480156101e357600080fd5b506101ec6106c2565b60408051918252519081900360200190f35b34801561020a57600080fd5b506102136106c8565b604080519115158252519081900360200190f35b34801561023357600080fd5b506101bb6106d1565b34801561024857600080fd5b506101bb6106e0565b34801561025d57600080fd5b506102666106ef565b6040805192835260208301919091528051918290030190f35b34801561028b57600080fd5b506101a4600480360360408110156102a257600080fd5b508035906020013561070e565b3480156102bb57600080fd5b506102c4610772565b604080519889526020890197909752878701959095526060870193909352608086019190915260a085015260c084015260ff1660e083015251908190036101000190f35b34801561031457600080fd5b506101bb6107bd565b34801561032957600080fd5b506101bb6004803603602081101561034057600080fd5b50356107d1565b34801561035357600080fd5b5061035c6107f9565b6040805160ff9092168252519081900360200190f35b6101a4610802565b34801561038657600080fd5b506101a46004803603604081101561039d57600080fd5b5080359060200135611504565b3480156103b657600080fd5b506101a461157d565b3480156103cb57600080fd5b506101ec6117f6565b3480156103e057600080fd5b5061040d600480360360408110156103f757600080fd5b50600160a060020a0381351690602001356117fc565b60408051938452602084019290925282820152519081900360600190f35b34801561043757600080fd5b506101a46004803603602081101561044e57600080fd5b5035600160a060020a0316611892565b34801561046a57600080fd5b506101ec611947565b34801561047f57600080fd5b5061048861194e565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156104c45781810151838201526020016104ac565b505050509050019250505060405180910390f35b3480156104e457600080fd5b506104ed6119b0565b6040805192835290151560208301528051918290030190f35b34801561051257600080fd5b506101ec611a59565b34801561052757600080fd5b506101bb611a5f565b34801561053c57600080fd5b506101bb611a6e565b34801561055157600080fd5b506101a46004803603602081101561056857600080fd5b5035600160a060020a0316611a7d565b34801561058457600080fd5b506101bb611b05565b34801561059957600080fd5b50610266600480360360208110156105b057600080fd5b5035600160a060020a0316611b14565b3480156105cc57600080fd5b506101bb61202b565b3480156105e157600080fd5b506101a461203a565b3480156105f657600080fd5b506101bb612298565b34801561060b57600080fd5b506102136122a7565b34801561062057600080fd5b506101a46004803603602081101561063757600080fd5b503560ff166123fc565b34801561064d57600080fd5b506101a46004803603602081101561066457600080fd5b5035600160a060020a031661246b565b34801561068057600080fd5b506101ec6004803603602081101561069757600080fd5b50356125e0565b3480156106aa57600080fd5b506101a46125ff565b600554600160a060020a031681565b600c5481565b60035460ff1681565b600654600160a060020a031681565b600754600160a060020a031681565b33600090815260126020526040902060018101546002909101545b9091565b6000805b60025481101561075957600280543391908390811061072d57fe5b600091825260209091200154600160a060020a031614156107515760019150610759565b600101610712565b5080151561076657600080fd5b50600b91909155600c55565b3360009081526010602052604090208054600182015460028301546003840154600485015460058601546006870154600790970154959794969395929491939092909160ff90911690565b6003546101009004600160a060020a031681565b60028054829081106107df57fe5b600091825260209091200154600160a060020a0316905081565b600d5460ff1681565b60035460ff161561081257600080fd5b600960009054906101000a9004600160a060020a0316600160a060020a031663517cd6fd6040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b15801561087c57600080fd5b505afa158015610890573d6000803e3d6000fd5b505050506040513d60208110156108a657600080fd5b5051156108b257600080fd5b33803b90811561092357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f44414f5f5761726e696e67000000000000000000000000000000000000000000604482015290519081900360640190fd5b600360019054906101000a9004600160a060020a0316600160a060020a031663a3b297796040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b15801561098f57600080fd5b505af11580156109a3573d6000803e3d6000fd5b505060048054604080517f96f0ff6200000000000000000000000000000000000000000000000000000000815233938101939093525160009450600160a060020a0390911692506396f0ff6291602480820192602092909190829003018186803b158015610a1057600080fd5b505afa158015610a24573d6000803e3d6000fd5b505050506040513d6020811015610a3a57600080fd5b5051600160a060020a03161415610ab257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f4530310000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b34600360019054906101000a9004600160a060020a0316600160a060020a03166338a55e4f6040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b158015610b1d57600080fd5b505afa158015610b31573d6000803e3d6000fd5b505050506040513d6020811015610b4757600080fd5b50511015610b5457600080fd5b600360019054906101000a9004600160a060020a0316600160a060020a031663c0855de4346040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b158015610bcb57600080fd5b505af1158015610bdf573d6000803e3d6000fd5b50505050600b543410151515610c5657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f4530370000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b600654604080517ff96774190000000000000000000000000000000000000000000000000000000081523460048201529051600092600160a060020a03169163f9677419916024808301926020929190829003018186803b158015610cba57600080fd5b505afa158015610cce573d6000803e3d6000fd5b505050506040513d6020811015610ce457600080fd5b5051600554604080517f23b872dd00000000000000000000000000000000000000000000000000000000815233600482015261dead6024820152604481018490529051929350600160a060020a03909116916323b872dd916064808201926020929091908290030181600087803b158015610d5e57600080fd5b505af1158015610d72573d6000803e3d6000fd5b505050506040513d6020811015610d8857600080fd5b5050604080517f8f7b462a000000000000000000000000000000000000000000000000000000008152600f6004820152336024820152905173dc8936cdc3123928342f375b35751acbf0d7004791638f7b462a916044808301926020929190829003018186803b158015610dfb57600080fd5b505af4158015610e0f573d6000803e3d6000fd5b505050506040513d6020811015610e2557600080fd5b50511561100757610e3461386d565b503360009081526010602090815260409182902082516101008101845281548152600182015492810192909252600281015492820192909252600382015460608201819052600483015460808301819052600584015460a0840152600684015460c084015260079093015460ff1660e083015290919003341115610eb757600080fd5b73307f824808607dfa13ef7fa4370dd267c4ba08f363cb1511126040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b158015610f1757600080fd5b505af4158015610f2b573d6000803e3d6000fd5b505050506040513d6020811015610f4157600080fd5b50516020820151600290910242919091031015610f5d57600080fd5b604080517fe379bd2f000000000000000000000000000000000000000000000000000000008152600f6004820152336024820152346044820152905173dc8936cdc3123928342f375b35751acbf0d700479163e379bd2f916064808301926020929190829003018186803b158015610fd457600080fd5b505af4158015610fe8573d6000803e3d6000fd5b505050506040513d6020811015610ffe57600080fd5b506110d1915050565b600c5434111561101657600080fd5b600c54600d54604080517fb20eecb9000000000000000000000000000000000000000000000000000000008152600f6004820152336024820152346044820152606481019390935260ff90911660848301525173dc8936cdc3123928342f375b35751acbf0d700479163b20eecb99160a4808301926020929190829003018186803b1580156110a457600080fd5b505af41580156110b8573d6000803e3d6000fd5b505050506040513d60208110156110ce57600080fd5b50505b6040513490429033907f6dfc0576ff2e859e84c11ce699c4b4cbd18d83bd6e63342e4ff34fc1f5bbc03290600090a468a2a15d09519be000003031111561119757600360019054906101000a9004600160a060020a0316600160a060020a031663be45c4746040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b15801561117e57600080fd5b505af1158015611192573d6000803e3d6000fd5b505050505b600954600a54604080517fe02d08c20000000000000000000000000000000000000000000000000000000081529051600160a060020a03938416939092169183916108fc91606491849163e02d08c291600480820192602092909190829003018186803b15801561120757600080fd5b505afa15801561121b573d6000803e3d6000fd5b505050506040513d602081101561123157600080fd5b5051340281151561123e57fe5b049081150290604051600060405180830381858888f1935050505015801561126a573d6000803e3d6000fd5b5080600160a060020a03166108fc6064600a60009054906101000a9004600160a060020a0316600160a060020a031663e02d08c26040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b1580156112e457600080fd5b505afa1580156112f8573d6000803e3d6000fd5b505050506040513d602081101561130e57600080fd5b5051340281151561131b57fe5b049081150290604051600060405180830381858888f19350505050158015611347573d6000803e3d6000fd5b50600954604080517f07796ea90000000000000000000000000000000000000000000000000000000081523360048201523460248201529051600160a060020a03909216916307796ea9916044808201926020929091908290030181600087803b1580156113b457600080fd5b505af11580156113c8573d6000803e3d6000fd5b505050506040513d60208110156113de57600080fd5b5050600a54604080517f07796ea90000000000000000000000000000000000000000000000000000000081523360048201523460248201529051600160a060020a03909216916307796ea9916044808201926020929091908290030181600087803b15801561144c57600080fd5b505af1158015611460573d6000803e3d6000fd5b505050506040513d602081101561147657600080fd5b505060048054604080517f8101420a000000000000000000000000000000000000000000000000000000008152339381019390935234602484015251600160a060020a0390911691638101420a91604480830192600092919082900301818387803b1580156114e457600080fd5b505af11580156114f8573d6000803e3d6000fd5b505050505050505b5050565b6000805b60025481101561154f57600280543391908390811061152357fe5b600091825260209091200154600160a060020a03161415611547576001915061154f565b600101611508565b5080151561155c57600080fd5b81600e8481548110151561156c57fe5b600091825260209091200155505050565b6000805b6002548110156115c857600280543391908390811061159c57fe5b600091825260209091200154600160a060020a031614156115c057600191506115c8565b600101611581565b508015156115d557600080fd5b68056bc75e2d631000003031101561175a576003805460ff19166001179055600654604080517f9a4bb6150000000000000000000000000000000000000000000000000000000081529051600160a060020a0390921691639a4bb61591600480820192602092909190829003018186803b15801561165257600080fd5b505afa158015611666573d6000803e3d6000fd5b505050506040513d602081101561167c57600080fd5b5051601355600154604051600160a060020a0390911690303180156108fc02916000818181858888f193505050501580156116bb573d6000803e3d6000fd5b50600a60009054906101000a9004600160a060020a0316600160a060020a0316639120fbb46040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561172857600080fd5b505af115801561173c573d6000803e3d6000fd5b505050506040513d602081101561175257600080fd5b506117f39050565b600960009054906101000a9004600160a060020a0316600160a060020a0316639ae0bf2b6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156117c657600080fd5b505af11580156117da573d6000803e3d6000fd5b505050506040513d60208110156117f057600080fd5b50505b50565b60135481565b600160a060020a03821660009081526011602052604081208054829182918590811061182457fe5b60009182526020808320600290920290910154600160a060020a03881683526011909152604090912080548690811061185957fe5b6000918252602080832060029290920290910160010154600160a060020a03989098168252601190526040902054909690945092505050565b6000805b6002548110156118dd5760028054339190839081106118b157fe5b600091825260209091200154600160a060020a031614156118d557600191506118dd565b600101611896565b508015156118ea57600080fd5b50600080546001810182559080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600f545b90565b606060008054806020026020016040519081016040528092919081815260200182805480156119a657602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311611988575b5050505050905090565b600354600090819060ff1615156119c657600080fd5b6119ce6138b6565b50336000908152601260209081526040918290208251606081018452815460ff161515815260018201549281018390526002909101549281018390529110611a1d57506000915081905061070a565b60408181015160209283015160135433600090815260149095529290932054670de0b6b3a764000091909303909102049360ff90911692509050565b600b5481565b600854600160a060020a031681565b600454600160a060020a031681565b6000805b600254811015611ac8576002805433919083908110611a9c57fe5b600091825260209091200154600160a060020a03161415611ac05760019150611ac8565b600101611a81565b50801515611ad557600080fd5b506015805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600954600160a060020a031681565b604080517f8f7b462a000000000000000000000000000000000000000000000000000000008152600f6004820152600160a060020a03831660248201529051600091829173dc8936cdc3123928342f375b35751acbf0d7004791638f7b462a916044808301926020929190829003018186803b158015611b9357600080fd5b505af4158015611ba7573d6000803e3d6000fd5b505050506040513d6020811015611bbd57600080fd5b50511515611bd057506000905080612026565b611bd861386d565b50600160a060020a038316600090815260106020908152604080832081516101008101835281548152600182015481850152600282015481840152600382015460608201526004808301546080830152600583015460a0830152600683015460c083015260079092015460ff1660e082015282517fcb151112000000000000000000000000000000000000000000000000000000008152925190949373307f824808607dfa13ef7fa4370dd267c4ba08f39363cb151112938181019391829003018186803b158015611ca957600080fd5b505af4158015611cbd573d6000803e3d6000fd5b505050506040513d6020811015611cd357600080fd5b505160408084015181517fa4b223560000000000000000000000000000000000000000000000000000000081529151909173307f824808607dfa13ef7fa4370dd267c4ba08f39163a4b2235691600480820192602092909190829003018186803b158015611d4057600080fd5b505af4158015611d54573d6000803e3d6000fd5b505050506040513d6020811015611d6a57600080fd5b505103811515611d7657fe5b0490506000805b8281101561201757600073307f824808607dfa13ef7fa4370dd267c4ba08f363cb1511126040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b158015611de757600080fd5b505af4158015611dfb573d6000803e3d6000fd5b505050506040513d6020811015611e1157600080fd5b5051604080517fa4b2235600000000000000000000000000000000000000000000000000000000815290519184029173307f824808607dfa13ef7fa4370dd267c4ba08f39163a4b22356916004808301926020929190829003018186803b158015611e7b57600080fd5b505af4158015611e8f573d6000803e3d6000fd5b505050506040513d6020811015611ea557600080fd5b5051600354604080517fa16aa6e300000000000000000000000000000000000000000000000000000000815293909203600484018190529151919350600092610100909104600160a060020a03169163a16aa6e391602480820192602092909190829003018186803b158015611f1a57600080fd5b505afa158015611f2e573d6000803e3d6000fd5b505050506040513d6020811015611f4457600080fd5b5051604080517ff4bbc2d5000000000000000000000000000000000000000000000000000000008152600f6004820152600160a060020a038c1660248201526044810185905290519192506103e891839173dc8936cdc3123928342f375b35751acbf0d700479163f4bbc2d591606480820192602092909190829003018186803b158015611fd157600080fd5b505af4158015611fe5573d6000803e3d6000fd5b505050506040513d6020811015611ffb57600080fd5b50510281151561200757fe5b0493909301925050600101611d7d565b50808360c00151945094505050505b915091565b600154600160a060020a031681565b60035460ff161561204a57600080fd5b600960009054906101000a9004600160a060020a0316600160a060020a031663517cd6fd6040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b1580156120b457600080fd5b505afa1580156120c8573d6000803e3d6000fd5b505050506040513d60208110156120de57600080fd5b5051156120ea57600080fd5b33803b90811561215b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f44414f5f5761726e696e67000000000000000000000000000000000000000000604482015290519081900360640190fd5b336000908152601260209081526040808320601083529281902081517fcb1511120000000000000000000000000000000000000000000000000000000081529151909273307f824808607dfa13ef7fa4370dd267c4ba08f39263cb1511129260048083019392829003018186803b1580156121d557600080fd5b505af41580156121e9573d6000803e3d6000fd5b505050506040513d60208110156121ff57600080fd5b50516001820154605a9091024291909103101561221b57600080fd5b600282015460018301541161222f57600080fd5b6002820154600183015403303181111561224857600080fd5b612259600f3363ffffffff61381c16565b60018301546002840155604051339082156108fc029083906000818181858888f19350505050158015612290573d6000803e3d6000fd5b505050505050565b600a54600160a060020a031681565b60035460009060ff1615156122bb57600080fd5b6122c36138b6565b50336000908152601260209081526040918290208251606081018452815460ff16151581526001820154928101839052600290910154928101839052911061230f57600091505061194b565b3360009081526014602052604090205460ff1615156123f457336000908152601460209081526040808320805460ff19166001179055830151908301516013549190039190670de0b6b3a7640000908302601554604080517f42b8c3be00000000000000000000000000000000000000000000000000000000815233600482015293909204602484018190529151919350600160a060020a0316916342b8c3be91604480830192600092919082900301818387803b1580156123d057600080fd5b505af11580156123e4573d6000803e3d6000fd5b505050506001935050505061194b565b600091505090565b6000805b60025481101561244757600280543391908390811061241b57fe5b600091825260209091200154600160a060020a0316141561243f5760019150612447565b600101612400565b5080151561245457600080fd5b50600d805460ff191660ff92909216919091179055565b6000805b6002548110156124b657600280543391908390811061248a57fe5b600091825260209091200154600160a060020a031614156124ae57600191506124b6565b60010161246f565b508015156124c357600080fd5b60005b6000548110156117f05782600160a060020a03166000828154811015156124e957fe5b600091825260209091200154600160a060020a031614156125d85760005b6000546000190181101561258857600080546001830190811061252657fe5b60009182526020822001548154600160a060020a0390911691908390811061254a57fe5b6000918252602090912001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055600101612507565b5060008054600019810190811061259b57fe5b60009182526020822001805473ffffffffffffffffffffffffffffffffffffffff191690558054906125d19060001983016138da565b5050611500565b6001016124c6565b600e8054829081106125ee57fe5b600091825260209091200154905081565b60035460ff161561260f57600080fd5b600960009054906101000a9004600160a060020a0316600160a060020a031663517cd6fd6040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b15801561267957600080fd5b505afa15801561268d573d6000803e3d6000fd5b505050506040513d60208110156126a357600080fd5b5051156126af57600080fd5b33803b90811561272057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f44414f5f5761726e696e67000000000000000000000000000000000000000000604482015290519081900360640190fd5b61272861386d565b50336000818152601060209081526040808320815161010081018352815481526001820154938101939093526002810154918301919091526003810154606083015260048101546080830152600581015460a0830152600681015460c08301526007015460ff1660e08201529181906127a090611b14565b604080517ff61a394e000000000000000000000000000000000000000000000000000000008152600f6004820152336024820152905192945090925083830191829173dc8936cdc3123928342f375b35751acbf0d700479163f61a394e91604480820192602092909190829003018186803b15801561281e57600080fd5b505af4158015612832573d6000803e3d6000fd5b505050506040513d602081101561284857600080fd5b505110156129e057604080517ff61a394e000000000000000000000000000000000000000000000000000000008152600f6004820152336024820152905173dc8936cdc3123928342f375b35751acbf0d700479163f61a394e916044808301926020929190829003018186803b1580156128c157600080fd5b505af41580156128d5573d6000803e3d6000fd5b505050506040513d60208110156128eb57600080fd5b5051600854604080517f1d8aa70f0000000000000000000000000000000000000000000000000000000081529051929350600160a060020a0390911691631d8aa70f9160048082019260009290919082900301818387803b15801561294f57600080fd5b505af1158015612963573d6000803e3d6000fd5b5050505061297b33600f61381c90919063ffffffff16565b33600081815260126020908152604091829020600201805485019055608087015160e0880151835160ff909116815292519093429390927f758483615ea2dffe0b747b135e6bb751e0e1ca1c6642199478e811385a87e6a992918290030190a4612a85565b604080517f6bc84779000000000000000000000000000000000000000000000000000000008152600f600482015233602482015260448101839052905173dc8936cdc3123928342f375b35751acbf0d7004791636bc84779916064808301926020929190829003018186803b158015612a5857600080fd5b505af4158015612a6c573d6000803e3d6000fd5b505050506040513d6020811015612a8257600080fd5b50505b60006064600360019054906101000a9004600160a060020a0316600160a060020a0316638b5f04736040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b158015612af357600080fd5b505afa158015612b07573d6000803e3d6000fd5b505050506040513d6020811015612b1d57600080fd5b50518302811515612b2a57fe5b600654604080517f232012a5000000000000000000000000000000000000000000000000000000008152600481018790529051939092049350600092600160a060020a039091169163232012a5916024808301926020929190829003018186803b158015612b9757600080fd5b505afa158015612bab573d6000803e3d6000fd5b505050506040513d6020811015612bc157600080fd5b5051600554604080517f23b872dd00000000000000000000000000000000000000000000000000000000815233600482015261dead6024820152604481018490529051929350600160a060020a03909116916323b872dd916064808201926020929091908290030181600087803b158015612c3b57600080fd5b505af1158015612c4f573d6000803e3d6000fd5b505050506040513d6020811015612c6557600080fd5b5050604051339083156108fc029084906000818181858888f19350505050158015612c94573d6000803e3d6000fd5b5060286064600360019054906101000a9004600160a060020a0316600160a060020a0316638b5f04736040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b158015612d0357600080fd5b505afa158015612d17573d6000803e3d6000fd5b505050506040513d6020811015612d2d57600080fd5b50518702811515612d3a57fe5b0433600160a060020a03167f63c406ee52a25370998ce916084682c3b657f8bb0e614598b90971e8fe35c314426040518082815260200191505060405180910390a46040805183815290518491429133917f774a069a9fedf826ac6e63a9120cca534748c55576b857d2e63e240a48be94b1919081900360200190a460008511612dc957505050505050611500565b600854604080517f590deeaf000000000000000000000000000000000000000000000000000000008152336004820152602481018890529051600160a060020a039092169163590deeaf9160448082019260009290919082900301818387803b158015612e3557600080fd5b505af1158015612e49573d6000803e3d6000fd5b505050506080860151853360005b600e548110156132b95760048054604080517f96f0ff62000000000000000000000000000000000000000000000000000000008152600160a060020a0386811694820194909452905192909116916396f0ff6291602480820192602092909190829003018186803b158015612ecb57600080fd5b505afa158015612edf573d6000803e3d6000fd5b505050506040513d6020811015612ef557600080fd5b50519150600160a060020a0382161515612f0e576132b9565b60048054604080517fc4226807000000000000000000000000000000000000000000000000000000008152600160a060020a038681169482019490945290516000939092169163c422680791602480820192602092909190829003018186803b158015612f7a57600080fd5b505afa158015612f8e573d6000803e3d6000fd5b505050506040513d6020811015612fa457600080fd5b5051905060068110158061304b5750600754604080517fe8c3fb7d000000000000000000000000000000000000000000000000000000008152600160a060020a0386811660048301529151600093929092169163e8c3fb7d91602480820192602092909190829003018186803b15801561301d57600080fd5b505afa158015613031573d6000803e3d6000fd5b505050506040513d602081101561304757600080fd5b5051115b156130555750600e545b8082600101111561306657506132b1565b604080517f8f7b462a000000000000000000000000000000000000000000000000000000008152600f6004820152600160a060020a0385166024820152905173dc8936cdc3123928342f375b35751acbf0d7004791638f7b462a916044808301926020929190829003018186803b1580156130e057600080fd5b505af41580156130f4573d6000803e3d6000fd5b505050506040513d602081101561310a57600080fd5b5051156132af5760006064600e8481548110151561312457fe5b9060005260206000200154860281151561313a57fe5b600160a060020a03861660009081526010602052604090206004015491900491508611801561318c5750600160a060020a0384166000908152601060205260409020600401546801a055690d9db80000115b156131cd57600160a060020a038416600090815260106020526040902060040154606490879082028115156131bd57fe5b0482028115156131c957fe5b0490505b8260ff168185600160a060020a03167f63c406ee52a25370998ce916084682c3b657f8bb0e614598b90971e8fe35c314426040518082815260200191505060405180910390a4600160a060020a0380851660008181526010602052604080822060060180548601905560085481517fecf54bde000000000000000000000000000000000000000000000000000000008152600481019490945260248401869052905193169263ecf54bde92604480820193929182900301818387803b15801561329557600080fd5b505af11580156132a9573d6000803e3d6000fd5b50505050505b505b600101612e57565b50600754604080517fb545ddac000000000000000000000000000000000000000000000000000000008152336004820152602481018b905290516000926060928392600160a060020a039092169163b545ddac916044808201928892909190829003018186803b15801561332c57600080fd5b505afa158015613340573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052606081101561338757600080fd5b8151602083018051919392830192916401000000008111156133a857600080fd5b820160208101848111156133bb57600080fd5b81518560208202830111640100000000821117156133d857600080fd5b505092919060200180516401000000008111156133f457600080fd5b8201602081018481111561340757600080fd5b815185602082028301116401000000008211171561342457600080fd5b50959850939650929450600093505050505b8381101561380b57825160009084908390811061344f57fe5b90602001906020020151600160a060020a0316141561346d57613803565b600381850310156135b1576007548351600160a060020a039091169063e8c3fb7d9085908490811061349b57fe5b906020019060200201516040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082600160a060020a0316600160a060020a0316815260200191505060206040518083038186803b15801561350757600080fd5b505afa15801561351b573d6000803e3d6000fd5b505050506040513d602081101561353157600080fd5b50518251601e90910160ff169083908390811061354a57fe5b90602001906020020151848381518110151561356257fe5b90602001906020020151600160a060020a03167f63c406ee52a25370998ce916084682c3b657f8bb0e614598b90971e8fe35c314426040518082815260200191505060405180910390a46136e6565b6007548351600160a060020a039091169063e8c3fb7d908590849081106135d457fe5b906020019060200201516040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082600160a060020a0316600160a060020a0316815260200191505060206040518083038186803b15801561364057600080fd5b505afa158015613654573d6000803e3d6000fd5b505050506040513d602081101561366a57600080fd5b50518251601490910160ff169083908390811061368357fe5b90602001906020020151848381518110151561369b57fe5b90602001906020020151600160a060020a03167f63c406ee52a25370998ce916084682c3b657f8bb0e614598b90971e8fe35c314426040518082815260200191505060405180910390a45b81818151811015156136f457fe5b90602001906020020151600f6001016000858481518110151561371357fe5b6020908102909101810151600160a060020a039081168352908201929092526040016000206006018054909201909155600854845191169063ecf54bde9085908490811061375d57fe5b90602001906020020151848481518110151561377557fe5b906020019060200201516040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050600060405180830381600087803b1580156137ea57600080fd5b505af11580156137fe573d6000803e3d6000fd5b505050505b600101613436565b505050505050505050505050505050565b600160a060020a03166000908152600191820160205260408120818155600481018290559182018190556002820181905560038201819055600582018190556006820155600701805460ff19169055565b6101006040519081016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600060ff1681525090565b60606040519081016040528060001515815260200160008152602001600081525090565b8154818355818111156117f0576000838152602090206117f091810190830161194b91905b8082111561391357600081556001016138ff565b509056fea165627a7a723058200f04b849a70e5f5d0d7a90a0509646c167d6517a926f4284bed71c404ddf816e0029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000def65fba8f50f01b811c8247b89bb7f95f6f2e240000000000000000000000003fe5eb14a8e99d7ba8b421c5285b5c0d8292cd1300000000000000000000000091c4b0cfc5eac8b8c5fd953ae9fbc707b520a7d60000000000000000000000000baa130c0f3dcab39981dd5d6a781dcc517eb5d00000000000000000000000002655e4b1957ff8fa6536f705f3f7feb7d910ff7600000000000000000000000039df96d505a10e2202e1b0a27dc29ba136b6a8ec00000000000000000000000058d9aeff5bd966717a61439fffd2273102084b90000000000000000000000000c3715c9614d5d37a0732c47db6bbb6bbc014a822
-----Decoded View---------------
Arg [0] : TuringInc (address): 0xDEf65FBa8f50F01B811c8247B89bb7F95f6F2E24
Arg [1] : RecommendInc (address): 0x3FE5Eb14A8e99D7BA8b421c5285B5c0d8292CD13
Arg [2] : ERC20Inc (address): 0x91c4B0CFc5eAc8B8C5fd953ae9FBc707b520A7d6
Arg [3] : CostInc (address): 0x0Baa130C0F3dcAb39981dD5D6a781dcC517Eb5d0
Arg [4] : LevelSubInc (address): 0x2655e4b1957Ff8fa6536F705f3F7fEB7D910fF76
Arg [5] : StatisticsInc (address): 0x39Df96D505a10E2202e1B0a27dC29ba136B6A8ec
Arg [6] : luckPoolA (address): 0x58D9aEFF5BD966717a61439FFFd2273102084b90
Arg [7] : luckPoolB (address): 0xc3715c9614D5d37A0732c47Db6BBB6bbc014a822
-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 000000000000000000000000def65fba8f50f01b811c8247b89bb7f95f6f2e24
Arg [1] : 0000000000000000000000003fe5eb14a8e99d7ba8b421c5285b5c0d8292cd13
Arg [2] : 00000000000000000000000091c4b0cfc5eac8b8c5fd953ae9fbc707b520a7d6
Arg [3] : 0000000000000000000000000baa130c0f3dcab39981dd5d6a781dcc517eb5d0
Arg [4] : 0000000000000000000000002655e4b1957ff8fa6536f705f3f7feb7d910ff76
Arg [5] : 00000000000000000000000039df96d505a10e2202e1b0a27dc29ba136b6a8ec
Arg [6] : 00000000000000000000000058d9aeff5bd966717a61439fffd2273102084b90
Arg [7] : 000000000000000000000000c3715c9614d5d37a0732c47db6bbb6bbc014a822
Libraries Used
lib_math : 0x307f824808607dfa13ef7fa4370dd267c4ba08f3UnverifiedDepositedHistory : 0xdc8936cdc3123928342f375b35751acbf0d70047Unverified
Deployed Bytecode Sourcemap
27050:13181:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27215:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;27215:31:0;;;:::i;:::-;;;;-1:-1:-1;;;;;27215:31:0;;;;;;;;;;;;;;28170:42;;8:9:-1;5:2;;;30:1;27;20:12;5:2;28170:42:0;;;:::i;:::-;;;;;;;;;;;;;;;;27092:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;27092:28:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;27253:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;27253:29:0;;;:::i;27289:37::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;27289:37:0;;;:::i;36296:209::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;36296:209:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;39766:150;;8:9:-1;5:2;;;30:1;27;20:12;5:2;39766:150:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;39766:150:0;;;;;;;:::i;37646:968::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;37646:968:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27129:33;;8:9:-1;5:2;;;30:1;27;20:12;5:2;27129:33:0;;;:::i;200:112::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;200:112:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;200:112:0;;:::i;28219:36::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;28219:36:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;29809:1806;;;:::i;39930:109::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;39930:109:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;39930:109:0;;;;;;;:::i;38624:394::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;38624:394:0;;;:::i;28466:37::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;28466:37:0;;;:::i;29493:308::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;29493:308:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;29493:308:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;1327:101;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1327:101:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1327:101:0;-1:-1:-1;;;;;1327:101:0;;:::i;31625:138::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;31625:138:0;;;:::i;1206:113::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1206:113:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1206:113:0;;;;;;;;;;;;;;;;;36515:476;;8:9:-1;5:2;;;30:1;27;20:12;5:2;36515:476:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;28122:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;28122:41:0;;;:::i;27333:::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;27333:41:0;;;:::i;27169:39::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;27169:39:0;;;:::i;40080:109::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;40080:109:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;40080:109:0;-1:-1:-1;;;;;40080:109:0;;:::i;27381:41::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;27381:41:0;;;:::i;31771:806::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;31771:806:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;31771:806:0;-1:-1:-1;;;;;31771:806:0;;:::i;99:92::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;99:92:0;;;:::i;39026:619::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;39026:619:0;;;:::i;27429:41::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;27429:41:0;;;:::i;37001:637::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;37001:637:0;;;:::i;39655:103::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;39655:103:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;39655:103:0;;;;:::i;1436:475::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1436:475:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1436:475:0;-1:-1:-1;;;;;1436:475:0;;:::i;28266:83::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;28266:83:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;28266:83:0;;:::i;32585:3701::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;32585:3701:0;;;:::i;27215:31::-;;;-1:-1:-1;;;;;27215:31:0;;:::o;28170:42::-;;;;:::o;27092:28::-;;;;;;:::o;27253:29::-;;;-1:-1:-1;;;;;27253:29:0;;:::o;27289:37::-;;;-1:-1:-1;;;;;27289:37:0;;:::o;36296:209::-;36428:10;36347:15;36402:37;;;:25;:37;;;;;:45;;;;36449:46;;;;;36296:209;;;:::o;39766:150::-;435:10;;464:189;486:15;:22;482:26;;464:189;;;536:15;:18;;558:10;;536:15;552:1;;536:18;;;;;;;;;;;;;;;;-1:-1:-1;;;;;536:18:0;:32;531:111;;;598:4;590:12;;621:5;;531:111;510:3;;464:189;;;;673:5;665:14;;;;;;;;-1:-1:-1;39853:16:0;:22;;;;39886:16;:22;39766:150::o;37646:968::-;38027:10;37711:18;38006:32;;;:20;:32;;;;;:43;;:20;38082:52;;;38166:51;;;;38246:48;;;;38320:45;;;;38396:50;;;;38477;;;;38557:49;;;;;38006:43;;38082:52;;38166:51;;38246:48;;38320:45;;38396:50;;38477;;38557:49;;;;;37646:968::o;27129:33::-;;;;;;-1:-1:-1;;;;;27129:33:0;;:::o;200:112::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;200:112:0;;-1:-1:-1;200:112:0;:::o;28219:36::-;;;;;;:::o;29809:1806::-;29136:8;;;;29135:9;29126:20;;;;;;29220:10;;;;;;;;;-1:-1:-1;;;;;29220:10:0;-1:-1:-1;;;;;29220:24:0;;:26;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;29220:26:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;29220:26:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;29220:26:0;29219:27;29209:39;;;;;;29359:10;29398:21;;;29439:9;;29430:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29893:10;;;;;;;;;-1:-1:-1;;;;;29893:10:0;-1:-1:-1;;;;;29893:19:0;;:21;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;29893:21:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;29938:13:0;;;:39;;;;;;29966:10;29938:39;;;;;;;;-1:-1:-1;;;;;;;;29938:13:0;;;;-1:-1:-1;29938:27:0;;:39;;;;;;;;;;;;;;;:13;:39;;;5:2:-1;;;;30:1;27;20:12;5:2;29938:39:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;29938:39:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;29938:39:0;-1:-1:-1;;;;;29938:55:0;;;29929:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30072:9;30026:10;;;;;;;;;-1:-1:-1;;;;;30026:10:0;-1:-1:-1;;;;;30026:40:0;;:42;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;30026:42:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;30026:42:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;30026:42:0;:55;;30017:66;;;;;;30094:10;;;;;;;;;-1:-1:-1;;;;;30094:10:0;-1:-1:-1;;;;;30094:39:0;;30135:9;30094:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;30094:52:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;30094:52:0;;;;30183:16;;30170:9;:29;;30161:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30238:8;;:33;;;;;;30261:9;30238:33;;;;;;30223:12;;-1:-1:-1;;;;;30238:8:0;;:22;;:33;;;;;;;;;;;;;;:8;:33;;;5:2:-1;;;;30:1;27;20:12;5:2;30238:33:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;30238:33:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;30238:33:0;30284:9;;:59;;;;;;30308:10;30284:59;;;;30328:6;30284:59;;;;;;;;;;;;30238:33;;-1:-1:-1;;;;;;30284:9:0;;;;:22;;:59;;;;;30238:33;;30284:59;;;;;;;;:9;;:59;;;5:2:-1;;;;30:1;27;20:12;5:2;30284:59:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;30284:59:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;30361:36:0;;;;;;:16;:36;;;;30386:10;30361:36;;;;;;:24;;;;:36;;;;;30284:59;;30361:36;;;;;;;:24;:36;;;5:2:-1;;;;30:1;27;20:12;5:2;30361:36:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;30361:36:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;30361:36:0;30356:555;;;30417:41;;:::i;:::-;-1:-1:-1;30482:10:0;30461:32;;;;:20;:32;;;;;;;;;30417:76;;;;;;;;;;;30461:20;30417:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30532:34;;30519:9;:47;;30510:57;;;;;;30626:8;:15;:17;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;30626:17:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;30626:17:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;30626:17:0;;30601:21;;;30646:1;30626:21;;;30595:3;:27;;;;:52;;30586:63;;;;;;30666:56;;;;;;:16;:56;;;;30700:10;30666:56;;;;30712:9;30666:56;;;;;;:33;;;;:56;;;;;;;;;;;;;;:33;:56;;;5:2:-1;;;;30:1;27;20:12;5:2;30666:56:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;30666:56:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;30356:555:0;;-1:-1:-1;;30356:555:0;;30781:16;;30768:9;:29;;30759:40;;;;;;30863:16;;30881:17;;30816:83;;;;;;:16;:83;;;;30840:10;30816:83;;;;30852:9;30816:83;;;;;;;;;;;30881:17;;;;30816:83;;;;;:23;;;;:83;;;;;;;;;;;;;;:23;:83;;;5:2:-1;;;;30:1;27;20:12;5:2;30816:83:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;30816:83:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;30356:555:0;30930:45;;30965:9;;30960:3;;30948:10;;30930:45;;;;;31019:10;31003:4;30995:21;:34;30990:93;;;31047:10;;;;;;;;;-1:-1:-1;;;;;31047:10:0;-1:-1:-1;;;;;31047:22:0;;:24;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;31047:24:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;31047:24:0;;;;30990:93;31150:10;;31229;;31287:23;;;;;;;;-1:-1:-1;;;;;31150:10:0;;;;31229;;;;31150;;31257:60;;31313:3;;31150:10;;31287:21;;:23;;;;;;;;;;;;;;;31150:10;31287:23;;;5:2:-1;;;;30:1;27;20:12;5:2;31287:23:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;31287:23:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;31287:23:0;31275:9;:35;:41;;;;;;;;31257:60;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;31257:60:0;31328:8;-1:-1:-1;;;;;31328:17:0;:60;31384:3;31358:10;;;;;;;;;-1:-1:-1;;;;;31358:10:0;-1:-1:-1;;;;;31358:21:0;;:23;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;31358:23:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;31358:23:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;31358:23:0;31346:9;:35;:41;;;;;;;;31328:60;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;31401:10:0;;:54;;;;;;31433:10;31401:54;;;;31445:9;31401:54;;;;;;-1:-1:-1;;;;;31401:10:0;;;;:31;;:54;;;;;;;;;;;;;;;:10;;:54;;;5:2:-1;;;;30:1;27;20:12;5:2;31401:54:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;31401:54:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;31466:10:0;;:54;;;;;;31498:10;31466:54;;;;31510:9;31466:54;;;;;;-1:-1:-1;;;;;31466:10:0;;;;:31;;:54;;;;;31401;;31466;;;;;;;;:10;;:54;;;5:2:-1;;;;30:1;27;20:12;5:2;31466:54:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;31466:54:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;31535:13:0;;;:52;;;;;;31564:10;31535:52;;;;;;;31576:9;31535:52;;;;;-1:-1:-1;;;;;31535:13:0;;;;:27;;:52;;;;;:13;;:52;;;;;;;:13;;:52;;;5:2:-1;;;;30:1;27;20:12;5:2;31535:52:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;31535:52:0;;;;31600:8;;;29476:1;29259;;29809:1806::o;39930:109::-;435:10;;464:189;486:15;:22;482:26;;464:189;;;536:15;:18;;558:10;;536:15;552:1;;536:18;;;;;;;;;;;;;;;;-1:-1:-1;;;;;536:18:0;:32;531:111;;;598:4;590:12;;621:5;;531:111;510:3;;464:189;;;;673:5;665:14;;;;;;;;40030:1;40009:15;40025:1;40009:18;;;;;;;;;;;;;;;;;;;:22;-1:-1:-1;;;39930:109:0:o;38624:394::-;435:10;;464:189;486:15;:22;482:26;;464:189;;;536:15;:18;;558:10;;536:15;552:1;;536:18;;;;;;;;;;;;;;;;-1:-1:-1;;;;;536:18:0;:32;531:111;;;598:4;590:12;;621:5;;531:111;510:3;;464:189;;;;673:5;665:14;;;;;;;;38717:9;38701:4;38693:21;:33;38688:321;;;38746:8;:15;;-1:-1:-1;;38746:15:0;38757:4;38746:15;;;38803:8;;:26;;;;;;;;-1:-1:-1;;;;;38803:8:0;;;;:24;;:26;;;;;;;;;;;;;;;:8;:26;;;5:2:-1;;;;30:1;27;20:12;5:2;38803:26:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;38803:26:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;38803:26:0;38778:22;:51;38846:15;;:49;;-1:-1:-1;;;;;38846:15:0;;;;38880:4;38872:21;38846:49;;;;;:15;:49;:15;:49;38872:21;38846:15;:49;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;38846:49:0;38912:10;;;;;;;;;-1:-1:-1;;;;;38912:10:0;-1:-1:-1;;;;;38912:23:0;;:25;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;38912:25:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;38912:25:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;38688:321:0;;-1:-1:-1;38688:321:0;;38974:10;;;;;;;;;-1:-1:-1;;;;;38974:10:0;-1:-1:-1;;;;;38974:21:0;;:23;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;38974:23:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;38974:23:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;38688:321:0;38624:394;:::o;28466:37::-;;;;:::o;29493:308::-;-1:-1:-1;;;;;29637:36:0;;29572:12;29637:36;;;:29;:36;;;;;:43;;29572:12;;;;29674:5;;29637:43;;;;;;;;;;;;;;;;;;;;;:57;-1:-1:-1;;;;;29696:36:0;;;;:29;:36;;;;;;;:43;;29733:5;;29696:43;;;;;;;;;;;;;;;;;;;;;;:50;;;-1:-1:-1;;;;;29748:36:0;;;;;;:29;:36;;;;;:43;29628:165;;29748:43;;-1:-1:-1;29493:308:0;-1:-1:-1;;;29493:308:0:o;1327:101::-;435:10;;464:189;486:15;:22;482:26;;464:189;;;536:15;:18;;558:10;;536:15;552:1;;536:18;;;;;;;;;;;;;;;;-1:-1:-1;;;;;536:18:0;:32;531:111;;;598:4;590:12;;621:5;;531:111;510:3;;464:189;;;;673:5;665:14;;;;;;;;-1:-1:-1;1396:12:0;27:10:-1;;39:1;23:18;;45:23;;1396:24:0;;;;;;;-1:-1:-1;;1396:24:0;-1:-1:-1;;;;;1396:24:0;;;;;;;;;;1327:101::o;31625:138::-;31713:16;:42;31625:138;;:::o;1206:113::-;1254:25;1299:12;1292:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1292:19:0;;;;;;;;;;;;;;;;;;;;;;;1206:113;:::o;36515:476::-;29050:8;;36579:13;;;;29050:8;;29041:19;;;;;;;;36626:36;;:::i;:::-;-1:-1:-1;36691:10:0;36665:37;;;;:25;:37;;;;;;;;;36626:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;36720:23;36715:75;;-1:-1:-1;36769:1:0;;-1:-1:-1;36769:1:0;;-1:-1:-1;36761:17:0;;36715:75;36833:10;;;;;36821:9;;;;;36887:22;;36971:10;36802:16;36951:31;;;:19;:31;;;;;;;;36912:7;36821:22;;;;36876:33;;;:43;;36951:31;;;;;-1:-1:-1;36515:476:0;-1:-1:-1;36515:476:0:o;28122:41::-;;;;:::o;27333:::-;;;-1:-1:-1;;;;;27333:41:0;;:::o;27169:39::-;;;-1:-1:-1;;;;;27169:39:0;;:::o;40080:109::-;435:10;;464:189;486:15;:22;482:26;;464:189;;;536:15;:18;;558:10;;536:15;552:1;;536:18;;;;;;;;;;;;;;;;-1:-1:-1;;;;;536:18:0;:32;531:111;;;598:4;590:12;;621:5;;531:111;510:3;;464:189;;;;673:5;665:14;;;;;;;;-1:-1:-1;40165:10:0;:16;;-1:-1:-1;;40165:16:0;-1:-1:-1;;;;;40165:16:0;;;;;;;;;;40080:109::o;27381:41::-;;;-1:-1:-1;;;;;27381:41:0;;:::o;31771:806::-;31884:31;;;;;;:16;:31;;;;-1:-1:-1;;;;;31884:31:0;;;;;;;;31841:10;;;;31884:24;;;;:31;;;;;;;;;;;;;;:24;:31;;;5:2:-1;;;;30:1;27;20:12;5:2;31884:31:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;31884:31:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;31884:31:0;31883:32;31878:80;;;-1:-1:-1;31941:1:0;;-1:-1:-1;31941:1:0;31933:13;;31878:80;31970:41;;:::i;:::-;-1:-1:-1;;;;;;32014:27:0;;;;;;:20;:27;;;;;;;;31970:71;;;;;;;;;;;32014:20;31970:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32131:17;;;;;;;31970:71;;32014:27;32131:8;;:15;;:17;;;;;;;;;;:8;:17;;;5:2:-1;;;;30:1;27;20:12;5:2;32131:17:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;32131:17:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;32131:17:0;32107:20;;;;;32075:29;;;;;;;32107:20;;32075:8;;:27;;:29;;;;;32131:17;;32075:29;;;;;;;;:8;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;32075:29:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;32075:29:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;32075:29:0;:52;32074:74;;;;;;;;;-1:-1:-1;32161:19:0;;32197:319;32221:9;32217:1;:13;32197:319;;;32254:12;32306:8;:15;:17;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;32306:17:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;32306:17:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;32306:17:0;32269:29;;;;;;;;32302:21;;;;32269:8;;:27;;:29;;;;;32306:17;;32269:29;;;;;;;:8;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;32269:29:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;32269:29:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;32269:29:0;32354:10;;:38;;;;;;32269:55;;;;32354:38;;;;;;;;32269:55;;-1:-1:-1;;;32354:10:0;;;;-1:-1:-1;;;;;32354:10:0;;:30;;:38;;;;;32269:29;;32354:38;;;;;;;;:10;:38;;;5:2:-1;;;;30:1;27;20:12;5:2;32354:38:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;32354:38:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;32354:38:0;32440:51;;;;;;:16;:51;;;;-1:-1:-1;;;;;32440:51:0;;;;;;;;;;;;;;32354:38;;-1:-1:-1;32499:4:0;;32354:38;;32440;;;;:51;;;;;32354:38;;32440:51;;;;;;;;:38;:51;;;5:2:-1;;;;30:1;27;20:12;5:2;32440:51:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;32440:51:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;32440:51:0;:56;:63;;;;;;;;32425:79;;;;;-1:-1:-1;;32232:3:0;;32197:319;;;;32536:11;32549:1;:19;;;32528:41;;;;;;;31771:806;;;;:::o;99:92::-;;;-1:-1:-1;;;;;99:92:0;;:::o;39026:619::-;29136:8;;;;29135:9;29126:20;;;;;;29220:10;;;;;;;;;-1:-1:-1;;;;;29220:10:0;-1:-1:-1;;;;;29220:24:0;;:26;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;29220:26:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;29220:26:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;29220:26:0;29219:27;29209:39;;;;;;29359:10;29398:21;;;29439:9;;29430:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;39171:10;39104:38;39145:37;;;:25;:37;;;;;;;;39240:20;:32;;;;;;39324:17;;;;;;;39240:32;;39324:8;;:15;;:17;;;;;39145:37;39324:17;;;;;:8;:17;;;5:2:-1;;;;30:1;27;20:12;5:2;39324:17:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;39324:17:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;39324:17:0;39299:21;;;;39344:2;39324:22;;;39293:3;:27;;;;:53;;39285:63;;;;;;39382:11;;;;39369:10;;;;:24;39361:33;;;;;;39441:11;;;;39428:10;;;;:24;39481:4;39473:21;:35;-1:-1:-1;39473:35:0;39465:44;;;;;;39522:34;:16;39545:10;39522:34;:22;:34;:::i;:::-;39583:10;;;;39569:11;;;:24;39606:31;;:10;;:31;;;;;39626:10;;-1:-1:-1;39606:31:0;-1:-1:-1;39606:31:0;39626:10;39606;:31;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;39606:31:0;29476:1;;;29259;;39026:619::o;27429:41::-;;;-1:-1:-1;;;;;27429:41:0;;:::o;37001:637::-;29050:8;;37057:4;;29050:8;;29041:19;;;;;;;;37076:36;;:::i;:::-;-1:-1:-1;37141:10:0;37115:37;;;;:25;:37;;;;;;;;;37076:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;37172:23;37167:70;;37220:5;37213:12;;;;;37167:70;37275:10;37255:31;;;;:19;:31;;;;;;;;37254:32;37249:357;;;37326:10;37306:31;;;;:19;:31;;;;;;;;:38;;-1:-1:-1;;37306:38:0;37340:4;37306:38;;;37394:10;;;37382:9;;;;37452:22;;37382;;;;37306:31;37477:7;;37441:33;;37504:10;;:62;;;;;;37545:10;37504:62;;;;37441:43;;;;37504:62;;;;;;;;37441:43;;-1:-1:-1;;;;;;37504:10:0;;:40;;:62;;;;;:10;;:62;;;;;;;:10;;:62;;;5:2:-1;;;;30:1;27;20:12;5:2;37504:62:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;37504:62:0;;;;37590:4;37583:11;;;;;;;37249:357;37625:5;37618:12;;;37001:637;:::o;39655:103::-;435:10;;464:189;486:15;:22;482:26;;464:189;;;536:15;:18;;558:10;;536:15;552:1;;536:18;;;;;;;;;;;;;;;;-1:-1:-1;;;;;536:18:0;:32;531:111;;;598:4;590:12;;621:5;;531:111;510:3;;464:189;;;;673:5;665:14;;;;;;;;-1:-1:-1;39729:17:0;:21;;-1:-1:-1;;39729:21:0;;;;;;;;;;;;39655:103::o;1436:475::-;435:10;;464:189;486:15;:22;482:26;;464:189;;;536:15;:18;;558:10;;536:15;552:1;;536:18;;;;;;;;;;;;;;;;-1:-1:-1;;;;;536:18:0;:32;531:111;;;598:4;590:12;;621:5;;531:111;510:3;;464:189;;;;673:5;665:14;;;;;;;;1512:6;1507:395;1528:12;:19;1524:23;;1507:395;;;1592:5;-1:-1:-1;;;;;1573:24:0;:12;1586:1;1573:15;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1573:15:0;:24;1569:322;;;1623:6;1618:129;1639:12;:19;-1:-1:-1;;1639:23:0;1635:27;;1618:129;;;1710:12;:17;;1725:1;1723:3;;;1710:17;;;;;;;;;;;;;;;1692:15;;-1:-1:-1;;;;;1710:17:0;;;;;1705:1;;1692:15;;;;;;;;;;;;;;;:35;;-1:-1:-1;;1692:35:0;-1:-1:-1;;;;;1692:35:0;;;;;;;;;;-1:-1:-1;1664:3:0;1618:129;;;-1:-1:-1;1772:12:0;1785:19;;-1:-1:-1;;1785:23:0;;;1772:37;;;;;;;;;;;;;;1765:44;;-1:-1:-1;;1765:44:0;;;1828:21;;;;;-1:-1:-1;;1828:21:0;;;:::i;:::-;;1868:8;;;1569:322;1549:3;;1507:395;;28266:83;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;28266:83:0;:::o;32585:3701::-;29136:8;;;;29135:9;29126:20;;;;;;29220:10;;;;;;;;;-1:-1:-1;;;;;29220:10:0;-1:-1:-1;;;;;29220:24:0;;:26;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;29220:26:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;29220:26:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;29220:26:0;29219:27;29209:39;;;;;;29359:10;29398:21;;;29439:9;;29430:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32671:41;;:::i;:::-;-1:-1:-1;32736:10:0;32715:32;;;;:20;:32;;;;;;;;32671:76;;;;;;;;;;;32715:20;32671:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32715:32;;32801:36;;:24;:36::i;:::-;32908:43;;;;;;:16;:43;;;;32940:10;32908:43;;;;;;32762:75;;-1:-1:-1;32762:75:0;;-1:-1:-1;32871:19:0;;;;;;32908:31;;;;:43;;;;;;;;;;;;;;;:31;:43;;;5:2:-1;;;;30:1;27;20:12;5:2;32908:43:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;32908:43:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;32908:43:0;:57;32903:524;;;32999:43;;;;;;:16;:43;;;;33031:10;32999:43;;;;;;:31;;;;:43;;;;;;;;;;;;;;:31;:43;;;5:2:-1;;;;30:1;27;20:12;5:2;32999:43:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;32999:43:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;32999:43:0;33059:14;;:35;;;;;;;;32999:43;;-1:-1:-1;;;;;;33059:14:0;;;;:33;;:35;;;;;:14;;:35;;;;;;;;:14;;:35;;;5:2:-1;;;;30:1;27;20:12;5:2;33059:35:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;33059:35:0;;;;33111:34;33134:10;33111:16;:22;;:34;;;;:::i;:::-;33188:10;33162:37;;;;:25;:37;;;;;;;;;:46;;:61;;;;;;33276:14;;;;33292:18;;;;33245:66;;;;;;;;;;33276:14;;33271:3;;33188:10;;33245:66;;;;;;;;;32903:524;;;33346:69;;;;;;:16;:69;;;;33391:10;33346:69;;;;;;;;;;;;:44;;;;:69;;;;;;;;;;;;;;:44;:69;;;5:2:-1;;;;30:1;27;20:12;5:2;33346:69:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;33346:69:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;32903:524:0;33441:20;33520:3;33478:10;;;;;;;;;-1:-1:-1;;;;;33478:10:0;-1:-1:-1;;;;;33478:37:0;;:39;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;33478:39:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;33478:39:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;33478:39:0;33464:53;;:59;;;;;;;33549:8;;:36;;;;;;;;;;;;;;33464:59;;;;;-1:-1:-1;33534:12:0;;-1:-1:-1;;;;;33549:8:0;;;;:21;;:36;;;;;;;;;;;;;;:8;:36;;;5:2:-1;;;;30:1;27;20:12;5:2;33549:36:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;33549:36:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;33549:36:0;33598:9;;:57;;;;;;33621:10;33598:57;;;;33641:6;33598:57;;;;;;;;;;;;33549:36;;-1:-1:-1;;;;;;33598:9:0;;;;:22;;:57;;;;;33549:36;;33598:57;;;;;;;;:9;;:57;;;5:2:-1;;;;30:1;27;20:12;5:2;33598:57:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;33598:57:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;33668:33:0;;:10;;:33;;;;;33688:12;;33668:33;;;;33688:12;33668:10;:33;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;33668:33:0;33807:2;33802:3;33760:10;;;;;;;;;-1:-1:-1;;;;;33760:10:0;-1:-1:-1;;;;;33760:37:0;;:39;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;33760:39:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;33760:39:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;33760:39:0;33749:50;;:56;;;;;;;;33737:10;-1:-1:-1;;;;;33719:96:0;;33811:3;33719:96;;;;;;;;;;;;;;;;;;33831:62;;;;;;;;33867:11;;33862:3;;33850:10;;33831:62;;;;;;;;;;33927:1;33915:13;;33910:54;;33946:7;;;;;;;;33910:54;33976:14;;:61;;;;;;34016:10;33976:61;;;;;;;;;;;;-1:-1:-1;;;;;33976:14:0;;;;:39;;:61;;;;;:14;;:61;;;;;;;;:14;;:61;;;5:2:-1;;;;30:1;27;20:12;5:2;33976:61:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;;;34081:14:0;;;;34134:8;34174:10;34050:28;34195:1300;34220:15;:22;34216:26;;34195:1300;;;34280:13;;;:39;;;;;;-1:-1:-1;;;;;34280:39:0;;;;;;;;;;;;:13;;;;;:27;;:39;;;;;;;;;;;;;;;:13;:39;;;5:2:-1;;;;30:1;27;20:12;5:2;34280:39:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;34280:39:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;34280:39:0;;-1:-1:-1;;;;;;34341:26:0;;;34336:76;;;34391:5;;34336:76;34449:13;;;:51;;;;;;-1:-1:-1;;;;;34449:51:0;;;;;;;;;;;;34430:16;;34449:13;;;;:37;;:51;;;;;;;;;;;;;;;:13;:51;;;5:2:-1;;;;30:1;27;20:12;5:2;34449:51:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;34449:51:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;34449:51:0;;-1:-1:-1;34536:1:0;34524:13;;;;:53;;-1:-1:-1;34541:12:0;;:32;;;;;;-1:-1:-1;;;;;34541:32:0;;;;;;;;;34576:1;;34541:12;;;;;:20;;:32;;;;;;;;;;;;;;;:12;:32;;;5:2:-1;;;;30:1;27;20:12;5:2;34541:32:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;34541:32:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;34541:32:0;:36;34524:53;34519:129;;;-1:-1:-1;34610:15:0;:22;34519:129;34681:8;34672:1;34676;34672:5;34671:18;34666:69;;;34711:8;;;34666:69;34758:36;;;;;;:16;:36;;;;-1:-1:-1;;;;;34758:36:0;;;;;;;;:24;;;;:36;;;;;;;;;;;;;;:24;:36;;;5:2:-1;;;;30:1;27;20:12;5:2;34758:36:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;34758:36:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;34758:36:0;34753:731;;;34818:22;34884:3;34863:15;34879:1;34863:18;;;;;;;;;;;;;;;;;;34843:17;:38;:44;;;;;;;-1:-1:-1;;;;;34936:32:0;;;;;;:20;:32;;;;;:45;;;34843:44;;;;-1:-1:-1;34913:68:0;;:128;;;;-1:-1:-1;;;;;;34985:32:0;;;;;;:20;:32;;;;;:45;;;35033:8;-1:-1:-1;34913:128:0;34908:299;;;-1:-1:-1;;;;;35105:32:0;;;;;;:20;:32;;;;;:45;;;35184:3;;35159:20;;35105:51;;:74;;;;;;;;35086:14;:95;:101;;;;;;;;35069:118;;34908:299;35286:1;35234:60;;35264:14;35252:10;-1:-1:-1;;;;;35234:60:0;;35290:3;35234:60;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;35313:32:0;;;;;;;:20;:32;;;;;;:50;;:68;;;;;;35400:14;;:68;;;;;;;;;;;;;;;;;;;;:14;;;:40;;:68;;;;;35313:32;35400:68;;;;;;35313:32;35400:14;:68;;;5:2:-1;;;;30:1;27;20:12;5:2;35400:68:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;35400:68:0;;;;34753:731;;34195:1300;;34244:3;;34195:1300;;;-1:-1:-1;35627:12:0;;:49;;;;;;35654:10;35627:49;;;;;;;;;;;;35509:11;;35535:22;;;;-1:-1:-1;;;;;35627:12:0;;;;:25;;:49;;;;;35509:11;;35627:49;;;;;;;;:12;:49;;;5:2:-1;;;;30:1;27;20:12;5:2;35627:49:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;35627:49:0;;;;;;39:16:-1;36:1;17:17;2:54;101:4;35627:49:0;80:15:-1;;;97:9;76:31;65:43;;120:4;113:20;13:2;5:11;;2:2;;;29:1;26;19:12;2:2;35627:49:0;;;;;;;;;;;;;;19:11:-1;11:20;;8:2;;;44:1;41;34:12;8:2;62:21;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;219:3;213:10;331:9;325:2;311:12;307:21;289:16;285:44;282:59;261:11;247:12;244:29;233:116;230:2;;;362:1;359;352:12;230:2;0:373;;35627:49:0;;;;;;;19:11:-1;14:3;11:20;8:2;;;44:1;41;34:12;8:2;62:21;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;219:3;213:10;331:9;325:2;311:12;307:21;289:16;285:44;282:59;261:11;247:12;244:29;233:116;230:2;;;362:1;359;352:12;230:2;-1:-1;35603:73:0;;-1:-1:-1;35603:73:0;;-1:-1:-1;35627:49:0;;-1:-1:-1;35693:6:0;;-1:-1:-1;;;;35687:592:0;35709:3;35705:1;:7;35687:592;;;35742:8;;35762:3;;35742:5;;35748:1;;35742:8;;;;;;;;;;;;;;-1:-1:-1;;;;;35742:24:0;;35737:76;;;35788:8;;35737:76;35844:1;35840;35834:3;:7;:11;35829:283;;;35924:12;;35945:8;;-1:-1:-1;;;;;35924:12:0;;;;:20;;35945:5;;35951:1;;35945:8;;;;;;;;;;;;;;35924:30;;;;;;;;;;;;;-1:-1:-1;;;;;35924:30:0;-1:-1:-1;;;;;35924:30:0;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;35924:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;35924:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;35924:30:0;35900:10;;35919:2;:35;;;35872:89;;;35900:10;;35908:1;;35900:10;;;;;;;;;;;;;;35890:5;35896:1;35890:8;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;35872:89:0;;35957:3;35872:89;;;;;;;;;;;;;;;;;;35829:283;;;36059:12;;36080:8;;-1:-1:-1;;;;;36059:12:0;;;;:20;;36080:5;;36086:1;;36080:8;;;;;;;;;;;;;;36059:30;;;;;;;;;;;;;-1:-1:-1;;;;;36059:30:0;-1:-1:-1;;;;;36059:30:0;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;36059:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;36059:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;36059:30:0;36035:10;;36054:2;:35;;;36007:89;;;36035:10;;36043:1;;36035:10;;;;;;;;;;;;;;36025:5;36031:1;36025:8;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;36007:89:0;;36092:3;36007:89;;;;;;;;;;;;;;;;;;35829:283;36180:7;36188:1;36180:10;;;;;;;;;;;;;;;;;;36128:16;:20;;:30;36149:5;36155:1;36149:8;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;36128:30:0;;;;;;;;;;;;;;-1:-1:-1;36128:30:0;:48;;:62;;;;;;;;36205:14;;36246:8;;36205:14;;;:40;;36246:5;;36252:1;;36246:8;;;;;;;;;;;;;;36256:7;36264:1;36256:10;;;;;;;;;;;;;;;;;;36205:62;;;;;;;;;;;;;-1:-1:-1;;;;;36205:62:0;-1:-1:-1;;;;;36205:62:0;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;36205:62:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;36205:62:0;;;;35687:592;35714:3;;35687:592;;;;29476:1;;;;;;;;;;;;29259;;32585:3701::o;24371:480::-;-1:-1:-1;;;;;24439:15:0;24468:1;24439:15;;;:8;;;;:15;;;;;:30;;;24480:28;;;:32;;;24523:35;;;:39;;;24573:34;;;:38;;;-1:-1:-1;24622:31:0;;:35;;;24711:33;;;:37;;;24759:33;;;:37;24807:32;;:36;;-1:-1:-1;;24807:36:0;;;24371:480::o;27050:13181::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Swarm Source
bzzr://0f04b849a70e5f5d0d7a90a0509646c167d6517a926f4284bed71c404ddf816e
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.