Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 2,118 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Queue Exit | 10253688 | 1681 days ago | IN | 0 ETH | 0.00531168 | ||||
Contr User | 10232574 | 1685 days ago | IN | 0 ETH | 0.00084563 | ||||
Sent Jack Pot Re... | 10232483 | 1685 days ago | IN | 0 ETH | 0.00390361 | ||||
Update Cron Bala... | 10232457 | 1685 days ago | IN | 0 ETH | 0.00167868 | ||||
Register Dad | 10232448 | 1685 days ago | IN | 0.6 ETH | 0.02662171 | ||||
Register Dad | 10232443 | 1685 days ago | IN | 0.6 ETH | 0.02157384 | ||||
Register Dad | 10232423 | 1685 days ago | IN | 0.6 ETH | 0.01961259 | ||||
Register Dad | 10232348 | 1685 days ago | IN | 0.6 ETH | 0.01830508 | ||||
Register Dad | 10232319 | 1685 days ago | IN | 0.6 ETH | 0.01830508 | ||||
Register Dad | 10232313 | 1685 days ago | IN | 0.6 ETH | 0.01895883 | ||||
Register Dad | 10232307 | 1685 days ago | IN | 0.6 ETH | 0.01956253 | ||||
Register Dad | 10232298 | 1685 days ago | IN | 0.6 ETH | 0.02114134 | ||||
Register Dad | 10232294 | 1685 days ago | IN | 0.6 ETH | 0.01895883 | ||||
Register Dad | 10232290 | 1685 days ago | IN | 0.6 ETH | 0.02119634 | ||||
Register Dad | 10232284 | 1685 days ago | IN | 0.6 ETH | 0.02188009 | ||||
Register Dad | 10232165 | 1685 days ago | IN | 0.6 ETH | 0.02126666 | ||||
Register Dad | 10232156 | 1685 days ago | IN | 0.6 ETH | 0.02704726 | ||||
Register Dad | 10232143 | 1685 days ago | IN | 0.6 ETH | 0.0235351 | ||||
Register Dad | 10232129 | 1685 days ago | IN | 0.6 ETH | 0.02484261 | ||||
Register Dad | 10232037 | 1685 days ago | IN | 0.6 ETH | 0.02393135 | ||||
Register Dad | 10231931 | 1685 days ago | IN | 0.6 ETH | 0.02051259 | ||||
Register Dad | 10231909 | 1685 days ago | IN | 0.6 ETH | 0.026477 | ||||
Contr User | 10231844 | 1685 days ago | IN | 0 ETH | 0.00101484 | ||||
Contr User | 10231844 | 1685 days ago | IN | 0 ETH | 0.00089183 | ||||
Register Dad | 10231844 | 1685 days ago | IN | 0.6 ETH | 0.02026634 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
10232574 | 1685 days ago | 16.39528635 ETH | ||||
10232483 | 1685 days ago | 2.86768942 ETH | ||||
10232483 | 1685 days ago | 0.31863215 ETH | ||||
10232448 | 1685 days ago | 0.57565417 ETH | ||||
10232448 | 1685 days ago | 0.012 ETH | ||||
10232448 | 1685 days ago | 0.006 ETH | ||||
10232448 | 1685 days ago | 0.192 ETH | ||||
10232443 | 1685 days ago | 0.012 ETH | ||||
10232443 | 1685 days ago | 0.006 ETH | ||||
10232443 | 1685 days ago | 0.192 ETH | ||||
10232423 | 1685 days ago | 0.012 ETH | ||||
10232423 | 1685 days ago | 0.006 ETH | ||||
10232423 | 1685 days ago | 0.192 ETH | ||||
10232348 | 1685 days ago | 0.012 ETH | ||||
10232348 | 1685 days ago | 0.006 ETH | ||||
10232348 | 1685 days ago | 0.192 ETH | ||||
10232319 | 1685 days ago | 0.012 ETH | ||||
10232319 | 1685 days ago | 0.006 ETH | ||||
10232319 | 1685 days ago | 0.192 ETH | ||||
10232313 | 1685 days ago | 0.012 ETH | ||||
10232313 | 1685 days ago | 0.006 ETH | ||||
10232313 | 1685 days ago | 0.192 ETH | ||||
10232307 | 1685 days ago | 0.012 ETH | ||||
10232307 | 1685 days ago | 0.006 ETH | ||||
10232307 | 1685 days ago | 0.192 ETH |
Loading...
Loading
Contract Name:
RichDad
Compiler Version
v0.6.8+commit.0bbfe453
Contract Source Code (Solidity)
/** *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(queueAccount[_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, queueAccount[_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, queueAccount[_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 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
[{"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":"_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
6080604052670853a0d2313c00006005556735d887716084000060065567429d069189e00000600755670cc47f20295c00006008556801aec43b8b0420000060095568015b7ff35517c80000600a55600d805460ff191660121790553480156200006857600080fd5b50604051620054c3380380620054c38339810160408190526200008b916200027d565b600180546001600160a01b0319163317908190556040516001600160a01b0391909116906000907fd7145f42d94aabe7933663b7be30b2259e4c3a283d3ef2e16d55000db74d44b7908290a3600d5460ff16600a0a8302600e819055336000908152600f602090815260409091209190915582516200011191600b919085019062000131565b5080516200012790600c90602084019062000131565b50505050620002ee565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200017457805160ff1916838001178555620001a4565b82800160010185558215620001a4579182015b82811115620001a457825182559160200191906001019062000187565b50620001b2929150620001b6565b5090565b620001d391905b80821115620001b25760008155600101620001bd565b90565b600082601f830112620001e7578081fd5b81516001600160401b0380821115620001fe578283fd5b6040516020601f8401601f191682018101838111838210171562000220578586fd5b806040525081945083825286818588010111156200023d57600080fd5b600092505b8383101562000261578583018101518284018201529182019162000242565b83831115620002735760008185840101525b5050505092915050565b60008060006060848603121562000292578283fd5b835160208501519093506001600160401b0380821115620002b1578384fd5b620002bf87838801620001d6565b93506040860151915080821115620002d5578283fd5b50620002e486828701620001d6565b9150509250925092565b6151c580620002fe6000396000f3fe6080604052600436106101fb5760003560e01c8063739744471161010d578063b5d23a78116100a0578063d0a0ce831161006f578063d0a0ce83146105f4578063d61e75b414610614578063d644921714610627578063f7abbd9314610656578063f85b90e21461067657610202565b8063b5d23a7814610562578063b6ac6cff14610582578063c7fbcb9f146105b4578063c8773af2146105d457610202565b806390a16d08116100dc57806390a16d08146104f857806395d89b4114610518578063ab0d08631461052d578063af640d0f1461054d57610202565b8063739744471461046d5780638c3c743d146104755780638c8ab2fe146104a65780638c8edbc9146104c657610202565b80632e7992f311610190578063516abd871161015f578063516abd87146103d557806354e69329146103f5578063557ed1ba1461040a578063577f704e1461041f57806370a082311461044d57610202565b80632e7992f314610351578063313ce567146103665780633ce279e4146103885780634d45c9ea146103b557610202565b8063111d5abd116101cc578063111d5abd146102b357806318160ddd146102e25780632926c5d3146103045780632986c0e51461033c57610202565b806230578714610204578062c2943c1461023f57806306fdde031461026f5780630ee2cb101461029157610202565b3661020257005b005b34801561021057600080fd5b5061022461021f36600461483e565b6106ac565b604051610236969594939291906150e4565b60405180910390f35b34801561024b57600080fd5b5061025f61025a36600461492a565b6106e1565b6040516102369493929190614b37565b34801561027b57600080fd5b50610284610712565b6040516102369190614c09565b34801561029d57600080fd5b506102a66107a0565b6040516102369190614a98565b3480156102bf57600080fd5b506102d36102ce36600461492a565b6107af565b60405161023693929190614bea565b3480156102ee57600080fd5b506102f76107d9565b604051610236919061506f565b34801561031057600080fd5b5061032461031f36600461483e565b6107df565b6040516102369c9b9a99989796959493929190614aac565b34801561034857600080fd5b506102f761084f565b34801561035d57600080fd5b506102f7610855565b34801561037257600080fd5b5061037b61085b565b604051610236919061510c565b34801561039457600080fd5b506103a86103a33660046148ff565b610864565b6040516102369190614b5d565b3480156103c157600080fd5b506102026103d03660046148ff565b610ed6565b3480156103e157600080fd5b506102026103f0366004614a34565b6110c9565b34801561040157600080fd5b506102f7611101565b34801561041657600080fd5b506102f7611107565b34801561042b57600080fd5b5061043f61043a36600461483e565b61110b565b6040516102369291906150d6565b34801561045957600080fd5b506102f761046836600461483e565b611124565b610202611136565b34801561048157600080fd5b5061049561049036600461492a565b611198565b604051610236959493929190615078565b3480156104b257600080fd5b506102026104c136600461485a565b6111d1565b3480156104d257600080fd5b506104e66104e136600461492a565b611306565b604051610236969594939291906150a4565b34801561050457600080fd5b50610202610513366004614a13565b611348565b34801561052457600080fd5b5061028461139f565b34801561053957600080fd5b50610202610548366004614942565b6113fa565b34801561055957600080fd5b506102f761168a565b34801561056e57600080fd5b5061020261057d3660046149cc565b611690565b34801561058e57600080fd5b506105a261059d36600461492a565b611763565b60405161023696959493929190614bb9565b3480156105c057600080fd5b506105a26105cf36600461492a565b6117a2565b3480156105e057600080fd5b506102026105ef3660046148ff565b6117e1565b34801561060057600080fd5b5061020261060f36600461492a565b611863565b61020261062236600461483e565b611d8f565b34801561063357600080fd5b5061064761064236600461492a565b61248f565b60405161023693929190614b16565b34801561066257600080fd5b5061020261067136600461492a565b6124ba565b34801561068257600080fd5b5061069661069136600461483e565b612522565b6040516102369a99989796959493929190614b68565b601160205260009081526040902080546001820154600283015460038401546004850154600590950154939492939192909186565b60136020526000908152604090208054600182015460028301546003909301546001600160a01b0390921692909184565b600b805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156107985780601f1061076d57610100808354040283529160200191610798565b820191906000526020600020905b81548152906001019060200180831161077b57829003601f168201915b505050505081565b6001546001600160a01b031690565b6012602052600090815260409020805460018201546002909201549091906001600160a01b031683565b600e5481565b601560205260009081526040902080546001820154600283015460038401546004850154600586015460068701546007880154600889015460098a0154600a8b0154600b909b01546001600160a01b039a8b169b999a98999789169896979596948516959394929391909216918c565b60025481565b60045481565b600d5460ff1681565b6001546000906001600160a01b0316331461089a5760405162461bcd60e51b815260040161089190614d61565b60405180910390fd5b6108a48383612580565b15156001146108c55760405162461bcd60e51b815260040161089190614e58565b6000828152601660205260409020600201546001600160a01b038481169116146109015760405162461bcd60e51b815260040161089190614c5c565b6005546000838152601660205260409020600401541415610bdb576000828152601960205260409020600401541561094b5760405162461bcd60e51b815260040161089190614f53565b6001600160a01b038316600090815260176020526040902060050154600211610a9f5761097a836006546126b5565b6008546001600160a01b0384166000908152601760205260409020600901546109a89163ffffffff61297a16565b6001600160a01b0384166000908152601760209081526040808320600901939093558482526019905220600401546109e790600163ffffffff61297a16565b60008381526019602052604080822060048101939093556008546005909301839055516001600160a01b0386169280156108fc0292909190818181858888f19350505050158015610a3c573d6000803e3d6000fd5b506001600160a01b038084166000818152601760209081526040808320600290810154888552601990935292819020909201546008549251919094169360008051602061517083398151915292610a92926150d6565b60405180910390a3610bd6565b60015b60078111610abe57610ab6846005546126b5565b600101610aa2565b50600082815260196020526040902060040154610ae290600163ffffffff61297a16565b600083815260196020908152604080832060048101949094556005805494018490556001600160a01b03871683526017909152902060090154610b2a9163ffffffff61297a16565b6001600160a01b038416600081815260176020526040808220600901939093556005549251919280156108fc02929091818181858888f19350505050158015610b77573d6000803e3d6000fd5b506001600160a01b038084166000818152601760209081526040808320600290810154888552601990935292819020909201546005549251919094169360008051602061517083398151915292610bcd926150d6565b60405180910390a35b610ed0565b6006546000838152601660205260409020600401541415610eb8576000828152601a602052604090206004015415610c255760405162461bcd60e51b815260040161089190614f53565b6001600160a01b038316600090815260176020526040902060050154600811610d805760015b600a8111610c6757610c5f846005546126b5565b600101610c4b565b50600a546001600160a01b038416600090815260176020526040902060090154610c969163ffffffff61297a16565b6001600160a01b038416600090815260176020908152604080832060090193909355848252601a90522060040154610cd590600163ffffffff61297a16565b6000838152601a60205260408082206004810193909355600a546005909301839055516001600160a01b0386169280156108fc0292909190818181858888f19350505050158015610d2a573d6000803e3d6000fd5b506001600160a01b03808416600081815260176020908152604080832060029081015488855260199093529281902090920154600a549251919094169360008051602061517083398151915292610a92926150d6565b60015b60078111610d9f57610d97846006546126b5565b600101610d83565b506006546001600160a01b038416600090815260176020526040902060090154610dce9163ffffffff61297a16565b6001600160a01b038416600090815260176020908152604080832060090193909355848252601a90522060040154610e0d90600163ffffffff61297a16565b6000838152601a602052604080822060048101939093556006546005909301839055516001600160a01b0386169280156108fc0292909190818181858888f19350505050158015610e62573d6000803e3d6000fd5b506001600160a01b038084166000818152601760209081526040808320600290810154888552601990935292819020909201546006549251919094169360008051602061517083398151915292610bcd926150d6565b60405162461bcd60e51b815260040161089190614fdb565b92915050565b6001546001600160a01b03163314610f005760405162461bcd60e51b815260040161089190614d61565b6001546001600160a01b0316600090815260146020819052604082205491906064908190840204605a0281610f3157fe5b04905060006064806014850204600a0281610f4857fe5b0490506001600160a01b038516610f68576001546001600160a01b031694505b610f7d600186610f76611107565b8588611690565b6001546001600160a01b0316600090815260156020526040902060070154610fab908263ffffffff61297a16565b6001546001600160a01b0316600090815260156020526040902060070155610fd1611107565b600180546001600160a01b03908116600090815260156020908152604080832060080195909555925490911681526014909152205461102890829061101c908563ffffffff6129a616565b9063ffffffff6129a616565b600180546001600160a01b03908116600090815260146020908152604080832095909555925482168152601590925282822060060154925192169183156108fc0291849190818181858888f1935050505015801561108a573d6000803e3d6000fd5b506040516001600160a01b0386169083156108fc029084906000818181858888f193505050501580156110c1573d6000803e3d6000fd5b505050505050565b6001546001600160a01b031633146110f35760405162461bcd60e51b815260040161089190614d61565b600092909255600355600455565b60035481565b4290565b6014602052600090815260409020805460019091015482565b600f6020526000908152604090205481565b6001546001600160a01b031633146111605760405162461bcd60e51b815260040161089190614d61565b6001546001600160a01b03163314801561117a5750600034115b6111965760405162461bcd60e51b815260040161089190614cb9565b565b60166020526000908152604090208054600182015460028301546003840154600490940154929391926001600160a01b03909116919085565b6001546001600160a01b031633146111fb5760405162461bcd60e51b815260040161089190614d61565b60408051610180810182526001600160a01b039d8e16815260208082019a8b528183019687529c8e166060820190815260808201998a5260a082019586529b8e1660c0820190815260e0820198895261010082019485529a8e166101208201908152610140820197885261016082019384523360009081526015909e5291909c209b518c54908e166001600160a01b0319918216178d55985160018d0155935160028c0155985160038b018054918d16918916919091179055945160048a01555160058901559451600688018054918a1691861691909117905590516007870155905160088601559151600985018054919096169116179093559151600a8201559051600b90910155565b601860205260009081526040902080546001820154600283015460038401546004850154600590950154939492936001600160a01b0392831693919092169186565b6001546001600160a01b031633146113725760405162461bcd60e51b815260040161089190614d61565b60408051808201825292835260208084019283523360009081526014909152209151825551600190910155565b600c805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156107985780601f1061076d57610100808354040283529160200191610798565b6001546001600160a01b031633146114245760405162461bcd60e51b815260040161089190614d61565b6001600160a01b038a161580159061144457506001600160a01b03891615155b6114605760405162461bcd60e51b815260040161089190614ce6565b600554871480611471575060065487145b61148d5760405162461bcd60e51b815260040161089190614f7c565b60008b8b8b8a8c6040516020016114a8959493929190614a5f565b60408051601f198184030181529181528151602092830120600081815260169093529120600101549091508114156114f25760405162461bcd60e51b815260040161089190614ef6565b6005548814156115aa576115098c828d8c8c6129e8565b611516818c8c8b8d612a87565b861561152a5761152a87828d8c8988612d75565b60405180606001604052808281526020018d81526020018c6001600160a01b0316815250601260008e8152602001908152602001600020600082015181600001556020820151816001015560408201518160020160006101000a8154816001600160a01b0302191690836001600160a01b031602179055509050506115fa565b6006548814156115e2576115c18c828d8c8c6129e8565b6115ce818c8c8b8d612a87565b851561152a5761152a86828d8c8887612e22565b60405162461bcd60e51b815260040161089190614fac565b6002805460010190556000611627606461161b8b602063ffffffff612ecf16565b9063ffffffff612f0916565b9050611640600254838e8e8561163b611107565b612f4b565b8a6001600160a01b03168c6001600160a01b03166000805160206151508339815191528b8d6040516116739291906150d6565b60405180910390a350505050505050505050505050565b60005481565b6001546001600160a01b031633146116ba5760405162461bcd60e51b815260040161089190614d61565b604080516080810182526001600160a01b0386811680835260208084018881528486018881526060860188815260008d8152601390945292879020955186546001600160a01b031916951694909417855551600185015591516002840155905160039092019190915590517f13e12ad66c46754375e4740de0cbff0f0fbcbd6d9e00e2998d0811c4db67034e9061175490849086906150d6565b60405180910390a25050505050565b60196020526000908152604090208054600182015460028301546003840154600485015460059095015493946001600160a01b03909316939192909186565b601a6020526000908152604090208054600182015460028301546003840154600485015460059095015493946001600160a01b03909316939192909186565b6001546001600160a01b0316331461180b5760405162461bcd60e51b815260040161089190614d61565b6001600160a01b038216611828576001546001600160a01b031691505b6040516001600160a01b0383169082156108fc029083906000818181858888f1935050505015801561185e573d6000803e3d6000fd5b505050565b61186c816130ae565b151560011461188d5760405162461bcd60e51b815260040161089190614e58565b6000818152601660205260409020600201546001600160a01b031633146118c65760405162461bcd60e51b815260040161089190614c5c565b6005546000828152601660205260409020600401541415611b2c57600081815260196020526040902060040154156119105760405162461bcd60e51b815260040161089190614f53565b33600090815260176020526040902060050154600211611a21576119356006546131b3565b6008543360009081526017602052604090206009015461195a9163ffffffff61297a16565b3360009081526017602090815260408083206009019390935583825260199052206004015461199090600163ffffffff61297a16565b6000828152601960205260408082206004810193909355600854600590930183905551339280156108fc0292909190818181858888f193505050501580156119dc573d6000803e3d6000fd5b5060008181526019602052604090819020600201546008549151339260008051602061513083398151915292611a14929091906150d6565b60405180910390a2611b27565b60015b60078111611a3f57611a376005546131b3565b600101611a24565b50600081815260196020526040902060040154611a6390600163ffffffff61297a16565b600082815260196020908152604080832060048101949094556005805494018490553383526017909152902060090154611aa29163ffffffff61297a16565b33600081815260176020526040808220600901939093556005549251919280156108fc02929091818181858888f19350505050158015611ae6573d6000803e3d6000fd5b5060008181526019602052604090819020600201546005549151339260008051602061513083398151915292611b1e929091906150d6565b60405180910390a25b611d8c565b6006546000828152601660205260409020600401541415610eb85760008181526019602052604090206004015415611b765760405162461bcd60e51b815260040161089190614f53565b33600090815260176020526040902060050154600811611c8e5760015b600a8111611bae57611ba66005546131b3565b600101611b93565b50600a5433600090815260176020526040902060090154611bd49163ffffffff61297a16565b33600090815260176020908152604080832060090193909355838252601a90522060040154611c0a90600163ffffffff61297a16565b6000828152601a60205260408082206004810193909355600a54600590930183905551339280156108fc0292909190818181858888f19350505050158015611c56573d6000803e3d6000fd5b506000818152601960205260409081902060020154600a549151339260008051602061513083398151915292611a14929091906150d6565b60015b60078111611cac57611ca46006546131b3565b600101611c91565b5060065433600090815260176020526040902060090154611cd29163ffffffff61297a16565b33600090815260176020908152604080832060090193909355838252601a90522060040154611d0890600163ffffffff61297a16565b6000828152601a60205260408082206004810193909355600654600590930183905551339280156108fc0292909190818181858888f19350505050158015611d54573d6000803e3d6000fd5b5060008181526019602052604090819020600201546006549151339260008051602061513083398151915292611b1e929091906150d6565b50565b6001600160a01b038082166000908152601760205260409020600201543391839116821415611dd05760405162461bcd60e51b815260040161089190614e0a565b826001600160a01b038116611df75760405162461bcd60e51b815260040161089190614d90565b33846001600160a01b038116821415611e225760405162461bcd60e51b815260040161089190614dbf565b34600554811480611e34575060065481145b611e505760405162461bcd60e51b815260040161089190614ec6565b6001600160a01b03808816600090815260176020526040902060010154889116611e8c5760405162461bcd60e51b815260040161089190614d32565b336000908152601760205260408120600101546001600160a01b03166121c2576000805460010190819055338a34611ec2611107565b604051602001611ed6959493929190614a5f565b6040516020818303038152906040528051906020012090506040518060a001604052806000548152602001828152602001336001600160a01b03168152602001611f1e611107565b8152346020918201526000838152601682526040808220845181559284015160018401558301516002830180546001600160a01b0319166001600160a01b039092169190911790556060830151600383015560809092015160049091015580611f868b613446565b600554341415611fc257611f9b833334613492565b33600090815260176020526040902060030154611fbf90600163ffffffff61297a16565b91505b600654341415611ffe57611fd7833334613549565b33600090815260176020526040902060040154611ffb90600163ffffffff61297a16565b90505b6040805160608082018352858252600080546020808501828152338688018181529385526012835293879020955186555160018601559051600290940180546001600160a01b0319166001600160a01b03958616179055845161014081018652888152908101829052928f16938301939093528101849052608081018390529060a082019061208c90613600565b815260200161209b333461361e565b81526020016120a8611107565b81526020016120b63361364a565b81526020016120c433613668565b90523360008181526017602090815260409182902084518155908401516001820180546001600160a01b03199081166001600160a01b039384161790915592850151600283018054909416911617909155606083015160038201556080830151600482015560a0830151600582015560c0830151600682015560e0830151600782015561010083015160088201556101209092015160099092019190915561216e90849034613686565b6121796000546139a4565b61218234613bcc565b6001600160a01b038b1633600080516020615150833981519152346121a5611107565b6040516121b39291906150d6565b60405180910390a35050612484565b336000908152601760205260409020600201546001600160a01b038a81169116146121ff5760405162461bcd60e51b815260040161089190615001565b600080546001018082553380835260176020526040909220600201549091906001600160a01b031634612230611107565b604051602001612244959493929190614a5f565b6040516020818303038152906040528051906020012090506040518060a001604052806000548152602001828152602001336001600160a01b0316815260200161228c611107565b815234602091820152600083815260168252604080822084518155848401516001820155848201516002820180546001600160a01b0319166001600160a01b0390921691909117905560608501516003820155608090940151600490940193909355338152601790915220819055612302611107565b33600081815260176020526040902060070191909155612322903461361e565b336000908152601760205260409020600601556005543414156123825761234a813334613492565b3360009081526017602052604090206003015461236e90600163ffffffff61297a16565b336000908152601760205260409020600301555b6006543414156123cf57612397813334613549565b336000908152601760205260409020600401546123bb90600163ffffffff61297a16565b336000908152601760205260409020600401555b604080516060810182528281526000805460208084018281523385870181815293855260129092529490922092518355925160018301559151600290910180546001600160a01b0319166001600160a01b0390921691909117905561243690829034613686565b6124416000546139a4565b61244a34613bcc565b6001600160a01b038916336000805160206151508339815191523461246d611107565b60405161247b9291906150d6565b60405180910390a35b505050505050505050565b6010602052600090815260409020805460018201546002909201546001600160a01b03909116919083565b6001546001600160a01b031633146124e45760405162461bcd60e51b815260040161089190614d61565b6001546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561251e573d6000803e3d6000fd5b5050565b601760205260009081526040902080546001820154600283015460038401546004850154600586015460068701546007880154600889015460099099015497986001600160a01b03978816989690971696949593949293919290918a565b6001546000906001600160a01b031633146125ad5760405162461bcd60e51b815260040161089190614d61565b6000828152601660205260409020600201546001600160a01b038481169116146125e95760405162461bcd60e51b815260040161089190614c5c565b600554600083815260166020526040902060040154141561264d5760008281526019602090815260408083206002908101546001546001600160a01b03168552601190935292209091015480821161264657600192505050610ed0565b50506126ac565b60065460008381526016602052604090206004015414156126ac576000828152601a60209081526040808320600201546001546001600160a01b031684526011909252909120600401548082116126a957600192505050610ed0565b50505b50600092915050565b600080546001018082556001600160a01b03808516835260176020526040832060020154859116846126e5611107565b6040516020016126f9959493929190614a5f565b60405160208183030381529060405280519060200120905060055482141561277057612726818484613492565b6001600160a01b03831660009081526017602052604090206003015461275390600163ffffffff61297a16565b6001600160a01b0384166000908152601760205260409020600301555b6006548214156127cf57612785818484613549565b6001600160a01b0383166000908152601760205260409020600401546127b290600163ffffffff61297a16565b6001600160a01b0384166000908152601760205260409020600401555b6127db83600054613c5d565b6040518060a001604052806000548152602001828152602001846001600160a01b0316815260200161280b611107565b81526020908101849052600083815260168252604080822084518155848401516001820155848201516002820180546001600160a01b0319166001600160a01b0392831617905560608601516003830155608090950151600490910155928616815260179091522081905561287e611107565b6001600160a01b0384166000908152601760205260409020600701556128a4838361361e565b6001600160a01b03848116600081815260176020908152604080832060060195909555845160608101865286815282548183018181528288019586529084526012909252949091209351845551600184015551600290920180546001600160a01b0319169290911691909117905561291d818484613eb7565b61292682613bcc565b6001600160a01b03808416600081815260176020526040902060020154909116906000805160206151508339815191528461295f611107565b60405161296d9291906150d6565b60405180910390a3505050565b60008282018381101561299f5760405162461bcd60e51b815260040161089190614c82565b9392505050565b600061299f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506142be565b6001546001600160a01b03163314612a125760405162461bcd60e51b815260040161089190614d61565b6040805160a08101825295865260208087018681526001600160a01b03958616888401908152606089019586526080890194855260009788526016909252919095209551865551600186015592516002850180546001600160a01b031916919093161790915551600383015551600490910155565b6001546001600160a01b03163314612ab15760405162461bcd60e51b815260040161089190614d61565b600080600554841415612af2576001600160a01b038616600090815260176020526040902060030154612aeb90600163ffffffff61297a16565b9150612b2c565b600654841415612b2c576001600160a01b038616600090815260176020526040902060040154612b2990600163ffffffff61297a16565b90505b6001600160a01b038616600090815260176020526040812060060154612b58908663ffffffff61297a16565b9050600060176000896001600160a01b03166001600160a01b031681526020019081526020016000206008015490506000601760008a6001600160a01b03166001600160a01b031681526020019081526020016000206009015490506000601760008b6001600160a01b03166001600160a01b031681526020019081526020016000206005015490506040518061014001604052808c81526020018b6001600160a01b031681526020018a6001600160a01b0316815260200187815260200186815260200182815260200185815260200188815260200184815260200183815250601760008c6001600160a01b03166001600160a01b031681526020019081526020016000206000820151816000015560208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160020160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e0820151816007015561010082015181600801556101208201518160090155905050612d496001601760008c6001600160a01b03166001600160a01b031681526020019081526020016000206005015461297a90919063ffffffff16565b6001600160a01b0390991660009081526017602052604090206005019890985550505050505050505050565b6001546001600160a01b03163314612d9f5760405162461bcd60e51b815260040161089190614d61565b6040805160c0810182528681526001600160a01b039586166020808301918252828401998a52606083019687526080830195865260a083019485526000988952601990529190962095518655516001860180546001600160a01b031916919095161790935593516002840155516003830155915160048201559051600590910155565b6001546001600160a01b03163314612e4c5760405162461bcd60e51b815260040161089190614d61565b6040805160c0810182528681526001600160a01b039586166020808301918252828401998a52606083019687526080830195865260a083019485526000988952601a90529190962095518655516001860180546001600160a01b031916919095161790935593516002840155516003830155915160048201559051600590910155565b600082612ede57506000610ed0565b82820282848281612eeb57fe5b041461299f5760405162461bcd60e51b815260040161089190614e85565b600061299f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506142ea565b6001546001600160a01b03163314612f755760405162461bcd60e51b815260040161089190614d61565b6040518060c00160405280878152602001868152602001856001600160a01b03168152602001846001600160a01b031681526020018381526020018281525060186000888152602001908152602001600020600082015181600001556020820151816001015560408201518160020160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060608201518160030160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506080820151816004015560a082015181600501559050506130878260176000866001600160a01b03166001600160a01b031681526020019081526020016000206008015461297a90919063ffffffff16565b6001600160a01b039093166000908152601760205260409020600801929092555050505050565b6000818152601660205260408120600201546001600160a01b031633146130e75760405162461bcd60e51b815260040161089190615038565b600554600083815260166020526040902060040154141561314b5760008281526019602090815260408083206002908101546001546001600160a01b031685526011909352922090910154808211613144576001925050506131ae565b50506131aa565b60065460008381526016602052604090206004015414156131aa576000828152601a60209081526040808320600201546001546001600160a01b031684526011909252909120600401548082116131a7576001925050506131ae565b50505b5060005b919050565b6000805460010180825533808352601760205260408320600201546001600160a01b0316846131e0611107565b6040516020016131f4959493929190614a5f565b60405160208183030381529060405280519060200120905060055482141561325957613221813384613492565b3360009081526017602052604090206003015461324590600163ffffffff61297a16565b336000908152601760205260409020600301555b6006548214156132a65761326e813384613549565b3360009081526017602052604090206004015461329290600163ffffffff61297a16565b336000908152601760205260409020600401555b6132b16000546139a4565b6040518060a001604052806000548152602001828152602001336001600160a01b031681526020016132e1611107565b81526020908101849052600083815260168252604080822084518155848401516001820155848201516002820180546001600160a01b0319166001600160a01b0390921691909117905560608501516003820155608090940151600490940193909355338152601790915220819055613358611107565b33600081815260176020526040902060070191909155613378908361361e565b33600081815260176020908152604080832060060194909455835160608101855285815282548183018181528287019586529084526012909252939091209251835551600183015551600290910180546001600160a01b0319166001600160a01b039092169190911790556133ec82613bcc565b6133f7813384613686565b336000818152601760205260409020600201546001600160a01b0316906000805160206151508339815191528461342c611107565b60405161343a9291906150d6565b60405180910390a35050565b6001600160a01b03811660009081526017602052604090206005015461347390600163ffffffff61297a16565b6001600160a01b03909116600090815260176020526040902060050155565b61349b81614321565b60038054600101908190556040805160c0810182528581526001600160a01b038516602082015290810191909152606081016134d5611107565b81526000602080830182905260409283018290529581526019865281902082518155948201516001860180546001600160a01b0319166001600160a01b039092169190911790558101516002850155606081015160038501556080810151600485015560a001516005909301929092555050565b613552816145ee565b60048054600101908190556040805160c0810182528581526001600160a01b0385166020820152908101919091526060810161358c611107565b8152600060208083018290526040928301829052958152601a865281902082518155948201516001860180546001600160a01b0319166001600160a01b039092169190911790558101516002850155606081015160038501556080810151600485015560a001516005909301929092555050565b6001600160a01b031660009081526017602052604090206005015490565b6001600160a01b03821660009081526017602052604081206006015461299f908363ffffffff61297a16565b6001600160a01b031660009081526017602052604090206008015490565b6001600160a01b031660009081526017602052604090206009015490565b6001600160a01b038083166000908152601760209081526040822060020154909216916136c19060649061161b90869063ffffffff612ecf16565b90506002600081548092919060010191905055506040518060c001604052806002548152602001868152602001856001600160a01b03168152602001836001600160a01b0316815260200182815260200161371a611107565b9052600280546000908152601860209081526040808320855181558583015160018201558582015194810180546001600160a01b03199081166001600160a01b039788161790915560608701516003830180549092169087161790556080860151600482015560a0909501516005909501949094559185168152601790915220600801546137a8908261297a565b6001600160a01b0383166000908152601760205260408120600801919091556137dd606461161b86600163ffffffff612ecf16565b905060006137f7606461161b87600263ffffffff612ecf16565b600180546001600160a01b031660009081526015602052604090200154909150613827908363ffffffff61297a16565b600180546001600160a01b0390811660009081526015602052604080822084019490945591541681522060040154613865908363ffffffff61297a16565b6001546001600160a01b031660009081526015602052604090206004015561388b611107565b6001546001600160a01b03166000908152601560205260409020600201556138b1611107565b6001546001600160a01b039081166000908152601560205260408082206005019390935591519086169185156108fc02918691818181858888f19350505050158015613901573d6000803e3d6000fd5b506001546001600160a01b0390811660009081526015602052604080822054905192169184156108fc0291859190818181858888f1935050505015801561394c573d6000803e3d6000fd5b506001546001600160a01b0390811660009081526015602052604080822060030154905192169183156108fc0291849190818181858888f1935050505015801561399a573d6000803e3d6000fd5b5050505050505050565b6001546001600160a01b0316600090815260146020526040812054906139d76103e861161b84602363ffffffff612ecf16565b90506139ea83601263ffffffff61475f16565b1580613a045750613a0283601363ffffffff61475f16565b155b80613a1d5750613a1b83601b63ffffffff61475f16565b155b80613a365750613a3483602663ffffffff61475f16565b155b80613a4f5750613a4d83602763ffffffff61475f16565b155b1561185e576001546001600160a01b0316600090815260146020526040902054613a7f908263ffffffff6129a616565b6001546001600160a01b03166000908152601460209081526040918290209290925580516060810182523381529182018390528101613abc611107565b9052600160009081526010602090815282517f8c6065603763fec3f5742441d3833f3f43b982453612d76adb39a885e3006b5f80546001600160a01b0319166001600160a01b039092169190911790558201517f8c6065603763fec3f5742441d3833f3f43b982453612d76adb39a885e3006b60556040918201517f8c6065603763fec3f5742441d3833f3f43b982453612d76adb39a885e3006b6155905133916108fc841502918491818181858888f19350505050158015613b83573d6000803e3d6000fd5b50336001600160a01b03167f139deb7d0ab2f1deeb19d0174aaabc72ff1b8ff25151b311b42d484d82a14ba28285604051613bbf9291906150d6565b60405180910390a2505050565b6000613be4606461161b84600a63ffffffff612ecf16565b6001546001600160a01b031660009081526014602052604081205491925090613c13908363ffffffff61297a16565b90506040518060400160405280828152602001613c2e611107565b9052600180546001600160a01b0316600090815260146020908152604090912083518155920151910155505050565b6001546001600160a01b03163314613c875760405162461bcd60e51b815260040161089190614d61565b6001546001600160a01b031660009081526014602052604081205490613cba6103e861161b84602363ffffffff612ecf16565b9050613ccd83601263ffffffff61475f16565b1580613ce75750613ce583601363ffffffff61475f16565b155b80613d005750613cfe83601b63ffffffff61475f16565b155b80613d195750613d1783602663ffffffff61475f16565b155b80613d325750613d3083602763ffffffff61475f16565b155b15613eb1576001546001600160a01b0316600090815260146020526040902054613d62908263ffffffff6129a616565b6001546001600160a01b039081166000908152601460209081526040918290209390935580516060810182529187168252918101839052908101613da4611107565b9052600160009081526010602090815282517f8c6065603763fec3f5742441d3833f3f43b982453612d76adb39a885e3006b5f80546001600160a01b0319166001600160a01b03928316179055908301517f8c6065603763fec3f5742441d3833f3f43b982453612d76adb39a885e3006b60556040928301517f8c6065603763fec3f5742441d3833f3f43b982453612d76adb39a885e3006b61559151918616916108fc84150291849190818181858888f19350505050158015613e6c573d6000803e3d6000fd5b50836001600160a01b03167f139deb7d0ab2f1deeb19d0174aaabc72ff1b8ff25151b311b42d484d82a14ba28285604051613ea89291906150d6565b60405180910390a25b50505050565b6001546001600160a01b03163314613ee15760405162461bcd60e51b815260040161089190614d61565b6001600160a01b0380831660009081526017602052604081206002015490911690613f18606461161b85601063ffffffff612ecf16565b90506002600081548092919060010191905055506040518060c001604052806002548152602001868152602001856001600160a01b03168152602001836001600160a01b03168152602001828152602001613f71611107565b9052600280546000908152601860209081526040808320855181558583015160018201558582015194810180546001600160a01b03199081166001600160a01b039788161790915560608701516003830180549092169087161790556080860151600482015560a090950151600590950194909455918716815260179091522060080154613fff908261297a565b6001600160a01b038516600090815260176020526040812060080191909155614034606461161b86600163ffffffff612ecf16565b9050600061404e606461161b87600263ffffffff612ecf16565b90506000614068606461161b88601063ffffffff612ecf16565b600180546001600160a01b031660009081526015602052604090200154909150614098908463ffffffff61297a16565b600180546001600160a01b03908116600090815260156020526040808220840194909455915416815220600401546140d6908463ffffffff61297a16565b600180546001600160a01b0390811660009081526015602052604080822060040194909455915416815220600a0154614115908263ffffffff61297a16565b6001546001600160a01b03166000908152601560205260409020600a015561413b611107565b6001546001600160a01b0316600090815260156020526040902060020155614161611107565b6001546001600160a01b0316600090815260156020526040902060050155614187611107565b6001546001600160a01b03908116600090815260156020526040808220600b019390935591519089169186156108fc02918791818181858888f193505050501580156141d7573d6000803e3d6000fd5b506001546001600160a01b0390811660009081526015602052604080822054905192169185156108fc0291869190818181858888f19350505050158015614222573d6000803e3d6000fd5b506001546001600160a01b0390811660009081526015602052604080822060030154905192169184156108fc0291859190818181858888f19350505050158015614270573d6000803e3d6000fd5b506001546001600160a01b0390811660009081526015602052604080822060090154905192169183156108fc0291849190818181858888f19350505050158015612484573d6000803e3d6000fd5b600081848411156142e25760405162461bcd60e51b81526004016108919190614c09565b505050900390565b6000818361430b5760405162461bcd60e51b81526004016108919190614c09565b50600083858161431757fe5b0495945050505050565b61432a816147a1565b6000614342606461161b84602d63ffffffff612ecf16565b6001546001600160a01b0316600090815260116020526040902054909150614370908263ffffffff61297a16565b600180546001600160a01b039081166000908152601160205260408082209490945560075492549091168152918220546143af9163ffffffff612f0916565b11156144af576007546001546001600160a01b031660009081526011602052604081205490916143e5919063ffffffff612f0916565b905060006143fe82600754612ecf90919063ffffffff16565b6001546001600160a01b031660009081526011602052604090205490915061442c908263ffffffff6129a616565b600180546001600160a01b039081166000908152601160205260408082209490945591541681522060020154614468908363ffffffff61297a16565b6001546001600160a01b031660009081526011602052604090206002015561448e611107565b6001546001600160a01b031660009081526011602052604090206003015550505b600954600180546001600160a01b031660009081526011602052604081209091015490916144e3919063ffffffff612f0916565b111561251e57600954600180546001600160a01b0316600090815260116020526040812090910154909161451d919063ffffffff612f0916565b9050600061453682600954612ecf90919063ffffffff16565b600180546001600160a01b031660009081526011602052604090200154909150614566908263ffffffff6129a616565b600180546001600160a01b03908116600090815260116020526040808220840194909455915416815220600401546145a4908363ffffffff61297a16565b6001546001600160a01b03166000908152601160205260409020600401556145ca611107565b6001546001600160a01b031660009081526011602052604090206005015550505050565b6000614606606461161b84603763ffffffff612ecf16565b600180546001600160a01b031660009081526011602052604090200154909150614636908263ffffffff61297a16565b600180546001600160a01b03908116600090815260116020526040808220840194909455600954835490921681529283209091015461467a9163ffffffff612f0916565b111561251e57600954600180546001600160a01b031660009081526011602052604081209091015490916146b4919063ffffffff612f0916565b905060006146cd82600954612ecf90919063ffffffff16565b600180546001600160a01b0316600090815260116020526040902001549091506146fd908263ffffffff6129a616565b600180546001600160a01b039081166000908152601160205260408082208401949094559154168152206004015461473b908363ffffffff61297a16565b6001546001600160a01b031660009081526011602052604090206004015550505050565b600061299f83836040518060400160405280601881526020017f536166654d6174683a206d6f64756c6f206279207a65726f000000000000000081525061480a565b60006147b9606461161b84600a63ffffffff612ecf16565b600180546001600160a01b0316600090815260116020526040902001549091506147e9908263ffffffff61297a16565b600180546001600160a01b0316600090815260116020526040902001555050565b6000818361482b5760405162461bcd60e51b81526004016108919190614c09565b5082848161483557fe5b06949350505050565b60006020828403121561484f578081fd5b813561299f8161511a565b6000806000806000806000806000806000806101808d8f03121561487c578788fd5b8c356148878161511a565b9b5060208d01356148978161511a565b9a5060408d01356148a78161511a565b995060608d01356148b78161511a565b9b9e9a9d50989b60808101359a60a08201359a5060c0820135995060e08201359850610100820135975061012082013596506101408201359550610160909101359350915050565b60008060408385031215614911578182fd5b823561491c8161511a565b946020939093013593505050565b60006020828403121561493b578081fd5b5035919050565b60008060008060008060008060008060006101608c8e031215614963578081fd5b8b359a5060208c01356149758161511a565b995060408c01356149858161511a565b9a9d999c50999a60608101359a5060808101359960a0820135995060c0820135985060e0820135975061010082013596506101208201359550610140909101359350915050565b600080600080600060a086880312156149e3578081fd5b8535945060208601356149f58161511a565b94979496505050506040830135926060810135926080909101359150565b60008060408385031215614a25578182fd5b50508035926020909101359150565b600080600060608486031215614a48578283fd5b505081359360208301359350604090920135919050565b9485526bffffffffffffffffffffffff19606094851b811660208701529290931b90911660348401526048830152606882015260880190565b6001600160a01b0391909116815260200190565b6001600160a01b039c8d168152602081019b909b5260408b0199909952968a1660608a0152608089019590955260a088019390935290871660c087015260e08601526101008501529093166101208301526101408201929092526101608101919091526101800190565b6001600160a01b039390931683526020830191909152604082015260600190565b6001600160a01b0394909416845260208401929092526040830152606082015260800190565b901515815260200190565b998a526001600160a01b0398891660208b01529690971660408901526060880194909452608087019290925260a086015260c085015260e08401526101008301919091526101208201526101400190565b9586526001600160a01b0394909416602086015260408501929092526060840152608083015260a082015260c00190565b92835260208301919091526001600160a01b0316604082015260600190565b6000602080835283518082850152825b81811015614c3557858101830151858201604001528201614c19565b81811115614c465783604083870101525b50601f01601f1916929092016040019392505050565b6020808252600c908201526b092dcecc2d8d2c840d0c2e6d60a31b604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526013908201527220b2323932b9b9903737ba1031b932b0ba37b960691b604082015260600190565b6020808252602c908201527f416464726573732063616e742062652030783020616e6420726566657272657260408201526b02063616e74206265203078360a41b606082015260800190565b6020808252601590820152742932b332b93932b9102737ba102932b3b4b9ba32b960591b604082015260600190565b60208082526015908201527421b0b63632b91034b9903737ba1031b932b0ba37b960591b604082015260600190565b602080825260159082015274416464726573732063616e7420626520656d70747960581b604082015260600190565b6020808252602b908201527f52656665727265722063616e6e6f74207265676973746572206173206974732060408201526a6f776e205265666572656560a81b606082015260800190565b6020808252602e908201527f52656665727265722063616e6e6f74207265676973746572206173207265666560408201526d3932b293b9903932b332b93932b960911b606082015260800190565b6020808252601390820152724e6f742076616c696420746f20736574746c6560681b604082015260600190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b602080825260169082015275125b9d985b1a590819195c1bdcda5d08185b5bdd5b9d60521b604082015260600190565b6020808252603a908201527f4163636f756e7420526567697374657265642120506c6561736520776169742060408201527f666f722031206d696e7574657320746f2074727920616761696e000000000000606082015260800190565b6020808252600f908201526e105b1c9958591e481cd95d1d1b1959608a1b604082015260600190565b602080825260169082015275125b9d985b1a590811195c1bdcda5d08105b5bdd5b9d60521b604082015260600190565b602080825260159082015274496e76616c696420526567697374726174696f6e2160581b604082015260600190565b6020808252600c908201526b4661696c656420657869742160a01b604082015260600190565b6020808252601d908201527f446966666572656e742072656665727265722072656769737465726564000000604082015260600190565b6020808252601e908201527f496e76616c69642068617368206f722061646472657373206f776e6572210000604082015260600190565b90815260200190565b94855260208501939093526001600160a01b039190911660408401526060830152608082015260a00190565b95865260208601949094526001600160a01b03928316604086015291166060840152608083015260a082015260c00190565b918252602082015260400190565b958652602086019490945260408501929092526060840152608083015260a082015260c00190565b60ff91909116815260200190565b6001600160a01b0381168114611d8c57600080fdfe1738b9927ab40adc35d82a0f1b7fc437319abbb79dba4db84c3f869035737ae2feadbd03057c105a9e4fdeb010af0a1699363e0bf010e2b385e6c5e3890f5b13b3090f35dfbee3400bbb20b3c0f2f649ff8172d5fb6e9fd20157343e1fda27c8a264697066735822122068ed096111d8adc32d286f8446e70d06932652dcdb2a542a0f3819a967f18c1664736f6c634300060800330000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000007526963684461640000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000045249434800000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x6080604052600436106101fb5760003560e01c8063739744471161010d578063b5d23a78116100a0578063d0a0ce831161006f578063d0a0ce83146105f4578063d61e75b414610614578063d644921714610627578063f7abbd9314610656578063f85b90e21461067657610202565b8063b5d23a7814610562578063b6ac6cff14610582578063c7fbcb9f146105b4578063c8773af2146105d457610202565b806390a16d08116100dc57806390a16d08146104f857806395d89b4114610518578063ab0d08631461052d578063af640d0f1461054d57610202565b8063739744471461046d5780638c3c743d146104755780638c8ab2fe146104a65780638c8edbc9146104c657610202565b80632e7992f311610190578063516abd871161015f578063516abd87146103d557806354e69329146103f5578063557ed1ba1461040a578063577f704e1461041f57806370a082311461044d57610202565b80632e7992f314610351578063313ce567146103665780633ce279e4146103885780634d45c9ea146103b557610202565b8063111d5abd116101cc578063111d5abd146102b357806318160ddd146102e25780632926c5d3146103045780632986c0e51461033c57610202565b806230578714610204578062c2943c1461023f57806306fdde031461026f5780630ee2cb101461029157610202565b3661020257005b005b34801561021057600080fd5b5061022461021f36600461483e565b6106ac565b604051610236969594939291906150e4565b60405180910390f35b34801561024b57600080fd5b5061025f61025a36600461492a565b6106e1565b6040516102369493929190614b37565b34801561027b57600080fd5b50610284610712565b6040516102369190614c09565b34801561029d57600080fd5b506102a66107a0565b6040516102369190614a98565b3480156102bf57600080fd5b506102d36102ce36600461492a565b6107af565b60405161023693929190614bea565b3480156102ee57600080fd5b506102f76107d9565b604051610236919061506f565b34801561031057600080fd5b5061032461031f36600461483e565b6107df565b6040516102369c9b9a99989796959493929190614aac565b34801561034857600080fd5b506102f761084f565b34801561035d57600080fd5b506102f7610855565b34801561037257600080fd5b5061037b61085b565b604051610236919061510c565b34801561039457600080fd5b506103a86103a33660046148ff565b610864565b6040516102369190614b5d565b3480156103c157600080fd5b506102026103d03660046148ff565b610ed6565b3480156103e157600080fd5b506102026103f0366004614a34565b6110c9565b34801561040157600080fd5b506102f7611101565b34801561041657600080fd5b506102f7611107565b34801561042b57600080fd5b5061043f61043a36600461483e565b61110b565b6040516102369291906150d6565b34801561045957600080fd5b506102f761046836600461483e565b611124565b610202611136565b34801561048157600080fd5b5061049561049036600461492a565b611198565b604051610236959493929190615078565b3480156104b257600080fd5b506102026104c136600461485a565b6111d1565b3480156104d257600080fd5b506104e66104e136600461492a565b611306565b604051610236969594939291906150a4565b34801561050457600080fd5b50610202610513366004614a13565b611348565b34801561052457600080fd5b5061028461139f565b34801561053957600080fd5b50610202610548366004614942565b6113fa565b34801561055957600080fd5b506102f761168a565b34801561056e57600080fd5b5061020261057d3660046149cc565b611690565b34801561058e57600080fd5b506105a261059d36600461492a565b611763565b60405161023696959493929190614bb9565b3480156105c057600080fd5b506105a26105cf36600461492a565b6117a2565b3480156105e057600080fd5b506102026105ef3660046148ff565b6117e1565b34801561060057600080fd5b5061020261060f36600461492a565b611863565b61020261062236600461483e565b611d8f565b34801561063357600080fd5b5061064761064236600461492a565b61248f565b60405161023693929190614b16565b34801561066257600080fd5b5061020261067136600461492a565b6124ba565b34801561068257600080fd5b5061069661069136600461483e565b612522565b6040516102369a99989796959493929190614b68565b601160205260009081526040902080546001820154600283015460038401546004850154600590950154939492939192909186565b60136020526000908152604090208054600182015460028301546003909301546001600160a01b0390921692909184565b600b805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156107985780601f1061076d57610100808354040283529160200191610798565b820191906000526020600020905b81548152906001019060200180831161077b57829003601f168201915b505050505081565b6001546001600160a01b031690565b6012602052600090815260409020805460018201546002909201549091906001600160a01b031683565b600e5481565b601560205260009081526040902080546001820154600283015460038401546004850154600586015460068701546007880154600889015460098a0154600a8b0154600b909b01546001600160a01b039a8b169b999a98999789169896979596948516959394929391909216918c565b60025481565b60045481565b600d5460ff1681565b6001546000906001600160a01b0316331461089a5760405162461bcd60e51b815260040161089190614d61565b60405180910390fd5b6108a48383612580565b15156001146108c55760405162461bcd60e51b815260040161089190614e58565b6000828152601660205260409020600201546001600160a01b038481169116146109015760405162461bcd60e51b815260040161089190614c5c565b6005546000838152601660205260409020600401541415610bdb576000828152601960205260409020600401541561094b5760405162461bcd60e51b815260040161089190614f53565b6001600160a01b038316600090815260176020526040902060050154600211610a9f5761097a836006546126b5565b6008546001600160a01b0384166000908152601760205260409020600901546109a89163ffffffff61297a16565b6001600160a01b0384166000908152601760209081526040808320600901939093558482526019905220600401546109e790600163ffffffff61297a16565b60008381526019602052604080822060048101939093556008546005909301839055516001600160a01b0386169280156108fc0292909190818181858888f19350505050158015610a3c573d6000803e3d6000fd5b506001600160a01b038084166000818152601760209081526040808320600290810154888552601990935292819020909201546008549251919094169360008051602061517083398151915292610a92926150d6565b60405180910390a3610bd6565b60015b60078111610abe57610ab6846005546126b5565b600101610aa2565b50600082815260196020526040902060040154610ae290600163ffffffff61297a16565b600083815260196020908152604080832060048101949094556005805494018490556001600160a01b03871683526017909152902060090154610b2a9163ffffffff61297a16565b6001600160a01b038416600081815260176020526040808220600901939093556005549251919280156108fc02929091818181858888f19350505050158015610b77573d6000803e3d6000fd5b506001600160a01b038084166000818152601760209081526040808320600290810154888552601990935292819020909201546005549251919094169360008051602061517083398151915292610bcd926150d6565b60405180910390a35b610ed0565b6006546000838152601660205260409020600401541415610eb8576000828152601a602052604090206004015415610c255760405162461bcd60e51b815260040161089190614f53565b6001600160a01b038316600090815260176020526040902060050154600811610d805760015b600a8111610c6757610c5f846005546126b5565b600101610c4b565b50600a546001600160a01b038416600090815260176020526040902060090154610c969163ffffffff61297a16565b6001600160a01b038416600090815260176020908152604080832060090193909355848252601a90522060040154610cd590600163ffffffff61297a16565b6000838152601a60205260408082206004810193909355600a546005909301839055516001600160a01b0386169280156108fc0292909190818181858888f19350505050158015610d2a573d6000803e3d6000fd5b506001600160a01b03808416600081815260176020908152604080832060029081015488855260199093529281902090920154600a549251919094169360008051602061517083398151915292610a92926150d6565b60015b60078111610d9f57610d97846006546126b5565b600101610d83565b506006546001600160a01b038416600090815260176020526040902060090154610dce9163ffffffff61297a16565b6001600160a01b038416600090815260176020908152604080832060090193909355848252601a90522060040154610e0d90600163ffffffff61297a16565b6000838152601a602052604080822060048101939093556006546005909301839055516001600160a01b0386169280156108fc0292909190818181858888f19350505050158015610e62573d6000803e3d6000fd5b506001600160a01b038084166000818152601760209081526040808320600290810154888552601990935292819020909201546006549251919094169360008051602061517083398151915292610bcd926150d6565b60405162461bcd60e51b815260040161089190614fdb565b92915050565b6001546001600160a01b03163314610f005760405162461bcd60e51b815260040161089190614d61565b6001546001600160a01b0316600090815260146020819052604082205491906064908190840204605a0281610f3157fe5b04905060006064806014850204600a0281610f4857fe5b0490506001600160a01b038516610f68576001546001600160a01b031694505b610f7d600186610f76611107565b8588611690565b6001546001600160a01b0316600090815260156020526040902060070154610fab908263ffffffff61297a16565b6001546001600160a01b0316600090815260156020526040902060070155610fd1611107565b600180546001600160a01b03908116600090815260156020908152604080832060080195909555925490911681526014909152205461102890829061101c908563ffffffff6129a616565b9063ffffffff6129a616565b600180546001600160a01b03908116600090815260146020908152604080832095909555925482168152601590925282822060060154925192169183156108fc0291849190818181858888f1935050505015801561108a573d6000803e3d6000fd5b506040516001600160a01b0386169083156108fc029084906000818181858888f193505050501580156110c1573d6000803e3d6000fd5b505050505050565b6001546001600160a01b031633146110f35760405162461bcd60e51b815260040161089190614d61565b600092909255600355600455565b60035481565b4290565b6014602052600090815260409020805460019091015482565b600f6020526000908152604090205481565b6001546001600160a01b031633146111605760405162461bcd60e51b815260040161089190614d61565b6001546001600160a01b03163314801561117a5750600034115b6111965760405162461bcd60e51b815260040161089190614cb9565b565b60166020526000908152604090208054600182015460028301546003840154600490940154929391926001600160a01b03909116919085565b6001546001600160a01b031633146111fb5760405162461bcd60e51b815260040161089190614d61565b60408051610180810182526001600160a01b039d8e16815260208082019a8b528183019687529c8e166060820190815260808201998a5260a082019586529b8e1660c0820190815260e0820198895261010082019485529a8e166101208201908152610140820197885261016082019384523360009081526015909e5291909c209b518c54908e166001600160a01b0319918216178d55985160018d0155935160028c0155985160038b018054918d16918916919091179055945160048a01555160058901559451600688018054918a1691861691909117905590516007870155905160088601559151600985018054919096169116179093559151600a8201559051600b90910155565b601860205260009081526040902080546001820154600283015460038401546004850154600590950154939492936001600160a01b0392831693919092169186565b6001546001600160a01b031633146113725760405162461bcd60e51b815260040161089190614d61565b60408051808201825292835260208084019283523360009081526014909152209151825551600190910155565b600c805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156107985780601f1061076d57610100808354040283529160200191610798565b6001546001600160a01b031633146114245760405162461bcd60e51b815260040161089190614d61565b6001600160a01b038a161580159061144457506001600160a01b03891615155b6114605760405162461bcd60e51b815260040161089190614ce6565b600554871480611471575060065487145b61148d5760405162461bcd60e51b815260040161089190614f7c565b60008b8b8b8a8c6040516020016114a8959493929190614a5f565b60408051601f198184030181529181528151602092830120600081815260169093529120600101549091508114156114f25760405162461bcd60e51b815260040161089190614ef6565b6005548814156115aa576115098c828d8c8c6129e8565b611516818c8c8b8d612a87565b861561152a5761152a87828d8c8988612d75565b60405180606001604052808281526020018d81526020018c6001600160a01b0316815250601260008e8152602001908152602001600020600082015181600001556020820151816001015560408201518160020160006101000a8154816001600160a01b0302191690836001600160a01b031602179055509050506115fa565b6006548814156115e2576115c18c828d8c8c6129e8565b6115ce818c8c8b8d612a87565b851561152a5761152a86828d8c8887612e22565b60405162461bcd60e51b815260040161089190614fac565b6002805460010190556000611627606461161b8b602063ffffffff612ecf16565b9063ffffffff612f0916565b9050611640600254838e8e8561163b611107565b612f4b565b8a6001600160a01b03168c6001600160a01b03166000805160206151508339815191528b8d6040516116739291906150d6565b60405180910390a350505050505050505050505050565b60005481565b6001546001600160a01b031633146116ba5760405162461bcd60e51b815260040161089190614d61565b604080516080810182526001600160a01b0386811680835260208084018881528486018881526060860188815260008d8152601390945292879020955186546001600160a01b031916951694909417855551600185015591516002840155905160039092019190915590517f13e12ad66c46754375e4740de0cbff0f0fbcbd6d9e00e2998d0811c4db67034e9061175490849086906150d6565b60405180910390a25050505050565b60196020526000908152604090208054600182015460028301546003840154600485015460059095015493946001600160a01b03909316939192909186565b601a6020526000908152604090208054600182015460028301546003840154600485015460059095015493946001600160a01b03909316939192909186565b6001546001600160a01b0316331461180b5760405162461bcd60e51b815260040161089190614d61565b6001600160a01b038216611828576001546001600160a01b031691505b6040516001600160a01b0383169082156108fc029083906000818181858888f1935050505015801561185e573d6000803e3d6000fd5b505050565b61186c816130ae565b151560011461188d5760405162461bcd60e51b815260040161089190614e58565b6000818152601660205260409020600201546001600160a01b031633146118c65760405162461bcd60e51b815260040161089190614c5c565b6005546000828152601660205260409020600401541415611b2c57600081815260196020526040902060040154156119105760405162461bcd60e51b815260040161089190614f53565b33600090815260176020526040902060050154600211611a21576119356006546131b3565b6008543360009081526017602052604090206009015461195a9163ffffffff61297a16565b3360009081526017602090815260408083206009019390935583825260199052206004015461199090600163ffffffff61297a16565b6000828152601960205260408082206004810193909355600854600590930183905551339280156108fc0292909190818181858888f193505050501580156119dc573d6000803e3d6000fd5b5060008181526019602052604090819020600201546008549151339260008051602061513083398151915292611a14929091906150d6565b60405180910390a2611b27565b60015b60078111611a3f57611a376005546131b3565b600101611a24565b50600081815260196020526040902060040154611a6390600163ffffffff61297a16565b600082815260196020908152604080832060048101949094556005805494018490553383526017909152902060090154611aa29163ffffffff61297a16565b33600081815260176020526040808220600901939093556005549251919280156108fc02929091818181858888f19350505050158015611ae6573d6000803e3d6000fd5b5060008181526019602052604090819020600201546005549151339260008051602061513083398151915292611b1e929091906150d6565b60405180910390a25b611d8c565b6006546000828152601660205260409020600401541415610eb85760008181526019602052604090206004015415611b765760405162461bcd60e51b815260040161089190614f53565b33600090815260176020526040902060050154600811611c8e5760015b600a8111611bae57611ba66005546131b3565b600101611b93565b50600a5433600090815260176020526040902060090154611bd49163ffffffff61297a16565b33600090815260176020908152604080832060090193909355838252601a90522060040154611c0a90600163ffffffff61297a16565b6000828152601a60205260408082206004810193909355600a54600590930183905551339280156108fc0292909190818181858888f19350505050158015611c56573d6000803e3d6000fd5b506000818152601960205260409081902060020154600a549151339260008051602061513083398151915292611a14929091906150d6565b60015b60078111611cac57611ca46006546131b3565b600101611c91565b5060065433600090815260176020526040902060090154611cd29163ffffffff61297a16565b33600090815260176020908152604080832060090193909355838252601a90522060040154611d0890600163ffffffff61297a16565b6000828152601a60205260408082206004810193909355600654600590930183905551339280156108fc0292909190818181858888f19350505050158015611d54573d6000803e3d6000fd5b5060008181526019602052604090819020600201546006549151339260008051602061513083398151915292611b1e929091906150d6565b50565b6001600160a01b038082166000908152601760205260409020600201543391839116821415611dd05760405162461bcd60e51b815260040161089190614e0a565b826001600160a01b038116611df75760405162461bcd60e51b815260040161089190614d90565b33846001600160a01b038116821415611e225760405162461bcd60e51b815260040161089190614dbf565b34600554811480611e34575060065481145b611e505760405162461bcd60e51b815260040161089190614ec6565b6001600160a01b03808816600090815260176020526040902060010154889116611e8c5760405162461bcd60e51b815260040161089190614d32565b336000908152601760205260408120600101546001600160a01b03166121c2576000805460010190819055338a34611ec2611107565b604051602001611ed6959493929190614a5f565b6040516020818303038152906040528051906020012090506040518060a001604052806000548152602001828152602001336001600160a01b03168152602001611f1e611107565b8152346020918201526000838152601682526040808220845181559284015160018401558301516002830180546001600160a01b0319166001600160a01b039092169190911790556060830151600383015560809092015160049091015580611f868b613446565b600554341415611fc257611f9b833334613492565b33600090815260176020526040902060030154611fbf90600163ffffffff61297a16565b91505b600654341415611ffe57611fd7833334613549565b33600090815260176020526040902060040154611ffb90600163ffffffff61297a16565b90505b6040805160608082018352858252600080546020808501828152338688018181529385526012835293879020955186555160018601559051600290940180546001600160a01b0319166001600160a01b03958616179055845161014081018652888152908101829052928f16938301939093528101849052608081018390529060a082019061208c90613600565b815260200161209b333461361e565b81526020016120a8611107565b81526020016120b63361364a565b81526020016120c433613668565b90523360008181526017602090815260409182902084518155908401516001820180546001600160a01b03199081166001600160a01b039384161790915592850151600283018054909416911617909155606083015160038201556080830151600482015560a0830151600582015560c0830151600682015560e0830151600782015561010083015160088201556101209092015160099092019190915561216e90849034613686565b6121796000546139a4565b61218234613bcc565b6001600160a01b038b1633600080516020615150833981519152346121a5611107565b6040516121b39291906150d6565b60405180910390a35050612484565b336000908152601760205260409020600201546001600160a01b038a81169116146121ff5760405162461bcd60e51b815260040161089190615001565b600080546001018082553380835260176020526040909220600201549091906001600160a01b031634612230611107565b604051602001612244959493929190614a5f565b6040516020818303038152906040528051906020012090506040518060a001604052806000548152602001828152602001336001600160a01b0316815260200161228c611107565b815234602091820152600083815260168252604080822084518155848401516001820155848201516002820180546001600160a01b0319166001600160a01b0390921691909117905560608501516003820155608090940151600490940193909355338152601790915220819055612302611107565b33600081815260176020526040902060070191909155612322903461361e565b336000908152601760205260409020600601556005543414156123825761234a813334613492565b3360009081526017602052604090206003015461236e90600163ffffffff61297a16565b336000908152601760205260409020600301555b6006543414156123cf57612397813334613549565b336000908152601760205260409020600401546123bb90600163ffffffff61297a16565b336000908152601760205260409020600401555b604080516060810182528281526000805460208084018281523385870181815293855260129092529490922092518355925160018301559151600290910180546001600160a01b0319166001600160a01b0390921691909117905561243690829034613686565b6124416000546139a4565b61244a34613bcc565b6001600160a01b038916336000805160206151508339815191523461246d611107565b60405161247b9291906150d6565b60405180910390a35b505050505050505050565b6010602052600090815260409020805460018201546002909201546001600160a01b03909116919083565b6001546001600160a01b031633146124e45760405162461bcd60e51b815260040161089190614d61565b6001546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561251e573d6000803e3d6000fd5b5050565b601760205260009081526040902080546001820154600283015460038401546004850154600586015460068701546007880154600889015460099099015497986001600160a01b03978816989690971696949593949293919290918a565b6001546000906001600160a01b031633146125ad5760405162461bcd60e51b815260040161089190614d61565b6000828152601660205260409020600201546001600160a01b038481169116146125e95760405162461bcd60e51b815260040161089190614c5c565b600554600083815260166020526040902060040154141561264d5760008281526019602090815260408083206002908101546001546001600160a01b03168552601190935292209091015480821161264657600192505050610ed0565b50506126ac565b60065460008381526016602052604090206004015414156126ac576000828152601a60209081526040808320600201546001546001600160a01b031684526011909252909120600401548082116126a957600192505050610ed0565b50505b50600092915050565b600080546001018082556001600160a01b03808516835260176020526040832060020154859116846126e5611107565b6040516020016126f9959493929190614a5f565b60405160208183030381529060405280519060200120905060055482141561277057612726818484613492565b6001600160a01b03831660009081526017602052604090206003015461275390600163ffffffff61297a16565b6001600160a01b0384166000908152601760205260409020600301555b6006548214156127cf57612785818484613549565b6001600160a01b0383166000908152601760205260409020600401546127b290600163ffffffff61297a16565b6001600160a01b0384166000908152601760205260409020600401555b6127db83600054613c5d565b6040518060a001604052806000548152602001828152602001846001600160a01b0316815260200161280b611107565b81526020908101849052600083815260168252604080822084518155848401516001820155848201516002820180546001600160a01b0319166001600160a01b0392831617905560608601516003830155608090950151600490910155928616815260179091522081905561287e611107565b6001600160a01b0384166000908152601760205260409020600701556128a4838361361e565b6001600160a01b03848116600081815260176020908152604080832060060195909555845160608101865286815282548183018181528288019586529084526012909252949091209351845551600184015551600290920180546001600160a01b0319169290911691909117905561291d818484613eb7565b61292682613bcc565b6001600160a01b03808416600081815260176020526040902060020154909116906000805160206151508339815191528461295f611107565b60405161296d9291906150d6565b60405180910390a3505050565b60008282018381101561299f5760405162461bcd60e51b815260040161089190614c82565b9392505050565b600061299f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506142be565b6001546001600160a01b03163314612a125760405162461bcd60e51b815260040161089190614d61565b6040805160a08101825295865260208087018681526001600160a01b03958616888401908152606089019586526080890194855260009788526016909252919095209551865551600186015592516002850180546001600160a01b031916919093161790915551600383015551600490910155565b6001546001600160a01b03163314612ab15760405162461bcd60e51b815260040161089190614d61565b600080600554841415612af2576001600160a01b038616600090815260176020526040902060030154612aeb90600163ffffffff61297a16565b9150612b2c565b600654841415612b2c576001600160a01b038616600090815260176020526040902060040154612b2990600163ffffffff61297a16565b90505b6001600160a01b038616600090815260176020526040812060060154612b58908663ffffffff61297a16565b9050600060176000896001600160a01b03166001600160a01b031681526020019081526020016000206008015490506000601760008a6001600160a01b03166001600160a01b031681526020019081526020016000206009015490506000601760008b6001600160a01b03166001600160a01b031681526020019081526020016000206005015490506040518061014001604052808c81526020018b6001600160a01b031681526020018a6001600160a01b0316815260200187815260200186815260200182815260200185815260200188815260200184815260200183815250601760008c6001600160a01b03166001600160a01b031681526020019081526020016000206000820151816000015560208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160020160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e0820151816007015561010082015181600801556101208201518160090155905050612d496001601760008c6001600160a01b03166001600160a01b031681526020019081526020016000206005015461297a90919063ffffffff16565b6001600160a01b0390991660009081526017602052604090206005019890985550505050505050505050565b6001546001600160a01b03163314612d9f5760405162461bcd60e51b815260040161089190614d61565b6040805160c0810182528681526001600160a01b039586166020808301918252828401998a52606083019687526080830195865260a083019485526000988952601990529190962095518655516001860180546001600160a01b031916919095161790935593516002840155516003830155915160048201559051600590910155565b6001546001600160a01b03163314612e4c5760405162461bcd60e51b815260040161089190614d61565b6040805160c0810182528681526001600160a01b039586166020808301918252828401998a52606083019687526080830195865260a083019485526000988952601a90529190962095518655516001860180546001600160a01b031916919095161790935593516002840155516003830155915160048201559051600590910155565b600082612ede57506000610ed0565b82820282848281612eeb57fe5b041461299f5760405162461bcd60e51b815260040161089190614e85565b600061299f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506142ea565b6001546001600160a01b03163314612f755760405162461bcd60e51b815260040161089190614d61565b6040518060c00160405280878152602001868152602001856001600160a01b03168152602001846001600160a01b031681526020018381526020018281525060186000888152602001908152602001600020600082015181600001556020820151816001015560408201518160020160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060608201518160030160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506080820151816004015560a082015181600501559050506130878260176000866001600160a01b03166001600160a01b031681526020019081526020016000206008015461297a90919063ffffffff16565b6001600160a01b039093166000908152601760205260409020600801929092555050505050565b6000818152601660205260408120600201546001600160a01b031633146130e75760405162461bcd60e51b815260040161089190615038565b600554600083815260166020526040902060040154141561314b5760008281526019602090815260408083206002908101546001546001600160a01b031685526011909352922090910154808211613144576001925050506131ae565b50506131aa565b60065460008381526016602052604090206004015414156131aa576000828152601a60209081526040808320600201546001546001600160a01b031684526011909252909120600401548082116131a7576001925050506131ae565b50505b5060005b919050565b6000805460010180825533808352601760205260408320600201546001600160a01b0316846131e0611107565b6040516020016131f4959493929190614a5f565b60405160208183030381529060405280519060200120905060055482141561325957613221813384613492565b3360009081526017602052604090206003015461324590600163ffffffff61297a16565b336000908152601760205260409020600301555b6006548214156132a65761326e813384613549565b3360009081526017602052604090206004015461329290600163ffffffff61297a16565b336000908152601760205260409020600401555b6132b16000546139a4565b6040518060a001604052806000548152602001828152602001336001600160a01b031681526020016132e1611107565b81526020908101849052600083815260168252604080822084518155848401516001820155848201516002820180546001600160a01b0319166001600160a01b0390921691909117905560608501516003820155608090940151600490940193909355338152601790915220819055613358611107565b33600081815260176020526040902060070191909155613378908361361e565b33600081815260176020908152604080832060060194909455835160608101855285815282548183018181528287019586529084526012909252939091209251835551600183015551600290910180546001600160a01b0319166001600160a01b039092169190911790556133ec82613bcc565b6133f7813384613686565b336000818152601760205260409020600201546001600160a01b0316906000805160206151508339815191528461342c611107565b60405161343a9291906150d6565b60405180910390a35050565b6001600160a01b03811660009081526017602052604090206005015461347390600163ffffffff61297a16565b6001600160a01b03909116600090815260176020526040902060050155565b61349b81614321565b60038054600101908190556040805160c0810182528581526001600160a01b038516602082015290810191909152606081016134d5611107565b81526000602080830182905260409283018290529581526019865281902082518155948201516001860180546001600160a01b0319166001600160a01b039092169190911790558101516002850155606081015160038501556080810151600485015560a001516005909301929092555050565b613552816145ee565b60048054600101908190556040805160c0810182528581526001600160a01b0385166020820152908101919091526060810161358c611107565b8152600060208083018290526040928301829052958152601a865281902082518155948201516001860180546001600160a01b0319166001600160a01b039092169190911790558101516002850155606081015160038501556080810151600485015560a001516005909301929092555050565b6001600160a01b031660009081526017602052604090206005015490565b6001600160a01b03821660009081526017602052604081206006015461299f908363ffffffff61297a16565b6001600160a01b031660009081526017602052604090206008015490565b6001600160a01b031660009081526017602052604090206009015490565b6001600160a01b038083166000908152601760209081526040822060020154909216916136c19060649061161b90869063ffffffff612ecf16565b90506002600081548092919060010191905055506040518060c001604052806002548152602001868152602001856001600160a01b03168152602001836001600160a01b0316815260200182815260200161371a611107565b9052600280546000908152601860209081526040808320855181558583015160018201558582015194810180546001600160a01b03199081166001600160a01b039788161790915560608701516003830180549092169087161790556080860151600482015560a0909501516005909501949094559185168152601790915220600801546137a8908261297a565b6001600160a01b0383166000908152601760205260408120600801919091556137dd606461161b86600163ffffffff612ecf16565b905060006137f7606461161b87600263ffffffff612ecf16565b600180546001600160a01b031660009081526015602052604090200154909150613827908363ffffffff61297a16565b600180546001600160a01b0390811660009081526015602052604080822084019490945591541681522060040154613865908363ffffffff61297a16565b6001546001600160a01b031660009081526015602052604090206004015561388b611107565b6001546001600160a01b03166000908152601560205260409020600201556138b1611107565b6001546001600160a01b039081166000908152601560205260408082206005019390935591519086169185156108fc02918691818181858888f19350505050158015613901573d6000803e3d6000fd5b506001546001600160a01b0390811660009081526015602052604080822054905192169184156108fc0291859190818181858888f1935050505015801561394c573d6000803e3d6000fd5b506001546001600160a01b0390811660009081526015602052604080822060030154905192169183156108fc0291849190818181858888f1935050505015801561399a573d6000803e3d6000fd5b5050505050505050565b6001546001600160a01b0316600090815260146020526040812054906139d76103e861161b84602363ffffffff612ecf16565b90506139ea83601263ffffffff61475f16565b1580613a045750613a0283601363ffffffff61475f16565b155b80613a1d5750613a1b83601b63ffffffff61475f16565b155b80613a365750613a3483602663ffffffff61475f16565b155b80613a4f5750613a4d83602763ffffffff61475f16565b155b1561185e576001546001600160a01b0316600090815260146020526040902054613a7f908263ffffffff6129a616565b6001546001600160a01b03166000908152601460209081526040918290209290925580516060810182523381529182018390528101613abc611107565b9052600160009081526010602090815282517f8c6065603763fec3f5742441d3833f3f43b982453612d76adb39a885e3006b5f80546001600160a01b0319166001600160a01b039092169190911790558201517f8c6065603763fec3f5742441d3833f3f43b982453612d76adb39a885e3006b60556040918201517f8c6065603763fec3f5742441d3833f3f43b982453612d76adb39a885e3006b6155905133916108fc841502918491818181858888f19350505050158015613b83573d6000803e3d6000fd5b50336001600160a01b03167f139deb7d0ab2f1deeb19d0174aaabc72ff1b8ff25151b311b42d484d82a14ba28285604051613bbf9291906150d6565b60405180910390a2505050565b6000613be4606461161b84600a63ffffffff612ecf16565b6001546001600160a01b031660009081526014602052604081205491925090613c13908363ffffffff61297a16565b90506040518060400160405280828152602001613c2e611107565b9052600180546001600160a01b0316600090815260146020908152604090912083518155920151910155505050565b6001546001600160a01b03163314613c875760405162461bcd60e51b815260040161089190614d61565b6001546001600160a01b031660009081526014602052604081205490613cba6103e861161b84602363ffffffff612ecf16565b9050613ccd83601263ffffffff61475f16565b1580613ce75750613ce583601363ffffffff61475f16565b155b80613d005750613cfe83601b63ffffffff61475f16565b155b80613d195750613d1783602663ffffffff61475f16565b155b80613d325750613d3083602763ffffffff61475f16565b155b15613eb1576001546001600160a01b0316600090815260146020526040902054613d62908263ffffffff6129a616565b6001546001600160a01b039081166000908152601460209081526040918290209390935580516060810182529187168252918101839052908101613da4611107565b9052600160009081526010602090815282517f8c6065603763fec3f5742441d3833f3f43b982453612d76adb39a885e3006b5f80546001600160a01b0319166001600160a01b03928316179055908301517f8c6065603763fec3f5742441d3833f3f43b982453612d76adb39a885e3006b60556040928301517f8c6065603763fec3f5742441d3833f3f43b982453612d76adb39a885e3006b61559151918616916108fc84150291849190818181858888f19350505050158015613e6c573d6000803e3d6000fd5b50836001600160a01b03167f139deb7d0ab2f1deeb19d0174aaabc72ff1b8ff25151b311b42d484d82a14ba28285604051613ea89291906150d6565b60405180910390a25b50505050565b6001546001600160a01b03163314613ee15760405162461bcd60e51b815260040161089190614d61565b6001600160a01b0380831660009081526017602052604081206002015490911690613f18606461161b85601063ffffffff612ecf16565b90506002600081548092919060010191905055506040518060c001604052806002548152602001868152602001856001600160a01b03168152602001836001600160a01b03168152602001828152602001613f71611107565b9052600280546000908152601860209081526040808320855181558583015160018201558582015194810180546001600160a01b03199081166001600160a01b039788161790915560608701516003830180549092169087161790556080860151600482015560a090950151600590950194909455918716815260179091522060080154613fff908261297a565b6001600160a01b038516600090815260176020526040812060080191909155614034606461161b86600163ffffffff612ecf16565b9050600061404e606461161b87600263ffffffff612ecf16565b90506000614068606461161b88601063ffffffff612ecf16565b600180546001600160a01b031660009081526015602052604090200154909150614098908463ffffffff61297a16565b600180546001600160a01b03908116600090815260156020526040808220840194909455915416815220600401546140d6908463ffffffff61297a16565b600180546001600160a01b0390811660009081526015602052604080822060040194909455915416815220600a0154614115908263ffffffff61297a16565b6001546001600160a01b03166000908152601560205260409020600a015561413b611107565b6001546001600160a01b0316600090815260156020526040902060020155614161611107565b6001546001600160a01b0316600090815260156020526040902060050155614187611107565b6001546001600160a01b03908116600090815260156020526040808220600b019390935591519089169186156108fc02918791818181858888f193505050501580156141d7573d6000803e3d6000fd5b506001546001600160a01b0390811660009081526015602052604080822054905192169185156108fc0291869190818181858888f19350505050158015614222573d6000803e3d6000fd5b506001546001600160a01b0390811660009081526015602052604080822060030154905192169184156108fc0291859190818181858888f19350505050158015614270573d6000803e3d6000fd5b506001546001600160a01b0390811660009081526015602052604080822060090154905192169183156108fc0291849190818181858888f19350505050158015612484573d6000803e3d6000fd5b600081848411156142e25760405162461bcd60e51b81526004016108919190614c09565b505050900390565b6000818361430b5760405162461bcd60e51b81526004016108919190614c09565b50600083858161431757fe5b0495945050505050565b61432a816147a1565b6000614342606461161b84602d63ffffffff612ecf16565b6001546001600160a01b0316600090815260116020526040902054909150614370908263ffffffff61297a16565b600180546001600160a01b039081166000908152601160205260408082209490945560075492549091168152918220546143af9163ffffffff612f0916565b11156144af576007546001546001600160a01b031660009081526011602052604081205490916143e5919063ffffffff612f0916565b905060006143fe82600754612ecf90919063ffffffff16565b6001546001600160a01b031660009081526011602052604090205490915061442c908263ffffffff6129a616565b600180546001600160a01b039081166000908152601160205260408082209490945591541681522060020154614468908363ffffffff61297a16565b6001546001600160a01b031660009081526011602052604090206002015561448e611107565b6001546001600160a01b031660009081526011602052604090206003015550505b600954600180546001600160a01b031660009081526011602052604081209091015490916144e3919063ffffffff612f0916565b111561251e57600954600180546001600160a01b0316600090815260116020526040812090910154909161451d919063ffffffff612f0916565b9050600061453682600954612ecf90919063ffffffff16565b600180546001600160a01b031660009081526011602052604090200154909150614566908263ffffffff6129a616565b600180546001600160a01b03908116600090815260116020526040808220840194909455915416815220600401546145a4908363ffffffff61297a16565b6001546001600160a01b03166000908152601160205260409020600401556145ca611107565b6001546001600160a01b031660009081526011602052604090206005015550505050565b6000614606606461161b84603763ffffffff612ecf16565b600180546001600160a01b031660009081526011602052604090200154909150614636908263ffffffff61297a16565b600180546001600160a01b03908116600090815260116020526040808220840194909455600954835490921681529283209091015461467a9163ffffffff612f0916565b111561251e57600954600180546001600160a01b031660009081526011602052604081209091015490916146b4919063ffffffff612f0916565b905060006146cd82600954612ecf90919063ffffffff16565b600180546001600160a01b0316600090815260116020526040902001549091506146fd908263ffffffff6129a616565b600180546001600160a01b039081166000908152601160205260408082208401949094559154168152206004015461473b908363ffffffff61297a16565b6001546001600160a01b031660009081526011602052604090206004015550505050565b600061299f83836040518060400160405280601881526020017f536166654d6174683a206d6f64756c6f206279207a65726f000000000000000081525061480a565b60006147b9606461161b84600a63ffffffff612ecf16565b600180546001600160a01b0316600090815260116020526040902001549091506147e9908263ffffffff61297a16565b600180546001600160a01b0316600090815260116020526040902001555050565b6000818361482b5760405162461bcd60e51b81526004016108919190614c09565b5082848161483557fe5b06949350505050565b60006020828403121561484f578081fd5b813561299f8161511a565b6000806000806000806000806000806000806101808d8f03121561487c578788fd5b8c356148878161511a565b9b5060208d01356148978161511a565b9a5060408d01356148a78161511a565b995060608d01356148b78161511a565b9b9e9a9d50989b60808101359a60a08201359a5060c0820135995060e08201359850610100820135975061012082013596506101408201359550610160909101359350915050565b60008060408385031215614911578182fd5b823561491c8161511a565b946020939093013593505050565b60006020828403121561493b578081fd5b5035919050565b60008060008060008060008060008060006101608c8e031215614963578081fd5b8b359a5060208c01356149758161511a565b995060408c01356149858161511a565b9a9d999c50999a60608101359a5060808101359960a0820135995060c0820135985060e0820135975061010082013596506101208201359550610140909101359350915050565b600080600080600060a086880312156149e3578081fd5b8535945060208601356149f58161511a565b94979496505050506040830135926060810135926080909101359150565b60008060408385031215614a25578182fd5b50508035926020909101359150565b600080600060608486031215614a48578283fd5b505081359360208301359350604090920135919050565b9485526bffffffffffffffffffffffff19606094851b811660208701529290931b90911660348401526048830152606882015260880190565b6001600160a01b0391909116815260200190565b6001600160a01b039c8d168152602081019b909b5260408b0199909952968a1660608a0152608089019590955260a088019390935290871660c087015260e08601526101008501529093166101208301526101408201929092526101608101919091526101800190565b6001600160a01b039390931683526020830191909152604082015260600190565b6001600160a01b0394909416845260208401929092526040830152606082015260800190565b901515815260200190565b998a526001600160a01b0398891660208b01529690971660408901526060880194909452608087019290925260a086015260c085015260e08401526101008301919091526101208201526101400190565b9586526001600160a01b0394909416602086015260408501929092526060840152608083015260a082015260c00190565b92835260208301919091526001600160a01b0316604082015260600190565b6000602080835283518082850152825b81811015614c3557858101830151858201604001528201614c19565b81811115614c465783604083870101525b50601f01601f1916929092016040019392505050565b6020808252600c908201526b092dcecc2d8d2c840d0c2e6d60a31b604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526013908201527220b2323932b9b9903737ba1031b932b0ba37b960691b604082015260600190565b6020808252602c908201527f416464726573732063616e742062652030783020616e6420726566657272657260408201526b02063616e74206265203078360a41b606082015260800190565b6020808252601590820152742932b332b93932b9102737ba102932b3b4b9ba32b960591b604082015260600190565b60208082526015908201527421b0b63632b91034b9903737ba1031b932b0ba37b960591b604082015260600190565b602080825260159082015274416464726573732063616e7420626520656d70747960581b604082015260600190565b6020808252602b908201527f52656665727265722063616e6e6f74207265676973746572206173206974732060408201526a6f776e205265666572656560a81b606082015260800190565b6020808252602e908201527f52656665727265722063616e6e6f74207265676973746572206173207265666560408201526d3932b293b9903932b332b93932b960911b606082015260800190565b6020808252601390820152724e6f742076616c696420746f20736574746c6560681b604082015260600190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b602080825260169082015275125b9d985b1a590819195c1bdcda5d08185b5bdd5b9d60521b604082015260600190565b6020808252603a908201527f4163636f756e7420526567697374657265642120506c6561736520776169742060408201527f666f722031206d696e7574657320746f2074727920616761696e000000000000606082015260800190565b6020808252600f908201526e105b1c9958591e481cd95d1d1b1959608a1b604082015260600190565b602080825260169082015275125b9d985b1a590811195c1bdcda5d08105b5bdd5b9d60521b604082015260600190565b602080825260159082015274496e76616c696420526567697374726174696f6e2160581b604082015260600190565b6020808252600c908201526b4661696c656420657869742160a01b604082015260600190565b6020808252601d908201527f446966666572656e742072656665727265722072656769737465726564000000604082015260600190565b6020808252601e908201527f496e76616c69642068617368206f722061646472657373206f776e6572210000604082015260600190565b90815260200190565b94855260208501939093526001600160a01b039190911660408401526060830152608082015260a00190565b95865260208601949094526001600160a01b03928316604086015291166060840152608083015260a082015260c00190565b918252602082015260400190565b958652602086019490945260408501929092526060840152608083015260a082015260c00190565b60ff91909116815260200190565b6001600160a01b0381168114611d8c57600080fdfe1738b9927ab40adc35d82a0f1b7fc437319abbb79dba4db84c3f869035737ae2feadbd03057c105a9e4fdeb010af0a1699363e0bf010e2b385e6c5e3890f5b13b3090f35dfbee3400bbb20b3c0f2f649ff8172d5fb6e9fd20157343e1fda27c8a264697066735822122068ed096111d8adc32d286f8446e70d06932652dcdb2a542a0f3819a967f18c1664736f6c63430006080033
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
2713:33329:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5547:58;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;5547:58:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;5663:55;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;5663:55:0;;;;;;;;:::i;:::-;;;;;;;;;;;3170:18;;5:9:-1;2:2;;;27:1;24;17:12;2:2;3170:18:0;;;:::i;:::-;;;;;;;;35952:87;;5:9:-1;2:2;;;27:1;24;17:12;2:2;35952:87:0;;;:::i;:::-;;;;;;;;5612:44;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;5612:44:0;;;;;;;;:::i;:::-;;;;;;;;;;3255:26;;5:9:-1;2:2;;;27:1;24;17:12;2:2;3255:26:0;;;:::i;:::-;;;;;;;;5782:51;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;5782:51:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2827:20;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2827:20:0;;;:::i;2883:22::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2883:22:0;;;:::i;3222:26::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;3222:26:0;;;:::i;:::-;;;;;;;;23973:2743;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;23973:2743:0;;;;;;;;:::i;:::-;;;;;;;;28577:761;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;28577:761:0;;;;;;;;:::i;23743:224::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;23743:224:0;;;;;;;;:::i;2854:22::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2854:22:0;;;:::i;7988:97::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;7988:97:0;;;:::i;5725:50::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;5725:50:0;;;;;;;;:::i;:::-;;;;;;;;;5439:45;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;5439:45:0;;;;;;;;:::i;28204:158::-;;;:::i;5840:42::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;5840:42:0;;;;;;;;:::i;:::-;;;;;;;;;;;;27351:703;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;27351:703:0;;;;;;;;:::i;5946:59::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;5946:59:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;27110:233;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;27110:233:0;;;;;;;;:::i;3195:20::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;3195:20:0;;;:::i;21819:1918::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;21819:1918:0;;;;;;;;:::i;2765:17::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2765:17:0;;;:::i;26724:378::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;26724:378:0;;;;;;;;:::i;6012:49::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;6012:49:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;6068:51;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;6068:51:0;;;;;;;;:::i;28374:191::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;28374:191:0;;;;;;;;:::i;10810:2599::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;10810:2599:0;;;;;;;;:::i;8097:2705::-;;;;;;;;;:::i;5491:49::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;5491:49:0;;;;;;;;:::i;:::-;;;;;;;;;;28062:136;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;28062:136:0;;;;;;;;:::i;5889:50::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;5889:50:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;5547:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5663:55::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5663:55:0;;;;;;;:::o;3170:18::-;;;;;;;;;;;;;;;-1:-1:-1;;3170:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;35952:87::-;36024:7;;-1:-1:-1;;;;;36024:7:0;35952:87;:::o;5612:44::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5612:44:0;;:::o;3255:26::-;;;;:::o;5782:51::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5782:51:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2827:20::-;;;;:::o;2883:22::-;;;;:::o;3222:26::-;;;;;;:::o;23973:2743::-;6687:7;;24121:4;;-1:-1:-1;;;;;6687:7:0;6673:10;:21;6665:55;;;;-1:-1:-1;;;6665:55:0;;;;;;;;;;;;;;;;;24155:33:::1;24172:5;24178:9;24155:16;:33::i;:::-;:39;;24190:4;24155:39;24147:70;;;;-1:-1:-1::0;;;24147:70:0::1;;;;;;;;;24243:17;::::0;;;:6:::1;:17;::::0;;;;:25:::1;;::::0;-1:-1:-1;;;;;24236:32:0;;::::1;24243:25:::0;::::1;24236:32;24228:56;;;;-1:-1:-1::0;;;24228:56:0::1;;;;;;;;;24325:6;::::0;24298:17:::1;::::0;;;:6:::1;:17;::::0;;;;:25:::1;;::::0;:33:::1;24295:2414;;;24355:23;::::0;;;:12:::1;:23;::::0;;;;:30:::1;;::::0;:33;24347:60:::1;;;;-1:-1:-1::0;;;24347:60:0::1;;;;;;;;;-1:-1:-1::0;;;;;24425:18:0;::::1;;::::0;;;:11:::1;:18;::::0;;;;:32:::1;;::::0;24459:1:::1;-1:-1:-1::0;24422:1001:0::1;;24476:40;24503:5;24509:6;;24476:26;:40::i;:::-;24605:11;::::0;-1:-1:-1;;;;;24566:18:0;::::1;;::::0;;;:11:::1;:18;::::0;;;;:34:::1;;::::0;:51:::1;::::0;::::1;:38;:51;:::i;:::-;-1:-1:-1::0;;;;;24531:18:0;::::1;;::::0;;;:11:::1;:18;::::0;;;;;;;:34:::1;;:86:::0;;;;24663:23;;;:12:::1;:23:::0;;;:30:::1;;::::0;:37:::1;::::0;24698:1:::1;24663:37;:34;:37;:::i;:::-;24632:23;::::0;;;:12:::1;:23;::::0;;;;;:30:::1;::::0;::::1;:68:::0;;;;24746:11:::1;::::0;24715:30:::1;::::0;;::::1;:42:::0;;;24772:27;-1:-1:-1;;;;;24772:14:0;::::1;::::0;:27;::::1;;;::::0;24746:11;;24772:27;;24632:23;24772:27;24746:11;24772: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;;;;;;24880:18:0;;::::1;;::::0;;;:11:::1;:18;::::0;;;;;;;:27:::1;::::0;;::::1;::::0;24836:23;;;:12:::1;:23:::0;;;;;;;:31;;::::1;::::0;24868:11:::1;::::0;24819:89;;24880:27;;;::::1;::::0;-1:-1:-1;;;;;;;;;;;24819:89:0;::::1;::::0;::::1;;;;;;;;;;24422:1001;;;24954:1;24943:93;24959:1;24956;:4;24943:93;;24980:40;25007:5;25013:6;;24980:26;:40::i;:::-;24961:3;;24943:93;;;-1:-1:-1::0;25081:23:0::1;::::0;;;:12:::1;:23;::::0;;;;:30:::1;;::::0;:37:::1;::::0;25116:1:::1;25081:37;:34;:37;:::i;:::-;25050:23;::::0;;;:12:::1;:23;::::0;;;;;;;:30:::1;::::0;::::1;:68:::0;;;;25164:6:::1;::::0;;25133:30;::::1;:37:::0;;;-1:-1:-1;;;;;25220:18:0;::::1;::::0;;:11:::1;:18:::0;;;;;:34:::1;;::::0;:46:::1;::::0;::::1;:38;:46;:::i;:::-;-1:-1:-1::0;;;;;25185:18:0;::::1;;::::0;;;:11:::1;:18;::::0;;;;;:34:::1;;:81:::0;;;;25296:6:::1;::::0;25281:22;;25185:18;;25281:22;::::1;;;::::0;25296:6;;25281:22;25185:18;25281:22;25296:6;25185:18;25281: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;;;;;;25379:18:0;;::::1;;::::0;;;:11:::1;:18;::::0;;;;;;;:27:::1;::::0;;::::1;::::0;25340:23;;;:12:::1;:23:::0;;;;;;;:31;;::::1;::::0;25372:6:::1;::::0;25323:84;;25379:27;;;::::1;::::0;-1:-1:-1;;;;;;;;;;;25323:84:0;::::1;::::0;::::1;;;;;;;;;;24422:1001;24295:2414;;;25478:6;::::0;25451:17:::1;::::0;;;:6:::1;:17;::::0;;;;:25:::1;;::::0;:33:::1;25448:1261;;;25508:24;::::0;;;:13:::1;:24;::::0;;;;:31:::1;;::::0;:34;25500:61:::1;;;;-1:-1:-1::0;;;25500:61:0::1;;;;;;;;;-1:-1:-1::0;;;;;25575:18:0;::::1;;::::0;;;:11:::1;:18;::::0;;;;:32:::1;;::::0;25609:1:::1;-1:-1:-1::0;25572:1060:0::1;;25637:1;25626:94;25642:2;25639:1;:5;25626:94;;25664:40;25691:5;25697:6;;25664:26;:40::i;:::-;25645:3;;25626:94;;;-1:-1:-1::0;25808:11:0::1;::::0;-1:-1:-1;;;;;25769:18:0;::::1;;::::0;;;:11:::1;:18;::::0;;;;:34:::1;;::::0;:51:::1;::::0;::::1;:38;:51;:::i;:::-;-1:-1:-1::0;;;;;25734:18:0;::::1;;::::0;;;:11:::1;:18;::::0;;;;;;;:34:::1;;:86:::0;;;;25867:24;;;:13:::1;:24:::0;;;:31:::1;;::::0;:38:::1;::::0;25903:1:::1;25867:38;:35;:38;:::i;:::-;25835:24;::::0;;;:13:::1;:24;::::0;;;;;:31:::1;::::0;::::1;:70:::0;;;;25952:11:::1;::::0;25920:31:::1;::::0;;::::1;:43:::0;;;25978:27;-1:-1:-1;;;;;25978:14:0;::::1;::::0;:27;::::1;;;::::0;25952:11;;25978:27;;25835:24;25978:27;25952:11;25978: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;;;;;;26086:18:0;;::::1;;::::0;;;:11:::1;:18;::::0;;;;;;;:27:::1;::::0;;::::1;::::0;26042:23;;;:12:::1;:23:::0;;;;;;;:31;;::::1;::::0;26074:11:::1;::::0;26025:89;;26086:27;;;::::1;::::0;-1:-1:-1;;;;;;;;;;;26025:89:0;::::1;::::0;::::1;;25572:1060;26160:1;26149:93;26165:1;26162;:4;26149:93;;26186:40;26213:5;26219:6;;26186:26;:40::i;:::-;26167:3;;26149:93;;;-1:-1:-1::0;26330:6:0::1;::::0;-1:-1:-1;;;;;26291:18:0;::::1;;::::0;;;:11:::1;:18;::::0;;;;:34:::1;;::::0;:46:::1;::::0;::::1;:38;:46;:::i;:::-;-1:-1:-1::0;;;;;26256:18:0;::::1;;::::0;;;:11:::1;:18;::::0;;;;;;;:34:::1;;:81:::0;;;;26384:24;;;:13:::1;:24:::0;;;:31:::1;;::::0;:38:::1;::::0;26420:1:::1;26384:38;:35;:38;:::i;:::-;26352:24;::::0;;;:13:::1;:24;::::0;;;;;:31:::1;::::0;::::1;:70:::0;;;;26469:6:::1;::::0;26437:31:::1;::::0;;::::1;:38:::0;;;26490:22;-1:-1:-1;;;;;26490:14:0;::::1;::::0;:22;::::1;;;::::0;26469:6;;26490:22;;26352:24;26490:22;26469:6;26490: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;;;;;;26588:18:0;;::::1;;::::0;;;:11:::1;:18;::::0;;;;;;;:27:::1;::::0;;::::1;::::0;26549:23;;;:12:::1;:23:::0;;;;;;;:31;;::::1;::::0;26581:6:::1;::::0;26532:84;;26588:27;;;::::1;::::0;-1:-1:-1;;;;;;;;;;;26532:84:0;::::1;::::0;::::1;;25448:1261;26675:22;;-1:-1:-1::0;;;26675:22:0::1;;;;;;;;25448:1261;23973:2743:::0;;;;:::o;28577:761::-;6687:7;;-1:-1:-1;;;;;6687:7:0;6673:10;:21;6665:55;;;;-1:-1:-1;;;6665:55:0;;;;;;;;;28705:7:::1;::::0;-1:-1:-1;;;;;28705:7:0::1;28675:14;28690:23:::0;;;:14:::1;:23;::::0;;;;;;:35;;28675:14;28774:3:::1;::::0;;;28757:9;::::1;:13;28771:2;28757:16;:20;;;;;;::::0;-1:-1:-1;28788:14:0::1;28820:3;::::0;28810:2:::1;28803:9:::0;::::1;:13;28817:2;28803:16;:20;;;;;;::::0;-1:-1:-1;;;;;;28837:17:0;::::1;28834:61;;28876:7;::::0;-1:-1:-1;;;;;28876:7:0::1;::::0;-1:-1:-1;28834:61:0::1;28905:64;28925:1;28927:5;28933:9;:7;:9::i;:::-;28943:12;28956;28905:19;:64::i;:::-;29029:7;::::0;-1:-1:-1;;;;;29029:7:0::1;29017:20;::::0;;;:11:::1;:20;::::0;;;;:35:::1;;::::0;:47:::1;::::0;29057:6;29017:47:::1;:39;:47;:::i;:::-;28993:7;::::0;-1:-1:-1;;;;;28993:7:0::1;28981:20;::::0;;;:11:::1;:20;::::0;;;;:35:::1;;:83:::0;29109:9:::1;:7;:9::i;:::-;29087:7;::::0;;-1:-1:-1;;;;;29087:7:0;;::::1;29075:20;::::0;;;:11:::1;:20;::::0;;;;;;;:33:::1;;:43:::0;;;;29180:7;;;;::::1;29165:23:::0;;:14:::1;:23:::0;;;;:35;:65:::1;::::0;29223:6;;29165:53:::1;::::0;29205:12;29165:53:::1;:39;:53;:::i;:::-;:57:::0;:65:::1;:57;:65;:::i;:::-;29144:7;::::0;;-1:-1:-1;;;;;29144:7:0;;::::1;29129:23;::::0;;;:14:::1;:23;::::0;;;;;;;:101;;;;29253:7;;;::::1;29241:20:::0;;:11:::1;:20:::0;;;;;;:28:::1;;::::0;:45;;:28;::::1;::::0;:45;::::1;;;::::0;29279:6;;29241:45;;29129:23;29241:45;29279:6;29241: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;29298:28:0::1;::::0;-1:-1:-1;;;;;29298:14:0;::::1;::::0;:28;::::1;;;::::0;29313:12;;29298:28:::1;::::0;;;29313:12;29298: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;29298:28:0;6731:1;;;28577:761:::0;;:::o;23743:224::-;6687:7;;-1:-1:-1;;;;;6687:7:0;6673:10;:21;6665:55;;;;-1:-1:-1;;;6665:55:0;;;;;;;;;23895:2:::1;:10:::0;;;;23916:7:::1;:16:::0;23943:7:::1;:16:::0;23743:224::o;2854:22::-;;;;:::o;7988:97::-;8074:3;7988:97;:::o;5725:50::-;;;;;;;;;;;;;;;;;;;:::o;5439:45::-;;;;;;;;;;;;;:::o;28204:158::-;6687:7;;-1:-1:-1;;;;;6687:7:0;6673:10;:21;6665:55;;;;-1:-1:-1;;;6665:55:0;;;;;;;;;28309:7:::1;::::0;-1:-1:-1;;;;;28309:7:0::1;28297:10;:19;:34:::0;::::1;;;;28330:1;28320:9;:11;28297:34;28289:65;;;;-1:-1:-1::0;;;28289:65:0::1;;;;;;;;;28204:158::o:0;5840:42::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5840:42:0;;;;;;:::o;27351:703::-;6687:7;;-1:-1:-1;;;;;6687:7:0;6673:10;:21;6665:55;;;;-1:-1:-1;;;6665:55:0;;;;;;;;;27874:168:::1;::::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;;;;;27874:168:0;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;;;;;;;;;::::1;::::0;;;;;;;;;;;;;;;;;;;;::::1;::::0;;;;;;;;;;;;;;;;;;;;::::1;::::0;;;;;;;;;;;;;;;;;;27862:10:::1;-1:-1:-1::0;27850:23:0;;;:11:::1;:23:::0;;;;;;;:192;;;;;;::::1;-1:-1:-1::0;;;;;;27850: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;27351:703::o;5946:59::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5946:59:0;;;;;;;;;;:::o;27110:233::-;6687:7;;-1:-1:-1;;;;;6687:7:0;6673:10;:21;6665:55;;;;-1:-1:-1;;;6665:55:0;;;;;;;;;27297:34:::1;::::0;;;;::::1;::::0;;;;;::::1;::::0;;::::1;::::0;;;27285:10:::1;-1:-1:-1::0;27270:26:0;;;:14:::1;:26:::0;;;;:61;;;;;::::1;::::0;;::::1;::::0;27110:233::o;3195:20::-;;;;;;;;;;;;;;;-1:-1:-1;;3195:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21819:1918;6687:7;;-1:-1:-1;;;;;6687:7:0;6673:10;:21;6665:55;;;;-1:-1:-1;;;6665:55:0;;;;;;;;;-1:-1:-1;;;;;22233:20:0;::::1;::::0;;::::1;::::0;:45:::1;;-1:-1:-1::0;;;;;;22257:21:0;::::1;::::0;::::1;22233:45;22225:101;;;;-1:-1:-1::0;;;22225:101:0::1;;;;;;;;;22355:6;;22345:8;:16;:36;;;;22375:6;;22365:8;:16;22345:36;22337:70;;;;-1:-1:-1::0;;;22337:70:0::1;;;;;;;;;22418:19;22465:7;22473:8;22482:9;22492:8;22501:9;22448:63;;;;;;;;;;;;;;;::::0;;-1:-1:-1;;26:21;;::::1;22:32:::0;6:49;;22448:63:0;;;22438:74;;49:4:-1::1;22438:74:0::0;;::::1;::::0;22531:19:::1;::::0;;;:6:::1;:19:::0;;;;;:27:::1;;::::0;22438:74;;-1:-1:-1;22531:40:0;::::1;;22523:110;;;;-1:-1:-1::0;;;22523:110:0::1;;;;;;;;;22657:6;;22647:8;:16;22644:860;;;22679:69;22700:7;22708:11;22720:8;22729:9;22739:8;22679:20;:69::i;:::-;22763:66;22779:11;22791:8;22800:9;22810:8;22819:9;22763:15;:66::i;:::-;22847:7:::0;;22844:111:::1;;22870:69;22883:5;22889:11;22901:8;22910:9;22920;22930:8;22870:12;:69::i;:::-;22987:37;;;;;;;;22995:11;22987:37;;;;23007:7;22987:37;;;;23015:8;-1:-1:-1::0;;;;;22987:37:0::1;;;::::0;22969:8:::1;:17;22978:7;22969:17;;;;;;;;;;;:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;22969:55:0::1;;;;;-1:-1:-1::0;;;;;22969:55:0::1;;;;;;;;;22644:860;;;23063:6;;23053:8;:16;23050:454;;;23085:69;23106:7;23114:11;23126:8;23135:9;23145:8;23085:20;:69::i;:::-;23169:66;23185:11;23197:8;23206:9;23216:8;23225:9;23169:15;:66::i;:::-;23253:7:::0;;23250:111:::1;;23276:69;23289:5;23295:11;23307:8;23316:9;23326;23336:8;23276:12;:69::i;23050:454::-;23461:31;;-1:-1:-1::0;;;23461:31:0::1;;;;;;;;23050:454;23514:5;:7:::0;;::::1;;::::0;;:5:::1;23544:25;23565:3;23544:16;:8:::0;23557:2:::1;23544:16;:12;:16;:::i;:::-;:20:::0;:25:::1;:20;:25;:::i;:::-;23532:37;;23580:75;23604:5;;23610:11;23622:8;23631:9;23641:3;23645:9;:7;:9::i;:::-;23580:23;:75::i;:::-;23700:9;-1:-1:-1::0;;;;;23671:58:0::1;23691:8;-1:-1:-1::0;;;;;23671:58:0::1;-1:-1:-1::0;;;;;;;;;;;23710:8:0::1;23719:9;23671:58;;;;;;;;;;;;;;;;6731:1;;21819:1918:::0;;;;;;;;;;;:::o;2765:17::-;;;;:::o;26724:378::-;6687:7;;-1:-1:-1;;;;;6687:7:0;6673:10;:21;6665:55;;;;-1:-1:-1;;;6665:55:0;;;;;;;;;26975::::1;::::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;;;;;26975:55:0;;::::1;::::0;;;::::1;::::0;;::::1;::::0;;;;;;;;;;;;;;;-1:-1:-1;26956:18:0;;;:13:::1;:18:::0;;;;;;;:74;;;;-1:-1:-1;;;;;;26956:74:0::1;::::0;::::1;::::0;;;::::1;::::0;;;-1:-1:-1;26956:74:0;::::1;::::0;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;::::1;::::0;;;;27046:44;;::::1;::::0;::::1;::::0;26975:55;;;;27046:44:::1;;;;;;;;;;26724:378:::0;;;;;:::o;6012:49::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6012:49:0;;;;;;;;;:::o;6068:51::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6068:51:0;;;;;;;;;:::o;28374:191::-;6687:7;;-1:-1:-1;;;;;6687:7:0;6673:10;:21;6665:55;;;;-1:-1:-1;;;6665:55:0;;;;;;;;;-1:-1:-1;;;;;28463:17:0;::::1;28460:61;;28502:7;::::0;-1:-1:-1;;;;;28502:7:0::1;::::0;-1:-1:-1;28460:61:0::1;28531:22;::::0;-1:-1:-1;;;;;28531:14:0;::::1;::::0;:22;::::1;;;::::0;28546:6;;28531:22:::1;::::0;;;28546:6;28531: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;28531:22:0;28374:191:::0;;:::o;10810:2599::-;10923:20;10933:9;10923;:20::i;:::-;:26;;10945:4;10923:26;10915:57;;;;-1:-1:-1;;;10915:57:0;;;;;;;;;11003:17;;;;:6;:17;;;;;:25;;;-1:-1:-1;;;;;11003:25:0;10991:10;:37;10983:61;;;;-1:-1:-1;;;10983:61:0;;;;;;;;;11085:6;;11058:17;;;;:6;:17;;;;;:25;;;:33;11055:2347;;;11115:23;;;;:12;:23;;;;;:30;;;:33;11107:60;;;;-1:-1:-1;;;11107:60:0;;;;;;;;;11197:10;11185:23;;;;:11;:23;;;;;:37;;;11224:1;-1:-1:-1;11182:968:0;;11241:27;11261:6;;11241:19;:27::i;:::-;11367:11;;11335:10;11323:23;;;;:11;:23;;;;;:39;;;:56;;;:43;:56;:::i;:::-;11295:10;11283:23;;;;:11;:23;;;;;;;;:39;;:96;;;;11425:23;;;:12;:23;;;:30;;;:37;;11460:1;11425:37;:34;:37;:::i;:::-;11394:23;;;;:12;:23;;;;;;:30;;;:68;;;;11508:11;;11477:30;;;;:42;;;11534:32;:10;;:32;;;;;11508:11;;11534:32;;11394:23;11534:32;11508:11;11534:10;:32;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;11610:23:0;;;;:12;:23;;;;;;;:31;;;11642:11;;11586:68;;11598:10;;-1:-1:-1;;;;;;;;;;;11586:68:0;;;11610:31;;11642:11;11586:68;;;;;;;;;;11182:968;;;11700:1;11689:80;11705:1;11702;:4;11689:80;;11726:27;11746:6;;11726:19;:27::i;:::-;11707:3;;11689:80;;;-1:-1:-1;11814:23:0;;;;:12;:23;;;;;:30;;;:37;;11849:1;11814:37;:34;:37;:::i;:::-;11783:23;;;;:12;:23;;;;;;;;:30;;;:68;;;;11897:6;;;11866:30;;:37;;;11970:10;11958:23;;:11;:23;;;;;:39;;;:51;;;:43;:51;:::i;:::-;11930:10;11918:23;;;;:11;:23;;;;;;:39;;:91;;;;12044:6;;12024:27;;11930:10;;12024:27;;;;;12044:6;;12024:27;11918:23;12024:27;12044:6;11930:10;12024:27;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;12095:23:0;;;;:12;:23;;;;;;;:31;;;12127:6;;12071:63;;12083:10;;-1:-1:-1;;;;;;;;;;;12071:63:0;;;12095:31;;12127:6;12071:63;;;;;;;;;;11182:968;11055:2347;;;12205:6;;12178:17;;;;:6;:17;;;;;:25;;;:33;12175:1227;;;12235:23;;;;:12;:23;;;;;:30;;;:33;12227:60;;;;-1:-1:-1;;;12227:60:0;;;;;;;;;12313:10;12301:23;;;;:11;:23;;;;;:37;;;12340:1;-1:-1:-1;12298:1027:0;;12368:1;12357:81;12373:2;12370:1;:5;12357:81;;12395:27;12415:6;;12395:19;:27::i;:::-;12376:3;;12357:81;;;-1:-1:-1;12536:11:0;;12504:10;12492:23;;;;:11;:23;;;;;:39;;;:56;;;:43;:56;:::i;:::-;12464:10;12452:23;;;;:11;:23;;;;;;;;:39;;:96;;;;12595:24;;;:13;:24;;;:31;;;:38;;12631:1;12595:38;:35;:38;:::i;:::-;12563:24;;;;:13;:24;;;;;;:31;;;:70;;;;12680:11;;12648:31;;;;:43;;;12706:32;:10;;:32;;;;;12680:11;;12706:32;;12563:24;12706:32;12680:11;12706:10;:32;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;12782:23:0;;;;:12;:23;;;;;;;:31;;;12814:11;;12758:68;;12770:10;;-1:-1:-1;;;;;;;;;;;12758:68:0;;;12782:31;;12814:11;12758:68;;12298:1027;12872:1;12861:80;12877:1;12874;:4;12861:80;;12898:27;12918:6;;12898:19;:27::i;:::-;12879:3;;12861:80;;;-1:-1:-1;13039:6:0;;13007:10;12995:23;;;;:11;:23;;;;;:39;;;:51;;;:43;:51;:::i;:::-;12967:10;12955:23;;;;:11;:23;;;;;;;;:39;;:91;;;;13093:24;;;:13;:24;;;:31;;;:38;;13129:1;13093:38;:35;:38;:::i;:::-;13061:24;;;;:13;:24;;;;;;:31;;;:70;;;;13178:6;;13146:31;;;;:38;;;13199:27;:10;;:27;;;;;13178:6;;13199:27;;13061:24;13199:27;13178:6;13199:10;:27;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;13270:23:0;;;;:12;:23;;;;;;;:31;;;13302:6;;13246:63;;13258:10;;-1:-1:-1;;;;;;;;;;;13246:63:0;;;13270:31;;13302:6;13246:63;;12175:1227;10810:2599;:::o;8097:2705::-;-1:-1:-1;;;;;7406:19:0;;;;;;;:11;:19;;;;;:28;;;8195:10;;8207:9;;7406:28;:35;;;7398:93;;;;-1:-1:-1;;;7398:93:0;;;;;;;;;8241:9;-1:-1:-1;;;;;6806:18:0;::::1;6798:52;;;;-1:-1:-1::0;;;6798:52:0::1;;;;;;;;;8272:10:::2;8283:9:::0;-1:-1:-1;;;;;7105:18:0;::::2;::::0;::::2;;7097:74;;;;-1:-1:-1::0;;;7097:74:0::2;;;;;;;;;8316:9:::3;7259:6;;7252:5;:13;:30;;;;7276:6;;7269:5;:13;7252:30;7244:64;;;;-1:-1:-1::0;;;7244:64:0::3;;;;;;;;;-1:-1:-1::0;;;;;6938:18:0;;::::4;6975:1;6938:18:::0;;;:11:::4;:18;::::0;;;;:26:::4;;::::0;8352:9;;6938:26:::4;6930:73;;;;-1:-1:-1::0;;;6930:73:0::4;;;;;;;;;8451:10:::5;8406:19;8439:23:::0;;;:11:::5;:23;::::0;;;;:31:::5;;::::0;-1:-1:-1;;;;;8439:31:0::5;8436:2359;;8494:2;:4:::0;;::::5;;::::0;;;;8551:10:::5;8562:9:::0;8572::::5;8582;:7;:9::i;:::-;8531:61;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;8531:61:0;;;8521:72;;;;;;8509:84;;8624:54;;;;;;;;8632:2;;8624:54;;;;8635:11;8624:54;;;;8647:10;-1:-1:-1::0;;;;;8624:54:0::5;;;;;8658:9;:7;:9::i;:::-;8624:54:::0;;8668:9:::5;8624:54;::::0;;::::5;::::0;-1:-1:-1;8604:19:0;;;:6:::5;:19:::0;;;;;;:74;;;;;;::::5;::::0;::::5;::::0;::::5;::::0;;::::5;::::0;::::5;::::0;::::5;::::0;;-1:-1:-1;;;;;;8604:74:0::5;-1:-1:-1::0;;;;;8604: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;8741:28:0::5;8759:9:::0;8741:17:::5;:28::i;:::-;8794:6;;8783:9;:17;8780:163;;;8816:48;8831:11;8843:10;8854:9;8816:14;:48::i;:::-;8902:10;8890:23;::::0;;;:11:::5;:23;::::0;;;;:34:::5;;::::0;:41:::5;::::0;8929:1:::5;8890:41;:38;:41;:::i;:::-;8879:52;;8780:163;8967:6;;8956:9;:17;8953:164;;;8989:49;9005:11;9017:10;9028:9;8989:15;:49::i;:::-;9076:10;9064:23;::::0;;;:11:::5;:23;::::0;;;;:34:::5;;::::0;:41:::5;::::0;9103:1:::5;9064:41;:38;:41;:::i;:::-;9053:52;;8953:164;9140:34;::::0;;::::5;::::0;;::::5;::::0;;;;;-1:-1:-1;9160:2:0;;9140:34:::5;::::0;;::::5;::::0;;;9163:10:::5;9140:34:::0;;;;;;9127:12;;;:8:::5;:12:::0;;;;;;:47;;;;;::::5;::::0;::::5;::::0;;;::::5;::::0;;::::5;::::0;;-1:-1:-1;;;;;;9127:47:0::5;-1:-1:-1::0;;;;;9127:47:0;;::::5;;::::0;;9209:201;;::::5;::::0;::::5;::::0;;;;;;;::::5;::::0;;;;;::::5;::::0;;;;;;;;;;;;;;;;;;;;;;;9275:28:::5;::::0;:16:::5;:28::i;:::-;9209:201;;;;9304:37;9320:10;9331:9;9304:15;:37::i;:::-;9209:201;;;;9342:9;:7;:9::i;:::-;9209:201;;;;9352:26;9367:10;9352:14;:26::i;:::-;9209:201;;;;9379:30;9398:10;9379:18;:30::i;:::-;9209:201:::0;;9197:10:::5;9185:23;::::0;;;:11:::5;:23;::::0;;;;;;;;:225;;;;;;::::5;::::0;::::5;::::0;::::5;::::0;;-1:-1:-1;;;;;;9185:225:0;;::::5;-1:-1:-1::0;;;;;9185: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;;;;9421:47:::5;::::0;9435:11;;9458:9:::5;9421:13;:47::i;:::-;9479:16;9492:2;;9479:12;:16::i;:::-;9506:24;9520:9;9506:13;:24::i;:::-;-1:-1:-1::0;;;;;9546:61:0;::::5;9566:10;-1:-1:-1::0;;;;;;;;;;;9587:9:0::5;9597;:7;:9::i;:::-;9546:61;;;;;;;;;;;;;;;;8436:2359;;;;;9654:10;9642:23;::::0;;;:11:::5;:23;::::0;;;;:32:::5;;::::0;-1:-1:-1;;;;;9642:43:0;;::::5;:32:::0;::::5;:43;9634:84;;;;-1:-1:-1::0;;;9634:84:0::5;;;;;;;;;9729:2;:4:::0;;::::5;;::::0;;;9786:10:::5;9797:23:::0;;;:11:::5;:23;::::0;;;;;:32:::5;;::::0;9729:4;;9786:10;-1:-1:-1;;;;;9797:32:0::5;9830:9;9840;:7;:9::i;:::-;9766:84;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;9766:84:0;;;9756:95;;;;;;9744:107;;9882:54;;;;;;;;9890:2;;9882:54;;;;9893:11;9882:54;;;;9905:10;-1:-1:-1::0;;;;;9882:54:0::5;;;;;9916:9;:7;:9::i;:::-;9882:54:::0;;9926:9:::5;9882:54;::::0;;::::5;::::0;-1:-1:-1;9862:19:0;;;:6:::5;:19:::0;;;;;;:74;;;;;;::::5;::::0;::::5;::::0;::::5;::::0;;;::::5;::::0;::::5;::::0;::::5;::::0;;-1:-1:-1;;;;;;9862:74:0::5;-1:-1:-1::0;;;;;9862:74:0;;::::5;::::0;;;::::5;::::0;;::::5;::::0;::::5;::::0;::::5;::::0;::::5;::::0;::::5;::::0;;::::5;::::0;::::5;::::0;;::::5;::::0;;;;9959:10:::5;9947:23:::0;;:11:::5;:23:::0;;;;:44;;;10039:9:::5;:7;:9::i;:::-;10014:10;10002:23;::::0;;;:11:::5;:23;::::0;;;;:36:::5;;:46:::0;;;;10096:37:::5;::::0;10123:9:::5;10096:15;:37::i;:::-;10071:10;10059:23;::::0;;;:11:::5;:23;::::0;;;;:36:::5;;:74:::0;10158:6:::5;::::0;10147:9:::5;:17;10144:187;;;10180:48;10195:11;10207:10;10218:9;10180:14;:48::i;:::-;10290:10;10278:23;::::0;;;:11:::5;:23;::::0;;;;:34:::5;;::::0;:41:::5;::::0;10317:1:::5;10278:41;:38;:41;:::i;:::-;10255:10;10243:23;::::0;;;:11:::5;:23;::::0;;;;:34:::5;;:76:::0;10144:187:::5;10355:6;;10344:9;:17;10341:188;;;10377:49;10393:11;10405:10;10416:9;10377:15;:49::i;:::-;10488:10;10476:23;::::0;;;:11:::5;:23;::::0;;;;:34:::5;;::::0;:41:::5;::::0;10515:1:::5;10476:41;:38;:41;:::i;:::-;10453:10;10441:23;::::0;;;:11:::5;:23;::::0;;;;:34:::5;;:76:::0;10341:188:::5;10552:34;::::0;;::::5;::::0;::::5;::::0;;;;;-1:-1:-1;10572:2:0;;10552:34:::5;::::0;;::::5;::::0;;;10575:10:::5;10552:34:::0;;;;;;10539:12;;;:8:::5;:12:::0;;;;;;;:47;;;;;;::::5;::::0;::::5;::::0;;;::::5;::::0;;::::5;::::0;;-1:-1:-1;;;;;;10539:47:0::5;-1:-1:-1::0;;;;;10539:47:0;;::::5;::::0;;;::::5;::::0;;10597::::5;::::0;10552:34;;10634:9:::5;10597:13;:47::i;:::-;10655:16;10668:2;;10655:12;:16::i;:::-;10682:24;10696:9;10682:13;:24::i;:::-;-1:-1:-1::0;;;;;10722:61:0;::::5;10742:10;-1:-1:-1::0;;;;;;;;;;;10763:9:0::5;10773;:7;:9::i;:::-;10722:61;;;;;;;;;;;;;;;;8436:2359;7014:1;7319::::4;7182::::3;6861::::2;;7502::::1;8097:2705:::0;;;:::o;5491:49::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5491:49:0;;;;;;:::o;28062:136::-;6687:7;;-1:-1:-1;;;;;6687:7:0;6673:10;:21;6665:55;;;;-1:-1:-1;;;6665:55:0;;;;;;;;;28166:7:::1;::::0;:24:::1;::::0;-1:-1:-1;;;;;28166:7:0;;::::1;::::0;:24;::::1;;;::::0;28183:6;;28166:7:::1;:24:::0;:7;:24;28183:6;28166: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;28166:24:0;28062:136:::0;:::o;5889:50::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5889:50:0;;;;;;;;;;;;;;;;;;;;:::o;31991:894::-;6687:7;;32152:4;;-1:-1:-1;;;;;6687:7:0;6673:10;:21;6665:55;;;;-1:-1:-1;;;6665:55:0;;;;;;;;;32193:18:::1;::::0;;;:6:::1;:18;::::0;;;;:26:::1;;::::0;-1:-1:-1;;;;;32186:33:0;;::::1;32193:26:::0;::::1;32186:33;32178:57;;;;-1:-1:-1::0;;;32178:57:0::1;;;;;;;;;32277:6;::::0;32249:18:::1;::::0;;;:6:::1;:18;::::0;;;;:26:::1;;::::0;:34:::1;32246:605;;;32295:15;32311:24:::0;;;:12:::1;:24;::::0;;;;;;;:32:::1;::::0;;::::1;::::0;32401:7:::1;::::0;-1:-1:-1;;;;;32401:7:0::1;32382:27:::0;;:18:::1;:27:::0;;;;;:48;;::::1;::::0;32448:24;;::::1;32445:88;;32513:4;32506:11;;;;;;32445:88;32246:605;;;;;32580:6;::::0;32552:18:::1;::::0;;;:6:::1;:18;::::0;;;;:26:::1;;::::0;:34:::1;32549:302;;;32602:15;32618:25:::0;;;:13:::1;:25;::::0;;;;;;;:33:::1;;::::0;32709:7:::1;::::0;-1:-1:-1;;;;;32709:7:0::1;32690:27:::0;;:18:::1;:27:::0;;;;;;:48:::1;;::::0;32755:24;;::::1;32752:88;;32820:4;32813:11;;;;;;32752:88;32549:302;;;-1:-1:-1::0;32868:5:0::1;31991:894:::0;;;;:::o;32897:1137::-;33040:2;:4;;;;;;;-1:-1:-1;;;;;33111:18:0;;;;;:11;:18;;;;;:27;;;33105:5;;33111:27;33139:6;33146:9;:7;:9::i;:::-;33085:71;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;33085:71:0;;;33075:82;;;;;;33055:102;;33179:6;;33171;:14;33168:166;;;33201:40;33216:11;33228:5;33234:6;33201:14;:40::i;:::-;-1:-1:-1;;;;;33286:18:0;;;;;;:11;:18;;;;;:29;;;:36;;33320:1;33286:36;:33;:36;:::i;:::-;-1:-1:-1;;;;;33256:18:0;;;;;;:11;:18;;;;;:29;;:66;33168:166;33355:6;;33347;:14;33344:167;;;33377:41;33393:11;33405:5;33411:6;33377:15;:41::i;:::-;-1:-1:-1;;;;;33463:18:0;;;;;;:11;:18;;;;;:29;;;:36;;33497:1;33463:36;:33;:36;:::i;:::-;-1:-1:-1;;;;;33433:18:0;;;;;;:11;:18;;;;;:29;;:66;33344:167;33521:29;33541:5;33547:2;;33521:19;:29::i;:::-;33581:46;;;;;;;;33589:2;;33581:46;;;;33592:11;33581:46;;;;33604:5;-1:-1:-1;;;;;33581:46:0;;;;;33610:9;:7;:9::i;:::-;33581:46;;;;;;;;;-1:-1:-1;33561:19:0;;;:6;:19;;;;;;:66;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;33561:66:0;-1:-1:-1;;;;;33561:66:0;;;;;;;;;;;;;;;;;;;;;;;;33638:18;;;;;:11;:18;;;;:39;;;33720:9;:7;:9::i;:::-;-1:-1:-1;;;;;33688:18:0;;;;;;:11;:18;;;;;:31;;:41;33772:29;33700:5;33794:6;33772:15;:29::i;:::-;-1:-1:-1;;;;;33740:18:0;;;;;;;:11;:18;;;;;;;;:31;;:61;;;;33825:29;;;;;;;;;;33845:2;;33825:29;;;;;;;;;;;;33812:12;;;:8;:12;;;;;;;:42;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;33812:42:0;;;;;;;;;;;33865;33825:29;33740:18;33900:6;33865:16;:42::i;:::-;33918:21;33932:6;33918:13;:21::i;:::-;-1:-1:-1;;;;;33981:18:0;;;;;;;:11;:18;;;;;:27;;;;;;;-1:-1:-1;;;;;;;;;;;34009:6:0;34016:9;:7;:9::i;:::-;33955:71;;;;;;;;;;;;;;;;32897:1137;;;:::o;89:181::-;147:7;179:5;;;203:6;;;;195:46;;;;-1:-1:-1;;;195:46:0;;;;;;;;;261:1;89:181;-1:-1:-1;;;89:181:0:o;282:136::-;340:7;367:43;371:1;374;367:43;;;;;;;;;;;;;;;;;:3;:43::i;30463:314::-;6687:7;;-1:-1:-1;;;;;6687:7:0;6673:10;:21;6665:55;;;;-1:-1:-1;;;6665:55:0;;;;;;;;;30718:47:::1;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;;::::1;::::0;;;-1:-1:-1;;;;;30718:47:0;;::::1;::::0;;;;;;;;;;;;;;;;;;-1:-1:-1;30701:16:0;;;:6:::1;:16:::0;;;;;;;:64;;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;-1:-1:-1;;;;;;30701:64:0::1;::::0;;;::::1;;::::0;;;;::::1;::::0;::::1;::::0;;::::1;::::0;;::::1;::::0;30463:314::o;29346:1109::-;6687:7;;-1:-1:-1;;;;;6687:7:0;6673:10;:21;6665:55;;;;-1:-1:-1;;;6665:55:0;;;;;;;;;29605:19:::1;29639::::0;29687:6:::1;;29672:13;:21;29669:205;;;-1:-1:-1::0;;;;;29718:21:0;::::1;;::::0;;;:11:::1;:21;::::0;;;;:32:::1;;::::0;:39:::1;::::0;29755:1:::1;29718:39;:36;:39;:::i;:::-;29706:51;;29669:205;;;29792:6;;29777:13;:21;29774:100;;;-1:-1:-1::0;;;;;29823:21:0;::::1;;::::0;;;:11:::1;:21;::::0;;;;:32:::1;;::::0;:39:::1;::::0;29860:1:::1;29823:39;:36;:39;:::i;:::-;29811:51;;29774:100;-1:-1:-1::0;;;;;29908:21:0;::::1;29884:23;29908:21:::0;;;:11:::1;:21;::::0;;;;:34:::1;;::::0;:53:::1;::::0;29947:13;29908:53:::1;:38;:53;:::i;:::-;29884:77;;29972:22;29995:11;:21;30007:8;-1:-1:-1::0;;;;;29995:21:0::1;-1:-1:-1::0;;;;;29995:21:0::1;;;;;;;;;;;;:33;;;29972:56;;30039:26;30066:11;:21;30078:8;-1:-1:-1::0;;;;;30066:21:0::1;-1:-1:-1::0;;;;;30066:21:0::1;;;;;;;;;;;;:37;;;30039:64;;30114:24;30139:11;:21;30151:8;-1:-1:-1::0;;;;;30139:21:0::1;-1:-1:-1::0;;;;;30139:21:0::1;;;;;;;;;;;;:35;;;30114:60;;30207:145;;;;;;;;30218:9;30207:145;;;;30228:8;-1:-1:-1::0;;;;;30207:145:0::1;;;;;30237:9;-1:-1:-1::0;;;;;30207:145:0::1;;;;;30247:11;30207:145;;;;30259:11;30207:145;;;;30271:16;30207:145;;;;30288:15;30207:145;;;;30304:13;30207:145;;;;30318:14;30207:145;;;;30333:18;30207:145;;::::0;30185:11:::1;:21;30197:8;-1:-1:-1::0;;;;;30185:21:0::1;-1:-1:-1::0;;;;;30185:21:0::1;;;;;;;;;;;;:167;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;30185:167:0::1;;;;;-1:-1:-1::0;;;;;30185:167:0::1;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;30185:167:0::1;;;;;-1:-1:-1::0;;;;;30185:167:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30400:43;30441:1;30400:11;:22;30412:9;-1:-1:-1::0;;;;;30400:22:0::1;-1:-1:-1::0;;;;;30400:22:0::1;;;;;;;;;;;;:36;;;:40;;:43;;;;:::i;:::-;-1:-1:-1::0;;;;;30363:22:0;;::::1;;::::0;;;:11:::1;:22;::::0;;;;:36:::1;;:80:::0;;;;-1:-1:-1;;;;;;;;;;29346:1109:0:o;31287:343::-;6687:7;;-1:-1:-1;;;;;6687:7:0;6673:10;:21;6665:55;;;;-1:-1:-1;;;6665:55:0;;;;;;;;;31560:58:::1;::::0;;::::1;::::0;::::1;::::0;;;;;-1:-1:-1;;;;;31560:58:0;;::::1;;::::0;;::::1;::::0;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;31541:18:0;;;:12:::1;:18:::0;;;;;;:77;;;;;::::1;::::0;::::1;::::0;;-1:-1:-1;;;;;;31541:77:0::1;::::0;;;::::1;;::::0;;;;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;::::1;::::0;31287:343::o;31638:345::-;6687:7;;-1:-1:-1;;;;;6687:7:0;6673:10;:21;6665:55;;;;-1:-1:-1;;;6665:55:0;;;;;;;;;31912:59:::1;::::0;;::::1;::::0;::::1;::::0;;;;;-1:-1:-1;;;;;31912:59:0;;::::1;;::::0;;::::1;::::0;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;31892:19:0;;;:13:::1;:19:::0;;;;;;:79;;;;;::::1;::::0;::::1;::::0;;-1:-1:-1;;;;;;31892:79:0::1;::::0;;;::::1;;::::0;;;;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;::::1;::::0;31638:345::o;622:471::-;680:7;925:6;921:47;;-1:-1:-1;955:1:0;948:8;;921:47;992:5;;;996:1;992;:5;:1;1016:5;;;;;:10;1008:56;;;;-1:-1:-1;;;1008:56:0;;;;;;;;1101:132;1159:7;1186:39;1190:1;1193;1186:39;;;;;;;;;;;;;;;;;:3;:39::i;30785:490::-;6687:7;;-1:-1:-1;;;;;6687:7:0;6673:10;:21;6665:55;;;;-1:-1:-1;;;6665:55:0;;;;;;;;;31087:79:::1;;;;;;;;31101:8;31087:79;;;;31110:8;31087:79;;;;31119:12;-1:-1:-1::0;;;;;31087:79:0::1;;;;;31132:10;-1:-1:-1::0;;;;;31087:79:0::1;;;;;31143:10;31087:79;;;;31154:11;31087:79;;::::0;31059:17:::1;:27;31077:8;31059:27;;;;;;;;;;;:107;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;31059:107:0::1;;;;;-1:-1:-1::0;;;;;31059:107:0::1;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;31059:107:0::1;;;;;-1:-1:-1::0;;;;;31059:107:0::1;;;;;;;;;;;;;;;;;;;;;;;;;31212:51;31252:10;31212:11;:23;31224:10;-1:-1:-1::0;;;;;31212:23:0::1;-1:-1:-1::0;;;;;31212:23:0::1;;;;;;;;;;;;:35;;;:39;;:51;;;;:::i;:::-;-1:-1:-1::0;;;;;31176:23:0;;::::1;;::::0;;;:11:::1;:23;::::0;;;;:35:::1;;:87:::0;;;;-1:-1:-1;;;;;30785:490:0:o;18226:872::-;18346:4;18392:18;;;:6;:18;;;;;:26;;;-1:-1:-1;;;;;18392:26:0;18380:10;:38;18372:80;;;;-1:-1:-1;;;18372:80:0;;;;;;;;;18494:6;;18466:18;;;;:6;:18;;;;;:26;;;:34;18463:605;;;18512:15;18528:24;;;:12;:24;;;;;;;;:32;;;;;18618:7;;-1:-1:-1;;;;;18618:7:0;18599:27;;:18;:27;;;;;:48;;;;18665:24;;;18662:88;;18730:4;18723:11;;;;;;18662:88;18463:605;;;;;18797:6;;18769:18;;;;:6;:18;;;;;:26;;;:34;18766:302;;;18819:15;18835:25;;;:13;:25;;;;;;;;:33;;;18926:7;;-1:-1:-1;;;;;18926:7:0;18907:27;;:18;:27;;;;;;:48;;;18972:24;;;18969:88;;19037:4;19030:11;;;;;;18969:88;18766:302;;;-1:-1:-1;19085:5:0;18226:872;;;;:::o;20520:1167::-;20624:2;:4;;;;;;;20689:10;20700:23;;;:11;:23;;;;;:32;;;-1:-1:-1;;;;;20700:32:0;20733:6;20740:9;:7;:9::i;:::-;20669:81;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;20669:81:0;;;20659:92;;;;;;20639:112;;20773:6;;20765;:14;20762:181;;;20795:45;20810:11;20822:10;20833:6;20795:14;:45::i;:::-;20902:10;20890:23;;;;:11;:23;;;;;:34;;;:41;;20929:1;20890:41;:38;:41;:::i;:::-;20867:10;20855:23;;;;:11;:23;;;;;:34;;:76;20762:181;20964:6;;20956;:14;20953:182;;;20986:46;21002:11;21014:10;21025:6;20986:15;:46::i;:::-;21094:10;21082:23;;;;:11;:23;;;;;:34;;;:41;;21121:1;21082:41;:38;:41;:::i;:::-;21059:10;21047:23;;;;:11;:23;;;;;:34;;:76;20953:182;21145:16;21158:2;;21145:12;:16::i;:::-;21192:51;;;;;;;;21200:2;;21192:51;;;;21203:11;21192:51;;;;21215:10;-1:-1:-1;;;;;21192:51:0;;;;;21226:9;:7;:9::i;:::-;21192:51;;;;;;;;;-1:-1:-1;21172:19:0;;;:6;:19;;;;;;:71;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;21172:71:0;-1:-1:-1;;;;;21172:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21266:10;21254:23;;:11;:23;;;;:44;;;21346:9;:7;:9::i;:::-;21321:10;21309:23;;;;:11;:23;;;;;:36;;:46;;;;21403:34;;21430:6;21403:15;:34::i;:::-;21378:10;21366:23;;;;:11;:23;;;;;;;;:36;;:71;;;;21461:34;;;;;;;;;;21481:2;;21461:34;;;;;;;;;;;;21448:12;;;:8;:12;;;;;;;:47;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;21448:47:0;-1:-1:-1;;;;;21448:47:0;;;;;;;;;21506:21;21520:6;21506:13;:21::i;:::-;21538:44;21552:11;21564:10;21575:6;21538:13;:44::i;:::-;21641:10;21629:23;;;;:11;:23;;;;;:32;;;-1:-1:-1;;;;;21629:32:0;;-1:-1:-1;;;;;;;;;;;21662:6:0;21669:9;:7;:9::i;:::-;21598:81;;;;;;;;;;;;;;;;20520:1167;;:::o;14458:190::-;-1:-1:-1;;;;;14601:18:0;;;;;;:11;:18;;;;;:32;;;:39;;14638:1;14601:39;:36;:39;:::i;:::-;-1:-1:-1;;;;;14568:18:0;;;;;;;:11;:18;;;;;:32;;:72;14458:190::o;14924:309::-;15096:25;15112:8;15096:15;:25::i;:::-;15132:7;:9;;;;;;;;15177:48;;;;;;;;;;;-1:-1:-1;;;;;15177:48:0;;;;;;;;;;;;;;;;15211:9;:7;:9::i;:::-;15177:48;;15221:1;15177:48;;;;;;;;;;;;;;15152:24;;;:12;:24;;;;;:73;;;;;;;;;;;;;-1:-1:-1;;;;;;15152:73:0;-1:-1:-1;;;;;15152:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;14924:309:0:o;16620:313::-;16793:26;16810:8;16793:16;:26::i;:::-;16830:7;:9;;;;;;;;16876:49;;;;;;;;;;;-1:-1:-1;;;;;16876:49:0;;;;;;;;;;;;;;;;16911:9;:7;:9::i;:::-;16876:49;;16921:1;16876:49;;;;;;;;;;;;;;16850:25;;;:13;:25;;;;;:75;;;;;;;;;;;;;-1:-1:-1;;;;;;16850:75:0;-1:-1:-1;;;;;16850:75:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;16620:313:0:o;19110:194::-;-1:-1:-1;;;;;19264:18:0;19231:4;19264:18;;;:11;:18;;;;;:32;;;;19110:194::o;19310:222::-;-1:-1:-1;;;;;19482:18:0;;19449:4;19482:18;;;:11;:18;;;;;:31;;;:42;;19518:5;19482:42;:35;:42;:::i;19538:190::-;-1:-1:-1;;;;;19690:18:0;19657:4;19690:18;;;:11;:18;;;;;:30;;;;19538:190::o;19740:198::-;-1:-1:-1;;;;;19896:18:0;19863:4;19896:18;;;:11;:18;;;;;:34;;;;19740:198::o;13417:1033::-;-1:-1:-1;;;;;13610:18:0;;;13584:25;13610:18;;;:11;:18;;;;;;;:27;;;;;;;13661:25;;13682:3;;13661:16;;:8;;:16;:12;:16;:::i;:25::-;13648:38;;13697:5;;:7;;;;;;;;;;;;;13740:57;;;;;;;;13754:5;;13740:57;;;;13760:5;13740:57;;;;13766:5;-1:-1:-1;;;;;13740:57:0;;;;;13772:9;-1:-1:-1;;;;;13740:57:0;;;;;13782:4;13740:57;;;;13787:9;:7;:9::i;:::-;13740:57;;13733:5;;;13715:24;;;;:17;:24;;;;;;;;:82;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;13715:82:0;;;-1:-1:-1;;;;;13715:82:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13843:22;;;;;:11;:22;;;;:34;;;:44;;13882:4;13843:38;:44::i;:::-;-1:-1:-1;;;;;13808:22:0;;;;;;:11;:22;;;;;:34;;:79;;;;13915:24;13935:3;13915:15;:8;13928:1;13915:15;:12;:15;:::i;:24::-;13898:41;-1:-1:-1;13950:16:0;13967:24;13987:3;13967:15;:8;13980:1;13967:15;:12;:15;:::i;:24::-;14050:7;;;-1:-1:-1;;;;;14050:7:0;14038:20;;;;:11;:20;;;;;:35;;13950:41;;-1:-1:-1;14038:49:0;;14078:8;14038:49;:39;:49;:::i;:::-;14014:7;;;-1:-1:-1;;;;;14014:7:0;;;14002:20;;;;:11;:20;;;;;;:35;;:85;;;;14146:7;;;14134:20;;;:35;;;:49;;14174:8;14134:49;:39;:49;:::i;:::-;14110:7;;-1:-1:-1;;;;;14110:7:0;14098:20;;;;:11;:20;;;;;:35;;:85;14228:9;:7;:9::i;:::-;14206:7;;-1:-1:-1;;;;;14206:7:0;14194:20;;;;:11;:20;;;;;:33;;:43;14282:9;:7;:9::i;:::-;14260:7;;-1:-1:-1;;;;;14260:7:0;;;14248:20;;;;:11;:20;;;;;;:33;;:43;;;;14302:24;;:18;;;;:24;;;;;14321:4;;14302:24;14248:20;14302:24;14321:4;14302:18;:24;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;14349:7:0;;-1:-1:-1;;;;;14349:7:0;;;14337:20;;;;:11;:20;;;;;;:28;:47;;:28;;;:47;;;;;14375:8;;14337:47;;:20;:47;14375:8;14337:28;:47;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;14407:7:0;;-1:-1:-1;;;;;14407:7:0;;;14395:20;;;;:11;:20;;;;;;:28;;;:47;;:28;;;:47;;;;;14433:8;;14395:47;;:20;:47;14433:8;14395:28;:47;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14395:47:0;13417:1033;;;;;;;:::o;19944:570::-;20070:7;;-1:-1:-1;;;;;20070:7:0;20045:9;20055:23;;;:14;:23;;;;;:35;;20111:22;20128:4;20111:12;20055:35;20120:2;20111:12;:8;:12;:::i;:22::-;20101:32;-1:-1:-1;20148:12:0;:4;20157:2;20148:12;:8;:12;:::i;:::-;:15;;20147:38;;-1:-1:-1;20169:12:0;:4;20178:2;20169:12;:8;:12;:::i;:::-;:15;20147:38;:59;;;-1:-1:-1;20190:12:0;:4;20199:2;20190:12;:8;:12;:::i;:::-;:15;20147:59;:80;;;-1:-1:-1;20211:12:0;:4;20220:2;20211:12;:8;:12;:::i;:::-;:15;20147:80;:101;;;-1:-1:-1;20232:12:0;:4;20241:2;20232:12;:8;:12;:::i;:::-;:15;20147:101;20144:363;;;20321:7;;-1:-1:-1;;;;;20321:7:0;20306:23;;;;:14;:23;;;;;:35;:45;;20346:4;20306:45;:39;:45;:::i;:::-;20285:7;;-1:-1:-1;;;;;20285:7:0;20270:23;;;;:14;:23;;;;;;;;;:81;;;;20374:38;;;;;;;20386:10;20374:38;;;;;;;;;;20402:9;:7;:9::i;:::-;20374:38;;20371:1;20361:12;;;;:9;:12;;;;:51;;:12;:51;;-1:-1:-1;;;;;;20361:51:0;-1:-1:-1;;;;;20361:51:0;;;;;;;;;;;;;;:12;:51;;;;;;20423:25;;:10;;:25;;;;;;;;20361:12;20423:25;;:10;:25;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20423:25:0;20473:10;-1:-1:-1;;;;;20464:31:0;;20485:4;20490;20464:31;;;;;;;;;;;;;;;;19944:570;;;:::o;17934:284::-;18043:9;18053:25;18074:3;18053:16;:8;18066:2;18053:16;:12;:16;:::i;:25::-;18118:7;;-1:-1:-1;;;;;18118:7:0;18089:13;18103:23;;;:14;:23;;;;;:35;18043;;-1:-1:-1;18089:13:0;18103:45;;18043:35;18103:45;:39;:45;:::i;:::-;18089:59;;18183:27;;;;;;;;18191:8;18183:27;;;;18200:9;:7;:9::i;:::-;18183:27;;18174:7;;;-1:-1:-1;;;;;18174:7:0;18159:23;;;;:14;:23;;;;;;;;:51;;;;;;;;;;-1:-1:-1;;;17934:284:0:o;35341:603::-;6687:7;;-1:-1:-1;;;;;6687:7:0;6673:10;:21;6665:55;;;;-1:-1:-1;;;6665:55:0;;;;;;;;;35516:7:::1;::::0;-1:-1:-1;;;;;35516:7:0::1;35491:9;35501:23:::0;;;:14:::1;:23;::::0;;;;:35;;35557:22:::1;35574:4;35557:12;35501:35:::0;35566:2:::1;35557:12;:8;:12;:::i;:22::-;35547:32:::0;-1:-1:-1;35595:12:0::1;:4:::0;35604:2:::1;35595:12;:8;:12;:::i;:::-;:15:::0;;35594:38:::1;;-1:-1:-1::0;35616:12:0::1;:4:::0;35625:2:::1;35616:12;:8;:12;:::i;:::-;:15:::0;35594:38:::1;:59;;;-1:-1:-1::0;35637:12:0::1;:4:::0;35646:2:::1;35637:12;:8;:12;:::i;:::-;:15:::0;35594:59:::1;:80;;;-1:-1:-1::0;35658:12:0::1;:4:::0;35667:2:::1;35658:12;:8;:12;:::i;:::-;:15:::0;35594:80:::1;:101;;;-1:-1:-1::0;35679:12:0::1;:4:::0;35688:2:::1;35679:12;:8;:12;:::i;:::-;:15:::0;35594:101:::1;35591:346;;;35767:7;::::0;-1:-1:-1;;;;;35767:7:0::1;35752:23;::::0;;;:14:::1;:23;::::0;;;;:35;:45:::1;::::0;35792:4;35752:45:::1;:39;:45;:::i;:::-;35731:7;::::0;-1:-1:-1;;;;;35731:7:0;;::::1;35716:23;::::0;;;:14:::1;:23;::::0;;;;;;;;:81;;;;35820:33;;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;::::1;::::0;;;;;;35843:9:::1;:7;:9::i;:::-;35820:33:::0;;35817:1:::1;35807:12;::::0;;;:9:::1;:12;::::0;;;:46;;:12;:46;;-1:-1:-1;;;;;;35807:46:0::1;-1:-1:-1::0;;;;;35807:46:0;;::::1;;::::0;;;;::::1;::::0;;;:12;:46;;::::1;::::0;;;35864:20;;:14;;::::1;::::0;:20:::1;::::0;::::1;;::::0;;;;;35807:12;35864: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;35864:20:0;35909:5;-1:-1:-1::0;;;;;35900:25:0::1;;35915:4;35920;35900:25;;;;;;;;;;;;;;;;35591:346;6731:1;;35341:603:::0;;:::o;34042:1291::-;6687:7;;-1:-1:-1;;;;;6687:7:0;6673:10;:21;6665:55;;;;-1:-1:-1;;;6665:55:0;;;;;;;;;-1:-1:-1;;;;;34241:18:0;;::::1;34223:17;34241:18:::0;;;:11:::1;:18;::::0;;;;:27:::1;;::::0;;;::::1;::::0;34292:25:::1;34313:3;34292:16;:8:::0;34305:2:::1;34292:16;:12;:16;:::i;:25::-;34279:38;;34328:5;;:7;;;;;;;;;;;;;34371:57;;;;;;;;34385:5;;34371:57;;;;34391:5;34371:57;;;;34397:5;-1:-1:-1::0;;;;;34371:57:0::1;;;;;34403:9;-1:-1:-1::0;;;;;34371:57:0::1;;;;;34413:4;34371:57;;;;34418:9;:7;:9::i;:::-;34371:57:::0;;34364:5:::1;::::0;;34346:24:::1;::::0;;;:17:::1;:24;::::0;;;;;;;:82;;;;;;::::1;::::0;::::1;::::0;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;;;;;34346:82:0;;::::1;-1:-1:-1::0;;;;;34346: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;;;;34470:18;;::::1;::::0;;:11:::1;:18:::0;;;;:30:::1;;::::0;:40:::1;::::0;34505:4;34470:34:::1;:40::i;:::-;-1:-1:-1::0;;;;;34439:18:0;::::1;;::::0;;;:11:::1;:18;::::0;;;;:30:::1;;:71:::0;;;;34538:24:::1;34558:3;34538:15;:8:::0;34551:1:::1;34538:15;:12;:15;:::i;:24::-;34521:41:::0;-1:-1:-1;34573:16:0::1;34590:24;34610:3;34590:15;:8:::0;34603:1:::1;34590:15;:12;:15;:::i;:24::-;34573:41:::0;-1:-1:-1;34625:17:0::1;34643:25;34664:3;34643:16;:8:::0;34656:2:::1;34643:16;:12;:16;:::i;:25::-;34727:7;::::0;;-1:-1:-1;;;;;34727:7:0::1;34715:20;::::0;;;:11:::1;:20;::::0;;;;:35:::1;::::0;34625:43;;-1:-1:-1;34715:49:0::1;::::0;34755:8;34715:49:::1;:39;:49;:::i;:::-;34691:7;::::0;;-1:-1:-1;;;;;34691:7:0;;::::1;34679:20;::::0;;;:11:::1;:20;::::0;;;;;:35;::::1;:85:::0;;;;34823:7;;::::1;34811:20:::0;;;:35:::1;;::::0;:49:::1;::::0;34851:8;34811:49:::1;:39;:49;:::i;:::-;34787:7;::::0;;-1:-1:-1;;;;;34787:7:0;;::::1;34775:20;::::0;;;:11:::1;:20;::::0;;;;;:35:::1;;:85:::0;;;;34919:7;;::::1;34907:20:::0;;;:35:::1;;::::0;:50:::1;::::0;34947:9;34907:50:::1;:39;:50;:::i;:::-;34883:7;::::0;-1:-1:-1;;;;;34883:7:0::1;34871:20;::::0;;;:11:::1;:20;::::0;;;;:35:::1;;:86:::0;35002:9:::1;:7;:9::i;:::-;34980:7;::::0;-1:-1:-1;;;;;34980:7:0::1;34968:20;::::0;;;:11:::1;:20;::::0;;;;:33:::1;;:43:::0;35056:9:::1;:7;:9::i;:::-;35034:7;::::0;-1:-1:-1;;;;;35034:7:0::1;35022:20;::::0;;;:11:::1;:20;::::0;;;;:33:::1;;:43:::0;35110:9:::1;:7;:9::i;:::-;35088:7;::::0;-1:-1:-1;;;;;35088:7:0;;::::1;35076:20;::::0;;;:11:::1;:20;::::0;;;;;:33:::1;;:43:::0;;;;35130:20;;:14;;::::1;::::0;:20;::::1;;;::::0;35145:4;;35130:20;35076;35130;35145:4;35130: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;35173:7:0::1;::::0;-1:-1:-1;;;;;35173:7:0;;::::1;35161:20;::::0;;;:11:::1;:20;::::0;;;;;:28;:47;;:28;::::1;::::0;:47;::::1;;;::::0;35199:8;;35161:47;;:20;:47;35199:8;35161: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;35231:7:0::1;::::0;-1:-1:-1;;;;;35231:7:0;;::::1;35219:20;::::0;;;:11:::1;:20;::::0;;;;;:28:::1;;::::0;:47;;:28;::::1;::::0;:47;::::1;;;::::0;35257:8;;35219:47;;:20;:47;35257:8;35219: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;35289:7:0::1;::::0;-1:-1:-1;;;;;35289:7:0;;::::1;35277:20;::::0;;;:11:::1;:20;::::0;;;;;:28:::1;;::::0;:48;;:28;::::1;::::0;:48;::::1;;;::::0;35315:9;;35277:48;;:20;:48;35315:9;35277:28;:48;::::1;;;;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;424:192:0::0;510:7;546:12;538:6;;;;530:29;;;;-1:-1:-1;;;530:29:0;;;;;;;;;;-1:-1:-1;;;582:5:0;;;424:192::o;1245:345::-;1331:7;1433:12;1426:5;1418:28;;;;-1:-1:-1;;;1418:28:0;;;;;;;;;;;1457:9;1473:1;1469;:5;;;;;;;1245:345;-1:-1:-1;;;;;1245:345:0:o;15241:1368::-;15348:21;15364:4;15348:15;:21::i;:::-;15380:13;15394:21;15411:3;15394:12;:4;15403:2;15394:12;:8;:12;:::i;:21::-;15486:7;;-1:-1:-1;;;;;15486:7:0;15467:27;;;;:18;:27;;;;;:40;15380:35;;-1:-1:-1;15467:51:0;;15380:35;15467:51;:44;:51;:::i;:::-;15445:7;;;-1:-1:-1;;;;;15445:7:0;;;15426:27;;;;:18;:27;;;;;;:92;;;;15587:10;;15561:7;;;;;15542:27;;;;;:40;:56;;;:44;:56;:::i;:::-;:58;15539:535;;;15687:10;;15661:7;;-1:-1:-1;;;;;15661:7:0;15629:12;15642:27;;;:18;:27;;;;;:40;15629:12;;15642:56;;:40;:56;:44;:56;:::i;:::-;15629:69;;15713:10;15724:23;15739:7;15724:10;;:14;;:23;;;;:::i;:::-;15822:7;;-1:-1:-1;;;;;15822:7:0;15803:27;;;;:18;:27;;;;;:40;15713:34;;-1:-1:-1;15803:51:0;;15713:34;15803:51;:44;:51;:::i;:::-;15781:7;;;-1:-1:-1;;;;;15781:7:0;;;15762:27;;;;:18;:27;;;;;;:92;;;;15937:7;;;15918:27;;;:48;;;:61;;15971:7;15918:61;:52;:61;:::i;:::-;15888:7;;-1:-1:-1;;;;;15888:7:0;15869:27;;;;:18;:27;;;;;:48;;:110;16039:9;:7;:9::i;:::-;16013:7;;-1:-1:-1;;;;;16013:7:0;15994:27;;;;:18;:27;;;;;:44;;:54;-1:-1:-1;;15539:535:0;16133:10;;16107:7;;;-1:-1:-1;;;;;16107:7:0;16145:1;16088:27;;;:18;:27;;;;;:40;;;;16145:1;;16088:56;;:40;:56;:44;:56;:::i;:::-;:58;16085:517;;;16231:10;;16205:7;;;-1:-1:-1;;;;;16205:7:0;16172:12;16186:27;;;:18;:27;;;;;:40;;;;16172:12;;16186:56;;:40;:56;:44;:56;:::i;:::-;16172:70;;16257:9;16267:23;16282:7;16267:10;;:14;;:23;;;;:::i;:::-;16365:7;;;-1:-1:-1;;;;;16365:7:0;16346:27;;;;:18;:27;;;;;:40;;16257:33;;-1:-1:-1;16346:50:0;;16257:33;16346:50;:44;:50;:::i;:::-;16324:7;;;-1:-1:-1;;;;;16324:7:0;;;16305:27;;;;:18;:27;;;;;;:40;;:91;;;;16479:7;;;16460:27;;;:48;;;:61;;16513:7;16460:61;:52;:61;:::i;:::-;16430:7;;-1:-1:-1;;;;;16430:7:0;16411:27;;;;:18;:27;;;;;:48;;:110;16581:9;:7;:9::i;:::-;16555:7;;-1:-1:-1;;;;;16555:7:0;16536:27;;;;:18;:27;;;;;:44;;:54;-1:-1:-1;;15241:1368:0;;:::o;16941:713::-;17049:15;17065:21;17082:3;17065:12;:4;17074:2;17065:12;:8;:12;:::i;:21::-;17157:7;;;-1:-1:-1;;;;;17157:7:0;17138:27;;;;:18;:27;;;;;:40;;17049:37;;-1:-1:-1;17138:53:0;;17049:37;17138:53;:44;:53;:::i;:::-;17116:7;;;-1:-1:-1;;;;;17116:7:0;;;17097:27;;;;:18;:27;;;;;;:40;;:94;;;;17250:10;;17224:7;;;;;17205:27;;;;;:40;;;;:56;;;:44;:56;:::i;:::-;:58;17202:445;;;17347:10;;17321:7;;;-1:-1:-1;;;;;17321:7:0;17289:11;17302:27;;;:18;:27;;;;;:40;;;;17289:11;;17302:56;;:40;:56;:44;:56;:::i;:::-;17289:69;;17373:9;17383:22;17398:6;17383:10;;:14;;:22;;;;:::i;:::-;17480:7;;;-1:-1:-1;;;;;17480:7:0;17461:27;;;;:18;:27;;;;;:40;;17373:32;;-1:-1:-1;17461:50:0;;17373:32;17461:50;:44;:50;:::i;:::-;17439:7;;;-1:-1:-1;;;;;17439:7:0;;;17420:27;;;;:18;:27;;;;;;:40;;:91;;;;17594:7;;;17575:27;;;:48;;;:60;;17628:6;17575:60;:52;:60;:::i;:::-;17545:7;;-1:-1:-1;;;;;17545:7:0;17526:27;;;;:18;:27;;;;;:48;;:109;-1:-1:-1;;16941:713:0;;:::o;1596:130::-;1654:7;1681:37;1685:1;1688;1681:37;;;;;;;;;;;;;;;;;:3;:37::i;17662:258::-;17772:12;17785:25;17806:3;17785:16;:8;17798:2;17785:16;:12;:16;:::i;:25::-;17881:7;;;-1:-1:-1;;;;;17881:7:0;17862:27;;;;:18;:27;;;;;:40;;17772:38;;-1:-1:-1;17862:50:0;;17772:38;17862:50;:44;:50;:::i;:::-;17840:7;;;-1:-1:-1;;;;;17840:7:0;17821:27;;;;:18;:27;;;;;:40;:91;-1:-1:-1;;17662:258:0:o;1732:166::-;1818:7;1854:12;1846:6;1838:29;;;;-1:-1:-1;;;1838:29:0;;;;;;;;;;;1889:1;1885;:5;;;;;;;1732:166;-1:-1:-1;;;;1732: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:743;;;;;;5767:3;5755:9;5746:7;5742:23;5738:33;5735:2;;;-1:-1;;5774:12;5735:2;512:6;499:20;5826:63;;5926:2;5969:9;5965:22;72:20;97:33;124:5;97:33;;;5729:609;;5934:63;;-1:-1;;;;6034:2;6073:22;;499:20;;6142:2;6181:22;;499:20;;6250:3;6290:22;;;499:20;;-1:-1;5729:609;6345:366;;;6466:2;6454:9;6445:7;6441:23;6437:32;6434:2;;;-1:-1;;6472:12;6434:2;-1:-1;;499:20;;;6624:2;6663:22;;;499:20;;-1:-1;6428:283;6718:491;;;;6856:2;6844:9;6835:7;6831:23;6827:32;6824:2;;;-1:-1;;6862:12;6824:2;-1:-1;;499:20;;;7014:2;7053:22;;499:20;;-1:-1;7122:2;7161:22;;;499:20;;6818:391;-1:-1;6818:391;15220:873;7853:37;;;-1:-1;;34859:2;34855:14;;;;;15589:2;15580:12;;7465:74;34855:14;;;;;;;15707:12;;;7465:74;15834:12;;;7853:37;15945:12;;;7853:37;16056:12;;;15480:613;16100:222;-1:-1;;;;;33883:54;;;;7303:45;;16227:2;16212:18;;16198:124;16329:1584;-1:-1;;;;;33883:54;;;7303:45;;17011:2;16996:18;;7853:37;;;;17094:2;17079:18;;7853:37;;;;33883:54;;;17193:2;17178:18;;7303:45;17276:3;17261:19;;7853:37;;;;34855:14;17345:19;;7853:37;;;;33883:54;;;17460:3;17445:19;;7303:45;17544:3;17529:19;;7853:37;17628:3;17613:19;;7853:37;33883:54;;;17728:3;17713:19;;7303:45;17813:3;17798:19;;7853:37;;;;17898:3;17883:19;;7853:37;;;;16830:3;16815:19;;16801:1112;17920:444;-1:-1;;;;;33883:54;;;;7303:45;;18267:2;18252:18;;7853:37;;;;18350:2;18335:18;;7853:37;18103:2;18088:18;;18074:290;18371:556;-1:-1;;;;;33883:54;;;;7303:45;;18747:2;18732:18;;7853:37;;;;18830:2;18815:18;;7853:37;18913:2;18898:18;;7853:37;18582:3;18567:19;;18553:374;18934:210;33716:13;;33709:21;7736:34;;19055:2;19040:18;;19026:118;19151:1292;7853:37;;;-1:-1;;;;;33883:54;;;19743:2;19728:18;;7303:45;33883:54;;;;19842:2;19827:18;;7303:45;19925:2;19910:18;;7853:37;;;;20008:3;19993:19;;7853:37;;;;34855:14;20077:19;;7853:37;20176:3;20161:19;;7853:37;20260:3;20245:19;;7853:37;20344:3;20329:19;;7853:37;;;;20428:3;20413:19;;7853:37;19562:3;19547:19;;19533:910;20450:812;7853:37;;;-1:-1;;;;;33883:54;;;;20914:2;20899:18;;7303:45;20997:2;20982:18;;7853:37;;;;21080:2;21065:18;;7853:37;21163:3;21148:19;;7853:37;34855:14;21232:19;;7853:37;20733:3;20718:19;;20704:558;21269:444;7853:37;;;21616:2;21601:18;;7853:37;;;;-1:-1;;;;;33883:54;21699:2;21684:18;;7303:45;21452:2;21437:18;;21423:290;21720:310;;21867:2;;21888:17;21881:47;8047:5;33233:12;33390:6;21867:2;21856:9;21852:18;33378:19;-1:-1;34189:101;34203:6;34200:1;34197:13;34189:101;;;34270:11;;;;;34264:18;34251:11;;;33418:14;34251:11;34244:39;34218:10;;34189:101;;;34305:6;34302:1;34299:13;34296:2;;;-1:-1;33418:14;34361:6;21856:9;34352:16;;34345:27;34296:2;-1:-1;34764:7;34748:14;-1:-1;;34744:28;8205:39;;;;33418:14;8205:39;;21838:192;-1:-1;;;21838:192;22037:416;22237:2;22251:47;;;8481:2;22222:18;;;33378:19;-1:-1;;;33418:14;;;8497:35;8551:12;;;22208:245;22460:416;22660:2;22674:47;;;8802:2;22645:18;;;33378:19;8838:29;33418:14;;;8818:50;8887:12;;;22631:245;22883:416;23083:2;23097:47;;;9138:2;23068:18;;;33378:19;-1:-1;;;33418:14;;;9154:42;9215:12;;;23054:245;23306:416;23506:2;23520:47;;;9466:2;23491:18;;;33378:19;9502:34;33418:14;;;9482:55;-1:-1;;;9557:12;;;9550:36;9605:12;;;23477:245;23729:416;23929:2;23943:47;;;9856:2;23914:18;;;33378:19;-1:-1;;;33418:14;;;9872:44;9935:12;;;23900:245;24152:416;24352:2;24366:47;;;10186:2;24337:18;;;33378:19;-1:-1;;;33418:14;;;10202:44;10265:12;;;24323:245;24575:416;24775:2;24789:47;;;10516:2;24760:18;;;33378:19;-1:-1;;;33418:14;;;10532:44;10595:12;;;24746:245;24998:416;25198:2;25212:47;;;10846:2;25183:18;;;33378:19;10882:34;33418:14;;;10862:55;-1:-1;;;10937:12;;;10930:35;10984:12;;;25169:245;25421:416;25621:2;25635:47;;;11235:2;25606:18;;;33378:19;11271:34;33418:14;;;11251:55;-1:-1;;;11326:12;;;11319:38;11376:12;;;25592:245;25844:416;26044:2;26058:47;;;11627:2;26029:18;;;33378:19;-1:-1;;;33418:14;;;11643:42;11704:12;;;26015:245;26267:416;26467:2;26481:47;;;11955:2;26452:18;;;33378:19;11991:34;33418:14;;;11971:55;-1:-1;;;12046:12;;;12039:25;12083:12;;;26438:245;26690:416;26890:2;26904:47;;;12334:2;26875:18;;;33378:19;-1:-1;;;33418:14;;;12350:45;12414:12;;;26861:245;27113:416;27313:2;27327:47;;;12665:2;27298:18;;;33378:19;12701:34;33418:14;;;12681:55;12770:28;12756:12;;;12749:50;12818:12;;;27284:245;27536:416;27736:2;27750:47;;;13069:2;27721:18;;;33378:19;-1:-1;;;33418:14;;;13085:38;13142:12;;;27707:245;27959:416;28159:2;28173:47;;;13393:2;28144:18;;;33378:19;-1:-1;;;33418:14;;;13409:45;13473:12;;;28130:245;28382:416;28582:2;28596:47;;;13724:2;28567:18;;;33378:19;-1:-1;;;33418:14;;;13740:44;13803:12;;;28553:245;28805:416;29005:2;29019:47;;;14054:2;28990:18;;;33378:19;-1:-1;;;33418:14;;;14070:35;14124:12;;;28976:245;29228:416;29428:2;29442:47;;;14375:2;29413:18;;;33378:19;14411:31;33418:14;;;14391:52;14462:12;;;29399:245;29651:416;29851:2;29865:47;;;14713:2;29836:18;;;33378:19;14749:32;33418:14;;;14729:53;14801:12;;;29822:245;30074:222;7853:37;;;30201:2;30186:18;;30172:124;30303:700;7853:37;;;30723:2;30708:18;;7853:37;;;;-1:-1;;;;;33883:54;;;;30822:2;30807:18;;7303:45;30905:2;30890:18;;7853:37;30988:3;30973:19;;7853:37;30558:3;30543:19;;30529:474;31010:780;7853:37;;;31442:2;31427:18;;7853:37;;;;-1:-1;;;;;33883:54;;;31525:2;31510:18;;7303:45;33883:54;;31608:2;31593:18;;7303:45;31691:3;31676:19;;7853:37;34855:14;31760:19;;7853:37;31277:3;31262:19;;31248:542;31797:333;7853:37;;;32116:2;32101:18;;7853:37;31952:2;31937:18;;31923:207;32137:780;7853:37;;;32569:2;32554:18;;7853:37;;;;32652:2;32637:18;;7853:37;;;;32735:2;32720:18;;7853:37;32818:3;32803:19;;7853:37;32902:3;32887:19;;7853:37;32404:3;32389:19;;32375:542;32924:214;34099:4;34088:16;;;;15173:35;;33047:2;33032:18;;33018:120;34887:117;-1:-1;;;;;33883:54;;34946:35;;34936:2;;34995:1;;34985:12
Swarm Source
ipfs://68ed096111d8adc32d286f8446e70d06932652dcdb2a542a0f3819a967f18c16
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.