Polygon Sponsored slots available. Book your slot here!
Source Code
Latest 25 from a total of 3,580 transactions
| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Withdraw Token | 55171292 | 667 days ago | IN | 0 POL | 0.01312557 | ||||
| Withdraw | 52509285 | 736 days ago | IN | 0 POL | 0.21936176 | ||||
| Withdraw | 44348958 | 944 days ago | IN | 0 POL | 0.02335566 | ||||
| Unstake By Owner | 44348932 | 944 days ago | IN | 0 POL | 0.00337367 | ||||
| Withdraw Token | 44348781 | 944 days ago | IN | 0 POL | 0.0036441 | ||||
| Withdraw | 44348608 | 944 days ago | IN | 0 POL | 0.00400451 | ||||
| Unstake By Owner | 44348547 | 944 days ago | IN | 0 POL | 0.00390151 | ||||
| Withdraw | 34182262 | 1202 days ago | IN | 0 POL | 0.00508808 | ||||
| Withdraw | 32848912 | 1234 days ago | IN | 0 POL | 0.00485508 | ||||
| Stake | 32247176 | 1250 days ago | IN | 0 POL | 0.01008653 | ||||
| Withdraw | 32246963 | 1250 days ago | IN | 0 POL | 0.00551345 | ||||
| Withdraw | 32002427 | 1256 days ago | IN | 0 POL | 0.00485907 | ||||
| Stake | 31921413 | 1258 days ago | IN | 0 POL | 0.01002696 | ||||
| Withdraw | 31921386 | 1258 days ago | IN | 0 POL | 0.00513716 | ||||
| Stake | 31906593 | 1259 days ago | IN | 0 POL | 0.01004964 | ||||
| Withdraw | 31906545 | 1259 days ago | IN | 0 POL | 0.00531402 | ||||
| Withdraw | 31892363 | 1259 days ago | IN | 0 POL | 0.00531498 | ||||
| Withdraw | 31864162 | 1260 days ago | IN | 0 POL | 0.00493837 | ||||
| Stake | 31856002 | 1260 days ago | IN | 0 POL | 0.00995888 | ||||
| Withdraw | 31855947 | 1260 days ago | IN | 0 POL | 0.00520059 | ||||
| Stake | 31849091 | 1260 days ago | IN | 0 POL | 0.01546251 | ||||
| Withdraw | 31847881 | 1260 days ago | IN | 0 POL | 0.00476382 | ||||
| Withdraw | 31847881 | 1260 days ago | IN | 0 POL | 0.02093155 | ||||
| Stake | 31843329 | 1260 days ago | IN | 0 POL | 0.00962599 | ||||
| Withdraw | 31843283 | 1260 days ago | IN | 0 POL | 0.00858897 |
Cross-Chain Transactions
Loading...
Loading
Contract Name:
YaanLaunchpadStaking
Compiler Version
v0.8.4+commit.c7e474f2
Contract Source Code (Solidity)
/**
*Submitted for verification at polygonscan.com on 2021-10-19
*/
// SPDX-License-Identifier: none
pragma solidity ^0.8.4;
interface BEP20 {
function totalSupply() external view returns (uint theTotalSupply);
function balanceOf(address _owner) external view returns (uint balance);
function transfer(address _to, uint _value) external returns (bool success);
function transferFrom(address _from, address _to, uint _value) external returns (bool success);
function approve(address _spender, uint _value) external returns (bool success);
function allowance(address _owner, address _spender) external view returns (uint remaining);
event Transfer(address indexed _from, address indexed _to, uint _value);
event Approval(address indexed _owner, address indexed _spender, uint _value);
}
interface SALE {
function showSaleStatus() external view returns (bool);
function viewSaleEndTime() external view returns(uint);
function userBuyStatus(address) external view returns (bool);
}
contract YaanLaunchpadStaking {
/// Variables
struct Stake {
bool staked;
Deposit[] deposits;
uint topTier;
uint stakedAmount;
uint stakedAt;
bool stakedWithdrawn;
}
struct Tier {
uint time;
uint percent;
uint endTime;
}
struct Deposit {
uint tier;
uint amount;
uint at;
bool withdrawn;
}
Tier[] public tiers;
address public owner = msg.sender;
address public stakeTokenAddr = 0xFE0a69A2fdb58e5BeEECd07F78806C9DD0a54501;
address public buyTokenAddr;
address public contractAddr = address(this);
mapping(address => Stake) public user;
mapping(address=>bool) public userRegister;
bool public stakeStatus;
uint tier1count;
uint tier2count;
uint tier3count;
uint tier4count;
address[] public saleAddressArr;
address[] public userAddressArr;
event Received(address, uint);
event Staked(address, uint);
event OwnershipTransferred(address);
event BuyTokenAddressChanged(address);
/**
* @dev constructor sets stake status to true to enable staking
*/
constructor() {
tiers.push(Tier(365 days, 30, 15 days));
tiers.push(Tier(365 days, 100, 35 days));
tiers.push(Tier(365 days, 160, 50 days));
tiers.push(Tier(365 days, 250, 75 days));
stakeStatus = true;
}
/**
* @dev Start or stop staking
*
* Requirements:
*
* Only owner can change the state
*/
function setStakeStatus(bool state) public {
require(msg.sender == owner, "Only owner");
stakeStatus = state;
}
/**
* @dev Stake tokens on the contract
*
* Requirements:
* Minimum amount to stake is 650 tokens
* timestamp has to be between start and end time
*/
function stake(uint amt) public returns(bool) {
address sender = msg.sender;
BEP20 token = BEP20(stakeTokenAddr);
require(token.balanceOf(sender) >= amt, "Insufficient balance of user");
require(stakeStatus == true, "Staking disabled");
require(amt >= 2000 * 10**18, "Stake minimum 2000 tokens");
token.transferFrom(sender, contractAddr, amt);
uint amount = user[sender].stakedAmount + amt + withdrawableTillNow(sender);
// At Restack Remove user from current tier
if(user[sender].staked==true){
if(user[sender].topTier==0){
tier1count -= 1;
}
else if(user[sender].topTier==1){
tier2count -= 1;
}
else if(user[sender].topTier==2){
tier3count -= 1;
}
if(user[sender].topTier==3){
tier4count -= 1;
}
}
// assign user to tier and increase tier count
if(amount >= 2000*10**18 && amount < 15000*10**18){
user[sender].deposits.push(Deposit(0, amt, block.timestamp, false));
if(user[sender].topTier <=0){
tier1count += 1;
user[sender].topTier = 0;
}
}
else if(amount >= 15000*10**18 && amount < 45000*10**18){
user[sender].deposits.push(Deposit(1, amt, block.timestamp, false));
if(user[sender].topTier <= 1){
tier2count += 1;
user[sender].topTier = 1;
}
}
else if(amount >= 45000*10**18 && amount < 100000*10**18){
user[sender].deposits.push(Deposit(2, amt, block.timestamp, false));
if(user[sender].topTier <= 2){
tier3count += 1;
user[sender].topTier = 2;
}
}
else if(amount >= 100000*10**18){
user[sender].deposits.push(Deposit(3, amt, block.timestamp, false));
if(user[sender].topTier <= 3){
tier4count += 1;
user[sender].topTier = 3;
}
}
user[sender].stakedAmount = amount;
user[sender].stakedAt = block.timestamp;
user[sender].staked = true;
user[sender].stakedWithdrawn = false;
if(userRegister[sender]==false){
userRegister[sender]==true;
userAddressArr.push(sender);
}
emit Staked(sender, amount);
return true;
}
/**
* @dev Set address for SALE interface
*
* Requirements:
*
* Only owner can call this function
*/
function setSaleInterfaceAddress(address saleAddr) public {
require(msg.sender == owner, "Only owner");
saleAddressArr.push(saleAddr);
}
/// Withdrawable view function
function userEndTimeFuncIndex(address uAddr, uint uIndex) public view returns(uint) {
Stake storage stake_ = user[uAddr];
Deposit storage dep = stake_.deposits[uIndex];
Tier storage tier = tiers[dep.tier];
uint endTime = dep.at + tier.endTime;
uint normalEndTime = dep.at + tier.endTime;
if(saleAddressArr.length > 0){
for(uint i = 0; i < saleAddressArr.length; i++){
address saleAddr = saleAddressArr[i];
SALE sale = SALE(saleAddr);
if(sale.showSaleStatus()==false && sale.userBuyStatus(uAddr)==false && normalEndTime > sale.viewSaleEndTime()){
endTime = sale.viewSaleEndTime();
}
}
}
else {
endTime = dep.at + tier.endTime;
}
// if user stacked after ido ends
endTime = dep.at > endTime ? normalEndTime : endTime;
return endTime;
}
/// Withdrawable view function
function userEndTimeFunc(address uAddr) public view returns(uint) {
Stake storage stake_ = user[uAddr];
Tier storage tier = tiers[stake_.topTier];
uint endTime = stake_.stakedAt + tier.endTime;
uint normalEndTime = stake_.stakedAt + tier.endTime;
if(saleAddressArr.length > 0){
for(uint i = 0; i < saleAddressArr.length; i++){
address saleAddr = saleAddressArr[i];
SALE sale = SALE(saleAddr);
if(sale.showSaleStatus()==false && sale.userBuyStatus(uAddr)==false && normalEndTime > sale.viewSaleEndTime()){
endTime = sale.viewSaleEndTime();
}
}
}
// if user stacked after ido ends
endTime = stake_.stakedAt > endTime ? normalEndTime : endTime;
return endTime;
}
function withdrawableTillNow(address addr) public view returns(uint amount) {
Stake storage stake_ = user[addr];
Tier storage tier = tiers[stake_.topTier];
uint end = userEndTimeFunc(addr);
end = (end > block.timestamp) ? block.timestamp : end;
uint since = stake_.stakedAt;
if(stake_.stakedWithdrawn == false){
amount += stake_.stakedAmount * (end - since) * tier.percent / tier.time / 100;
}
else{
amount = 0;
}
}
/// Withdrawable view function
function withdrawable(address addr) public view returns(uint amount) {
Stake storage stake_ = user[addr];
Tier storage tier = tiers[stake_.topTier];
uint end = userEndTimeFunc(addr);
uint since = stake_.stakedAt;
if(stake_.stakedWithdrawn == false){
amount += stake_.stakedAmount * (end - since) * tier.percent / tier.time / 100;
}
else{
amount = 0;
}
}
/// Withdraw
function withdraw() public returns (bool) {
BEP20 token = BEP20(stakeTokenAddr);
address addr = msg.sender;
require(user[addr].staked == true, "User has not staked");
require(user[addr].stakedWithdrawn == false, "Already withdrawn");
Stake storage stake_ = user[addr];
Tier storage tier = tiers[stake_.topTier];
uint amount = stake_.stakedAmount;
uint end = userEndTimeFunc(addr);
uint since = stake_.stakedAt;
if(stake_.stakedWithdrawn == false){
amount += stake_.stakedAmount * (end - since) * tier.percent / tier.time / 100;
}
else{
amount = 0;
}
uint tierEndTime = since + tier.endTime;
require(block.timestamp >= tierEndTime, "End Time not reached");
token.transfer(addr, amount);
uint userTopTier = user[msg.sender].topTier;
if(userTopTier==0 && tier1count!=0){
tier1count-=1;
}
else if(userTopTier==1 && tier2count!=0){
tier2count-=1;
}
else if(userTopTier==2 && tier3count!=0){
tier3count-=1;
}
else if(userTopTier==3 && tier4count!=0){
tier4count-=1;
}
user[addr].stakedWithdrawn = true;
user[addr].stakedAmount = 0;
user[addr].staked = false;
user[addr].topTier = 0;
return true;
}
/// View user details
function details(address addr) public view returns(uint topTier_, uint[] memory amounts, uint[] memory times, bool[] memory status, bool[] memory claimBtnStatus, uint[] memory tier) {
uint length = user[addr].deposits.length;
topTier_ = user[addr].topTier;
amounts = new uint[](length);
times = new uint[](length);
status = new bool[](length);
claimBtnStatus = new bool[](length);
tier = new uint[](length);
for(uint i = 0; i < length; i++){
Stake storage stake_ = user[addr];
Deposit storage dep = stake_.deposits[i];
amounts[i] = dep.amount;
times[i] = dep.at;
status[i] = dep.withdrawn;
tier[i] = dep.tier;
claimBtnStatus[i] = (block.timestamp > userEndTimeFuncIndex(addr,i)) ? true : false;
}
return(topTier_, amounts, times, status,claimBtnStatus,tier);
}
function userdetails(address addr) public view returns(uint topTier, uint stakedAmount, uint stakedAt, bool stakedWithdrawn, bool claimBtnStatus, uint unlockTime, uint stackingEndTime) {
topTier = user[addr].topTier;
stakedAmount = user[addr].stakedAmount;
stakedAt = user[addr].stakedAt;
stakedWithdrawn = user[addr].stakedWithdrawn;
Tier storage tier = tiers[topTier];
unlockTime = stakedAt + tier.endTime;
stackingEndTime = userEndTimeFunc(addr);
claimBtnStatus = (block.timestamp > unlockTime) ? true : false;
}
/// Tier counts
function tierCount1() public view returns (uint) {
return tier1count;
}
function tierCount2() public view returns (uint) {
return tier2count;
}
function tierCount3() public view returns (uint) {
return tier3count;
}
function tierCount4() public view returns (uint) {
return tier4count;
}
/// View presale status
function presaleStatus(address saleAddr) public view returns(bool) {
SALE sale = SALE(saleAddr);
return sale.showSaleStatus();
}
/// View sale end time
function viewSaleEndTime(address saleAddr) public view returns (uint) {
SALE sale = SALE(saleAddr);
return sale.viewSaleEndTime();
}
/// User stake status
function userStakeStastus(address addr) public view returns (bool) {
return user[addr].staked;
}
/// Staking status of contract
function ongoingStakingStatus() public view returns (bool) {
return stakeStatus;
}
/** Owner Token Withdraw
*
* Requirements:
* Only owner can call this function
*/
function withdrawToken(address tokenAddress, address to, uint amount) public returns(bool) {
require(msg.sender == owner, "Only owner");
require(to != address(0), "Cannot withdraw to zero address");
BEP20 token = BEP20(tokenAddress);
token.transfer(to, amount);
return true;
}
/** Owner BNB Withdraw
*
* Requirements:
* Only owner can call this function
*/
function withdrawBNB(address payable to, uint amount) public returns(bool) {
require(msg.sender == owner, "Only owner");
require(to != address(0), "Cannot withdraw to zero address");
to.transfer(amount);
return true;
}
/**
* @dev Ownership Transfer to "to" address
*
* Requirements:
* Only owner can call this function
*/
function transferOwnership(address to) public returns(bool) {
require(msg.sender == owner, "Only owner");
owner = to;
emit OwnershipTransferred(to);
return true;
}
/// Update user Details
function updateUserDetails(address addr, uint topTier_, uint amounts, uint times, bool withdrawnStat) public {
require(msg.sender == owner, "Only owner");
require(topTier_ < 4, "topTier_ value cannot be greater than 3");
user[addr].staked = true;
user[addr].topTier = topTier_;
user[addr].stakedAmount = amounts;
user[addr].stakedAt = times;
user[addr].stakedWithdrawn = withdrawnStat;
if(topTier_ == 0){
tier1count += 1;
}
else if(topTier_ == 1){
tier2count += 1;
}
else if(topTier_ == 2){
tier3count += 1;
}
else if(topTier_ == 3){
tier4count += 1;
}
user[addr].deposits.push(Deposit(topTier_, amounts, times, withdrawnStat));
}
function saleIdoList() public view returns(address[] memory idoAddrList) {
idoAddrList = saleAddressArr;
}
function userAddressList() public view returns(address[] memory userAddrList) {
userAddrList = userAddressArr;
}
function unstakeByOwner(address addr) public returns(bool) {
require(msg.sender == owner, "Only owner");
BEP20 token = BEP20(stakeTokenAddr);
require(user[addr].staked == true, "User has not staked");
require(user[addr].stakedWithdrawn == false, "Already withdrawn");
Stake storage stake_ = user[addr];
Tier storage tier = tiers[stake_.topTier];
uint amount = stake_.stakedAmount;
uint end = block.timestamp;
uint since = stake_.stakedAt;
if(stake_.stakedWithdrawn == false){
amount += stake_.stakedAmount * (end - since) * tier.percent / tier.time / 100;
}
else{
amount = 0;
}
token.transfer(addr, amount);
uint userTopTier = user[msg.sender].topTier;
if(userTopTier==0 && tier1count!=0){
tier1count-=1;
}
else if(userTopTier==1 && tier2count!=0){
tier2count-=1;
}
else if(userTopTier==2 && tier3count!=0){
tier3count-=1;
}
else if(userTopTier==3 && tier4count!=0){
tier4count-=1;
}
user[addr].stakedWithdrawn = true;
user[addr].stakedAmount = 0;
user[addr].staked = false;
user[addr].topTier = 0;
return true;
}
/// Fallback function
receive() external payable {
emit Received(msg.sender, msg.value);
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"","type":"address"}],"name":"BuyTokenAddressChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"","type":"address"},{"indexed":false,"internalType":"uint256","name":"","type":"uint256"}],"name":"Received","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"","type":"address"},{"indexed":false,"internalType":"uint256","name":"","type":"uint256"}],"name":"Staked","type":"event"},{"inputs":[],"name":"buyTokenAddr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"contractAddr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"details","outputs":[{"internalType":"uint256","name":"topTier_","type":"uint256"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"internalType":"uint256[]","name":"times","type":"uint256[]"},{"internalType":"bool[]","name":"status","type":"bool[]"},{"internalType":"bool[]","name":"claimBtnStatus","type":"bool[]"},{"internalType":"uint256[]","name":"tier","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ongoingStakingStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"saleAddr","type":"address"}],"name":"presaleStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"saleAddressArr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"saleIdoList","outputs":[{"internalType":"address[]","name":"idoAddrList","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"saleAddr","type":"address"}],"name":"setSaleInterfaceAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"setStakeStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amt","type":"uint256"}],"name":"stake","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stakeStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stakeTokenAddr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tierCount1","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tierCount2","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tierCount3","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tierCount4","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"tiers","outputs":[{"internalType":"uint256","name":"time","type":"uint256"},{"internalType":"uint256","name":"percent","type":"uint256"},{"internalType":"uint256","name":"endTime","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"transferOwnership","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"unstakeByOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"topTier_","type":"uint256"},{"internalType":"uint256","name":"amounts","type":"uint256"},{"internalType":"uint256","name":"times","type":"uint256"},{"internalType":"bool","name":"withdrawnStat","type":"bool"}],"name":"updateUserDetails","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"user","outputs":[{"internalType":"bool","name":"staked","type":"bool"},{"internalType":"uint256","name":"topTier","type":"uint256"},{"internalType":"uint256","name":"stakedAmount","type":"uint256"},{"internalType":"uint256","name":"stakedAt","type":"uint256"},{"internalType":"bool","name":"stakedWithdrawn","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"userAddressArr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"userAddressList","outputs":[{"internalType":"address[]","name":"userAddrList","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"uAddr","type":"address"}],"name":"userEndTimeFunc","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"uAddr","type":"address"},{"internalType":"uint256","name":"uIndex","type":"uint256"}],"name":"userEndTimeFuncIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"userRegister","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"userStakeStastus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"userdetails","outputs":[{"internalType":"uint256","name":"topTier","type":"uint256"},{"internalType":"uint256","name":"stakedAmount","type":"uint256"},{"internalType":"uint256","name":"stakedAt","type":"uint256"},{"internalType":"bool","name":"stakedWithdrawn","type":"bool"},{"internalType":"bool","name":"claimBtnStatus","type":"bool"},{"internalType":"uint256","name":"unlockTime","type":"uint256"},{"internalType":"uint256","name":"stackingEndTime","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"saleAddr","type":"address"}],"name":"viewSaleEndTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawBNB","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"withdrawable","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"withdrawableTillNow","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
6080604052600180546001600160a01b0319908116331790915560028054821673fe0a69a2fdb58e5beeecd07f78806c9dd0a54501179055600480549091163017905534801561004e57600080fd5b5060408051606080820183526301e13380808352601e60208085019182526213c6808587019081526000805460018181018355828052975160039182027f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5638181019290925595517f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5648088019190915593517f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5659687015589518089018b528781526064818701908152622e2480828d019081528554808d018755868052925192850280850193909355905182870155519087015589518089018b5287815260a08187019081526241eb00828d019081528554808d018755868052925192850280850193909355905182870155519087015589519788018a5295875260fa9387019384526262e080988701988952815480890183559180529551950293840194909455519282019290925592519201919091556007805460ff19169091179055612cab806101db6000396000f3fe6080604052600436106102085760003560e01c806381e7e20e11610118578063b6e1f632116100a0578063d43f6a7d1161006f578063d43f6a7d146106e0578063d9385c9914610700578063e5af337b14610720578063f2fde38b14610740578063fc80ba4d1461076057600080fd5b8063b6e1f63214610673578063c2631c9f14610693578063ca64b8aa146106ab578063ce513b6f146106c057600080fd5b80639599b183116100e75780639599b183146105de578063a4fdd8d5146105f3578063a5987b0614610613578063a694fc3a14610633578063a97af1f21461065357600080fd5b806381e7e20e1461050057806382f2d1471461057c5780638a26709b1461059e5780638da5cb5b146105be57600080fd5b8063317b06ee1161019b57806355daf2101161016a57806355daf210146104105780635d2a6e5a1461043057806367b24064146104505780637d02edad1461047057806381370d92146104c757600080fd5b8063317b06ee146103945780633ccfd60b146103a95780634d26e535146103be57806353162558146103e057600080fd5b806315a5d9d8116101d757806315a5d9d8146102f0578063223ab5991461032857806324a92f9f146103425780632c88ee1b1461037457600080fd5b8063016078231461024c57806301e3366714610270578063039af9eb146102a0578063078ad9b0146102db57600080fd5b3661024757604080513381523460208201527f88a5966d370b9919b20f3e2c13ff65706f196a4e32cc2c12bf57088f88525874910160405180910390a1005b600080fd5b34801561025857600080fd5b506008545b6040519081526020015b60405180910390f35b34801561027c57600080fd5b5061029061028b366004612951565b610780565b6040519015158152602001610267565b3480156102ac57600080fd5b506102c06102bb366004612a30565b61089d565b60408051938452602084019290925290820152606001610267565b3480156102e757600080fd5b5060095461025d565b3480156102fc57600080fd5b50600454610310906001600160a01b031681565b6040516001600160a01b039091168152602001610267565b34801561033457600080fd5b506007546102909060ff1681565b34801561034e57600080fd5b5061036261035d36600461290a565b6108d0565b60405161026796959493929190612b3c565b34801561038057600080fd5b5061031061038f366004612a30565b610c30565b3480156103a057600080fd5b50600a5461025d565b3480156103b557600080fd5b50610290610c5a565b3480156103ca57600080fd5b506103d3610fe5565b6040516102679190612acb565b3480156103ec57600080fd5b506102906103fb36600461290a565b60066020526000908152604090205460ff1681565b34801561041c57600080fd5b5061029061042b36600461290a565b611047565b34801561043c57600080fd5b5061025d61044b36600461290a565b6110c5565b34801561045c57600080fd5b5061029061046b36600461290a565b61113c565b34801561047c57600080fd5b5061049061048b36600461290a565b611493565b6040805197885260208801969096529486019390935290151560608501521515608084015260a083015260c082015260e001610267565b3480156104d357600080fd5b506102906104e236600461290a565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561050c57600080fd5b5061055061051b36600461290a565b60056020819052600091825260409091208054600282015460038301546004840154939094015460ff92831694919391921685565b60408051951515865260208601949094529284019190915260608301521515608082015260a001610267565b34801561058857600080fd5b5061059c61059736600461290a565b61153d565b005b3480156105aa57600080fd5b5061025d6105b936600461290a565b6115b9565b3480156105ca57600080fd5b50600154610310906001600160a01b031681565b3480156105ea57600080fd5b50600b5461025d565b3480156105ff57600080fd5b5061025d61060e366004612991565b6118a4565b34801561061f57600080fd5b5061059c61062e3660046129a3565b611be2565b34801561063f57600080fd5b5061029061064e366004612a30565b611db9565b34801561065f57600080fd5b5061029061066e366004612926565b6125b1565b34801561067f57600080fd5b50600354610310906001600160a01b031681565b34801561069f57600080fd5b5060075460ff16610290565b3480156106b757600080fd5b506103d3612674565b3480156106cc57600080fd5b5061025d6106db36600461290a565b6126d4565b3480156106ec57600080fd5b5061059c6106fb3660046129f8565b6127a4565b34801561070c57600080fd5b50600254610310906001600160a01b031681565b34801561072c57600080fd5b5061025d61073b36600461290a565b6127e1565b34801561074c57600080fd5b5061029061075b36600461290a565b612874565b34801561076c57600080fd5b5061031061077b366004612a30565b6128fa565b6001546000906001600160a01b031633146107b65760405162461bcd60e51b81526004016107ad90612b18565b60405180910390fd5b6001600160a01b03831661080c5760405162461bcd60e51b815260206004820152601f60248201527f43616e6e6f7420776974686472617720746f207a65726f20616464726573730060448201526064016107ad565b60405163a9059cbb60e01b81526001600160a01b0384811660048301526024820184905285919082169063a9059cbb90604401602060405180830381600087803b15801561085957600080fd5b505af115801561086d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108919190612a14565b50600195945050505050565b600081815481106108ad57600080fd5b600091825260209091206003909102018054600182015460029092015490925083565b6001600160a01b038116600090815260056020526040902060018101546002909101549060609081908190819081908067ffffffffffffffff81111561092657634e487b7160e01b600052604160045260246000fd5b60405190808252806020026020018201604052801561094f578160200160208202803683370190505b5095508067ffffffffffffffff81111561097957634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156109a2578160200160208202803683370190505b5094508067ffffffffffffffff8111156109cc57634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156109f5578160200160208202803683370190505b5093508067ffffffffffffffff811115610a1f57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610a48578160200160208202803683370190505b5092508067ffffffffffffffff811115610a7257634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610a9b578160200160208202803683370190505b50915060005b81811015610c25576001600160a01b038916600090815260056020526040812060018101805491929184908110610ae857634e487b7160e01b600052603260045260246000fd5b906000526020600020906004020190508060010154898481518110610b1d57634e487b7160e01b600052603260045260246000fd5b6020026020010181815250508060020154888481518110610b4e57634e487b7160e01b600052603260045260246000fd5b60209081029190910101526003810154875160ff90911690889085908110610b8657634e487b7160e01b600052603260045260246000fd5b9115156020928302919091019091015280548551869085908110610bba57634e487b7160e01b600052603260045260246000fd5b602002602001018181525050610bd08b846118a4565b4211610bdd576000610be0565b60015b868481518110610c0057634e487b7160e01b600052603260045260246000fd5b9115156020928302919091019091015250819050610c1d81612c1e565b915050610aa1565b505091939550919395565b600c8181548110610c4057600080fd5b6000918252602090912001546001600160a01b0316905081565b6002543360008181526005602052604081205490926001600160a01b0316919060ff161515600114610cc45760405162461bcd60e51b8152602060048201526013602482015272155cd95c881a185cc81b9bdd081cdd185ad959606a1b60448201526064016107ad565b6001600160a01b0381166000908152600560208190526040909120015460ff1615610d255760405162461bcd60e51b815260206004820152601160248201527020b63932b0b23c903bb4ba34323930bbb760791b60448201526064016107ad565b6001600160a01b0381166000908152600560205260408120600281015482549192918291908110610d6657634e487b7160e01b600052603260045260246000fd5b600091825260208220600385810154920201925090610d84856115b9565b600485015460058601549192509060ff16610dec578354600185015460649190610dae8486612c07565b8860030154610dbd9190612be8565b610dc79190612be8565b610dd19190612bc8565b610ddb9190612bc8565b610de59084612bb0565b9250610df1565b600092505b6000846002015482610e039190612bb0565b905080421015610e4c5760405162461bcd60e51b8152602060048201526014602482015273115b9908151a5b59481b9bdd081c995858da195960621b60448201526064016107ad565b60405163a9059cbb60e01b81526001600160a01b0388811660048301526024820186905289169063a9059cbb90604401602060405180830381600087803b158015610e9657600080fd5b505af1158015610eaa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ece9190612a14565b503360009081526005602052604090206002015480158015610ef1575060085415155b15610f1457600160086000828254610f099190612c07565b90915550610f959050565b806001148015610f25575060095415155b15610f3d57600160096000828254610f099190612c07565b806002148015610f4e5750600a5415155b15610f66576001600a6000828254610f099190612c07565b806003148015610f775750600b5415155b15610f95576001600b6000828254610f8f9190612c07565b90915550505b5050506001600160a01b0390941660009081526005602081905260408220908101805460ff1990811660019081179092556003830184905582541682556002909101919091559695505050505050565b6060600c80548060200260200160405190810160405280929190818152602001828054801561103d57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161101f575b5050505050905090565b600080829050806001600160a01b03166380865e9d6040518163ffffffff1660e01b815260040160206040518083038186803b15801561108657600080fd5b505afa15801561109a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110be9190612a14565b9392505050565b600080829050806001600160a01b031663eafe083e6040518163ffffffff1660e01b815260040160206040518083038186803b15801561110457600080fd5b505afa158015611118573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110be9190612a48565b6001546000906001600160a01b031633146111695760405162461bcd60e51b81526004016107ad90612b18565b6002546001600160a01b0383811660009081526005602052604090205491169060ff1615156001146111d35760405162461bcd60e51b8152602060048201526013602482015272155cd95c881a185cc81b9bdd081cdd185ad959606a1b60448201526064016107ad565b6001600160a01b0383166000908152600560208190526040909120015460ff16156112345760405162461bcd60e51b815260206004820152601160248201527020b63932b0b23c903bb4ba34323930bbb760791b60448201526064016107ad565b6001600160a01b038316600090815260056020526040812060028101548254919291829190811061127557634e487b7160e01b600052603260045260246000fd5b60009182526020909120600384810154600486015460058701549290940290920193509091429160ff166112f65783546001850154606491906112b88486612c07565b88600301546112c79190612be8565b6112d19190612be8565b6112db9190612bc8565b6112e59190612bc8565b6112ef9084612bb0565b92506112fb565b600092505b60405163a9059cbb60e01b81526001600160a01b0389811660048301526024820185905287169063a9059cbb90604401602060405180830381600087803b15801561134557600080fd5b505af1158015611359573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061137d9190612a14565b5033600090815260056020526040902060020154801580156113a0575060085415155b156113c3576001600860008282546113b89190612c07565b909155506114449050565b8060011480156113d4575060095415155b156113ec576001600960008282546113b89190612c07565b8060021480156113fd5750600a5415155b15611415576001600a60008282546113b89190612c07565b8060031480156114265750600b5415155b15611444576001600b600082825461143e9190612c07565b90915550505b5050506001600160a01b0390951660009081526005602081905260408220908101805460ff19908116600190811790925560038301849055825416825560029091019190915595945050505050565b6001600160a01b0381166000908152600560208190526040822060028101546003820154600483015492909301548454919460ff909116918190819081908190899081106114f157634e487b7160e01b600052603260045260246000fd5b906000526020600020906003020190508060020154866115119190612bb0565b925061151c896115b9565b915082421161152c57600061152f565b60015b935050919395979092949650565b6001546001600160a01b031633146115675760405162461bcd60e51b81526004016107ad90612b18565b600c80546001810182556000919091527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c70180546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0381166000908152600560205260408120600281015482548391829181106115f857634e487b7160e01b600052603260045260246000fd5b9060005260206000209060030201905060008160020154836004015461161e9190612bb0565b90506000826002015484600401546116369190612bb0565b600c54909150156118875760005b600c54811015611885576000600c828154811061167157634e487b7160e01b600052603260045260246000fd5b60009182526020918290200154604080516380865e9d60e01b815290516001600160a01b039092169350839283926380865e9d926004808201939291829003018186803b1580156116c157600080fd5b505afa1580156116d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116f99190612a14565b15801561177c575060405163bb96aa1d60e01b81526001600160a01b038a8116600483015282169063bb96aa1d9060240160206040518083038186803b15801561174257600080fd5b505afa158015611756573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061177a9190612a14565b155b80156117f75750806001600160a01b031663eafe083e6040518163ffffffff1660e01b815260040160206040518083038186803b1580156117bc57600080fd5b505afa1580156117d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117f49190612a48565b84115b1561187057806001600160a01b031663eafe083e6040518163ffffffff1660e01b815260040160206040518083038186803b15801561183557600080fd5b505afa158015611849573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061186d9190612a48565b94505b5050808061187d90612c1e565b915050611644565b505b81846004015411611898578161189a565b805b9695505050505050565b6001600160a01b0382166000908152600560205260408120600181018054839190859081106118e357634e487b7160e01b600052603260045260246000fd5b9060005260206000209060040201905060008082600001548154811061191957634e487b7160e01b600052603260045260246000fd5b9060005260206000209060030201905060008160020154836002015461193f9190612bb0565b90506000826002015484600201546119579190612bb0565b600c5490915015611bac5760005b600c54811015611ba6576000600c828154811061199257634e487b7160e01b600052603260045260246000fd5b60009182526020918290200154604080516380865e9d60e01b815290516001600160a01b039092169350839283926380865e9d926004808201939291829003018186803b1580156119e257600080fd5b505afa1580156119f6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a1a9190612a14565b158015611a9d575060405163bb96aa1d60e01b81526001600160a01b038c8116600483015282169063bb96aa1d9060240160206040518083038186803b158015611a6357600080fd5b505afa158015611a77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a9b9190612a14565b155b8015611b185750806001600160a01b031663eafe083e6040518163ffffffff1660e01b815260040160206040518083038186803b158015611add57600080fd5b505afa158015611af1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b159190612a48565b84115b15611b9157806001600160a01b031663eafe083e6040518163ffffffff1660e01b815260040160206040518083038186803b158015611b5657600080fd5b505afa158015611b6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b8e9190612a48565b94505b50508080611b9e90612c1e565b915050611965565b50611bc3565b82600201548460020154611bc09190612bb0565b91505b81846002015411611bd45781611bd6565b805b98975050505050505050565b6001546001600160a01b03163314611c0c5760405162461bcd60e51b81526004016107ad90612b18565b60048410611c6c5760405162461bcd60e51b815260206004820152602760248201527f746f70546965725f2076616c75652063616e6e6f742062652067726561746572604482015266207468616e203360c81b60648201526084016107ad565b6001600160a01b03851660009081526005602081905260409091208054600160ff199182161782556002820187905560038201869055600482018590559101805490911682151517905583611cd957600160086000828254611cce9190612bb0565b90915550611d339050565b8360011415611cf557600160096000828254611cce9190612bb0565b8360021415611d11576001600a6000828254611cce9190612bb0565b8360031415611d33576001600b6000828254611d2d9190612bb0565b90915550505b6001600160a01b0394909416600090815260056020908152604080832081516080810183529687528683019586529086019384529515156060860190815260019687018054808901825590845291909220945160049091029094019384559151938301939093559151600282015590516003909101805460ff1916911515919091179055565b6002546040516370a0823160e01b8152336004820181905260009290916001600160a01b0390911690849082906370a082319060240160206040518083038186803b158015611e0757600080fd5b505afa158015611e1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e3f9190612a48565b1015611e8d5760405162461bcd60e51b815260206004820152601c60248201527f496e73756666696369656e742062616c616e6365206f6620757365720000000060448201526064016107ad565b60075460ff161515600114611ed75760405162461bcd60e51b815260206004820152601060248201526f14dd185ada5b99c8191a5cd8589b195960821b60448201526064016107ad565b686c6b935b8bbd400000841015611f305760405162461bcd60e51b815260206004820152601960248201527f5374616b65206d696e696d756d203230303020746f6b656e730000000000000060448201526064016107ad565b600480546040516323b872dd60e01b81526001600160a01b0385811693820193909352908216602482015260448101869052908216906323b872dd90606401602060405180830381600087803b158015611f8957600080fd5b505af1158015611f9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fc19190612a14565b506000611fcd836127e1565b6001600160a01b038416600090815260056020526040902060030154611ff4908790612bb0565b611ffe9190612bb0565b6001600160a01b03841660009081526005602052604090205490915060ff16151560011415612116576001600160a01b0383166000908152600560205260409020600201546120655760016008600082825461205a9190612c07565b909155506120d99050565b6001600160a01b0383166000908152600560205260409020600201546001141561209c5760016009600082825461205a9190612c07565b6001600160a01b038316600090815260056020526040902060029081015414156120d9576001600a60008282546120d39190612c07565b90915550505b6001600160a01b03831660009081526005602052604090206002015460031415612116576001600b60008282546121109190612c07565b90915550505b686c6b935b8bbd4000008110158015612138575069032d26d12e980b60000081105b15612205576001600160a01b038316600081815260056020818152604080842081516080810183528581528084018c81524293820193845260608201878152600180850180548083018255908a52878a2094516004909102909401938455915191830191909155925160028083019190915592516003909101805460ff191691151591909117905594909352520154612200576001600860008282546121de9190612bb0565b90915550506001600160a01b0383166000908152600560205260408120600201555b6124c6565b69032d26d12e980b6000008110158015612228575069098774738bc82220000081105b156122f9576001600160a01b0383166000818152600560208181526040808420815160808101835260018082528185018d8152429483019485526060830188815282850180548085018255908a52878a2094516004909102909401938455905183830155935160028084019190915593516003909201805460ff19169215159290921790915595909452919052015411612200576001600960008282546122cf9190612bb0565b90915550506001600160a01b038316600090815260056020526040902060016002909101556124c6565b69098774738bc822200000811015801561231c575069152d02c7e14af680000081105b156123ea576001600160a01b0383166000818152600560208181526040808420815160808101835260028082528185018d81524294830194855260608301888152600180860180548083018255908b52888b209551600490910290950194855591519184019190915593518282015592516003909101805460ff191691151591909117905594909352529081015411612200576001600a60008282546123c29190612bb0565b90915550506001600160a01b03831660009081526005602052604090206002908101556124c6565b69152d02c7e14af680000081106124c6576001600160a01b0383166000818152600560208181526040808420815160808101835260038082528185018d81524294830194855260608301888152600180860180548083018255908b52888b209551600490910290950194855591519184019190915593516002808401919091559351918101805460ff191692151592909217909155959094529190520154116124c6576001600b60008282546124a09190612bb0565b90915550506001600160a01b038316600090815260056020526040902060036002909101555b6001600160a01b038316600090815260056020818152604080842060038101869055426004820155805460ff199081166001178255930180549093169092556006905290205460ff16612564576006602052600d80546001810182556000919091527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50180546001600160a01b0319166001600160a01b0385161790555b604080516001600160a01b0385168152602081018390527f9e71bc8eea02a63969f509818f2dafb9254532904319f9dbda79b67bd34a5f3d910160405180910390a1506001949350505050565b6001546000906001600160a01b031633146125de5760405162461bcd60e51b81526004016107ad90612b18565b6001600160a01b0383166126345760405162461bcd60e51b815260206004820152601f60248201527f43616e6e6f7420776974686472617720746f207a65726f20616464726573730060448201526064016107ad565b6040516001600160a01b0384169083156108fc029084906000818181858888f1935050505015801561266a573d6000803e3d6000fd5b5060019392505050565b6060600d80548060200260200160405190810160405280929190818152602001828054801561103d576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161101f575050505050905090565b6001600160a01b03811660009081526005602052604081206002810154825483918291811061271357634e487b7160e01b600052603260045260246000fd5b90600052602060002090600302019050600061272e856115b9565b600484015460058501549192509060ff166127965782546001840154606491906127588486612c07565b87600301546127679190612be8565b6127719190612be8565b61277b9190612bc8565b6127859190612bc8565b61278f9086612bb0565b945061279b565b600094505b50505050919050565b6001546001600160a01b031633146127ce5760405162461bcd60e51b81526004016107ad90612b18565b6007805460ff1916911515919091179055565b6001600160a01b03811660009081526005602052604081206002810154825483918291811061282057634e487b7160e01b600052603260045260246000fd5b90600052602060002090600302019050600061283b856115b9565b905042811161284a578061272e565b506004820154600583015442919060ff166127965782546001840154606491906127588486612c07565b6001546000906001600160a01b031633146128a15760405162461bcd60e51b81526004016107ad90612b18565b600180546001600160a01b0319166001600160a01b0384169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1506001919050565b600d8181548110610c4057600080fd5b60006020828403121561291b578081fd5b81356110be81612c4f565b60008060408385031215612938578081fd5b823561294381612c4f565b946020939093013593505050565b600080600060608486031215612965578081fd5b833561297081612c4f565b9250602084013561298081612c4f565b929592945050506040919091013590565b60008060408385031215612938578182fd5b600080600080600060a086880312156129ba578081fd5b85356129c581612c4f565b945060208601359350604086013592506060860135915060808601356129ea81612c67565b809150509295509295909350565b600060208284031215612a09578081fd5b81356110be81612c67565b600060208284031215612a25578081fd5b81516110be81612c67565b600060208284031215612a41578081fd5b5035919050565b600060208284031215612a59578081fd5b5051919050565b6000815180845260208085019450808401835b83811015612a91578151151587529582019590820190600101612a73565b509495945050505050565b6000815180845260208085019450808401835b83811015612a9157815187529582019590820190600101612aaf565b6020808252825182820181905260009190848201906040850190845b81811015612b0c5783516001600160a01b031683529284019291840191600101612ae7565b50909695505050505050565b6020808252600a908201526927b7363c9037bbb732b960b11b604082015260600190565b86815260c060208201526000612b5560c0830188612a9c565b8281036040840152612b678188612a9c565b90508281036060840152612b7b8187612a60565b90508281036080840152612b8f8186612a60565b905082810360a0840152612ba38185612a9c565b9998505050505050505050565b60008219821115612bc357612bc3612c39565b500190565b600082612be357634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615612c0257612c02612c39565b500290565b600082821015612c1957612c19612c39565b500390565b6000600019821415612c3257612c32612c39565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0381168114612c6457600080fd5b50565b8015158114612c6457600080fdfea2646970667358221220afe40be70f0878d7c6fbe16de25c32f86439e4c4a54a107ff029b5b15b39f04b64736f6c63430008040033
Deployed Bytecode
0x6080604052600436106102085760003560e01c806381e7e20e11610118578063b6e1f632116100a0578063d43f6a7d1161006f578063d43f6a7d146106e0578063d9385c9914610700578063e5af337b14610720578063f2fde38b14610740578063fc80ba4d1461076057600080fd5b8063b6e1f63214610673578063c2631c9f14610693578063ca64b8aa146106ab578063ce513b6f146106c057600080fd5b80639599b183116100e75780639599b183146105de578063a4fdd8d5146105f3578063a5987b0614610613578063a694fc3a14610633578063a97af1f21461065357600080fd5b806381e7e20e1461050057806382f2d1471461057c5780638a26709b1461059e5780638da5cb5b146105be57600080fd5b8063317b06ee1161019b57806355daf2101161016a57806355daf210146104105780635d2a6e5a1461043057806367b24064146104505780637d02edad1461047057806381370d92146104c757600080fd5b8063317b06ee146103945780633ccfd60b146103a95780634d26e535146103be57806353162558146103e057600080fd5b806315a5d9d8116101d757806315a5d9d8146102f0578063223ab5991461032857806324a92f9f146103425780632c88ee1b1461037457600080fd5b8063016078231461024c57806301e3366714610270578063039af9eb146102a0578063078ad9b0146102db57600080fd5b3661024757604080513381523460208201527f88a5966d370b9919b20f3e2c13ff65706f196a4e32cc2c12bf57088f88525874910160405180910390a1005b600080fd5b34801561025857600080fd5b506008545b6040519081526020015b60405180910390f35b34801561027c57600080fd5b5061029061028b366004612951565b610780565b6040519015158152602001610267565b3480156102ac57600080fd5b506102c06102bb366004612a30565b61089d565b60408051938452602084019290925290820152606001610267565b3480156102e757600080fd5b5060095461025d565b3480156102fc57600080fd5b50600454610310906001600160a01b031681565b6040516001600160a01b039091168152602001610267565b34801561033457600080fd5b506007546102909060ff1681565b34801561034e57600080fd5b5061036261035d36600461290a565b6108d0565b60405161026796959493929190612b3c565b34801561038057600080fd5b5061031061038f366004612a30565b610c30565b3480156103a057600080fd5b50600a5461025d565b3480156103b557600080fd5b50610290610c5a565b3480156103ca57600080fd5b506103d3610fe5565b6040516102679190612acb565b3480156103ec57600080fd5b506102906103fb36600461290a565b60066020526000908152604090205460ff1681565b34801561041c57600080fd5b5061029061042b36600461290a565b611047565b34801561043c57600080fd5b5061025d61044b36600461290a565b6110c5565b34801561045c57600080fd5b5061029061046b36600461290a565b61113c565b34801561047c57600080fd5b5061049061048b36600461290a565b611493565b6040805197885260208801969096529486019390935290151560608501521515608084015260a083015260c082015260e001610267565b3480156104d357600080fd5b506102906104e236600461290a565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561050c57600080fd5b5061055061051b36600461290a565b60056020819052600091825260409091208054600282015460038301546004840154939094015460ff92831694919391921685565b60408051951515865260208601949094529284019190915260608301521515608082015260a001610267565b34801561058857600080fd5b5061059c61059736600461290a565b61153d565b005b3480156105aa57600080fd5b5061025d6105b936600461290a565b6115b9565b3480156105ca57600080fd5b50600154610310906001600160a01b031681565b3480156105ea57600080fd5b50600b5461025d565b3480156105ff57600080fd5b5061025d61060e366004612991565b6118a4565b34801561061f57600080fd5b5061059c61062e3660046129a3565b611be2565b34801561063f57600080fd5b5061029061064e366004612a30565b611db9565b34801561065f57600080fd5b5061029061066e366004612926565b6125b1565b34801561067f57600080fd5b50600354610310906001600160a01b031681565b34801561069f57600080fd5b5060075460ff16610290565b3480156106b757600080fd5b506103d3612674565b3480156106cc57600080fd5b5061025d6106db36600461290a565b6126d4565b3480156106ec57600080fd5b5061059c6106fb3660046129f8565b6127a4565b34801561070c57600080fd5b50600254610310906001600160a01b031681565b34801561072c57600080fd5b5061025d61073b36600461290a565b6127e1565b34801561074c57600080fd5b5061029061075b36600461290a565b612874565b34801561076c57600080fd5b5061031061077b366004612a30565b6128fa565b6001546000906001600160a01b031633146107b65760405162461bcd60e51b81526004016107ad90612b18565b60405180910390fd5b6001600160a01b03831661080c5760405162461bcd60e51b815260206004820152601f60248201527f43616e6e6f7420776974686472617720746f207a65726f20616464726573730060448201526064016107ad565b60405163a9059cbb60e01b81526001600160a01b0384811660048301526024820184905285919082169063a9059cbb90604401602060405180830381600087803b15801561085957600080fd5b505af115801561086d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108919190612a14565b50600195945050505050565b600081815481106108ad57600080fd5b600091825260209091206003909102018054600182015460029092015490925083565b6001600160a01b038116600090815260056020526040902060018101546002909101549060609081908190819081908067ffffffffffffffff81111561092657634e487b7160e01b600052604160045260246000fd5b60405190808252806020026020018201604052801561094f578160200160208202803683370190505b5095508067ffffffffffffffff81111561097957634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156109a2578160200160208202803683370190505b5094508067ffffffffffffffff8111156109cc57634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156109f5578160200160208202803683370190505b5093508067ffffffffffffffff811115610a1f57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610a48578160200160208202803683370190505b5092508067ffffffffffffffff811115610a7257634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610a9b578160200160208202803683370190505b50915060005b81811015610c25576001600160a01b038916600090815260056020526040812060018101805491929184908110610ae857634e487b7160e01b600052603260045260246000fd5b906000526020600020906004020190508060010154898481518110610b1d57634e487b7160e01b600052603260045260246000fd5b6020026020010181815250508060020154888481518110610b4e57634e487b7160e01b600052603260045260246000fd5b60209081029190910101526003810154875160ff90911690889085908110610b8657634e487b7160e01b600052603260045260246000fd5b9115156020928302919091019091015280548551869085908110610bba57634e487b7160e01b600052603260045260246000fd5b602002602001018181525050610bd08b846118a4565b4211610bdd576000610be0565b60015b868481518110610c0057634e487b7160e01b600052603260045260246000fd5b9115156020928302919091019091015250819050610c1d81612c1e565b915050610aa1565b505091939550919395565b600c8181548110610c4057600080fd5b6000918252602090912001546001600160a01b0316905081565b6002543360008181526005602052604081205490926001600160a01b0316919060ff161515600114610cc45760405162461bcd60e51b8152602060048201526013602482015272155cd95c881a185cc81b9bdd081cdd185ad959606a1b60448201526064016107ad565b6001600160a01b0381166000908152600560208190526040909120015460ff1615610d255760405162461bcd60e51b815260206004820152601160248201527020b63932b0b23c903bb4ba34323930bbb760791b60448201526064016107ad565b6001600160a01b0381166000908152600560205260408120600281015482549192918291908110610d6657634e487b7160e01b600052603260045260246000fd5b600091825260208220600385810154920201925090610d84856115b9565b600485015460058601549192509060ff16610dec578354600185015460649190610dae8486612c07565b8860030154610dbd9190612be8565b610dc79190612be8565b610dd19190612bc8565b610ddb9190612bc8565b610de59084612bb0565b9250610df1565b600092505b6000846002015482610e039190612bb0565b905080421015610e4c5760405162461bcd60e51b8152602060048201526014602482015273115b9908151a5b59481b9bdd081c995858da195960621b60448201526064016107ad565b60405163a9059cbb60e01b81526001600160a01b0388811660048301526024820186905289169063a9059cbb90604401602060405180830381600087803b158015610e9657600080fd5b505af1158015610eaa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ece9190612a14565b503360009081526005602052604090206002015480158015610ef1575060085415155b15610f1457600160086000828254610f099190612c07565b90915550610f959050565b806001148015610f25575060095415155b15610f3d57600160096000828254610f099190612c07565b806002148015610f4e5750600a5415155b15610f66576001600a6000828254610f099190612c07565b806003148015610f775750600b5415155b15610f95576001600b6000828254610f8f9190612c07565b90915550505b5050506001600160a01b0390941660009081526005602081905260408220908101805460ff1990811660019081179092556003830184905582541682556002909101919091559695505050505050565b6060600c80548060200260200160405190810160405280929190818152602001828054801561103d57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161101f575b5050505050905090565b600080829050806001600160a01b03166380865e9d6040518163ffffffff1660e01b815260040160206040518083038186803b15801561108657600080fd5b505afa15801561109a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110be9190612a14565b9392505050565b600080829050806001600160a01b031663eafe083e6040518163ffffffff1660e01b815260040160206040518083038186803b15801561110457600080fd5b505afa158015611118573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110be9190612a48565b6001546000906001600160a01b031633146111695760405162461bcd60e51b81526004016107ad90612b18565b6002546001600160a01b0383811660009081526005602052604090205491169060ff1615156001146111d35760405162461bcd60e51b8152602060048201526013602482015272155cd95c881a185cc81b9bdd081cdd185ad959606a1b60448201526064016107ad565b6001600160a01b0383166000908152600560208190526040909120015460ff16156112345760405162461bcd60e51b815260206004820152601160248201527020b63932b0b23c903bb4ba34323930bbb760791b60448201526064016107ad565b6001600160a01b038316600090815260056020526040812060028101548254919291829190811061127557634e487b7160e01b600052603260045260246000fd5b60009182526020909120600384810154600486015460058701549290940290920193509091429160ff166112f65783546001850154606491906112b88486612c07565b88600301546112c79190612be8565b6112d19190612be8565b6112db9190612bc8565b6112e59190612bc8565b6112ef9084612bb0565b92506112fb565b600092505b60405163a9059cbb60e01b81526001600160a01b0389811660048301526024820185905287169063a9059cbb90604401602060405180830381600087803b15801561134557600080fd5b505af1158015611359573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061137d9190612a14565b5033600090815260056020526040902060020154801580156113a0575060085415155b156113c3576001600860008282546113b89190612c07565b909155506114449050565b8060011480156113d4575060095415155b156113ec576001600960008282546113b89190612c07565b8060021480156113fd5750600a5415155b15611415576001600a60008282546113b89190612c07565b8060031480156114265750600b5415155b15611444576001600b600082825461143e9190612c07565b90915550505b5050506001600160a01b0390951660009081526005602081905260408220908101805460ff19908116600190811790925560038301849055825416825560029091019190915595945050505050565b6001600160a01b0381166000908152600560208190526040822060028101546003820154600483015492909301548454919460ff909116918190819081908190899081106114f157634e487b7160e01b600052603260045260246000fd5b906000526020600020906003020190508060020154866115119190612bb0565b925061151c896115b9565b915082421161152c57600061152f565b60015b935050919395979092949650565b6001546001600160a01b031633146115675760405162461bcd60e51b81526004016107ad90612b18565b600c80546001810182556000919091527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c70180546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0381166000908152600560205260408120600281015482548391829181106115f857634e487b7160e01b600052603260045260246000fd5b9060005260206000209060030201905060008160020154836004015461161e9190612bb0565b90506000826002015484600401546116369190612bb0565b600c54909150156118875760005b600c54811015611885576000600c828154811061167157634e487b7160e01b600052603260045260246000fd5b60009182526020918290200154604080516380865e9d60e01b815290516001600160a01b039092169350839283926380865e9d926004808201939291829003018186803b1580156116c157600080fd5b505afa1580156116d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116f99190612a14565b15801561177c575060405163bb96aa1d60e01b81526001600160a01b038a8116600483015282169063bb96aa1d9060240160206040518083038186803b15801561174257600080fd5b505afa158015611756573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061177a9190612a14565b155b80156117f75750806001600160a01b031663eafe083e6040518163ffffffff1660e01b815260040160206040518083038186803b1580156117bc57600080fd5b505afa1580156117d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117f49190612a48565b84115b1561187057806001600160a01b031663eafe083e6040518163ffffffff1660e01b815260040160206040518083038186803b15801561183557600080fd5b505afa158015611849573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061186d9190612a48565b94505b5050808061187d90612c1e565b915050611644565b505b81846004015411611898578161189a565b805b9695505050505050565b6001600160a01b0382166000908152600560205260408120600181018054839190859081106118e357634e487b7160e01b600052603260045260246000fd5b9060005260206000209060040201905060008082600001548154811061191957634e487b7160e01b600052603260045260246000fd5b9060005260206000209060030201905060008160020154836002015461193f9190612bb0565b90506000826002015484600201546119579190612bb0565b600c5490915015611bac5760005b600c54811015611ba6576000600c828154811061199257634e487b7160e01b600052603260045260246000fd5b60009182526020918290200154604080516380865e9d60e01b815290516001600160a01b039092169350839283926380865e9d926004808201939291829003018186803b1580156119e257600080fd5b505afa1580156119f6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a1a9190612a14565b158015611a9d575060405163bb96aa1d60e01b81526001600160a01b038c8116600483015282169063bb96aa1d9060240160206040518083038186803b158015611a6357600080fd5b505afa158015611a77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a9b9190612a14565b155b8015611b185750806001600160a01b031663eafe083e6040518163ffffffff1660e01b815260040160206040518083038186803b158015611add57600080fd5b505afa158015611af1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b159190612a48565b84115b15611b9157806001600160a01b031663eafe083e6040518163ffffffff1660e01b815260040160206040518083038186803b158015611b5657600080fd5b505afa158015611b6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b8e9190612a48565b94505b50508080611b9e90612c1e565b915050611965565b50611bc3565b82600201548460020154611bc09190612bb0565b91505b81846002015411611bd45781611bd6565b805b98975050505050505050565b6001546001600160a01b03163314611c0c5760405162461bcd60e51b81526004016107ad90612b18565b60048410611c6c5760405162461bcd60e51b815260206004820152602760248201527f746f70546965725f2076616c75652063616e6e6f742062652067726561746572604482015266207468616e203360c81b60648201526084016107ad565b6001600160a01b03851660009081526005602081905260409091208054600160ff199182161782556002820187905560038201869055600482018590559101805490911682151517905583611cd957600160086000828254611cce9190612bb0565b90915550611d339050565b8360011415611cf557600160096000828254611cce9190612bb0565b8360021415611d11576001600a6000828254611cce9190612bb0565b8360031415611d33576001600b6000828254611d2d9190612bb0565b90915550505b6001600160a01b0394909416600090815260056020908152604080832081516080810183529687528683019586529086019384529515156060860190815260019687018054808901825590845291909220945160049091029094019384559151938301939093559151600282015590516003909101805460ff1916911515919091179055565b6002546040516370a0823160e01b8152336004820181905260009290916001600160a01b0390911690849082906370a082319060240160206040518083038186803b158015611e0757600080fd5b505afa158015611e1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e3f9190612a48565b1015611e8d5760405162461bcd60e51b815260206004820152601c60248201527f496e73756666696369656e742062616c616e6365206f6620757365720000000060448201526064016107ad565b60075460ff161515600114611ed75760405162461bcd60e51b815260206004820152601060248201526f14dd185ada5b99c8191a5cd8589b195960821b60448201526064016107ad565b686c6b935b8bbd400000841015611f305760405162461bcd60e51b815260206004820152601960248201527f5374616b65206d696e696d756d203230303020746f6b656e730000000000000060448201526064016107ad565b600480546040516323b872dd60e01b81526001600160a01b0385811693820193909352908216602482015260448101869052908216906323b872dd90606401602060405180830381600087803b158015611f8957600080fd5b505af1158015611f9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fc19190612a14565b506000611fcd836127e1565b6001600160a01b038416600090815260056020526040902060030154611ff4908790612bb0565b611ffe9190612bb0565b6001600160a01b03841660009081526005602052604090205490915060ff16151560011415612116576001600160a01b0383166000908152600560205260409020600201546120655760016008600082825461205a9190612c07565b909155506120d99050565b6001600160a01b0383166000908152600560205260409020600201546001141561209c5760016009600082825461205a9190612c07565b6001600160a01b038316600090815260056020526040902060029081015414156120d9576001600a60008282546120d39190612c07565b90915550505b6001600160a01b03831660009081526005602052604090206002015460031415612116576001600b60008282546121109190612c07565b90915550505b686c6b935b8bbd4000008110158015612138575069032d26d12e980b60000081105b15612205576001600160a01b038316600081815260056020818152604080842081516080810183528581528084018c81524293820193845260608201878152600180850180548083018255908a52878a2094516004909102909401938455915191830191909155925160028083019190915592516003909101805460ff191691151591909117905594909352520154612200576001600860008282546121de9190612bb0565b90915550506001600160a01b0383166000908152600560205260408120600201555b6124c6565b69032d26d12e980b6000008110158015612228575069098774738bc82220000081105b156122f9576001600160a01b0383166000818152600560208181526040808420815160808101835260018082528185018d8152429483019485526060830188815282850180548085018255908a52878a2094516004909102909401938455905183830155935160028084019190915593516003909201805460ff19169215159290921790915595909452919052015411612200576001600960008282546122cf9190612bb0565b90915550506001600160a01b038316600090815260056020526040902060016002909101556124c6565b69098774738bc822200000811015801561231c575069152d02c7e14af680000081105b156123ea576001600160a01b0383166000818152600560208181526040808420815160808101835260028082528185018d81524294830194855260608301888152600180860180548083018255908b52888b209551600490910290950194855591519184019190915593518282015592516003909101805460ff191691151591909117905594909352529081015411612200576001600a60008282546123c29190612bb0565b90915550506001600160a01b03831660009081526005602052604090206002908101556124c6565b69152d02c7e14af680000081106124c6576001600160a01b0383166000818152600560208181526040808420815160808101835260038082528185018d81524294830194855260608301888152600180860180548083018255908b52888b209551600490910290950194855591519184019190915593516002808401919091559351918101805460ff191692151592909217909155959094529190520154116124c6576001600b60008282546124a09190612bb0565b90915550506001600160a01b038316600090815260056020526040902060036002909101555b6001600160a01b038316600090815260056020818152604080842060038101869055426004820155805460ff199081166001178255930180549093169092556006905290205460ff16612564576006602052600d80546001810182556000919091527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50180546001600160a01b0319166001600160a01b0385161790555b604080516001600160a01b0385168152602081018390527f9e71bc8eea02a63969f509818f2dafb9254532904319f9dbda79b67bd34a5f3d910160405180910390a1506001949350505050565b6001546000906001600160a01b031633146125de5760405162461bcd60e51b81526004016107ad90612b18565b6001600160a01b0383166126345760405162461bcd60e51b815260206004820152601f60248201527f43616e6e6f7420776974686472617720746f207a65726f20616464726573730060448201526064016107ad565b6040516001600160a01b0384169083156108fc029084906000818181858888f1935050505015801561266a573d6000803e3d6000fd5b5060019392505050565b6060600d80548060200260200160405190810160405280929190818152602001828054801561103d576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161101f575050505050905090565b6001600160a01b03811660009081526005602052604081206002810154825483918291811061271357634e487b7160e01b600052603260045260246000fd5b90600052602060002090600302019050600061272e856115b9565b600484015460058501549192509060ff166127965782546001840154606491906127588486612c07565b87600301546127679190612be8565b6127719190612be8565b61277b9190612bc8565b6127859190612bc8565b61278f9086612bb0565b945061279b565b600094505b50505050919050565b6001546001600160a01b031633146127ce5760405162461bcd60e51b81526004016107ad90612b18565b6007805460ff1916911515919091179055565b6001600160a01b03811660009081526005602052604081206002810154825483918291811061282057634e487b7160e01b600052603260045260246000fd5b90600052602060002090600302019050600061283b856115b9565b905042811161284a578061272e565b506004820154600583015442919060ff166127965782546001840154606491906127588486612c07565b6001546000906001600160a01b031633146128a15760405162461bcd60e51b81526004016107ad90612b18565b600180546001600160a01b0319166001600160a01b0384169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1506001919050565b600d8181548110610c4057600080fd5b60006020828403121561291b578081fd5b81356110be81612c4f565b60008060408385031215612938578081fd5b823561294381612c4f565b946020939093013593505050565b600080600060608486031215612965578081fd5b833561297081612c4f565b9250602084013561298081612c4f565b929592945050506040919091013590565b60008060408385031215612938578182fd5b600080600080600060a086880312156129ba578081fd5b85356129c581612c4f565b945060208601359350604086013592506060860135915060808601356129ea81612c67565b809150509295509295909350565b600060208284031215612a09578081fd5b81356110be81612c67565b600060208284031215612a25578081fd5b81516110be81612c67565b600060208284031215612a41578081fd5b5035919050565b600060208284031215612a59578081fd5b5051919050565b6000815180845260208085019450808401835b83811015612a91578151151587529582019590820190600101612a73565b509495945050505050565b6000815180845260208085019450808401835b83811015612a9157815187529582019590820190600101612aaf565b6020808252825182820181905260009190848201906040850190845b81811015612b0c5783516001600160a01b031683529284019291840191600101612ae7565b50909695505050505050565b6020808252600a908201526927b7363c9037bbb732b960b11b604082015260600190565b86815260c060208201526000612b5560c0830188612a9c565b8281036040840152612b678188612a9c565b90508281036060840152612b7b8187612a60565b90508281036080840152612b8f8186612a60565b905082810360a0840152612ba38185612a9c565b9998505050505050505050565b60008219821115612bc357612bc3612c39565b500190565b600082612be357634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615612c0257612c02612c39565b500290565b600082821015612c1957612c19612c39565b500390565b6000600019821415612c3257612c32612c39565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0381168114612c6457600080fd5b50565b8015158114612c6457600080fdfea2646970667358221220afe40be70f0878d7c6fbe16de25c32f86439e4c4a54a107ff029b5b15b39f04b64736f6c63430008040033
Deployed Bytecode Sourcemap
1049:16231:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17238:31;;;17247:10;4587:51:1;;17259:9:0;4669:2:1;4654:18;;4647:34;17238:31:0;;4560:18:1;17238:31:0;;;;;;;1049:16231;;;;;12255:85;;;;;;;;;;-1:-1:-1;12322:10:0;;12255:85;;;9390:25:1;;;9378:2;9363:18;12255:85:0;;;;;;;;13449:326;;;;;;;;;;-1:-1:-1;13449:326:0;;;;;:::i;:::-;;:::i;:::-;;;5523:14:1;;5516:22;5498:41;;5486:2;5471:18;13449:326:0;5453:92:1;1519:19:0;;;;;;;;;;-1:-1:-1;1519:19:0;;;;;:::i;:::-;;:::i;:::-;;;;10767:25:1;;;10823:2;10808:18;;10801:34;;;;10851:18;;;10844:34;10755:2;10740:18;1519:19:0;10722:162:1;12352:85:0;;;;;;;;;;-1:-1:-1;12419:10:0;;12352:85;;1700:43;;;;;;;;;;-1:-1:-1;1700:43:0;;;;-1:-1:-1;;;;;1700:43:0;;;;;;-1:-1:-1;;;;;3989:32:1;;;3971:51;;3959:2;3944:18;1700:43:0;3926:102:1;1843:23:0;;;;;;;;;;-1:-1:-1;1843:23:0;;;;;;;;10641:956;;;;;;;;;;-1:-1:-1;10641:956:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;:::i;1972:31::-;;;;;;;;;;-1:-1:-1;1972:31:0;;;;;:::i;:::-;;:::i;12449:85::-;;;;;;;;;;-1:-1:-1;12516:10:0;;12449:85;;9046:1551;;;;;;;;;;;;;:::i;15418:120::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;1794:42::-;;;;;;;;;;-1:-1:-1;1794:42:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12672:151;;;;;;;;;;-1:-1:-1;12672:151:0;;;;;:::i;:::-;;:::i;12864:155::-;;;;;;;;;;-1:-1:-1;12864:155:0;;;;;:::i;:::-;;:::i;15693:1453::-;;;;;;;;;;-1:-1:-1;15693:1453:0;;;;;:::i;:::-;;:::i;11609:613::-;;;;;;;;;;-1:-1:-1;11609:613:0;;;;;:::i;:::-;;:::i;:::-;;;;11192:25:1;;;11248:2;11233:18;;11226:34;;;;11276:18;;;11269:34;;;;11346:14;;11339:22;11334:2;11319:18;;11312:50;11406:14;11399:22;11393:3;11378:19;;11371:51;11453:3;11438:19;;11431:35;11497:3;11482:19;;11475:35;11179:3;11164:19;11609:613:0;11146:370:1;13065:110:0;;;;;;;;;;-1:-1:-1;13065:110:0;;;;;:::i;:::-;-1:-1:-1;;;;;13150:10:0;13126:4;13150:10;;;:4;:10;;;;;:17;;;;13065:110;1750:37;;;;;;;;;;-1:-1:-1;1750:37:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5822:14:1;;5815:22;5797:41;;5869:2;5854:18;;5847:34;;;;5897:18;;;5890:34;;;;5955:2;5940:18;;5933:34;6011:14;6004:22;5998:3;5983:19;;5976:51;5784:3;5769:19;1750:37:0;5751:282:1;5839:159:0;;;;;;;;;;-1:-1:-1;5839:159:0;;;;;:::i;:::-;;:::i;:::-;;7074:857;;;;;;;;;;-1:-1:-1;7074:857:0;;;;;:::i;:::-;;:::i;1545:33::-;;;;;;;;;;-1:-1:-1;1545:33:0;;;;-1:-1:-1;;;;;1545:33:0;;;12546:85;;;;;;;;;;-1:-1:-1;12613:10:0;;12546:85;;6047:972;;;;;;;;;;-1:-1:-1;6047:972:0;;;;;:::i;:::-;;:::i;14553:847::-;;;;;;;;;;-1:-1:-1;14553:847:0;;;;;:::i;:::-;;:::i;3050:2632::-;;;;;;;;;;-1:-1:-1;3050:2632:0;;;;;:::i;:::-;;:::i;13897:259::-;;;;;;;;;;-1:-1:-1;13897:259:0;;;;;:::i;:::-;;:::i;1666:27::-;;;;;;;;;;-1:-1:-1;1666:27:0;;;;-1:-1:-1;;;;;1666:27:0;;;13224:96;;;;;;;;;;-1:-1:-1;13301:11:0;;;;13224:96;;15550:126;;;;;;;;;;;;;:::i;8538:475::-;;;;;;;;;;-1:-1:-1;8538:475:0;;;;;:::i;:::-;;:::i;2710:134::-;;;;;;;;;;-1:-1:-1;2710:134:0;;;;;:::i;:::-;;:::i;1585:74::-;;;;;;;;;;-1:-1:-1;1585:74:0;;;;-1:-1:-1;;;;;1585:74:0;;;7944:546;;;;;;;;;;-1:-1:-1;7944:546:0;;;;;:::i;:::-;;:::i;14308:204::-;;;;;;;;;;-1:-1:-1;14308:204:0;;;;;:::i;:::-;;:::i;2010:31::-;;;;;;;;;;-1:-1:-1;2010:31:0;;;;;:::i;:::-;;:::i;13449:326::-;13573:5;;13534:4;;-1:-1:-1;;;;;13573:5:0;13559:10;:19;13551:42;;;;-1:-1:-1;;;13551:42:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;13612:16:0;;13604:60;;;;-1:-1:-1;;;13604:60:0;;6987:2:1;13604:60:0;;;6969:21:1;7026:2;7006:18;;;6999:30;7065:33;7045:18;;;7038:61;7116:18;;13604:60:0;6959:181:1;13604:60:0;13719:26;;-1:-1:-1;;;13719:26:0;;-1:-1:-1;;;;;4605:32:1;;;13719:26:0;;;4587:51:1;4654:18;;;4647:34;;;13695:12:0;;13719:14;;;;;;4560:18:1;;13719:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;13763:4:0;;13449:326;-1:-1:-1;;;;;13449:326:0:o;1519:19::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1519:19:0;:::o;10641:956::-;-1:-1:-1;;;;;10848:10:0;;10692:13;10848:10;;;:4;:10;;;;;:19;;;:26;10896:18;;;;;;10707:21;;;;;;;;;;10848:26;10935:18;;;;;;-1:-1:-1;;;10935:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10935:18:0;;10925:28;;10983:6;10972:18;;;;;;-1:-1:-1;;;10972:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10972:18:0;;10964:26;;11021:6;11010:18;;;;;;-1:-1:-1;;;11010:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11010:18:0;;11001:27;;11067:6;11056:18;;;;;;-1:-1:-1;;;11056:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11056:18:0;;11039:35;;11103:6;11092:18;;;;;;-1:-1:-1;;;11092:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11092:18:0;;11085:25;;11125:6;11121:388;11141:6;11137:1;:10;11121:388;;;-1:-1:-1;;;;;11191:10:0;;11168:20;11191:10;;;:4;:10;;;;;11238:15;;;:18;;11191:10;;11168:20;11254:1;;11238:18;;;;-1:-1:-1;;;11238:18:0;;;;;;;;;;;;;;;;;;;11216:40;;11284:3;:10;;;11271:7;11279:1;11271:10;;;;;;-1:-1:-1;;;11271:10:0;;;;;;;;;;;;;;:23;;;;;11320:3;:6;;;11309:5;11315:1;11309:8;;;;;;-1:-1:-1;;;11309:8:0;;;;;;;;;;;;;;;;;;:17;11353:13;;;;11341:9;;11353:13;;;;;11341:6;;11348:1;;11341:9;;;;-1:-1:-1;;;11341:9:0;;;;;;;;;:25;;;:9;;;;;;;;;;;:25;11391:8;;11381:7;;:4;;11386:1;;11381:7;;;;-1:-1:-1;;;11381:7:0;;;;;;;;;;;;;;:18;;;;;11453:28;11474:4;11479:1;11453:20;:28::i;:::-;11435:15;:46;11434:63;;11492:5;11434:63;;;11485:4;11434:63;11414:14;11429:1;11414:17;;;;;;-1:-1:-1;;;11414:17:0;;;;;;;;;:83;;;:17;;;;;;;;;;;:83;-1:-1:-1;11149:3:0;;-1:-1:-1;11149:3:0;;;:::i;:::-;;;;11121:388;;;;11529:60;10641:956;;;;;;;:::o;1972:31::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1972:31:0;;-1:-1:-1;1972:31:0;:::o;9046:1551::-;9119:14;;9170:10;9082:4;9209:10;;;:4;:10;;;;;:17;9082:4;;-1:-1:-1;;;;;9119:14:0;;9170:10;9209:17;;:25;;9119:14;9209:25;9201:57;;;;-1:-1:-1;;;9201:57:0;;8753:2:1;9201:57:0;;;8735:21:1;8792:2;8772:18;;;8765:30;-1:-1:-1;;;8811:18:1;;;8804:49;8870:18;;9201:57:0;8725:169:1;9201:57:0;-1:-1:-1;;;;;9277:10:0;;;;;;:4;:10;;;;;;;;:26;;;;:35;9269:65;;;;-1:-1:-1;;;9269:65:0;;7347:2:1;9269:65:0;;;7329:21:1;7386:2;7366:18;;;7359:30;-1:-1:-1;;;7405:18:1;;;7398:47;7462:18;;9269:65:0;7319:167:1;9269:65:0;-1:-1:-1;;;;;9387:10:0;;9364:20;9387:10;;;:4;:10;;;;;9434:14;;;;9428:21;;9387:10;;9364:20;;;9434:14;9428:21;;;;-1:-1:-1;;;9428:21:0;;;;;;;;;;;;;;;;;9484:19;;;;9428:21;;;;-1:-1:-1;9484:19:0;9525:21;9541:4;9525:15;:21::i;:::-;9580:15;;;;9609:22;;;;9514:32;;-1:-1:-1;9580:15:0;9609:22;;9606:191;;9719:9;;9704:12;;;;9731:3;;9719:9;9689:11;9695:5;9689:3;:11;:::i;:::-;9666:6;:19;;;:35;;;;:::i;:::-;:50;;;;:::i;:::-;:62;;;;:::i;:::-;:68;;;;:::i;:::-;9656:78;;;;:::i;:::-;;;9606:191;;;9784:1;9775:10;;9606:191;9817:16;9844:4;:12;;;9836:5;:20;;;;:::i;:::-;9817:39;;9894:11;9875:15;:30;;9867:63;;;;-1:-1:-1;;;9867:63:0;;8050:2:1;9867:63:0;;;8032:21:1;8089:2;8069:18;;;8062:30;-1:-1:-1;;;8108:18:1;;;8101:50;8168:18;;9867:63:0;8022:170:1;9867:63:0;9951:28;;-1:-1:-1;;;9951:28:0;;-1:-1:-1;;;;;4605:32:1;;;9951:28:0;;;4587:51:1;4654:18;;;4647:34;;;9951:14:0;;;;;4560:18:1;;9951:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;10024:10:0;10000:16;10019;;;:4;:16;;;;;:24;;;10057:14;;:31;;;;-1:-1:-1;10075:10:0;;:13;;10057:31;10054:345;;;10116:1;10104:10;;:13;;;;;;;:::i;:::-;;;;-1:-1:-1;10054:345:0;;-1:-1:-1;10054:345:0;;10147:11;10160:1;10147:14;:31;;;;-1:-1:-1;10165:10:0;;:13;;10147:31;10144:255;;;10206:1;10194:10;;:13;;;;;;;:::i;10144:255::-;10237:11;10250:1;10237:14;:31;;;;-1:-1:-1;10255:10:0;;:13;;10237:31;10234:165;;;10296:1;10284:10;;:13;;;;;;;:::i;10234:165::-;10327:11;10340:1;10327:14;:31;;;;-1:-1:-1;10345:10:0;;:13;;10327:31;10324:75;;;10386:1;10374:10;;:13;;;;;;;:::i;:::-;;;;-1:-1:-1;;10324:75:0;-1:-1:-1;;;;;;;;10409:10:0;;;;;;;:4;:10;;;;;;;:26;;;:33;;-1:-1:-1;;10409:33:0;;;10438:4;10409:33;;;;;;10453:23;;;:27;;;10491:25;;;;;-1:-1:-1;10527:18:0;;;:22;;;;10438:4;9046:1551;-1:-1:-1;;;;;;9046:1551:0:o;15418:120::-;15461:28;15516:14;15502:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15502:28:0;;;;;;;;;;;;;;;;;;;;;;;15418:120;:::o;12672:151::-;12733:4;12750:9;12767:8;12750:26;;12794:4;-1:-1:-1;;;;;12794:19:0;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12787:28;12672:151;-1:-1:-1;;;12672:151:0:o;12864:155::-;12928:4;12945:9;12962:8;12945:26;;12989:4;-1:-1:-1;;;;;12989:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;15693:1453::-;15786:5;;15746:4;;-1:-1:-1;;;;;15786:5:0;15772:10;:19;15764:42;;;;-1:-1:-1;;;15764:42:0;;;;;;;:::i;:::-;15846:14;;-1:-1:-1;;;;;15889:10:0;;;15826:11;15889:10;;;:4;:10;;;;;:17;15846:14;;;15889:17;;:25;;15846:14;15889:25;15881:57;;;;-1:-1:-1;;;15881:57:0;;8753:2:1;15881:57:0;;;8735:21:1;8792:2;8772:18;;;8765:30;-1:-1:-1;;;8811:18:1;;;8804:49;8870:18;;15881:57:0;8725:169:1;15881:57:0;-1:-1:-1;;;;;15957:10:0;;;;;;:4;:10;;;;;;;;:26;;;;:35;15949:65;;;;-1:-1:-1;;;15949:65:0;;7347:2:1;15949:65:0;;;7329:21:1;7386:2;7366:18;;;7359:30;-1:-1:-1;;;7405:18:1;;;7398:47;7462:18;;15949:65:0;7319:167:1;15949:65:0;-1:-1:-1;;;;;16067:10:0;;16044:20;16067:10;;;:4;:10;;;;;16114:14;;;;16108:21;;16067:10;;16044:20;;;16114:14;16108:21;;;;-1:-1:-1;;;16108:21:0;;;;;;;;;;;;;;;;;;16164:19;;;;16254:15;;;;16283:22;;;;16108:21;;;;;;;;-1:-1:-1;16164:19:0;;16205:15;;16283:22;;16280:191;;16393:9;;16378:12;;;;16405:3;;16393:9;16363:11;16369:5;16363:3;:11;:::i;:::-;16340:6;:19;;;:35;;;;:::i;:::-;:50;;;;:::i;:::-;:62;;;;:::i;:::-;:68;;;;:::i;:::-;16330:78;;;;:::i;:::-;;;16280:191;;;16458:1;16449:10;;16280:191;16491:28;;-1:-1:-1;;;16491:28:0;;-1:-1:-1;;;;;4605:32:1;;;16491:28:0;;;4587:51:1;4654:18;;;4647:34;;;16491:14:0;;;;;4560:18:1;;16491:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;16564:10:0;16540:16;16559;;;:4;:16;;;;;:24;;;16597:14;;:31;;;;-1:-1:-1;16615:10:0;;:13;;16597:31;16594:345;;;16656:1;16644:10;;:13;;;;;;;:::i;:::-;;;;-1:-1:-1;16594:345:0;;-1:-1:-1;16594:345:0;;16687:11;16700:1;16687:14;:31;;;;-1:-1:-1;16705:10:0;;:13;;16687:31;16684:255;;;16746:1;16734:10;;:13;;;;;;;:::i;16684:255::-;16777:11;16790:1;16777:14;:31;;;;-1:-1:-1;16795:10:0;;:13;;16777:31;16774:165;;;16836:1;16824:10;;:13;;;;;;;:::i;16774:165::-;16867:11;16880:1;16867:14;:31;;;;-1:-1:-1;16885:10:0;;:13;;16867:31;16864:75;;;16926:1;16914:10;;:13;;;;;;;:::i;:::-;;;;-1:-1:-1;;16864:75:0;-1:-1:-1;;;;;;;;16949:10:0;;;;;;;:4;:10;;;;;;;:26;;;:33;;-1:-1:-1;;16949:33:0;;;16978:4;16949:33;;;;;;16993:23;;;:27;;;17031:25;;;;;-1:-1:-1;17067:18:0;;;:22;;;;16978:4;15693:1453;-1:-1:-1;;;;;15693:1453:0:o;11609:613::-;-1:-1:-1;;;;;11825:10:0;;11664:12;11825:10;;;:4;:10;;;;;;;:18;;;;11869:23;;;;11914:19;;;;11962:26;;;;;12029:14;;11825:18;;11962:26;;;;;11664:12;;;;;;;;11825:18;;12029:14;;;;-1:-1:-1;;;12029:14:0;;;;;;;;;;;;;;;;;;;12009:34;;12078:4;:12;;;12067:8;:23;;;;:::i;:::-;12054:36;;12120:21;12136:4;12120:15;:21::i;:::-;12102:39;;12188:10;12170:15;:28;12169:45;;12209:5;12169:45;;;12202:4;12169:45;12152:62;;11609:613;;;;;;;;;;:::o;5839:159::-;5930:5;;-1:-1:-1;;;;;5930:5:0;5916:10;:19;5908:42;;;;-1:-1:-1;;;5908:42:0;;;;;;;:::i;:::-;5961:14;:29;;;;;;;-1:-1:-1;5961:29:0;;;;;;;;-1:-1:-1;;;;;;5961:29:0;-1:-1:-1;;;;;5961:29:0;;;;;;;;;;5839:159::o;7074:857::-;-1:-1:-1;;;;;7184:11:0;;7134:4;7184:11;;;:4;:11;;;;;7232:14;;;;7226:21;;7134:4;;;;7226:21;;;;-1:-1:-1;;;7226:21:0;;;;;;;;;;;;;;;;;;;7206:41;;7258:12;7291:4;:12;;;7273:6;:15;;;:30;;;;:::i;:::-;7258:45;;7314:18;7353:4;:12;;;7335:6;:15;;;:30;;;;:::i;:::-;7379:14;:21;7314:51;;-1:-1:-1;7379:25:0;7376:398;;7424:6;7420:343;7441:14;:21;7437:25;;7420:343;;;7487:16;7506:14;7521:1;7506:17;;;;;;-1:-1:-1;;;7506:17:0;;;;;;;;;;;;;;;;;;;;7593:21;;;-1:-1:-1;;;7593:21:0;;;;-1:-1:-1;;;;;7506:17:0;;;;-1:-1:-1;7506:17:0;;;;7593:19;;:21;;;;;7506:17;7593:21;;;;;;7506:17;7593:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:28;;;:64;;-1:-1:-1;7625:25:0;;-1:-1:-1;;;7625:25:0;;-1:-1:-1;;;;;3989:32:1;;;7625:25:0;;;3971:51:1;7625:18:0;;;;;3944::1;;7625:25:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:32;7593:64;:106;;;;;7677:4;-1:-1:-1;;;;;7677:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7661:13;:38;7593:106;7590:158;;;7718:4;-1:-1:-1;;;;;7718:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7708:32;;7590:158;7420:343;;7464:3;;;;;:::i;:::-;;;;7420:343;;;;7376:398;7865:7;7847:6;:15;;;:25;:51;;7891:7;7847:51;;;7875:13;7847:51;7837:61;7074:857;-1:-1:-1;;;;;;7074:857:0:o;6047:972::-;-1:-1:-1;;;;;6175:11:0;;6125:4;6175:11;;;:4;:11;;;;;6219:15;;;:23;;6125:4;;6219:15;6235:6;;6219:23;;;;-1:-1:-1;;;6219:23:0;;;;;;;;;;;;;;;;;;;6197:45;;6253:17;6273:5;6279:3;:8;;;6273:15;;;;;;-1:-1:-1;;;6273:15:0;;;;;;;;;;;;;;;;;;;6253:35;;6309:12;6333:4;:12;;;6324:3;:6;;;:21;;;;:::i;:::-;6309:36;;6356:18;6386:4;:12;;;6377:3;:6;;;:21;;;;:::i;:::-;6412:14;:21;6356:42;;-1:-1:-1;6412:25:0;6409:471;;6457:6;6453:343;6474:14;:21;6470:25;;6453:343;;;6520:16;6539:14;6554:1;6539:17;;;;;;-1:-1:-1;;;6539:17:0;;;;;;;;;;;;;;;;;;;;6626:21;;;-1:-1:-1;;;6626:21:0;;;;-1:-1:-1;;;;;6539:17:0;;;;-1:-1:-1;6539:17:0;;;;6626:19;;:21;;;;;6539:17;6626:21;;;;;;6539:17;6626:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:28;;;:64;;-1:-1:-1;6658:25:0;;-1:-1:-1;;;6658:25:0;;-1:-1:-1;;;;;3989:32:1;;;6658:25:0;;;3971:51:1;6658:18:0;;;;;3944::1;;6658:25:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:32;6626:64;:106;;;;;6710:4;-1:-1:-1;;;;;6710:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6694:13;:38;6626:106;6623:158;;;6751:4;-1:-1:-1;;;;;6751:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6741:32;;6623:158;6453:343;;6497:3;;;;;:::i;:::-;;;;6453:343;;;;6409:471;;;6856:4;:12;;;6847:3;:6;;;:21;;;;:::i;:::-;6837:31;;6409:471;6953:7;6944:3;:6;;;:16;:42;;6979:7;6944:42;;;6963:13;6944:42;6934:52;6047:972;-1:-1:-1;;;;;;;;6047:972:0:o;14553:847::-;14695:5;;-1:-1:-1;;;;;14695:5:0;14681:10;:19;14673:42;;;;-1:-1:-1;;;14673:42:0;;;;;;;:::i;:::-;14745:1;14734:8;:12;14726:64;;;;-1:-1:-1;;;14726:64:0;;6240:2:1;14726:64:0;;;6222:21:1;6279:2;6259:18;;;6252:30;6318:34;6298:18;;;6291:62;-1:-1:-1;;;6369:18:1;;;6362:37;6416:19;;14726:64:0;6212:229:1;14726:64:0;-1:-1:-1;;;;;14804:10:0;;;;;;:4;:10;;;;;;;;:24;;14824:4;-1:-1:-1;;14804:24:0;;;;;;14839:18;;;:29;;;14879:23;;;:33;;;14923:19;;;:27;;;14961:26;;:42;;;;;;;;;;;14839:29;15017:281;;15063:1;15049:10;;:15;;;;;;;:::i;:::-;;;;-1:-1:-1;15017:281:0;;-1:-1:-1;15017:281:0;;15094:8;15106:1;15094:13;15091:207;;;15137:1;15123:10;;:15;;;;;;;:::i;15091:207::-;15168:8;15180:1;15168:13;15165:133;;;15211:1;15197:10;;:15;;;;;;;:::i;15165:133::-;15242:8;15254:1;15242:13;15239:59;;;15285:1;15271:10;;:15;;;;;;;:::i;:::-;;;;-1:-1:-1;;15239:59:0;-1:-1:-1;;;;;15308:10:0;;;;;;;;:4;:10;;;;;;;;15333:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15308:19;;;;:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15308:74:0;;;;;;;;;;14553:847::o;3050:2632::-;3185:14;;3229:23;;-1:-1:-1;;;3229:23:0;;3144:10;3229:23;;;3971:51:1;;;3090:4:0;;3144:10;;-1:-1:-1;;;;;3185:14:0;;;;3256:3;;3185:14;;3229:15;;3944:18:1;;3229:23:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:30;;3221:71;;;;-1:-1:-1;;;3221:71:0;;7693:2:1;3221:71:0;;;7675:21:1;7732:2;7712:18;;;7705:30;7771;7751:18;;;7744:58;7819:18;;3221:71:0;7665:178:1;3221:71:0;3311:11;;;;:19;;:11;:19;3303:48;;;;-1:-1:-1;;;3303:48:0;;9101:2:1;3303:48:0;;;9083:21:1;9140:2;9120:18;;;9113:30;-1:-1:-1;;;9159:18:1;;;9152:46;9215:18;;3303:48:0;9073:166:1;3303:48:0;3377:13;3370:3;:20;;3362:58;;;;-1:-1:-1;;;3362:58:0;;8399:2:1;3362:58:0;;;8381:21:1;8438:2;8418:18;;;8411:30;8477:27;8457:18;;;8450:55;8522:18;;3362:58:0;8371:175:1;3362:58:0;3468:12;;;3441:45;;-1:-1:-1;;;3441:45:0;;-1:-1:-1;;;;;4291:15:1;;;3441:45:0;;;4273:34:1;;;;3468:12:0;;;4323:18:1;;;4316:43;4375:18;;;4368:34;;;3441:18:0;;;;;;4208::1;;3441:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3507:11;3555:27;3575:6;3555:19;:27::i;:::-;-1:-1:-1;;;;;3521:12:0;;;;;;:4;:12;;;;;:25;;;:31;;3549:3;;3521:31;:::i;:::-;:61;;;;:::i;:::-;-1:-1:-1;;;;;3648:12:0;;;;;;:4;:12;;;;;:19;3507:75;;-1:-1:-1;3648:19:0;;:25;;:19;:25;3645:415;;;-1:-1:-1;;;;;3692:12:0;;;;;;:4;:12;;;;;:20;;;3689:269;;3749:1;3735:10;;:15;;;;;;;:::i;:::-;;;;-1:-1:-1;3689:269:0;;-1:-1:-1;3689:269:0;;-1:-1:-1;;;;;3788:12:0;;;;;;:4;:12;;;;;:20;;;3810:1;3788:23;3785:173;;;3845:1;3831:10;;:15;;;;;;;:::i;3785:173::-;-1:-1:-1;;;;;3884:12:0;;;;;;:4;:12;;;;;:20;;;;;:23;3881:77;;;3941:1;3927:10;;:15;;;;;;;:::i;:::-;;;;-1:-1:-1;;3881:77:0;-1:-1:-1;;;;;3975:12:0;;;;;;:4;:12;;;;;:20;;;3997:1;3975:23;3972:77;;;4032:1;4018:10;;:15;;;;;;;:::i;:::-;;;;-1:-1:-1;;3972:77:0;4139:11;4129:6;:21;;:46;;;;;4163:12;4154:6;:21;4129:46;4126:1164;;;-1:-1:-1;;;;;4191:12:0;;;;;;:4;:12;;;;;;;;4218:39;;;;;;;;;;;;;;;;4234:15;4218:39;;;;;;;;;;;;4191:21;;;;:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4191:67:0;;;;;;;;;;4276:12;;;;;:20;;4273:121;;4334:1;4320:10;;:15;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;4354:12:0;;4377:1;4354:12;;;:4;:12;;;;;:20;;:24;4273:121;4126:1164;;;4443:12;4433:6;:22;;:47;;;;;4468:12;4459:6;:21;4433:47;4430:860;;;-1:-1:-1;;;;;4496:12:0;;;;;;:4;:12;;;;;;;;4523:39;;;;;;;4496:21;4523:39;;;;;;;;;4539:15;4523:39;;;;;;;;;;;;4496:21;;;:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4496:67:0;;;;;;;;;;;4581:12;;;;;;;:20;;:25;4578:122;;4640:1;4626:10;;:15;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;4660:12:0;;;;;;:4;:12;;;;;4683:1;4660:20;;;;:24;4430:860;;;4749:12;4739:6;:22;;:48;;;;;4774:13;4765:6;:22;4739:48;4736:554;;;-1:-1:-1;;;;;4803:12:0;;;;;;:4;:12;;;;;;;;4830:39;;;;;;;4838:1;4830:39;;;;;;;;;4846:15;4830:39;;;;;;;;;;;;4803:21;;;;:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4803:67:0;;;;;;;;;;4888:12;;;;;:20;;;;:25;4885:122;;4947:1;4933:10;;:15;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;4967:12:0;;;;;;:4;:12;;;;;4990:1;4967:20;;;:24;4736:554;;;5046:13;5036:6;:23;5033:257;;-1:-1:-1;;;;;5075:12:0;;;;;;:4;:12;;;;;;;;5102:39;;;;;;;5110:1;5102:39;;;;;;;;;5118:15;5102:39;;;;;;;;;;;;5075:21;;;;:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5075:67:0;;;;;;;;;;;5160:12;;;;;;;:20;;:25;5157:122;;5219:1;5205:10;;:15;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;5239:12:0;;;;;;:4;:12;;;;;5262:1;5239:20;;;;:24;5157:122;-1:-1:-1;;;;;5300:12:0;;;;;;:4;:12;;;;;;;;:25;;;:34;;;5369:15;5345:21;;;:39;5405:26;;-1:-1:-1;;5405:26:0;;;5427:4;5405:26;;;5442:28;;:36;;;;;;;;5492:12;:20;;;;;5405:26;5492:20;5489:126;;5535:12;:20;;5576:14;:27;;5535:20;5576:27;;;;5535:20;5576:27;;;;;;;;-1:-1:-1;;;;;;5576:27:0;-1:-1:-1;;;;;5535:20:0;;5576:27;;;5489:126;5630:22;;;-1:-1:-1;;;;;4605:32:1;;4587:51;;4669:2;4654:18;;4647:34;;;5630:22:0;;4560:18:1;5630:22:0;;;;;;;-1:-1:-1;5670:4:0;;3050:2632;-1:-1:-1;;;;3050:2632:0:o;13897:259::-;14005:5;;13966:4;;-1:-1:-1;;;;;14005:5:0;13991:10;:19;13983:42;;;;-1:-1:-1;;;13983:42:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14044:16:0;;14036:60;;;;-1:-1:-1;;;14036:60:0;;6987:2:1;14036:60:0;;;6969:21:1;7026:2;7006:18;;;6999:30;7065:33;7045:18;;;7038:61;7116:18;;14036:60:0;6959:181:1;14036:60:0;14107:19;;-1:-1:-1;;;;;14107:11:0;;;:19;;;;;14119:6;;14107:19;;;;14119:6;14107:11;:19;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14144:4:0;;13897:259;-1:-1:-1;;;13897:259:0:o;15550:126::-;15597:29;15654:14;15639:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15639:29:0;;;;;;;;;;;;;;;;;;;;;;15550:126;:::o;8538:475::-;-1:-1:-1;;;;;8651:10:0;;8594:11;8651:10;;;:4;:10;;;;;8698:14;;;;8692:21;;8594:11;;;;8692:21;;;;-1:-1:-1;;;8692:21:0;;;;;;;;;;;;;;;;;;;8672:41;;8724:8;8735:21;8751:4;8735:15;:21::i;:::-;8780:15;;;;8809:22;;;;8724:32;;-1:-1:-1;8780:15:0;8809:22;;8806:191;;8919:9;;8904:12;;;;8931:3;;8919:9;8889:11;8895:5;8889:3;:11;:::i;:::-;8866:6;:19;;;:35;;;;:::i;:::-;:50;;;;:::i;:::-;:62;;;;:::i;:::-;:68;;;;:::i;:::-;8856:78;;;;:::i;:::-;;;8806:191;;;8984:1;8975:10;;8806:191;8538:475;;;;;;;:::o;2710:134::-;2786:5;;-1:-1:-1;;;;;2786:5:0;2772:10;:19;2764:42;;;;-1:-1:-1;;;2764:42:0;;;;;;;:::i;:::-;2817:11;:19;;-1:-1:-1;;2817:19:0;;;;;;;;;;2710:134::o;7944:546::-;-1:-1:-1;;;;;8064:10:0;;8007:11;8064:10;;;:4;:10;;;;;8111:14;;;;8105:21;;8007:11;;;;8105:21;;;;-1:-1:-1;;;8105:21:0;;;;;;;;;;;;;;;;;;;8085:41;;8137:8;8148:21;8164:4;8148:15;:21::i;:::-;8137:32;;8193:15;8187:3;:21;8186:47;;8230:3;8186:47;;;-1:-1:-1;8257:15:0;;;;8286:22;;;;8212:15;;8257;8286:22;;8283:191;;8396:9;;8381:12;;;;8408:3;;8396:9;8366:11;8372:5;8366:3;:11;:::i;14308:204::-;14401:5;;14362:4;;-1:-1:-1;;;;;14401:5:0;14387:10;:19;14379:42;;;;-1:-1:-1;;;14379:42:0;;;;;;;:::i;:::-;14432:5;:10;;-1:-1:-1;;;;;;14432:10:0;-1:-1:-1;;;;;14432:10:0;;;;;;;;14458:24;;3971:51:1;;;14458:24:0;;3959:2:1;3944:18;14458:24:0;;;;;;;-1:-1:-1;14500:4:0;;14308:204;-1:-1:-1;14308:204:0:o;2010:31::-;;;;;;;;;;;;14:257:1;73:6;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;191:9;178:23;210:31;235:5;210:31;:::i;276:333::-;352:6;360;413:2;401:9;392:7;388:23;384:32;381:2;;;434:6;426;419:22;381:2;478:9;465:23;497:31;522:5;497:31;:::i;:::-;547:5;599:2;584:18;;;;571:32;;-1:-1:-1;;;371:238:1:o;614:466::-;691:6;699;707;760:2;748:9;739:7;735:23;731:32;728:2;;;781:6;773;766:22;728:2;825:9;812:23;844:31;869:5;844:31;:::i;:::-;894:5;-1:-1:-1;951:2:1;936:18;;923:32;964:33;923:32;964:33;:::i;:::-;718:362;;1016:7;;-1:-1:-1;;;1070:2:1;1055:18;;;;1042:32;;718:362::o;1085:325::-;1153:6;1161;1214:2;1202:9;1193:7;1189:23;1185:32;1182:2;;;1235:6;1227;1220:22;1415:598;1507:6;1515;1523;1531;1539;1592:3;1580:9;1571:7;1567:23;1563:33;1560:2;;;1614:6;1606;1599:22;1560:2;1658:9;1645:23;1677:31;1702:5;1677:31;:::i;:::-;1727:5;-1:-1:-1;1779:2:1;1764:18;;1751:32;;-1:-1:-1;1830:2:1;1815:18;;1802:32;;-1:-1:-1;1881:2:1;1866:18;;1853:32;;-1:-1:-1;1937:3:1;1922:19;;1909:33;1951:30;1909:33;1951:30;:::i;:::-;2000:7;1990:17;;;1550:463;;;;;;;;:::o;2018:251::-;2074:6;2127:2;2115:9;2106:7;2102:23;2098:32;2095:2;;;2148:6;2140;2133:22;2095:2;2192:9;2179:23;2211:28;2233:5;2211:28;:::i;2274:255::-;2341:6;2394:2;2382:9;2373:7;2369:23;2365:32;2362:2;;;2415:6;2407;2400:22;2362:2;2452:9;2446:16;2471:28;2493:5;2471:28;:::i;2534:190::-;2593:6;2646:2;2634:9;2625:7;2621:23;2617:32;2614:2;;;2667:6;2659;2652:22;2614:2;-1:-1:-1;2695:23:1;;2604:120;-1:-1:-1;2604:120:1:o;2729:194::-;2799:6;2852:2;2840:9;2831:7;2827:23;2823:32;2820:2;;;2873:6;2865;2858:22;2820:2;-1:-1:-1;2901:16:1;;2810:113;-1:-1:-1;2810:113:1:o;2928:450::-;2978:3;3016:5;3010:12;3043:6;3038:3;3031:19;3069:4;3098:2;3093:3;3089:12;3082:19;;3135:2;3128:5;3124:14;3156:3;3168:185;3182:6;3179:1;3176:13;3168:185;;;3257:13;;3250:21;3243:29;3231:42;;3293:12;;;;3328:15;;;;3204:1;3197:9;3168:185;;;-1:-1:-1;3369:3:1;;2986:392;-1:-1:-1;;;;;2986:392:1:o;3383:437::-;3436:3;3474:5;3468:12;3501:6;3496:3;3489:19;3527:4;3556:2;3551:3;3547:12;3540:19;;3593:2;3586:5;3582:14;3614:3;3626:169;3640:6;3637:1;3634:13;3626:169;;;3701:13;;3689:26;;3735:12;;;;3770:15;;;;3662:1;3655:9;3626:169;;4692:661;4863:2;4915:21;;;4985:13;;4888:18;;;5007:22;;;4834:4;;4863:2;5086:15;;;;5060:2;5045:18;;;4834:4;5132:195;5146:6;5143:1;5140:13;5132:195;;;5211:13;;-1:-1:-1;;;;;5207:39:1;5195:52;;5302:15;;;;5267:12;;;;5243:1;5161:9;5132:195;;;-1:-1:-1;5344:3:1;;4843:510;-1:-1:-1;;;;;;4843:510:1:o;6446:334::-;6648:2;6630:21;;;6687:2;6667:18;;;6660:30;-1:-1:-1;;;6721:2:1;6706:18;;6699:40;6771:2;6756:18;;6620:160::o;9426:1134::-;9933:6;9922:9;9915:25;9976:3;9971:2;9960:9;9956:18;9949:31;9896:4;10003:57;10055:3;10044:9;10040:19;10032:6;10003:57;:::i;:::-;10108:9;10100:6;10096:22;10091:2;10080:9;10076:18;10069:50;10142:44;10179:6;10171;10142:44;:::i;:::-;10128:58;;10234:9;10226:6;10222:22;10217:2;10206:9;10202:18;10195:50;10268:41;10302:6;10294;10268:41;:::i;:::-;10254:55;;10358:9;10350:6;10346:22;10340:3;10329:9;10325:19;10318:51;10392:41;10426:6;10418;10392:41;:::i;:::-;10378:55;;10482:9;10474:6;10470:22;10464:3;10453:9;10449:19;10442:51;10510:44;10547:6;10539;10510:44;:::i;:::-;10502:52;9905:655;-1:-1:-1;;;;;;;;;9905:655:1:o;11521:128::-;11561:3;11592:1;11588:6;11585:1;11582:13;11579:2;;;11598:18;;:::i;:::-;-1:-1:-1;11634:9:1;;11569:80::o;11654:217::-;11694:1;11720;11710:2;;-1:-1:-1;;;11745:31:1;;11799:4;11796:1;11789:15;11827:4;11752:1;11817:15;11710:2;-1:-1:-1;11856:9:1;;11700:171::o;11876:168::-;11916:7;11982:1;11978;11974:6;11970:14;11967:1;11964:21;11959:1;11952:9;11945:17;11941:45;11938:2;;;11989:18;;:::i;:::-;-1:-1:-1;12029:9:1;;11928:116::o;12049:125::-;12089:4;12117:1;12114;12111:8;12108:2;;;12122:18;;:::i;:::-;-1:-1:-1;12159:9:1;;12098:76::o;12179:135::-;12218:3;-1:-1:-1;;12239:17:1;;12236:2;;;12259:18;;:::i;:::-;-1:-1:-1;12306:1:1;12295:13;;12226:88::o;12319:127::-;12380:10;12375:3;12371:20;12368:1;12361:31;12411:4;12408:1;12401:15;12435:4;12432:1;12425:15;12451:131;-1:-1:-1;;;;;12526:31:1;;12516:42;;12506:2;;12572:1;12569;12562:12;12506:2;12496:86;:::o;12587:118::-;12673:5;12666:13;12659:21;12652:5;12649:32;12639:2;;12695:1;12692;12685:12
Swarm Source
ipfs://afe40be70f0878d7c6fbe16de25c32f86439e4c4a54a107ff029b5b15b39f04b
Loading...
Loading
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in POL
Multichain Portfolio | 35 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ 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.