More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 152 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
Value | ||||
---|---|---|---|---|---|---|---|---|---|
Approve | 18401513 | 260 days ago | IN | 0 ETH | 0.00024197 | ||||
Approve | 17801632 | 344 days ago | IN | 0 ETH | 0.00063553 | ||||
Approve Max | 17666202 | 363 days ago | IN | 0 ETH | 0.00175066 | ||||
Approve Max | 17665265 | 363 days ago | IN | 0 ETH | 0.00058763 | ||||
Approve Max | 17662948 | 363 days ago | IN | 0 ETH | 0.00032339 | ||||
Approve Max | 17658429 | 364 days ago | IN | 0 ETH | 0.00044757 | ||||
_sell | 17599266 | 372 days ago | IN | 0 ETH | 0.00046223 | ||||
_sell | 17599251 | 372 days ago | IN | 0 ETH | 0.00039722 | ||||
Approve Max | 17556735 | 378 days ago | IN | 0 ETH | 0.0003271 | ||||
Approve Max | 17515301 | 384 days ago | IN | 0 ETH | 0.00091351 | ||||
Approve Max | 17514502 | 384 days ago | IN | 0 ETH | 0.00057702 | ||||
Approve Max | 17514498 | 384 days ago | IN | 0 ETH | 0.00108666 | ||||
Approve Max | 17480394 | 389 days ago | IN | 0 ETH | 0.00118312 | ||||
Approve Max | 17346074 | 408 days ago | IN | 0 ETH | 0.00133426 | ||||
Approve Max | 17323373 | 411 days ago | IN | 0 ETH | 0.00179937 | ||||
Approve Max | 17323369 | 411 days ago | IN | 0 ETH | 0.00296692 | ||||
Approve Max | 17303615 | 414 days ago | IN | 0 ETH | 0.00147295 | ||||
Approve Max | 17095000 | 443 days ago | IN | 0 ETH | 0.00093218 | ||||
Approve Max | 17094990 | 443 days ago | IN | 0 ETH | 0.00098626 | ||||
Approve Max | 17094985 | 443 days ago | IN | 0 ETH | 0.00108281 | ||||
Approve Max | 17094704 | 443 days ago | IN | 0 ETH | 0.00103949 | ||||
Approve Max | 17094697 | 443 days ago | IN | 0 ETH | 0.00104124 | ||||
Approve Max | 17094681 | 443 days ago | IN | 0 ETH | 0.00098838 | ||||
Approve Max | 17070105 | 447 days ago | IN | 0 ETH | 0.00093604 | ||||
Approve Max | 17070097 | 447 days ago | IN | 0 ETH | 0.00150097 |
Latest 9 internal transactions
Advanced mode:
Parent Transaction Hash | Block | From | To | Value | ||
---|---|---|---|---|---|---|
16489750 | 528 days ago | 0.10089205 ETH | ||||
16488812 | 529 days ago | 0.01199937 ETH | ||||
16484561 | 529 days ago | 0.01902231 ETH | ||||
16484159 | 529 days ago | 0.09322667 ETH | ||||
16425284 | 537 days ago | 0.01996217 ETH | ||||
16422254 | 538 days ago | 0.01903782 ETH | ||||
16419003 | 538 days ago | 0.0737307 ETH | ||||
16415338 | 539 days ago | 0.12281698 ETH | ||||
16392149 | 542 days ago | 24.66999999 ETH |
Loading...
Loading
Contract Name:
SURGE
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-01-12 */ //SPDX-License-Identifier: MIT /** * Contract: Surge Token * Developed by: Heisenman * Team: t.me/ALBINO_RHINOOO, t.me/Heisenman, t.me/STFGNZ * Trade without dex fees. $SURGE is the inception of the next generation of decentralized protocols. * Socials: * TG: https://t.me/SURGEPROTOCOL * Website: https://surgeprotocol.io/ * Twitter: https://twitter.com/SURGEPROTOCOL */ pragma solidity 0.8.17; abstract contract ReentrancyGuard { uint256 private constant _NOT_ENTERED = 1; uint256 private constant _ENTERED = 2; uint256 private _status; constructor() { _status = _NOT_ENTERED; } modifier nonReentrant() { require(_status != _ENTERED, "ReentrancyGuard: reentrant call"); _status = _ENTERED; _; _status = _NOT_ENTERED; } } interface IPancakePair { function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns ( uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast ); } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); function decimals() external view returns (uint8); } abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return payable(msg.sender); } } contract Ownable is Context { address private _owner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require( newOwner != address(0), "Ownable: new owner is the zero address" ); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } contract SURGE is IERC20, Context, Ownable, ReentrancyGuard { event Bought( address indexed from, address indexed to, uint256 tokens, uint256 beans, uint256 dollarBuy ); event Sold( address indexed from, address indexed to, uint256 tokens, uint256 beans, uint256 dollarSell ); event FeesMulChanged(uint256 newBuyMul, uint256 newSellMul); event StablePairChanged(address newStablePair, address newStableToken); event MaxBagChanged(uint256 newMaxBag); // token data string private constant _name = "SURGE"; string private constant _symbol = "SRG"; uint8 private constant _decimals = 9; uint256 private constant _decMultiplier = 10**_decimals; // Total Supply uint256 public constant _totalSupply = 10**8 * _decMultiplier; // balances mapping(address => uint256) public _balances; mapping(address => mapping(address => uint256)) internal _allowances; //Fees mapping(address => bool) public isFeeExempt; uint256 public sellMul = 95; uint256 public buyMul = 95; uint256 public constant DIVISOR = 100; //Max bag requirements mapping(address => bool) public isTxLimitExempt; uint256 public maxBag = _totalSupply / 100; //Tax collection uint256 public taxBalance = 0; //Tax wallets address public teamWallet = 0xDa17D158bC42f9C29E626b836d9231bB173bab06; address public treasuryWallet = 0xF526A924c406D31d16a844FF04810b79E71804Ef; // Tax Split uint256 public teamShare = 40; uint256 public treasuryShare = 60; uint256 public constant SHAREDIVISOR = 100; //Known Wallets address private constant DEAD = 0x000000000000000000000000000000000000dEaD; //trading parameters uint256 public liquidity = 20 ether; uint256 public liqConst = liquidity * _totalSupply; uint256 public constant TRADE_OPEN_TIME = 1673544600; //volume trackers mapping(address => uint256) public indVol; mapping(uint256 => uint256) public tVol; uint256 public totalVolume = 0; //candlestick data uint256 public totalTx; mapping(uint256 => uint256) public txTimeStamp; struct candleStick { uint256 time; uint256 open; uint256 close; uint256 high; uint256 low; } mapping(uint256 => candleStick) public candleStickData; //Frontrun Guard mapping(address => uint256) private _lastBuyBlock; //Migration Wallet address public constant MIGRATION_WALLET = 0xc207cd3f61Da958AA6f4209C5f0a145C056B576f; // initialize supply constructor() { _balances[address(this)] = _totalSupply; isFeeExempt[msg.sender] = true; isFeeExempt[MIGRATION_WALLET] = true; isTxLimitExempt[MIGRATION_WALLET] = true; isTxLimitExempt[msg.sender] = true; isTxLimitExempt[address(this)] = true; isTxLimitExempt[DEAD] = true; isTxLimitExempt[address(0)] = true; emit Transfer(address(0), address(this), _totalSupply); } function totalSupply() external pure override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function approve(address spender, uint256 amount) public override returns (bool) { require(spender != address(0), "SRG20: approve to the zero address"); require( msg.sender != address(0), "SRG20: approve from the zero address" ); _allowances[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } function approveMax(address spender) external returns (bool) { return approve(spender, type(uint256).max); } function getCirculatingSupply() public view returns (uint256) { return _totalSupply - _balances[DEAD]; } function changeWalletLimit(uint256 newLimit) external onlyOwner { require( newLimit >= _totalSupply / 100, "New wallet limit should be at least 1% of total supply" ); maxBag = newLimit; emit MaxBagChanged(newLimit); } function changeIsFeeExempt(address holder, bool exempt) external onlyOwner { isFeeExempt[holder] = exempt; } function changeIsTxLimitExempt(address holder, bool exempt) external onlyOwner { isTxLimitExempt[holder] = exempt; } /** Transfer Function */ function transfer(address recipient, uint256 amount) external override returns (bool) { return _transferFrom(msg.sender, recipient, amount); } /** TransferFrom Function */ function transferFrom( address sender, address recipient, uint256 amount ) external override returns (bool) { address spender = msg.sender; //check allowance requirement _spendAllowance(sender, spender, amount); return _transferFrom(sender, recipient, amount); } /** Internal Transfer */ function _transferFrom( address sender, address recipient, uint256 amount ) internal returns (bool) { // make standard checks require( recipient != address(0) && recipient != address(this), "transfer to the zero address or CA" ); require(amount > 0, "Transfer amount must be greater than zero"); require( isTxLimitExempt[recipient] || _balances[recipient] + amount <= maxBag, "Max wallet exceeded!" ); // subtract from sender _balances[sender] = _balances[sender] - amount; // give amount to receiver _balances[recipient] = _balances[recipient] + amount; // Transfer Event emit Transfer(sender, recipient, amount); return true; } function _spendAllowance( address owner, address spender, uint256 amount ) internal virtual { uint256 currentAllowance = _allowances[owner][spender]; if (currentAllowance != type(uint256).max) { require( currentAllowance >= amount, "SRG20: insufficient allowance" ); unchecked { // decrease allowance _approve(owner, spender, currentAllowance - amount); } } } function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } /** Purchases SURGE Tokens and Deposits Them in Sender's Address*/ function _buy(uint256 minTokenOut, uint256 deadline) public payable nonReentrant returns (bool) { // deadline requirement require(deadline >= block.timestamp, "Deadline EXPIRED"); // Frontrun Guard _lastBuyBlock[msg.sender] = block.number; // liquidity is set require(liquidity > 0, "The token has no liquidity"); // check if trading is open or whether the buying wallet is the migration one require( block.timestamp >= TRADE_OPEN_TIME || msg.sender == MIGRATION_WALLET, "Trading is not Open" ); //remove the buy tax uint256 bnbAmount = isFeeExempt[msg.sender] ? msg.value : (msg.value * buyMul) / DIVISOR; // how much they should purchase? uint256 tokensToSend = _balances[address(this)] - (liqConst / (bnbAmount + liquidity)); //revert for max bag require( _balances[msg.sender] + tokensToSend <= maxBag || isTxLimitExempt[msg.sender], "Max wallet exceeded" ); // revert if under 1 require(tokensToSend > 1, "Must Buy more than 1 decimal of Surge"); // revert for slippage require(tokensToSend >= minTokenOut, "INSUFFICIENT OUTPUT AMOUNT"); // transfer the tokens from CA to the buyer buy(msg.sender, tokensToSend); //update available tax to extract and Liquidity uint256 taxAmount = msg.value - bnbAmount; taxBalance = taxBalance + taxAmount; liquidity = liquidity + bnbAmount; //update volume uint256 cTime = block.timestamp; uint256 dollarBuy = msg.value * getBNBPrice(); totalVolume += dollarBuy; indVol[msg.sender] += dollarBuy; tVol[cTime] += dollarBuy; //update candleStickData totalTx += 1; txTimeStamp[totalTx] = cTime; uint256 cPrice = calculatePrice() * getBNBPrice(); candleStickData[cTime].time = cTime; if (candleStickData[cTime].open == 0) { if (totalTx == 1) { candleStickData[cTime].open = ((liquidity - bnbAmount) / (_totalSupply)) * getBNBPrice(); } else { candleStickData[cTime].open = candleStickData[ txTimeStamp[totalTx - 1] ].close; } } candleStickData[cTime].close = cPrice; if ( candleStickData[cTime].high < cPrice || candleStickData[cTime].high == 0 ) { candleStickData[cTime].high = cPrice; } if ( candleStickData[cTime].low > cPrice || candleStickData[cTime].low == 0 ) { candleStickData[cTime].low = cPrice; } //emit transfer and buy events emit Transfer(address(this), msg.sender, tokensToSend); emit Bought( msg.sender, address(this), tokensToSend, msg.value, bnbAmount * getBNBPrice() ); return true; } /** Sends Tokens to the buyer Address */ function buy(address receiver, uint256 amount) internal { _balances[receiver] = _balances[receiver] + amount; _balances[address(this)] = _balances[address(this)] - amount; } /** Sells SURGE Tokens And Deposits the BNB into Seller's Address */ function _sell( uint256 tokenAmount, uint256 deadline, uint256 minBNBOut ) public nonReentrant returns (bool) { // deadline requirement require(deadline >= block.timestamp, "Deadline EXPIRED"); //Frontrun Guard require( _lastBuyBlock[msg.sender] != block.number, "Buying and selling in the same block is not allowed!" ); address seller = msg.sender; // make sure seller has this balance require( _balances[seller] >= tokenAmount, "cannot sell above token amount" ); // get how much beans are the tokens worth uint256 amountBNB = liquidity - (liqConst / (_balances[address(this)] + tokenAmount)); uint256 amountTax = (amountBNB * (DIVISOR - sellMul)) / DIVISOR; uint256 BNBToSend = amountBNB - amountTax; //slippage revert require(amountBNB >= minBNBOut, "INSUFFICIENT OUTPUT AMOUNT"); // send BNB to Seller (bool successful, ) = isFeeExempt[msg.sender] ? payable(seller).call{value: amountBNB}("") : payable(seller).call{value: BNBToSend}(""); require(successful, "BNB/ETH transfer failed"); // subtract full amount from sender _balances[seller] = _balances[seller] - tokenAmount; //add tax allowance to be withdrawn and remove from liq the amount of beans taken by the seller taxBalance = isFeeExempt[msg.sender] ? taxBalance : taxBalance + amountTax; liquidity = liquidity - amountBNB; // add tokens back into the contract _balances[address(this)] = _balances[address(this)] + tokenAmount; //update volume uint256 cTime = block.timestamp; uint256 dollarSell = amountBNB * getBNBPrice(); totalVolume += dollarSell; indVol[msg.sender] += dollarSell; tVol[cTime] += dollarSell; //update candleStickData totalTx += 1; txTimeStamp[totalTx] = cTime; uint256 cPrice = calculatePrice() * getBNBPrice(); candleStickData[cTime].time = cTime; if (candleStickData[cTime].open == 0) { candleStickData[cTime].open = candleStickData[ txTimeStamp[totalTx - 1] ].close; } candleStickData[cTime].close = cPrice; if ( candleStickData[cTime].high < cPrice || candleStickData[cTime].high == 0 ) { candleStickData[cTime].high = cPrice; } if ( candleStickData[cTime].low > cPrice || candleStickData[cTime].low == 0 ) { candleStickData[cTime].low = cPrice; } // emit transfer and sell events emit Transfer(seller, address(this), tokenAmount); if (isFeeExempt[msg.sender]) { emit Sold( address(this), msg.sender, tokenAmount, amountBNB, dollarSell ); } else { emit Sold( address(this), msg.sender, tokenAmount, BNBToSend, BNBToSend * getBNBPrice() ); } return true; } /** Amount of BNB in Contract */ function getLiquidity() public view returns (uint256) { return liquidity; } /** Returns the value of your holdings before the sell fee */ function getValueOfHoldings(address holder) public view returns (uint256) { return ((_balances[holder] * liquidity) / _balances[address(this)]) * getBNBPrice(); } function changeFees(uint256 newBuyMul, uint256 newSellMul) external onlyOwner { require( newBuyMul >= 90 && newSellMul >= 90 && newBuyMul <= 100 && newSellMul <= 100, "Fees are too high" ); buyMul = newBuyMul; sellMul = newSellMul; emit FeesMulChanged(newBuyMul, newSellMul); } function changeTaxDistribution( uint256 newteamShare, uint256 newtreasuryShare ) external onlyOwner { require( newteamShare + newtreasuryShare == SHAREDIVISOR, "Sum of shares must be 100" ); teamShare = newteamShare; treasuryShare = newtreasuryShare; } function changeFeeReceivers( address newTeamWallet, address newTreasuryWallet ) external onlyOwner { require( newTeamWallet != address(0) && newTreasuryWallet != address(0), "New wallets must not be the ZERO address" ); teamWallet = newTeamWallet; treasuryWallet = newTreasuryWallet; } function withdrawTaxBalance() external nonReentrant onlyOwner { (bool temp1, ) = payable(teamWallet).call{ value: (taxBalance * teamShare) / SHAREDIVISOR }(""); (bool temp2, ) = payable(treasuryWallet).call{ value: (taxBalance * treasuryShare) / SHAREDIVISOR }(""); assert(temp1 && temp2); taxBalance = 0; } function getTokenAmountOut(uint256 amountBNBIn) external view returns (uint256) { uint256 amountAfter = liqConst / (liquidity - amountBNBIn); uint256 amountBefore = liqConst / liquidity; return amountAfter - amountBefore; } function getBNBAmountOut(uint256 amountIn) public view returns (uint256) { uint256 beansBefore = liqConst / _balances[address(this)]; uint256 beansAfter = liqConst / (_balances[address(this)] + amountIn); return beansBefore - beansAfter; } function addLiquidity() external payable onlyOwner { uint256 tokensToAdd = (_balances[address(this)] * msg.value) / liquidity; require(_balances[msg.sender] >= tokensToAdd, "Not enough tokens!"); uint256 oldLiq = liquidity; liquidity = liquidity + msg.value; _balances[address(this)] += tokensToAdd; _balances[msg.sender] -= tokensToAdd; liqConst = (liqConst * liquidity) / oldLiq; emit Transfer(msg.sender, address(this), tokensToAdd); } function getMarketCap() external view returns (uint256) { return (getCirculatingSupply() * calculatePrice() * getBNBPrice()); } address private stablePairAddress = 0xB4e16d0168e52d35CaCD2c6185b44281Ec28C9Dc; address private stableAddress = 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48; function changeStablePair(address newStablePair, address newStableAddress) external onlyOwner { require( newStablePair != address(0) && newStableAddress != address(0), "New addresses must not be the ZERO address" ); stablePairAddress = newStablePair; stableAddress = newStableAddress; emit StablePairChanged(newStablePair, newStableAddress); } // calculate price based on pair reserves function getBNBPrice() public view returns (uint256) { IPancakePair pair = IPancakePair(stablePairAddress); IERC20 token1 = pair.token0() == stableAddress ? IERC20(pair.token1()) : IERC20(pair.token0()); (uint256 Res0, uint256 Res1, ) = pair.getReserves(); if (pair.token0() != stableAddress) { (Res1, Res0, ) = pair.getReserves(); } uint256 res0 = Res0 * 10**token1.decimals(); return (res0 / Res1); // return amount of token0 needed to buy token1 } // Returns the Current Price of the Token in beans function calculatePrice() public view returns (uint256) { require(liquidity > 0, "No Liquidity"); return liquidity / _balances[address(this)]; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"beans","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"dollarBuy","type":"uint256"}],"name":"Bought","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newBuyMul","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newSellMul","type":"uint256"}],"name":"FeesMulChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newMaxBag","type":"uint256"}],"name":"MaxBagChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"beans","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"dollarSell","type":"uint256"}],"name":"Sold","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newStablePair","type":"address"},{"indexed":false,"internalType":"address","name":"newStableToken","type":"address"}],"name":"StablePairChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DIVISOR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MIGRATION_WALLET","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SHAREDIVISOR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TRADE_OPEN_TIME","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_balances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"minTokenOut","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"_buy","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenAmount","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint256","name":"minBNBOut","type":"uint256"}],"name":"_sell","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"addLiquidity","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMul","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"calculatePrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"candleStickData","outputs":[{"internalType":"uint256","name":"time","type":"uint256"},{"internalType":"uint256","name":"open","type":"uint256"},{"internalType":"uint256","name":"close","type":"uint256"},{"internalType":"uint256","name":"high","type":"uint256"},{"internalType":"uint256","name":"low","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newTeamWallet","type":"address"},{"internalType":"address","name":"newTreasuryWallet","type":"address"}],"name":"changeFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyMul","type":"uint256"},{"internalType":"uint256","name":"newSellMul","type":"uint256"}],"name":"changeFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"changeIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"changeIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newStablePair","type":"address"},{"internalType":"address","name":"newStableAddress","type":"address"}],"name":"changeStablePair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newteamShare","type":"uint256"},{"internalType":"uint256","name":"newtreasuryShare","type":"uint256"}],"name":"changeTaxDistribution","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"changeWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"}],"name":"getBNBAmountOut","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBNBPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMarketCap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountBNBIn","type":"uint256"}],"name":"getTokenAmountOut","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"}],"name":"getValueOfHoldings","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"indVol","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liqConst","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBag","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellMul","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"tVol","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"teamShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"teamWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalVolume","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"treasuryShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"treasuryWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"txTimeStamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawTaxBalance","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
6080604052605f600581905560065560646200001e6009600a620003f1565b6200002e906305f5e10062000409565b6200003a919062000423565b60085560006009908155600a80546001600160a01b031990811673da17d158bc42f9c29e626b836d9231bb173bab06178255600b805490911673f526a924c406d31d16a844ff04810b79e71804ef1790556028600c55603c600d556801158e460913d00000600e55620000ae9190620003f1565b620000be906305f5e10062000409565b600e54620000cd919062000409565b600f556000601255601780546001600160a01b031990811673b4e16d0168e52d35cacd2c6185b44281ec28c9dc179091556018805490911673a0b86991c6218b36c1d19d4a2e9eb0ce3606eb481790553480156200012a57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600180556200017e6009600a620003f1565b6200018e906305f5e10062000409565b30600081815260026020908152604080832094909455338252600481528382208054600160ff1991821681179092557fa117656c6a259eb6b5d8d76b4581229baabc32fdc432407a7740bae4c3df9f52805482168317905560079092527fea2c12fe97acd9868ccd4ce083e17f3749fee6bf474bfed5f51316445f6b10da8054831682179055848320805483168217905583835293822080548216851790557fb0c2646e02af70b79e3fe9277b98373379f54150e4e26b2b5650139f7a75a65d80548216851790558180527f6d5257204ebe7d88fd91ae87941cb2dd9d8062b64ae5a2bd2d28ec40b9fbf6df8054909116909317909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002b56009600a620003f1565b620002c5906305f5e10062000409565b60405190815260200160405180910390a362000446565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000333578160001904821115620003175762000317620002dc565b808516156200032557918102915b93841c9390800290620002f7565b509250929050565b6000826200034c57506001620003eb565b816200035b57506000620003eb565b81600181146200037457600281146200037f576200039f565b6001915050620003eb565b60ff841115620003935762000393620002dc565b50506001821b620003eb565b5060208310610133831016604e8410600b8410161715620003c4575081810a620003eb565b620003d08383620002f2565b8060001904821115620003e757620003e7620002dc565b0290505b92915050565b60006200040260ff8416836200033b565b9392505050565b8082028115828204841417620003eb57620003eb620002dc565b6000826200044157634e487b7160e01b600052601260045260246000fd5b500490565b612f6c80620004566000396000f3fe60806040526004361061036b5760003560e01c80637220cf39116101c6578063aa98e163116100f7578063e8f620b111610095578063f2fde38b1161006f578063f2fde38b14610a08578063f4034e4b14610a28578063f7a62fe914610a48578063fabe628314610a7557600080fd5b8063e8f620b1146109c7578063ea6ef2fe146109dd578063f2220c9e146109f357600080fd5b8063d348b409116100d1578063d348b4091461094e578063dd62ed3e14610963578063e0cfcc95146109a9578063e8078d94146109bf57600080fd5b8063aa98e163146108f0578063b37659a414610906578063b4492d0c1461092657600080fd5b806395d89b4111610164578063a0e571a21161013e578063a0e571a214610828578063a3a2e89e1461083e578063a8fb66b41461085e578063a9059cbb146108d057600080fd5b806395d89b41146107b95780639cbd09ac146107e55780639d7550261461081257600080fd5b80638b42507f116101a05780638b42507f146107435780638da5cb5b146107735780638f0d3b8b1461079157806390825c28146107a457600080fd5b80637220cf39146106f75780637796ff371461070d5780637db1342c1461072357600080fd5b8063313ce567116102a0578063599270441161023e5780636ebcf607116102185780636ebcf6071461065f57806370a082311461068c57806371073b38146106c2578063715018a6146106e257600080fd5b806359927044146106295780635f81a57c1461064957806362ff2e9a1461054a57600080fd5b80633f4218e01161027a5780633f4218e0146105745780634626402b146105a457806349ce234c146105dc578063571ac8b01461060957600080fd5b8063313ce5671461052e5780633410fe6e1461054a5780633eaaf86b1461055f57600080fd5b80631f02a29c1161030d57806321ecff5b116102e757806321ecff5b146104c157806323b872dd146104e157806325b15556146105015780632b112e491461051957600080fd5b80631f02a29c146104615780631f1a73d5146104815780631f2c80f1146104a157600080fd5b806318160ddd1161034957806318160ddd146103ff5780631a686502146104145780631ab6ab241461042a5780631d6bdb5b1461044c57600080fd5b806306fdde03146103705780630910a510146103b0578063095ea7b3146103cf575b600080fd5b34801561037c57600080fd5b50604080518082019091526005815264535552474560d81b60208201525b6040516103a79190612abd565b60405180910390f35b3480156103bc57600080fd5b50600e545b6040519081526020016103a7565b3480156103db57600080fd5b506103ef6103ea366004612b23565b610a95565b60405190151581526020016103a7565b34801561040b57600080fd5b506103c1610bbb565b34801561042057600080fd5b506103c1600e5481565b34801561043657600080fd5b5061044a610445366004612b4f565b610bdc565b005b34801561045857600080fd5b5061044a610cf4565b34801561046d57600080fd5b506103c161047c366004612b88565b610e4e565b34801561048d57600080fd5b506103c161049c366004612ba5565b610e9b565b3480156104ad57600080fd5b5061044a6104bc366004612b4f565b610ef9565b3480156104cd57600080fd5b5061044a6104dc366004612bbe565b610fce565b3480156104ed57600080fd5b506103ef6104fc366004612be0565b6110a4565b34801561050d57600080fd5b506103c16363c0439881565b34801561052557600080fd5b506103c16110c6565b34801561053a57600080fd5b50604051600981526020016103a7565b34801561055657600080fd5b506103c1606481565b34801561056b57600080fd5b506103c1611119565b34801561058057600080fd5b506103ef61058f366004612b88565b60046020526000908152604090205460ff1681565b3480156105b057600080fd5b50600b546105c4906001600160a01b031681565b6040516001600160a01b0390911681526020016103a7565b3480156105e857600080fd5b506103c16105f7366004612ba5565b60116020526000908152604090205481565b34801561061557600080fd5b506103ef610624366004612b88565b611136565b34801561063557600080fd5b50600a546105c4906001600160a01b031681565b34801561065557600080fd5b506103c160125481565b34801561066b57600080fd5b506103c161067a366004612b88565b60026020526000908152604090205481565b34801561069857600080fd5b506103c16106a7366004612b88565b6001600160a01b031660009081526002602052604090205490565b3480156106ce57600080fd5b506103c16106dd366004612ba5565b611144565b3480156106ee57600080fd5b5061044a611176565b34801561070357600080fd5b506103c160135481565b34801561071957600080fd5b506103c1600d5481565b34801561072f57600080fd5b5061044a61073e366004612ba5565b6111ea565b34801561074f57600080fd5b506103ef61075e366004612b88565b60076020526000908152604090205460ff1681565b34801561077f57600080fd5b506000546001600160a01b03166105c4565b6103ef61079f366004612bbe565b6112e3565b3480156107b057600080fd5b506103c16118a6565b3480156107c557600080fd5b5060408051808201909152600381526253524760e81b602082015261039a565b3480156107f157600080fd5b506103c1610800366004612b88565b60106020526000908152604090205481565b34801561081e57600080fd5b506103c160055481565b34801561083457600080fd5b506103c160065481565b34801561084a57600080fd5b5061044a610859366004612c21565b6118d4565b34801561086a57600080fd5b506108a8610879366004612ba5565b601560205260009081526040902080546001820154600283015460038401546004909401549293919290919085565b604080519586526020860194909452928401919091526060830152608082015260a0016103a7565b3480156108dc57600080fd5b506103ef6108eb366004612b23565b611929565b3480156108fc57600080fd5b506103c160095481565b34801561091257600080fd5b506103ef610921366004612c54565b61193d565b34801561093257600080fd5b506105c473c207cd3f61da958aa6f4209c5f0a145c056b576f81565b34801561095a57600080fd5b506103c1611fb7565b34801561096f57600080fd5b506103c161097e366004612b4f565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b3480156109b557600080fd5b506103c160085481565b61044a612016565b3480156109d357600080fd5b506103c1600f5481565b3480156109e957600080fd5b506103c1600c5481565b3480156109ff57600080fd5b506103c1612161565b348015610a1457600080fd5b5061044a610a23366004612b88565b6124c2565b348015610a3457600080fd5b5061044a610a43366004612bbe565b6125ac565b348015610a5457600080fd5b506103c1610a63366004612ba5565b60146020526000908152604090205481565b348015610a8157600080fd5b5061044a610a90366004612c21565b61263a565b60006001600160a01b038316610afd5760405162461bcd60e51b815260206004820152602260248201527f53524732303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084015b60405180910390fd5b33610b565760405162461bcd60e51b8152602060048201526024808201527f53524732303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610af4565b3360008181526003602090815260408083206001600160a01b03881680855290835292819020869055518581529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35060015b92915050565b6000610bc96009600a612d7a565b610bd7906305f5e100612d89565b905090565b6000546001600160a01b03163314610c065760405162461bcd60e51b8152600401610af490612da0565b6001600160a01b03821615801590610c2657506001600160a01b03811615155b610c855760405162461bcd60e51b815260206004820152602a60248201527f4e657720616464726573736573206d757374206e6f7420626520746865205a45604482015269524f206164647265737360b01b6064820152608401610af4565b601780546001600160a01b038481166001600160a01b03199283168117909355601880549185169190921681179091556040805192835260208301919091527f9531844c54a073e677302121f844ce762e5d0d82415924346672381a39f8532c91015b60405180910390a15050565b600260015403610d165760405162461bcd60e51b8152600401610af490612dd5565b60026001556000546001600160a01b03163314610d455760405162461bcd60e51b8152600401610af490612da0565b600a54600c546009546000926001600160a01b031691606491610d689190612d89565b610d729190612e0c565b604051600081818185875af1925050503d8060008114610dae576040519150601f19603f3d011682016040523d82523d6000602084013e610db3565b606091505b5050600b54600d546009549293506000926001600160a01b0390921691606491610ddc91612d89565b610de69190612e0c565b604051600081818185875af1925050503d8060008114610e22576040519150601f19603f3d011682016040523d82523d6000602084013e610e27565b606091505b50509050818015610e355750805b610e4157610e41612e2e565b5050600060095560018055565b6000610e58612161565b3060009081526002602052604080822054600e546001600160a01b03871684529190922054610e879190612d89565b610e919190612e0c565b610bb59190612d89565b30600090815260026020526040812054600f548291610eb991612e0c565b3060009081526002602052604081205491925090610ed8908590612e44565b600f54610ee59190612e0c565b9050610ef18183612e57565b949350505050565b6000546001600160a01b03163314610f235760405162461bcd60e51b8152600401610af490612da0565b6001600160a01b03821615801590610f4357506001600160a01b03811615155b610fa05760405162461bcd60e51b815260206004820152602860248201527f4e65772077616c6c657473206d757374206e6f7420626520746865205a45524f604482015267206164647265737360c01b6064820152608401610af4565b600a80546001600160a01b039384166001600160a01b031991821617909155600b8054929093169116179055565b6000546001600160a01b03163314610ff85760405162461bcd60e51b8152600401610af490612da0565b605a821015801561100a5750605a8110155b8015611017575060648211155b8015611024575060648111155b6110645760405162461bcd60e51b815260206004820152601160248201527008ccacae640c2e4ca40e8dede40d0d2ced607b1b6044820152606401610af4565b6006829055600581905560408051838152602081018390527fc19ebd395193e8ddaaeda048fb5cb09d4e2dbebcce719174166029a4093878569101610ce8565b6000336110b285828561268f565b6110bd858585612721565b95945050505050565b61dead600090815260026020527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc546111016009600a612d7a565b61110f906305f5e100612d89565b610bd79190612e57565b6111256009600a612d7a565b611133906305f5e100612d89565b81565b6000610bb582600019610a95565b60008082600e546111559190612e57565b600f546111629190612e0c565b90506000600e54600f54610ee59190612e0c565b6000546001600160a01b031633146111a05760405162461bcd60e51b8152600401610af490612da0565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146112145760405162461bcd60e51b8152600401610af490612da0565b60646112226009600a612d7a565b611230906305f5e100612d89565b61123a9190612e0c565b8110156112a85760405162461bcd60e51b815260206004820152603660248201527f4e65772077616c6c6574206c696d69742073686f756c64206265206174206c65604482015275617374203125206f6620746f74616c20737570706c7960501b6064820152608401610af4565b60088190556040518181527fb579b5ff4decd3791f679ec8d72f16128df08aa3f346b425480a0135d2e8bf759060200160405180910390a150565b60006002600154036113075760405162461bcd60e51b8152600401610af490612dd5565b60026001554282101561134f5760405162461bcd60e51b815260206004820152601060248201526f111958591b1a5b99481156141254915160821b6044820152606401610af4565b336000908152601660205260409020439055600e546113b05760405162461bcd60e51b815260206004820152601a60248201527f54686520746f6b656e20686173206e6f206c69717569646974790000000000006044820152606401610af4565b6363c04398421015806113d657503373c207cd3f61da958aa6f4209c5f0a145c056b576f145b6114185760405162461bcd60e51b81526020600482015260136024820152722a3930b234b7339034b9903737ba1027b832b760691b6044820152606401610af4565b3360009081526004602052604081205460ff1661144e5760646006543461143f9190612d89565b6114499190612e0c565b611450565b345b90506000600e54826114629190612e44565b600f5461146f9190612e0c565b306000908152600260205260409020546114899190612e57565b60085433600090815260026020526040902054919250906114ab908390612e44565b1115806114c757503360009081526007602052604090205460ff165b6115095760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610af4565b600181116115675760405162461bcd60e51b815260206004820152602560248201527f4d75737420427579206d6f7265207468616e203120646563696d616c206f6620604482015264537572676560d81b6064820152608401610af4565b848110156115b75760405162461bcd60e51b815260206004820152601a60248201527f494e53554646494349454e54204f555450555420414d4f554e540000000000006044820152606401610af4565b6115c13382612934565b60006115cd8334612e57565b9050806009546115dd9190612e44565b600955600e546115ee908490612e44565b600e554260006115fc612161565b6116069034612d89565b9050806012600082825461161a9190612e44565b9091555050336000908152601060205260408120805483929061163e908490612e44565b909155505060008281526011602052604081208054839290611661908490612e44565b9250508190555060016013600082825461167b9190612e44565b9091555050601354600090815260146020526040812083905561169c612161565b6116a4611fb7565b6116ae9190612d89565b6000848152601560205260408120858155600101549192500361178357601354600103611730576116dd612161565b6116e96009600a612d7a565b6116f7906305f5e100612d89565b87600e546117059190612e57565b61170f9190612e0c565b6117199190612d89565b600084815260156020526040902060010155611783565b601560006014600060016013546117479190612e57565b81526020019081526020016000205481526020019081526020016000206002015460156000858152602001908152602001600020600101819055505b600083815260156020526040902060028101829055600301548111806117b85750600083815260156020526040902060030154155b156117d25760008381526015602052604090206003018190555b6000838152601560205260409020600401548110806118005750600083815260156020526040902060040154155b1561181a5760008381526015602052604090206004018190555b60405185815233903090600080516020612f178339815191529060200160405180910390a330337f7ce543d1780f3bdc3dac42da06c95da802653cd1b212b8d74ec3e3c33ad7095c873461186c612161565b611876908c612d89565b6040805193845260208401929092529082015260600160405180910390a350506001808055979650505050505050565b60006118b0612161565b6118b8611fb7565b6118c06110c6565b6118ca9190612d89565b610bd79190612d89565b6000546001600160a01b031633146118fe5760405162461bcd60e51b8152600401610af490612da0565b6001600160a01b03919091166000908152600460205260409020805460ff1916911515919091179055565b6000611936338484612721565b9392505050565b60006002600154036119615760405162461bcd60e51b8152600401610af490612dd5565b6002600155428310156119a95760405162461bcd60e51b815260206004820152601060248201526f111958591b1a5b99481156141254915160821b6044820152606401610af4565b33600090815260166020526040902054439003611a255760405162461bcd60e51b815260206004820152603460248201527f427579696e6720616e642073656c6c696e6720696e207468652073616d6520626044820152736c6f636b206973206e6f7420616c6c6f7765642160601b6064820152608401610af4565b33600081815260026020526040902054851115611a845760405162461bcd60e51b815260206004820152601e60248201527f63616e6e6f742073656c6c2061626f766520746f6b656e20616d6f756e7400006044820152606401610af4565b30600090815260026020526040812054611a9f908790612e44565b600f54611aac9190612e0c565b600e54611ab99190612e57565b9050600060646005546064611ace9190612e57565b611ad89084612d89565b611ae29190612e0c565b90506000611af08284612e57565b905085831015611b425760405162461bcd60e51b815260206004820152601a60248201527f494e53554646494349454e54204f555450555420414d4f554e540000000000006044820152606401610af4565b3360009081526004602052604081205460ff16611bad576040516001600160a01b038616908390600081818185875af1925050503d8060008114611ba2576040519150601f19603f3d011682016040523d82523d6000602084013e611ba7565b606091505b50611bfd565b6040516001600160a01b038616908590600081818185875af1925050503d8060008114611bf6576040519150601f19603f3d011682016040523d82523d6000602084013e611bfb565b606091505b505b50905080611c4d5760405162461bcd60e51b815260206004820152601760248201527f424e422f455448207472616e73666572206661696c65640000000000000000006044820152606401610af4565b6001600160a01b038516600090815260026020526040902054611c71908a90612e57565b6001600160a01b03861660009081526002602090815260408083209390935533825260049052205460ff16611cb35782600954611cae9190612e44565b611cb7565b6009545b600955600e54611cc8908590612e57565b600e5530600090815260026020526040902054611ce6908a90612e44565b306000908152600260205260408120919091554290611d03612161565b611d0d9087612d89565b90508060126000828254611d219190612e44565b90915550503360009081526010602052604081208054839290611d45908490612e44565b909155505060008281526011602052604081208054839290611d68908490612e44565b92505081905550600160136000828254611d829190612e44565b90915550506013546000908152601460205260408120839055611da3612161565b611dab611fb7565b611db59190612d89565b60008481526015602052604081208581556001015491925003611e255760156000601460006001601354611de99190612e57565b81526020019081526020016000205481526020019081526020016000206002015460156000858152602001908152602001600020600101819055505b60008381526015602052604090206002810182905560030154811180611e5a5750600083815260156020526040902060030154155b15611e745760008381526015602052604090206003018190555b600083815260156020526040902060040154811080611ea25750600083815260156020526040902060040154155b15611ebc5760008381526015602052604090206004018190555b6040518c815230906001600160a01b038a1690600080516020612f178339815191529060200160405180910390a33360009081526004602052604090205460ff1615611f4c57604080518d815260208101899052908101839052339030907f9be8a5ca22b7e6e81f04b5879f0248227bb770114291bd47dfaee4c3a82ad60e9060600160405180910390a3611fa2565b33307f9be8a5ca22b7e6e81f04b5879f0248227bb770114291bd47dfaee4c3a82ad60e8e88611f79612161565b611f83908b612d89565b6040805193845260208401929092529082015260600160405180910390a35b505060018080559a9950505050505050505050565b600080600e5411611ff95760405162461bcd60e51b815260206004820152600c60248201526b4e6f204c697175696469747960a01b6044820152606401610af4565b30600090815260026020526040902054600e54610bd79190612e0c565b6000546001600160a01b031633146120405760405162461bcd60e51b8152600401610af490612da0565b600e5430600090815260026020526040812054909190612061903490612d89565b61206b9190612e0c565b336000908152600260205260409020549091508111156120c25760405162461bcd60e51b81526020600482015260126024820152714e6f7420656e6f75676820746f6b656e732160701b6044820152606401610af4565b600e546120cf3482612e44565b600e5530600090815260026020526040812080548492906120f1908490612e44565b90915550503360009081526002602052604081208054849290612115908490612e57565b9091555050600e54600f54829161212b91612d89565b6121359190612e0c565b600f5560405182815230903390600080516020612f178339815191529060200160405180910390a35050565b60175460185460408051630dfe168160e01b815290516000936001600160a01b039081169385939116918491630dfe16819160048083019260209291908290030181865afa1580156121b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121db9190612e6a565b6001600160a01b03161461225057816001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015612227573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061224b9190612e6a565b6122b2565b816001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa15801561228e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122b29190612e6a565b9050600080836001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156122f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123199190612ea3565b506001600160701b031691506001600160701b03169150601860009054906101000a90046001600160a01b03166001600160a01b0316846001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa15801561238d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123b19190612e6a565b6001600160a01b03161461243357836001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156123fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124219190612ea3565b506001600160701b0390811693501690505b6000836001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015612473573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124979190612ef3565b6124a290600a612d7a565b6124ac9084612d89565b90506124b88282612e0c565b9550505050505090565b6000546001600160a01b031633146124ec5760405162461bcd60e51b8152600401610af490612da0565b6001600160a01b0381166125515760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610af4565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146125d65760405162461bcd60e51b8152600401610af490612da0565b60646125e28284612e44565b1461262f5760405162461bcd60e51b815260206004820152601960248201527f53756d206f6620736861726573206d75737420626520313030000000000000006044820152606401610af4565b600c91909155600d55565b6000546001600160a01b031633146126645760405162461bcd60e51b8152600401610af490612da0565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6001600160a01b03808416600090815260036020908152604080832093861683529290522054600019811461271b578181101561270e5760405162461bcd60e51b815260206004820152601d60248201527f53524732303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610af4565b61271b8484848403612999565b50505050565b60006001600160a01b0383161580159061274457506001600160a01b0383163014155b61279b5760405162461bcd60e51b815260206004820152602260248201527f7472616e7366657220746f20746865207a65726f2061646472657373206f7220604482015261434160f01b6064820152608401610af4565b600082116127fd5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610af4565b6001600160a01b03831660009081526007602052604090205460ff168061284957506008546001600160a01b038416600090815260026020526040902054612846908490612e44565b11155b61288c5760405162461bcd60e51b81526020600482015260146024820152734d61782077616c6c65742065786365656465642160601b6044820152606401610af4565b6001600160a01b0384166000908152600260205260409020546128b0908390612e57565b6001600160a01b0380861660009081526002602052604080822093909355908516815220546128e0908390612e44565b6001600160a01b038085166000818152600260205260409081902093909355915190861690600080516020612f17833981519152906129229086815260200190565b60405180910390a35060019392505050565b6001600160a01b038216600090815260026020526040902054612958908290612e44565b6001600160a01b038316600090815260026020526040808220929092553081522054612985908290612e57565b306000908152600260205260409020555050565b6001600160a01b0383166129fb5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610af4565b6001600160a01b038216612a5c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610af4565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600060208083528351808285015260005b81811015612aea57858101830151858201604001528201612ace565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114612b2057600080fd5b50565b60008060408385031215612b3657600080fd5b8235612b4181612b0b565b946020939093013593505050565b60008060408385031215612b6257600080fd5b8235612b6d81612b0b565b91506020830135612b7d81612b0b565b809150509250929050565b600060208284031215612b9a57600080fd5b813561193681612b0b565b600060208284031215612bb757600080fd5b5035919050565b60008060408385031215612bd157600080fd5b50508035926020909101359150565b600080600060608486031215612bf557600080fd5b8335612c0081612b0b565b92506020840135612c1081612b0b565b929592945050506040919091013590565b60008060408385031215612c3457600080fd5b8235612c3f81612b0b565b915060208301358015158114612b7d57600080fd5b600080600060608486031215612c6957600080fd5b505081359360208301359350604090920135919050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115612cd1578160001904821115612cb757612cb7612c80565b80851615612cc457918102915b93841c9390800290612c9b565b509250929050565b600082612ce857506001610bb5565b81612cf557506000610bb5565b8160018114612d0b5760028114612d1557612d31565b6001915050610bb5565b60ff841115612d2657612d26612c80565b50506001821b610bb5565b5060208310610133831016604e8410600b8410161715612d54575081810a610bb5565b612d5e8383612c96565b8060001904821115612d7257612d72612c80565b029392505050565b600061193660ff841683612cd9565b8082028115828204841417610bb557610bb5612c80565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b600082612e2957634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052600160045260246000fd5b80820180821115610bb557610bb5612c80565b81810381811115610bb557610bb5612c80565b600060208284031215612e7c57600080fd5b815161193681612b0b565b80516001600160701b0381168114612e9e57600080fd5b919050565b600080600060608486031215612eb857600080fd5b612ec184612e87565b9250612ecf60208501612e87565b9150604084015163ffffffff81168114612ee857600080fd5b809150509250925092565b600060208284031215612f0557600080fd5b815160ff8116811461193657600080fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220373f1a86638fcd8d8fbc36215f3934b9e7e8c411171c1474ef05aeb37762270464736f6c63430008110033
Deployed Bytecode
0x60806040526004361061036b5760003560e01c80637220cf39116101c6578063aa98e163116100f7578063e8f620b111610095578063f2fde38b1161006f578063f2fde38b14610a08578063f4034e4b14610a28578063f7a62fe914610a48578063fabe628314610a7557600080fd5b8063e8f620b1146109c7578063ea6ef2fe146109dd578063f2220c9e146109f357600080fd5b8063d348b409116100d1578063d348b4091461094e578063dd62ed3e14610963578063e0cfcc95146109a9578063e8078d94146109bf57600080fd5b8063aa98e163146108f0578063b37659a414610906578063b4492d0c1461092657600080fd5b806395d89b4111610164578063a0e571a21161013e578063a0e571a214610828578063a3a2e89e1461083e578063a8fb66b41461085e578063a9059cbb146108d057600080fd5b806395d89b41146107b95780639cbd09ac146107e55780639d7550261461081257600080fd5b80638b42507f116101a05780638b42507f146107435780638da5cb5b146107735780638f0d3b8b1461079157806390825c28146107a457600080fd5b80637220cf39146106f75780637796ff371461070d5780637db1342c1461072357600080fd5b8063313ce567116102a0578063599270441161023e5780636ebcf607116102185780636ebcf6071461065f57806370a082311461068c57806371073b38146106c2578063715018a6146106e257600080fd5b806359927044146106295780635f81a57c1461064957806362ff2e9a1461054a57600080fd5b80633f4218e01161027a5780633f4218e0146105745780634626402b146105a457806349ce234c146105dc578063571ac8b01461060957600080fd5b8063313ce5671461052e5780633410fe6e1461054a5780633eaaf86b1461055f57600080fd5b80631f02a29c1161030d57806321ecff5b116102e757806321ecff5b146104c157806323b872dd146104e157806325b15556146105015780632b112e491461051957600080fd5b80631f02a29c146104615780631f1a73d5146104815780631f2c80f1146104a157600080fd5b806318160ddd1161034957806318160ddd146103ff5780631a686502146104145780631ab6ab241461042a5780631d6bdb5b1461044c57600080fd5b806306fdde03146103705780630910a510146103b0578063095ea7b3146103cf575b600080fd5b34801561037c57600080fd5b50604080518082019091526005815264535552474560d81b60208201525b6040516103a79190612abd565b60405180910390f35b3480156103bc57600080fd5b50600e545b6040519081526020016103a7565b3480156103db57600080fd5b506103ef6103ea366004612b23565b610a95565b60405190151581526020016103a7565b34801561040b57600080fd5b506103c1610bbb565b34801561042057600080fd5b506103c1600e5481565b34801561043657600080fd5b5061044a610445366004612b4f565b610bdc565b005b34801561045857600080fd5b5061044a610cf4565b34801561046d57600080fd5b506103c161047c366004612b88565b610e4e565b34801561048d57600080fd5b506103c161049c366004612ba5565b610e9b565b3480156104ad57600080fd5b5061044a6104bc366004612b4f565b610ef9565b3480156104cd57600080fd5b5061044a6104dc366004612bbe565b610fce565b3480156104ed57600080fd5b506103ef6104fc366004612be0565b6110a4565b34801561050d57600080fd5b506103c16363c0439881565b34801561052557600080fd5b506103c16110c6565b34801561053a57600080fd5b50604051600981526020016103a7565b34801561055657600080fd5b506103c1606481565b34801561056b57600080fd5b506103c1611119565b34801561058057600080fd5b506103ef61058f366004612b88565b60046020526000908152604090205460ff1681565b3480156105b057600080fd5b50600b546105c4906001600160a01b031681565b6040516001600160a01b0390911681526020016103a7565b3480156105e857600080fd5b506103c16105f7366004612ba5565b60116020526000908152604090205481565b34801561061557600080fd5b506103ef610624366004612b88565b611136565b34801561063557600080fd5b50600a546105c4906001600160a01b031681565b34801561065557600080fd5b506103c160125481565b34801561066b57600080fd5b506103c161067a366004612b88565b60026020526000908152604090205481565b34801561069857600080fd5b506103c16106a7366004612b88565b6001600160a01b031660009081526002602052604090205490565b3480156106ce57600080fd5b506103c16106dd366004612ba5565b611144565b3480156106ee57600080fd5b5061044a611176565b34801561070357600080fd5b506103c160135481565b34801561071957600080fd5b506103c1600d5481565b34801561072f57600080fd5b5061044a61073e366004612ba5565b6111ea565b34801561074f57600080fd5b506103ef61075e366004612b88565b60076020526000908152604090205460ff1681565b34801561077f57600080fd5b506000546001600160a01b03166105c4565b6103ef61079f366004612bbe565b6112e3565b3480156107b057600080fd5b506103c16118a6565b3480156107c557600080fd5b5060408051808201909152600381526253524760e81b602082015261039a565b3480156107f157600080fd5b506103c1610800366004612b88565b60106020526000908152604090205481565b34801561081e57600080fd5b506103c160055481565b34801561083457600080fd5b506103c160065481565b34801561084a57600080fd5b5061044a610859366004612c21565b6118d4565b34801561086a57600080fd5b506108a8610879366004612ba5565b601560205260009081526040902080546001820154600283015460038401546004909401549293919290919085565b604080519586526020860194909452928401919091526060830152608082015260a0016103a7565b3480156108dc57600080fd5b506103ef6108eb366004612b23565b611929565b3480156108fc57600080fd5b506103c160095481565b34801561091257600080fd5b506103ef610921366004612c54565b61193d565b34801561093257600080fd5b506105c473c207cd3f61da958aa6f4209c5f0a145c056b576f81565b34801561095a57600080fd5b506103c1611fb7565b34801561096f57600080fd5b506103c161097e366004612b4f565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b3480156109b557600080fd5b506103c160085481565b61044a612016565b3480156109d357600080fd5b506103c1600f5481565b3480156109e957600080fd5b506103c1600c5481565b3480156109ff57600080fd5b506103c1612161565b348015610a1457600080fd5b5061044a610a23366004612b88565b6124c2565b348015610a3457600080fd5b5061044a610a43366004612bbe565b6125ac565b348015610a5457600080fd5b506103c1610a63366004612ba5565b60146020526000908152604090205481565b348015610a8157600080fd5b5061044a610a90366004612c21565b61263a565b60006001600160a01b038316610afd5760405162461bcd60e51b815260206004820152602260248201527f53524732303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084015b60405180910390fd5b33610b565760405162461bcd60e51b8152602060048201526024808201527f53524732303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610af4565b3360008181526003602090815260408083206001600160a01b03881680855290835292819020869055518581529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35060015b92915050565b6000610bc96009600a612d7a565b610bd7906305f5e100612d89565b905090565b6000546001600160a01b03163314610c065760405162461bcd60e51b8152600401610af490612da0565b6001600160a01b03821615801590610c2657506001600160a01b03811615155b610c855760405162461bcd60e51b815260206004820152602a60248201527f4e657720616464726573736573206d757374206e6f7420626520746865205a45604482015269524f206164647265737360b01b6064820152608401610af4565b601780546001600160a01b038481166001600160a01b03199283168117909355601880549185169190921681179091556040805192835260208301919091527f9531844c54a073e677302121f844ce762e5d0d82415924346672381a39f8532c91015b60405180910390a15050565b600260015403610d165760405162461bcd60e51b8152600401610af490612dd5565b60026001556000546001600160a01b03163314610d455760405162461bcd60e51b8152600401610af490612da0565b600a54600c546009546000926001600160a01b031691606491610d689190612d89565b610d729190612e0c565b604051600081818185875af1925050503d8060008114610dae576040519150601f19603f3d011682016040523d82523d6000602084013e610db3565b606091505b5050600b54600d546009549293506000926001600160a01b0390921691606491610ddc91612d89565b610de69190612e0c565b604051600081818185875af1925050503d8060008114610e22576040519150601f19603f3d011682016040523d82523d6000602084013e610e27565b606091505b50509050818015610e355750805b610e4157610e41612e2e565b5050600060095560018055565b6000610e58612161565b3060009081526002602052604080822054600e546001600160a01b03871684529190922054610e879190612d89565b610e919190612e0c565b610bb59190612d89565b30600090815260026020526040812054600f548291610eb991612e0c565b3060009081526002602052604081205491925090610ed8908590612e44565b600f54610ee59190612e0c565b9050610ef18183612e57565b949350505050565b6000546001600160a01b03163314610f235760405162461bcd60e51b8152600401610af490612da0565b6001600160a01b03821615801590610f4357506001600160a01b03811615155b610fa05760405162461bcd60e51b815260206004820152602860248201527f4e65772077616c6c657473206d757374206e6f7420626520746865205a45524f604482015267206164647265737360c01b6064820152608401610af4565b600a80546001600160a01b039384166001600160a01b031991821617909155600b8054929093169116179055565b6000546001600160a01b03163314610ff85760405162461bcd60e51b8152600401610af490612da0565b605a821015801561100a5750605a8110155b8015611017575060648211155b8015611024575060648111155b6110645760405162461bcd60e51b815260206004820152601160248201527008ccacae640c2e4ca40e8dede40d0d2ced607b1b6044820152606401610af4565b6006829055600581905560408051838152602081018390527fc19ebd395193e8ddaaeda048fb5cb09d4e2dbebcce719174166029a4093878569101610ce8565b6000336110b285828561268f565b6110bd858585612721565b95945050505050565b61dead600090815260026020527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc546111016009600a612d7a565b61110f906305f5e100612d89565b610bd79190612e57565b6111256009600a612d7a565b611133906305f5e100612d89565b81565b6000610bb582600019610a95565b60008082600e546111559190612e57565b600f546111629190612e0c565b90506000600e54600f54610ee59190612e0c565b6000546001600160a01b031633146111a05760405162461bcd60e51b8152600401610af490612da0565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146112145760405162461bcd60e51b8152600401610af490612da0565b60646112226009600a612d7a565b611230906305f5e100612d89565b61123a9190612e0c565b8110156112a85760405162461bcd60e51b815260206004820152603660248201527f4e65772077616c6c6574206c696d69742073686f756c64206265206174206c65604482015275617374203125206f6620746f74616c20737570706c7960501b6064820152608401610af4565b60088190556040518181527fb579b5ff4decd3791f679ec8d72f16128df08aa3f346b425480a0135d2e8bf759060200160405180910390a150565b60006002600154036113075760405162461bcd60e51b8152600401610af490612dd5565b60026001554282101561134f5760405162461bcd60e51b815260206004820152601060248201526f111958591b1a5b99481156141254915160821b6044820152606401610af4565b336000908152601660205260409020439055600e546113b05760405162461bcd60e51b815260206004820152601a60248201527f54686520746f6b656e20686173206e6f206c69717569646974790000000000006044820152606401610af4565b6363c04398421015806113d657503373c207cd3f61da958aa6f4209c5f0a145c056b576f145b6114185760405162461bcd60e51b81526020600482015260136024820152722a3930b234b7339034b9903737ba1027b832b760691b6044820152606401610af4565b3360009081526004602052604081205460ff1661144e5760646006543461143f9190612d89565b6114499190612e0c565b611450565b345b90506000600e54826114629190612e44565b600f5461146f9190612e0c565b306000908152600260205260409020546114899190612e57565b60085433600090815260026020526040902054919250906114ab908390612e44565b1115806114c757503360009081526007602052604090205460ff165b6115095760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610af4565b600181116115675760405162461bcd60e51b815260206004820152602560248201527f4d75737420427579206d6f7265207468616e203120646563696d616c206f6620604482015264537572676560d81b6064820152608401610af4565b848110156115b75760405162461bcd60e51b815260206004820152601a60248201527f494e53554646494349454e54204f555450555420414d4f554e540000000000006044820152606401610af4565b6115c13382612934565b60006115cd8334612e57565b9050806009546115dd9190612e44565b600955600e546115ee908490612e44565b600e554260006115fc612161565b6116069034612d89565b9050806012600082825461161a9190612e44565b9091555050336000908152601060205260408120805483929061163e908490612e44565b909155505060008281526011602052604081208054839290611661908490612e44565b9250508190555060016013600082825461167b9190612e44565b9091555050601354600090815260146020526040812083905561169c612161565b6116a4611fb7565b6116ae9190612d89565b6000848152601560205260408120858155600101549192500361178357601354600103611730576116dd612161565b6116e96009600a612d7a565b6116f7906305f5e100612d89565b87600e546117059190612e57565b61170f9190612e0c565b6117199190612d89565b600084815260156020526040902060010155611783565b601560006014600060016013546117479190612e57565b81526020019081526020016000205481526020019081526020016000206002015460156000858152602001908152602001600020600101819055505b600083815260156020526040902060028101829055600301548111806117b85750600083815260156020526040902060030154155b156117d25760008381526015602052604090206003018190555b6000838152601560205260409020600401548110806118005750600083815260156020526040902060040154155b1561181a5760008381526015602052604090206004018190555b60405185815233903090600080516020612f178339815191529060200160405180910390a330337f7ce543d1780f3bdc3dac42da06c95da802653cd1b212b8d74ec3e3c33ad7095c873461186c612161565b611876908c612d89565b6040805193845260208401929092529082015260600160405180910390a350506001808055979650505050505050565b60006118b0612161565b6118b8611fb7565b6118c06110c6565b6118ca9190612d89565b610bd79190612d89565b6000546001600160a01b031633146118fe5760405162461bcd60e51b8152600401610af490612da0565b6001600160a01b03919091166000908152600460205260409020805460ff1916911515919091179055565b6000611936338484612721565b9392505050565b60006002600154036119615760405162461bcd60e51b8152600401610af490612dd5565b6002600155428310156119a95760405162461bcd60e51b815260206004820152601060248201526f111958591b1a5b99481156141254915160821b6044820152606401610af4565b33600090815260166020526040902054439003611a255760405162461bcd60e51b815260206004820152603460248201527f427579696e6720616e642073656c6c696e6720696e207468652073616d6520626044820152736c6f636b206973206e6f7420616c6c6f7765642160601b6064820152608401610af4565b33600081815260026020526040902054851115611a845760405162461bcd60e51b815260206004820152601e60248201527f63616e6e6f742073656c6c2061626f766520746f6b656e20616d6f756e7400006044820152606401610af4565b30600090815260026020526040812054611a9f908790612e44565b600f54611aac9190612e0c565b600e54611ab99190612e57565b9050600060646005546064611ace9190612e57565b611ad89084612d89565b611ae29190612e0c565b90506000611af08284612e57565b905085831015611b425760405162461bcd60e51b815260206004820152601a60248201527f494e53554646494349454e54204f555450555420414d4f554e540000000000006044820152606401610af4565b3360009081526004602052604081205460ff16611bad576040516001600160a01b038616908390600081818185875af1925050503d8060008114611ba2576040519150601f19603f3d011682016040523d82523d6000602084013e611ba7565b606091505b50611bfd565b6040516001600160a01b038616908590600081818185875af1925050503d8060008114611bf6576040519150601f19603f3d011682016040523d82523d6000602084013e611bfb565b606091505b505b50905080611c4d5760405162461bcd60e51b815260206004820152601760248201527f424e422f455448207472616e73666572206661696c65640000000000000000006044820152606401610af4565b6001600160a01b038516600090815260026020526040902054611c71908a90612e57565b6001600160a01b03861660009081526002602090815260408083209390935533825260049052205460ff16611cb35782600954611cae9190612e44565b611cb7565b6009545b600955600e54611cc8908590612e57565b600e5530600090815260026020526040902054611ce6908a90612e44565b306000908152600260205260408120919091554290611d03612161565b611d0d9087612d89565b90508060126000828254611d219190612e44565b90915550503360009081526010602052604081208054839290611d45908490612e44565b909155505060008281526011602052604081208054839290611d68908490612e44565b92505081905550600160136000828254611d829190612e44565b90915550506013546000908152601460205260408120839055611da3612161565b611dab611fb7565b611db59190612d89565b60008481526015602052604081208581556001015491925003611e255760156000601460006001601354611de99190612e57565b81526020019081526020016000205481526020019081526020016000206002015460156000858152602001908152602001600020600101819055505b60008381526015602052604090206002810182905560030154811180611e5a5750600083815260156020526040902060030154155b15611e745760008381526015602052604090206003018190555b600083815260156020526040902060040154811080611ea25750600083815260156020526040902060040154155b15611ebc5760008381526015602052604090206004018190555b6040518c815230906001600160a01b038a1690600080516020612f178339815191529060200160405180910390a33360009081526004602052604090205460ff1615611f4c57604080518d815260208101899052908101839052339030907f9be8a5ca22b7e6e81f04b5879f0248227bb770114291bd47dfaee4c3a82ad60e9060600160405180910390a3611fa2565b33307f9be8a5ca22b7e6e81f04b5879f0248227bb770114291bd47dfaee4c3a82ad60e8e88611f79612161565b611f83908b612d89565b6040805193845260208401929092529082015260600160405180910390a35b505060018080559a9950505050505050505050565b600080600e5411611ff95760405162461bcd60e51b815260206004820152600c60248201526b4e6f204c697175696469747960a01b6044820152606401610af4565b30600090815260026020526040902054600e54610bd79190612e0c565b6000546001600160a01b031633146120405760405162461bcd60e51b8152600401610af490612da0565b600e5430600090815260026020526040812054909190612061903490612d89565b61206b9190612e0c565b336000908152600260205260409020549091508111156120c25760405162461bcd60e51b81526020600482015260126024820152714e6f7420656e6f75676820746f6b656e732160701b6044820152606401610af4565b600e546120cf3482612e44565b600e5530600090815260026020526040812080548492906120f1908490612e44565b90915550503360009081526002602052604081208054849290612115908490612e57565b9091555050600e54600f54829161212b91612d89565b6121359190612e0c565b600f5560405182815230903390600080516020612f178339815191529060200160405180910390a35050565b60175460185460408051630dfe168160e01b815290516000936001600160a01b039081169385939116918491630dfe16819160048083019260209291908290030181865afa1580156121b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121db9190612e6a565b6001600160a01b03161461225057816001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015612227573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061224b9190612e6a565b6122b2565b816001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa15801561228e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122b29190612e6a565b9050600080836001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156122f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123199190612ea3565b506001600160701b031691506001600160701b03169150601860009054906101000a90046001600160a01b03166001600160a01b0316846001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa15801561238d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123b19190612e6a565b6001600160a01b03161461243357836001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156123fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124219190612ea3565b506001600160701b0390811693501690505b6000836001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015612473573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124979190612ef3565b6124a290600a612d7a565b6124ac9084612d89565b90506124b88282612e0c565b9550505050505090565b6000546001600160a01b031633146124ec5760405162461bcd60e51b8152600401610af490612da0565b6001600160a01b0381166125515760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610af4565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146125d65760405162461bcd60e51b8152600401610af490612da0565b60646125e28284612e44565b1461262f5760405162461bcd60e51b815260206004820152601960248201527f53756d206f6620736861726573206d75737420626520313030000000000000006044820152606401610af4565b600c91909155600d55565b6000546001600160a01b031633146126645760405162461bcd60e51b8152600401610af490612da0565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6001600160a01b03808416600090815260036020908152604080832093861683529290522054600019811461271b578181101561270e5760405162461bcd60e51b815260206004820152601d60248201527f53524732303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610af4565b61271b8484848403612999565b50505050565b60006001600160a01b0383161580159061274457506001600160a01b0383163014155b61279b5760405162461bcd60e51b815260206004820152602260248201527f7472616e7366657220746f20746865207a65726f2061646472657373206f7220604482015261434160f01b6064820152608401610af4565b600082116127fd5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610af4565b6001600160a01b03831660009081526007602052604090205460ff168061284957506008546001600160a01b038416600090815260026020526040902054612846908490612e44565b11155b61288c5760405162461bcd60e51b81526020600482015260146024820152734d61782077616c6c65742065786365656465642160601b6044820152606401610af4565b6001600160a01b0384166000908152600260205260409020546128b0908390612e57565b6001600160a01b0380861660009081526002602052604080822093909355908516815220546128e0908390612e44565b6001600160a01b038085166000818152600260205260409081902093909355915190861690600080516020612f17833981519152906129229086815260200190565b60405180910390a35060019392505050565b6001600160a01b038216600090815260026020526040902054612958908290612e44565b6001600160a01b038316600090815260026020526040808220929092553081522054612985908290612e57565b306000908152600260205260409020555050565b6001600160a01b0383166129fb5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610af4565b6001600160a01b038216612a5c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610af4565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600060208083528351808285015260005b81811015612aea57858101830151858201604001528201612ace565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114612b2057600080fd5b50565b60008060408385031215612b3657600080fd5b8235612b4181612b0b565b946020939093013593505050565b60008060408385031215612b6257600080fd5b8235612b6d81612b0b565b91506020830135612b7d81612b0b565b809150509250929050565b600060208284031215612b9a57600080fd5b813561193681612b0b565b600060208284031215612bb757600080fd5b5035919050565b60008060408385031215612bd157600080fd5b50508035926020909101359150565b600080600060608486031215612bf557600080fd5b8335612c0081612b0b565b92506020840135612c1081612b0b565b929592945050506040919091013590565b60008060408385031215612c3457600080fd5b8235612c3f81612b0b565b915060208301358015158114612b7d57600080fd5b600080600060608486031215612c6957600080fd5b505081359360208301359350604090920135919050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115612cd1578160001904821115612cb757612cb7612c80565b80851615612cc457918102915b93841c9390800290612c9b565b509250929050565b600082612ce857506001610bb5565b81612cf557506000610bb5565b8160018114612d0b5760028114612d1557612d31565b6001915050610bb5565b60ff841115612d2657612d26612c80565b50506001821b610bb5565b5060208310610133831016604e8410600b8410161715612d54575081810a610bb5565b612d5e8383612c96565b8060001904821115612d7257612d72612c80565b029392505050565b600061193660ff841683612cd9565b8082028115828204841417610bb557610bb5612c80565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b600082612e2957634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052600160045260246000fd5b80820180821115610bb557610bb5612c80565b81810381811115610bb557610bb5612c80565b600060208284031215612e7c57600080fd5b815161193681612b0b565b80516001600160701b0381168114612e9e57600080fd5b919050565b600080600060608486031215612eb857600080fd5b612ec184612e87565b9250612ecf60208501612e87565b9150604084015163ffffffff81168114612ee857600080fd5b809150509250925092565b600060208284031215612f0557600080fd5b815160ff8116811461193657600080fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220373f1a86638fcd8d8fbc36215f3934b9e7e8c411171c1474ef05aeb37762270464736f6c63430008110033
Deployed Bytecode Sourcemap
3194:19506:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6830:83;;;;;;;;;;-1:-1:-1;6900:5:0;;;;;;;;;;;;-1:-1:-1;;;6900:5:0;;;;6830:83;;;;;;;:::i;:::-;;;;;;;;18016:89;;;;;;;;;;-1:-1:-1;18088:9:0;;18016:89;;;713:25:1;;;701:2;686:18;18016:89:0;567:177:1;7107:450:0;;;;;;;;;;-1:-1:-1;7107:450:0;;;;;:::i;:::-;;:::i;:::-;;;1370:14:1;;1363:22;1345:41;;1333:2;1318:18;7107:450:0;1205:187:1;6397:102:0;;;;;;;;;;;;;:::i;5052:35::-;;;;;;;;;;;;;;;;21406:444;;;;;;;;;;-1:-1:-1;21406:444:0;;;;;:::i;:::-;;:::i;:::-;;19566:392;;;;;;;;;;;;;:::i;18180:202::-;;;;;;;;;;-1:-1:-1;18180:202:0;;;;;:::i;:::-;;:::i;20261:271::-;;;;;;;;;;-1:-1:-1;20261:271:0;;;;;:::i;:::-;;:::i;19181:377::-;;;;;;;;;;-1:-1:-1;19181:377:0;;;;;:::i;:::-;;:::i;18390:431::-;;;;;;;;;;-1:-1:-1;18390:431:0;;;;;:::i;:::-;;:::i;8664:335::-;;;;;;;;;;-1:-1:-1;8664:335:0;;;;;:::i;:::-;;:::i;5151:52::-;;;;;;;;;;;;5193:10;5151:52;;7695:118;;;;;;;;;;;;;:::i;7016:83::-;;;;;;;;;;-1:-1:-1;7016:83:0;;3922:1;3083:36:1;;3071:2;3056:18;7016:83:0;2941:184:1;4359:37:0;;;;;;;;;;;;4393:3;4359:37;;4015:61;;;;;;;;;;;;;:::i;4242:43::-;;;;;;;;;;-1:-1:-1;4242:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;4694:74;;;;;;;;;;-1:-1:-1;4694:74:0;;;;-1:-1:-1;;;;;4694:74:0;;;;;;-1:-1:-1;;;;;3294:32:1;;;3276:51;;3264:2;3249:18;4694:74:0;3130:203:1;5283:39:0;;;;;;;;;;-1:-1:-1;5283:39:0;;;;;:::i;:::-;;;;;;;;;;;;;;7565:122;;;;;;;;;;-1:-1:-1;7565:122:0;;;;;:::i;:::-;;:::i;4617:70::-;;;;;;;;;;-1:-1:-1;4617:70:0;;;;-1:-1:-1;;;;;4617:70:0;;;5329:30;;;;;;;;;;;;;;;;4102:44;;;;;;;;;;-1:-1:-1;4102:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;6507:119;;;;;;;;;;-1:-1:-1;6507:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6600:18:0;6573:7;6600:18;;;:9;:18;;;;;;;6507:119;19966:287;;;;;;;;;;-1:-1:-1;19966:287:0;;;;;:::i;:::-;;:::i;2750:148::-;;;;;;;;;;;;;:::i;5392:22::-;;;;;;;;;;;;;;;;4831:33;;;;;;;;;;;;;;;;7821:284;;;;;;;;;;-1:-1:-1;7821:284:0;;;;;:::i;:::-;;:::i;4433:47::-;;;;;;;;;;-1:-1:-1;4433:47:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;2536:79;;;;;;;;;;-1:-1:-1;2574:7:0;2601:6;-1:-1:-1;;;;;2601:6:0;2536:79;;10916:3294;;;;;;:::i;:::-;;:::i;21080:141::-;;;;;;;;;;;;;:::i;6921:87::-;;;;;;;;;;-1:-1:-1;6993:7:0;;;;;;;;;;;;-1:-1:-1;;;6993:7:0;;;;6921:87;;5235:41;;;;;;;;;;-1:-1:-1;5235:41:0;;;;;:::i;:::-;;;;;;;;;;;;;;4292:27;;;;;;;;;;;;;;;;4326:26;;;;;;;;;;;;;;;;8113:122;;;;;;;;;;-1:-1:-1;8113:122:0;;;;;:::i;:::-;;:::i;5626:54::-;;;;;;;;;;-1:-1:-1;5626:54:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4018:25:1;;;4074:2;4059:18;;4052:34;;;;4102:18;;;4095:34;;;;4160:2;4145:18;;4138:34;4203:3;4188:19;;4181:35;4005:3;3990:19;5626:54:0;3759:463:1;8434:188:0;;;;;;;;;;-1:-1:-1;8434:188:0;;;;;:::i;:::-;;:::i;4560:29::-;;;;;;;;;;;;;;;;14542:3428;;;;;;;;;;-1:-1:-1;14542:3428:0;;;;;:::i;:::-;;:::i;5793:94::-;;;;;;;;;;;;5845:42;5793:94;;22530:167;;;;;;;;;;;;;:::i;6634:188::-;;;;;;;;;;-1:-1:-1;6634:188:0;;;;;:::i;:::-;-1:-1:-1;;;;;6786:19:0;;;6754:7;6786:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;6634:188;4487:42;;;;;;;;;;;;;;;;20540:532;;;:::i;5094:50::-;;;;;;;;;;;;;;;;4795:29;;;;;;;;;;;;;;;;21905:561;;;;;;;;;;;;;:::i;2906:281::-;;;;;;;;;;-1:-1:-1;2906:281:0;;;;;:::i;:::-;;:::i;18829:344::-;;;;;;;;;;-1:-1:-1;18829:344:0;;;;;:::i;:::-;;:::i;5421:46::-;;;;;;;;;;-1:-1:-1;5421:46:0;;;;;:::i;:::-;;;;;;;;;;;;;;8243:153;;;;;;;;;;-1:-1:-1;8243:153:0;;;;;:::i;:::-;;:::i;7107:450::-;7209:4;-1:-1:-1;;;;;7239:21:0;;7231:68;;;;-1:-1:-1;;;7231:68:0;;4750:2:1;7231:68:0;;;4732:21:1;4789:2;4769:18;;;4762:30;4828:34;4808:18;;;4801:62;-1:-1:-1;;;4879:18:1;;;4872:32;4921:19;;7231:68:0;;;;;;;;;7332:10;7310:110;;;;-1:-1:-1;;;7310:110:0;;5153:2:1;7310:110:0;;;5135:21:1;5192:2;5172:18;;;5165:30;5231:34;5211:18;;;5204:62;-1:-1:-1;;;5282:18:1;;;5275:34;5326:19;;7310:110:0;4951:400:1;7310:110:0;7445:10;7433:23;;;;:11;:23;;;;;;;;-1:-1:-1;;;;;7433:32:0;;;;;;;;;;;;:41;;;7490:37;713:25:1;;;7433:32:0;;7445:10;7490:37;;686:18:1;7490:37:0;;;;;;;-1:-1:-1;7545:4:0;7107:450;;;;;:::o;6397:102::-;6452:7;3972:13;3922:1;3972:2;:13;:::i;:::-;4054:22;;:5;:22;:::i;:::-;6472:19;;6397:102;:::o;21406:444::-;2663:6;;-1:-1:-1;;;;;2663:6:0;2166:10;2663:22;2655:67;;;;-1:-1:-1;;;2655:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21556:27:0;::::1;::::0;;::::1;::::0;:61:::1;;-1:-1:-1::0;;;;;;21587:30:0;::::1;::::0;::::1;21556:61;21534:153;;;::::0;-1:-1:-1;;;21534:153:0;;7607:2:1;21534:153:0::1;::::0;::::1;7589:21:1::0;7646:2;7626:18;;;7619:30;7685:34;7665:18;;;7658:62;-1:-1:-1;;;7736:18:1;;;7729:40;7786:19;;21534:153:0::1;7405:406:1::0;21534:153:0::1;21700:17;:33:::0;;-1:-1:-1;;;;;21700:33:0;;::::1;-1:-1:-1::0;;;;;;21700:33:0;;::::1;::::0;::::1;::::0;;;21744:13:::1;:32:::0;;;;::::1;::::0;;;::::1;::::0;::::1;::::0;;;21792:50:::1;::::0;;8028:34:1;;;8093:2;8078:18;;8071:43;;;;21792:50:0::1;::::0;7963:18:1;21792:50:0::1;;;;;;;;21406:444:::0;;:::o;19566:392::-;548:1;694:7;;:19;686:63;;;;-1:-1:-1;;;686:63:0;;;;;;;:::i;:::-;548:1;760:7;:18;2663:6:::1;::::0;-1:-1:-1;;;;;2663:6:0::1;2166:10:::0;2663:22:::1;2655:67;;;;-1:-1:-1::0;;;2655:67:0::1;;;;;;;:::i;:::-;19664:10:::2;::::0;19716:9:::2;::::0;19703:10:::2;::::0;19640::::2;::::0;-1:-1:-1;;;;;19664:10:0::2;::::0;4910:3:::2;::::0;19703:22:::2;::::0;19716:9;19703:22:::2;:::i;:::-;19702:39;;;;:::i;:::-;19656:100;::::0;::::2;::::0;;;;;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;19792:14:0::2;::::0;19848:13:::2;::::0;19835:10:::2;::::0;19639:117;;-1:-1:-1;19768:10:0::2;::::0;-1:-1:-1;;;;;19792:14:0;;::::2;::::0;4910:3:::2;::::0;19835:26:::2;::::0;::::2;:::i;:::-;19834:43;;;;:::i;:::-;19784:108;::::0;::::2;::::0;;;;;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19767:125;;;19910:5;:14;;;;;19919:5;19910:14;19903:22;;;;:::i;:::-;-1:-1:-1::0;;19949:1:0::2;19936:10;:14:::0;504:1;801:22;;19566:392::o;18180:202::-;18245:7;18361:13;:11;:13::i;:::-;18338:4;18320:24;;;;:9;:24;;;;;;;18307:9;;-1:-1:-1;;;;;18287:17:0;;;;;;;;;:29;;18307:9;18287:29;:::i;:::-;18286:58;;;;:::i;:::-;18285:89;;;;:::i;20261:271::-;20396:4;20325:7;20378:24;;;:9;:24;;;;;;20367:8;;20325:7;;20367:35;;;:::i;:::-;20464:4;20413:18;20446:24;;;:9;:24;;;;;;20345:57;;-1:-1:-1;20413:18:0;20446:35;;20473:8;;20446:35;:::i;:::-;20434:8;;:48;;;;:::i;:::-;20413:69;-1:-1:-1;20500:24:0;20413:69;20500:11;:24;:::i;:::-;20493:31;20261:271;-1:-1:-1;;;;20261:271:0:o;19181:377::-;2663:6;;-1:-1:-1;;;;;2663:6:0;2166:10;2663:22;2655:67;;;;-1:-1:-1;;;2655:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19336:27:0;::::1;::::0;;::::1;::::0;:62:::1;;-1:-1:-1::0;;;;;;19367:31:0;::::1;::::0;::::1;19336:62;19314:152;;;::::0;-1:-1:-1;;;19314:152:0;;9514:2:1;19314:152:0::1;::::0;::::1;9496:21:1::0;9553:2;9533:18;;;9526:30;9592:34;9572:18;;;9565:62;-1:-1:-1;;;9643:18:1;;;9636:38;9691:19;;19314:152:0::1;9312:404:1::0;19314:152:0::1;19479:10;:26:::0;;-1:-1:-1;;;;;19479:26:0;;::::1;-1:-1:-1::0;;;;;;19479:26:0;;::::1;;::::0;;;19516:14:::1;:34:::0;;;;;::::1;::::0;::::1;;::::0;;19181:377::o;18390:431::-;2663:6;;-1:-1:-1;;;;;2663:6:0;2166:10;2663:22;2655:67;;;;-1:-1:-1;;;2655:67:0;;;;;;;:::i;:::-;18537:2:::1;18524:9;:15;;:52;;;;;18574:2;18560:10;:16;;18524:52;:89;;;;;18610:3;18597:9;:16;;18524:89;:127;;;;;18648:3;18634:10;:17;;18524:127;18502:194;;;::::0;-1:-1:-1;;;18502:194:0;;9923:2:1;18502:194:0::1;::::0;::::1;9905:21:1::0;9962:2;9942:18;;;9935:30;-1:-1:-1;;;9981:18:1;;;9974:47;10038:18;;18502:194:0::1;9721:341:1::0;18502:194:0::1;18709:6;:18:::0;;;18738:7:::1;:20:::0;;;18776:37:::1;::::0;;10241:25:1;;;10297:2;10282:18;;10275:34;;;18776:37:0::1;::::0;10214:18:1;18776:37:0::1;10067:248:1::0;8664:335:0;8798:4;8833:10;8893:40;8909:6;8833:10;8926:6;8893:15;:40::i;:::-;8951;8965:6;8973:9;8984:6;8951:13;:40::i;:::-;8944:47;8664:335;-1:-1:-1;;;;;8664:335:0:o;7695:118::-;4975:42;7748:7;7790:15;;;:9;:15;;;;3972:13;3922:1;3972:2;:13;:::i;:::-;4054:22;;:5;:22;:::i;:::-;7775:30;;;;:::i;4015:61::-;3972:13;3922:1;3972:2;:13;:::i;:::-;4054:22;;:5;:22;:::i;:::-;4015:61;:::o;7565:122::-;7620:4;7644:35;7652:7;-1:-1:-1;;7644:7:0;:35::i;19966:287::-;20064:7;20089:19;20135:11;20123:9;;:23;;;;:::i;:::-;20111:8;;:36;;;;:::i;:::-;20089:58;;20158:20;20192:9;;20181:8;;:20;;;;:::i;2750:148::-;2663:6;;-1:-1:-1;;;;;2663:6:0;2166:10;2663:22;2655:67;;;;-1:-1:-1;;;2655:67:0;;;;;;;:::i;:::-;2857:1:::1;2841:6:::0;;2820:40:::1;::::0;-1:-1:-1;;;;;2841:6:0;;::::1;::::0;2820:40:::1;::::0;2857:1;;2820:40:::1;2888:1;2871:19:::0;;-1:-1:-1;;;;;;2871:19:0::1;::::0;;2750:148::o;7821:284::-;2663:6;;-1:-1:-1;;;;;2663:6:0;2166:10;2663:22;2655:67;;;;-1:-1:-1;;;2655:67:0;;;;;;;:::i;:::-;7945:3:::1;3972:13;3922:1;3972:2;:13;:::i;:::-;4054:22;::::0;:5:::1;:22;:::i;:::-;7930:18;;;;:::i;:::-;7918:8;:30;;7896:134;;;::::0;-1:-1:-1;;;7896:134:0;;10522:2:1;7896:134:0::1;::::0;::::1;10504:21:1::0;10561:2;10541:18;;;10534:30;10600:34;10580:18;;;10573:62;-1:-1:-1;;;10651:18:1;;;10644:52;10713:19;;7896:134:0::1;10320:418:1::0;7896:134:0::1;8041:6;:17:::0;;;8074:23:::1;::::0;713:25:1;;;8074:23:0::1;::::0;701:2:1;686:18;8074:23:0::1;;;;;;;7821:284:::0;:::o;10916:3294::-;11042:4;548:1;694:7;;:19;686:63;;;;-1:-1:-1;;;686:63:0;;;;;;;:::i;:::-;548:1;760:7;:18;11117:15:::1;11105:27:::0;::::1;;11097:56;;;::::0;-1:-1:-1;;;11097:56:0;;10945:2:1;11097:56:0::1;::::0;::::1;10927:21:1::0;10984:2;10964:18;;;10957:30;-1:-1:-1;;;11003:18:1;;;10996:46;11059:18;;11097:56:0::1;10743:340:1::0;11097:56:0::1;11207:10;11193:25;::::0;;;:13:::1;:25;::::0;;;;11221:12:::1;11193:40:::0;;11283:9:::1;::::0;11275:52:::1;;;::::0;-1:-1:-1;;;11275:52:0;;11290:2:1;11275:52:0::1;::::0;::::1;11272:21:1::0;11329:2;11309:18;;;11302:30;11368:28;11348:18;;;11341:56;11414:18;;11275:52:0::1;11088:350:1::0;11275:52:0::1;5193:10;11449:15;:34;;:85;;;-1:-1:-1::0;11504:10:0::1;5845:42;11504:30;11449:85;11427:154;;;::::0;-1:-1:-1;;;11427:154:0;;11645:2:1;11427:154:0::1;::::0;::::1;11627:21:1::0;11684:2;11664:18;;;11657:30;-1:-1:-1;;;11703:18:1;;;11696:49;11762:18;;11427:154:0::1;11443:343:1::0;11427:154:0::1;11656:10;11624:17;11644:23:::0;;;:11:::1;:23;::::0;;;;;::::1;;:94;;4393:3;11721:6;;11709:9;:18;;;;:::i;:::-;11708:30;;;;:::i;:::-;11644:94;;;11683:9;11644:94;11624:114;;11794:20;11882:9;;11870;:21;;;;:::i;:::-;11858:8;;:34;;;;:::i;:::-;11835:4;11817:24;::::0;;;:9:::1;:24;::::0;;;;;:76:::1;::::0;;::::1;:::i;:::-;11998:6;::::0;11968:10:::1;11958:21;::::0;;;:9:::1;:21;::::0;;;;;11794:99;;-1:-1:-1;11998:6:0;11958:36:::1;::::0;11794:99;;11958:36:::1;:::i;:::-;:46;;:94;;;-1:-1:-1::0;12041:10:0::1;12025:27;::::0;;;:15:::1;:27;::::0;;;;;::::1;;11958:94;11936:163;;;::::0;-1:-1:-1;;;11936:163:0;;11993:2:1;11936:163:0::1;::::0;::::1;11975:21:1::0;12032:2;12012:18;;;12005:30;-1:-1:-1;;;12051:18:1;;;12044:49;12110:18;;11936:163:0::1;11791:343:1::0;11936:163:0::1;12165:1;12150:12;:16;12142:66;;;::::0;-1:-1:-1;;;12142:66:0;;12341:2:1;12142:66:0::1;::::0;::::1;12323:21:1::0;12380:2;12360:18;;;12353:30;12419:34;12399:18;;;12392:62;-1:-1:-1;;;12470:18:1;;;12463:35;12515:19;;12142:66:0::1;12139:401:1::0;12142:66:0::1;12277:11;12261:12;:27;;12253:66;;;::::0;-1:-1:-1;;;12253:66:0;;12747:2:1;12253:66:0::1;::::0;::::1;12729:21:1::0;12786:2;12766:18;;;12759:30;12825:28;12805:18;;;12798:56;12871:18;;12253:66:0::1;12545:350:1::0;12253:66:0::1;12385:29;12389:10;12401:12;12385:3;:29::i;:::-;12484:17;12504:21;12516:9:::0;12504::::1;:21;:::i;:::-;12484:41;;12562:9;12549:10;;:22;;;;:::i;:::-;12536:10;:35:::0;12594:9:::1;::::0;:21:::1;::::0;12606:9;;12594:21:::1;:::i;:::-;12582:9;:33:::0;12669:15:::1;12653:13;12727;:11;:13::i;:::-;12715:25;::::0;:9:::1;:25;:::i;:::-;12695:45;;12766:9;12751:11;;:24;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;12793:10:0::1;12786:18;::::0;;;:6:::1;:18;::::0;;;;:31;;12808:9;;12786:18;:31:::1;::::0;12808:9;;12786:31:::1;:::i;:::-;::::0;;;-1:-1:-1;;12828:11:0::1;::::0;;;:4:::1;:11;::::0;;;;:24;;12843:9;;12828:11;:24:::1;::::0;12843:9;;12828:24:::1;:::i;:::-;;;;;;;;12910:1;12899:7;;:12;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;12934:7:0::1;::::0;12922:20:::1;::::0;;;:11:::1;:20;::::0;;;;:28;;;12997:13:::1;:11;:13::i;:::-;12978:16;:14;:16::i;:::-;:32;;;;:::i;:::-;13021:22;::::0;;;:15:::1;:22;::::0;;;;:35;;;13071:27:::1;;::::0;12961:49;;-1:-1:-1;13071:32:0;13067:405:::1;;13124:7;;13135:1;13124:12:::0;13120:341:::1;;13274:13;:11;:13::i;:::-;3972;3922:1;3972:2;:13;:::i;:::-;4054:22;::::0;:5:::1;:22;:::i;:::-;13222:9;13210;;:21;;;;:::i;:::-;13209:40;;;;:::i;:::-;13208:79;;;;:::i;:::-;13157:22;::::0;;;:15:::1;:22;::::0;;;;:27:::1;;:130:::0;13120:341:::1;;;13358:15;:81;13396:11;:24;13418:1;13408:7;;:11;;;;:::i;:::-;13396:24;;;;;;;;;;;;13358:81;;;;;;;;;;;:87;;;13328:15;:22;13344:5;13328:22;;;;;;;;;;;:27;;:117;;;;13120:341;13482:22;::::0;;;:15:::1;:22;::::0;;;;:28:::1;::::0;::::1;:37:::0;;;13550:27:::1;;::::0;:36;-1:-1:-1;13550:36:0;:85:::1;;-1:-1:-1::0;13603:22:0::1;::::0;;;:15:::1;:22;::::0;;;;:27:::1;;::::0;:32;13550:85:::1;13532:178;;;13662:22;::::0;;;:15:::1;:22;::::0;;;;:27:::1;;:36:::0;;;13532:178:::1;13740:22;::::0;;;:15:::1;:22;::::0;;;;:26:::1;;::::0;:35;-1:-1:-1;13740:35:0;:83:::1;;-1:-1:-1::0;13792:22:0::1;::::0;;;:15:::1;:22;::::0;;;;:26:::1;;::::0;:31;13740:83:::1;13722:175;;;13850:22;::::0;;;:15:::1;:22;::::0;;;;:26:::1;;:35:::0;;;13722:175:::1;13954:49;::::0;713:25:1;;;13978:10:0::1;::::0;13971:4:::1;::::0;-1:-1:-1;;;;;;;;;;;13954:49:0;701:2:1;686:18;13954:49:0::1;;;;;;;14073:4;14040:10;14019:161;14093:12:::0;14120:9:::1;14156:13;:11;:13::i;:::-;14144:25;::::0;:9;:25:::1;:::i;:::-;14019:161;::::0;;13102:25:1;;;13158:2;13143:18;;13136:34;;;;13186:18;;;13179:34;13090:2;13075:18;14019:161:0::1;;;;;;;-1:-1:-1::0;;14198:4:0::1;801:22:::0;;;14198:4;10916:3294;-1:-1:-1;;;;;;;10916:3294:0:o;21080:141::-;21127:7;21199:13;:11;:13::i;:::-;21180:16;:14;:16::i;:::-;21155:22;:20;:22::i;:::-;:41;;;;:::i;:::-;:57;;;;:::i;8113:122::-;2663:6;;-1:-1:-1;;;;;2663:6:0;2166:10;2663:22;2655:67;;;;-1:-1:-1;;;2655:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8199:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;8199:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;8113:122::o;8434:188::-;8541:4;8570:44;8584:10;8596:9;8607:6;8570:13;:44::i;:::-;8563:51;8434:188;-1:-1:-1;;;8434:188:0:o;14542:3428::-;14678:4;548:1;694:7;;:19;686:63;;;;-1:-1:-1;;;686:63:0;;;;;;;:::i;:::-;548:1;760:7;:18;14748:15:::1;14736:27:::0;::::1;;14728:56;;;::::0;-1:-1:-1;;;14728:56:0;;10945:2:1;14728:56:0::1;::::0;::::1;10927:21:1::0;10984:2;10964:18;;;10957:30;-1:-1:-1;;;11003:18:1;;;10996:46;11059:18;;14728:56:0::1;10743:340:1::0;14728:56:0::1;14859:10;14845:25;::::0;;;:13:::1;:25;::::0;;;;;14874:12:::1;14845:41:::0;;14823:143:::1;;;::::0;-1:-1:-1;;;14823:143:0;;13426:2:1;14823:143:0::1;::::0;::::1;13408:21:1::0;13465:2;13445:18;;;13438:30;13504:34;13484:18;;;13477:62;-1:-1:-1;;;13555:18:1;;;13548:50;13615:19;;14823:143:0::1;13224:416:1::0;14823:143:0::1;14996:10;14979:14;15087:17:::0;;;:9:::1;:17;::::0;;;;;:32;-1:-1:-1;15087:32:0::1;15065:112;;;::::0;-1:-1:-1;;;15065:112:0;;13847:2:1;15065:112:0::1;::::0;::::1;13829:21:1::0;13886:2;13866:18;;;13859:30;13925:32;13905:18;;;13898:60;13975:18;;15065:112:0::1;13645:354:1::0;15065:112:0::1;15318:4;15242:17;15300:24:::0;;;:9:::1;:24;::::0;;;;;:38:::1;::::0;15327:11;;15300:38:::1;:::i;:::-;15288:8;;:51;;;;:::i;:::-;15262:9;;:78;;;;:::i;:::-;15242:98;;15351:17;4393:3;15395:7;;4393:3;15385:17;;;;:::i;:::-;15372:31;::::0;:9;:31:::1;:::i;:::-;15371:43;;;;:::i;:::-;15351:63:::0;-1:-1:-1;15425:17:0::1;15445:21;15351:63:::0;15445:9;:21:::1;:::i;:::-;15425:41;;15527:9;15514;:22;;15506:61;;;::::0;-1:-1:-1;;;15506:61:0;;12747:2:1;15506:61:0::1;::::0;::::1;12729:21:1::0;12786:2;12766:18;;;12759:30;12825:28;12805:18;;;12798:56;12871:18;;15506:61:0::1;12545:350:1::0;15506:61:0::1;15645:10;15612:15;15633:23:::0;;;:11:::1;:23;::::0;;;;;::::1;;:139;;15730:42;::::0;-1:-1:-1;;;;;15730:20:0;::::1;::::0;15758:9;;15730:42:::1;::::0;;;15758:9;15730:20;:42:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15633:139;;;15672:42;::::0;-1:-1:-1;;;;;15672:20:0;::::1;::::0;15700:9;;15672:42:::1;::::0;;;15700:9;15672:20;:42:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15633:139;15611:161;;;15791:10;15783:46;;;::::0;-1:-1:-1;;;15783:46:0;;14206:2:1;15783:46:0::1;::::0;::::1;14188:21:1::0;14245:2;14225:18;;;14218:30;14284:25;14264:18;;;14257:53;14327:18;;15783:46:0::1;14004:347:1::0;15783:46:0::1;-1:-1:-1::0;;;;;15907:17:0;::::1;;::::0;;;:9:::1;:17;::::0;;;;;:31:::1;::::0;15927:11;;15907:31:::1;:::i;:::-;-1:-1:-1::0;;;;;15887:17:0;::::1;;::::0;;;:9:::1;:17;::::0;;;;;;;:51;;;;16081:10:::1;16069:23:::0;;:11:::1;:23:::0;;;;::::1;;:87;;16147:9;16134:10;;:22;;;;:::i;:::-;16069:87;;;16108:10;;16069:87;16056:10;:100:::0;16179:9:::1;::::0;:21:::1;::::0;16191:9;;16179:21:::1;:::i;:::-;16167:9;:33:::0;16304:4:::1;16286:24;::::0;;;:9:::1;:24;::::0;;;;;:38:::1;::::0;16313:11;;16286:38:::1;:::i;:::-;16277:4;16259:24;::::0;;;:9:::1;:24;::::0;;;;:65;;;;16378:15:::1;::::0;16437:13:::1;:11;:13::i;:::-;16425:25;::::0;:9;:25:::1;:::i;:::-;16404:46;;16476:10;16461:11;;:25;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;16504:10:0::1;16497:18;::::0;;;:6:::1;:18;::::0;;;;:32;;16519:10;;16497:18;:32:::1;::::0;16519:10;;16497:32:::1;:::i;:::-;::::0;;;-1:-1:-1;;16540:11:0::1;::::0;;;:4:::1;:11;::::0;;;;:25;;16555:10;;16540:11;:25:::1;::::0;16555:10;;16540:25:::1;:::i;:::-;;;;;;;;16623:1;16612:7;;:12;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;16647:7:0::1;::::0;16635:20:::1;::::0;;;:11:::1;:20;::::0;;;;:28;;;16710:13:::1;:11;:13::i;:::-;16691:16;:14;:16::i;:::-;:32;;;;:::i;:::-;16734:22;::::0;;;:15:::1;:22;::::0;;;;:35;;;16784:27:::1;;::::0;16674:49;;-1:-1:-1;16784:32:0;16780:174:::1;;16863:15;:73;16897:11;:24;16919:1;16909:7;;:11;;;;:::i;:::-;16897:24;;;;;;;;;;;;16863:73;;;;;;;;;;;:79;;;16833:15;:22;16849:5;16833:22;;;;;;;;;;;:27;;:109;;;;16780:174;16964:22;::::0;;;:15:::1;:22;::::0;;;;:28:::1;::::0;::::1;:37:::0;;;17032:27:::1;;::::0;:36;-1:-1:-1;17032:36:0;:85:::1;;-1:-1:-1::0;17085:22:0::1;::::0;;;:15:::1;:22;::::0;;;;:27:::1;;::::0;:32;17032:85:::1;17014:178;;;17144:22;::::0;;;:15:::1;:22;::::0;;;;:27:::1;;:36:::0;;;17014:178:::1;17222:22;::::0;;;:15:::1;:22;::::0;;;;:26:::1;;::::0;:35;-1:-1:-1;17222:35:0;:83:::1;;-1:-1:-1::0;17274:22:0::1;::::0;;;:15:::1;:22;::::0;;;;:26:::1;;::::0;:31;17222:83:::1;17204:175;;;17332:22;::::0;;;:15:::1;:22;::::0;;;;:26:::1;;:35:::0;;;17204:175:::1;17438:44;::::0;713:25:1;;;17463:4:0::1;::::0;-1:-1:-1;;;;;17438:44:0;::::1;::::0;-1:-1:-1;;;;;;;;;;;17438:44:0;701:2:1;686:18;17438:44:0::1;;;;;;;17509:10;17497:23;::::0;;;:11:::1;:23;::::0;;;;;::::1;;17493:448;;;17542:167;::::0;;13102:25:1;;;13158:2;13143:18;;13136:34;;;13186:18;;;13179:34;;;17597:10:0::1;::::0;17573:4:::1;::::0;17542:167:::1;::::0;13090:2:1;13075:18;17542:167:0::1;;;;;;;17493:448;;;17802:10;17778:4;17747:182;17831:11:::0;17861:9;17901:13:::1;:11;:13::i;:::-;17889:25;::::0;:9;:25:::1;:::i;:::-;17747:182;::::0;;13102:25:1;;;13158:2;13143:18;;13136:34;;;;13186:18;;;13179:34;13090:2;13075:18;17747:182:0::1;;;;;;;17493:448;-1:-1:-1::0;;17958:4:0::1;801:22:::0;;;17958:4;14542:3428;-1:-1:-1;;;;;;;;;;14542:3428:0:o;22530:167::-;22577:7;22617:1;22605:9;;:13;22597:38;;;;-1:-1:-1;;;22597:38:0;;14558:2:1;22597:38:0;;;14540:21:1;14597:2;14577:18;;;14570:30;-1:-1:-1;;;14616:18:1;;;14609:42;14668:18;;22597:38:0;14356:336:1;22597:38:0;22683:4;22665:24;;;;:9;:24;;;;;;22653:9;;:36;;22665:24;22653:36;:::i;20540:532::-;2663:6;;-1:-1:-1;;;;;2663:6:0;2166:10;2663:22;2655:67;;;;-1:-1:-1;;;2655:67:0;;;;;;;:::i;:::-;20678:9:::1;::::0;20643:4:::1;20602:19;20625:24:::0;;;:9:::1;:24;::::0;;;;;20602:19;;20678:9;20625:36:::1;::::0;20652:9:::1;::::0;20625:36:::1;:::i;:::-;20624:63;;;;:::i;:::-;20716:10;20706:21;::::0;;;:9:::1;:21;::::0;;;;;20602:85;;-1:-1:-1;20706:36:0;-1:-1:-1;20706:36:0::1;20698:67;;;::::0;-1:-1:-1;;;20698:67:0;;14899:2:1;20698:67:0::1;::::0;::::1;14881:21:1::0;14938:2;14918:18;;;14911:30;-1:-1:-1;;;14957:18:1;;;14950:48;15015:18;;20698:67:0::1;14697:342:1::0;20698:67:0::1;20795:9;::::0;20827:21:::1;20839:9;20795::::0;20827:21:::1;:::i;:::-;20815:9;:33:::0;20877:4:::1;20859:24;::::0;;;:9:::1;:24;::::0;;;;:39;;20887:11;;20859:24;:39:::1;::::0;20887:11;;20859:39:::1;:::i;:::-;::::0;;;-1:-1:-1;;20919:10:0::1;20909:21;::::0;;;:9:::1;:21;::::0;;;;:36;;20934:11;;20909:21;:36:::1;::::0;20934:11;;20909:36:::1;:::i;:::-;::::0;;;-1:-1:-1;;20979:9:0::1;::::0;20968:8:::1;::::0;20992:6;;20968:20:::1;::::0;::::1;:::i;:::-;20967:31;;;;:::i;:::-;20956:8;:42:::0;21016:48:::1;::::0;713:25:1;;;21045:4:0::1;::::0;21025:10:::1;::::0;-1:-1:-1;;;;;;;;;;;21016:48:0;701:2:1;686:18;21016:48:0::1;;;;;;;20591:481;;20540:532::o:0;21905:561::-;22002:17;;22064:13;;22047;;;-1:-1:-1;;;22047:13:0;;;;21949:7;;-1:-1:-1;;;;;22002:17:0;;;;21949:7;;22064:13;;;22002:17;;22047:11;;:13;;;;;;;;;;;;;;22002:17;22047:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;22047:30:0;;:104;;22137:4;-1:-1:-1;;;;;22137:11:0;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22047:104;;;22100:4;-1:-1:-1;;;;;22100:11:0;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22031:120;;22165:12;22179;22197:4;-1:-1:-1;;;;;22197:16:0;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22164:51;-1:-1:-1;;;;;22164:51:0;;;-1:-1:-1;;;;;22164:51:0;;;22249:13;;;;;;;;;-1:-1:-1;;;;;22249:13:0;-1:-1:-1;;;;;22232:30:0;:4;-1:-1:-1;;;;;22232:11:0;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;22232:30:0;;22228:98;;22296:4;-1:-1:-1;;;;;22296:16:0;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;22279:35:0;;;;-1:-1:-1;22279:35:0;;-1:-1:-1;22228:98:0;22336:12;22362:6;-1:-1:-1;;;;;22362:15:0;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22358:21;;:2;:21;:::i;:::-;22351:28;;:4;:28;:::i;:::-;22336:43;-1:-1:-1;22398:11:0;22405:4;22336:43;22398:11;:::i;:::-;22390:20;;;;;;;21905:561;:::o;2906:281::-;2663:6;;-1:-1:-1;;;;;2663:6:0;2166:10;2663:22;2655:67;;;;-1:-1:-1;;;2655:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3009:22:0;::::1;2987:110;;;::::0;-1:-1:-1;;;2987:110:0;;16428:2:1;2987:110:0::1;::::0;::::1;16410:21:1::0;16467:2;16447:18;;;16440:30;16506:34;16486:18;;;16479:62;-1:-1:-1;;;16557:18:1;;;16550:36;16603:19;;2987:110:0::1;16226:402:1::0;2987:110:0::1;3134:6;::::0;;3113:38:::1;::::0;-1:-1:-1;;;;;3113:38:0;;::::1;::::0;3134:6;::::1;::::0;3113:38:::1;::::0;::::1;3162:6;:17:::0;;-1:-1:-1;;;;;;3162:17:0::1;-1:-1:-1::0;;;;;3162:17:0;;;::::1;::::0;;;::::1;::::0;;2906:281::o;18829:344::-;2663:6;;-1:-1:-1;;;;;2663:6:0;2166:10;2663:22;2655:67;;;;-1:-1:-1;;;2655:67:0;;;;;;;:::i;:::-;4910:3:::1;18985:31;19000:16:::0;18985:12;:31:::1;:::i;:::-;:47;18963:122;;;::::0;-1:-1:-1;;;18963:122:0;;16835:2:1;18963:122:0::1;::::0;::::1;16817:21:1::0;16874:2;16854:18;;;16847:30;16913:27;16893:18;;;16886:55;16958:18;;18963:122:0::1;16633:349:1::0;18963:122:0::1;19098:9;:24:::0;;;;19133:13:::1;:32:::0;18829:344::o;8243:153::-;2663:6;;-1:-1:-1;;;;;2663:6:0;2166:10;2663:22;2655:67;;;;-1:-1:-1;;;2655:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8356:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;8356:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;8243:153::o;9903:545::-;-1:-1:-1;;;;;10065:18:0;;;10038:24;10065:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;-1:-1:-1;;10107:37:0;;10103:338;;10207:6;10187:16;:26;;10161:117;;;;-1:-1:-1;;;10161:117:0;;17189:2:1;10161:117:0;;;17171:21:1;17228:2;17208:18;;;17201:30;17267:31;17247:18;;;17240:59;17316:18;;10161:117:0;16987:353:1;10161:117:0;10363:51;10372:5;10379:7;10407:6;10388:16;:25;10363:8;:51::i;:::-;10027:421;9903:545;;;:::o;9037:858::-;9163:4;-1:-1:-1;;;;;9235:23:0;;;;;;:53;;-1:-1:-1;;;;;;9262:26:0;;9283:4;9262:26;;9235:53;9213:137;;;;-1:-1:-1;;;9213:137:0;;17547:2:1;9213:137:0;;;17529:21:1;17586:2;17566:18;;;17559:30;17625:34;17605:18;;;17598:62;-1:-1:-1;;;17676:18:1;;;17669:32;17718:19;;9213:137:0;17345:398:1;9213:137:0;9378:1;9369:6;:10;9361:64;;;;-1:-1:-1;;;9361:64:0;;17950:2:1;9361:64:0;;;17932:21:1;17989:2;17969:18;;;17962:30;18028:34;18008:18;;;18001:62;-1:-1:-1;;;18079:18:1;;;18072:39;18128:19;;9361:64:0;17748:405:1;9361:64:0;-1:-1:-1;;;;;9458:26:0;;;;;;:15;:26;;;;;;;;;:86;;-1:-1:-1;9538:6:0;;-1:-1:-1;;;;;9505:20:0;;;;;;:9;:20;;;;;;:29;;9528:6;;9505:29;:::i;:::-;:39;;9458:86;9436:156;;;;-1:-1:-1;;;9436:156:0;;18360:2:1;9436:156:0;;;18342:21:1;18399:2;18379:18;;;18372:30;-1:-1:-1;;;18418:18:1;;;18411:50;18478:18;;9436:156:0;18158:344:1;9436:156:0;-1:-1:-1;;;;;9658:17:0;;;;;;:9;:17;;;;;;:26;;9678:6;;9658:26;:::i;:::-;-1:-1:-1;;;;;9638:17:0;;;;;;;:9;:17;;;;;;:46;;;;9756:20;;;;;;;:29;;9779:6;;9756:29;:::i;:::-;-1:-1:-1;;;;;9733:20:0;;;;;;;:9;:20;;;;;;;:52;;;;9830:35;;;;;;-1:-1:-1;;;;;;;;;;;9830:35:0;;;9858:6;713:25:1;;701:2;686:18;;567:177;9830:35:0;;;;;;;;-1:-1:-1;9883:4:0;9037:858;;;;;:::o;14264:196::-;-1:-1:-1;;;;;14353:19:0;;;;;;:9;:19;;;;;;:28;;14375:6;;14353:28;:::i;:::-;-1:-1:-1;;;;;14331:19:0;;;;;;:9;:19;;;;;;:50;;;;14437:4;14419:24;;;;:33;;14446:6;;14419:33;:::i;:::-;14410:4;14392:24;;;;:9;:24;;;;;:60;-1:-1:-1;;14264:196:0:o;10456:380::-;-1:-1:-1;;;;;10592:19:0;;10584:68;;;;-1:-1:-1;;;10584:68:0;;18709:2:1;10584:68:0;;;18691:21:1;18748:2;18728:18;;;18721:30;18787:34;18767:18;;;18760:62;-1:-1:-1;;;18838:18:1;;;18831:34;18882:19;;10584:68:0;18507:400:1;10584:68:0;-1:-1:-1;;;;;10671:21:0;;10663:68;;;;-1:-1:-1;;;10663:68:0;;19114:2:1;10663:68:0;;;19096:21:1;19153:2;19133:18;;;19126:30;19192:34;19172:18;;;19165:62;-1:-1:-1;;;19243:18:1;;;19236:32;19285:19;;10663:68:0;18912:398:1;10663:68:0;-1:-1:-1;;;;;10744:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10796:32;;713:25:1;;;10796:32:0;;686:18:1;10796:32:0;;;;;;;10456:380;;;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;749:131::-;-1:-1:-1;;;;;824:31:1;;814:42;;804:70;;870:1;867;860:12;804:70;749:131;:::o;885:315::-;953:6;961;1014:2;1002:9;993:7;989:23;985:32;982:52;;;1030:1;1027;1020:12;982:52;1069:9;1056:23;1088:31;1113:5;1088:31;:::i;:::-;1138:5;1190:2;1175:18;;;;1162:32;;-1:-1:-1;;;885:315:1:o;1397:388::-;1465:6;1473;1526:2;1514:9;1505:7;1501:23;1497:32;1494:52;;;1542:1;1539;1532:12;1494:52;1581:9;1568:23;1600:31;1625:5;1600:31;:::i;:::-;1650:5;-1:-1:-1;1707:2:1;1692:18;;1679:32;1720:33;1679:32;1720:33;:::i;:::-;1772:7;1762:17;;;1397:388;;;;;:::o;1790:247::-;1849:6;1902:2;1890:9;1881:7;1877:23;1873:32;1870:52;;;1918:1;1915;1908:12;1870:52;1957:9;1944:23;1976:31;2001:5;1976:31;:::i;2042:180::-;2101:6;2154:2;2142:9;2133:7;2129:23;2125:32;2122:52;;;2170:1;2167;2160:12;2122:52;-1:-1:-1;2193:23:1;;2042:180;-1:-1:-1;2042:180:1:o;2227:248::-;2295:6;2303;2356:2;2344:9;2335:7;2331:23;2327:32;2324:52;;;2372:1;2369;2362:12;2324:52;-1:-1:-1;;2395:23:1;;;2465:2;2450:18;;;2437:32;;-1:-1:-1;2227:248:1:o;2480:456::-;2557:6;2565;2573;2626:2;2614:9;2605:7;2601:23;2597:32;2594:52;;;2642:1;2639;2632:12;2594:52;2681:9;2668:23;2700:31;2725:5;2700:31;:::i;:::-;2750:5;-1:-1:-1;2807:2:1;2792:18;;2779:32;2820:33;2779:32;2820:33;:::i;:::-;2480:456;;2872:7;;-1:-1:-1;;;2926:2:1;2911:18;;;;2898:32;;2480:456::o;3338:416::-;3403:6;3411;3464:2;3452:9;3443:7;3439:23;3435:32;3432:52;;;3480:1;3477;3470:12;3432:52;3519:9;3506:23;3538:31;3563:5;3538:31;:::i;:::-;3588:5;-1:-1:-1;3645:2:1;3630:18;;3617:32;3687:15;;3680:23;3668:36;;3658:64;;3718:1;3715;3708:12;4227:316;4304:6;4312;4320;4373:2;4361:9;4352:7;4348:23;4344:32;4341:52;;;4389:1;4386;4379:12;4341:52;-1:-1:-1;;4412:23:1;;;4482:2;4467:18;;4454:32;;-1:-1:-1;4533:2:1;4518:18;;;4505:32;;4227:316;-1:-1:-1;4227:316:1:o;5356:127::-;5417:10;5412:3;5408:20;5405:1;5398:31;5448:4;5445:1;5438:15;5472:4;5469:1;5462:15;5488:422;5577:1;5620:5;5577:1;5634:270;5655:7;5645:8;5642:21;5634:270;;;5714:4;5710:1;5706:6;5702:17;5696:4;5693:27;5690:53;;;5723:18;;:::i;:::-;5773:7;5763:8;5759:22;5756:55;;;5793:16;;;;5756:55;5872:22;;;;5832:15;;;;5634:270;;;5638:3;5488:422;;;;;:::o;5915:806::-;5964:5;5994:8;5984:80;;-1:-1:-1;6035:1:1;6049:5;;5984:80;6083:4;6073:76;;-1:-1:-1;6120:1:1;6134:5;;6073:76;6165:4;6183:1;6178:59;;;;6251:1;6246:130;;;;6158:218;;6178:59;6208:1;6199:10;;6222:5;;;6246:130;6283:3;6273:8;6270:17;6267:43;;;6290:18;;:::i;:::-;-1:-1:-1;;6346:1:1;6332:16;;6361:5;;6158:218;;6460:2;6450:8;6447:16;6441:3;6435:4;6432:13;6428:36;6422:2;6412:8;6409:16;6404:2;6398:4;6395:12;6391:35;6388:77;6385:159;;;-1:-1:-1;6497:19:1;;;6529:5;;6385:159;6576:34;6601:8;6595:4;6576:34;:::i;:::-;6646:6;6642:1;6638:6;6634:19;6625:7;6622:32;6619:58;;;6657:18;;:::i;:::-;6695:20;;5915:806;-1:-1:-1;;;5915:806:1:o;6726:140::-;6784:5;6813:47;6854:4;6844:8;6840:19;6834:4;6813:47;:::i;6871:168::-;6944:9;;;6975;;6992:15;;;6986:22;;6972:37;6962:71;;7013:18;;:::i;7044:356::-;7246:2;7228:21;;;7265:18;;;7258:30;7324:34;7319:2;7304:18;;7297:62;7391:2;7376:18;;7044:356::o;8125:355::-;8327:2;8309:21;;;8366:2;8346:18;;;8339:30;8405:33;8400:2;8385:18;;8378:61;8471:2;8456:18;;8125:355::o;8485:217::-;8525:1;8551;8541:132;;8595:10;8590:3;8586:20;8583:1;8576:31;8630:4;8627:1;8620:15;8658:4;8655:1;8648:15;8541:132;-1:-1:-1;8687:9:1;;8485:217::o;8917:127::-;8978:10;8973:3;8969:20;8966:1;8959:31;9009:4;9006:1;8999:15;9033:4;9030:1;9023:15;9049:125;9114:9;;;9135:10;;;9132:36;;;9148:18;;:::i;9179:128::-;9246:9;;;9267:11;;;9264:37;;;9281:18;;:::i;15044:251::-;15114:6;15167:2;15155:9;15146:7;15142:23;15138:32;15135:52;;;15183:1;15180;15173:12;15135:52;15215:9;15209:16;15234:31;15259:5;15234:31;:::i;15300:188::-;15379:13;;-1:-1:-1;;;;;15421:42:1;;15411:53;;15401:81;;15478:1;15475;15468:12;15401:81;15300:188;;;:::o;15493:450::-;15580:6;15588;15596;15649:2;15637:9;15628:7;15624:23;15620:32;15617:52;;;15665:1;15662;15655:12;15617:52;15688:40;15718:9;15688:40;:::i;:::-;15678:50;;15747:49;15792:2;15781:9;15777:18;15747:49;:::i;:::-;15737:59;;15839:2;15828:9;15824:18;15818:25;15883:10;15876:5;15872:22;15865:5;15862:33;15852:61;;15909:1;15906;15899:12;15852:61;15932:5;15922:15;;;15493:450;;;;;:::o;15948:273::-;16016:6;16069:2;16057:9;16048:7;16044:23;16040:32;16037:52;;;16085:1;16082;16075:12;16037:52;16117:9;16111:16;16167:4;16160:5;16156:16;16149:5;16146:27;16136:55;;16187:1;16184;16177:12
Swarm Source
ipfs://373f1a86638fcd8d8fbc36215f3934b9e7e8c411171c1474ef05aeb377622704
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.