ERC-20
Overview
Max Total Supply
100,000,000 PFF
Holders
75
Total Transfers
-
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
PFF
Compiler Version
v0.8.20+commit.a1b79de6
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-12-04 */ /* ███████████████████████████▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓████████████████████ ██████████████████████████████▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓███████████████████████ ████████████████████████████████████▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓█████████████████████████████████ ██████████████████████████████████████████████▓▒▓█████████████████████████████████████████ █████████████████████████████████████████▓▓▓▓▒░▓▒▒▓▓▓▓████████████████████████████████████ ████████████████████████████████████▓▒▒▒░░░░░░▓░▓░░░░░░▒▒▒▓███████████████████████████████ █████████████████████████████████▓▒░░░░░▒▒▓▓▓▓█░▓▓▓▓▓▒▒░░░░░▒▒▓███████████████████████████ ██████████████████████████████▓▒░░░▒▒▓█▓▓▓▓▓▓▓▓▒▓▓▓▓▓▓█▓▓▓▒▒░░░▒▓█████████████████████████ ████████████████████████████▒░░░▒▓██▓█▓▒▒▒░░░░░▒░░░░░▒▒▒▓█▓█▓▓▒░░░▒███████████████████████ ██████████████████████▓▓▒▓▓░░░▒▓██▓▓▒░░░░░░░▒▓▒▒▒▓▓▒░░░░░░▒▒▓█▓█▒░░░▓▓▓▓▓█████████████████ ██████████████████████▓░▓▓▒░▒▓▓█▓▒░░░░░░░▓▓▒░░░░▒▒▒▒▓▓▒░░░░░░▒▓█▓█▒░▒▒▓░▒█████████████████ ███████████████████████▒▒▓▒▒▓██▒▒▒░░▒▓▓▒░█▒░░░░░▒▓▓▓▒█▒▒▓▓▒░░░░▒██▓▒▒▓▒▒██████████████████ ███████████████████████░░▒██▓▒░▒░░▒▓▒▓▓█░█▒░░░░░▒▓▓▓▒█▓▓▓▒▓▓▒░░▒░▒▓██▒░░██████████████████ ██████████████████████▒▒▒█▓█▒▒░░▒▓▓▓▓▓▓▒░█▒░▒▒▒░▓▓▓▓▓█▓▒▒▓█▓▓▓▒░░▒▒█▓█▒▒▒█████████████████ █████████████████████▒▒░███▒▒░░▒▓▓▓▓▒▒▒▒▓█▒░▒▒▒░▓▓▓▓▓██▓▓▒▒▓█▓▓▓░░▒▒███░▒▒████████████████ █████████████████████░░▓██▓░▒░▒▓▓▓▓▒▓▓▓▒▒█▒░▒▒▒▒▓▓▓▓▓█▓░▒▓▓▒▒▓▓▓▓░▒▒▓██▓░░████████████████ ████████████████████▓░▒█▓█░▒░▒▓▓▓▓▒▓▒░▒░▒█▒░▒▒▒▒▓▓▒▓██▓░░▒▒▓█▒▓▓█▒░▒░█▓█░░▓███████████████ ██████████████████▓▒▒▒▓▓▓█░▒░▓█▓▓▒▓▒░▒▒░▒█▒░▓▓▓▓▓▒░▓██▓░░▓▒▓█▒█▓█▓░▒▒▓▓▓▒▒▒▒▒█████████████ █████████████████▓▒▓▓▒▓▓▓▓▒▒░██▓█▒█▒░▒▒▒▒█▒░▓▓▒░░▒▒▓██▓▒▒▓▒▓█▒▓▓██░▒▒▓▓▓▓▓▓▓▒▒████████████ ███████████████████▓▒░▒██▓▒▒░██▓█▒█▒░▓▓▒▒█▓▒░░▓██▓░░▓██▒▒▓▒▓█▓█▓██░▒▒▓██▒░▒▓██████████████ █████████████████████▒▒███▒▒▒▓███▓█▒░▓▓▒▓██░░░█▓▓█░░▒██▓▒▓▓▓█▓███▓▒▓▒███▒▒████████████████ █████████████████████▓▒▓██▒▓▒▒██▓██▓▒▓█▓▓██▒░▒█▓▓█▒░▒██▓▓▓▓▓▓▓▓▓▓▓▓█▓█▓▓▒▓████████████████ ██████████████████████▒▒█▓███▓▓▓▒▒▒▒▒░░▒▒▒█▓▒▒▓▓▓▓▒▒▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓█████████████████ ███████████████████████▓▓▒▒░░░░░▒▒▒▓▓▓▓▒▒▒▒▒▓▓▒▒▒▒▒▒▒▓▓▓▓▓█▓▓▓▓▓▓▓▓▓▓▓▒▒▒▒▒▒▒▒▓███████████ ███████████████████▓▒▒░░▒▒▒▒▒▒▓██▓▒▒▒▒▓▓▓▓▒▒░░▒▒▓▓▓▒▒▒▒▒▒▓▓███▓▓▓▓▓▓░░░░░▒▒▒█▒▒▓██████████ ███████████████▓▓▒░░▒▒▒▒▒▓▓██▓▒░▒▒▓▓▓▓▒▒░░▒▒▓▓▓▒▒▒▒▒▓▓█▓▓▒▒▒▒▓▓████▒▒▒▒▒▒▓▒▒▓▒▒▓▓█████████ █████████████▒▒▒▒▒▓▒▒▒▓███▓▒░▒▓▓▓▓▓▒▒░▒▒▓▓▓▓▓▒▒▒▓▓██▓▓▒▒▒▒▓▓▓▓█████▒░░▒▒▒▓▒▓▓▓▒▒██████████ ████████████▓▓░▓▓▓░▓▓▓▒▓▓▒▒▒▓▓░▓█▒▒▒▒▓▓█▓▓▓▓▓▓▓██▓▓▓▓▓▓▓▓██▓▓▓█▒▒▓█▓▓▓▓▓▓▓▓▒▓▓▓▓▓▓▒▓██████ ███████████▓██░███░███▒▓█▒▓██▓░██▓▓▓███▓▓▓▓▓████▓▓▓▓▓▓███▓▓▓▓██▒▒▓███▓▓██▓▓▒▓▓▓▓▓▓▓▓▓█████ ██████████████████████████████████████████████████████████████████████████████████████████ ████████▒░░░░▒█▓▒▒▓█▓▒▒▒▓█▒▒▒▒▒█▓▒▓██▒▓████▓░░▒▒▓▓▒▓██▒▒▒▒▓█▓▒▓███▓▒▒█▓▒▒▒▒█▒▒▒▒██▒░▒░░███ ████████▒░██░░▓░▒▓░▒▓░▓▓░▒▓▒░▓▓█░░░██░▒████▓░▓███░░░██░░▓▒░▓░░░███░░░▓▒░▓▓▓█░▒▓▒░▓░▒██▒▓██ ████████▒░▓█░░▓░▓█░░▓░▒▓░▒█▓░██▓░▓░▓█░▒████▓░░░▓█░▒░▓█░░▓▒░▓░░░▒█▒░░░▓▒░▒▓██░▒▓▒░█▓░░▓████ ████████▒░░░▒▓▓░▓█░░▓░▒░░██▓░▓█▒░█░▒█░▒████▓░▓██▒░▓░░█░░▒░▓█░░▒░▓░░▒░▓░░▓▓██░░▒░▓███▓▒░▓██ ████████▒░████▓░▒▓░░▓░▓▓░▓█▓░▓█░░▒░░█░░▓▓██▓░▓██░░▒░░█░▒█░░█░░█░░░▓▒░▓▒░▓▓▓█░▒█░▒█░▒▓▓░▒██ ████████▓▒█████▓▒▒▒█▓▒██▒▓█▓▒██▒▓██▒█▒▒▒▒▓██▒███▒▓██▒▓▒▓█▓▒█▓▒█▓░▒█▓▒█▓▒▒▒▒█▒▓█▓▒██▒▒▒▓███ █████████████████████████████████████████▓▓██████▓████▓███████████████████████████████████ Website: https://portalfund.xyz/ TG: https://t.me/portalfarmersfund Twitter: https://twitter.com/WeFarmPortal */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.20; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } 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); } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } 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); } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); } contract PFF is Context, IERC20, Ownable { using SafeMath for uint256; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _isExcludedFromFee; address payable private _taxWallet; uint256 firstBlock; uint256 private _initialBuyTax=35; uint256 private _initialSellTax=45; uint256 private _finalBuyTax=20; uint256 private _finalSellTax=25; uint256 private _reduceBuyTaxAt=40; uint256 private _reduceSellTaxAt=40; uint256 private _preventSwapBefore=20; uint256 private _buyCount=0; uint8 private constant _decimals = 9; uint256 private constant _tTotal = 100000000 * 10**_decimals; string private constant _name = unicode"Portal Farmers Fund"; string private constant _symbol = unicode"PFF"; uint256 public _maxTxAmount = 1000000 * 10**_decimals; uint256 public _maxWalletSize = 1000000 * 10**_decimals; uint256 public _taxSwapThreshold= 100000 * 10**_decimals; uint256 public _maxTaxSwap= 1000000 * 10**_decimals; IUniswapV2Router02 private uniswapV2Router; address private uniswapV2Pair; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = false; event MaxTxAmountUpdated(uint _maxTxAmount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor () { _taxWallet = payable(_msgSender()); _balances[_msgSender()] = _tTotal; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_taxWallet] = true; emit Transfer(address(0), _msgSender(), _tTotal); } 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 totalSupply() public pure override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function _approve(address owner, address spender, uint256 amount) private { 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); } function _transfer(address from, address to, uint256 amount) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); uint256 taxAmount=0; if (from != owner() && to != owner()) { if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) { taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100); require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount."); require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize."); if (firstBlock + 3 > block.number) { require(!isContract(to)); } _buyCount++; } if (to != uniswapV2Pair && ! _isExcludedFromFee[to]) { require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize."); } if(to == uniswapV2Pair && from!= address(this) ){ taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100); } uint256 contractTokenBalance = balanceOf(address(this)); if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore) { swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap))); uint256 contractETHBalance = address(this).balance; if(contractETHBalance > 0) { sendETHToFee(address(this).balance); } } } if(taxAmount>0){ _balances[address(this)]=_balances[address(this)].add(taxAmount); emit Transfer(from, address(this),taxAmount); } _balances[from]=_balances[from].sub(amount); _balances[to]=_balances[to].add(amount.sub(taxAmount)); emit Transfer(from, to, amount.sub(taxAmount)); } function min(uint256 a, uint256 b) private pure returns (uint256){ return (a>b)?b:a; } function isContract(address account) private view returns (bool) { uint256 size; assembly { size := extcodesize(account) } return size > 0; } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function changeTaxes(uint256 newBuyTax, uint256 newSellTax) external onlyOwner { _finalBuyTax = newBuyTax; _finalSellTax = newSellTax; } function recoverEmergency() external onlyOwner { sendETHToFee(address(this).balance); } function removeLimits() external onlyOwner{ _maxTxAmount = _tTotal; _maxWalletSize=_tTotal; emit MaxTxAmountUpdated(_tTotal); } function airdrop(address[] calldata addresses, uint256[] calldata amounts) external { require(addresses.length > 0 && amounts.length == addresses.length); address from = msg.sender; for (uint i = 0; i < addresses.length; i++) { _transfer(from, addresses[i], amounts[i] * (10**9)); } } function sendETHToFee(uint256 amount) private { _taxWallet.transfer(amount); } function openTrading() external onlyOwner() { require(!tradingOpen,"trading is already open"); uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); _approve(address(this), address(uniswapV2Router), _tTotal); uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH()); uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp); IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max); swapEnabled = true; tradingOpen = true; firstBlock = block.number; } receive() external payable {} }
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":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","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":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"airdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","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":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyTax","type":"uint256"},{"internalType":"uint256","name":"newSellTax","type":"uint256"}],"name":"changeTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"recoverEmergency","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526023600655602d600755601460085560196009556028600a556028600b556014600c555f600d556009600a6200003b91906200032e565b6200004a90620f424062000345565b600e556200005b6009600a6200032e565b6200006a90620f424062000345565b600f556200007b6009600a6200032e565b6200008a90620186a062000345565b6010556200009b6009600a6200032e565b620000aa90620f424062000345565b6011556013805461ffff60a81b19169055348015620000c7575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600480546001600160a01b03191633179055620001286009600a6200032e565b62000138906305f5e10062000345565b335f908152600160208190526040822092909255600390620001615f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff199687161790553081526003909352818320805485166001908117909155600454909116835291208054909216179055620001bf3390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620001f86009600a6200032e565b62000208906305f5e10062000345565b60405190815260200160405180910390a36200035f565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200027357815f19048211156200025757620002576200021f565b808516156200026557918102915b93841c939080029062000238565b509250929050565b5f826200028b5750600162000328565b816200029957505f62000328565b8160018114620002b25760028114620002bd57620002dd565b600191505062000328565b60ff841115620002d157620002d16200021f565b50506001821b62000328565b5060208310610133831016604e8410600b841016171562000302575081810a62000328565b6200030e838362000233565b805f19048211156200032457620003246200021f565b0290505b92915050565b5f6200033e60ff8416836200027b565b9392505050565b80820281158282048414176200032857620003286200021f565b61198d806200036d5f395ff3fe60806040526004361061011e575f3560e01c80637d1db4a51161009d578063bf474bed11610062578063bf474bed1461032d578063c9567bf914610342578063dd62ed3e14610356578063fc76729c1461039a578063fe2314d6146103ae575f80fd5b80637d1db4a5146102935780638da5cb5b146102a85780638f9a55c0146102ce57806395d89b41146102e3578063a9059cbb1461030e575f80fd5b8063313ce567116100e3578063313ce567146101fb578063672434821461021657806370a0823114610237578063715018a61461026b578063751039fc1461027f575f80fd5b806306fdde0314610129578063095ea7b3146101765780630faee56f146101a557806318160ddd146101c857806323b872dd146101dc575f80fd5b3661012557005b5f80fd5b348015610134575f80fd5b50604080518082019091526013815272141bdc9d185b0811985c9b595c9cc8119d5b99606a1b60208201525b60405161016d91906114b1565b60405180910390f35b348015610181575f80fd5b50610195610190366004611513565b6103cd565b604051901515815260200161016d565b3480156101b0575f80fd5b506101ba60115481565b60405190815260200161016d565b3480156101d3575f80fd5b506101ba6103e3565b3480156101e7575f80fd5b506101956101f636600461153d565b610403565b348015610206575f80fd5b506040516009815260200161016d565b348015610221575f80fd5b506102356102303660046115c3565b61046a565b005b348015610242575f80fd5b506101ba61025136600461162a565b6001600160a01b03165f9081526001602052604090205490565b348015610276575f80fd5b506102356104fd565b34801561028a575f80fd5b50610235610577565b34801561029e575f80fd5b506101ba600e5481565b3480156102b3575f80fd5b505f546040516001600160a01b03909116815260200161016d565b3480156102d9575f80fd5b506101ba600f5481565b3480156102ee575f80fd5b5060408051808201909152600381526228232360e91b6020820152610160565b348015610319575f80fd5b50610195610328366004611513565b610628565b348015610338575f80fd5b506101ba60105481565b34801561034d575f80fd5b50610235610634565b348015610361575f80fd5b506101ba610370366004611645565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156103a5575f80fd5b506102356109e1565b3480156103b9575f80fd5b506102356103c836600461167c565b610a15565b5f6103d9338484610a49565b5060015b92915050565b5f6103f06009600a611790565b6103fe906305f5e10061179e565b905090565b5f61040f848484610b6c565b610460843361045b85604051806060016040528060288152602001611930602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611129565b610a49565b5060019392505050565b821580159061047857508083145b610480575f80fd5b335f5b848110156104f5576104e3828787848181106104a1576104a16117b5565b90506020020160208101906104b6919061162a565b8686858181106104c8576104c86117b5565b90506020020135633b9aca006104de919061179e565b610b6c565b806104ed816117c9565b915050610483565b505050505050565b5f546001600160a01b0316331461052f5760405162461bcd60e51b8152600401610526906117e1565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146105a05760405162461bcd60e51b8152600401610526906117e1565b6105ac6009600a611790565b6105ba906305f5e10061179e565b600e556105c96009600a611790565b6105d7906305f5e10061179e565b600f557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6106076009600a611790565b610615906305f5e10061179e565b60405190815260200160405180910390a1565b5f6103d9338484610b6c565b5f546001600160a01b0316331461065d5760405162461bcd60e51b8152600401610526906117e1565b601354600160a01b900460ff16156106b75760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610526565b601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556107009030906106f26009600a611790565b61045b906305f5e10061179e565b60125f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610750573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107749190611816565b6001600160a01b031663c9c653963060125f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107d3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107f79190611816565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610841573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108659190611816565b601380546001600160a01b039283166001600160a01b03199091161790556012541663f305d71947306108ac816001600160a01b03165f9081526001602052604090205490565b5f806108bf5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610925573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061094a9190611831565b505060135460125460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af115801561099f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109c3919061185c565b506013805462ff00ff60a01b19166201000160a01b17905543600555565b5f546001600160a01b03163314610a0a5760405162461bcd60e51b8152600401610526906117e1565b610a1347611161565b565b5f546001600160a01b03163314610a3e5760405162461bcd60e51b8152600401610526906117e1565b600891909155600955565b6001600160a01b038316610aab5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610526565b6001600160a01b038216610b0c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610526565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610bd05760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610526565b6001600160a01b038216610c325760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610526565b5f8111610c935760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610526565b5f80546001600160a01b03858116911614801590610cbe57505f546001600160a01b03848116911614155b15610fec576013546001600160a01b038581169116148015610cee57506012546001600160a01b03848116911614155b8015610d1257506001600160a01b0383165f9081526003602052604090205460ff16155b15610e4757610d436064610d3d600a54600d5411610d3257600654610d36565b6008545b859061119c565b90611221565b9050600e54821115610d975760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610526565b600f5482610db9856001600160a01b03165f9081526001602052604090205490565b610dc3919061187b565b1115610e115760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610526565b436005546003610e21919061187b565b1115610e3257823b15610e32575f80fd5b600d8054905f610e41836117c9565b91905055505b6013546001600160a01b03848116911614801590610e7d57506001600160a01b0383165f9081526003602052604090205460ff16155b15610efc57600f5482610ea4856001600160a01b03165f9081526001602052604090205490565b610eae919061187b565b1115610efc5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610526565b6013546001600160a01b038481169116148015610f2257506001600160a01b0384163014155b15610f4f57610f4c6064610d3d600b54600d5411610f4257600754610d36565b600954859061119c565b90505b305f90815260016020526040902054601354600160a81b900460ff16158015610f8557506013546001600160a01b038581169116145b8015610f9a5750601354600160b01b900460ff165b8015610fa7575060105481115b8015610fb65750600c54600d54115b15610fea57610fd8610fd384610fce84601154611262565b611262565b611276565b478015610fe857610fe847611161565b505b505b801561106457305f9081526001602052604090205461100b90826113e6565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061105b9085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546110869083611444565b6001600160a01b0385165f908152600160205260409020556110c96110ab8383611444565b6001600160a01b0385165f90815260016020526040902054906113e6565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6111128585611444565b60405190815260200160405180910390a350505050565b5f818484111561114c5760405162461bcd60e51b815260040161052691906114b1565b505f611158848661188e565b95945050505050565b6004546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611198573d5f803e3d5ffd5b5050565b5f825f036111ab57505f6103dd565b5f6111b6838561179e565b9050826111c385836118a1565b1461121a5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610526565b9392505050565b5f61121a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611485565b5f818311611270578261121a565b50919050565b6013805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106112bc576112bc6117b5565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611313573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113379190611816565b8160018151811061134a5761134a6117b5565b6001600160a01b0392831660209182029290920101526012546113709130911684610a49565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac947906113a89085905f908690309042906004016118c0565b5f604051808303815f87803b1580156113bf575f80fd5b505af11580156113d1573d5f803e3d5ffd5b50506013805460ff60a81b1916905550505050565b5f806113f2838561187b565b90508381101561121a5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610526565b5f61121a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611129565b5f81836114a55760405162461bcd60e51b815260040161052691906114b1565b505f61115884866118a1565b5f6020808352835180828501525f5b818110156114dc578581018301518582016040015282016114c0565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611510575f80fd5b50565b5f8060408385031215611524575f80fd5b823561152f816114fc565b946020939093013593505050565b5f805f6060848603121561154f575f80fd5b833561155a816114fc565b9250602084013561156a816114fc565b929592945050506040919091013590565b5f8083601f84011261158b575f80fd5b50813567ffffffffffffffff8111156115a2575f80fd5b6020830191508360208260051b85010111156115bc575f80fd5b9250929050565b5f805f80604085870312156115d6575f80fd5b843567ffffffffffffffff808211156115ed575f80fd5b6115f98883890161157b565b90965094506020870135915080821115611611575f80fd5b5061161e8782880161157b565b95989497509550505050565b5f6020828403121561163a575f80fd5b813561121a816114fc565b5f8060408385031215611656575f80fd5b8235611661816114fc565b91506020830135611671816114fc565b809150509250929050565b5f806040838503121561168d575f80fd5b50508035926020909101359150565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156116ea57815f19048211156116d0576116d061169c565b808516156116dd57918102915b93841c93908002906116b5565b509250929050565b5f82611700575060016103dd565b8161170c57505f6103dd565b8160018114611722576002811461172c57611748565b60019150506103dd565b60ff84111561173d5761173d61169c565b50506001821b6103dd565b5060208310610133831016604e8410600b841016171561176b575081810a6103dd565b61177583836116b0565b805f19048211156117885761178861169c565b029392505050565b5f61121a60ff8416836116f2565b80820281158282048414176103dd576103dd61169c565b634e487b7160e01b5f52603260045260245ffd5b5f600182016117da576117da61169c565b5060010190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611826575f80fd5b815161121a816114fc565b5f805f60608486031215611843575f80fd5b8351925060208401519150604084015190509250925092565b5f6020828403121561186c575f80fd5b8151801515811461121a575f80fd5b808201808211156103dd576103dd61169c565b818103818111156103dd576103dd61169c565b5f826118bb57634e487b7160e01b5f52601260045260245ffd5b500490565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b8181101561190e5784516001600160a01b0316835293830193918301916001016118e9565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122072c4f8bc7a1aecfeaa0c714f727d7806871a2f1d119f410337cdc8d50d2cd8d364736f6c63430008140033
Deployed Bytecode
0x60806040526004361061011e575f3560e01c80637d1db4a51161009d578063bf474bed11610062578063bf474bed1461032d578063c9567bf914610342578063dd62ed3e14610356578063fc76729c1461039a578063fe2314d6146103ae575f80fd5b80637d1db4a5146102935780638da5cb5b146102a85780638f9a55c0146102ce57806395d89b41146102e3578063a9059cbb1461030e575f80fd5b8063313ce567116100e3578063313ce567146101fb578063672434821461021657806370a0823114610237578063715018a61461026b578063751039fc1461027f575f80fd5b806306fdde0314610129578063095ea7b3146101765780630faee56f146101a557806318160ddd146101c857806323b872dd146101dc575f80fd5b3661012557005b5f80fd5b348015610134575f80fd5b50604080518082019091526013815272141bdc9d185b0811985c9b595c9cc8119d5b99606a1b60208201525b60405161016d91906114b1565b60405180910390f35b348015610181575f80fd5b50610195610190366004611513565b6103cd565b604051901515815260200161016d565b3480156101b0575f80fd5b506101ba60115481565b60405190815260200161016d565b3480156101d3575f80fd5b506101ba6103e3565b3480156101e7575f80fd5b506101956101f636600461153d565b610403565b348015610206575f80fd5b506040516009815260200161016d565b348015610221575f80fd5b506102356102303660046115c3565b61046a565b005b348015610242575f80fd5b506101ba61025136600461162a565b6001600160a01b03165f9081526001602052604090205490565b348015610276575f80fd5b506102356104fd565b34801561028a575f80fd5b50610235610577565b34801561029e575f80fd5b506101ba600e5481565b3480156102b3575f80fd5b505f546040516001600160a01b03909116815260200161016d565b3480156102d9575f80fd5b506101ba600f5481565b3480156102ee575f80fd5b5060408051808201909152600381526228232360e91b6020820152610160565b348015610319575f80fd5b50610195610328366004611513565b610628565b348015610338575f80fd5b506101ba60105481565b34801561034d575f80fd5b50610235610634565b348015610361575f80fd5b506101ba610370366004611645565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156103a5575f80fd5b506102356109e1565b3480156103b9575f80fd5b506102356103c836600461167c565b610a15565b5f6103d9338484610a49565b5060015b92915050565b5f6103f06009600a611790565b6103fe906305f5e10061179e565b905090565b5f61040f848484610b6c565b610460843361045b85604051806060016040528060288152602001611930602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611129565b610a49565b5060019392505050565b821580159061047857508083145b610480575f80fd5b335f5b848110156104f5576104e3828787848181106104a1576104a16117b5565b90506020020160208101906104b6919061162a565b8686858181106104c8576104c86117b5565b90506020020135633b9aca006104de919061179e565b610b6c565b806104ed816117c9565b915050610483565b505050505050565b5f546001600160a01b0316331461052f5760405162461bcd60e51b8152600401610526906117e1565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146105a05760405162461bcd60e51b8152600401610526906117e1565b6105ac6009600a611790565b6105ba906305f5e10061179e565b600e556105c96009600a611790565b6105d7906305f5e10061179e565b600f557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6106076009600a611790565b610615906305f5e10061179e565b60405190815260200160405180910390a1565b5f6103d9338484610b6c565b5f546001600160a01b0316331461065d5760405162461bcd60e51b8152600401610526906117e1565b601354600160a01b900460ff16156106b75760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610526565b601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556107009030906106f26009600a611790565b61045b906305f5e10061179e565b60125f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610750573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107749190611816565b6001600160a01b031663c9c653963060125f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107d3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107f79190611816565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610841573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108659190611816565b601380546001600160a01b039283166001600160a01b03199091161790556012541663f305d71947306108ac816001600160a01b03165f9081526001602052604090205490565b5f806108bf5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610925573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061094a9190611831565b505060135460125460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af115801561099f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109c3919061185c565b506013805462ff00ff60a01b19166201000160a01b17905543600555565b5f546001600160a01b03163314610a0a5760405162461bcd60e51b8152600401610526906117e1565b610a1347611161565b565b5f546001600160a01b03163314610a3e5760405162461bcd60e51b8152600401610526906117e1565b600891909155600955565b6001600160a01b038316610aab5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610526565b6001600160a01b038216610b0c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610526565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610bd05760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610526565b6001600160a01b038216610c325760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610526565b5f8111610c935760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610526565b5f80546001600160a01b03858116911614801590610cbe57505f546001600160a01b03848116911614155b15610fec576013546001600160a01b038581169116148015610cee57506012546001600160a01b03848116911614155b8015610d1257506001600160a01b0383165f9081526003602052604090205460ff16155b15610e4757610d436064610d3d600a54600d5411610d3257600654610d36565b6008545b859061119c565b90611221565b9050600e54821115610d975760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610526565b600f5482610db9856001600160a01b03165f9081526001602052604090205490565b610dc3919061187b565b1115610e115760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610526565b436005546003610e21919061187b565b1115610e3257823b15610e32575f80fd5b600d8054905f610e41836117c9565b91905055505b6013546001600160a01b03848116911614801590610e7d57506001600160a01b0383165f9081526003602052604090205460ff16155b15610efc57600f5482610ea4856001600160a01b03165f9081526001602052604090205490565b610eae919061187b565b1115610efc5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610526565b6013546001600160a01b038481169116148015610f2257506001600160a01b0384163014155b15610f4f57610f4c6064610d3d600b54600d5411610f4257600754610d36565b600954859061119c565b90505b305f90815260016020526040902054601354600160a81b900460ff16158015610f8557506013546001600160a01b038581169116145b8015610f9a5750601354600160b01b900460ff165b8015610fa7575060105481115b8015610fb65750600c54600d54115b15610fea57610fd8610fd384610fce84601154611262565b611262565b611276565b478015610fe857610fe847611161565b505b505b801561106457305f9081526001602052604090205461100b90826113e6565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061105b9085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546110869083611444565b6001600160a01b0385165f908152600160205260409020556110c96110ab8383611444565b6001600160a01b0385165f90815260016020526040902054906113e6565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6111128585611444565b60405190815260200160405180910390a350505050565b5f818484111561114c5760405162461bcd60e51b815260040161052691906114b1565b505f611158848661188e565b95945050505050565b6004546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611198573d5f803e3d5ffd5b5050565b5f825f036111ab57505f6103dd565b5f6111b6838561179e565b9050826111c385836118a1565b1461121a5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610526565b9392505050565b5f61121a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611485565b5f818311611270578261121a565b50919050565b6013805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106112bc576112bc6117b5565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611313573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113379190611816565b8160018151811061134a5761134a6117b5565b6001600160a01b0392831660209182029290920101526012546113709130911684610a49565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac947906113a89085905f908690309042906004016118c0565b5f604051808303815f87803b1580156113bf575f80fd5b505af11580156113d1573d5f803e3d5ffd5b50506013805460ff60a81b1916905550505050565b5f806113f2838561187b565b90508381101561121a5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610526565b5f61121a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611129565b5f81836114a55760405162461bcd60e51b815260040161052691906114b1565b505f61115884866118a1565b5f6020808352835180828501525f5b818110156114dc578581018301518582016040015282016114c0565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611510575f80fd5b50565b5f8060408385031215611524575f80fd5b823561152f816114fc565b946020939093013593505050565b5f805f6060848603121561154f575f80fd5b833561155a816114fc565b9250602084013561156a816114fc565b929592945050506040919091013590565b5f8083601f84011261158b575f80fd5b50813567ffffffffffffffff8111156115a2575f80fd5b6020830191508360208260051b85010111156115bc575f80fd5b9250929050565b5f805f80604085870312156115d6575f80fd5b843567ffffffffffffffff808211156115ed575f80fd5b6115f98883890161157b565b90965094506020870135915080821115611611575f80fd5b5061161e8782880161157b565b95989497509550505050565b5f6020828403121561163a575f80fd5b813561121a816114fc565b5f8060408385031215611656575f80fd5b8235611661816114fc565b91506020830135611671816114fc565b809150509250929050565b5f806040838503121561168d575f80fd5b50508035926020909101359150565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156116ea57815f19048211156116d0576116d061169c565b808516156116dd57918102915b93841c93908002906116b5565b509250929050565b5f82611700575060016103dd565b8161170c57505f6103dd565b8160018114611722576002811461172c57611748565b60019150506103dd565b60ff84111561173d5761173d61169c565b50506001821b6103dd565b5060208310610133831016604e8410600b841016171561176b575081810a6103dd565b61177583836116b0565b805f19048211156117885761178861169c565b029392505050565b5f61121a60ff8416836116f2565b80820281158282048414176103dd576103dd61169c565b634e487b7160e01b5f52603260045260245ffd5b5f600182016117da576117da61169c565b5060010190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611826575f80fd5b815161121a816114fc565b5f805f60608486031215611843575f80fd5b8351925060208401519150604084015190509250925092565b5f6020828403121561186c575f80fd5b8151801515811461121a575f80fd5b808201808211156103dd576103dd61169c565b818103818111156103dd576103dd61169c565b5f826118bb57634e487b7160e01b5f52601260045260245ffd5b500490565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b8181101561190e5784516001600160a01b0316835293830193918301916001016118e9565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122072c4f8bc7a1aecfeaa0c714f727d7806871a2f1d119f410337cdc8d50d2cd8d364736f6c63430008140033
Deployed Bytecode Sourcemap
13664:8110:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15464:83;;;;;;;;;;-1:-1:-1;15534:5:0;;;;;;;;;;;;-1:-1:-1;;;15534:5:0;;;;15464:83;;;;;;;:::i;:::-;;;;;;;;16297:161;;;;;;;;;;-1:-1:-1;16297:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;16297:161:0;1023:187:1;14738:51:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;14738:51:0;1215:177:1;15741:95:0;;;;;;;;;;;;;:::i;16466:313::-;;;;;;;;;;-1:-1:-1;16466:313:0;;;;;:::i;:::-;;:::i;15650:83::-;;;;;;;;;;-1:-1:-1;15650:83:0;;14357:1;2000:36:1;;1988:2;1973:18;15650:83:0;1858:184:1;20565:352:0;;;;;;;;;;-1:-1:-1;20565:352:0;;;;;:::i;:::-;;:::i;:::-;;15844:119;;;;;;;;;;-1:-1:-1;15844:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;15937:18:0;15910:7;15937:18;;;:9;:18;;;;;;;15844:119;12745:148;;;;;;;;;;;;;:::i;20398:159::-;;;;;;;;;;;;;:::i;14553:53::-;;;;;;;;;;;;;;;;12531:79;;;;;;;;;;-1:-1:-1;12569:7:0;12596:6;12531:79;;-1:-1:-1;;;;;12596:6:0;;;3595:51:1;;3583:2;3568:18;12531:79:0;3449:203:1;14613:55:0;;;;;;;;;;;;;;;;15555:87;;;;;;;;;;-1:-1:-1;15627:7:0;;;;;;;;;;;;-1:-1:-1;;;15627:7:0;;;;15555:87;;15971:167;;;;;;;;;;-1:-1:-1;15971:167:0;;;;;:::i;:::-;;:::i;14675:56::-;;;;;;;;;;;;;;;;21025:707;;;;;;;;;;;;;:::i;16146:143::-;;;;;;;;;;-1:-1:-1;16146:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;16254:18:0;;;16227:7;16254:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;16146:143;20289:101;;;;;;;;;;;;;:::i;20124:157::-;;;;;;;;;;-1:-1:-1;20124:157:0;;;;;:::i;:::-;;:::i;16297:161::-;16372:4;16389:39;10365:10;16412:7;16421:6;16389:8;:39::i;:::-;-1:-1:-1;16446:4:0;16297:161;;;;;:::o;15741:95::-;15794:7;14413:13;14357:1;14413:2;:13;:::i;:::-;14400:26;;:9;:26;:::i;:::-;15814:14;;15741:95;:::o;16466:313::-;16564:4;16581:36;16591:6;16599:9;16610:6;16581:9;:36::i;:::-;16628:121;16637:6;10365:10;16659:89;16697:6;16659:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16659:19:0;;;;;;:11;:19;;;;;;;;10365:10;16659:33;;;;;;;;;;:37;:89::i;:::-;16628:8;:121::i;:::-;-1:-1:-1;16767:4:0;16466:313;;;;;:::o;20565:352::-;20670:20;;;;;:58;;-1:-1:-1;20694:34:0;;;20670:58;20662:67;;;;;;20757:10;20742:12;20782:128;20799:20;;;20782:128;;;20843:51;20853:4;20859:9;;20869:1;20859:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;20873:7;;20881:1;20873:10;;;;;;;:::i;:::-;;;;;;;20887:5;20873:20;;;;:::i;:::-;20843:9;:51::i;:::-;20821:3;;;;:::i;:::-;;;;20782:128;;;;20649:268;20565:352;;;;:::o;12745:148::-;12658:6;;-1:-1:-1;;;;;12658:6:0;10365:10;12658:22;12650:67;;;;-1:-1:-1;;;12650:67:0;;;;;;;:::i;:::-;;;;;;;;;12852:1:::1;12836:6:::0;;12815:40:::1;::::0;-1:-1:-1;;;;;12836:6:0;;::::1;::::0;12815:40:::1;::::0;12852:1;;12815:40:::1;12883:1;12866:19:::0;;-1:-1:-1;;;;;;12866:19:0::1;::::0;;12745:148::o;20398:159::-;12658:6;;-1:-1:-1;;;;;12658:6:0;10365:10;12658:22;12650:67;;;;-1:-1:-1;;;12650:67:0;;;;;;;:::i;:::-;14413:13:::1;14357:1;14413:2;:13;:::i;:::-;14400:26;::::0;:9:::1;:26;:::i;:::-;20451:12;:22:::0;14413:13:::1;14357:1;14413:2;:13;:::i;:::-;14400:26;::::0;:9:::1;:26;:::i;:::-;20484:14;:22:::0;20522:27:::1;14413:13;14357:1;14413:2;:13;:::i;:::-;14400:26;::::0;:9:::1;:26;:::i;:::-;20522:27;::::0;1361:25:1;;;1349:2;1334:18;20522:27:0::1;;;;;;;20398:159::o:0;15971:167::-;16049:4;16066:42;10365:10;16090:9;16101:6;16066:9;:42::i;21025:707::-;12658:6;;-1:-1:-1;;;;;12658:6:0;10365:10;12658:22;12650:67;;;;-1:-1:-1;;;12650:67:0;;;;;;;:::i;:::-;21089:11:::1;::::0;-1:-1:-1;;;21089:11:0;::::1;;;21088:12;21080:47;;;::::0;-1:-1:-1;;;21080:47:0;;6826:2:1;21080:47:0::1;::::0;::::1;6808:21:1::0;6865:2;6845:18;;;6838:30;6904:25;6884:18;;;6877:53;6947:18;;21080:47:0::1;6624:347:1::0;21080:47:0::1;21138:15;:80:::0;;-1:-1:-1;;;;;;21138:80:0::1;21175:42;21138:80:::0;;::::1;::::0;;;21229:58:::1;::::0;21246:4:::1;::::0;14413:13:::1;14357:1;14413:2;:13;:::i;:::-;14400:26;::::0;:9:::1;:26;:::i;21229:58::-;21332:15;;;;;;;;;-1:-1:-1::0;;;;;21332:15:0::1;-1:-1:-1::0;;;;;21332:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;21314:55:0::1;;21378:4;21385:15;;;;;;;;;-1:-1:-1::0;;;;;21385:15:0::1;-1:-1:-1::0;;;;;21385:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21314:94;::::0;-1:-1:-1;;;;;;21314:94:0::1;::::0;;;;;;-1:-1:-1;;;;;7462:15:1;;;21314:94:0::1;::::0;::::1;7444:34:1::0;7514:15;;7494:18;;;7487:43;7379:18;;21314:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21298:13;:110:::0;;-1:-1:-1;;;;;21298:110:0;;::::1;-1:-1:-1::0;;;;;;21298:110:0;;::::1;;::::0;;21419:15:::1;::::0;::::1;:31;21458:21;21489:4;21495:24;21489:4:::0;-1:-1:-1;;;;;15937:18:0;15910:7;15937:18;;;:9;:18;;;;;;;15844:119;21495:24:::1;21520:1;21522::::0;21524:7:::1;12569::::0;12596:6;-1:-1:-1;;;;;12596:6:0;;12531:79;21524:7:::1;21419:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;21419:129:0;;;-1:-1:-1;;;;;7900:15:1;;;21419:129:0::1;::::0;::::1;7882:34:1::0;7932:18;;;7925:34;;;;7975:18;;;7968:34;;;;8018:18;;;8011:34;8082:15;;;8061:19;;;8054:44;21532:15:0::1;8114:19:1::0;;;8107:35;7816:19;;21419:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;21566:13:0::1;::::0;21597:15:::1;::::0;21559:71:::1;::::0;-1:-1:-1;;;21559:71:0;;-1:-1:-1;;;;;21597:15:0;;::::1;21559:71;::::0;::::1;8638:51:1::0;-1:-1:-1;;8705:18:1;;;8698:34;21566:13:0;::::1;::::0;-1:-1:-1;21559:29:0::1;::::0;8611:18:1;;21559:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;21641:11:0::1;:18:::0;;-1:-1:-1;;;;21670:18:0;-1:-1:-1;;;21670:18:0;;;21712:12:::1;21699:10;:25:::0;21025:707::o;20289:101::-;12658:6;;-1:-1:-1;;;;;12658:6:0;10365:10;12658:22;12650:67;;;;-1:-1:-1;;;12650:67:0;;;;;;;:::i;:::-;20347:35:::1;20360:21;20347:12;:35::i;:::-;20289:101::o:0;20124:157::-;12658:6;;-1:-1:-1;;;;;12658:6:0;10365:10;12658:22;12650:67;;;;-1:-1:-1;;;12650:67:0;;;;;;;:::i;:::-;20213:12:::1;:24:::0;;;;20247:13:::1;:26:::0;20124:157::o;16787:335::-;-1:-1:-1;;;;;16880:19:0;;16872:68;;;;-1:-1:-1;;;16872:68:0;;9227:2:1;16872:68:0;;;9209:21:1;9266:2;9246:18;;;9239:30;9305:34;9285:18;;;9278:62;-1:-1:-1;;;9356:18:1;;;9349:34;9400:19;;16872:68:0;9025:400:1;16872:68:0;-1:-1:-1;;;;;16959:21:0;;16951:68;;;;-1:-1:-1;;;16951:68:0;;9632:2:1;16951:68:0;;;9614:21:1;9671:2;9651:18;;;9644:30;9710:34;9690:18;;;9683:62;-1:-1:-1;;;9761:18:1;;;9754:32;9803:19;;16951:68:0;9430:398:1;16951:68:0;-1:-1:-1;;;;;17030:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;17082:32;;1361:25:1;;;17082:32:0;;1334:18:1;17082:32:0;;;;;;;16787:335;;;:::o;17130:2184::-;-1:-1:-1;;;;;17218:18:0;;17210:68;;;;-1:-1:-1;;;17210:68:0;;10035:2:1;17210:68:0;;;10017:21:1;10074:2;10054:18;;;10047:30;10113:34;10093:18;;;10086:62;-1:-1:-1;;;10164:18:1;;;10157:35;10209:19;;17210:68:0;9833:401:1;17210:68:0;-1:-1:-1;;;;;17297:16:0;;17289:64;;;;-1:-1:-1;;;17289:64:0;;10441:2:1;17289:64:0;;;10423:21:1;10480:2;10460:18;;;10453:30;10519:34;10499:18;;;10492:62;-1:-1:-1;;;10570:18:1;;;10563:33;10613:19;;17289:64:0;10239:399:1;17289:64:0;17381:1;17372:6;:10;17364:64;;;;-1:-1:-1;;;17364:64:0;;10845:2:1;17364:64:0;;;10827:21:1;10884:2;10864:18;;;10857:30;10923:34;10903:18;;;10896:62;-1:-1:-1;;;10974:18:1;;;10967:39;11023:19;;17364:64:0;10643:405:1;17364:64:0;17439:17;12596:6;;-1:-1:-1;;;;;17473:15:0;;;12596:6;;17473:15;;;;:32;;-1:-1:-1;12569:7:0;12596:6;-1:-1:-1;;;;;17492:13:0;;;12596:6;;17492:13;;17473:32;17469:1489;;;17534:13;;-1:-1:-1;;;;;17526:21:0;;;17534:13;;17526:21;:55;;;;-1:-1:-1;17565:15:0;;-1:-1:-1;;;;;17551:30:0;;;17565:15;;17551:30;;17526:55;:83;;;;-1:-1:-1;;;;;;17587:22:0;;;;;;:18;:22;;;;;;;;17585:24;17526:83;17522:545;;;17643:76;17715:3;17643:67;17665:15;;17655:9;;:25;17654:55;;17695:14;;17654:55;;;17682:12;;17654:55;17643:6;;:10;:67::i;:::-;:71;;:76::i;:::-;17631:88;;17758:12;;17748:6;:22;;17740:60;;;;-1:-1:-1;;;17740:60:0;;11255:2:1;17740:60:0;;;11237:21:1;11294:2;11274:18;;;11267:30;11333:27;11313:18;;;11306:55;11378:18;;17740:60:0;11053:349:1;17740:60:0;17853:14;;17843:6;17827:13;17837:2;-1:-1:-1;;;;;15937:18:0;15910:7;15937:18;;;:9;:18;;;;;;;15844:119;17827:13;:22;;;;:::i;:::-;:40;;17819:79;;;;-1:-1:-1;;;17819:79:0;;11739:2:1;17819:79:0;;;11721:21:1;11778:2;11758:18;;;11751:30;11817:28;11797:18;;;11790:56;11863:18;;17819:79:0;11537:350:1;17819:79:0;17941:12;17923:10;;17936:1;17923:14;;;;:::i;:::-;:30;17919:103;;;19561:20;;19609:8;17978:24;;;;;;18040:9;:11;;;:9;:11;;;:::i;:::-;;;;;;17522:545;18093:13;;-1:-1:-1;;;;;18087:19:0;;;18093:13;;18087:19;;;;:47;;-1:-1:-1;;;;;;18112:22:0;;;;;;:18;:22;;;;;;;;18110:24;18087:47;18083:167;;;18189:14;;18179:6;18163:13;18173:2;-1:-1:-1;;;;;15937:18:0;15910:7;15937:18;;;:9;:18;;;;;;;15844:119;18163:13;:22;;;;:::i;:::-;:40;;18155:79;;;;-1:-1:-1;;;18155:79:0;;11739:2:1;18155:79:0;;;11721:21:1;11778:2;11758:18;;;11751:30;11817:28;11797:18;;;11790:56;11863:18;;18155:79:0;11537:350:1;18155:79:0;18275:13;;-1:-1:-1;;;;;18269:19:0;;;18275:13;;18269:19;:43;;;;-1:-1:-1;;;;;;18292:20:0;;18307:4;18292:20;;18269:43;18266:174;;;18345:79;18420:3;18345:70;18367:16;;18357:9;;:26;18356:58;;18399:15;;18356:58;;;18385:13;;18345:6;;:10;:70::i;:79::-;18333:91;;18266:174;18505:4;18456:28;15937:18;;;:9;:18;;;;;;18531:6;;-1:-1:-1;;;18531:6:0;;;;18530:7;:32;;;;-1:-1:-1;18549:13:0;;-1:-1:-1;;;;;18541:21:0;;;18549:13;;18541:21;18530:32;:47;;;;-1:-1:-1;18566:11:0;;-1:-1:-1;;;18566:11:0;;;;18530:47;:89;;;;;18602:17;;18581:20;:38;18530:89;:121;;;;;18633:18;;18623:9;;:28;18530:121;18526:421;;;18672:67;18689:49;18693:6;18700:37;18704:20;18725:11;;18700:3;:37::i;:::-;18689:3;:49::i;:::-;18672:16;:67::i;:::-;18787:21;18830:22;;18827:105;;18877:35;18890:21;18877:12;:35::i;:::-;18653:294;18526:421;17507:1451;17469:1489;18973:11;;18970:161;;19041:4;19023:24;;;;:9;:24;;;;;;:39;;19052:9;19023:28;:39::i;:::-;19016:4;18998:24;;;;:9;:24;;;;;;;:64;;;;19080:39;;-1:-1:-1;;;;;19080:39:0;;;;;;;19109:9;1361:25:1;;1349:2;1334:18;;1215:177;19080:39:0;;;;;;;;18970:161;-1:-1:-1;;;;;19157:15:0;;;;;;:9;:15;;;;;;:27;;19177:6;19157:19;:27::i;:::-;-1:-1:-1;;;;;19141:15:0;;;;;;:9;:15;;;;;:43;19209:40;19227:21;:6;19238:9;19227:10;:21::i;:::-;-1:-1:-1;;;;;19209:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;19195:13:0;;;;;;;:9;:13;;;;;:54;;;;19265:41;;;19284:21;:6;19295:9;19284:10;:21::i;:::-;19265:41;;1361:25:1;;;1349:2;1334:18;19265:41:0;;;;;;;17199:2115;17130:2184;;;:::o;11423:190::-;11509:7;11545:12;11537:6;;;;11529:29;;;;-1:-1:-1;;;11529:29:0;;;;;;;;:::i;:::-;-1:-1:-1;11569:9:0;11581:5;11585:1;11581;:5;:::i;:::-;11569:17;11423:190;-1:-1:-1;;;;;11423:190:0:o;20925:92::-;20982:10;;:27;;-1:-1:-1;;;;;20982:10:0;;;;:27;;;;;21002:6;;20982:10;:27;:10;:27;21002:6;20982:10;:27;;;;;;;;;;;;;;;;;;;;;20925:92;:::o;11621:246::-;11679:7;11703:1;11708;11703:6;11699:47;;-1:-1:-1;11733:1:0;11726:8;;11699:47;11756:9;11768:5;11772:1;11768;:5;:::i;:::-;11756:17;-1:-1:-1;11801:1:0;11792:5;11796:1;11756:17;11792:5;:::i;:::-;:10;11784:56;;;;-1:-1:-1;;;11784:56:0;;12449:2:1;11784:56:0;;;12431:21:1;12488:2;12468:18;;;12461:30;12527:34;12507:18;;;12500:62;-1:-1:-1;;;12578:18:1;;;12571:31;12619:19;;11784:56:0;12247:397:1;11784:56:0;11858:1;11621:246;-1:-1:-1;;;11621:246:0:o;11875:132::-;11933:7;11960:39;11964:1;11967;11960:39;;;;;;;;;;;;;;;;;:3;:39::i;19324:98::-;19381:7;19408:1;19406;:3;19405:9;;19413:1;19405:9;;;-1:-1:-1;19411:1:0;19324:98;-1:-1:-1;19324:98:0:o;19633:483::-;15071:6;:13;;-1:-1:-1;;;;15071:13:0;-1:-1:-1;;;15071:13:0;;;19735:16:::1;::::0;;19749:1:::1;19735:16:::0;;;;;::::1;::::0;;-1:-1:-1;;19735:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;19735:16:0::1;19711:40;;19780:4;19762;19767:1;19762:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;19762:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;19806:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;19806:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;19762:7;;19806:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19796:4;19801:1;19796:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;19796:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;19871:15:::1;::::0;19839:62:::1;::::0;19856:4:::1;::::0;19871:15:::1;19889:11:::0;19839:8:::1;:62::i;:::-;19912:15;::::0;:196:::1;::::0;-1:-1:-1;;;19912:196:0;;-1:-1:-1;;;;;19912:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;19993:11;;19912:15:::1;::::0;20035:4;;20062::::1;::::0;20082:15:::1;::::0;19912:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;15107:6:0;:14;;-1:-1:-1;;;;15107:14:0;;;-1:-1:-1;;;;19633:483:0:o;11092:179::-;11150:7;;11182:5;11186:1;11182;:5;:::i;:::-;11170:17;;11211:1;11206;:6;;11198:46;;;;-1:-1:-1;;;11198:46:0;;13968:2:1;11198:46:0;;;13950:21:1;14007:2;13987:18;;;13980:30;14046:29;14026:18;;;14019:57;14093:18;;11198:46:0;13766:351:1;11279:136:0;11337:7;11364:43;11368:1;11371;11364:43;;;;;;;;;;;;;;;;;:3;:43::i;12015:189::-;12101:7;12136:12;12129:5;12121:28;;;;-1:-1:-1;;;12121:28:0;;;;;;;;:::i;:::-;-1:-1:-1;12160:9:0;12172:5;12176:1;12172;:5;:::i;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;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2047:367::-;2110:8;2120:6;2174:3;2167:4;2159:6;2155:17;2151:27;2141:55;;2192:1;2189;2182:12;2141:55;-1:-1:-1;2215:20:1;;2258:18;2247:30;;2244:50;;;2290:1;2287;2280:12;2244:50;2327:4;2319:6;2315:17;2303:29;;2387:3;2380:4;2370:6;2367:1;2363:14;2355:6;2351:27;2347:38;2344:47;2341:67;;;2404:1;2401;2394:12;2341:67;2047:367;;;;;:::o;2419:773::-;2541:6;2549;2557;2565;2618:2;2606:9;2597:7;2593:23;2589:32;2586:52;;;2634:1;2631;2624:12;2586:52;2674:9;2661:23;2703:18;2744:2;2736:6;2733:14;2730:34;;;2760:1;2757;2750:12;2730:34;2799:70;2861:7;2852:6;2841:9;2837:22;2799:70;:::i;:::-;2888:8;;-1:-1:-1;2773:96:1;-1:-1:-1;2976:2:1;2961:18;;2948:32;;-1:-1:-1;2992:16:1;;;2989:36;;;3021:1;3018;3011:12;2989:36;;3060:72;3124:7;3113:8;3102:9;3098:24;3060:72;:::i;:::-;2419:773;;;;-1:-1:-1;3151:8:1;-1:-1:-1;;;;2419:773:1:o;3197:247::-;3256:6;3309:2;3297:9;3288:7;3284:23;3280:32;3277:52;;;3325:1;3322;3315:12;3277:52;3364:9;3351:23;3383:31;3408:5;3383:31;:::i;3657:388::-;3725:6;3733;3786:2;3774:9;3765:7;3761:23;3757:32;3754:52;;;3802:1;3799;3792:12;3754:52;3841:9;3828:23;3860:31;3885:5;3860:31;:::i;:::-;3910:5;-1:-1:-1;3967:2:1;3952:18;;3939:32;3980:33;3939:32;3980:33;:::i;:::-;4032:7;4022:17;;;3657:388;;;;;:::o;4050:248::-;4118:6;4126;4179:2;4167:9;4158:7;4154:23;4150:32;4147:52;;;4195:1;4192;4185:12;4147:52;-1:-1:-1;;4218:23:1;;;4288:2;4273:18;;;4260:32;;-1:-1:-1;4050:248:1:o;4303:127::-;4364:10;4359:3;4355:20;4352:1;4345:31;4395:4;4392:1;4385:15;4419:4;4416:1;4409:15;4435:422;4524:1;4567:5;4524:1;4581:270;4602:7;4592:8;4589:21;4581:270;;;4661:4;4657:1;4653:6;4649:17;4643:4;4640:27;4637:53;;;4670:18;;:::i;:::-;4720:7;4710:8;4706:22;4703:55;;;4740:16;;;;4703:55;4819:22;;;;4779:15;;;;4581:270;;;4585:3;4435:422;;;;;:::o;4862:806::-;4911:5;4941:8;4931:80;;-1:-1:-1;4982:1:1;4996:5;;4931:80;5030:4;5020:76;;-1:-1:-1;5067:1:1;5081:5;;5020:76;5112:4;5130:1;5125:59;;;;5198:1;5193:130;;;;5105:218;;5125:59;5155:1;5146:10;;5169:5;;;5193:130;5230:3;5220:8;5217:17;5214:43;;;5237:18;;:::i;:::-;-1:-1:-1;;5293:1:1;5279:16;;5308:5;;5105:218;;5407:2;5397:8;5394:16;5388:3;5382:4;5379:13;5375:36;5369:2;5359:8;5356:16;5351:2;5345:4;5342:12;5338:35;5335:77;5332:159;;;-1:-1:-1;5444:19:1;;;5476:5;;5332:159;5523:34;5548:8;5542:4;5523:34;:::i;:::-;5593:6;5589:1;5585:6;5581:19;5572:7;5569:32;5566:58;;;5604:18;;:::i;:::-;5642:20;;4862:806;-1:-1:-1;;;4862:806:1:o;5673:140::-;5731:5;5760:47;5801:4;5791:8;5787:19;5781:4;5760:47;:::i;5818:168::-;5891:9;;;5922;;5939:15;;;5933:22;;5919:37;5909:71;;5960:18;;:::i;5991:127::-;6052:10;6047:3;6043:20;6040:1;6033:31;6083:4;6080:1;6073:15;6107:4;6104:1;6097:15;6123:135;6162:3;6183:17;;;6180:43;;6203:18;;:::i;:::-;-1:-1:-1;6250:1:1;6239:13;;6123:135::o;6263:356::-;6465:2;6447:21;;;6484:18;;;6477:30;6543:34;6538:2;6523:18;;6516:62;6610:2;6595:18;;6263:356::o;6976:251::-;7046:6;7099:2;7087:9;7078:7;7074:23;7070:32;7067:52;;;7115:1;7112;7105:12;7067:52;7147:9;7141:16;7166:31;7191:5;7166:31;:::i;8153:306::-;8241:6;8249;8257;8310:2;8298:9;8289:7;8285:23;8281:32;8278:52;;;8326:1;8323;8316:12;8278:52;8355:9;8349:16;8339:26;;8405:2;8394:9;8390:18;8384:25;8374:35;;8449:2;8438:9;8434:18;8428:25;8418:35;;8153:306;;;;;:::o;8743:277::-;8810:6;8863:2;8851:9;8842:7;8838:23;8834:32;8831:52;;;8879:1;8876;8869:12;8831:52;8911:9;8905:16;8964:5;8957:13;8950:21;8943:5;8940:32;8930:60;;8986:1;8983;8976:12;11407:125;11472:9;;;11493:10;;;11490:36;;;11506:18;;:::i;11892:128::-;11959:9;;;11980:11;;;11977:37;;;11994:18;;:::i;12025:217::-;12065:1;12091;12081:132;;12135:10;12130:3;12126:20;12123:1;12116:31;12170:4;12167:1;12160:15;12198:4;12195:1;12188:15;12081:132;-1:-1:-1;12227:9:1;;12025:217::o;12781:980::-;13043:4;13091:3;13080:9;13076:19;13122:6;13111:9;13104:25;13148:2;13186:6;13181:2;13170:9;13166:18;13159:34;13229:3;13224:2;13213:9;13209:18;13202:31;13253:6;13288;13282:13;13319:6;13311;13304:22;13357:3;13346:9;13342:19;13335:26;;13396:2;13388:6;13384:15;13370:29;;13417:1;13427:195;13441:6;13438:1;13435:13;13427:195;;;13506:13;;-1:-1:-1;;;;;13502:39:1;13490:52;;13597:15;;;;13562:12;;;;13538:1;13456:9;13427:195;;;-1:-1:-1;;;;;;;13678:32:1;;;;13673:2;13658:18;;13651:60;-1:-1:-1;;;13742:3:1;13727:19;13720:35;13639:3;12781:980;-1:-1:-1;;;12781:980:1:o
Swarm Source
ipfs://72c4f8bc7a1aecfeaa0c714f727d7806871a2f1d119f410337cdc8d50d2cd8d3
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.