ERC-20
Overview
Max Total Supply
0 RICH
Holders
0
Total Transfers
-
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
RichDad
Compiler Version
v0.6.8+commit.0bbfe453
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-06-09 */ /** *Submitted for verification at Etherscan.io on 2020-06-02 */ pragma solidity 0.6.8; pragma experimental ABIEncoderV2; library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { // Solidity only automatically asserts when dividing by 0 require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } //SPDX-License-Identifier: GPL-3.0-only /* Copyright © 2020 RichDad. All rights reserved. RichDad is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. This file is part of RichDad. You should have received a copy of the GNU General Public License along with RichDad. If not, see <https://www.gnu.org/licenses/>. */ contract RichDad { using SafeMath for *; uint256 public id; address payable private creator; uint256 public index; uint256 public qAindex; uint256 public qBindex; uint256 private levelA=0.6 ether; uint256 private levelB=3.88 ether; uint256 private exitLevelA=4.8 ether; uint256 private exitLevelA2=0.92 ether; uint256 private exitLevelB=31.04 ether; uint256 private exitLevelB2=25.04 ether; string public name; string public symbol; uint8 public decimals = 18; uint256 public totalSupply; struct dadList{ uint uid; bytes32 dadHash; address payable userDad; uint joinTime; uint deposit; } struct dadAccount{ bytes32 lastHash; address payable userDad; address payable referrer; uint joinCountA; uint joinCountB; uint referredCount; uint totalDeposit; uint lastJoinTime; uint totalProfit; uint totalExitProfit; } struct userProfitHis{ uint256 indexId; bytes32 dadHash; address userDadFrom; address userDadTo; uint profitAmt; uint profitDate; } struct hashKey{ bytes32 hashUser; uint256 hid; address accDad; } struct queueAcc{ bytes32 qid; address payable accDad; uint queueNo; uint queueTime; uint status; uint256 profit; } struct queueBAcc{ bytes32 qid; address payable accDad; uint queueNo; uint queueTime; uint status; uint256 profit; } struct jackPot{ uint256 poolBalance; uint256 updatedTime; } struct cronBalance{ address payable conAdd1; uint256 conAddBalance1; uint256 updatedTime1; address payable conAdd2; uint256 conAddBalance2; uint256 updatedTime2; address payable conAdd3; uint256 conAddBalance3; uint256 updatedTime3; address payable conAdd4; uint256 conAddBalance4; uint256 updatedTime4; } struct jackPotWinner{ address winner; uint256 winnerTime; uint256 winAmt; uint256 winnerRefer; } struct queueRecord{ uint256 poolABalance; uint256 poolBBalance; uint256 nowAHistoryExitCount; uint256 nowALastExitTime; uint256 nowBHistoryExitCount; uint256 nowBLastExitTime; } struct luckyWinner{ address luckyDad; uint256 winAmt; uint256 winTime; } mapping (address => uint256) public balanceOf; mapping (uint256 => luckyWinner) public LuckyDraw; mapping (address => queueRecord) public queueHistoryRecord; mapping (uint256 => hashKey) public keepHash; mapping (uint256 => jackPotWinner) public declareWinner; mapping (address => jackPot) public JackPotBalance; mapping (address => cronBalance) public contBalance; mapping (bytes32 => dadList) public dadAdd; mapping (address => dadAccount) public accountView; mapping (uint256 => userProfitHis) public userProfitHistory; mapping (bytes32 => queueAcc) public queueAccount; mapping (bytes32 => queueBAcc) public queueBAccount; event RegistrationSuccess(address indexed user, address indexed parent, uint amount, uint jointime); event ExitSuccess(address indexed user, uint position,uint profit); event creatorSet(address indexed oldcreator, address indexed newcreator); event JackPotWinner(address indexed user, uint referralCount, uint winningAmt); event LuckyWin(address indexed user, uint winningAmt,uint id); event ExitbyAdd(address indexed user,uint position,uint profit, address indexed parent); modifier isCreator() { require(msg.sender == creator, "Caller is not creator"); _; } modifier isCorrectAddress(address _user) { require(_user !=address(0), "Address cant be empty"); _; } modifier isReferrerRegister(address _user) { require(accountView[_user].userDad !=address(0), "Referrer Not Register"); _; } modifier isNotReferrer(address currentUser,address user) { require(currentUser !=user, "Referrer cannot register as its own Referee"); _; } modifier depositNotEmpty(uint value){ require(value==levelA || value==levelB,"Invalid deposit amount"); _; } modifier checkReferrer(address _user, address _refer){ require(accountView[_refer].referrer!=_user,"Referrer cannot register as referee's referrer"); _; } constructor ( uint256 initialSupply, string memory tokenName, string memory tokenSymbol ) public{ creator = msg.sender; emit creatorSet(address(0), creator); totalSupply = initialSupply * 10 ** uint256(decimals); balanceOf[msg.sender] = totalSupply; name = tokenName; symbol = tokenSymbol; } receive() external payable {} fallback() external payable {} function getTime() public view returns(uint) { return now; } function registerDad ( address payable _referrer ) checkReferrer(msg.sender, _referrer) isCorrectAddress(_referrer) isNotReferrer(msg.sender,_referrer) depositNotEmpty(msg.value) isReferrerRegister(_referrer) public payable { bytes32 newUserHash; if(accountView[msg.sender].userDad==address(0)){ id++; newUserHash=keccak256(abi.encodePacked(id,msg.sender,_referrer,msg.value,getTime())); dadAdd[newUserHash]=dadList(id,newUserHash,msg.sender,getTime(),msg.value); uint joinCountA; uint joinCountB; updateParentRefer(_referrer); if(msg.value==levelA){ insertNewQueue(newUserHash,msg.sender,msg.value); joinCountA=accountView[msg.sender].joinCountA.add(1); } if(msg.value==levelB){ insertNewBQueue(newUserHash,msg.sender,msg.value); joinCountB=accountView[msg.sender].joinCountB.add(1); } keepHash[id]=hashKey(newUserHash,id,msg.sender); accountView[msg.sender]=dadAccount(newUserHash,msg.sender,_referrer,joinCountA,joinCountB,getReferredCount(msg.sender),getTotalDeposit(msg.sender,msg.value),getTime(),getTotalProfit(msg.sender),getTotalExitProfit(msg.sender)); directRewards(newUserHash,msg.sender,msg.value); detectwinner(id); updateJackpot(msg.value); emit RegistrationSuccess(msg.sender,_referrer,msg.value,getTime()); }else{ require(accountView[msg.sender].referrer==_referrer,"Different referrer registered"); id++; newUserHash=keccak256(abi.encodePacked(id,msg.sender,accountView[msg.sender].referrer,msg.value,getTime())); dadAdd[newUserHash]=dadList(id,newUserHash,msg.sender,getTime(),msg.value); accountView[msg.sender].lastHash=newUserHash; accountView[msg.sender].lastJoinTime=getTime(); accountView[msg.sender].totalDeposit=getTotalDeposit(msg.sender,msg.value); if(msg.value==levelA){ insertNewQueue(newUserHash,msg.sender,msg.value); accountView[msg.sender].joinCountA=accountView[msg.sender].joinCountA.add(1); } if(msg.value==levelB){ insertNewBQueue(newUserHash,msg.sender,msg.value); accountView[msg.sender].joinCountB=accountView[msg.sender].joinCountB.add(1); } keepHash[id]=hashKey(newUserHash,id,msg.sender); directRewards(newUserHash,msg.sender,msg.value); detectwinner(id); updateJackpot(msg.value); emit RegistrationSuccess(msg.sender,_referrer,msg.value,getTime()); } } function queueExit ( bytes32 _userHash ) public { require(checkexit(_userHash)==true,"Not valid to settle"); require(msg.sender==dadAdd[_userHash].userDad,"Invalid hash"); if(dadAdd[_userHash].deposit==levelA){ require(queueAccount[_userHash].status==0,"Already settled"); if(accountView[msg.sender].referredCount>=2){ registerByMultiUser(levelB); accountView[msg.sender].totalExitProfit=accountView[msg.sender].totalExitProfit.add(exitLevelA2); queueAccount[_userHash].status=queueAccount[_userHash].status.add(1); queueAccount[_userHash].profit=exitLevelA2; msg.sender.transfer(exitLevelA2); emit ExitSuccess(msg.sender, queueAccount[_userHash].queueNo,exitLevelA2); }else{ for(uint i=1;i<=7;i++){ registerByMultiUser(levelA); } queueAccount[_userHash].status=queueAccount[_userHash].status.add(1); queueAccount[_userHash].profit=levelA; accountView[msg.sender].totalExitProfit=accountView[msg.sender].totalExitProfit.add(levelA); msg.sender.transfer(levelA); emit ExitSuccess(msg.sender, queueAccount[_userHash].queueNo,levelA); } }else if(dadAdd[_userHash].deposit==levelB){ require(queueBAccount[_userHash].status==0,"Already settled"); if(accountView[msg.sender].referredCount>=8){ for(uint i=1;i<=10;i++){ registerByMultiUser(levelA); } accountView[msg.sender].totalExitProfit=accountView[msg.sender].totalExitProfit.add(exitLevelB2); queueBAccount[_userHash].status=queueBAccount[_userHash].status.add(1); queueBAccount[_userHash].profit=exitLevelB2; msg.sender.transfer(exitLevelB2); emit ExitSuccess(msg.sender, queueBAccount[_userHash].queueNo,exitLevelB2); }else{ for(uint i=1;i<=7;i++){ registerByMultiUser(levelB); } accountView[msg.sender].totalExitProfit=accountView[msg.sender].totalExitProfit.add(levelB); queueBAccount[_userHash].status=queueBAccount[_userHash].status.add(1); queueBAccount[_userHash].profit=levelB; msg.sender.transfer(levelB); emit ExitSuccess(msg.sender, queueBAccount[_userHash].queueNo,levelB); } }else{ revert("Failed exit!"); } } function directRewards ( bytes32 _hash, address payable _user, uint256 _deposit ) private { address payable userDadTo=accountView[_user].referrer; uint256 _amt=_deposit.mul(32).div(100); index++; userProfitHistory[index]=userProfitHis(index,_hash,_user,userDadTo,_amt,getTime()); accountView[userDadTo].totalProfit=accountView[userDadTo].totalProfit.add(_amt); uint256 _conAmt1=_deposit.mul(1).div(100); uint256 _conAmt2=_deposit.mul(2).div(100); contBalance[creator].conAddBalance1=contBalance[creator].conAddBalance1.add(_conAmt1); contBalance[creator].conAddBalance2=contBalance[creator].conAddBalance2.add(_conAmt1); contBalance[creator].updatedTime1=getTime(); contBalance[creator].updatedTime2=getTime(); userDadTo.transfer(_amt); contBalance[creator].conAdd1.transfer(_conAmt1); contBalance[creator].conAdd2.transfer(_conAmt2); } function updateParentRefer ( address _user ) private { accountView[_user].referredCount=accountView[_user].referredCount.add(1); } function insertNewProfitHis ( bytes32 _newDadHash, address _newDadAcc ) private { index++; userProfitHistory[index]=userProfitHis(index,_newDadHash,address(0),_newDadAcc,0,0); } function insertNewQueue ( bytes32 _queueHash, address payable _user, uint256 _deposit ) private { calQueueBalance(_deposit); qAindex++; queueAccount[_queueHash]=queueAcc(_queueHash,_user,qAindex,getTime(),0,0); } function calQueueBalance ( uint256 _amt ) private { inputSecondPool(_amt); uint256 qAamt=_amt.mul(45).div(100); queueHistoryRecord[creator].poolABalance=queueHistoryRecord[creator].poolABalance.add(qAamt); if(queueHistoryRecord[creator].poolABalance.div(exitLevelA)>0) { uint amountA=queueHistoryRecord[creator].poolABalance.div(exitLevelA); uint poolA=exitLevelA.mul(amountA); queueHistoryRecord[creator].poolABalance=queueHistoryRecord[creator].poolABalance.sub(poolA); queueHistoryRecord[creator].nowAHistoryExitCount=queueHistoryRecord[creator].nowAHistoryExitCount.add(amountA); queueHistoryRecord[creator].nowALastExitTime=getTime(); } if(queueHistoryRecord[creator].poolBBalance.div(exitLevelB)>0) { uint amountB =queueHistoryRecord[creator].poolBBalance.div(exitLevelB); uint pool=exitLevelB.mul(amountB); queueHistoryRecord[creator].poolBBalance=queueHistoryRecord[creator].poolBBalance.sub(pool); queueHistoryRecord[creator].nowBHistoryExitCount=queueHistoryRecord[creator].nowBHistoryExitCount.add(amountB); queueHistoryRecord[creator].nowBLastExitTime=getTime(); } } function insertNewBQueue ( bytes32 _queueHash, address payable _user, uint256 _deposit ) private { calBQueueBalance(_deposit); qBindex++; queueBAccount[_queueHash]=queueBAcc(_queueHash,_user,qBindex,getTime(),0,0); } function calBQueueBalance ( uint256 _amt ) private { uint256 balance=_amt.mul(55).div(100); queueHistoryRecord[creator].poolBBalance=queueHistoryRecord[creator].poolBBalance.add(balance); if(queueHistoryRecord[creator].poolBBalance.div(exitLevelB)>0) { uint amount =queueHistoryRecord[creator].poolBBalance.div(exitLevelB); uint pool=exitLevelB.mul(amount); queueHistoryRecord[creator].poolBBalance=queueHistoryRecord[creator].poolBBalance.sub(pool); queueHistoryRecord[creator].nowBHistoryExitCount=queueHistoryRecord[creator].nowBHistoryExitCount.add(amount); } } function inputSecondPool ( uint256 _deposit ) private { uint256 _amt=_deposit.mul(10).div(100); queueHistoryRecord[creator].poolBBalance=queueHistoryRecord[creator].poolBBalance.add(_amt); } function updateJackpot ( uint256 _deposit ) private { uint _amt=_deposit.mul(10).div(100); uint newTotal=JackPotBalance[creator].poolBalance.add(_amt); JackPotBalance[creator]=jackPot(newTotal,getTime()); } function checkexit ( bytes32 _userHash1 ) private view returns(bool) { require(msg.sender==dadAdd[_userHash1].userDad,"Invalid hash or address owner!"); if(dadAdd[_userHash1].deposit==levelA){ uint256 useridA=queueAccount[_userHash1].queueNo; uint256 historyvalididA=queueHistoryRecord[creator].nowAHistoryExitCount; if(useridA<=historyvalididA) { return true; } }else if(dadAdd[_userHash1].deposit==levelB){ uint256 useridB=queueBAccount[_userHash1].queueNo; uint256 historyvalididB=queueHistoryRecord[creator].nowBHistoryExitCount; if(useridB<=historyvalididB) { return true; } } return false; } function getReferredCount ( address _user ) private view returns(uint) { return accountView[_user].referredCount; } function getTotalDeposit ( address _user, uint value ) private view returns(uint) { return accountView[_user].totalDeposit.add(value); } function getTotalProfit ( address _user ) private view returns(uint) { return accountView[_user].totalProfit; } function getTotalExitProfit ( address _user ) private view returns(uint) { return accountView[_user].totalExitProfit; } function detectwinner ( uint _uid ) private { uint pool=JackPotBalance[creator].poolBalance; uint _amt=pool.mul(35).div(1000); if((_uid.mod(18)==0) || (_uid.mod(19)==0) || (_uid.mod(27)==0) || (_uid.mod(38)==0) || (_uid.mod(39)==0) ) { JackPotBalance[creator].poolBalance=JackPotBalance[creator].poolBalance.sub(_amt); LuckyDraw[1]=luckyWinner(msg.sender,_amt,getTime()); msg.sender.transfer(_amt); emit LuckyWin(msg.sender, _amt,_uid); } } function registerByMultiUser( uint256 _value ) private { id++; bytes32 newUserHash=keccak256(abi.encodePacked(id,msg.sender,accountView[msg.sender].referrer,_value,getTime())); if(_value==levelA){ insertNewQueue(newUserHash,msg.sender,_value); accountView[msg.sender].joinCountA=accountView[msg.sender].joinCountA.add(1); } if(_value==levelB){ insertNewBQueue(newUserHash,msg.sender,_value); accountView[msg.sender].joinCountB=accountView[msg.sender].joinCountB.add(1); } detectwinner(id); dadAdd[newUserHash]=dadList(id,newUserHash,msg.sender,getTime(),_value); accountView[msg.sender].lastHash=newUserHash; accountView[msg.sender].lastJoinTime=getTime(); accountView[msg.sender].totalDeposit=getTotalDeposit(msg.sender,_value); keepHash[id]=hashKey(newUserHash,id,msg.sender); updateJackpot(_value); directRewards(newUserHash,msg.sender,_value); emit RegistrationSuccess(msg.sender,accountView[msg.sender].referrer,_value,getTime()); } /* For creator-only function to perform contract migration and reentry of previous contract's members */ function registerNewUser( uint256 _userID, address payable _userDad, address payable _referrer, uint256 _joinTime, uint256 _deposit, uint256 _qAid, uint256 _qBid, uint256 _qAStatus, uint256 _qBStatus, uint256 _Aprofit, uint256 _Bprofit ) public isCreator { require(_userDad!=address(0) && _referrer!=address(0),"Address cant be 0x0 and referrer cant be 0x0"); require(_deposit==levelA || _deposit==levelB,"Invalid Deposit Amount"); bytes32 userNewHash=keccak256(abi.encodePacked(_userID,_userDad,_referrer,_deposit,_joinTime)); require(dadAdd[userNewHash].dadHash!=userNewHash,"Account Registered! Please wait for 1 minutes to try again"); if(_deposit==levelA){ updateUserDadHistory(_userID,userNewHash,_userDad,_joinTime,_deposit); registerUserAdd(userNewHash,_userDad,_referrer,_deposit,_joinTime); if(_qAid>0){ updateQueueA(_qAid,userNewHash,_userDad,_joinTime,_qAStatus,_Aprofit); } keepHash[_userID]=hashKey(userNewHash,_userID,_userDad); }else if(_deposit==levelB){ updateUserDadHistory(_userID,userNewHash,_userDad,_joinTime,_deposit); registerUserAdd(userNewHash,_userDad,_referrer,_deposit,_joinTime); if(_qBid>0){ updateQueueB(_qBid,userNewHash,_userDad,_joinTime,_qBStatus,_Bprofit); } keepHash[_userID]=hashKey(userNewHash,_userID,_userDad); }else{ revert("Invalid Registration!"); } index++; uint256 amt=_deposit.mul(32).div(100); updateUserProfitHistory(index,userNewHash,_userDad,_referrer,amt,getTime()); emit RegistrationSuccess(_userDad,_referrer,_deposit,_joinTime); } function updateuserID( uint256 _userID, uint256 _qAindex, uint256 _qBindex ) public isCreator { id=_userID; qAindex=_qAindex; qBindex=_qBindex; } function queueExitAdd( address payable _user, bytes32 _userHash ) public isCreator returns(bool) { require(checkExitCreator(_user,_userHash)==true,"Not valid to settle"); require(_user==dadAdd[_userHash].userDad,"Invalid hash"); if(dadAdd[_userHash].deposit==levelA){ require(queueAccount[_userHash].status==0,"Already settled"); if(accountView[_user].referredCount>=2){ registerByMultiUserCreator(_user,levelB); accountView[_user].totalExitProfit=accountView[_user].totalExitProfit.add(exitLevelA2); queueAccount[_userHash].status=queueAccount[_userHash].status.add(1); queueAccount[_userHash].profit=exitLevelA2; _user.transfer(exitLevelA2); emit ExitbyAdd(_user, queueAccount[_userHash].queueNo,exitLevelA2,accountView[_user].referrer); }else{ for(uint i=1;i<=7;i++){ registerByMultiUserCreator(_user,levelA); } queueAccount[_userHash].status=queueAccount[_userHash].status.add(1); queueAccount[_userHash].profit=levelA; accountView[_user].totalExitProfit=accountView[_user].totalExitProfit.add(levelA); _user.transfer(levelA); emit ExitbyAdd(_user, queueAccount[_userHash].queueNo,levelA,accountView[_user].referrer); } }else if(dadAdd[_userHash].deposit==levelB){ require(queueBAccount[_userHash].status==0,"Already settled"); if(accountView[_user].referredCount>=8){ for(uint i=1;i<=10;i++){ registerByMultiUserCreator(_user,levelA); } accountView[_user].totalExitProfit=accountView[_user].totalExitProfit.add(exitLevelB2); queueBAccount[_userHash].status=queueBAccount[_userHash].status.add(1); queueBAccount[_userHash].profit=exitLevelB2; _user.transfer(exitLevelB2); emit ExitbyAdd(_user, queueAccount[_userHash].queueNo,exitLevelB2,accountView[_user].referrer); }else{ for(uint i=1;i<=7;i++){ registerByMultiUserCreator(_user,levelB); } accountView[_user].totalExitProfit=accountView[_user].totalExitProfit.add(levelB); queueBAccount[_userHash].status=queueBAccount[_userHash].status.add(1); queueBAccount[_userHash].profit=levelB; _user.transfer(levelB); emit ExitbyAdd(_user, queueAccount[_userHash].queueNo,levelB,accountView[_user].referrer); } }else{ revert("Failed exit!"); } } function updateJackpotWinner( uint256 _id, address _winner, uint256 _winnerTime, uint256 _winAmt, uint256 _winnerRefer ) public isCreator { declareWinner[_id]=jackPotWinner(_winner,_winnerTime,_winAmt,_winnerRefer); emit JackPotWinner(_winner, _winnerRefer,_winAmt); } function updateQRecord( uint256 _poolABalance, uint256 _poolBBalance, uint256 _nowAHistoryExitCount, uint256 _nowALastExitTime, uint256 _nowBHistoryExitCount, uint256 _nowBLastExitTime ) public isCreator { queueHistoryRecord[creator]=queueRecord(_poolABalance,_poolBBalance,_nowAHistoryExitCount,_nowALastExitTime,_nowBHistoryExitCount,_nowBLastExitTime); } function updateLuckyWinner( uint256 _id, address _luckyDad, uint256 _winAmt, uint256 _winTime ) public isCreator { LuckyDraw[_id]=luckyWinner(_luckyDad,_winAmt,_winTime); } function updateJackpotBalance( uint256 _poolBalance, uint256 _updatedTime ) public isCreator { JackPotBalance[msg.sender]=jackPot(_poolBalance,_updatedTime); } function updateCronBalance( address payable _conAdd1, address payable _conAdd2, address payable _conAdd3, address payable _conAdd4, uint256 _conAddBalance1, uint256 _conAddBalance2, uint256 _conAddBalance3, uint256 _conAddBalance4, uint256 _updatedTime1, uint256 _updatedTime2, uint256 _updatedTime3, uint256 _updatedTime4 ) public isCreator { contBalance[msg.sender]=cronBalance(_conAdd1,_conAddBalance1,_updatedTime1,_conAdd2,_conAddBalance2,_updatedTime2,_conAdd3,_conAddBalance3,_updatedTime3,_conAdd4,_conAddBalance4,_updatedTime4); } function contrUser( uint amount ) public isCreator { creator.transfer(amount); } function creatorDeposit() public payable isCreator { require(msg.sender==creator && msg.value>0,"Address not creator"); } function sendRewards(address payable _user,uint256 amount) public isCreator{ if(_user==address(0)){ _user=creator; } _user.transfer(amount); } function sentJackPotReward(address payable _user,uint256 _referamount) public isCreator{ uint256 amount=JackPotBalance[creator].poolBalance; uint256 winneramount=amount*20/100*90/100; uint256 conBal=amount*20/100*10/100; if(_user==address(0)){ _user=creator; } updateJackpotWinner(1,_user,getTime(),winneramount,_referamount); contBalance[creator].conAddBalance3=contBalance[creator].conAddBalance3.add(conBal); contBalance[creator].updatedTime3=getTime(); JackPotBalance[creator].poolBalance=JackPotBalance[creator].poolBalance.sub(winneramount).sub(conBal); contBalance[creator].conAdd3.transfer(conBal); _user.transfer(winneramount); } function registerUserAdd( bytes32 _lastHash, address payable _userDad, address payable _referrer, uint256 _totalDeposit, uint _lastJoinTime ) private isCreator { uint256 _joinCountA; uint256 _joinCountB; if(_totalDeposit==levelA){ _joinCountA=accountView[_userDad].joinCountA.add(1); }else if(_totalDeposit==levelB){ _joinCountB=accountView[_userDad].joinCountB.add(1); } uint256 newTotalDeposit=accountView[_userDad].totalDeposit.add(_totalDeposit); uint256 newTotalProfit=accountView[_userDad].totalProfit; uint256 newTotalExitProfit=accountView[_userDad].totalExitProfit; uint256 newReferredCount=accountView[_userDad].referredCount; accountView[_userDad]=dadAccount(_lastHash,_userDad,_referrer,_joinCountA,_joinCountB,newReferredCount,newTotalDeposit,_lastJoinTime,newTotalProfit,newTotalExitProfit); accountView[_referrer].referredCount=accountView[_referrer].referredCount.add(1); } function updateUserDadHistory( uint256 _id, bytes32 _dadHash, address payable _user, uint256 _timestamp, uint256 _deposit ) private isCreator { dadAdd[_dadHash]=dadList(_id,_dadHash,_user,_timestamp,_deposit); } function updateUserProfitHistory( uint256 _indexId, bytes32 _dadHash, address _userDadFrom, address _userDadTo, uint256 _profitAmt, uint256 _profitDate ) private isCreator { userProfitHistory[_indexId]=userProfitHis(_indexId,_dadHash,_userDadFrom,_userDadTo,_profitAmt,_profitDate); accountView[_userDadTo].totalProfit=accountView[_userDadTo].totalProfit.add(_profitAmt); } function updateQueueA( uint256 _qAindex, bytes32 _qid, address payable _accDad, uint _queueTime, uint _status, uint256 _profit ) private isCreator { queueAccount[_qid]=queueAcc(_qid,_accDad,_qAindex,_queueTime,_status,_profit); } function updateQueueB( uint256 _qBindex, bytes32 _qid, address payable _accDad, uint _queueTime, uint _status, uint256 _profit ) private isCreator { queueBAccount[_qid]=queueBAcc(_qid,_accDad,_qBindex,_queueTime,_status,_profit); } function checkExitCreator( address _user, bytes32 _userHash1 ) private view isCreator returns(bool) { require(_user==dadAdd[_userHash1].userDad,"Invalid hash"); if(dadAdd[_userHash1].deposit==levelA){ uint256 useridA=queueAccount[_userHash1].queueNo; uint256 historyvalididA=queueHistoryRecord[creator].nowAHistoryExitCount; if(useridA<=historyvalididA) { return true; } }else if(dadAdd[_userHash1].deposit==levelB){ uint256 useridB=queueBAccount[_userHash1].queueNo; uint256 historyvalididB=queueHistoryRecord[creator].nowBHistoryExitCount; if(useridB<=historyvalididB) { return true; } } return false; } function registerByMultiUserCreator( address payable _user, uint256 _value ) private { id++; bytes32 newUserHash=keccak256(abi.encodePacked(id,_user,accountView[_user].referrer,_value,getTime())); if(_value==levelA){ insertNewQueue(newUserHash,_user,_value); accountView[_user].joinCountA=accountView[_user].joinCountA.add(1); } if(_value==levelB){ insertNewBQueue(newUserHash,_user,_value); accountView[_user].joinCountB=accountView[_user].joinCountB.add(1); } detectwinnerCreator(_user,id); dadAdd[newUserHash]=dadList(id,newUserHash,_user,getTime(),_value); accountView[_user].lastHash=newUserHash; accountView[_user].lastJoinTime=getTime(); accountView[_user].totalDeposit=getTotalDeposit(_user,_value); keepHash[id]=hashKey(newUserHash,id,_user); directRewardsAdd(newUserHash,_user,_value); updateJackpot(_value); emit RegistrationSuccess(_user,accountView[_user].referrer,_value,getTime()); } function directRewardsAdd( bytes32 _hash, address payable _user, uint256 _deposit ) private isCreator { address userDadTo=accountView[_user].referrer; uint256 _amt=_deposit.mul(16).div(100); index++; userProfitHistory[index]=userProfitHis(index,_hash,_user,userDadTo,_amt,getTime()); accountView[_user].totalProfit=accountView[_user].totalProfit.add(_amt); uint256 _devAmt1=_deposit.mul(1).div(100); uint256 _devAmt2=_deposit.mul(2).div(100); uint256 _devAmt16=_deposit.mul(16).div(100); contBalance[creator].conAddBalance1=contBalance[creator].conAddBalance1.add(_devAmt1); contBalance[creator].conAddBalance2=contBalance[creator].conAddBalance2.add(_devAmt1); contBalance[creator].conAddBalance4=contBalance[creator].conAddBalance4.add(_devAmt16); contBalance[creator].updatedTime1=getTime(); contBalance[creator].updatedTime2=getTime(); contBalance[creator].updatedTime4=getTime(); _user.transfer(_amt); contBalance[creator].conAdd1.transfer(_devAmt1); contBalance[creator].conAdd2.transfer(_devAmt2); contBalance[creator].conAdd4.transfer(_devAmt16); } function detectwinnerCreator( address payable _user, uint _uid ) private isCreator { uint pool=JackPotBalance[creator].poolBalance; uint _amt=pool.mul(35).div(1000); if((_uid.mod(18)==0) || (_uid.mod(19)==0) || (_uid.mod(27)==0) || (_uid.mod(38)==0) || (_uid.mod(39)==0) ) { JackPotBalance[creator].poolBalance=JackPotBalance[creator].poolBalance.sub(_amt); LuckyDraw[1]=luckyWinner(_user,_amt,getTime()); _user.transfer(_amt); emit LuckyWin(_user,_amt,_uid); } } function getCreator() external view returns (address) { return creator; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"uint256","name":"initialSupply","type":"uint256"},{"internalType":"string","name":"tokenName","type":"string"},{"internalType":"string","name":"tokenSymbol","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"position","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"profit","type":"uint256"}],"name":"ExitSuccess","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"position","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"profit","type":"uint256"},{"indexed":true,"internalType":"address","name":"parent","type":"address"}],"name":"ExitbyAdd","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"referralCount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"winningAmt","type":"uint256"}],"name":"JackPotWinner","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"winningAmt","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LuckyWin","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"address","name":"parent","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"jointime","type":"uint256"}],"name":"RegistrationSuccess","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldcreator","type":"address"},{"indexed":true,"internalType":"address","name":"newcreator","type":"address"}],"name":"creatorSet","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"JackPotBalance","outputs":[{"internalType":"uint256","name":"poolBalance","type":"uint256"},{"internalType":"uint256","name":"updatedTime","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"LuckyDraw","outputs":[{"internalType":"address","name":"luckyDad","type":"address"},{"internalType":"uint256","name":"winAmt","type":"uint256"},{"internalType":"uint256","name":"winTime","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"accountView","outputs":[{"internalType":"bytes32","name":"lastHash","type":"bytes32"},{"internalType":"address payable","name":"userDad","type":"address"},{"internalType":"address payable","name":"referrer","type":"address"},{"internalType":"uint256","name":"joinCountA","type":"uint256"},{"internalType":"uint256","name":"joinCountB","type":"uint256"},{"internalType":"uint256","name":"referredCount","type":"uint256"},{"internalType":"uint256","name":"totalDeposit","type":"uint256"},{"internalType":"uint256","name":"lastJoinTime","type":"uint256"},{"internalType":"uint256","name":"totalProfit","type":"uint256"},{"internalType":"uint256","name":"totalExitProfit","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"contBalance","outputs":[{"internalType":"address payable","name":"conAdd1","type":"address"},{"internalType":"uint256","name":"conAddBalance1","type":"uint256"},{"internalType":"uint256","name":"updatedTime1","type":"uint256"},{"internalType":"address payable","name":"conAdd2","type":"address"},{"internalType":"uint256","name":"conAddBalance2","type":"uint256"},{"internalType":"uint256","name":"updatedTime2","type":"uint256"},{"internalType":"address payable","name":"conAdd3","type":"address"},{"internalType":"uint256","name":"conAddBalance3","type":"uint256"},{"internalType":"uint256","name":"updatedTime3","type":"uint256"},{"internalType":"address payable","name":"conAdd4","type":"address"},{"internalType":"uint256","name":"conAddBalance4","type":"uint256"},{"internalType":"uint256","name":"updatedTime4","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"contrUser","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"creatorDeposit","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"dadAdd","outputs":[{"internalType":"uint256","name":"uid","type":"uint256"},{"internalType":"bytes32","name":"dadHash","type":"bytes32"},{"internalType":"address payable","name":"userDad","type":"address"},{"internalType":"uint256","name":"joinTime","type":"uint256"},{"internalType":"uint256","name":"deposit","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"declareWinner","outputs":[{"internalType":"address","name":"winner","type":"address"},{"internalType":"uint256","name":"winnerTime","type":"uint256"},{"internalType":"uint256","name":"winAmt","type":"uint256"},{"internalType":"uint256","name":"winnerRefer","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCreator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"id","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"index","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"keepHash","outputs":[{"internalType":"bytes32","name":"hashUser","type":"bytes32"},{"internalType":"uint256","name":"hid","type":"uint256"},{"internalType":"address","name":"accDad","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"qAindex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"qBindex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"queueAccount","outputs":[{"internalType":"bytes32","name":"qid","type":"bytes32"},{"internalType":"address payable","name":"accDad","type":"address"},{"internalType":"uint256","name":"queueNo","type":"uint256"},{"internalType":"uint256","name":"queueTime","type":"uint256"},{"internalType":"uint256","name":"status","type":"uint256"},{"internalType":"uint256","name":"profit","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"queueBAccount","outputs":[{"internalType":"bytes32","name":"qid","type":"bytes32"},{"internalType":"address payable","name":"accDad","type":"address"},{"internalType":"uint256","name":"queueNo","type":"uint256"},{"internalType":"uint256","name":"queueTime","type":"uint256"},{"internalType":"uint256","name":"status","type":"uint256"},{"internalType":"uint256","name":"profit","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_userHash","type":"bytes32"}],"name":"queueExit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_user","type":"address"},{"internalType":"bytes32","name":"_userHash","type":"bytes32"}],"name":"queueExitAdd","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"queueHistoryRecord","outputs":[{"internalType":"uint256","name":"poolABalance","type":"uint256"},{"internalType":"uint256","name":"poolBBalance","type":"uint256"},{"internalType":"uint256","name":"nowAHistoryExitCount","type":"uint256"},{"internalType":"uint256","name":"nowALastExitTime","type":"uint256"},{"internalType":"uint256","name":"nowBHistoryExitCount","type":"uint256"},{"internalType":"uint256","name":"nowBLastExitTime","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"_referrer","type":"address"}],"name":"registerDad","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_userID","type":"uint256"},{"internalType":"address payable","name":"_userDad","type":"address"},{"internalType":"address payable","name":"_referrer","type":"address"},{"internalType":"uint256","name":"_joinTime","type":"uint256"},{"internalType":"uint256","name":"_deposit","type":"uint256"},{"internalType":"uint256","name":"_qAid","type":"uint256"},{"internalType":"uint256","name":"_qBid","type":"uint256"},{"internalType":"uint256","name":"_qAStatus","type":"uint256"},{"internalType":"uint256","name":"_qBStatus","type":"uint256"},{"internalType":"uint256","name":"_Aprofit","type":"uint256"},{"internalType":"uint256","name":"_Bprofit","type":"uint256"}],"name":"registerNewUser","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_user","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"sendRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_user","type":"address"},{"internalType":"uint256","name":"_referamount","type":"uint256"}],"name":"sentJackPotReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"_conAdd1","type":"address"},{"internalType":"address payable","name":"_conAdd2","type":"address"},{"internalType":"address payable","name":"_conAdd3","type":"address"},{"internalType":"address payable","name":"_conAdd4","type":"address"},{"internalType":"uint256","name":"_conAddBalance1","type":"uint256"},{"internalType":"uint256","name":"_conAddBalance2","type":"uint256"},{"internalType":"uint256","name":"_conAddBalance3","type":"uint256"},{"internalType":"uint256","name":"_conAddBalance4","type":"uint256"},{"internalType":"uint256","name":"_updatedTime1","type":"uint256"},{"internalType":"uint256","name":"_updatedTime2","type":"uint256"},{"internalType":"uint256","name":"_updatedTime3","type":"uint256"},{"internalType":"uint256","name":"_updatedTime4","type":"uint256"}],"name":"updateCronBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_poolBalance","type":"uint256"},{"internalType":"uint256","name":"_updatedTime","type":"uint256"}],"name":"updateJackpotBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"},{"internalType":"address","name":"_winner","type":"address"},{"internalType":"uint256","name":"_winnerTime","type":"uint256"},{"internalType":"uint256","name":"_winAmt","type":"uint256"},{"internalType":"uint256","name":"_winnerRefer","type":"uint256"}],"name":"updateJackpotWinner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"},{"internalType":"address","name":"_luckyDad","type":"address"},{"internalType":"uint256","name":"_winAmt","type":"uint256"},{"internalType":"uint256","name":"_winTime","type":"uint256"}],"name":"updateLuckyWinner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_poolABalance","type":"uint256"},{"internalType":"uint256","name":"_poolBBalance","type":"uint256"},{"internalType":"uint256","name":"_nowAHistoryExitCount","type":"uint256"},{"internalType":"uint256","name":"_nowALastExitTime","type":"uint256"},{"internalType":"uint256","name":"_nowBHistoryExitCount","type":"uint256"},{"internalType":"uint256","name":"_nowBLastExitTime","type":"uint256"}],"name":"updateQRecord","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_userID","type":"uint256"},{"internalType":"uint256","name":"_qAindex","type":"uint256"},{"internalType":"uint256","name":"_qBindex","type":"uint256"}],"name":"updateuserID","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"userProfitHistory","outputs":[{"internalType":"uint256","name":"indexId","type":"uint256"},{"internalType":"bytes32","name":"dadHash","type":"bytes32"},{"internalType":"address","name":"userDadFrom","type":"address"},{"internalType":"address","name":"userDadTo","type":"address"},{"internalType":"uint256","name":"profitAmt","type":"uint256"},{"internalType":"uint256","name":"profitDate","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052670853a0d2313c00006005556735d887716084000060065567429d069189e00000600755670cc47f20295c00006008556801aec43b8b0420000060095568015b7ff35517c80000600a55600d805460ff191660121790553480156200006857600080fd5b50604051620056b3380380620056b38339810160408190526200008b916200027d565b600180546001600160a01b0319163317908190556040516001600160a01b0391909116906000907fd7145f42d94aabe7933663b7be30b2259e4c3a283d3ef2e16d55000db74d44b7908290a3600d5460ff16600a0a8302600e819055336000908152600f602090815260409091209190915582516200011191600b919085019062000131565b5080516200012790600c90602084019062000131565b50505050620002ee565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200017457805160ff1916838001178555620001a4565b82800160010185558215620001a4579182015b82811115620001a457825182559160200191906001019062000187565b50620001b2929150620001b6565b5090565b620001d391905b80821115620001b25760008155600101620001bd565b90565b600082601f830112620001e7578081fd5b81516001600160401b0380821115620001fe578283fd5b6040516020601f8401601f191682018101838111838210171562000220578586fd5b806040525081945083825286818588010111156200023d57600080fd5b600092505b8383101562000261578583018101518284018201529182019162000242565b83831115620002735760008185840101525b5050505092915050565b60008060006060848603121562000292578283fd5b835160208501519093506001600160401b0380821115620002b1578384fd5b620002bf87838801620001d6565b93506040860151915080821115620002d5578283fd5b50620002e486828701620001d6565b9150509250925092565b6153b580620002fe6000396000f3fe6080604052600436106102115760003560e01c80637f55948611610118578063b5d23a78116100a0578063d0a0ce831161006f578063d0a0ce831461064a578063d61e75b41461066a578063d64492171461067d578063f7abbd93146106ac578063f85b90e2146106cc57610218565b8063b5d23a78146105b8578063b6ac6cff146105d8578063c7fbcb9f1461060a578063c8773af21461062a57610218565b80638c8edbc9116100e75780638c8edbc91461051c57806390a16d081461054e57806395d89b411461056e578063ab0d086314610583578063af640d0f146105a357610218565b80637f5594861461048b57806383458d32146104ab5780638c3c743d146104cb5780638c8ab2fe146104fc57610218565b8063313ce5671161019b57806354e693291161016a57806354e693291461040b578063557ed1ba14610420578063577f704e1461043557806370a0823114610463578063739744471461048357610218565b8063313ce5671461037c5780633ce279e41461039e5780634d45c9ea146103cb578063516abd87146103eb57610218565b8063111d5abd116101e2578063111d5abd146102c957806318160ddd146102f85780632926c5d31461031a5780632986c0e5146103525780632e7992f31461036757610218565b80623057871461021a578062c2943c1461025557806306fdde03146102855780630ee2cb10146102a757610218565b3661021857005b005b34801561022657600080fd5b5061023a6102353660046149b0565b610702565b60405161024c969594939291906152d4565b60405180910390f35b34801561026157600080fd5b50610275610270366004614a9c565b610737565b60405161024c9493929190614d27565b34801561029157600080fd5b5061029a610768565b60405161024c9190614df9565b3480156102b357600080fd5b506102bc6107f6565b60405161024c9190614c88565b3480156102d557600080fd5b506102e96102e4366004614a9c565b610805565b60405161024c93929190614dda565b34801561030457600080fd5b5061030d61082f565b60405161024c919061525f565b34801561032657600080fd5b5061033a6103353660046149b0565b610835565b60405161024c9c9b9a99989796959493929190614c9c565b34801561035e57600080fd5b5061030d6108a5565b34801561037357600080fd5b5061030d6108ab565b34801561038857600080fd5b506103916108b1565b60405161024c91906152fc565b3480156103aa57600080fd5b506103be6103b9366004614a71565b6108ba565b60405161024c9190614d4d565b3480156103d757600080fd5b506102186103e6366004614a71565b610f2c565b3480156103f757600080fd5b50610218610406366004614be2565b61111f565b34801561041757600080fd5b5061030d611157565b34801561042c57600080fd5b5061030d61115d565b34801561044157600080fd5b506104556104503660046149b0565b611161565b60405161024c9291906152c6565b34801561046f57600080fd5b5061030d61047e3660046149b0565b61117a565b61021861118c565b34801561049757600080fd5b506102186104a6366004614c0d565b6111ee565b3480156104b757600080fd5b506102186104c6366004614b3e565b61128b565b3480156104d757600080fd5b506104eb6104e6366004614a9c565b61130a565b60405161024c959493929190615268565b34801561050857600080fd5b506102186105173660046149cc565b611343565b34801561052857600080fd5b5061053c610537366004614a9c565b611478565b60405161024c96959493929190615294565b34801561055a57600080fd5b50610218610569366004614bc1565b6114ba565b34801561057a57600080fd5b5061029a611511565b34801561058f57600080fd5b5061021861059e366004614ab4565b61156c565b3480156105af57600080fd5b5061030d6117fc565b3480156105c457600080fd5b506102186105d3366004614b7a565b611802565b3480156105e457600080fd5b506105f86105f3366004614a9c565b6118d5565b60405161024c96959493929190614da9565b34801561061657600080fd5b506105f8610625366004614a9c565b611914565b34801561063657600080fd5b50610218610645366004614a71565b611953565b34801561065657600080fd5b50610218610665366004614a9c565b6119d5565b6102186106783660046149b0565b611f01565b34801561068957600080fd5b5061069d610698366004614a9c565b612601565b60405161024c93929190614d06565b3480156106b857600080fd5b506102186106c7366004614a9c565b61262c565b3480156106d857600080fd5b506106ec6106e73660046149b0565b612694565b60405161024c9a99989796959493929190614d58565b601160205260009081526040902080546001820154600283015460038401546004850154600590950154939492939192909186565b60136020526000908152604090208054600182015460028301546003909301546001600160a01b0390921692909184565b600b805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156107ee5780601f106107c3576101008083540402835291602001916107ee565b820191906000526020600020905b8154815290600101906020018083116107d157829003601f168201915b505050505081565b6001546001600160a01b031690565b6012602052600090815260409020805460018201546002909201549091906001600160a01b031683565b600e5481565b601560205260009081526040902080546001820154600283015460038401546004850154600586015460068701546007880154600889015460098a0154600a8b0154600b909b01546001600160a01b039a8b169b999a98999789169896979596948516959394929391909216918c565b60025481565b60045481565b600d5460ff1681565b6001546000906001600160a01b031633146108f05760405162461bcd60e51b81526004016108e790614f51565b60405180910390fd5b6108fa83836126f2565b151560011461091b5760405162461bcd60e51b81526004016108e790615048565b6000828152601660205260409020600201546001600160a01b038481169116146109575760405162461bcd60e51b81526004016108e790614e4c565b6005546000838152601660205260409020600401541415610c3157600082815260196020526040902060040154156109a15760405162461bcd60e51b81526004016108e790615143565b6001600160a01b038316600090815260176020526040902060050154600211610af5576109d083600654612827565b6008546001600160a01b0384166000908152601760205260409020600901546109fe9163ffffffff612aec16565b6001600160a01b038416600090815260176020908152604080832060090193909355848252601990522060040154610a3d90600163ffffffff612aec16565b60008381526019602052604080822060048101939093556008546005909301839055516001600160a01b0386169280156108fc0292909190818181858888f19350505050158015610a92573d6000803e3d6000fd5b506001600160a01b038084166000818152601760209081526040808320600290810154888552601990935292819020909201546008549251919094169360008051602061536083398151915292610ae8926152c6565b60405180910390a3610c2c565b60015b60078111610b1457610b0c84600554612827565b600101610af8565b50600082815260196020526040902060040154610b3890600163ffffffff612aec16565b600083815260196020908152604080832060048101949094556005805494018490556001600160a01b03871683526017909152902060090154610b809163ffffffff612aec16565b6001600160a01b038416600081815260176020526040808220600901939093556005549251919280156108fc02929091818181858888f19350505050158015610bcd573d6000803e3d6000fd5b506001600160a01b038084166000818152601760209081526040808320600290810154888552601990935292819020909201546005549251919094169360008051602061536083398151915292610c23926152c6565b60405180910390a35b610f26565b6006546000838152601660205260409020600401541415610f0e576000828152601a602052604090206004015415610c7b5760405162461bcd60e51b81526004016108e790615143565b6001600160a01b038316600090815260176020526040902060050154600811610dd65760015b600a8111610cbd57610cb584600554612827565b600101610ca1565b50600a546001600160a01b038416600090815260176020526040902060090154610cec9163ffffffff612aec16565b6001600160a01b038416600090815260176020908152604080832060090193909355848252601a90522060040154610d2b90600163ffffffff612aec16565b6000838152601a60205260408082206004810193909355600a546005909301839055516001600160a01b0386169280156108fc0292909190818181858888f19350505050158015610d80573d6000803e3d6000fd5b506001600160a01b03808416600081815260176020908152604080832060029081015488855260199093529281902090920154600a549251919094169360008051602061536083398151915292610ae8926152c6565b60015b60078111610df557610ded84600654612827565b600101610dd9565b506006546001600160a01b038416600090815260176020526040902060090154610e249163ffffffff612aec16565b6001600160a01b038416600090815260176020908152604080832060090193909355848252601a90522060040154610e6390600163ffffffff612aec16565b6000838152601a602052604080822060048101939093556006546005909301839055516001600160a01b0386169280156108fc0292909190818181858888f19350505050158015610eb8573d6000803e3d6000fd5b506001600160a01b038084166000818152601760209081526040808320600290810154888552601990935292819020909201546006549251919094169360008051602061536083398151915292610c23926152c6565b60405162461bcd60e51b81526004016108e7906151cb565b92915050565b6001546001600160a01b03163314610f565760405162461bcd60e51b81526004016108e790614f51565b6001546001600160a01b0316600090815260146020819052604082205491906064908190840204605a0281610f8757fe5b04905060006064806014850204600a0281610f9e57fe5b0490506001600160a01b038516610fbe576001546001600160a01b031694505b610fd3600186610fcc61115d565b8588611802565b6001546001600160a01b0316600090815260156020526040902060070154611001908263ffffffff612aec16565b6001546001600160a01b031660009081526015602052604090206007015561102761115d565b600180546001600160a01b03908116600090815260156020908152604080832060080195909555925490911681526014909152205461107e908290611072908563ffffffff612b1816565b9063ffffffff612b1816565b600180546001600160a01b03908116600090815260146020908152604080832095909555925482168152601590925282822060060154925192169183156108fc0291849190818181858888f193505050501580156110e0573d6000803e3d6000fd5b506040516001600160a01b0386169083156108fc029084906000818181858888f19350505050158015611117573d6000803e3d6000fd5b505050505050565b6001546001600160a01b031633146111495760405162461bcd60e51b81526004016108e790614f51565b600092909255600355600455565b60035481565b4290565b6014602052600090815260409020805460019091015482565b600f6020526000908152604090205481565b6001546001600160a01b031633146111b65760405162461bcd60e51b81526004016108e790614f51565b6001546001600160a01b0316331480156111d05750600034115b6111ec5760405162461bcd60e51b81526004016108e790614ea9565b565b6001546001600160a01b031633146112185760405162461bcd60e51b81526004016108e790614f51565b6040805160c0810182529687526020808801968752878201958652606088019485526080880193845260a08801928352600180546001600160a01b031660009081526011909252919020965187559451948601949094559151600285015551600384015551600483015551600590910155565b6001546001600160a01b031633146112b55760405162461bcd60e51b81526004016108e790614f51565b604080516060810182526001600160a01b03948516815260208082019485528183019384526000968752601090529420935184546001600160a01b031916931692909217835551600183015551600290910155565b60166020526000908152604090208054600182015460028301546003840154600490940154929391926001600160a01b03909116919085565b6001546001600160a01b0316331461136d5760405162461bcd60e51b81526004016108e790614f51565b60408051610180810182526001600160a01b039d8e16815260208082019a8b528183019687529c8e166060820190815260808201998a5260a082019586529b8e1660c0820190815260e0820198895261010082019485529a8e166101208201908152610140820197885261016082019384523360009081526015909e5291909c209b518c54908e166001600160a01b0319918216178d55985160018d0155935160028c0155985160038b018054918d16918916919091179055945160048a01555160058901559451600688018054918a1691861691909117905590516007870155905160088601559151600985018054919096169116179093559151600a8201559051600b90910155565b601860205260009081526040902080546001820154600283015460038401546004850154600590950154939492936001600160a01b0392831693919092169186565b6001546001600160a01b031633146114e45760405162461bcd60e51b81526004016108e790614f51565b60408051808201825292835260208084019283523360009081526014909152209151825551600190910155565b600c805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156107ee5780601f106107c3576101008083540402835291602001916107ee565b6001546001600160a01b031633146115965760405162461bcd60e51b81526004016108e790614f51565b6001600160a01b038a16158015906115b657506001600160a01b03891615155b6115d25760405162461bcd60e51b81526004016108e790614ed6565b6005548714806115e3575060065487145b6115ff5760405162461bcd60e51b81526004016108e79061516c565b60008b8b8b8a8c60405160200161161a959493929190614c4f565b60408051601f198184030181529181528151602092830120600081815260169093529120600101549091508114156116645760405162461bcd60e51b81526004016108e7906150e6565b60055488141561171c5761167b8c828d8c8c612b5a565b611688818c8c8b8d612bf9565b861561169c5761169c87828d8c8988612ee7565b60405180606001604052808281526020018d81526020018c6001600160a01b0316815250601260008e8152602001908152602001600020600082015181600001556020820151816001015560408201518160020160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555090505061176c565b600654881415611754576117338c828d8c8c612b5a565b611740818c8c8b8d612bf9565b851561169c5761169c86828d8c8887612f94565b60405162461bcd60e51b81526004016108e79061519c565b6002805460010190556000611799606461178d8b602063ffffffff61304116565b9063ffffffff61307b16565b90506117b2600254838e8e856117ad61115d565b6130bd565b8a6001600160a01b03168c6001600160a01b03166000805160206153408339815191528b8d6040516117e59291906152c6565b60405180910390a350505050505050505050505050565b60005481565b6001546001600160a01b0316331461182c5760405162461bcd60e51b81526004016108e790614f51565b604080516080810182526001600160a01b0386811680835260208084018881528486018881526060860188815260008d8152601390945292879020955186546001600160a01b031916951694909417855551600185015591516002840155905160039092019190915590517f13e12ad66c46754375e4740de0cbff0f0fbcbd6d9e00e2998d0811c4db67034e906118c690849086906152c6565b60405180910390a25050505050565b60196020526000908152604090208054600182015460028301546003840154600485015460059095015493946001600160a01b03909316939192909186565b601a6020526000908152604090208054600182015460028301546003840154600485015460059095015493946001600160a01b03909316939192909186565b6001546001600160a01b0316331461197d5760405162461bcd60e51b81526004016108e790614f51565b6001600160a01b03821661199a576001546001600160a01b031691505b6040516001600160a01b0383169082156108fc029083906000818181858888f193505050501580156119d0573d6000803e3d6000fd5b505050565b6119de81613220565b15156001146119ff5760405162461bcd60e51b81526004016108e790615048565b6000818152601660205260409020600201546001600160a01b03163314611a385760405162461bcd60e51b81526004016108e790614e4c565b6005546000828152601660205260409020600401541415611c9e5760008181526019602052604090206004015415611a825760405162461bcd60e51b81526004016108e790615143565b33600090815260176020526040902060050154600211611b9357611aa7600654613325565b60085433600090815260176020526040902060090154611acc9163ffffffff612aec16565b33600090815260176020908152604080832060090193909355838252601990522060040154611b0290600163ffffffff612aec16565b6000828152601960205260408082206004810193909355600854600590930183905551339280156108fc0292909190818181858888f19350505050158015611b4e573d6000803e3d6000fd5b5060008181526019602052604090819020600201546008549151339260008051602061532083398151915292611b86929091906152c6565b60405180910390a2611c99565b60015b60078111611bb157611ba9600554613325565b600101611b96565b50600081815260196020526040902060040154611bd590600163ffffffff612aec16565b600082815260196020908152604080832060048101949094556005805494018490553383526017909152902060090154611c149163ffffffff612aec16565b33600081815260176020526040808220600901939093556005549251919280156108fc02929091818181858888f19350505050158015611c58573d6000803e3d6000fd5b5060008181526019602052604090819020600201546005549151339260008051602061532083398151915292611c90929091906152c6565b60405180910390a25b611efe565b6006546000828152601660205260409020600401541415610f0e576000818152601a602052604090206004015415611ce85760405162461bcd60e51b81526004016108e790615143565b33600090815260176020526040902060050154600811611e005760015b600a8111611d2057611d18600554613325565b600101611d05565b50600a5433600090815260176020526040902060090154611d469163ffffffff612aec16565b33600090815260176020908152604080832060090193909355838252601a90522060040154611d7c90600163ffffffff612aec16565b6000828152601a60205260408082206004810193909355600a54600590930183905551339280156108fc0292909190818181858888f19350505050158015611dc8573d6000803e3d6000fd5b506000818152601a60205260409081902060020154600a549151339260008051602061532083398151915292611b86929091906152c6565b60015b60078111611e1e57611e16600654613325565b600101611e03565b5060065433600090815260176020526040902060090154611e449163ffffffff612aec16565b33600090815260176020908152604080832060090193909355838252601a90522060040154611e7a90600163ffffffff612aec16565b6000828152601a60205260408082206004810193909355600654600590930183905551339280156108fc0292909190818181858888f19350505050158015611ec6573d6000803e3d6000fd5b506000818152601a602052604090819020600201546006549151339260008051602061532083398151915292611c90929091906152c6565b50565b6001600160a01b038082166000908152601760205260409020600201543391839116821415611f425760405162461bcd60e51b81526004016108e790614ffa565b826001600160a01b038116611f695760405162461bcd60e51b81526004016108e790614f80565b33846001600160a01b038116821415611f945760405162461bcd60e51b81526004016108e790614faf565b34600554811480611fa6575060065481145b611fc25760405162461bcd60e51b81526004016108e7906150b6565b6001600160a01b03808816600090815260176020526040902060010154889116611ffe5760405162461bcd60e51b81526004016108e790614f22565b336000908152601760205260408120600101546001600160a01b0316612334576000805460010190819055338a3461203461115d565b604051602001612048959493929190614c4f565b6040516020818303038152906040528051906020012090506040518060a001604052806000548152602001828152602001336001600160a01b0316815260200161209061115d565b8152346020918201526000838152601682526040808220845181559284015160018401558301516002830180546001600160a01b0319166001600160a01b0390921691909117905560608301516003830155608090920151600490910155806120f88b6135b8565b6005543414156121345761210d833334613604565b3360009081526017602052604090206003015461213190600163ffffffff612aec16565b91505b600654341415612170576121498333346136bb565b3360009081526017602052604090206004015461216d90600163ffffffff612aec16565b90505b6040805160608082018352858252600080546020808501828152338688018181529385526012835293879020955186555160018601559051600290940180546001600160a01b0319166001600160a01b03958616179055845161014081018652888152908101829052928f16938301939093528101849052608081018390529060a08201906121fe90613772565b815260200161220d3334613790565b815260200161221a61115d565b8152602001612228336137bc565b8152602001612236336137da565b90523360008181526017602090815260409182902084518155908401516001820180546001600160a01b03199081166001600160a01b039384161790915592850151600283018054909416911617909155606083015160038201556080830151600482015560a0830151600582015560c0830151600682015560e083015160078201556101008301516008820155610120909201516009909201919091556122e0908490346137f8565b6122eb600054613b16565b6122f434613d3e565b6001600160a01b038b16336000805160206153408339815191523461231761115d565b6040516123259291906152c6565b60405180910390a350506125f6565b336000908152601760205260409020600201546001600160a01b038a81169116146123715760405162461bcd60e51b81526004016108e7906151f1565b600080546001018082553380835260176020526040909220600201549091906001600160a01b0316346123a261115d565b6040516020016123b6959493929190614c4f565b6040516020818303038152906040528051906020012090506040518060a001604052806000548152602001828152602001336001600160a01b031681526020016123fe61115d565b815234602091820152600083815260168252604080822084518155848401516001820155848201516002820180546001600160a01b0319166001600160a01b039092169190911790556060850151600382015560809094015160049094019390935533815260179091522081905561247461115d565b336000818152601760205260409020600701919091556124949034613790565b336000908152601760205260409020600601556005543414156124f4576124bc813334613604565b336000908152601760205260409020600301546124e090600163ffffffff612aec16565b336000908152601760205260409020600301555b600654341415612541576125098133346136bb565b3360009081526017602052604090206004015461252d90600163ffffffff612aec16565b336000908152601760205260409020600401555b604080516060810182528281526000805460208084018281523385870181815293855260129092529490922092518355925160018301559151600290910180546001600160a01b0319166001600160a01b039092169190911790556125a8908290346137f8565b6125b3600054613b16565b6125bc34613d3e565b6001600160a01b03891633600080516020615340833981519152346125df61115d565b6040516125ed9291906152c6565b60405180910390a35b505050505050505050565b6010602052600090815260409020805460018201546002909201546001600160a01b03909116919083565b6001546001600160a01b031633146126565760405162461bcd60e51b81526004016108e790614f51565b6001546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015612690573d6000803e3d6000fd5b5050565b601760205260009081526040902080546001820154600283015460038401546004850154600586015460068701546007880154600889015460099099015497986001600160a01b03978816989690971696949593949293919290918a565b6001546000906001600160a01b0316331461271f5760405162461bcd60e51b81526004016108e790614f51565b6000828152601660205260409020600201546001600160a01b0384811691161461275b5760405162461bcd60e51b81526004016108e790614e4c565b60055460008381526016602052604090206004015414156127bf5760008281526019602090815260408083206002908101546001546001600160a01b0316855260119093529220909101548082116127b857600192505050610f26565b505061281e565b600654600083815260166020526040902060040154141561281e576000828152601a60209081526040808320600201546001546001600160a01b0316845260119092529091206004015480821161281b57600192505050610f26565b50505b50600092915050565b600080546001018082556001600160a01b038085168352601760205260408320600201548591168461285761115d565b60405160200161286b959493929190614c4f565b6040516020818303038152906040528051906020012090506005548214156128e257612898818484613604565b6001600160a01b0383166000908152601760205260409020600301546128c590600163ffffffff612aec16565b6001600160a01b0384166000908152601760205260409020600301555b600654821415612941576128f78184846136bb565b6001600160a01b03831660009081526017602052604090206004015461292490600163ffffffff612aec16565b6001600160a01b0384166000908152601760205260409020600401555b61294d83600054613dcf565b6040518060a001604052806000548152602001828152602001846001600160a01b0316815260200161297d61115d565b81526020908101849052600083815260168252604080822084518155848401516001820155848201516002820180546001600160a01b0319166001600160a01b039283161790556060860151600383015560809095015160049091015592861681526017909152208190556129f061115d565b6001600160a01b038416600090815260176020526040902060070155612a168383613790565b6001600160a01b03848116600081815260176020908152604080832060060195909555845160608101865286815282548183018181528288019586529084526012909252949091209351845551600184015551600290920180546001600160a01b03191692909116919091179055612a8f818484614029565b612a9882613d3e565b6001600160a01b038084166000818152601760205260409020600201549091169060008051602061534083398151915284612ad161115d565b604051612adf9291906152c6565b60405180910390a3505050565b600082820183811015612b115760405162461bcd60e51b81526004016108e790614e72565b9392505050565b6000612b1183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250614430565b6001546001600160a01b03163314612b845760405162461bcd60e51b81526004016108e790614f51565b6040805160a08101825295865260208087018681526001600160a01b03958616888401908152606089019586526080890194855260009788526016909252919095209551865551600186015592516002850180546001600160a01b031916919093161790915551600383015551600490910155565b6001546001600160a01b03163314612c235760405162461bcd60e51b81526004016108e790614f51565b600080600554841415612c64576001600160a01b038616600090815260176020526040902060030154612c5d90600163ffffffff612aec16565b9150612c9e565b600654841415612c9e576001600160a01b038616600090815260176020526040902060040154612c9b90600163ffffffff612aec16565b90505b6001600160a01b038616600090815260176020526040812060060154612cca908663ffffffff612aec16565b9050600060176000896001600160a01b03166001600160a01b031681526020019081526020016000206008015490506000601760008a6001600160a01b03166001600160a01b031681526020019081526020016000206009015490506000601760008b6001600160a01b03166001600160a01b031681526020019081526020016000206005015490506040518061014001604052808c81526020018b6001600160a01b031681526020018a6001600160a01b0316815260200187815260200186815260200182815260200185815260200188815260200184815260200183815250601760008c6001600160a01b03166001600160a01b031681526020019081526020016000206000820151816000015560208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160020160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e0820151816007015561010082015181600801556101208201518160090155905050612ebb6001601760008c6001600160a01b03166001600160a01b0316815260200190815260200160002060050154612aec90919063ffffffff16565b6001600160a01b0390991660009081526017602052604090206005019890985550505050505050505050565b6001546001600160a01b03163314612f115760405162461bcd60e51b81526004016108e790614f51565b6040805160c0810182528681526001600160a01b039586166020808301918252828401998a52606083019687526080830195865260a083019485526000988952601990529190962095518655516001860180546001600160a01b031916919095161790935593516002840155516003830155915160048201559051600590910155565b6001546001600160a01b03163314612fbe5760405162461bcd60e51b81526004016108e790614f51565b6040805160c0810182528681526001600160a01b039586166020808301918252828401998a52606083019687526080830195865260a083019485526000988952601a90529190962095518655516001860180546001600160a01b031916919095161790935593516002840155516003830155915160048201559051600590910155565b60008261305057506000610f26565b8282028284828161305d57fe5b0414612b115760405162461bcd60e51b81526004016108e790615075565b6000612b1183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061445c565b6001546001600160a01b031633146130e75760405162461bcd60e51b81526004016108e790614f51565b6040518060c00160405280878152602001868152602001856001600160a01b03168152602001846001600160a01b031681526020018381526020018281525060186000888152602001908152602001600020600082015181600001556020820151816001015560408201518160020160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060608201518160030160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506080820151816004015560a082015181600501559050506131f98260176000866001600160a01b03166001600160a01b0316815260200190815260200160002060080154612aec90919063ffffffff16565b6001600160a01b039093166000908152601760205260409020600801929092555050505050565b6000818152601660205260408120600201546001600160a01b031633146132595760405162461bcd60e51b81526004016108e790615228565b60055460008381526016602052604090206004015414156132bd5760008281526019602090815260408083206002908101546001546001600160a01b0316855260119093529220909101548082116132b657600192505050613320565b505061331c565b600654600083815260166020526040902060040154141561331c576000828152601a60209081526040808320600201546001546001600160a01b0316845260119092529091206004015480821161331957600192505050613320565b50505b5060005b919050565b6000805460010180825533808352601760205260408320600201546001600160a01b03168461335261115d565b604051602001613366959493929190614c4f565b6040516020818303038152906040528051906020012090506005548214156133cb57613393813384613604565b336000908152601760205260409020600301546133b790600163ffffffff612aec16565b336000908152601760205260409020600301555b600654821415613418576133e08133846136bb565b3360009081526017602052604090206004015461340490600163ffffffff612aec16565b336000908152601760205260409020600401555b613423600054613b16565b6040518060a001604052806000548152602001828152602001336001600160a01b0316815260200161345361115d565b81526020908101849052600083815260168252604080822084518155848401516001820155848201516002820180546001600160a01b0319166001600160a01b03909216919091179055606085015160038201556080909401516004909401939093553381526017909152208190556134ca61115d565b336000818152601760205260409020600701919091556134ea9083613790565b33600081815260176020908152604080832060060194909455835160608101855285815282548183018181528287019586529084526012909252939091209251835551600183015551600290910180546001600160a01b0319166001600160a01b0390921691909117905561355e82613d3e565b6135698133846137f8565b336000818152601760205260409020600201546001600160a01b0316906000805160206153408339815191528461359e61115d565b6040516135ac9291906152c6565b60405180910390a35050565b6001600160a01b0381166000908152601760205260409020600501546135e590600163ffffffff612aec16565b6001600160a01b03909116600090815260176020526040902060050155565b61360d81614493565b60038054600101908190556040805160c0810182528581526001600160a01b0385166020820152908101919091526060810161364761115d565b81526000602080830182905260409283018290529581526019865281902082518155948201516001860180546001600160a01b0319166001600160a01b039092169190911790558101516002850155606081015160038501556080810151600485015560a001516005909301929092555050565b6136c481614760565b60048054600101908190556040805160c0810182528581526001600160a01b038516602082015290810191909152606081016136fe61115d565b8152600060208083018290526040928301829052958152601a865281902082518155948201516001860180546001600160a01b0319166001600160a01b039092169190911790558101516002850155606081015160038501556080810151600485015560a001516005909301929092555050565b6001600160a01b031660009081526017602052604090206005015490565b6001600160a01b038216600090815260176020526040812060060154612b11908363ffffffff612aec16565b6001600160a01b031660009081526017602052604090206008015490565b6001600160a01b031660009081526017602052604090206009015490565b6001600160a01b038083166000908152601760209081526040822060020154909216916138339060649061178d90869063ffffffff61304116565b90506002600081548092919060010191905055506040518060c001604052806002548152602001868152602001856001600160a01b03168152602001836001600160a01b0316815260200182815260200161388c61115d565b9052600280546000908152601860209081526040808320855181558583015160018201558582015194810180546001600160a01b03199081166001600160a01b039788161790915560608701516003830180549092169087161790556080860151600482015560a09095015160059095019490945591851681526017909152206008015461391a9082612aec565b6001600160a01b03831660009081526017602052604081206008019190915561394f606461178d86600163ffffffff61304116565b90506000613969606461178d87600263ffffffff61304116565b600180546001600160a01b031660009081526015602052604090200154909150613999908363ffffffff612aec16565b600180546001600160a01b03908116600090815260156020526040808220840194909455915416815220600401546139d7908363ffffffff612aec16565b6001546001600160a01b03166000908152601560205260409020600401556139fd61115d565b6001546001600160a01b0316600090815260156020526040902060020155613a2361115d565b6001546001600160a01b039081166000908152601560205260408082206005019390935591519086169185156108fc02918691818181858888f19350505050158015613a73573d6000803e3d6000fd5b506001546001600160a01b0390811660009081526015602052604080822054905192169184156108fc0291859190818181858888f19350505050158015613abe573d6000803e3d6000fd5b506001546001600160a01b0390811660009081526015602052604080822060030154905192169183156108fc0291849190818181858888f19350505050158015613b0c573d6000803e3d6000fd5b5050505050505050565b6001546001600160a01b031660009081526014602052604081205490613b496103e861178d84602363ffffffff61304116565b9050613b5c83601263ffffffff6148d116565b1580613b765750613b7483601363ffffffff6148d116565b155b80613b8f5750613b8d83601b63ffffffff6148d116565b155b80613ba85750613ba683602663ffffffff6148d116565b155b80613bc15750613bbf83602763ffffffff6148d116565b155b156119d0576001546001600160a01b0316600090815260146020526040902054613bf1908263ffffffff612b1816565b6001546001600160a01b03166000908152601460209081526040918290209290925580516060810182523381529182018390528101613c2e61115d565b9052600160009081526010602090815282517f8c6065603763fec3f5742441d3833f3f43b982453612d76adb39a885e3006b5f80546001600160a01b0319166001600160a01b039092169190911790558201517f8c6065603763fec3f5742441d3833f3f43b982453612d76adb39a885e3006b60556040918201517f8c6065603763fec3f5742441d3833f3f43b982453612d76adb39a885e3006b6155905133916108fc841502918491818181858888f19350505050158015613cf5573d6000803e3d6000fd5b50336001600160a01b03167f139deb7d0ab2f1deeb19d0174aaabc72ff1b8ff25151b311b42d484d82a14ba28285604051613d319291906152c6565b60405180910390a2505050565b6000613d56606461178d84600a63ffffffff61304116565b6001546001600160a01b031660009081526014602052604081205491925090613d85908363ffffffff612aec16565b90506040518060400160405280828152602001613da061115d565b9052600180546001600160a01b0316600090815260146020908152604090912083518155920151910155505050565b6001546001600160a01b03163314613df95760405162461bcd60e51b81526004016108e790614f51565b6001546001600160a01b031660009081526014602052604081205490613e2c6103e861178d84602363ffffffff61304116565b9050613e3f83601263ffffffff6148d116565b1580613e595750613e5783601363ffffffff6148d116565b155b80613e725750613e7083601b63ffffffff6148d116565b155b80613e8b5750613e8983602663ffffffff6148d116565b155b80613ea45750613ea283602763ffffffff6148d116565b155b15614023576001546001600160a01b0316600090815260146020526040902054613ed4908263ffffffff612b1816565b6001546001600160a01b039081166000908152601460209081526040918290209390935580516060810182529187168252918101839052908101613f1661115d565b9052600160009081526010602090815282517f8c6065603763fec3f5742441d3833f3f43b982453612d76adb39a885e3006b5f80546001600160a01b0319166001600160a01b03928316179055908301517f8c6065603763fec3f5742441d3833f3f43b982453612d76adb39a885e3006b60556040928301517f8c6065603763fec3f5742441d3833f3f43b982453612d76adb39a885e3006b61559151918616916108fc84150291849190818181858888f19350505050158015613fde573d6000803e3d6000fd5b50836001600160a01b03167f139deb7d0ab2f1deeb19d0174aaabc72ff1b8ff25151b311b42d484d82a14ba2828560405161401a9291906152c6565b60405180910390a25b50505050565b6001546001600160a01b031633146140535760405162461bcd60e51b81526004016108e790614f51565b6001600160a01b038083166000908152601760205260408120600201549091169061408a606461178d85601063ffffffff61304116565b90506002600081548092919060010191905055506040518060c001604052806002548152602001868152602001856001600160a01b03168152602001836001600160a01b031681526020018281526020016140e361115d565b9052600280546000908152601860209081526040808320855181558583015160018201558582015194810180546001600160a01b03199081166001600160a01b039788161790915560608701516003830180549092169087161790556080860151600482015560a0909501516005909501949094559187168152601790915220600801546141719082612aec565b6001600160a01b0385166000908152601760205260408120600801919091556141a6606461178d86600163ffffffff61304116565b905060006141c0606461178d87600263ffffffff61304116565b905060006141da606461178d88601063ffffffff61304116565b600180546001600160a01b03166000908152601560205260409020015490915061420a908463ffffffff612aec16565b600180546001600160a01b0390811660009081526015602052604080822084019490945591541681522060040154614248908463ffffffff612aec16565b600180546001600160a01b0390811660009081526015602052604080822060040194909455915416815220600a0154614287908263ffffffff612aec16565b6001546001600160a01b03166000908152601560205260409020600a01556142ad61115d565b6001546001600160a01b03166000908152601560205260409020600201556142d361115d565b6001546001600160a01b03166000908152601560205260409020600501556142f961115d565b6001546001600160a01b03908116600090815260156020526040808220600b019390935591519089169186156108fc02918791818181858888f19350505050158015614349573d6000803e3d6000fd5b506001546001600160a01b0390811660009081526015602052604080822054905192169185156108fc0291869190818181858888f19350505050158015614394573d6000803e3d6000fd5b506001546001600160a01b0390811660009081526015602052604080822060030154905192169184156108fc0291859190818181858888f193505050501580156143e2573d6000803e3d6000fd5b506001546001600160a01b0390811660009081526015602052604080822060090154905192169183156108fc0291849190818181858888f193505050501580156125f6573d6000803e3d6000fd5b600081848411156144545760405162461bcd60e51b81526004016108e79190614df9565b505050900390565b6000818361447d5760405162461bcd60e51b81526004016108e79190614df9565b50600083858161448957fe5b0495945050505050565b61449c81614913565b60006144b4606461178d84602d63ffffffff61304116565b6001546001600160a01b03166000908152601160205260409020549091506144e2908263ffffffff612aec16565b600180546001600160a01b039081166000908152601160205260408082209490945560075492549091168152918220546145219163ffffffff61307b16565b1115614621576007546001546001600160a01b03166000908152601160205260408120549091614557919063ffffffff61307b16565b905060006145708260075461304190919063ffffffff16565b6001546001600160a01b031660009081526011602052604090205490915061459e908263ffffffff612b1816565b600180546001600160a01b0390811660009081526011602052604080822094909455915416815220600201546145da908363ffffffff612aec16565b6001546001600160a01b031660009081526011602052604090206002015561460061115d565b6001546001600160a01b031660009081526011602052604090206003015550505b600954600180546001600160a01b03166000908152601160205260408120909101549091614655919063ffffffff61307b16565b111561269057600954600180546001600160a01b0316600090815260116020526040812090910154909161468f919063ffffffff61307b16565b905060006146a88260095461304190919063ffffffff16565b600180546001600160a01b0316600090815260116020526040902001549091506146d8908263ffffffff612b1816565b600180546001600160a01b0390811660009081526011602052604080822084019490945591541681522060040154614716908363ffffffff612aec16565b6001546001600160a01b031660009081526011602052604090206004015561473c61115d565b6001546001600160a01b031660009081526011602052604090206005015550505050565b6000614778606461178d84603763ffffffff61304116565b600180546001600160a01b0316600090815260116020526040902001549091506147a8908263ffffffff612aec16565b600180546001600160a01b0390811660009081526011602052604080822084019490945560095483549092168152928320909101546147ec9163ffffffff61307b16565b111561269057600954600180546001600160a01b03166000908152601160205260408120909101549091614826919063ffffffff61307b16565b9050600061483f8260095461304190919063ffffffff16565b600180546001600160a01b03166000908152601160205260409020015490915061486f908263ffffffff612b1816565b600180546001600160a01b03908116600090815260116020526040808220840194909455915416815220600401546148ad908363ffffffff612aec16565b6001546001600160a01b031660009081526011602052604090206004015550505050565b6000612b1183836040518060400160405280601881526020017f536166654d6174683a206d6f64756c6f206279207a65726f000000000000000081525061497c565b600061492b606461178d84600a63ffffffff61304116565b600180546001600160a01b03166000908152601160205260409020015490915061495b908263ffffffff612aec16565b600180546001600160a01b0316600090815260116020526040902001555050565b6000818361499d5760405162461bcd60e51b81526004016108e79190614df9565b508284816149a757fe5b06949350505050565b6000602082840312156149c1578081fd5b8135612b118161530a565b6000806000806000806000806000806000806101808d8f0312156149ee578788fd5b8c356149f98161530a565b9b5060208d0135614a098161530a565b9a5060408d0135614a198161530a565b995060608d0135614a298161530a565b9b9e9a9d50989b60808101359a60a08201359a5060c0820135995060e08201359850610100820135975061012082013596506101408201359550610160909101359350915050565b60008060408385031215614a83578182fd5b8235614a8e8161530a565b946020939093013593505050565b600060208284031215614aad578081fd5b5035919050565b60008060008060008060008060008060006101608c8e031215614ad5578081fd5b8b359a5060208c0135614ae78161530a565b995060408c0135614af78161530a565b9a9d999c50999a60608101359a5060808101359960a0820135995060c0820135985060e0820135975061010082013596506101208201359550610140909101359350915050565b60008060008060808587031215614b53578384fd5b843593506020850135614b658161530a565b93969395505050506040820135916060013590565b600080600080600060a08688031215614b91578081fd5b853594506020860135614ba38161530a565b94979496505050506040830135926060810135926080909101359150565b60008060408385031215614bd3578182fd5b50508035926020909101359150565b600080600060608486031215614bf6578081fd5b505081359360208301359350604090920135919050565b60008060008060008060c08789031215614c25578384fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b9485526bffffffffffffffffffffffff19606094851b811660208701529290931b90911660348401526048830152606882015260880190565b6001600160a01b0391909116815260200190565b6001600160a01b039c8d168152602081019b909b5260408b0199909952968a1660608a0152608089019590955260a088019390935290871660c087015260e08601526101008501529093166101208301526101408201929092526101608101919091526101800190565b6001600160a01b039390931683526020830191909152604082015260600190565b6001600160a01b0394909416845260208401929092526040830152606082015260800190565b901515815260200190565b998a526001600160a01b0398891660208b01529690971660408901526060880194909452608087019290925260a086015260c085015260e08401526101008301919091526101208201526101400190565b9586526001600160a01b0394909416602086015260408501929092526060840152608083015260a082015260c00190565b92835260208301919091526001600160a01b0316604082015260600190565b6000602080835283518082850152825b81811015614e2557858101830151858201604001528201614e09565b81811115614e365783604083870101525b50601f01601f1916929092016040019392505050565b6020808252600c908201526b092dcecc2d8d2c840d0c2e6d60a31b604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526013908201527220b2323932b9b9903737ba1031b932b0ba37b960691b604082015260600190565b6020808252602c908201527f416464726573732063616e742062652030783020616e6420726566657272657260408201526b02063616e74206265203078360a41b606082015260800190565b6020808252601590820152742932b332b93932b9102737ba102932b3b4b9ba32b960591b604082015260600190565b60208082526015908201527421b0b63632b91034b9903737ba1031b932b0ba37b960591b604082015260600190565b602080825260159082015274416464726573732063616e7420626520656d70747960581b604082015260600190565b6020808252602b908201527f52656665727265722063616e6e6f74207265676973746572206173206974732060408201526a6f776e205265666572656560a81b606082015260800190565b6020808252602e908201527f52656665727265722063616e6e6f74207265676973746572206173207265666560408201526d3932b293b9903932b332b93932b960911b606082015260800190565b6020808252601390820152724e6f742076616c696420746f20736574746c6560681b604082015260600190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b602080825260169082015275125b9d985b1a590819195c1bdcda5d08185b5bdd5b9d60521b604082015260600190565b6020808252603a908201527f4163636f756e7420526567697374657265642120506c6561736520776169742060408201527f666f722031206d696e7574657320746f2074727920616761696e000000000000606082015260800190565b6020808252600f908201526e105b1c9958591e481cd95d1d1b1959608a1b604082015260600190565b602080825260169082015275125b9d985b1a590811195c1bdcda5d08105b5bdd5b9d60521b604082015260600190565b602080825260159082015274496e76616c696420526567697374726174696f6e2160581b604082015260600190565b6020808252600c908201526b4661696c656420657869742160a01b604082015260600190565b6020808252601d908201527f446966666572656e742072656665727265722072656769737465726564000000604082015260600190565b6020808252601e908201527f496e76616c69642068617368206f722061646472657373206f776e6572210000604082015260600190565b90815260200190565b94855260208501939093526001600160a01b039190911660408401526060830152608082015260a00190565b95865260208601949094526001600160a01b03928316604086015291166060840152608083015260a082015260c00190565b918252602082015260400190565b958652602086019490945260408501929092526060840152608083015260a082015260c00190565b60ff91909116815260200190565b6001600160a01b0381168114611efe57600080fdfe1738b9927ab40adc35d82a0f1b7fc437319abbb79dba4db84c3f869035737ae2feadbd03057c105a9e4fdeb010af0a1699363e0bf010e2b385e6c5e3890f5b13b3090f35dfbee3400bbb20b3c0f2f649ff8172d5fb6e9fd20157343e1fda27c8a2646970667358221220e91114683e87c579a4c1ab765e39dc380e97192b6cf46ad56c69554a3767211664736f6c634300060800330000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000007526963684461640000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000045249434800000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x6080604052600436106102115760003560e01c80637f55948611610118578063b5d23a78116100a0578063d0a0ce831161006f578063d0a0ce831461064a578063d61e75b41461066a578063d64492171461067d578063f7abbd93146106ac578063f85b90e2146106cc57610218565b8063b5d23a78146105b8578063b6ac6cff146105d8578063c7fbcb9f1461060a578063c8773af21461062a57610218565b80638c8edbc9116100e75780638c8edbc91461051c57806390a16d081461054e57806395d89b411461056e578063ab0d086314610583578063af640d0f146105a357610218565b80637f5594861461048b57806383458d32146104ab5780638c3c743d146104cb5780638c8ab2fe146104fc57610218565b8063313ce5671161019b57806354e693291161016a57806354e693291461040b578063557ed1ba14610420578063577f704e1461043557806370a0823114610463578063739744471461048357610218565b8063313ce5671461037c5780633ce279e41461039e5780634d45c9ea146103cb578063516abd87146103eb57610218565b8063111d5abd116101e2578063111d5abd146102c957806318160ddd146102f85780632926c5d31461031a5780632986c0e5146103525780632e7992f31461036757610218565b80623057871461021a578062c2943c1461025557806306fdde03146102855780630ee2cb10146102a757610218565b3661021857005b005b34801561022657600080fd5b5061023a6102353660046149b0565b610702565b60405161024c969594939291906152d4565b60405180910390f35b34801561026157600080fd5b50610275610270366004614a9c565b610737565b60405161024c9493929190614d27565b34801561029157600080fd5b5061029a610768565b60405161024c9190614df9565b3480156102b357600080fd5b506102bc6107f6565b60405161024c9190614c88565b3480156102d557600080fd5b506102e96102e4366004614a9c565b610805565b60405161024c93929190614dda565b34801561030457600080fd5b5061030d61082f565b60405161024c919061525f565b34801561032657600080fd5b5061033a6103353660046149b0565b610835565b60405161024c9c9b9a99989796959493929190614c9c565b34801561035e57600080fd5b5061030d6108a5565b34801561037357600080fd5b5061030d6108ab565b34801561038857600080fd5b506103916108b1565b60405161024c91906152fc565b3480156103aa57600080fd5b506103be6103b9366004614a71565b6108ba565b60405161024c9190614d4d565b3480156103d757600080fd5b506102186103e6366004614a71565b610f2c565b3480156103f757600080fd5b50610218610406366004614be2565b61111f565b34801561041757600080fd5b5061030d611157565b34801561042c57600080fd5b5061030d61115d565b34801561044157600080fd5b506104556104503660046149b0565b611161565b60405161024c9291906152c6565b34801561046f57600080fd5b5061030d61047e3660046149b0565b61117a565b61021861118c565b34801561049757600080fd5b506102186104a6366004614c0d565b6111ee565b3480156104b757600080fd5b506102186104c6366004614b3e565b61128b565b3480156104d757600080fd5b506104eb6104e6366004614a9c565b61130a565b60405161024c959493929190615268565b34801561050857600080fd5b506102186105173660046149cc565b611343565b34801561052857600080fd5b5061053c610537366004614a9c565b611478565b60405161024c96959493929190615294565b34801561055a57600080fd5b50610218610569366004614bc1565b6114ba565b34801561057a57600080fd5b5061029a611511565b34801561058f57600080fd5b5061021861059e366004614ab4565b61156c565b3480156105af57600080fd5b5061030d6117fc565b3480156105c457600080fd5b506102186105d3366004614b7a565b611802565b3480156105e457600080fd5b506105f86105f3366004614a9c565b6118d5565b60405161024c96959493929190614da9565b34801561061657600080fd5b506105f8610625366004614a9c565b611914565b34801561063657600080fd5b50610218610645366004614a71565b611953565b34801561065657600080fd5b50610218610665366004614a9c565b6119d5565b6102186106783660046149b0565b611f01565b34801561068957600080fd5b5061069d610698366004614a9c565b612601565b60405161024c93929190614d06565b3480156106b857600080fd5b506102186106c7366004614a9c565b61262c565b3480156106d857600080fd5b506106ec6106e73660046149b0565b612694565b60405161024c9a99989796959493929190614d58565b601160205260009081526040902080546001820154600283015460038401546004850154600590950154939492939192909186565b60136020526000908152604090208054600182015460028301546003909301546001600160a01b0390921692909184565b600b805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156107ee5780601f106107c3576101008083540402835291602001916107ee565b820191906000526020600020905b8154815290600101906020018083116107d157829003601f168201915b505050505081565b6001546001600160a01b031690565b6012602052600090815260409020805460018201546002909201549091906001600160a01b031683565b600e5481565b601560205260009081526040902080546001820154600283015460038401546004850154600586015460068701546007880154600889015460098a0154600a8b0154600b909b01546001600160a01b039a8b169b999a98999789169896979596948516959394929391909216918c565b60025481565b60045481565b600d5460ff1681565b6001546000906001600160a01b031633146108f05760405162461bcd60e51b81526004016108e790614f51565b60405180910390fd5b6108fa83836126f2565b151560011461091b5760405162461bcd60e51b81526004016108e790615048565b6000828152601660205260409020600201546001600160a01b038481169116146109575760405162461bcd60e51b81526004016108e790614e4c565b6005546000838152601660205260409020600401541415610c3157600082815260196020526040902060040154156109a15760405162461bcd60e51b81526004016108e790615143565b6001600160a01b038316600090815260176020526040902060050154600211610af5576109d083600654612827565b6008546001600160a01b0384166000908152601760205260409020600901546109fe9163ffffffff612aec16565b6001600160a01b038416600090815260176020908152604080832060090193909355848252601990522060040154610a3d90600163ffffffff612aec16565b60008381526019602052604080822060048101939093556008546005909301839055516001600160a01b0386169280156108fc0292909190818181858888f19350505050158015610a92573d6000803e3d6000fd5b506001600160a01b038084166000818152601760209081526040808320600290810154888552601990935292819020909201546008549251919094169360008051602061536083398151915292610ae8926152c6565b60405180910390a3610c2c565b60015b60078111610b1457610b0c84600554612827565b600101610af8565b50600082815260196020526040902060040154610b3890600163ffffffff612aec16565b600083815260196020908152604080832060048101949094556005805494018490556001600160a01b03871683526017909152902060090154610b809163ffffffff612aec16565b6001600160a01b038416600081815260176020526040808220600901939093556005549251919280156108fc02929091818181858888f19350505050158015610bcd573d6000803e3d6000fd5b506001600160a01b038084166000818152601760209081526040808320600290810154888552601990935292819020909201546005549251919094169360008051602061536083398151915292610c23926152c6565b60405180910390a35b610f26565b6006546000838152601660205260409020600401541415610f0e576000828152601a602052604090206004015415610c7b5760405162461bcd60e51b81526004016108e790615143565b6001600160a01b038316600090815260176020526040902060050154600811610dd65760015b600a8111610cbd57610cb584600554612827565b600101610ca1565b50600a546001600160a01b038416600090815260176020526040902060090154610cec9163ffffffff612aec16565b6001600160a01b038416600090815260176020908152604080832060090193909355848252601a90522060040154610d2b90600163ffffffff612aec16565b6000838152601a60205260408082206004810193909355600a546005909301839055516001600160a01b0386169280156108fc0292909190818181858888f19350505050158015610d80573d6000803e3d6000fd5b506001600160a01b03808416600081815260176020908152604080832060029081015488855260199093529281902090920154600a549251919094169360008051602061536083398151915292610ae8926152c6565b60015b60078111610df557610ded84600654612827565b600101610dd9565b506006546001600160a01b038416600090815260176020526040902060090154610e249163ffffffff612aec16565b6001600160a01b038416600090815260176020908152604080832060090193909355848252601a90522060040154610e6390600163ffffffff612aec16565b6000838152601a602052604080822060048101939093556006546005909301839055516001600160a01b0386169280156108fc0292909190818181858888f19350505050158015610eb8573d6000803e3d6000fd5b506001600160a01b038084166000818152601760209081526040808320600290810154888552601990935292819020909201546006549251919094169360008051602061536083398151915292610c23926152c6565b60405162461bcd60e51b81526004016108e7906151cb565b92915050565b6001546001600160a01b03163314610f565760405162461bcd60e51b81526004016108e790614f51565b6001546001600160a01b0316600090815260146020819052604082205491906064908190840204605a0281610f8757fe5b04905060006064806014850204600a0281610f9e57fe5b0490506001600160a01b038516610fbe576001546001600160a01b031694505b610fd3600186610fcc61115d565b8588611802565b6001546001600160a01b0316600090815260156020526040902060070154611001908263ffffffff612aec16565b6001546001600160a01b031660009081526015602052604090206007015561102761115d565b600180546001600160a01b03908116600090815260156020908152604080832060080195909555925490911681526014909152205461107e908290611072908563ffffffff612b1816565b9063ffffffff612b1816565b600180546001600160a01b03908116600090815260146020908152604080832095909555925482168152601590925282822060060154925192169183156108fc0291849190818181858888f193505050501580156110e0573d6000803e3d6000fd5b506040516001600160a01b0386169083156108fc029084906000818181858888f19350505050158015611117573d6000803e3d6000fd5b505050505050565b6001546001600160a01b031633146111495760405162461bcd60e51b81526004016108e790614f51565b600092909255600355600455565b60035481565b4290565b6014602052600090815260409020805460019091015482565b600f6020526000908152604090205481565b6001546001600160a01b031633146111b65760405162461bcd60e51b81526004016108e790614f51565b6001546001600160a01b0316331480156111d05750600034115b6111ec5760405162461bcd60e51b81526004016108e790614ea9565b565b6001546001600160a01b031633146112185760405162461bcd60e51b81526004016108e790614f51565b6040805160c0810182529687526020808801968752878201958652606088019485526080880193845260a08801928352600180546001600160a01b031660009081526011909252919020965187559451948601949094559151600285015551600384015551600483015551600590910155565b6001546001600160a01b031633146112b55760405162461bcd60e51b81526004016108e790614f51565b604080516060810182526001600160a01b03948516815260208082019485528183019384526000968752601090529420935184546001600160a01b031916931692909217835551600183015551600290910155565b60166020526000908152604090208054600182015460028301546003840154600490940154929391926001600160a01b03909116919085565b6001546001600160a01b0316331461136d5760405162461bcd60e51b81526004016108e790614f51565b60408051610180810182526001600160a01b039d8e16815260208082019a8b528183019687529c8e166060820190815260808201998a5260a082019586529b8e1660c0820190815260e0820198895261010082019485529a8e166101208201908152610140820197885261016082019384523360009081526015909e5291909c209b518c54908e166001600160a01b0319918216178d55985160018d0155935160028c0155985160038b018054918d16918916919091179055945160048a01555160058901559451600688018054918a1691861691909117905590516007870155905160088601559151600985018054919096169116179093559151600a8201559051600b90910155565b601860205260009081526040902080546001820154600283015460038401546004850154600590950154939492936001600160a01b0392831693919092169186565b6001546001600160a01b031633146114e45760405162461bcd60e51b81526004016108e790614f51565b60408051808201825292835260208084019283523360009081526014909152209151825551600190910155565b600c805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156107ee5780601f106107c3576101008083540402835291602001916107ee565b6001546001600160a01b031633146115965760405162461bcd60e51b81526004016108e790614f51565b6001600160a01b038a16158015906115b657506001600160a01b03891615155b6115d25760405162461bcd60e51b81526004016108e790614ed6565b6005548714806115e3575060065487145b6115ff5760405162461bcd60e51b81526004016108e79061516c565b60008b8b8b8a8c60405160200161161a959493929190614c4f565b60408051601f198184030181529181528151602092830120600081815260169093529120600101549091508114156116645760405162461bcd60e51b81526004016108e7906150e6565b60055488141561171c5761167b8c828d8c8c612b5a565b611688818c8c8b8d612bf9565b861561169c5761169c87828d8c8988612ee7565b60405180606001604052808281526020018d81526020018c6001600160a01b0316815250601260008e8152602001908152602001600020600082015181600001556020820151816001015560408201518160020160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555090505061176c565b600654881415611754576117338c828d8c8c612b5a565b611740818c8c8b8d612bf9565b851561169c5761169c86828d8c8887612f94565b60405162461bcd60e51b81526004016108e79061519c565b6002805460010190556000611799606461178d8b602063ffffffff61304116565b9063ffffffff61307b16565b90506117b2600254838e8e856117ad61115d565b6130bd565b8a6001600160a01b03168c6001600160a01b03166000805160206153408339815191528b8d6040516117e59291906152c6565b60405180910390a350505050505050505050505050565b60005481565b6001546001600160a01b0316331461182c5760405162461bcd60e51b81526004016108e790614f51565b604080516080810182526001600160a01b0386811680835260208084018881528486018881526060860188815260008d8152601390945292879020955186546001600160a01b031916951694909417855551600185015591516002840155905160039092019190915590517f13e12ad66c46754375e4740de0cbff0f0fbcbd6d9e00e2998d0811c4db67034e906118c690849086906152c6565b60405180910390a25050505050565b60196020526000908152604090208054600182015460028301546003840154600485015460059095015493946001600160a01b03909316939192909186565b601a6020526000908152604090208054600182015460028301546003840154600485015460059095015493946001600160a01b03909316939192909186565b6001546001600160a01b0316331461197d5760405162461bcd60e51b81526004016108e790614f51565b6001600160a01b03821661199a576001546001600160a01b031691505b6040516001600160a01b0383169082156108fc029083906000818181858888f193505050501580156119d0573d6000803e3d6000fd5b505050565b6119de81613220565b15156001146119ff5760405162461bcd60e51b81526004016108e790615048565b6000818152601660205260409020600201546001600160a01b03163314611a385760405162461bcd60e51b81526004016108e790614e4c565b6005546000828152601660205260409020600401541415611c9e5760008181526019602052604090206004015415611a825760405162461bcd60e51b81526004016108e790615143565b33600090815260176020526040902060050154600211611b9357611aa7600654613325565b60085433600090815260176020526040902060090154611acc9163ffffffff612aec16565b33600090815260176020908152604080832060090193909355838252601990522060040154611b0290600163ffffffff612aec16565b6000828152601960205260408082206004810193909355600854600590930183905551339280156108fc0292909190818181858888f19350505050158015611b4e573d6000803e3d6000fd5b5060008181526019602052604090819020600201546008549151339260008051602061532083398151915292611b86929091906152c6565b60405180910390a2611c99565b60015b60078111611bb157611ba9600554613325565b600101611b96565b50600081815260196020526040902060040154611bd590600163ffffffff612aec16565b600082815260196020908152604080832060048101949094556005805494018490553383526017909152902060090154611c149163ffffffff612aec16565b33600081815260176020526040808220600901939093556005549251919280156108fc02929091818181858888f19350505050158015611c58573d6000803e3d6000fd5b5060008181526019602052604090819020600201546005549151339260008051602061532083398151915292611c90929091906152c6565b60405180910390a25b611efe565b6006546000828152601660205260409020600401541415610f0e576000818152601a602052604090206004015415611ce85760405162461bcd60e51b81526004016108e790615143565b33600090815260176020526040902060050154600811611e005760015b600a8111611d2057611d18600554613325565b600101611d05565b50600a5433600090815260176020526040902060090154611d469163ffffffff612aec16565b33600090815260176020908152604080832060090193909355838252601a90522060040154611d7c90600163ffffffff612aec16565b6000828152601a60205260408082206004810193909355600a54600590930183905551339280156108fc0292909190818181858888f19350505050158015611dc8573d6000803e3d6000fd5b506000818152601a60205260409081902060020154600a549151339260008051602061532083398151915292611b86929091906152c6565b60015b60078111611e1e57611e16600654613325565b600101611e03565b5060065433600090815260176020526040902060090154611e449163ffffffff612aec16565b33600090815260176020908152604080832060090193909355838252601a90522060040154611e7a90600163ffffffff612aec16565b6000828152601a60205260408082206004810193909355600654600590930183905551339280156108fc0292909190818181858888f19350505050158015611ec6573d6000803e3d6000fd5b506000818152601a602052604090819020600201546006549151339260008051602061532083398151915292611c90929091906152c6565b50565b6001600160a01b038082166000908152601760205260409020600201543391839116821415611f425760405162461bcd60e51b81526004016108e790614ffa565b826001600160a01b038116611f695760405162461bcd60e51b81526004016108e790614f80565b33846001600160a01b038116821415611f945760405162461bcd60e51b81526004016108e790614faf565b34600554811480611fa6575060065481145b611fc25760405162461bcd60e51b81526004016108e7906150b6565b6001600160a01b03808816600090815260176020526040902060010154889116611ffe5760405162461bcd60e51b81526004016108e790614f22565b336000908152601760205260408120600101546001600160a01b0316612334576000805460010190819055338a3461203461115d565b604051602001612048959493929190614c4f565b6040516020818303038152906040528051906020012090506040518060a001604052806000548152602001828152602001336001600160a01b0316815260200161209061115d565b8152346020918201526000838152601682526040808220845181559284015160018401558301516002830180546001600160a01b0319166001600160a01b0390921691909117905560608301516003830155608090920151600490910155806120f88b6135b8565b6005543414156121345761210d833334613604565b3360009081526017602052604090206003015461213190600163ffffffff612aec16565b91505b600654341415612170576121498333346136bb565b3360009081526017602052604090206004015461216d90600163ffffffff612aec16565b90505b6040805160608082018352858252600080546020808501828152338688018181529385526012835293879020955186555160018601559051600290940180546001600160a01b0319166001600160a01b03958616179055845161014081018652888152908101829052928f16938301939093528101849052608081018390529060a08201906121fe90613772565b815260200161220d3334613790565b815260200161221a61115d565b8152602001612228336137bc565b8152602001612236336137da565b90523360008181526017602090815260409182902084518155908401516001820180546001600160a01b03199081166001600160a01b039384161790915592850151600283018054909416911617909155606083015160038201556080830151600482015560a0830151600582015560c0830151600682015560e083015160078201556101008301516008820155610120909201516009909201919091556122e0908490346137f8565b6122eb600054613b16565b6122f434613d3e565b6001600160a01b038b16336000805160206153408339815191523461231761115d565b6040516123259291906152c6565b60405180910390a350506125f6565b336000908152601760205260409020600201546001600160a01b038a81169116146123715760405162461bcd60e51b81526004016108e7906151f1565b600080546001018082553380835260176020526040909220600201549091906001600160a01b0316346123a261115d565b6040516020016123b6959493929190614c4f565b6040516020818303038152906040528051906020012090506040518060a001604052806000548152602001828152602001336001600160a01b031681526020016123fe61115d565b815234602091820152600083815260168252604080822084518155848401516001820155848201516002820180546001600160a01b0319166001600160a01b039092169190911790556060850151600382015560809094015160049094019390935533815260179091522081905561247461115d565b336000818152601760205260409020600701919091556124949034613790565b336000908152601760205260409020600601556005543414156124f4576124bc813334613604565b336000908152601760205260409020600301546124e090600163ffffffff612aec16565b336000908152601760205260409020600301555b600654341415612541576125098133346136bb565b3360009081526017602052604090206004015461252d90600163ffffffff612aec16565b336000908152601760205260409020600401555b604080516060810182528281526000805460208084018281523385870181815293855260129092529490922092518355925160018301559151600290910180546001600160a01b0319166001600160a01b039092169190911790556125a8908290346137f8565b6125b3600054613b16565b6125bc34613d3e565b6001600160a01b03891633600080516020615340833981519152346125df61115d565b6040516125ed9291906152c6565b60405180910390a35b505050505050505050565b6010602052600090815260409020805460018201546002909201546001600160a01b03909116919083565b6001546001600160a01b031633146126565760405162461bcd60e51b81526004016108e790614f51565b6001546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015612690573d6000803e3d6000fd5b5050565b601760205260009081526040902080546001820154600283015460038401546004850154600586015460068701546007880154600889015460099099015497986001600160a01b03978816989690971696949593949293919290918a565b6001546000906001600160a01b0316331461271f5760405162461bcd60e51b81526004016108e790614f51565b6000828152601660205260409020600201546001600160a01b0384811691161461275b5760405162461bcd60e51b81526004016108e790614e4c565b60055460008381526016602052604090206004015414156127bf5760008281526019602090815260408083206002908101546001546001600160a01b0316855260119093529220909101548082116127b857600192505050610f26565b505061281e565b600654600083815260166020526040902060040154141561281e576000828152601a60209081526040808320600201546001546001600160a01b0316845260119092529091206004015480821161281b57600192505050610f26565b50505b50600092915050565b600080546001018082556001600160a01b038085168352601760205260408320600201548591168461285761115d565b60405160200161286b959493929190614c4f565b6040516020818303038152906040528051906020012090506005548214156128e257612898818484613604565b6001600160a01b0383166000908152601760205260409020600301546128c590600163ffffffff612aec16565b6001600160a01b0384166000908152601760205260409020600301555b600654821415612941576128f78184846136bb565b6001600160a01b03831660009081526017602052604090206004015461292490600163ffffffff612aec16565b6001600160a01b0384166000908152601760205260409020600401555b61294d83600054613dcf565b6040518060a001604052806000548152602001828152602001846001600160a01b0316815260200161297d61115d565b81526020908101849052600083815260168252604080822084518155848401516001820155848201516002820180546001600160a01b0319166001600160a01b039283161790556060860151600383015560809095015160049091015592861681526017909152208190556129f061115d565b6001600160a01b038416600090815260176020526040902060070155612a168383613790565b6001600160a01b03848116600081815260176020908152604080832060060195909555845160608101865286815282548183018181528288019586529084526012909252949091209351845551600184015551600290920180546001600160a01b03191692909116919091179055612a8f818484614029565b612a9882613d3e565b6001600160a01b038084166000818152601760205260409020600201549091169060008051602061534083398151915284612ad161115d565b604051612adf9291906152c6565b60405180910390a3505050565b600082820183811015612b115760405162461bcd60e51b81526004016108e790614e72565b9392505050565b6000612b1183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250614430565b6001546001600160a01b03163314612b845760405162461bcd60e51b81526004016108e790614f51565b6040805160a08101825295865260208087018681526001600160a01b03958616888401908152606089019586526080890194855260009788526016909252919095209551865551600186015592516002850180546001600160a01b031916919093161790915551600383015551600490910155565b6001546001600160a01b03163314612c235760405162461bcd60e51b81526004016108e790614f51565b600080600554841415612c64576001600160a01b038616600090815260176020526040902060030154612c5d90600163ffffffff612aec16565b9150612c9e565b600654841415612c9e576001600160a01b038616600090815260176020526040902060040154612c9b90600163ffffffff612aec16565b90505b6001600160a01b038616600090815260176020526040812060060154612cca908663ffffffff612aec16565b9050600060176000896001600160a01b03166001600160a01b031681526020019081526020016000206008015490506000601760008a6001600160a01b03166001600160a01b031681526020019081526020016000206009015490506000601760008b6001600160a01b03166001600160a01b031681526020019081526020016000206005015490506040518061014001604052808c81526020018b6001600160a01b031681526020018a6001600160a01b0316815260200187815260200186815260200182815260200185815260200188815260200184815260200183815250601760008c6001600160a01b03166001600160a01b031681526020019081526020016000206000820151816000015560208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160020160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e0820151816007015561010082015181600801556101208201518160090155905050612ebb6001601760008c6001600160a01b03166001600160a01b0316815260200190815260200160002060050154612aec90919063ffffffff16565b6001600160a01b0390991660009081526017602052604090206005019890985550505050505050505050565b6001546001600160a01b03163314612f115760405162461bcd60e51b81526004016108e790614f51565b6040805160c0810182528681526001600160a01b039586166020808301918252828401998a52606083019687526080830195865260a083019485526000988952601990529190962095518655516001860180546001600160a01b031916919095161790935593516002840155516003830155915160048201559051600590910155565b6001546001600160a01b03163314612fbe5760405162461bcd60e51b81526004016108e790614f51565b6040805160c0810182528681526001600160a01b039586166020808301918252828401998a52606083019687526080830195865260a083019485526000988952601a90529190962095518655516001860180546001600160a01b031916919095161790935593516002840155516003830155915160048201559051600590910155565b60008261305057506000610f26565b8282028284828161305d57fe5b0414612b115760405162461bcd60e51b81526004016108e790615075565b6000612b1183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061445c565b6001546001600160a01b031633146130e75760405162461bcd60e51b81526004016108e790614f51565b6040518060c00160405280878152602001868152602001856001600160a01b03168152602001846001600160a01b031681526020018381526020018281525060186000888152602001908152602001600020600082015181600001556020820151816001015560408201518160020160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060608201518160030160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506080820151816004015560a082015181600501559050506131f98260176000866001600160a01b03166001600160a01b0316815260200190815260200160002060080154612aec90919063ffffffff16565b6001600160a01b039093166000908152601760205260409020600801929092555050505050565b6000818152601660205260408120600201546001600160a01b031633146132595760405162461bcd60e51b81526004016108e790615228565b60055460008381526016602052604090206004015414156132bd5760008281526019602090815260408083206002908101546001546001600160a01b0316855260119093529220909101548082116132b657600192505050613320565b505061331c565b600654600083815260166020526040902060040154141561331c576000828152601a60209081526040808320600201546001546001600160a01b0316845260119092529091206004015480821161331957600192505050613320565b50505b5060005b919050565b6000805460010180825533808352601760205260408320600201546001600160a01b03168461335261115d565b604051602001613366959493929190614c4f565b6040516020818303038152906040528051906020012090506005548214156133cb57613393813384613604565b336000908152601760205260409020600301546133b790600163ffffffff612aec16565b336000908152601760205260409020600301555b600654821415613418576133e08133846136bb565b3360009081526017602052604090206004015461340490600163ffffffff612aec16565b336000908152601760205260409020600401555b613423600054613b16565b6040518060a001604052806000548152602001828152602001336001600160a01b0316815260200161345361115d565b81526020908101849052600083815260168252604080822084518155848401516001820155848201516002820180546001600160a01b0319166001600160a01b03909216919091179055606085015160038201556080909401516004909401939093553381526017909152208190556134ca61115d565b336000818152601760205260409020600701919091556134ea9083613790565b33600081815260176020908152604080832060060194909455835160608101855285815282548183018181528287019586529084526012909252939091209251835551600183015551600290910180546001600160a01b0319166001600160a01b0390921691909117905561355e82613d3e565b6135698133846137f8565b336000818152601760205260409020600201546001600160a01b0316906000805160206153408339815191528461359e61115d565b6040516135ac9291906152c6565b60405180910390a35050565b6001600160a01b0381166000908152601760205260409020600501546135e590600163ffffffff612aec16565b6001600160a01b03909116600090815260176020526040902060050155565b61360d81614493565b60038054600101908190556040805160c0810182528581526001600160a01b0385166020820152908101919091526060810161364761115d565b81526000602080830182905260409283018290529581526019865281902082518155948201516001860180546001600160a01b0319166001600160a01b039092169190911790558101516002850155606081015160038501556080810151600485015560a001516005909301929092555050565b6136c481614760565b60048054600101908190556040805160c0810182528581526001600160a01b038516602082015290810191909152606081016136fe61115d565b8152600060208083018290526040928301829052958152601a865281902082518155948201516001860180546001600160a01b0319166001600160a01b039092169190911790558101516002850155606081015160038501556080810151600485015560a001516005909301929092555050565b6001600160a01b031660009081526017602052604090206005015490565b6001600160a01b038216600090815260176020526040812060060154612b11908363ffffffff612aec16565b6001600160a01b031660009081526017602052604090206008015490565b6001600160a01b031660009081526017602052604090206009015490565b6001600160a01b038083166000908152601760209081526040822060020154909216916138339060649061178d90869063ffffffff61304116565b90506002600081548092919060010191905055506040518060c001604052806002548152602001868152602001856001600160a01b03168152602001836001600160a01b0316815260200182815260200161388c61115d565b9052600280546000908152601860209081526040808320855181558583015160018201558582015194810180546001600160a01b03199081166001600160a01b039788161790915560608701516003830180549092169087161790556080860151600482015560a09095015160059095019490945591851681526017909152206008015461391a9082612aec565b6001600160a01b03831660009081526017602052604081206008019190915561394f606461178d86600163ffffffff61304116565b90506000613969606461178d87600263ffffffff61304116565b600180546001600160a01b031660009081526015602052604090200154909150613999908363ffffffff612aec16565b600180546001600160a01b03908116600090815260156020526040808220840194909455915416815220600401546139d7908363ffffffff612aec16565b6001546001600160a01b03166000908152601560205260409020600401556139fd61115d565b6001546001600160a01b0316600090815260156020526040902060020155613a2361115d565b6001546001600160a01b039081166000908152601560205260408082206005019390935591519086169185156108fc02918691818181858888f19350505050158015613a73573d6000803e3d6000fd5b506001546001600160a01b0390811660009081526015602052604080822054905192169184156108fc0291859190818181858888f19350505050158015613abe573d6000803e3d6000fd5b506001546001600160a01b0390811660009081526015602052604080822060030154905192169183156108fc0291849190818181858888f19350505050158015613b0c573d6000803e3d6000fd5b5050505050505050565b6001546001600160a01b031660009081526014602052604081205490613b496103e861178d84602363ffffffff61304116565b9050613b5c83601263ffffffff6148d116565b1580613b765750613b7483601363ffffffff6148d116565b155b80613b8f5750613b8d83601b63ffffffff6148d116565b155b80613ba85750613ba683602663ffffffff6148d116565b155b80613bc15750613bbf83602763ffffffff6148d116565b155b156119d0576001546001600160a01b0316600090815260146020526040902054613bf1908263ffffffff612b1816565b6001546001600160a01b03166000908152601460209081526040918290209290925580516060810182523381529182018390528101613c2e61115d565b9052600160009081526010602090815282517f8c6065603763fec3f5742441d3833f3f43b982453612d76adb39a885e3006b5f80546001600160a01b0319166001600160a01b039092169190911790558201517f8c6065603763fec3f5742441d3833f3f43b982453612d76adb39a885e3006b60556040918201517f8c6065603763fec3f5742441d3833f3f43b982453612d76adb39a885e3006b6155905133916108fc841502918491818181858888f19350505050158015613cf5573d6000803e3d6000fd5b50336001600160a01b03167f139deb7d0ab2f1deeb19d0174aaabc72ff1b8ff25151b311b42d484d82a14ba28285604051613d319291906152c6565b60405180910390a2505050565b6000613d56606461178d84600a63ffffffff61304116565b6001546001600160a01b031660009081526014602052604081205491925090613d85908363ffffffff612aec16565b90506040518060400160405280828152602001613da061115d565b9052600180546001600160a01b0316600090815260146020908152604090912083518155920151910155505050565b6001546001600160a01b03163314613df95760405162461bcd60e51b81526004016108e790614f51565b6001546001600160a01b031660009081526014602052604081205490613e2c6103e861178d84602363ffffffff61304116565b9050613e3f83601263ffffffff6148d116565b1580613e595750613e5783601363ffffffff6148d116565b155b80613e725750613e7083601b63ffffffff6148d116565b155b80613e8b5750613e8983602663ffffffff6148d116565b155b80613ea45750613ea283602763ffffffff6148d116565b155b15614023576001546001600160a01b0316600090815260146020526040902054613ed4908263ffffffff612b1816565b6001546001600160a01b039081166000908152601460209081526040918290209390935580516060810182529187168252918101839052908101613f1661115d565b9052600160009081526010602090815282517f8c6065603763fec3f5742441d3833f3f43b982453612d76adb39a885e3006b5f80546001600160a01b0319166001600160a01b03928316179055908301517f8c6065603763fec3f5742441d3833f3f43b982453612d76adb39a885e3006b60556040928301517f8c6065603763fec3f5742441d3833f3f43b982453612d76adb39a885e3006b61559151918616916108fc84150291849190818181858888f19350505050158015613fde573d6000803e3d6000fd5b50836001600160a01b03167f139deb7d0ab2f1deeb19d0174aaabc72ff1b8ff25151b311b42d484d82a14ba2828560405161401a9291906152c6565b60405180910390a25b50505050565b6001546001600160a01b031633146140535760405162461bcd60e51b81526004016108e790614f51565b6001600160a01b038083166000908152601760205260408120600201549091169061408a606461178d85601063ffffffff61304116565b90506002600081548092919060010191905055506040518060c001604052806002548152602001868152602001856001600160a01b03168152602001836001600160a01b031681526020018281526020016140e361115d565b9052600280546000908152601860209081526040808320855181558583015160018201558582015194810180546001600160a01b03199081166001600160a01b039788161790915560608701516003830180549092169087161790556080860151600482015560a0909501516005909501949094559187168152601790915220600801546141719082612aec565b6001600160a01b0385166000908152601760205260408120600801919091556141a6606461178d86600163ffffffff61304116565b905060006141c0606461178d87600263ffffffff61304116565b905060006141da606461178d88601063ffffffff61304116565b600180546001600160a01b03166000908152601560205260409020015490915061420a908463ffffffff612aec16565b600180546001600160a01b0390811660009081526015602052604080822084019490945591541681522060040154614248908463ffffffff612aec16565b600180546001600160a01b0390811660009081526015602052604080822060040194909455915416815220600a0154614287908263ffffffff612aec16565b6001546001600160a01b03166000908152601560205260409020600a01556142ad61115d565b6001546001600160a01b03166000908152601560205260409020600201556142d361115d565b6001546001600160a01b03166000908152601560205260409020600501556142f961115d565b6001546001600160a01b03908116600090815260156020526040808220600b019390935591519089169186156108fc02918791818181858888f19350505050158015614349573d6000803e3d6000fd5b506001546001600160a01b0390811660009081526015602052604080822054905192169185156108fc0291869190818181858888f19350505050158015614394573d6000803e3d6000fd5b506001546001600160a01b0390811660009081526015602052604080822060030154905192169184156108fc0291859190818181858888f193505050501580156143e2573d6000803e3d6000fd5b506001546001600160a01b0390811660009081526015602052604080822060090154905192169183156108fc0291849190818181858888f193505050501580156125f6573d6000803e3d6000fd5b600081848411156144545760405162461bcd60e51b81526004016108e79190614df9565b505050900390565b6000818361447d5760405162461bcd60e51b81526004016108e79190614df9565b50600083858161448957fe5b0495945050505050565b61449c81614913565b60006144b4606461178d84602d63ffffffff61304116565b6001546001600160a01b03166000908152601160205260409020549091506144e2908263ffffffff612aec16565b600180546001600160a01b039081166000908152601160205260408082209490945560075492549091168152918220546145219163ffffffff61307b16565b1115614621576007546001546001600160a01b03166000908152601160205260408120549091614557919063ffffffff61307b16565b905060006145708260075461304190919063ffffffff16565b6001546001600160a01b031660009081526011602052604090205490915061459e908263ffffffff612b1816565b600180546001600160a01b0390811660009081526011602052604080822094909455915416815220600201546145da908363ffffffff612aec16565b6001546001600160a01b031660009081526011602052604090206002015561460061115d565b6001546001600160a01b031660009081526011602052604090206003015550505b600954600180546001600160a01b03166000908152601160205260408120909101549091614655919063ffffffff61307b16565b111561269057600954600180546001600160a01b0316600090815260116020526040812090910154909161468f919063ffffffff61307b16565b905060006146a88260095461304190919063ffffffff16565b600180546001600160a01b0316600090815260116020526040902001549091506146d8908263ffffffff612b1816565b600180546001600160a01b0390811660009081526011602052604080822084019490945591541681522060040154614716908363ffffffff612aec16565b6001546001600160a01b031660009081526011602052604090206004015561473c61115d565b6001546001600160a01b031660009081526011602052604090206005015550505050565b6000614778606461178d84603763ffffffff61304116565b600180546001600160a01b0316600090815260116020526040902001549091506147a8908263ffffffff612aec16565b600180546001600160a01b0390811660009081526011602052604080822084019490945560095483549092168152928320909101546147ec9163ffffffff61307b16565b111561269057600954600180546001600160a01b03166000908152601160205260408120909101549091614826919063ffffffff61307b16565b9050600061483f8260095461304190919063ffffffff16565b600180546001600160a01b03166000908152601160205260409020015490915061486f908263ffffffff612b1816565b600180546001600160a01b03908116600090815260116020526040808220840194909455915416815220600401546148ad908363ffffffff612aec16565b6001546001600160a01b031660009081526011602052604090206004015550505050565b6000612b1183836040518060400160405280601881526020017f536166654d6174683a206d6f64756c6f206279207a65726f000000000000000081525061497c565b600061492b606461178d84600a63ffffffff61304116565b600180546001600160a01b03166000908152601160205260409020015490915061495b908263ffffffff612aec16565b600180546001600160a01b0316600090815260116020526040902001555050565b6000818361499d5760405162461bcd60e51b81526004016108e79190614df9565b508284816149a757fe5b06949350505050565b6000602082840312156149c1578081fd5b8135612b118161530a565b6000806000806000806000806000806000806101808d8f0312156149ee578788fd5b8c356149f98161530a565b9b5060208d0135614a098161530a565b9a5060408d0135614a198161530a565b995060608d0135614a298161530a565b9b9e9a9d50989b60808101359a60a08201359a5060c0820135995060e08201359850610100820135975061012082013596506101408201359550610160909101359350915050565b60008060408385031215614a83578182fd5b8235614a8e8161530a565b946020939093013593505050565b600060208284031215614aad578081fd5b5035919050565b60008060008060008060008060008060006101608c8e031215614ad5578081fd5b8b359a5060208c0135614ae78161530a565b995060408c0135614af78161530a565b9a9d999c50999a60608101359a5060808101359960a0820135995060c0820135985060e0820135975061010082013596506101208201359550610140909101359350915050565b60008060008060808587031215614b53578384fd5b843593506020850135614b658161530a565b93969395505050506040820135916060013590565b600080600080600060a08688031215614b91578081fd5b853594506020860135614ba38161530a565b94979496505050506040830135926060810135926080909101359150565b60008060408385031215614bd3578182fd5b50508035926020909101359150565b600080600060608486031215614bf6578081fd5b505081359360208301359350604090920135919050565b60008060008060008060c08789031215614c25578384fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b9485526bffffffffffffffffffffffff19606094851b811660208701529290931b90911660348401526048830152606882015260880190565b6001600160a01b0391909116815260200190565b6001600160a01b039c8d168152602081019b909b5260408b0199909952968a1660608a0152608089019590955260a088019390935290871660c087015260e08601526101008501529093166101208301526101408201929092526101608101919091526101800190565b6001600160a01b039390931683526020830191909152604082015260600190565b6001600160a01b0394909416845260208401929092526040830152606082015260800190565b901515815260200190565b998a526001600160a01b0398891660208b01529690971660408901526060880194909452608087019290925260a086015260c085015260e08401526101008301919091526101208201526101400190565b9586526001600160a01b0394909416602086015260408501929092526060840152608083015260a082015260c00190565b92835260208301919091526001600160a01b0316604082015260600190565b6000602080835283518082850152825b81811015614e2557858101830151858201604001528201614e09565b81811115614e365783604083870101525b50601f01601f1916929092016040019392505050565b6020808252600c908201526b092dcecc2d8d2c840d0c2e6d60a31b604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526013908201527220b2323932b9b9903737ba1031b932b0ba37b960691b604082015260600190565b6020808252602c908201527f416464726573732063616e742062652030783020616e6420726566657272657260408201526b02063616e74206265203078360a41b606082015260800190565b6020808252601590820152742932b332b93932b9102737ba102932b3b4b9ba32b960591b604082015260600190565b60208082526015908201527421b0b63632b91034b9903737ba1031b932b0ba37b960591b604082015260600190565b602080825260159082015274416464726573732063616e7420626520656d70747960581b604082015260600190565b6020808252602b908201527f52656665727265722063616e6e6f74207265676973746572206173206974732060408201526a6f776e205265666572656560a81b606082015260800190565b6020808252602e908201527f52656665727265722063616e6e6f74207265676973746572206173207265666560408201526d3932b293b9903932b332b93932b960911b606082015260800190565b6020808252601390820152724e6f742076616c696420746f20736574746c6560681b604082015260600190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b602080825260169082015275125b9d985b1a590819195c1bdcda5d08185b5bdd5b9d60521b604082015260600190565b6020808252603a908201527f4163636f756e7420526567697374657265642120506c6561736520776169742060408201527f666f722031206d696e7574657320746f2074727920616761696e000000000000606082015260800190565b6020808252600f908201526e105b1c9958591e481cd95d1d1b1959608a1b604082015260600190565b602080825260169082015275125b9d985b1a590811195c1bdcda5d08105b5bdd5b9d60521b604082015260600190565b602080825260159082015274496e76616c696420526567697374726174696f6e2160581b604082015260600190565b6020808252600c908201526b4661696c656420657869742160a01b604082015260600190565b6020808252601d908201527f446966666572656e742072656665727265722072656769737465726564000000604082015260600190565b6020808252601e908201527f496e76616c69642068617368206f722061646472657373206f776e6572210000604082015260600190565b90815260200190565b94855260208501939093526001600160a01b039190911660408401526060830152608082015260a00190565b95865260208601949094526001600160a01b03928316604086015291166060840152608083015260a082015260c00190565b918252602082015260400190565b958652602086019490945260408501929092526060840152608083015260a082015260c00190565b60ff91909116815260200190565b6001600160a01b0381168114611efe57600080fdfe1738b9927ab40adc35d82a0f1b7fc437319abbb79dba4db84c3f869035737ae2feadbd03057c105a9e4fdeb010af0a1699363e0bf010e2b385e6c5e3890f5b13b3090f35dfbee3400bbb20b3c0f2f649ff8172d5fb6e9fd20157343e1fda27c8a2646970667358221220e91114683e87c579a4c1ab765e39dc380e97192b6cf46ad56c69554a3767211664736f6c63430006080033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000007526963684461640000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000045249434800000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : initialSupply (uint256): 0
Arg [1] : tokenName (string): RichDad
Arg [2] : tokenSymbol (string): RICH
-----Encoded View---------------
7 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [2] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000007
Arg [4] : 5269636844616400000000000000000000000000000000000000000000000000
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [6] : 5249434800000000000000000000000000000000000000000000000000000000
Deployed Bytecode Sourcemap
2784:34083:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5618:58;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;5618:58:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;5734:55;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;5734:55:0;;;;;;;;:::i;:::-;;;;;;;;;;;3241:18;;5:9:-1;2:2;;;27:1;24;17:12;2:2;3241:18:0;;;:::i;:::-;;;;;;;;36777:87;;5:9:-1;2:2;;;27:1;24;17:12;2:2;36777:87:0;;;:::i;:::-;;;;;;;;5683:44;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;5683:44:0;;;;;;;;:::i;:::-;;;;;;;;;;3326:26;;5:9:-1;2:2;;;27:1;24;17:12;2:2;3326:26:0;;;:::i;:::-;;;;;;;;5853:51;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;5853:51:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2898:20;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2898:20:0;;;:::i;2954:22::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2954:22:0;;;:::i;3293:26::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;3293:26:0;;;:::i;:::-;;;;;;;;24047:2743;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;24047:2743:0;;;;;;;;:::i;:::-;;;;;;;;29402:761;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;29402:761:0;;;;;;;;:::i;23817:224::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;23817:224:0;;;;;;;;:::i;2925:22::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2925:22:0;;;:::i;8059:97::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;8059:97:0;;;:::i;5796:50::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;5796:50:0;;;;;;;;:::i;:::-;;;;;;;;;5510:45;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;5510:45:0;;;;;;;;:::i;29029:158::-;;;:::i;27182:467::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;27182:467:0;;;;;;;;:::i;27655:264::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;27655:264:0;;;;;;;;:::i;5911:42::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;5911:42:0;;;;;;;;:::i;:::-;;;;;;;;;;;;28176:703;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;28176:703:0;;;;;;;;:::i;6017:59::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;6017:59:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;27935:233;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;27935:233:0;;;;;;;;:::i;3266:20::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;3266:20:0;;;:::i;21893:1918::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;21893:1918:0;;;;;;;;:::i;2836:17::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2836:17:0;;;:::i;26798:378::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;26798:378:0;;;;;;;;:::i;6083:49::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;6083:49:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;6139:51;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;6139:51:0;;;;;;;;:::i;29199:191::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;29199:191:0;;;;;;;;:::i;10881:2602::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;10881:2602:0;;;;;;;;:::i;8168:2705::-;;;;;;;;;:::i;5562:49::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;5562:49:0;;;;;;;;:::i;:::-;;;;;;;;;;28887:136;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;28887:136:0;;;;;;;;:::i;5960:50::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;5960:50:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;5618:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5734:55::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5734:55:0;;;;;;;:::o;3241:18::-;;;;;;;;;;;;;;;-1:-1:-1;;3241:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;36777:87::-;36849:7;;-1:-1:-1;;;;;36849:7:0;36777:87;:::o;5683:44::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5683:44:0;;:::o;3326:26::-;;;;:::o;5853:51::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5853:51:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2898:20::-;;;;:::o;2954:22::-;;;;:::o;3293:26::-;;;;;;:::o;24047:2743::-;6758:7;;24195:4;;-1:-1:-1;;;;;6758:7:0;6744:10;:21;6736:55;;;;-1:-1:-1;;;6736:55:0;;;;;;;;;;;;;;;;;24229:33:::1;24246:5;24252:9;24229:16;:33::i;:::-;:39;;24264:4;24229:39;24221:70;;;;-1:-1:-1::0;;;24221:70:0::1;;;;;;;;;24317:17;::::0;;;:6:::1;:17;::::0;;;;:25:::1;;::::0;-1:-1:-1;;;;;24310:32:0;;::::1;24317:25:::0;::::1;24310:32;24302:56;;;;-1:-1:-1::0;;;24302:56:0::1;;;;;;;;;24399:6;::::0;24372:17:::1;::::0;;;:6:::1;:17;::::0;;;;:25:::1;;::::0;:33:::1;24369:2414;;;24429:23;::::0;;;:12:::1;:23;::::0;;;;:30:::1;;::::0;:33;24421:60:::1;;;;-1:-1:-1::0;;;24421:60:0::1;;;;;;;;;-1:-1:-1::0;;;;;24499:18:0;::::1;;::::0;;;:11:::1;:18;::::0;;;;:32:::1;;::::0;24533:1:::1;-1:-1:-1::0;24496:1001:0::1;;24550:40;24577:5;24583:6;;24550:26;:40::i;:::-;24679:11;::::0;-1:-1:-1;;;;;24640:18:0;::::1;;::::0;;;:11:::1;:18;::::0;;;;:34:::1;;::::0;:51:::1;::::0;::::1;:38;:51;:::i;:::-;-1:-1:-1::0;;;;;24605:18:0;::::1;;::::0;;;:11:::1;:18;::::0;;;;;;;:34:::1;;:86:::0;;;;24737:23;;;:12:::1;:23:::0;;;:30:::1;;::::0;:37:::1;::::0;24772:1:::1;24737:37;:34;:37;:::i;:::-;24706:23;::::0;;;:12:::1;:23;::::0;;;;;:30:::1;::::0;::::1;:68:::0;;;;24820:11:::1;::::0;24789:30:::1;::::0;;::::1;:42:::0;;;24846:27;-1:-1:-1;;;;;24846:14:0;::::1;::::0;:27;::::1;;;::::0;24820:11;;24846:27;;24706:23;24846:27;24820:11;24846:14;:27;::::1;;;;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;-1:-1:::0;;;;;;24954:18:0;;::::1;;::::0;;;:11:::1;:18;::::0;;;;;;;:27:::1;::::0;;::::1;::::0;24910:23;;;:12:::1;:23:::0;;;;;;;:31;;::::1;::::0;24942:11:::1;::::0;24893:89;;24954:27;;;::::1;::::0;-1:-1:-1;;;;;;;;;;;24893:89:0;::::1;::::0;::::1;;;;;;;;;;24496:1001;;;25028:1;25017:93;25033:1;25030;:4;25017:93;;25054:40;25081:5;25087:6;;25054:26;:40::i;:::-;25035:3;;25017:93;;;-1:-1:-1::0;25155:23:0::1;::::0;;;:12:::1;:23;::::0;;;;:30:::1;;::::0;:37:::1;::::0;25190:1:::1;25155:37;:34;:37;:::i;:::-;25124:23;::::0;;;:12:::1;:23;::::0;;;;;;;:30:::1;::::0;::::1;:68:::0;;;;25238:6:::1;::::0;;25207:30;::::1;:37:::0;;;-1:-1:-1;;;;;25294:18:0;::::1;::::0;;:11:::1;:18:::0;;;;;:34:::1;;::::0;:46:::1;::::0;::::1;:38;:46;:::i;:::-;-1:-1:-1::0;;;;;25259:18:0;::::1;;::::0;;;:11:::1;:18;::::0;;;;;:34:::1;;:81:::0;;;;25370:6:::1;::::0;25355:22;;25259:18;;25355:22;::::1;;;::::0;25370:6;;25355:22;25259:18;25355:22;25370:6;25259:18;25355:22;::::1;;;;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;-1:-1:::0;;;;;;25453:18:0;;::::1;;::::0;;;:11:::1;:18;::::0;;;;;;;:27:::1;::::0;;::::1;::::0;25414:23;;;:12:::1;:23:::0;;;;;;;:31;;::::1;::::0;25446:6:::1;::::0;25397:84;;25453:27;;;::::1;::::0;-1:-1:-1;;;;;;;;;;;25397:84:0;::::1;::::0;::::1;;;;;;;;;;24496:1001;24369:2414;;;25552:6;::::0;25525:17:::1;::::0;;;:6:::1;:17;::::0;;;;:25:::1;;::::0;:33:::1;25522:1261;;;25582:24;::::0;;;:13:::1;:24;::::0;;;;:31:::1;;::::0;:34;25574:61:::1;;;;-1:-1:-1::0;;;25574:61:0::1;;;;;;;;;-1:-1:-1::0;;;;;25649:18:0;::::1;;::::0;;;:11:::1;:18;::::0;;;;:32:::1;;::::0;25683:1:::1;-1:-1:-1::0;25646:1060:0::1;;25711:1;25700:94;25716:2;25713:1;:5;25700:94;;25738:40;25765:5;25771:6;;25738:26;:40::i;:::-;25719:3;;25700:94;;;-1:-1:-1::0;25882:11:0::1;::::0;-1:-1:-1;;;;;25843:18:0;::::1;;::::0;;;:11:::1;:18;::::0;;;;:34:::1;;::::0;:51:::1;::::0;::::1;:38;:51;:::i;:::-;-1:-1:-1::0;;;;;25808:18:0;::::1;;::::0;;;:11:::1;:18;::::0;;;;;;;:34:::1;;:86:::0;;;;25941:24;;;:13:::1;:24:::0;;;:31:::1;;::::0;:38:::1;::::0;25977:1:::1;25941:38;:35;:38;:::i;:::-;25909:24;::::0;;;:13:::1;:24;::::0;;;;;:31:::1;::::0;::::1;:70:::0;;;;26026:11:::1;::::0;25994:31:::1;::::0;;::::1;:43:::0;;;26052:27;-1:-1:-1;;;;;26052:14:0;::::1;::::0;:27;::::1;;;::::0;26026:11;;26052:27;;25909:24;26052:27;26026:11;26052:14;:27;::::1;;;;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;-1:-1:::0;;;;;;26160:18:0;;::::1;;::::0;;;:11:::1;:18;::::0;;;;;;;:27:::1;::::0;;::::1;::::0;26116:23;;;:12:::1;:23:::0;;;;;;;:31;;::::1;::::0;26148:11:::1;::::0;26099:89;;26160:27;;;::::1;::::0;-1:-1:-1;;;;;;;;;;;26099:89:0;::::1;::::0;::::1;;25646:1060;26234:1;26223:93;26239:1;26236;:4;26223:93;;26260:40;26287:5;26293:6;;26260:26;:40::i;:::-;26241:3;;26223:93;;;-1:-1:-1::0;26404:6:0::1;::::0;-1:-1:-1;;;;;26365:18:0;::::1;;::::0;;;:11:::1;:18;::::0;;;;:34:::1;;::::0;:46:::1;::::0;::::1;:38;:46;:::i;:::-;-1:-1:-1::0;;;;;26330:18:0;::::1;;::::0;;;:11:::1;:18;::::0;;;;;;;:34:::1;;:81:::0;;;;26458:24;;;:13:::1;:24:::0;;;:31:::1;;::::0;:38:::1;::::0;26494:1:::1;26458:38;:35;:38;:::i;:::-;26426:24;::::0;;;:13:::1;:24;::::0;;;;;:31:::1;::::0;::::1;:70:::0;;;;26543:6:::1;::::0;26511:31:::1;::::0;;::::1;:38:::0;;;26564:22;-1:-1:-1;;;;;26564:14:0;::::1;::::0;:22;::::1;;;::::0;26543:6;;26564:22;;26426:24;26564:22;26543:6;26564:14;:22;::::1;;;;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;-1:-1:::0;;;;;;26662:18:0;;::::1;;::::0;;;:11:::1;:18;::::0;;;;;;;:27:::1;::::0;;::::1;::::0;26623:23;;;:12:::1;:23:::0;;;;;;;:31;;::::1;::::0;26655:6:::1;::::0;26606:84;;26662:27;;;::::1;::::0;-1:-1:-1;;;;;;;;;;;26606:84:0;::::1;::::0;::::1;;25522:1261;26749:22;;-1:-1:-1::0;;;26749:22:0::1;;;;;;;;25522:1261;24047:2743:::0;;;;:::o;29402:761::-;6758:7;;-1:-1:-1;;;;;6758:7:0;6744:10;:21;6736:55;;;;-1:-1:-1;;;6736:55:0;;;;;;;;;29530:7:::1;::::0;-1:-1:-1;;;;;29530:7:0::1;29500:14;29515:23:::0;;;:14:::1;:23;::::0;;;;;;:35;;29500:14;29599:3:::1;::::0;;;29582:9;::::1;:13;29596:2;29582:16;:20;;;;;;::::0;-1:-1:-1;29613:14:0::1;29645:3;::::0;29635:2:::1;29628:9:::0;::::1;:13;29642:2;29628:16;:20;;;;;;::::0;-1:-1:-1;;;;;;29662:17:0;::::1;29659:61;;29701:7;::::0;-1:-1:-1;;;;;29701:7:0::1;::::0;-1:-1:-1;29659:61:0::1;29730:64;29750:1;29752:5;29758:9;:7;:9::i;:::-;29768:12;29781;29730:19;:64::i;:::-;29854:7;::::0;-1:-1:-1;;;;;29854:7:0::1;29842:20;::::0;;;:11:::1;:20;::::0;;;;:35:::1;;::::0;:47:::1;::::0;29882:6;29842:47:::1;:39;:47;:::i;:::-;29818:7;::::0;-1:-1:-1;;;;;29818:7:0::1;29806:20;::::0;;;:11:::1;:20;::::0;;;;:35:::1;;:83:::0;29934:9:::1;:7;:9::i;:::-;29912:7;::::0;;-1:-1:-1;;;;;29912:7:0;;::::1;29900:20;::::0;;;:11:::1;:20;::::0;;;;;;;:33:::1;;:43:::0;;;;30005:7;;;;::::1;29990:23:::0;;:14:::1;:23:::0;;;;:35;:65:::1;::::0;30048:6;;29990:53:::1;::::0;30030:12;29990:53:::1;:39;:53;:::i;:::-;:57:::0;:65:::1;:57;:65;:::i;:::-;29969:7;::::0;;-1:-1:-1;;;;;29969:7:0;;::::1;29954:23;::::0;;;:14:::1;:23;::::0;;;;;;;:101;;;;30078:7;;;::::1;30066:20:::0;;:11:::1;:20:::0;;;;;;:28:::1;;::::0;:45;;:28;::::1;::::0;:45;::::1;;;::::0;30104:6;;30066:45;;29954:23;30066:45;30104:6;30066:28;:45;::::1;;;;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;-1:-1:::0;30123:28:0::1;::::0;-1:-1:-1;;;;;30123:14:0;::::1;::::0;:28;::::1;;;::::0;30138:12;;30123:28:::1;::::0;;;30138:12;30123:14;:28;::::1;;;;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;30123:28:0;6802:1;;;29402:761:::0;;:::o;23817:224::-;6758:7;;-1:-1:-1;;;;;6758:7:0;6744:10;:21;6736:55;;;;-1:-1:-1;;;6736:55:0;;;;;;;;;23969:2:::1;:10:::0;;;;23990:7:::1;:16:::0;24017:7:::1;:16:::0;23817:224::o;2925:22::-;;;;:::o;8059:97::-;8145:3;8059:97;:::o;5796:50::-;;;;;;;;;;;;;;;;;;;:::o;5510:45::-;;;;;;;;;;;;;:::o;29029:158::-;6758:7;;-1:-1:-1;;;;;6758:7:0;6744:10;:21;6736:55;;;;-1:-1:-1;;;6736:55:0;;;;;;;;;29134:7:::1;::::0;-1:-1:-1;;;;;29134:7:0::1;29122:10;:19;:34:::0;::::1;;;;29155:1;29145:9;:11;29122:34;29114:65;;;;-1:-1:-1::0;;;29114:65:0::1;;;;;;;;;29029:158::o:0;27182:467::-;6758:7;;-1:-1:-1;;;;;6758:7:0;6744:10;:21;6736:55;;;;-1:-1:-1;;;6736:55:0;;;;;;;;;27517:120:::1;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;;::::1;::::0;;;;;;;;;;;;;;;;;;;;;;;;;;;27508:7:::1;::::0;;-1:-1:-1;;;;;27508:7:0::1;-1:-1:-1::0;27489:27:0;;;:18:::1;:27:::0;;;;;;:148;;;;;;;;::::1;::::0;;;;;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;::::0;;::::1;::::0;;::::1;::::0;27182:467::o;27655:264::-;6758:7;;-1:-1:-1;;;;;6758:7:0;6744:10;:21;6736:55;;;;-1:-1:-1;;;6736:55:0;;;;;;;;;27868:39:::1;::::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;;;;;27868:39:0;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;;;;;;;-1:-1:-1;27853:14:0;;;:9:::1;:14:::0;;;;:54;;;;-1:-1:-1;;;;;;27853:54:0::1;::::0;::::1;::::0;;;::::1;::::0;;;-1:-1:-1;27853:54:0;::::1;::::0;;::::1;::::0;;::::1;::::0;27655:264::o;5911:42::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5911:42:0;;;;;;:::o;28176:703::-;6758:7;;-1:-1:-1;;;;;6758:7:0;6744:10;:21;6736:55;;;;-1:-1:-1;;;6736:55:0;;;;;;;;;28699:168:::1;::::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;;;;;28699:168:0;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;;;;;;;;;::::1;::::0;;;;;;;;;;;;;;;;;;;;::::1;::::0;;;;;;;;;;;;;;;;;;;;::::1;::::0;;;;;;;;;;;;;;;;;;28687:10:::1;-1:-1:-1::0;28675:23:0;;;:11:::1;:23:::0;;;;;;;:192;;;;;;::::1;-1:-1:-1::0;;;;;;28675:192:0;;::::1;;::::0;;;;;;::::1;::::0;;;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;;::::0;;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;::::1;::::0;28176:703::o;6017:59::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6017:59:0;;;;;;;;;;:::o;27935:233::-;6758:7;;-1:-1:-1;;;;;6758:7:0;6744:10;:21;6736:55;;;;-1:-1:-1;;;6736:55:0;;;;;;;;;28122:34:::1;::::0;;;;::::1;::::0;;;;;::::1;::::0;;::::1;::::0;;;28110:10:::1;-1:-1:-1::0;28095:26:0;;;:14:::1;:26:::0;;;;:61;;;;;::::1;::::0;;::::1;::::0;27935:233::o;3266:20::-;;;;;;;;;;;;;;;-1:-1:-1;;3266:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21893:1918;6758:7;;-1:-1:-1;;;;;6758:7:0;6744:10;:21;6736:55;;;;-1:-1:-1;;;6736:55:0;;;;;;;;;-1:-1:-1;;;;;22307:20:0;::::1;::::0;;::::1;::::0;:45:::1;;-1:-1:-1::0;;;;;;22331:21:0;::::1;::::0;::::1;22307:45;22299:101;;;;-1:-1:-1::0;;;22299:101:0::1;;;;;;;;;22429:6;;22419:8;:16;:36;;;;22449:6;;22439:8;:16;22419:36;22411:70;;;;-1:-1:-1::0;;;22411:70:0::1;;;;;;;;;22492:19;22539:7;22547:8;22556:9;22566:8;22575:9;22522:63;;;;;;;;;;;;;;;::::0;;-1:-1:-1;;26:21;;::::1;22:32:::0;6:49;;22522:63:0;;;22512:74;;49:4:-1::1;22512:74:0::0;;::::1;::::0;22605:19:::1;::::0;;;:6:::1;:19:::0;;;;;:27:::1;;::::0;22512:74;;-1:-1:-1;22605:40:0;::::1;;22597:110;;;;-1:-1:-1::0;;;22597:110:0::1;;;;;;;;;22731:6;;22721:8;:16;22718:860;;;22753:69;22774:7;22782:11;22794:8;22803:9;22813:8;22753:20;:69::i;:::-;22837:66;22853:11;22865:8;22874:9;22884:8;22893:9;22837:15;:66::i;:::-;22921:7:::0;;22918:111:::1;;22944:69;22957:5;22963:11;22975:8;22984:9;22994;23004:8;22944:12;:69::i;:::-;23061:37;;;;;;;;23069:11;23061:37;;;;23081:7;23061:37;;;;23089:8;-1:-1:-1::0;;;;;23061:37:0::1;;;::::0;23043:8:::1;:17;23052:7;23043:17;;;;;;;;;;;:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;23043:55:0::1;;;;;-1:-1:-1::0;;;;;23043:55:0::1;;;;;;;;;22718:860;;;23137:6;;23127:8;:16;23124:454;;;23159:69;23180:7;23188:11;23200:8;23209:9;23219:8;23159:20;:69::i;:::-;23243:66;23259:11;23271:8;23280:9;23290:8;23299:9;23243:15;:66::i;:::-;23327:7:::0;;23324:111:::1;;23350:69;23363:5;23369:11;23381:8;23390:9;23400;23410:8;23350:12;:69::i;23124:454::-;23535:31;;-1:-1:-1::0;;;23535:31:0::1;;;;;;;;23124:454;23588:5;:7:::0;;::::1;;::::0;;:5:::1;23618:25;23639:3;23618:16;:8:::0;23631:2:::1;23618:16;:12;:16;:::i;:::-;:20:::0;:25:::1;:20;:25;:::i;:::-;23606:37;;23654:75;23678:5;;23684:11;23696:8;23705:9;23715:3;23719:9;:7;:9::i;:::-;23654:23;:75::i;:::-;23774:9;-1:-1:-1::0;;;;;23745:58:0::1;23765:8;-1:-1:-1::0;;;;;23745:58:0::1;-1:-1:-1::0;;;;;;;;;;;23784:8:0::1;23793:9;23745:58;;;;;;;;;;;;;;;;6802:1;;21893:1918:::0;;;;;;;;;;;:::o;2836:17::-;;;;:::o;26798:378::-;6758:7;;-1:-1:-1;;;;;6758:7:0;6744:10;:21;6736:55;;;;-1:-1:-1;;;6736:55:0;;;;;;;;;27049::::1;::::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;;;;;27049:55:0;;::::1;::::0;;;::::1;::::0;;::::1;::::0;;;;;;;;;;;;;;;-1:-1:-1;27030:18:0;;;:13:::1;:18:::0;;;;;;;:74;;;;-1:-1:-1;;;;;;27030:74:0::1;::::0;::::1;::::0;;;::::1;::::0;;;-1:-1:-1;27030:74:0;::::1;::::0;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;::::1;::::0;;;;27120:44;;::::1;::::0;::::1;::::0;27049:55;;;;27120:44:::1;;;;;;;;;;26798:378:::0;;;;;:::o;6083:49::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6083:49:0;;;;;;;;;:::o;6139:51::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6139:51:0;;;;;;;;;:::o;29199:191::-;6758:7;;-1:-1:-1;;;;;6758:7:0;6744:10;:21;6736:55;;;;-1:-1:-1;;;6736:55:0;;;;;;;;;-1:-1:-1;;;;;29288:17:0;::::1;29285:61;;29327:7;::::0;-1:-1:-1;;;;;29327:7:0::1;::::0;-1:-1:-1;29285:61:0::1;29356:22;::::0;-1:-1:-1;;;;;29356:14:0;::::1;::::0;:22;::::1;;;::::0;29371:6;;29356:22:::1;::::0;;;29371:6;29356:14;:22;::::1;;;;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;29356:22:0;29199:191:::0;;:::o;10881:2602::-;10994:20;11004:9;10994;:20::i;:::-;:26;;11016:4;10994:26;10986:57;;;;-1:-1:-1;;;10986:57:0;;;;;;;;;11074:17;;;;:6;:17;;;;;:25;;;-1:-1:-1;;;;;11074:25:0;11062:10;:37;11054:61;;;;-1:-1:-1;;;11054:61:0;;;;;;;;;11156:6;;11129:17;;;;:6;:17;;;;;:25;;;:33;11126:2350;;;11186:23;;;;:12;:23;;;;;:30;;;:33;11178:60;;;;-1:-1:-1;;;11178:60:0;;;;;;;;;11268:10;11256:23;;;;:11;:23;;;;;:37;;;11295:1;-1:-1:-1;11253:968:0;;11312:27;11332:6;;11312:19;:27::i;:::-;11438:11;;11406:10;11394:23;;;;:11;:23;;;;;:39;;;:56;;;:43;:56;:::i;:::-;11366:10;11354:23;;;;:11;:23;;;;;;;;:39;;:96;;;;11496:23;;;:12;:23;;;:30;;;:37;;11531:1;11496:37;:34;:37;:::i;:::-;11465:23;;;;:12;:23;;;;;;:30;;;:68;;;;11579:11;;11548:30;;;;:42;;;11605:32;:10;;:32;;;;;11579:11;;11605:32;;11465:23;11605:32;11579:11;11605:10;:32;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;11681:23:0;;;;:12;:23;;;;;;;:31;;;11713:11;;11657:68;;11669:10;;-1:-1:-1;;;;;;;;;;;11657:68:0;;;11681:31;;11713:11;11657:68;;;;;;;;;;11253:968;;;11771:1;11760:80;11776:1;11773;:4;11760:80;;11797:27;11817:6;;11797:19;:27::i;:::-;11778:3;;11760:80;;;-1:-1:-1;11885:23:0;;;;:12;:23;;;;;:30;;;:37;;11920:1;11885:37;:34;:37;:::i;:::-;11854:23;;;;:12;:23;;;;;;;;:30;;;:68;;;;11968:6;;;11937:30;;:37;;;12041:10;12029:23;;:11;:23;;;;;:39;;;:51;;;:43;:51;:::i;:::-;12001:10;11989:23;;;;:11;:23;;;;;;:39;;:91;;;;12115:6;;12095:27;;12001:10;;12095:27;;;;;12115:6;;12095:27;11989:23;12095:27;12115:6;12001:10;12095:27;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;12166:23:0;;;;:12;:23;;;;;;;:31;;;12198:6;;12142:63;;12154:10;;-1:-1:-1;;;;;;;;;;;12142:63:0;;;12166:31;;12198:6;12142:63;;;;;;;;;;11253:968;11126:2350;;;12276:6;;12249:17;;;;:6;:17;;;;;:25;;;:33;12246:1230;;;12306:24;;;;:13;:24;;;;;:31;;;:34;12298:61;;;;-1:-1:-1;;;12298:61:0;;;;;;;;;12385:10;12373:23;;;;:11;:23;;;;;:37;;;12412:1;-1:-1:-1;12370:1029:0;;12440:1;12429:81;12445:2;12442:1;:5;12429:81;;12467:27;12487:6;;12467:19;:27::i;:::-;12448:3;;12429:81;;;-1:-1:-1;12608:11:0;;12576:10;12564:23;;;;:11;:23;;;;;:39;;;:56;;;:43;:56;:::i;:::-;12536:10;12524:23;;;;:11;:23;;;;;;;;:39;;:96;;;;12667:24;;;:13;:24;;;:31;;;:38;;12703:1;12667:38;:35;:38;:::i;:::-;12635:24;;;;:13;:24;;;;;;:31;;;:70;;;;12752:11;;12720:31;;;;:43;;;12778:32;:10;;:32;;;;;12752:11;;12778:32;;12635:24;12778:32;12752:11;12778:10;:32;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;12854:24:0;;;;:13;:24;;;;;;;:32;;;12887:11;;12830:69;;12842:10;;-1:-1:-1;;;;;;;;;;;12830:69:0;;;12854:32;;12887:11;12830:69;;12370:1029;12945:1;12934:80;12950:1;12947;:4;12934:80;;12971:27;12991:6;;12971:19;:27::i;:::-;12952:3;;12934:80;;;-1:-1:-1;13112:6:0;;13080:10;13068:23;;;;:11;:23;;;;;:39;;;:51;;;:43;:51;:::i;:::-;13040:10;13028:23;;;;:11;:23;;;;;;;;:39;;:91;;;;13166:24;;;:13;:24;;;:31;;;:38;;13202:1;13166:38;:35;:38;:::i;:::-;13134:24;;;;:13;:24;;;;;;:31;;;:70;;;;13251:6;;13219:31;;;;:38;;;13272:27;:10;;:27;;;;;13251:6;;13272:27;;13134:24;13272:27;13251:6;13272:10;:27;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;13343:24:0;;;;:13;:24;;;;;;;:32;;;13376:6;;13319:64;;13331:10;;-1:-1:-1;;;;;;;;;;;13319:64:0;;;13343:32;;13376:6;13319:64;;12246:1230;10881:2602;:::o;8168:2705::-;-1:-1:-1;;;;;7477:19:0;;;;;;;:11;:19;;;;;:28;;;8266:10;;8278:9;;7477:28;:35;;;7469:93;;;;-1:-1:-1;;;7469:93:0;;;;;;;;;8312:9;-1:-1:-1;;;;;6877:18:0;::::1;6869:52;;;;-1:-1:-1::0;;;6869:52:0::1;;;;;;;;;8343:10:::2;8354:9:::0;-1:-1:-1;;;;;7176:18:0;::::2;::::0;::::2;;7168:74;;;;-1:-1:-1::0;;;7168:74:0::2;;;;;;;;;8387:9:::3;7330:6;;7323:5;:13;:30;;;;7347:6;;7340:5;:13;7323:30;7315:64;;;;-1:-1:-1::0;;;7315:64:0::3;;;;;;;;;-1:-1:-1::0;;;;;7009:18:0;;::::4;7046:1;7009:18:::0;;;:11:::4;:18;::::0;;;;:26:::4;;::::0;8423:9;;7009:26:::4;7001:73;;;;-1:-1:-1::0;;;7001:73:0::4;;;;;;;;;8522:10:::5;8477:19;8510:23:::0;;;:11:::5;:23;::::0;;;;:31:::5;;::::0;-1:-1:-1;;;;;8510:31:0::5;8507:2359;;8565:2;:4:::0;;::::5;;::::0;;;;8622:10:::5;8633:9:::0;8643::::5;8653;:7;:9::i;:::-;8602:61;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;8602:61:0;;;8592:72;;;;;;8580:84;;8695:54;;;;;;;;8703:2;;8695:54;;;;8706:11;8695:54;;;;8718:10;-1:-1:-1::0;;;;;8695:54:0::5;;;;;8729:9;:7;:9::i;:::-;8695:54:::0;;8739:9:::5;8695:54;::::0;;::::5;::::0;-1:-1:-1;8675:19:0;;;:6:::5;:19:::0;;;;;;:74;;;;;;::::5;::::0;::::5;::::0;::::5;::::0;;::::5;::::0;::::5;::::0;::::5;::::0;;-1:-1:-1;;;;;;8675:74:0::5;-1:-1:-1::0;;;;;8675:74:0;;::::5;::::0;;;::::5;::::0;;::::5;::::0;::::5;::::0;::::5;::::0;::::5;::::0;::::5;::::0;;::::5;::::0;::::5;::::0;;::::5;::::0;-1:-1:-1;8812:28:0::5;8830:9:::0;8812:17:::5;:28::i;:::-;8865:6;;8854:9;:17;8851:163;;;8887:48;8902:11;8914:10;8925:9;8887:14;:48::i;:::-;8973:10;8961:23;::::0;;;:11:::5;:23;::::0;;;;:34:::5;;::::0;:41:::5;::::0;9000:1:::5;8961:41;:38;:41;:::i;:::-;8950:52;;8851:163;9038:6;;9027:9;:17;9024:164;;;9060:49;9076:11;9088:10;9099:9;9060:15;:49::i;:::-;9147:10;9135:23;::::0;;;:11:::5;:23;::::0;;;;:34:::5;;::::0;:41:::5;::::0;9174:1:::5;9135:41;:38;:41;:::i;:::-;9124:52;;9024:164;9211:34;::::0;;::::5;::::0;;::::5;::::0;;;;;-1:-1:-1;9231:2:0;;9211:34:::5;::::0;;::::5;::::0;;;9234:10:::5;9211:34:::0;;;;;;9198:12;;;:8:::5;:12:::0;;;;;;:47;;;;;::::5;::::0;::::5;::::0;;;::::5;::::0;;::::5;::::0;;-1:-1:-1;;;;;;9198:47:0::5;-1:-1:-1::0;;;;;9198:47:0;;::::5;;::::0;;9280:201;;::::5;::::0;::::5;::::0;;;;;;;::::5;::::0;;;;;::::5;::::0;;;;;;;;;;;;;;;;;;;;;;;9346:28:::5;::::0;:16:::5;:28::i;:::-;9280:201;;;;9375:37;9391:10;9402:9;9375:15;:37::i;:::-;9280:201;;;;9413:9;:7;:9::i;:::-;9280:201;;;;9423:26;9438:10;9423:14;:26::i;:::-;9280:201;;;;9450:30;9469:10;9450:18;:30::i;:::-;9280:201:::0;;9268:10:::5;9256:23;::::0;;;:11:::5;:23;::::0;;;;;;;;:225;;;;;;::::5;::::0;::::5;::::0;::::5;::::0;;-1:-1:-1;;;;;;9256:225:0;;::::5;-1:-1:-1::0;;;;;9256:225:0;;::::5;;::::0;;;;;::::5;::::0;::::5;::::0;::::5;::::0;;;;::::5;::::0;::::5;;::::0;;;::::5;::::0;::::5;::::0;::::5;::::0;::::5;::::0;::::5;::::0;::::5;::::0;::::5;::::0;::::5;::::0;::::5;::::0;::::5;::::0;::::5;::::0;::::5;::::0;::::5;::::0;::::5;::::0;::::5;::::0;::::5;::::0;::::5;::::0;::::5;::::0;::::5;::::0;::::5;::::0;::::5;::::0;::::5;::::0;::::5;::::0;::::5;::::0;::::5;::::0;;::::5;::::0;::::5;::::0;;::::5;::::0;;;;9492:47:::5;::::0;9506:11;;9529:9:::5;9492:13;:47::i;:::-;9550:16;9563:2;;9550:12;:16::i;:::-;9577:24;9591:9;9577:13;:24::i;:::-;-1:-1:-1::0;;;;;9617:61:0;::::5;9637:10;-1:-1:-1::0;;;;;;;;;;;9658:9:0::5;9668;:7;:9::i;:::-;9617:61;;;;;;;;;;;;;;;;8507:2359;;;;;9725:10;9713:23;::::0;;;:11:::5;:23;::::0;;;;:32:::5;;::::0;-1:-1:-1;;;;;9713:43:0;;::::5;:32:::0;::::5;:43;9705:84;;;;-1:-1:-1::0;;;9705:84:0::5;;;;;;;;;9800:2;:4:::0;;::::5;;::::0;;;9857:10:::5;9868:23:::0;;;:11:::5;:23;::::0;;;;;:32:::5;;::::0;9800:4;;9857:10;-1:-1:-1;;;;;9868:32:0::5;9901:9;9911;:7;:9::i;:::-;9837:84;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;9837:84:0;;;9827:95;;;;;;9815:107;;9953:54;;;;;;;;9961:2;;9953:54;;;;9964:11;9953:54;;;;9976:10;-1:-1:-1::0;;;;;9953:54:0::5;;;;;9987:9;:7;:9::i;:::-;9953:54:::0;;9997:9:::5;9953:54;::::0;;::::5;::::0;-1:-1:-1;9933:19:0;;;:6:::5;:19:::0;;;;;;:74;;;;;;::::5;::::0;::::5;::::0;::::5;::::0;;;::::5;::::0;::::5;::::0;::::5;::::0;;-1:-1:-1;;;;;;9933:74:0::5;-1:-1:-1::0;;;;;9933:74:0;;::::5;::::0;;;::::5;::::0;;::::5;::::0;::::5;::::0;::::5;::::0;::::5;::::0;::::5;::::0;;::::5;::::0;::::5;::::0;;::::5;::::0;;;;10030:10:::5;10018:23:::0;;:11:::5;:23:::0;;;;:44;;;10110:9:::5;:7;:9::i;:::-;10085:10;10073:23;::::0;;;:11:::5;:23;::::0;;;;:36:::5;;:46:::0;;;;10167:37:::5;::::0;10194:9:::5;10167:15;:37::i;:::-;10142:10;10130:23;::::0;;;:11:::5;:23;::::0;;;;:36:::5;;:74:::0;10229:6:::5;::::0;10218:9:::5;:17;10215:187;;;10251:48;10266:11;10278:10;10289:9;10251:14;:48::i;:::-;10361:10;10349:23;::::0;;;:11:::5;:23;::::0;;;;:34:::5;;::::0;:41:::5;::::0;10388:1:::5;10349:41;:38;:41;:::i;:::-;10326:10;10314:23;::::0;;;:11:::5;:23;::::0;;;;:34:::5;;:76:::0;10215:187:::5;10426:6;;10415:9;:17;10412:188;;;10448:49;10464:11;10476:10;10487:9;10448:15;:49::i;:::-;10559:10;10547:23;::::0;;;:11:::5;:23;::::0;;;;:34:::5;;::::0;:41:::5;::::0;10586:1:::5;10547:41;:38;:41;:::i;:::-;10524:10;10512:23;::::0;;;:11:::5;:23;::::0;;;;:34:::5;;:76:::0;10412:188:::5;10623:34;::::0;;::::5;::::0;::::5;::::0;;;;;-1:-1:-1;10643:2:0;;10623:34:::5;::::0;;::::5;::::0;;;10646:10:::5;10623:34:::0;;;;;;10610:12;;;:8:::5;:12:::0;;;;;;;:47;;;;;;::::5;::::0;::::5;::::0;;;::::5;::::0;;::::5;::::0;;-1:-1:-1;;;;;;10610:47:0::5;-1:-1:-1::0;;;;;10610:47:0;;::::5;::::0;;;::::5;::::0;;10668::::5;::::0;10623:34;;10705:9:::5;10668:13;:47::i;:::-;10726:16;10739:2;;10726:12;:16::i;:::-;10753:24;10767:9;10753:13;:24::i;:::-;-1:-1:-1::0;;;;;10793:61:0;::::5;10813:10;-1:-1:-1::0;;;;;;;;;;;10834:9:0::5;10844;:7;:9::i;:::-;10793:61;;;;;;;;;;;;;;;;8507:2359;7085:1;7390::::4;7253::::3;6932::::2;;7573::::1;8168:2705:::0;;;:::o;5562:49::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5562:49:0;;;;;;:::o;28887:136::-;6758:7;;-1:-1:-1;;;;;6758:7:0;6744:10;:21;6736:55;;;;-1:-1:-1;;;6736:55:0;;;;;;;;;28991:7:::1;::::0;:24:::1;::::0;-1:-1:-1;;;;;28991:7:0;;::::1;::::0;:24;::::1;;;::::0;29008:6;;28991:7:::1;:24:::0;:7;:24;29008:6;28991:7;:24;::::1;;;;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;28991:24:0;28887:136:::0;:::o;5960:50::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5960:50:0;;;;;;;;;;;;;;;;;;;;:::o;32816:894::-;6758:7;;32977:4;;-1:-1:-1;;;;;6758:7:0;6744:10;:21;6736:55;;;;-1:-1:-1;;;6736:55:0;;;;;;;;;33018:18:::1;::::0;;;:6:::1;:18;::::0;;;;:26:::1;;::::0;-1:-1:-1;;;;;33011:33:0;;::::1;33018:26:::0;::::1;33011:33;33003:57;;;;-1:-1:-1::0;;;33003:57:0::1;;;;;;;;;33102:6;::::0;33074:18:::1;::::0;;;:6:::1;:18;::::0;;;;:26:::1;;::::0;:34:::1;33071:605;;;33120:15;33136:24:::0;;;:12:::1;:24;::::0;;;;;;;:32:::1;::::0;;::::1;::::0;33226:7:::1;::::0;-1:-1:-1;;;;;33226:7:0::1;33207:27:::0;;:18:::1;:27:::0;;;;;:48;;::::1;::::0;33273:24;;::::1;33270:88;;33338:4;33331:11;;;;;;33270:88;33071:605;;;;;33405:6;::::0;33377:18:::1;::::0;;;:6:::1;:18;::::0;;;;:26:::1;;::::0;:34:::1;33374:302;;;33427:15;33443:25:::0;;;:13:::1;:25;::::0;;;;;;;:33:::1;;::::0;33534:7:::1;::::0;-1:-1:-1;;;;;33534:7:0::1;33515:27:::0;;:18:::1;:27:::0;;;;;;:48:::1;;::::0;33580:24;;::::1;33577:88;;33645:4;33638:11;;;;;;33577:88;33374:302;;;-1:-1:-1::0;33693:5:0::1;32816:894:::0;;;;:::o;33722:1137::-;33865:2;:4;;;;;;;-1:-1:-1;;;;;33936:18:0;;;;;:11;:18;;;;;:27;;;33930:5;;33936:27;33964:6;33971:9;:7;:9::i;:::-;33910:71;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;33910:71:0;;;33900:82;;;;;;33880:102;;34004:6;;33996;:14;33993:166;;;34026:40;34041:11;34053:5;34059:6;34026:14;:40::i;:::-;-1:-1:-1;;;;;34111:18:0;;;;;;:11;:18;;;;;:29;;;:36;;34145:1;34111:36;:33;:36;:::i;:::-;-1:-1:-1;;;;;34081:18:0;;;;;;:11;:18;;;;;:29;;:66;33993:166;34180:6;;34172;:14;34169:167;;;34202:41;34218:11;34230:5;34236:6;34202:15;:41::i;:::-;-1:-1:-1;;;;;34288:18:0;;;;;;:11;:18;;;;;:29;;;:36;;34322:1;34288:36;:33;:36;:::i;:::-;-1:-1:-1;;;;;34258:18:0;;;;;;:11;:18;;;;;:29;;:66;34169:167;34346:29;34366:5;34372:2;;34346:19;:29::i;:::-;34406:46;;;;;;;;34414:2;;34406:46;;;;34417:11;34406:46;;;;34429:5;-1:-1:-1;;;;;34406:46:0;;;;;34435:9;:7;:9::i;:::-;34406:46;;;;;;;;;-1:-1:-1;34386:19:0;;;:6;:19;;;;;;:66;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;34386:66:0;-1:-1:-1;;;;;34386:66:0;;;;;;;;;;;;;;;;;;;;;;;;34463:18;;;;;:11;:18;;;;:39;;;34545:9;:7;:9::i;:::-;-1:-1:-1;;;;;34513:18:0;;;;;;:11;:18;;;;;:31;;:41;34597:29;34525:5;34619:6;34597:15;:29::i;:::-;-1:-1:-1;;;;;34565:18:0;;;;;;;:11;:18;;;;;;;;:31;;:61;;;;34650:29;;;;;;;;;;34670:2;;34650:29;;;;;;;;;;;;34637:12;;;:8;:12;;;;;;;:42;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;34637:42:0;;;;;;;;;;;34690;34650:29;34565:18;34725:6;34690:16;:42::i;:::-;34743:21;34757:6;34743:13;:21::i;:::-;-1:-1:-1;;;;;34806:18:0;;;;;;;:11;:18;;;;;:27;;;;;;;-1:-1:-1;;;;;;;;;;;34834:6:0;34841:9;:7;:9::i;:::-;34780:71;;;;;;;;;;;;;;;;33722:1137;;;:::o;160:181::-;218:7;250:5;;;274:6;;;;266:46;;;;-1:-1:-1;;;266:46:0;;;;;;;;;332:1;160:181;-1:-1:-1;;;160:181:0:o;353:136::-;411:7;438:43;442:1;445;438:43;;;;;;;;;;;;;;;;;:3;:43::i;31288:314::-;6758:7;;-1:-1:-1;;;;;6758:7:0;6744:10;:21;6736:55;;;;-1:-1:-1;;;6736:55:0;;;;;;;;;31543:47:::1;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;;::::1;::::0;;;-1:-1:-1;;;;;31543:47:0;;::::1;::::0;;;;;;;;;;;;;;;;;;-1:-1:-1;31526:16:0;;;:6:::1;:16:::0;;;;;;;:64;;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;-1:-1:-1;;;;;;31526:64:0::1;::::0;;;::::1;;::::0;;;;::::1;::::0;::::1;::::0;;::::1;::::0;;::::1;::::0;31288:314::o;30171:1109::-;6758:7;;-1:-1:-1;;;;;6758:7:0;6744:10;:21;6736:55;;;;-1:-1:-1;;;6736:55:0;;;;;;;;;30430:19:::1;30464::::0;30512:6:::1;;30497:13;:21;30494:205;;;-1:-1:-1::0;;;;;30543:21:0;::::1;;::::0;;;:11:::1;:21;::::0;;;;:32:::1;;::::0;:39:::1;::::0;30580:1:::1;30543:39;:36;:39;:::i;:::-;30531:51;;30494:205;;;30617:6;;30602:13;:21;30599:100;;;-1:-1:-1::0;;;;;30648:21:0;::::1;;::::0;;;:11:::1;:21;::::0;;;;:32:::1;;::::0;:39:::1;::::0;30685:1:::1;30648:39;:36;:39;:::i;:::-;30636:51;;30599:100;-1:-1:-1::0;;;;;30733:21:0;::::1;30709:23;30733:21:::0;;;:11:::1;:21;::::0;;;;:34:::1;;::::0;:53:::1;::::0;30772:13;30733:53:::1;:38;:53;:::i;:::-;30709:77;;30797:22;30820:11;:21;30832:8;-1:-1:-1::0;;;;;30820:21:0::1;-1:-1:-1::0;;;;;30820:21:0::1;;;;;;;;;;;;:33;;;30797:56;;30864:26;30891:11;:21;30903:8;-1:-1:-1::0;;;;;30891:21:0::1;-1:-1:-1::0;;;;;30891:21:0::1;;;;;;;;;;;;:37;;;30864:64;;30939:24;30964:11;:21;30976:8;-1:-1:-1::0;;;;;30964:21:0::1;-1:-1:-1::0;;;;;30964:21:0::1;;;;;;;;;;;;:35;;;30939:60;;31032:145;;;;;;;;31043:9;31032:145;;;;31053:8;-1:-1:-1::0;;;;;31032:145:0::1;;;;;31062:9;-1:-1:-1::0;;;;;31032:145:0::1;;;;;31072:11;31032:145;;;;31084:11;31032:145;;;;31096:16;31032:145;;;;31113:15;31032:145;;;;31129:13;31032:145;;;;31143:14;31032:145;;;;31158:18;31032:145;;::::0;31010:11:::1;:21;31022:8;-1:-1:-1::0;;;;;31010:21:0::1;-1:-1:-1::0;;;;;31010:21:0::1;;;;;;;;;;;;:167;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;31010:167:0::1;;;;;-1:-1:-1::0;;;;;31010:167:0::1;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;31010:167:0::1;;;;;-1:-1:-1::0;;;;;31010:167:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31225:43;31266:1;31225:11;:22;31237:9;-1:-1:-1::0;;;;;31225:22:0::1;-1:-1:-1::0;;;;;31225:22:0::1;;;;;;;;;;;;:36;;;:40;;:43;;;;:::i;:::-;-1:-1:-1::0;;;;;31188:22:0;;::::1;;::::0;;;:11:::1;:22;::::0;;;;:36:::1;;:80:::0;;;;-1:-1:-1;;;;;;;;;;30171:1109:0:o;32112:343::-;6758:7;;-1:-1:-1;;;;;6758:7:0;6744:10;:21;6736:55;;;;-1:-1:-1;;;6736:55:0;;;;;;;;;32385:58:::1;::::0;;::::1;::::0;::::1;::::0;;;;;-1:-1:-1;;;;;32385:58:0;;::::1;;::::0;;::::1;::::0;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;32366:18:0;;;:12:::1;:18:::0;;;;;;:77;;;;;::::1;::::0;::::1;::::0;;-1:-1:-1;;;;;;32366:77:0::1;::::0;;;::::1;;::::0;;;;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;::::1;::::0;32112:343::o;32463:345::-;6758:7;;-1:-1:-1;;;;;6758:7:0;6744:10;:21;6736:55;;;;-1:-1:-1;;;6736:55:0;;;;;;;;;32737:59:::1;::::0;;::::1;::::0;::::1;::::0;;;;;-1:-1:-1;;;;;32737:59:0;;::::1;;::::0;;::::1;::::0;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;32717:19:0;;;:13:::1;:19:::0;;;;;;:79;;;;;::::1;::::0;::::1;::::0;;-1:-1:-1;;;;;;32717:79:0::1;::::0;;;::::1;;::::0;;;;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;::::1;::::0;32463:345::o;693:471::-;751:7;996:6;992:47;;-1:-1:-1;1026:1:0;1019:8;;992:47;1063:5;;;1067:1;1063;:5;:1;1087:5;;;;;:10;1079:56;;;;-1:-1:-1;;;1079:56:0;;;;;;;;1172:132;1230:7;1257:39;1261:1;1264;1257:39;;;;;;;;;;;;;;;;;:3;:39::i;31610:490::-;6758:7;;-1:-1:-1;;;;;6758:7:0;6744:10;:21;6736:55;;;;-1:-1:-1;;;6736:55:0;;;;;;;;;31912:79:::1;;;;;;;;31926:8;31912:79;;;;31935:8;31912:79;;;;31944:12;-1:-1:-1::0;;;;;31912:79:0::1;;;;;31957:10;-1:-1:-1::0;;;;;31912:79:0::1;;;;;31968:10;31912:79;;;;31979:11;31912:79;;::::0;31884:17:::1;:27;31902:8;31884:27;;;;;;;;;;;:107;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;31884:107:0::1;;;;;-1:-1:-1::0;;;;;31884:107:0::1;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;31884:107:0::1;;;;;-1:-1:-1::0;;;;;31884:107:0::1;;;;;;;;;;;;;;;;;;;;;;;;;32037:51;32077:10;32037:11;:23;32049:10;-1:-1:-1::0;;;;;32037:23:0::1;-1:-1:-1::0;;;;;32037:23:0::1;;;;;;;;;;;;:35;;;:39;;:51;;;;:::i;:::-;-1:-1:-1::0;;;;;32001:23:0;;::::1;;::::0;;;:11:::1;:23;::::0;;;;:35:::1;;:87:::0;;;;-1:-1:-1;;;;;31610:490:0:o;18300:872::-;18420:4;18466:18;;;:6;:18;;;;;:26;;;-1:-1:-1;;;;;18466:26:0;18454:10;:38;18446:80;;;;-1:-1:-1;;;18446:80:0;;;;;;;;;18568:6;;18540:18;;;;:6;:18;;;;;:26;;;:34;18537:605;;;18586:15;18602:24;;;:12;:24;;;;;;;;:32;;;;;18692:7;;-1:-1:-1;;;;;18692:7:0;18673:27;;:18;:27;;;;;:48;;;;18739:24;;;18736:88;;18804:4;18797:11;;;;;;18736:88;18537:605;;;;;18871:6;;18843:18;;;;:6;:18;;;;;:26;;;:34;18840:302;;;18893:15;18909:25;;;:13;:25;;;;;;;;:33;;;19000:7;;-1:-1:-1;;;;;19000:7:0;18981:27;;:18;:27;;;;;;:48;;;19046:24;;;19043:88;;19111:4;19104:11;;;;;;19043:88;18840:302;;;-1:-1:-1;19159:5:0;18300:872;;;;:::o;20594:1167::-;20698:2;:4;;;;;;;20763:10;20774:23;;;:11;:23;;;;;:32;;;-1:-1:-1;;;;;20774:32:0;20807:6;20814:9;:7;:9::i;:::-;20743:81;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;20743:81:0;;;20733:92;;;;;;20713:112;;20847:6;;20839;:14;20836:181;;;20869:45;20884:11;20896:10;20907:6;20869:14;:45::i;:::-;20976:10;20964:23;;;;:11;:23;;;;;:34;;;:41;;21003:1;20964:41;:38;:41;:::i;:::-;20941:10;20929:23;;;;:11;:23;;;;;:34;;:76;20836:181;21038:6;;21030;:14;21027:182;;;21060:46;21076:11;21088:10;21099:6;21060:15;:46::i;:::-;21168:10;21156:23;;;;:11;:23;;;;;:34;;;:41;;21195:1;21156:41;:38;:41;:::i;:::-;21133:10;21121:23;;;;:11;:23;;;;;:34;;:76;21027:182;21219:16;21232:2;;21219:12;:16::i;:::-;21266:51;;;;;;;;21274:2;;21266:51;;;;21277:11;21266:51;;;;21289:10;-1:-1:-1;;;;;21266:51:0;;;;;21300:9;:7;:9::i;:::-;21266:51;;;;;;;;;-1:-1:-1;21246:19:0;;;:6;:19;;;;;;:71;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;21246:71:0;-1:-1:-1;;;;;21246:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21340:10;21328:23;;:11;:23;;;;:44;;;21420:9;:7;:9::i;:::-;21395:10;21383:23;;;;:11;:23;;;;;:36;;:46;;;;21477:34;;21504:6;21477:15;:34::i;:::-;21452:10;21440:23;;;;:11;:23;;;;;;;;:36;;:71;;;;21535:34;;;;;;;;;;21555:2;;21535:34;;;;;;;;;;;;21522:12;;;:8;:12;;;;;;;:47;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;21522:47:0;-1:-1:-1;;;;;21522:47:0;;;;;;;;;21580:21;21594:6;21580:13;:21::i;:::-;21612:44;21626:11;21638:10;21649:6;21612:13;:44::i;:::-;21715:10;21703:23;;;;:11;:23;;;;;:32;;;-1:-1:-1;;;;;21703:32:0;;-1:-1:-1;;;;;;;;;;;21736:6:0;21743:9;:7;:9::i;:::-;21672:81;;;;;;;;;;;;;;;;20594:1167;;:::o;14532:190::-;-1:-1:-1;;;;;14675:18:0;;;;;;:11;:18;;;;;:32;;;:39;;14712:1;14675:39;:36;:39;:::i;:::-;-1:-1:-1;;;;;14642:18:0;;;;;;;:11;:18;;;;;:32;;:72;14532:190::o;14998:309::-;15170:25;15186:8;15170:15;:25::i;:::-;15206:7;:9;;;;;;;;15251:48;;;;;;;;;;;-1:-1:-1;;;;;15251:48:0;;;;;;;;;;;;;;;;15285:9;:7;:9::i;:::-;15251:48;;15295:1;15251:48;;;;;;;;;;;;;;15226:24;;;:12;:24;;;;;:73;;;;;;;;;;;;;-1:-1:-1;;;;;;15226:73:0;-1:-1:-1;;;;;15226:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;14998:309:0:o;16694:313::-;16867:26;16884:8;16867:16;:26::i;:::-;16904:7;:9;;;;;;;;16950:49;;;;;;;;;;;-1:-1:-1;;;;;16950:49:0;;;;;;;;;;;;;;;;16985:9;:7;:9::i;:::-;16950:49;;16995:1;16950:49;;;;;;;;;;;;;;16924:25;;;:13;:25;;;;;:75;;;;;;;;;;;;;-1:-1:-1;;;;;;16924:75:0;-1:-1:-1;;;;;16924:75:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;16694:313:0:o;19184:194::-;-1:-1:-1;;;;;19338:18:0;19305:4;19338:18;;;:11;:18;;;;;:32;;;;19184:194::o;19384:222::-;-1:-1:-1;;;;;19556:18:0;;19523:4;19556:18;;;:11;:18;;;;;:31;;;:42;;19592:5;19556:42;:35;:42;:::i;19612:190::-;-1:-1:-1;;;;;19764:18:0;19731:4;19764:18;;;:11;:18;;;;;:30;;;;19612:190::o;19814:198::-;-1:-1:-1;;;;;19970:18:0;19937:4;19970:18;;;:11;:18;;;;;:34;;;;19814:198::o;13491:1033::-;-1:-1:-1;;;;;13684:18:0;;;13658:25;13684:18;;;:11;:18;;;;;;;:27;;;;;;;13735:25;;13756:3;;13735:16;;:8;;:16;:12;:16;:::i;:25::-;13722:38;;13771:5;;:7;;;;;;;;;;;;;13814:57;;;;;;;;13828:5;;13814:57;;;;13834:5;13814:57;;;;13840:5;-1:-1:-1;;;;;13814:57:0;;;;;13846:9;-1:-1:-1;;;;;13814:57:0;;;;;13856:4;13814:57;;;;13861:9;:7;:9::i;:::-;13814:57;;13807:5;;;13789:24;;;;:17;:24;;;;;;;;:82;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;13789:82:0;;;-1:-1:-1;;;;;13789:82:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13917:22;;;;;:11;:22;;;;:34;;;:44;;13956:4;13917:38;:44::i;:::-;-1:-1:-1;;;;;13882:22:0;;;;;;:11;:22;;;;;:34;;:79;;;;13989:24;14009:3;13989:15;:8;14002:1;13989:15;:12;:15;:::i;:24::-;13972:41;-1:-1:-1;14024:16:0;14041:24;14061:3;14041:15;:8;14054:1;14041:15;:12;:15;:::i;:24::-;14124:7;;;-1:-1:-1;;;;;14124:7:0;14112:20;;;;:11;:20;;;;;:35;;14024:41;;-1:-1:-1;14112:49:0;;14152:8;14112:49;:39;:49;:::i;:::-;14088:7;;;-1:-1:-1;;;;;14088:7:0;;;14076:20;;;;:11;:20;;;;;;:35;;:85;;;;14220:7;;;14208:20;;;:35;;;:49;;14248:8;14208:49;:39;:49;:::i;:::-;14184:7;;-1:-1:-1;;;;;14184:7:0;14172:20;;;;:11;:20;;;;;:35;;:85;14302:9;:7;:9::i;:::-;14280:7;;-1:-1:-1;;;;;14280:7:0;14268:20;;;;:11;:20;;;;;:33;;:43;14356:9;:7;:9::i;:::-;14334:7;;-1:-1:-1;;;;;14334:7:0;;;14322:20;;;;:11;:20;;;;;;:33;;:43;;;;14376:24;;:18;;;;:24;;;;;14395:4;;14376:24;14322:20;14376:24;14395:4;14376:18;:24;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;14423:7:0;;-1:-1:-1;;;;;14423:7:0;;;14411:20;;;;:11;:20;;;;;;:28;:47;;:28;;;:47;;;;;14449:8;;14411:47;;:20;:47;14449:8;14411:28;:47;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;14481:7:0;;-1:-1:-1;;;;;14481:7:0;;;14469:20;;;;:11;:20;;;;;;:28;;;:47;;:28;;;:47;;;;;14507:8;;14469:47;;:20;:47;14507:8;14469:28;:47;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14469:47:0;13491:1033;;;;;;;:::o;20018:570::-;20144:7;;-1:-1:-1;;;;;20144:7:0;20119:9;20129:23;;;:14;:23;;;;;:35;;20185:22;20202:4;20185:12;20129:35;20194:2;20185:12;:8;:12;:::i;:22::-;20175:32;-1:-1:-1;20222:12:0;:4;20231:2;20222:12;:8;:12;:::i;:::-;:15;;20221:38;;-1:-1:-1;20243:12:0;:4;20252:2;20243:12;:8;:12;:::i;:::-;:15;20221:38;:59;;;-1:-1:-1;20264:12:0;:4;20273:2;20264:12;:8;:12;:::i;:::-;:15;20221:59;:80;;;-1:-1:-1;20285:12:0;:4;20294:2;20285:12;:8;:12;:::i;:::-;:15;20221:80;:101;;;-1:-1:-1;20306:12:0;:4;20315:2;20306:12;:8;:12;:::i;:::-;:15;20221:101;20218:363;;;20395:7;;-1:-1:-1;;;;;20395:7:0;20380:23;;;;:14;:23;;;;;:35;:45;;20420:4;20380:45;:39;:45;:::i;:::-;20359:7;;-1:-1:-1;;;;;20359:7:0;20344:23;;;;:14;:23;;;;;;;;;:81;;;;20448:38;;;;;;;20460:10;20448:38;;;;;;;;;;20476:9;:7;:9::i;:::-;20448:38;;20445:1;20435:12;;;;:9;:12;;;;:51;;:12;:51;;-1:-1:-1;;;;;;20435:51:0;-1:-1:-1;;;;;20435:51:0;;;;;;;;;;;;;;:12;:51;;;;;;20497:25;;:10;;:25;;;;;;;;20435:12;20497:25;;:10;:25;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20497:25:0;20547:10;-1:-1:-1;;;;;20538:31:0;;20559:4;20564;20538:31;;;;;;;;;;;;;;;;20018:570;;;:::o;18008:284::-;18117:9;18127:25;18148:3;18127:16;:8;18140:2;18127:16;:12;:16;:::i;:25::-;18192:7;;-1:-1:-1;;;;;18192:7:0;18163:13;18177:23;;;:14;:23;;;;;:35;18117;;-1:-1:-1;18163:13:0;18177:45;;18117:35;18177:45;:39;:45;:::i;:::-;18163:59;;18257:27;;;;;;;;18265:8;18257:27;;;;18274:9;:7;:9::i;:::-;18257:27;;18248:7;;;-1:-1:-1;;;;;18248:7:0;18233:23;;;;:14;:23;;;;;;;;:51;;;;;;;;;;-1:-1:-1;;;18008:284:0:o;36166:603::-;6758:7;;-1:-1:-1;;;;;6758:7:0;6744:10;:21;6736:55;;;;-1:-1:-1;;;6736:55:0;;;;;;;;;36341:7:::1;::::0;-1:-1:-1;;;;;36341:7:0::1;36316:9;36326:23:::0;;;:14:::1;:23;::::0;;;;:35;;36382:22:::1;36399:4;36382:12;36326:35:::0;36391:2:::1;36382:12;:8;:12;:::i;:22::-;36372:32:::0;-1:-1:-1;36420:12:0::1;:4:::0;36429:2:::1;36420:12;:8;:12;:::i;:::-;:15:::0;;36419:38:::1;;-1:-1:-1::0;36441:12:0::1;:4:::0;36450:2:::1;36441:12;:8;:12;:::i;:::-;:15:::0;36419:38:::1;:59;;;-1:-1:-1::0;36462:12:0::1;:4:::0;36471:2:::1;36462:12;:8;:12;:::i;:::-;:15:::0;36419:59:::1;:80;;;-1:-1:-1::0;36483:12:0::1;:4:::0;36492:2:::1;36483:12;:8;:12;:::i;:::-;:15:::0;36419:80:::1;:101;;;-1:-1:-1::0;36504:12:0::1;:4:::0;36513:2:::1;36504:12;:8;:12;:::i;:::-;:15:::0;36419:101:::1;36416:346;;;36592:7;::::0;-1:-1:-1;;;;;36592:7:0::1;36577:23;::::0;;;:14:::1;:23;::::0;;;;:35;:45:::1;::::0;36617:4;36577:45:::1;:39;:45;:::i;:::-;36556:7;::::0;-1:-1:-1;;;;;36556:7:0;;::::1;36541:23;::::0;;;:14:::1;:23;::::0;;;;;;;;:81;;;;36645:33;;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;::::1;::::0;;;;;;36668:9:::1;:7;:9::i;:::-;36645:33:::0;;36642:1:::1;36632:12;::::0;;;:9:::1;:12;::::0;;;:46;;:12;:46;;-1:-1:-1;;;;;;36632:46:0::1;-1:-1:-1::0;;;;;36632:46:0;;::::1;;::::0;;;;::::1;::::0;;;:12;:46;;::::1;::::0;;;36689:20;;:14;;::::1;::::0;:20:::1;::::0;::::1;;::::0;;;;;36632:12;36689:20;;:14;:20;::::1;;;;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;36689:20:0;36734:5;-1:-1:-1::0;;;;;36725:25:0::1;;36740:4;36745;36725:25;;;;;;;;;;;;;;;;36416:346;6802:1;;36166:603:::0;;:::o;34867:1291::-;6758:7;;-1:-1:-1;;;;;6758:7:0;6744:10;:21;6736:55;;;;-1:-1:-1;;;6736:55:0;;;;;;;;;-1:-1:-1;;;;;35066:18:0;;::::1;35048:17;35066:18:::0;;;:11:::1;:18;::::0;;;;:27:::1;;::::0;;;::::1;::::0;35117:25:::1;35138:3;35117:16;:8:::0;35130:2:::1;35117:16;:12;:16;:::i;:25::-;35104:38;;35153:5;;:7;;;;;;;;;;;;;35196:57;;;;;;;;35210:5;;35196:57;;;;35216:5;35196:57;;;;35222:5;-1:-1:-1::0;;;;;35196:57:0::1;;;;;35228:9;-1:-1:-1::0;;;;;35196:57:0::1;;;;;35238:4;35196:57;;;;35243:9;:7;:9::i;:::-;35196:57:::0;;35189:5:::1;::::0;;35171:24:::1;::::0;;;:17:::1;:24;::::0;;;;;;;:82;;;;;;::::1;::::0;::::1;::::0;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;;;;;35171:82:0;;::::1;-1:-1:-1::0;;;;;35171:82:0;;::::1;;::::0;;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;::::1;;::::0;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;::::0;;::::1;::::0;;;;35295:18;;::::1;::::0;;:11:::1;:18:::0;;;;:30:::1;;::::0;:40:::1;::::0;35330:4;35295:34:::1;:40::i;:::-;-1:-1:-1::0;;;;;35264:18:0;::::1;;::::0;;;:11:::1;:18;::::0;;;;:30:::1;;:71:::0;;;;35363:24:::1;35383:3;35363:15;:8:::0;35376:1:::1;35363:15;:12;:15;:::i;:24::-;35346:41:::0;-1:-1:-1;35398:16:0::1;35415:24;35435:3;35415:15;:8:::0;35428:1:::1;35415:15;:12;:15;:::i;:24::-;35398:41:::0;-1:-1:-1;35450:17:0::1;35468:25;35489:3;35468:16;:8:::0;35481:2:::1;35468:16;:12;:16;:::i;:25::-;35552:7;::::0;;-1:-1:-1;;;;;35552:7:0::1;35540:20;::::0;;;:11:::1;:20;::::0;;;;:35:::1;::::0;35450:43;;-1:-1:-1;35540:49:0::1;::::0;35580:8;35540:49:::1;:39;:49;:::i;:::-;35516:7;::::0;;-1:-1:-1;;;;;35516:7:0;;::::1;35504:20;::::0;;;:11:::1;:20;::::0;;;;;:35;::::1;:85:::0;;;;35648:7;;::::1;35636:20:::0;;;:35:::1;;::::0;:49:::1;::::0;35676:8;35636:49:::1;:39;:49;:::i;:::-;35612:7;::::0;;-1:-1:-1;;;;;35612:7:0;;::::1;35600:20;::::0;;;:11:::1;:20;::::0;;;;;:35:::1;;:85:::0;;;;35744:7;;::::1;35732:20:::0;;;:35:::1;;::::0;:50:::1;::::0;35772:9;35732:50:::1;:39;:50;:::i;:::-;35708:7;::::0;-1:-1:-1;;;;;35708:7:0::1;35696:20;::::0;;;:11:::1;:20;::::0;;;;:35:::1;;:86:::0;35827:9:::1;:7;:9::i;:::-;35805:7;::::0;-1:-1:-1;;;;;35805:7:0::1;35793:20;::::0;;;:11:::1;:20;::::0;;;;:33:::1;;:43:::0;35881:9:::1;:7;:9::i;:::-;35859:7;::::0;-1:-1:-1;;;;;35859:7:0::1;35847:20;::::0;;;:11:::1;:20;::::0;;;;:33:::1;;:43:::0;35935:9:::1;:7;:9::i;:::-;35913:7;::::0;-1:-1:-1;;;;;35913:7:0;;::::1;35901:20;::::0;;;:11:::1;:20;::::0;;;;;:33:::1;;:43:::0;;;;35955:20;;:14;;::::1;::::0;:20;::::1;;;::::0;35970:4;;35955:20;35901;35955;35970:4;35955:14;:20;::::1;;;;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;-1:-1:::0;35998:7:0::1;::::0;-1:-1:-1;;;;;35998:7:0;;::::1;35986:20;::::0;;;:11:::1;:20;::::0;;;;;:28;:47;;:28;::::1;::::0;:47;::::1;;;::::0;36024:8;;35986:47;;:20;:47;36024:8;35986:28;:47;::::1;;;;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;-1:-1:::0;36056:7:0::1;::::0;-1:-1:-1;;;;;36056:7:0;;::::1;36044:20;::::0;;;:11:::1;:20;::::0;;;;;:28:::1;;::::0;:47;;:28;::::1;::::0;:47;::::1;;;::::0;36082:8;;36044:47;;:20;:47;36082:8;36044:28;:47;::::1;;;;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;-1:-1:::0;36114:7:0::1;::::0;-1:-1:-1;;;;;36114:7:0;;::::1;36102:20;::::0;;;:11:::1;:20;::::0;;;;;:28:::1;;::::0;:48;;:28;::::1;::::0;:48;::::1;;;::::0;36140:9;;36102:48;;:20;:48;36140:9;36102:28;:48;::::1;;;;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;495:192:0::0;581:7;617:12;609:6;;;;601:29;;;;-1:-1:-1;;;601:29:0;;;;;;;;;;-1:-1:-1;;;653:5:0;;;495:192::o;1316:345::-;1402:7;1504:12;1497:5;1489:28;;;;-1:-1:-1;;;1489:28:0;;;;;;;;;;;1528:9;1544:1;1540;:5;;;;;;;1316:345;-1:-1:-1;;;;;1316:345:0:o;15315:1368::-;15422:21;15438:4;15422:15;:21::i;:::-;15454:13;15468:21;15485:3;15468:12;:4;15477:2;15468:12;:8;:12;:::i;:21::-;15560:7;;-1:-1:-1;;;;;15560:7:0;15541:27;;;;:18;:27;;;;;:40;15454:35;;-1:-1:-1;15541:51:0;;15454:35;15541:51;:44;:51;:::i;:::-;15519:7;;;-1:-1:-1;;;;;15519:7:0;;;15500:27;;;;:18;:27;;;;;;:92;;;;15661:10;;15635:7;;;;;15616:27;;;;;:40;:56;;;:44;:56;:::i;:::-;:58;15613:535;;;15761:10;;15735:7;;-1:-1:-1;;;;;15735:7:0;15703:12;15716:27;;;:18;:27;;;;;:40;15703:12;;15716:56;;:40;:56;:44;:56;:::i;:::-;15703:69;;15787:10;15798:23;15813:7;15798:10;;:14;;:23;;;;:::i;:::-;15896:7;;-1:-1:-1;;;;;15896:7:0;15877:27;;;;:18;:27;;;;;:40;15787:34;;-1:-1:-1;15877:51:0;;15787:34;15877:51;:44;:51;:::i;:::-;15855:7;;;-1:-1:-1;;;;;15855:7:0;;;15836:27;;;;:18;:27;;;;;;:92;;;;16011:7;;;15992:27;;;:48;;;:61;;16045:7;15992:61;:52;:61;:::i;:::-;15962:7;;-1:-1:-1;;;;;15962:7:0;15943:27;;;;:18;:27;;;;;:48;;:110;16113:9;:7;:9::i;:::-;16087:7;;-1:-1:-1;;;;;16087:7:0;16068:27;;;;:18;:27;;;;;:44;;:54;-1:-1:-1;;15613:535:0;16207:10;;16181:7;;;-1:-1:-1;;;;;16181:7:0;16219:1;16162:27;;;:18;:27;;;;;:40;;;;16219:1;;16162:56;;:40;:56;:44;:56;:::i;:::-;:58;16159:517;;;16305:10;;16279:7;;;-1:-1:-1;;;;;16279:7:0;16246:12;16260:27;;;:18;:27;;;;;:40;;;;16246:12;;16260:56;;:40;:56;:44;:56;:::i;:::-;16246:70;;16331:9;16341:23;16356:7;16341:10;;:14;;:23;;;;:::i;:::-;16439:7;;;-1:-1:-1;;;;;16439:7:0;16420:27;;;;:18;:27;;;;;:40;;16331:33;;-1:-1:-1;16420:50:0;;16331:33;16420:50;:44;:50;:::i;:::-;16398:7;;;-1:-1:-1;;;;;16398:7:0;;;16379:27;;;;:18;:27;;;;;;:40;;:91;;;;16553:7;;;16534:27;;;:48;;;:61;;16587:7;16534:61;:52;:61;:::i;:::-;16504:7;;-1:-1:-1;;;;;16504:7:0;16485:27;;;;:18;:27;;;;;:48;;:110;16655:9;:7;:9::i;:::-;16629:7;;-1:-1:-1;;;;;16629:7:0;16610:27;;;;:18;:27;;;;;:44;;:54;-1:-1:-1;;15315:1368:0;;:::o;17015:713::-;17123:15;17139:21;17156:3;17139:12;:4;17148:2;17139:12;:8;:12;:::i;:21::-;17231:7;;;-1:-1:-1;;;;;17231:7:0;17212:27;;;;:18;:27;;;;;:40;;17123:37;;-1:-1:-1;17212:53:0;;17123:37;17212:53;:44;:53;:::i;:::-;17190:7;;;-1:-1:-1;;;;;17190:7:0;;;17171:27;;;;:18;:27;;;;;;:40;;:94;;;;17324:10;;17298:7;;;;;17279:27;;;;;:40;;;;:56;;;:44;:56;:::i;:::-;:58;17276:445;;;17421:10;;17395:7;;;-1:-1:-1;;;;;17395:7:0;17363:11;17376:27;;;:18;:27;;;;;:40;;;;17363:11;;17376:56;;:40;:56;:44;:56;:::i;:::-;17363:69;;17447:9;17457:22;17472:6;17457:10;;:14;;:22;;;;:::i;:::-;17554:7;;;-1:-1:-1;;;;;17554:7:0;17535:27;;;;:18;:27;;;;;:40;;17447:32;;-1:-1:-1;17535:50:0;;17447:32;17535:50;:44;:50;:::i;:::-;17513:7;;;-1:-1:-1;;;;;17513:7:0;;;17494:27;;;;:18;:27;;;;;;:40;;:91;;;;17668:7;;;17649:27;;;:48;;;:60;;17702:6;17649:60;:52;:60;:::i;:::-;17619:7;;-1:-1:-1;;;;;17619:7:0;17600:27;;;;:18;:27;;;;;:48;;:109;-1:-1:-1;;17015:713:0;;:::o;1667:130::-;1725:7;1752:37;1756:1;1759;1752:37;;;;;;;;;;;;;;;;;:3;:37::i;17736:258::-;17846:12;17859:25;17880:3;17859:16;:8;17872:2;17859:16;:12;:16;:::i;:25::-;17955:7;;;-1:-1:-1;;;;;17955:7:0;17936:27;;;;:18;:27;;;;;:40;;17846:38;;-1:-1:-1;17936:50:0;;17846:38;17936:50;:44;:50;:::i;:::-;17914:7;;;-1:-1:-1;;;;;17914:7:0;17895:27;;;;:18;:27;;;;;:40;:91;-1:-1:-1;;17736:258:0:o;1803:166::-;1889:7;1925:12;1917:6;1909:29;;;;-1:-1:-1;;;1909:29:0;;;;;;;;;;;1960:1;1956;:5;;;;;;;1803:166;-1:-1:-1;;;;1803:166:0:o;569:241:-1:-;;673:2;661:9;652:7;648:23;644:32;641:2;;;-1:-1;;679:12;641:2;85:6;72:20;97:33;124:5;97:33;;1081:1693;;;;;;;;;;;;;1406:3;1394:9;1385:7;1381:23;1377:33;1374:2;;;-1:-1;;1413:12;1374:2;230:6;217:20;242:41;277:5;242:41;;;1465:71;-1:-1;1573:2;1620:22;;217:20;242:41;217:20;242:41;;;1581:71;-1:-1;1689:2;1736:22;;217:20;242:41;217:20;242:41;;;1697:71;-1:-1;1805:2;1852:22;;217:20;242:41;217:20;242:41;;;1368:1406;;;;-1:-1;1368:1406;;1921:3;1961:22;;499:20;;2030:3;2070:22;;499:20;;-1:-1;2139:3;2179:22;;499:20;;-1:-1;2248:3;2288:22;;499:20;;-1:-1;2357:3;2397:22;;499:20;;-1:-1;2466:3;2506:22;;499:20;;-1:-1;2575:3;2616:22;;499:20;;-1:-1;2685:3;2726:22;;;499:20;;-1:-1;1368:1406;-1:-1;;1368:1406;2781:382;;;2910:2;2898:9;2889:7;2885:23;2881:32;2878:2;;;-1:-1;;2916:12;2878:2;230:6;217:20;242:41;277:5;242:41;;;2968:71;3076:2;3115:22;;;;362:20;;-1:-1;;;2872:291;3559:241;;3663:2;3651:9;3642:7;3638:23;3634:32;3631:2;;;-1:-1;;3669:12;3631:2;-1:-1;362:20;;3625:175;-1:-1;3625:175;4055:1533;;;;;;;;;;;;4346:3;4334:9;4325:7;4321:23;4317:33;4314:2;;;-1:-1;;4353:12;4314:2;512:6;499:20;4405:63;;4505:2;4556:9;4552:22;217:20;242:41;277:5;242:41;;;4513:71;-1:-1;4621:2;4668:22;;217:20;242:41;217:20;242:41;;;4308:1280;;;;-1:-1;4629:71;;4737:2;4776:22;;499:20;;-1:-1;4845:3;4885:22;;499:20;;4954:3;4994:22;;499:20;;-1:-1;5063:3;5103:22;;499:20;;-1:-1;5172:3;5212:22;;499:20;;-1:-1;5281:3;5321:22;;499:20;;-1:-1;5390:3;5430:22;;499:20;;-1:-1;5499:3;5540:22;;;499:20;;-1:-1;4308:1280;-1:-1;;4308:1280;5595:617;;;;;5750:3;5738:9;5729:7;5725:23;5721:33;5718:2;;;-1:-1;;5757:12;5718:2;512:6;499:20;5809:63;;5909:2;5952:9;5948:22;72:20;97:33;124:5;97:33;;;5712:500;;5917:63;;-1:-1;;;;6017:2;6056:22;;499:20;;6125:2;6164:22;499:20;;5712:500;6219:743;;;;;;6391:3;6379:9;6370:7;6366:23;6362:33;6359:2;;;-1:-1;;6398:12;6359:2;512:6;499:20;6450:63;;6550:2;6593:9;6589:22;72:20;97:33;124:5;97:33;;;6353:609;;6558:63;;-1:-1;;;;6658:2;6697:22;;499:20;;6766:2;6805:22;;499:20;;6874:3;6914:22;;;499:20;;-1:-1;6353:609;6969:366;;;7090:2;7078:9;7069:7;7065:23;7061:32;7058:2;;;-1:-1;;7096:12;7058:2;-1:-1;;499:20;;;7248:2;7287:22;;;499:20;;-1:-1;7052:283;7342:491;;;;7480:2;7468:9;7459:7;7455:23;7451:32;7448:2;;;-1:-1;;7486:12;7448:2;-1:-1;;499:20;;;7638:2;7677:22;;499:20;;-1:-1;7746:2;7785:22;;;499:20;;7442:391;-1:-1;7442:391;7840:869;;;;;;;8029:3;8017:9;8008:7;8004:23;8000:33;7997:2;;;-1:-1;;8036:12;7997:2;-1:-1;;499:20;;;8188:2;8227:22;;499:20;;-1:-1;8296:2;8335:22;;499:20;;8404:2;8443:22;;499:20;;-1:-1;8512:3;8552:22;;499:20;;-1:-1;8621:3;8661:22;499:20;;-1:-1;7991:718;-1:-1;7991:718;16720:873;9353:37;;;-1:-1;;36359:2;36355:14;;;;;17089:2;17080:12;;8965:74;36355:14;;;;;;;17207:12;;;8965:74;17334:12;;;9353:37;17445:12;;;9353:37;17556:12;;;16980:613;17600:222;-1:-1;;;;;35383:54;;;;8803:45;;17727:2;17712:18;;17698:124;17829:1584;-1:-1;;;;;35383:54;;;8803:45;;18511:2;18496:18;;9353:37;;;;18594:2;18579:18;;9353:37;;;;35383:54;;;18693:2;18678:18;;8803:45;18776:3;18761:19;;9353:37;;;;36355:14;18845:19;;9353:37;;;;35383:54;;;18960:3;18945:19;;8803:45;19044:3;19029:19;;9353:37;19128:3;19113:19;;9353:37;35383:54;;;19228:3;19213:19;;8803:45;19313:3;19298:19;;9353:37;;;;19398:3;19383:19;;9353:37;;;;18330:3;18315:19;;18301:1112;19420:444;-1:-1;;;;;35383:54;;;;8803:45;;19767:2;19752:18;;9353:37;;;;19850:2;19835:18;;9353:37;19603:2;19588:18;;19574:290;19871:556;-1:-1;;;;;35383:54;;;;8803:45;;20247:2;20232:18;;9353:37;;;;20330:2;20315:18;;9353:37;20413:2;20398:18;;9353:37;20082:3;20067:19;;20053:374;20434:210;35216:13;;35209:21;9236:34;;20555:2;20540:18;;20526:118;20651:1292;9353:37;;;-1:-1;;;;;35383:54;;;21243:2;21228:18;;8803:45;35383:54;;;;21342:2;21327:18;;8803:45;21425:2;21410:18;;9353:37;;;;21508:3;21493:19;;9353:37;;;;36355:14;21577:19;;9353:37;21676:3;21661:19;;9353:37;21760:3;21745:19;;9353:37;21844:3;21829:19;;9353:37;;;;21928:3;21913:19;;9353:37;21062:3;21047:19;;21033:910;21950:812;9353:37;;;-1:-1;;;;;35383:54;;;;22414:2;22399:18;;8803:45;22497:2;22482:18;;9353:37;;;;22580:2;22565:18;;9353:37;22663:3;22648:19;;9353:37;36355:14;22732:19;;9353:37;22233:3;22218:19;;22204:558;22769:444;9353:37;;;23116:2;23101:18;;9353:37;;;;-1:-1;;;;;35383:54;23199:2;23184:18;;8803:45;22952:2;22937:18;;22923:290;23220:310;;23367:2;;23388:17;23381:47;9547:5;34733:12;34890:6;23367:2;23356:9;23352:18;34878:19;-1:-1;35689:101;35703:6;35700:1;35697:13;35689:101;;;35770:11;;;;;35764:18;35751:11;;;34918:14;35751:11;35744:39;35718:10;;35689:101;;;35805:6;35802:1;35799:13;35796:2;;;-1:-1;34918:14;35861:6;23356:9;35852:16;;35845:27;35796:2;-1:-1;36264:7;36248:14;-1:-1;;36244:28;9705:39;;;;34918:14;9705:39;;23338:192;-1:-1;;;23338:192;23537:416;23737:2;23751:47;;;9981:2;23722:18;;;34878:19;-1:-1;;;34918:14;;;9997:35;10051:12;;;23708:245;23960:416;24160:2;24174:47;;;10302:2;24145:18;;;34878:19;10338:29;34918:14;;;10318:50;10387:12;;;24131:245;24383:416;24583:2;24597:47;;;10638:2;24568:18;;;34878:19;-1:-1;;;34918:14;;;10654:42;10715:12;;;24554:245;24806:416;25006:2;25020:47;;;10966:2;24991:18;;;34878:19;11002:34;34918:14;;;10982:55;-1:-1;;;11057:12;;;11050:36;11105:12;;;24977:245;25229:416;25429:2;25443:47;;;11356:2;25414:18;;;34878:19;-1:-1;;;34918:14;;;11372:44;11435:12;;;25400:245;25652:416;25852:2;25866:47;;;11686:2;25837:18;;;34878:19;-1:-1;;;34918:14;;;11702:44;11765:12;;;25823:245;26075:416;26275:2;26289:47;;;12016:2;26260:18;;;34878:19;-1:-1;;;34918:14;;;12032:44;12095:12;;;26246:245;26498:416;26698:2;26712:47;;;12346:2;26683:18;;;34878:19;12382:34;34918:14;;;12362:55;-1:-1;;;12437:12;;;12430:35;12484:12;;;26669:245;26921:416;27121:2;27135:47;;;12735:2;27106:18;;;34878:19;12771:34;34918:14;;;12751:55;-1:-1;;;12826:12;;;12819:38;12876:12;;;27092:245;27344:416;27544:2;27558:47;;;13127:2;27529:18;;;34878:19;-1:-1;;;34918:14;;;13143:42;13204:12;;;27515:245;27767:416;27967:2;27981:47;;;13455:2;27952:18;;;34878:19;13491:34;34918:14;;;13471:55;-1:-1;;;13546:12;;;13539:25;13583:12;;;27938:245;28190:416;28390:2;28404:47;;;13834:2;28375:18;;;34878:19;-1:-1;;;34918:14;;;13850:45;13914:12;;;28361:245;28613:416;28813:2;28827:47;;;14165:2;28798:18;;;34878:19;14201:34;34918:14;;;14181:55;14270:28;14256:12;;;14249:50;14318:12;;;28784:245;29036:416;29236:2;29250:47;;;14569:2;29221:18;;;34878:19;-1:-1;;;34918:14;;;14585:38;14642:12;;;29207:245;29459:416;29659:2;29673:47;;;14893:2;29644:18;;;34878:19;-1:-1;;;34918:14;;;14909:45;14973:12;;;29630:245;29882:416;30082:2;30096:47;;;15224:2;30067:18;;;34878:19;-1:-1;;;34918:14;;;15240:44;15303:12;;;30053:245;30305:416;30505:2;30519:47;;;15554:2;30490:18;;;34878:19;-1:-1;;;34918:14;;;15570:35;15624:12;;;30476:245;30728:416;30928:2;30942:47;;;15875:2;30913:18;;;34878:19;15911:31;34918:14;;;15891:52;15962:12;;;30899:245;31151:416;31351:2;31365:47;;;16213:2;31336:18;;;34878:19;16249:32;34918:14;;;16229:53;16301:12;;;31322:245;31574:222;9353:37;;;31701:2;31686:18;;31672:124;31803:700;9353:37;;;32223:2;32208:18;;9353:37;;;;-1:-1;;;;;35383:54;;;;32322:2;32307:18;;8803:45;32405:2;32390:18;;9353:37;32488:3;32473:19;;9353:37;32058:3;32043:19;;32029:474;32510:780;9353:37;;;32942:2;32927:18;;9353:37;;;;-1:-1;;;;;35383:54;;;33025:2;33010:18;;8803:45;35383:54;;33108:2;33093:18;;8803:45;33191:3;33176:19;;9353:37;36355:14;33260:19;;9353:37;32777:3;32762:19;;32748:542;33297:333;9353:37;;;33616:2;33601:18;;9353:37;33452:2;33437:18;;33423:207;33637:780;9353:37;;;34069:2;34054:18;;9353:37;;;;34152:2;34137:18;;9353:37;;;;34235:2;34220:18;;9353:37;34318:3;34303:19;;9353:37;34402:3;34387:19;;9353:37;33904:3;33889:19;;33875:542;34424:214;35599:4;35588:16;;;;16673:35;;34547:2;34532:18;;34518:120;36387:117;-1:-1;;;;;35383:54;;36446:35;;36436:2;;36495:1;;36485:12
Swarm Source
ipfs://e91114683e87c579a4c1ab765e39dc380e97192b6cf46ad56c69554a37672116
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.