ERC-20
Overview
Max Total Supply
69,000,000,000 SUL
Holders
69
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:
ERC20SULTOKEN
Compiler Version
v0.8.14+commit.80d49f37
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-01-27 */ // SPDX-License-Identifier: UNLICENSED pragma solidity 0.8.14; 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; } } interface ERC20 { function getOwner() external view returns (address); 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); } abstract contract Auth { address internal owner; mapping (address => bool) internal authorizations; constructor(address _owner) { owner = _owner; authorizations[_owner] = true; } modifier onlyOwner() { require(isOwner(msg.sender), "!OWNER"); _; } modifier authorized() { require(isAuthorized(msg.sender), "!AUTHORIZED"); _; } function authorize(address adr) external onlyOwner { authorizations[adr] = true; } function unauthorize(address adr) external onlyOwner { require(adr != owner, "OWNER cant be unauthorized"); authorizations[adr] = false; } function isOwner(address account) public view returns (bool) { return account == owner; } function isAuthorized(address adr) public view returns (bool) { return authorizations[adr]; } function transferOwnership(address payable _newOwner) external onlyOwner { authorizations[owner] = false; owner = _newOwner; authorizations[owner] = true; emit OwnershipTransferred(owner); } function renounceOwnership() external onlyOwner { authorizations[owner] = false; owner = address(0); emit OwnershipTransferred(owner); } event OwnershipTransferred(address owner); } interface IDEXFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IDEXRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } contract ERC20SULTOKEN is ERC20, Auth { using SafeMath for uint256; address immutable WETH; address constant DEAD = 0x000000000000000000000000000000000000dEaD; address constant ZERO = 0x0000000000000000000000000000000000000000; string public constant name = "Sul Token"; string public constant symbol = "SUL"; uint8 public constant decimals = 9; uint256 public constant totalSupply = 69 * 10**9 * 10**decimals; uint256 public _maxTxAmount = totalSupply / 200; uint256 public _maxWalletToken = totalSupply / 100; mapping (address => uint256) public balanceOf; mapping (address => mapping (address => uint256)) _allowances; mapping (address => bool) public isFeeExempt; mapping (address => bool) public isTxLimitExempt; mapping (address => bool) public isWalletLimitExempt; uint256 public marketingFee = 3; uint256 public teamFee = 1; uint256 public totalFee = marketingFee + teamFee; uint256 public constant feeDenominator = 100; uint256 sellMultiplier = 500; uint256 buyMultiplier = 500; uint256 transferMultiplier = 500; address public marketingFeeReceiver; address public teamFeeReceiver; IDEXRouter public router; address public immutable pair; bool public tradingOpen = false; bool public swapEnabled = true; uint256 public swapThreshold = totalSupply / 200; bool inSwap; modifier swapping() { inSwap = true; _; inSwap = false; } constructor () Auth(msg.sender) { router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); WETH = router.WETH(); pair = IDEXFactory(router.factory()).createPair(WETH, address(this)); _allowances[address(this)][address(router)] = type(uint256).max; marketingFeeReceiver = 0xe31ddb26ba077dc7b0eeCC9e9D2Db521b2d745db; teamFeeReceiver = 0x6f4C19ec74E0844203C359f04FfEA66037006C3E; isFeeExempt[msg.sender] = true; isTxLimitExempt[msg.sender] = true; isTxLimitExempt[DEAD] = true; isTxLimitExempt[ZERO] = true; isWalletLimitExempt[msg.sender] = true; isWalletLimitExempt[address(this)] = true; isWalletLimitExempt[DEAD] = true; isWalletLimitExempt[ZERO] = true; balanceOf[msg.sender] = totalSupply; emit Transfer(address(0), msg.sender, totalSupply); } receive() external payable { } function getOwner() external view override returns (address) { return owner; } function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _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 transfer(address recipient, uint256 amount) external override returns (bool) { return _transferFrom(msg.sender, recipient, amount); } function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) { if(_allowances[sender][msg.sender] != type(uint256).max){ _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance"); } return _transferFrom(sender, recipient, amount); } function setMaxWalletPercent_base1000(uint256 maxWallPercent_base1000) external onlyOwner { require(maxWallPercent_base1000 >= 5,"Cannot set max wallet less than 0.5%"); _maxWalletToken = (totalSupply * maxWallPercent_base1000 ) / 1000; } function setMaxTxPercent_base1000(uint256 maxTXPercentage_base1000) external onlyOwner { require(maxTXPercentage_base1000 >= 5,"Cannot set max transaction less than 0.5%"); _maxTxAmount = (totalSupply * maxTXPercentage_base1000 ) / 1000; } function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) { if(inSwap){ return _basicTransfer(sender, recipient, amount); } if(!authorizations[sender] && !authorizations[recipient]){ require(tradingOpen,"Trading not open yet"); } if (!authorizations[sender] && !isWalletLimitExempt[sender] && !isWalletLimitExempt[recipient] && recipient != pair) { require((balanceOf[recipient] + amount) <= _maxWalletToken,"max wallet limit reached"); } require((amount <= _maxTxAmount) || isTxLimitExempt[sender] || isTxLimitExempt[recipient], "Max TX Limit Exceeded"); if(shouldSwapBack()){ swapBack(); } balanceOf[sender] = balanceOf[sender].sub(amount, "Insufficient Balance"); uint256 amountReceived = (isFeeExempt[sender] || isFeeExempt[recipient]) ? amount : takeFee(sender, amount, recipient); balanceOf[recipient] = balanceOf[recipient].add(amountReceived); emit Transfer(sender, recipient, amountReceived); return true; } function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) { balanceOf[sender] = balanceOf[sender].sub(amount, "Insufficient Balance"); balanceOf[recipient] = balanceOf[recipient].add(amount); emit Transfer(sender, recipient, amount); return true; } function takeFee(address sender, uint256 amount, address recipient) internal returns (uint256) { if(amount == 0 || totalFee == 0){ return amount; } uint256 multiplier = transferMultiplier; if(recipient == pair) { multiplier = sellMultiplier; } else if(sender == pair) { multiplier = buyMultiplier; } uint256 feeAmount = amount.mul(totalFee).mul(multiplier).div(feeDenominator * 100); if(feeAmount > 0){ balanceOf[address(this)] = balanceOf[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); } return amount.sub(feeAmount); } function shouldSwapBack() internal view returns (bool) { return msg.sender != pair && !inSwap && swapEnabled && balanceOf[address(this)] >= swapThreshold; } function clearStuckBalance(uint256 amountPercentage) external onlyOwner { uint256 amountETH = address(this).balance; uint256 amountToClear = ( amountETH * amountPercentage ) / 100; payable(msg.sender).transfer(amountToClear); } function clearStuckToken(address tokenAddress, uint256 tokens) external onlyOwner returns (bool success) { if(tokens == 0){ tokens = ERC20(tokenAddress).balanceOf(address(this)); } return ERC20(tokenAddress).transfer(msg.sender, tokens); } function goLive() external onlyOwner { tradingOpen = true; } function swapBack() internal swapping { address[] memory path = new address[](2); path[0] = address(this); path[1] = WETH; router.swapExactTokensForETHSupportingFeeOnTransferTokens( swapThreshold, 0, path, address(this), block.timestamp ); uint256 amountETHMarketing = (marketingFee * address(this).balance ) / totalFee; payable(marketingFeeReceiver).transfer(amountETHMarketing); payable(teamFeeReceiver).transfer(address(this).balance); } function manage_FeeExempt(address[] calldata addresses, bool status) external authorized { for (uint256 i=0; i < addresses.length; ++i) { isFeeExempt[addresses[i]] = status; } } function manage_TxLimitExempt(address[] calldata addresses, bool status) external authorized { for (uint256 i=0; i < addresses.length; ++i) { isTxLimitExempt[addresses[i]] = status; } } function manage_WalletLimitExempt(address[] calldata addresses, bool status) external authorized { for (uint256 i=0; i < addresses.length; ++i) { isWalletLimitExempt[addresses[i]] = status; } } function setMultipliers(uint256 _buy, uint256 _sell, uint256 _trans) external authorized { sellMultiplier = _sell; buyMultiplier = _buy; transferMultiplier = _trans; } function setFees_base100(uint256 _teamFee, uint256 _marketingFee) external onlyOwner { teamFee = _teamFee; marketingFee = _marketingFee; totalFee = teamFee + marketingFee; } function setWallets(address _marketingFeeReceiver, address _teamFeeReceiver) external onlyOwner { marketingFeeReceiver = _marketingFeeReceiver; teamFeeReceiver = _teamFeeReceiver; } function setSwapBackSettings(bool _enabled, uint256 _amount) external onlyOwner { swapEnabled = _enabled; swapThreshold = _amount; } function getCirculatingSupply() public view returns (uint256) { return (totalSupply - balanceOf[DEAD] - balanceOf[ZERO]); } }
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":"address","name":"owner","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":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"adr","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearStuckToken","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeDenominator","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":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"goLive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"account","type":"address"}],"name":"isOwner","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":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_FeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_TxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_WalletLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_teamFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"}],"name":"setFees_base100","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTXPercentage_base1000","type":"uint256"}],"name":"setMaxTxPercent_base1000","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent_base1000","type":"uint256"}],"name":"setMaxWalletPercent_base1000","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setMultipliers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_teamFeeReceiver","type":"address"}],"name":"setWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"teamFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"teamFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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 payable","name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60c060405260c8620000146009600a62000587565b6200002590641010b872006200059f565b620000319190620005c1565b6002556064620000446009600a62000587565b6200005590641010b872006200059f565b620000619190620005c1565b60035560036009556001600a55600a54600954620000809190620005e4565b600b556101f4600c819055600d819055600e556011805461ffff60a01b1916600160a81b17905560c8620000b76009600a62000587565b620000c890641010b872006200059f565b620000d49190620005c1565b601255348015620000e457600080fd5b5060008054336001600160a01b031991821681178355825260016020818152604093849020805460ff191690921790915560118054737a250d5630b4cf539739df2c5dacb4c659f2488d93168317905582516315ab88c960e31b81529251919263ad5c464892600480830193928290030181865afa1580156200016b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001919190620005ff565b6001600160a01b039081166080526011546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa158015620001e2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002089190620005ff565b6080516040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af11580156200025a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002809190620005ff565b6001600160a01b0390811660a05230600081815260056020908152604080832060115490951683529381528382206000199055600f80546001600160a01b031990811673e31ddb26ba077dc7b0eecc9e9d2db521b2d745db1790915560108054909116736f4c19ec74e0844203c359f04ffea66037006c3e17905533825260068152838220805460ff1990811660019081179092556007835285842080548216831790557fb0c2646e02af70b79e3fe9277b98373379f54150e4e26b2b5650139f7a75a65d80548216831790557f6d5257204ebe7d88fd91ae87941cb2dd9d8062b64ae5a2bd2d28ec40b9fbf6df80548216831790556008909252848320805483168217905592825292812080548416831790557f046fee3d77c34a6c5e10c3be6dc4b132c30449dbf4f0bc07684896dd09334299805484168317905580527f5eff886ea0ce6ca488a3d6e336d6c0f75f46d19b42c06ce5ee98e42c96d256c78054909216179055620003f66009600a62000587565b6200040790641010b872006200059f565b33600081815260046020526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200044a6009600a62000587565b6200045b90641010b872006200059f565b60405190815260200160405180910390a36200062a565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620004c9578160001904821115620004ad57620004ad62000472565b80851615620004bb57918102915b93841c93908002906200048d565b509250929050565b600082620004e25750600162000581565b81620004f15750600062000581565b81600181146200050a5760028114620005155762000535565b600191505062000581565b60ff84111562000529576200052962000472565b50506001821b62000581565b5060208310610133831016604e8410600b84101617156200055a575081810a62000581565b62000566838362000488565b80600019048211156200057d576200057d62000472565b0290505b92915050565b60006200059860ff841683620004d1565b9392505050565b6000816000190483118215151615620005bc57620005bc62000472565b500290565b600082620005df57634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115620005fa57620005fa62000472565b500190565b6000602082840312156200061257600080fd5b81516001600160a01b03811681146200059857600080fd5b60805160a05161224a6200066c600039600081816106c4015281816114a50152818161182e01528181611a6f0152611aa3015260006118f8015261224a6000f3fe60806040526004361061027f5760003560e01c806370a082311161014f578063bd9ab537116100c1578063e96fada21161007a578063e96fada214610812578063f0b37c0414610832578063f2fde38b14610852578063f887ea4014610872578063fe9fbb8014610892578063ffb54a99146108b257600080fd5b8063bd9ab53714610726578063c867d60b14610746578063d3f6a15714610776578063d7c94efd14610796578063dd62ed3e146107ac578063df20fd49146107f257600080fd5b8063893d20e811610113578063893d20e8146106355780638b42507f1461065357806395d89b4114610683578063a8aa1b31146106b2578063a9059cbb146106e6578063b6a5d7de1461070657600080fd5b806370a08231146105a7578063715018a6146105d457806377b54bad146105e957806378109e54146106095780637d1db4a51461061f57600080fd5b80632b112e49116101f357806348a5df04116101ac57806348a5df04146104f05780634be9d86914610510578063571ac8b0146105305780636b67c4df146105505780636ce46bc3146105665780636ddd17131461058657600080fd5b80632b112e49146104085780632c28f5791461041d5780632f54bf6e14610432578063313ce567146104615780633f4218e01461048857806340291143146104b857600080fd5b8063095ea7b311610245578063095ea7b314610358578063180b0d7e1461038857806318160ddd1461039d5780631da1db5e146103b25780631df4ccfc146103d257806323b872dd146103e857600080fd5b80621086831461028b578062bff446146102ad5780630445b667146102cd57806306fdde03146102f657806309302dc61461033857600080fd5b3661028657005b600080fd5b34801561029757600080fd5b506102ab6102a6366004611d48565b6108d3565b005b3480156102b957600080fd5b506102ab6102c8366004611d48565b610976565b3480156102d957600080fd5b506102e360125481565b6040519081526020015b60405180910390f35b34801561030257600080fd5b5061032b6040518060400160405280600981526020016829bab6102a37b5b2b760b91b81525081565b6040516102ed9190611dce565b34801561034457600080fd5b506102ab610353366004611e23565b610a0a565b34801561036457600080fd5b50610378610373366004611e51565b610aca565b60405190151581526020016102ed565b34801561039457600080fd5b506102e3606481565b3480156103a957600080fd5b506102e3610b37565b3480156103be57600080fd5b506102ab6103cd366004611e23565b610b55565b3480156103de57600080fd5b506102e3600b5481565b3480156103f457600080fd5b50610378610403366004611e7d565b610bc8565b34801561041457600080fd5b506102e3610c8a565b34801561042957600080fd5b506102ab610d12565b34801561043e57600080fd5b5061037861044d366004611ebe565b6000546001600160a01b0391821691161490565b34801561046d57600080fd5b50610476600981565b60405160ff90911681526020016102ed565b34801561049457600080fd5b506103786104a3366004611ebe565b60066020526000908152604090205460ff1681565b3480156104c457600080fd5b506010546104d8906001600160a01b031681565b6040516001600160a01b0390911681526020016102ed565b3480156104fc57600080fd5b506102ab61050b366004611edb565b610d51565b34801561051c57600080fd5b506102ab61052b366004611d48565b610d96565b34801561053c57600080fd5b5061037861054b366004611ebe565b610e2a565b34801561055c57600080fd5b506102e360095481565b34801561057257600080fd5b506102ab610581366004611efd565b610e38565b34801561059257600080fd5b5060115461037890600160a81b900460ff1681565b3480156105b357600080fd5b506102e36105c2366004611ebe565b60046020526000908152604090205481565b3480156105e057600080fd5b506102ab610e6e565b3480156105f557600080fd5b50610378610604366004611e51565b610efa565b34801561061557600080fd5b506102e360035481565b34801561062b57600080fd5b506102e360025481565b34801561064157600080fd5b506000546001600160a01b03166104d8565b34801561065f57600080fd5b5061037861066e366004611ebe565b60076020526000908152604090205460ff1681565b34801561068f57600080fd5b5061032b6040518060400160405280600381526020016214d55360ea1b81525081565b3480156106be57600080fd5b506104d87f000000000000000000000000000000000000000000000000000000000000000081565b3480156106f257600080fd5b50610378610701366004611e51565b611009565b34801561071257600080fd5b506102ab610721366004611ebe565b611016565b34801561073257600080fd5b506102ab610741366004611e23565b611067565b34801561075257600080fd5b50610378610761366004611ebe565b60086020526000908152604090205460ff1681565b34801561078257600080fd5b506102ab610791366004611f29565b61112d565b3480156107a257600080fd5b506102e3600a5481565b3480156107b857600080fd5b506102e36107c7366004611f29565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b3480156107fe57600080fd5b506102ab61080d366004611f62565b611185565b34801561081e57600080fd5b50600f546104d8906001600160a01b031681565b34801561083e57600080fd5b506102ab61084d366004611ebe565b6111d1565b34801561085e57600080fd5b506102ab61086d366004611ebe565b61127a565b34801561087e57600080fd5b506011546104d8906001600160a01b031681565b34801561089e57600080fd5b506103786108ad366004611ebe565b611326565b3480156108be57600080fd5b5060115461037890600160a01b900460ff1681565b6108dc33611326565b6109015760405162461bcd60e51b81526004016108f890611f80565b60405180910390fd5b60005b8281101561097057816008600086868581811061092357610923611fa5565b90506020020160208101906109389190611ebe565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905561096981611fd1565b9050610904565b50505050565b61097f33611326565b61099b5760405162461bcd60e51b81526004016108f890611f80565b60005b828110156109705781600660008686858181106109bd576109bd611fa5565b90506020020160208101906109d29190611ebe565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610a0381611fd1565b905061099e565b6000546001600160a01b03163314610a345760405162461bcd60e51b81526004016108f890611fea565b6005811015610a915760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420736574206d61782077616c6c6574206c657373207468616e20604482015263302e352560e01b60648201526084016108f8565b6103e881610aa16009600a6120ee565b610ab090641010b872006120fd565b610aba91906120fd565b610ac4919061211c565b60035550565b3360008181526005602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610b259086815260200190565b60405180910390a35060015b92915050565b610b436009600a6120ee565b610b5290641010b872006120fd565b81565b6000546001600160a01b03163314610b7f5760405162461bcd60e51b81526004016108f890611fea565b4760006064610b8e84846120fd565b610b98919061211c565b604051909150339082156108fc029083906000818181858888f19350505050158015610970573d6000803e3d6000fd5b6001600160a01b038316600090815260056020908152604080832033845290915281205460001914610c75576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600582528381203382529091529190912054610c50918490611344565b6001600160a01b03851660009081526005602090815260408083203384529091529020555b610c8084848461137e565b90505b9392505050565b60046020527f17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ec5461dead60009081527f42c63635470f1fb1d6d4b6441c413cb435b1ebb6fedd1896dd5e25d1399147dd54909190610cea6009600a6120ee565b610cf990641010b872006120fd565b610d03919061213e565b610d0d919061213e565b905090565b6000546001600160a01b03163314610d3c5760405162461bcd60e51b81526004016108f890611fea565b6011805460ff60a01b1916600160a01b179055565b6000546001600160a01b03163314610d7b5760405162461bcd60e51b81526004016108f890611fea565b600a8290556009819055610d8f8183612155565b600b555050565b610d9f33611326565b610dbb5760405162461bcd60e51b81526004016108f890611f80565b60005b82811015610970578160076000868685818110610ddd57610ddd611fa5565b9050602002016020810190610df29190611ebe565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610e2381611fd1565b9050610dbe565b6000610b3182600019610aca565b610e4133611326565b610e5d5760405162461bcd60e51b81526004016108f890611f80565b600c91909155600d91909155600e55565b6000546001600160a01b03163314610e985760405162461bcd60e51b81526004016108f890611fea565b600080546001600160a01b03168152600160209081526040808320805460ff1916905582546001600160a01b0319168355519182527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163910160405180910390a1565b600080546001600160a01b03163314610f255760405162461bcd60e51b81526004016108f890611fea565b81600003610f98576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610f71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f95919061216d565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610fe5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c839190612186565b6000610c8333848461137e565b6000546001600160a01b031633146110405760405162461bcd60e51b81526004016108f890611fea565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6000546001600160a01b031633146110915760405162461bcd60e51b81526004016108f890611fea565b60058110156110f45760405162461bcd60e51b815260206004820152602960248201527f43616e6e6f7420736574206d6178207472616e73616374696f6e206c657373206044820152687468616e20302e352560b81b60648201526084016108f8565b6103e8816111046009600a6120ee565b61111390641010b872006120fd565b61111d91906120fd565b611127919061211c565b60025550565b6000546001600160a01b031633146111575760405162461bcd60e51b81526004016108f890611fea565b600f80546001600160a01b039384166001600160a01b03199182161790915560108054929093169116179055565b6000546001600160a01b031633146111af5760405162461bcd60e51b81526004016108f890611fea565b60118054921515600160a81b0260ff60a81b1990931692909217909155601255565b6000546001600160a01b031633146111fb5760405162461bcd60e51b81526004016108f890611fea565b6000546001600160a01b03908116908216036112595760405162461bcd60e51b815260206004820152601a60248201527f4f574e45522063616e7420626520756e617574686f72697a656400000000000060448201526064016108f8565b6001600160a01b03166000908152600160205260409020805460ff19169055565b6000546001600160a01b031633146112a45760405162461bcd60e51b81526004016108f890611fea565b600080546001600160a01b039081168252600160208181526040808520805460ff1990811690915585546001600160a01b03191687861690811787558652818620805490911690931790925592549051911681527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163910160405180910390a150565b6001600160a01b031660009081526001602052604090205460ff1690565b600081848411156113685760405162461bcd60e51b81526004016108f89190611dce565b506000611375848661213e565b95945050505050565b60135460009060ff161561139e5761139784848461173b565b9050610c83565b6001600160a01b03841660009081526001602052604090205460ff161580156113e057506001600160a01b03831660009081526001602052604090205460ff16155b1561143557601154600160a01b900460ff166114355760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016108f8565b6001600160a01b03841660009081526001602052604090205460ff1615801561147757506001600160a01b03841660009081526008602052604090205460ff16155b801561149c57506001600160a01b03831660009081526008602052604090205460ff16155b80156114da57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614155b15611554576003546001600160a01b038416600090815260046020526040902054611506908490612155565b11156115545760405162461bcd60e51b815260206004820152601860248201527f6d61782077616c6c6574206c696d69742072656163686564000000000000000060448201526064016108f8565b6002548211158061157d57506001600160a01b03841660009081526007602052604090205460ff165b806115a057506001600160a01b03831660009081526007602052604090205460ff165b6115e45760405162461bcd60e51b815260206004820152601560248201527413585e08151608131a5b5a5d08115e18d959591959605a1b60448201526064016108f8565b6115ec611821565b156115f9576115f9611894565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03871660009081526004909152919091205461164b918490611344565b6001600160a01b038516600090815260046020908152604080832093909355600690529081205460ff168061169857506001600160a01b03841660009081526006602052604090205460ff165b6116ac576116a7858486611a47565b6116ae565b825b6001600160a01b0385166000908152600460205260409020549091506116d49082611ba4565b6001600160a01b0380861660008181526004602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906117289085815260200190565b60405180910390a3506001949350505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260049091529182205461178c918490611344565b6001600160a01b0380861660009081526004602052604080822093909355908516815220546117bb9083611ba4565b6001600160a01b0380851660008181526004602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061180f9086815260200190565b60405180910390a35060019392505050565b6000336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480159061185f575060135460ff16155b80156118745750601154600160a81b900460ff165b8015610d0d57505060125430600090815260046020526040902054101590565b6013805460ff1916600117905560408051600280825260608201835260009260208301908036833701905050905030816000815181106118d6576118d6611fa5565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000008160018151811061192a5761192a611fa5565b6001600160a01b03928316602091820292909201015260115460125460405163791ac94760e01b8152919092169163791ac9479161197491906000908690309042906004016121a3565b600060405180830381600087803b15801561198e57600080fd5b505af11580156119a2573d6000803e3d6000fd5b505050506000600b54476009546119b991906120fd565b6119c3919061211c565b600f546040519192506001600160a01b03169082156108fc029083906000818181858888f193505050501580156119fe573d6000803e3d6000fd5b506010546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015611a38573d6000803e3d6000fd5b50506013805460ff1916905550565b6000821580611a565750600b54155b15611a62575081610c83565b600e546001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811690841603611aa15750600c54611adf565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b031603611adf5750600d545b6000611b14611aef6064806120fd565b611b0e84611b08600b548a611c0390919063ffffffff16565b90611c03565b90611c85565b90508015611b905730600090815260046020526040902054611b369082611ba4565b30600081815260046020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611b879085815260200190565b60405180910390a35b611b9a8582611cc7565b9695505050505050565b600080611bb18385612155565b905083811015610c835760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016108f8565b600082600003611c1557506000610b31565b6000611c2183856120fd565b905082611c2e858361211c565b14610c835760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016108f8565b6000610c8383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d09565b6000610c8383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611344565b60008183611d2a5760405162461bcd60e51b81526004016108f89190611dce565b506000611375848661211c565b8015158114611d4557600080fd5b50565b600080600060408486031215611d5d57600080fd5b833567ffffffffffffffff80821115611d7557600080fd5b818601915086601f830112611d8957600080fd5b813581811115611d9857600080fd5b8760208260051b8501011115611dad57600080fd5b60209283019550935050840135611dc381611d37565b809150509250925092565b600060208083528351808285015260005b81811015611dfb57858101830151858201604001528201611ddf565b81811115611e0d576000604083870101525b50601f01601f1916929092016040019392505050565b600060208284031215611e3557600080fd5b5035919050565b6001600160a01b0381168114611d4557600080fd5b60008060408385031215611e6457600080fd5b8235611e6f81611e3c565b946020939093013593505050565b600080600060608486031215611e9257600080fd5b8335611e9d81611e3c565b92506020840135611ead81611e3c565b929592945050506040919091013590565b600060208284031215611ed057600080fd5b8135610c8381611e3c565b60008060408385031215611eee57600080fd5b50508035926020909101359150565b600080600060608486031215611f1257600080fd5b505081359360208301359350604090920135919050565b60008060408385031215611f3c57600080fd5b8235611f4781611e3c565b91506020830135611f5781611e3c565b809150509250929050565b60008060408385031215611f7557600080fd5b8235611e6f81611d37565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611fe357611fe3611fbb565b5060010190565b60208082526006908201526510a7aba722a960d11b604082015260600190565b600181815b8085111561204557816000190482111561202b5761202b611fbb565b8085161561203857918102915b93841c939080029061200f565b509250929050565b60008261205c57506001610b31565b8161206957506000610b31565b816001811461207f5760028114612089576120a5565b6001915050610b31565b60ff84111561209a5761209a611fbb565b50506001821b610b31565b5060208310610133831016604e8410600b84101617156120c8575081810a610b31565b6120d2838361200a565b80600019048211156120e6576120e6611fbb565b029392505050565b6000610c8360ff84168361204d565b600081600019048311821515161561211757612117611fbb565b500290565b60008261213957634e487b7160e01b600052601260045260246000fd5b500490565b60008282101561215057612150611fbb565b500390565b6000821982111561216857612168611fbb565b500190565b60006020828403121561217f57600080fd5b5051919050565b60006020828403121561219857600080fd5b8151610c8381611d37565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156121f35784516001600160a01b0316835293830193918301916001016121ce565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212204cb5435aaf79cce375a32dc122f7212dd91eb3be3bc92d5b0fbb0dad8b47e6ee64736f6c634300080e0033
Deployed Bytecode
0x60806040526004361061027f5760003560e01c806370a082311161014f578063bd9ab537116100c1578063e96fada21161007a578063e96fada214610812578063f0b37c0414610832578063f2fde38b14610852578063f887ea4014610872578063fe9fbb8014610892578063ffb54a99146108b257600080fd5b8063bd9ab53714610726578063c867d60b14610746578063d3f6a15714610776578063d7c94efd14610796578063dd62ed3e146107ac578063df20fd49146107f257600080fd5b8063893d20e811610113578063893d20e8146106355780638b42507f1461065357806395d89b4114610683578063a8aa1b31146106b2578063a9059cbb146106e6578063b6a5d7de1461070657600080fd5b806370a08231146105a7578063715018a6146105d457806377b54bad146105e957806378109e54146106095780637d1db4a51461061f57600080fd5b80632b112e49116101f357806348a5df04116101ac57806348a5df04146104f05780634be9d86914610510578063571ac8b0146105305780636b67c4df146105505780636ce46bc3146105665780636ddd17131461058657600080fd5b80632b112e49146104085780632c28f5791461041d5780632f54bf6e14610432578063313ce567146104615780633f4218e01461048857806340291143146104b857600080fd5b8063095ea7b311610245578063095ea7b314610358578063180b0d7e1461038857806318160ddd1461039d5780631da1db5e146103b25780631df4ccfc146103d257806323b872dd146103e857600080fd5b80621086831461028b578062bff446146102ad5780630445b667146102cd57806306fdde03146102f657806309302dc61461033857600080fd5b3661028657005b600080fd5b34801561029757600080fd5b506102ab6102a6366004611d48565b6108d3565b005b3480156102b957600080fd5b506102ab6102c8366004611d48565b610976565b3480156102d957600080fd5b506102e360125481565b6040519081526020015b60405180910390f35b34801561030257600080fd5b5061032b6040518060400160405280600981526020016829bab6102a37b5b2b760b91b81525081565b6040516102ed9190611dce565b34801561034457600080fd5b506102ab610353366004611e23565b610a0a565b34801561036457600080fd5b50610378610373366004611e51565b610aca565b60405190151581526020016102ed565b34801561039457600080fd5b506102e3606481565b3480156103a957600080fd5b506102e3610b37565b3480156103be57600080fd5b506102ab6103cd366004611e23565b610b55565b3480156103de57600080fd5b506102e3600b5481565b3480156103f457600080fd5b50610378610403366004611e7d565b610bc8565b34801561041457600080fd5b506102e3610c8a565b34801561042957600080fd5b506102ab610d12565b34801561043e57600080fd5b5061037861044d366004611ebe565b6000546001600160a01b0391821691161490565b34801561046d57600080fd5b50610476600981565b60405160ff90911681526020016102ed565b34801561049457600080fd5b506103786104a3366004611ebe565b60066020526000908152604090205460ff1681565b3480156104c457600080fd5b506010546104d8906001600160a01b031681565b6040516001600160a01b0390911681526020016102ed565b3480156104fc57600080fd5b506102ab61050b366004611edb565b610d51565b34801561051c57600080fd5b506102ab61052b366004611d48565b610d96565b34801561053c57600080fd5b5061037861054b366004611ebe565b610e2a565b34801561055c57600080fd5b506102e360095481565b34801561057257600080fd5b506102ab610581366004611efd565b610e38565b34801561059257600080fd5b5060115461037890600160a81b900460ff1681565b3480156105b357600080fd5b506102e36105c2366004611ebe565b60046020526000908152604090205481565b3480156105e057600080fd5b506102ab610e6e565b3480156105f557600080fd5b50610378610604366004611e51565b610efa565b34801561061557600080fd5b506102e360035481565b34801561062b57600080fd5b506102e360025481565b34801561064157600080fd5b506000546001600160a01b03166104d8565b34801561065f57600080fd5b5061037861066e366004611ebe565b60076020526000908152604090205460ff1681565b34801561068f57600080fd5b5061032b6040518060400160405280600381526020016214d55360ea1b81525081565b3480156106be57600080fd5b506104d87f00000000000000000000000001f46c47a45b93d486e67f4b0f1ef15b92cb516681565b3480156106f257600080fd5b50610378610701366004611e51565b611009565b34801561071257600080fd5b506102ab610721366004611ebe565b611016565b34801561073257600080fd5b506102ab610741366004611e23565b611067565b34801561075257600080fd5b50610378610761366004611ebe565b60086020526000908152604090205460ff1681565b34801561078257600080fd5b506102ab610791366004611f29565b61112d565b3480156107a257600080fd5b506102e3600a5481565b3480156107b857600080fd5b506102e36107c7366004611f29565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b3480156107fe57600080fd5b506102ab61080d366004611f62565b611185565b34801561081e57600080fd5b50600f546104d8906001600160a01b031681565b34801561083e57600080fd5b506102ab61084d366004611ebe565b6111d1565b34801561085e57600080fd5b506102ab61086d366004611ebe565b61127a565b34801561087e57600080fd5b506011546104d8906001600160a01b031681565b34801561089e57600080fd5b506103786108ad366004611ebe565b611326565b3480156108be57600080fd5b5060115461037890600160a01b900460ff1681565b6108dc33611326565b6109015760405162461bcd60e51b81526004016108f890611f80565b60405180910390fd5b60005b8281101561097057816008600086868581811061092357610923611fa5565b90506020020160208101906109389190611ebe565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905561096981611fd1565b9050610904565b50505050565b61097f33611326565b61099b5760405162461bcd60e51b81526004016108f890611f80565b60005b828110156109705781600660008686858181106109bd576109bd611fa5565b90506020020160208101906109d29190611ebe565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610a0381611fd1565b905061099e565b6000546001600160a01b03163314610a345760405162461bcd60e51b81526004016108f890611fea565b6005811015610a915760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420736574206d61782077616c6c6574206c657373207468616e20604482015263302e352560e01b60648201526084016108f8565b6103e881610aa16009600a6120ee565b610ab090641010b872006120fd565b610aba91906120fd565b610ac4919061211c565b60035550565b3360008181526005602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610b259086815260200190565b60405180910390a35060015b92915050565b610b436009600a6120ee565b610b5290641010b872006120fd565b81565b6000546001600160a01b03163314610b7f5760405162461bcd60e51b81526004016108f890611fea565b4760006064610b8e84846120fd565b610b98919061211c565b604051909150339082156108fc029083906000818181858888f19350505050158015610970573d6000803e3d6000fd5b6001600160a01b038316600090815260056020908152604080832033845290915281205460001914610c75576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600582528381203382529091529190912054610c50918490611344565b6001600160a01b03851660009081526005602090815260408083203384529091529020555b610c8084848461137e565b90505b9392505050565b60046020527f17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ec5461dead60009081527f42c63635470f1fb1d6d4b6441c413cb435b1ebb6fedd1896dd5e25d1399147dd54909190610cea6009600a6120ee565b610cf990641010b872006120fd565b610d03919061213e565b610d0d919061213e565b905090565b6000546001600160a01b03163314610d3c5760405162461bcd60e51b81526004016108f890611fea565b6011805460ff60a01b1916600160a01b179055565b6000546001600160a01b03163314610d7b5760405162461bcd60e51b81526004016108f890611fea565b600a8290556009819055610d8f8183612155565b600b555050565b610d9f33611326565b610dbb5760405162461bcd60e51b81526004016108f890611f80565b60005b82811015610970578160076000868685818110610ddd57610ddd611fa5565b9050602002016020810190610df29190611ebe565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610e2381611fd1565b9050610dbe565b6000610b3182600019610aca565b610e4133611326565b610e5d5760405162461bcd60e51b81526004016108f890611f80565b600c91909155600d91909155600e55565b6000546001600160a01b03163314610e985760405162461bcd60e51b81526004016108f890611fea565b600080546001600160a01b03168152600160209081526040808320805460ff1916905582546001600160a01b0319168355519182527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163910160405180910390a1565b600080546001600160a01b03163314610f255760405162461bcd60e51b81526004016108f890611fea565b81600003610f98576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610f71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f95919061216d565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610fe5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c839190612186565b6000610c8333848461137e565b6000546001600160a01b031633146110405760405162461bcd60e51b81526004016108f890611fea565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6000546001600160a01b031633146110915760405162461bcd60e51b81526004016108f890611fea565b60058110156110f45760405162461bcd60e51b815260206004820152602960248201527f43616e6e6f7420736574206d6178207472616e73616374696f6e206c657373206044820152687468616e20302e352560b81b60648201526084016108f8565b6103e8816111046009600a6120ee565b61111390641010b872006120fd565b61111d91906120fd565b611127919061211c565b60025550565b6000546001600160a01b031633146111575760405162461bcd60e51b81526004016108f890611fea565b600f80546001600160a01b039384166001600160a01b03199182161790915560108054929093169116179055565b6000546001600160a01b031633146111af5760405162461bcd60e51b81526004016108f890611fea565b60118054921515600160a81b0260ff60a81b1990931692909217909155601255565b6000546001600160a01b031633146111fb5760405162461bcd60e51b81526004016108f890611fea565b6000546001600160a01b03908116908216036112595760405162461bcd60e51b815260206004820152601a60248201527f4f574e45522063616e7420626520756e617574686f72697a656400000000000060448201526064016108f8565b6001600160a01b03166000908152600160205260409020805460ff19169055565b6000546001600160a01b031633146112a45760405162461bcd60e51b81526004016108f890611fea565b600080546001600160a01b039081168252600160208181526040808520805460ff1990811690915585546001600160a01b03191687861690811787558652818620805490911690931790925592549051911681527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163910160405180910390a150565b6001600160a01b031660009081526001602052604090205460ff1690565b600081848411156113685760405162461bcd60e51b81526004016108f89190611dce565b506000611375848661213e565b95945050505050565b60135460009060ff161561139e5761139784848461173b565b9050610c83565b6001600160a01b03841660009081526001602052604090205460ff161580156113e057506001600160a01b03831660009081526001602052604090205460ff16155b1561143557601154600160a01b900460ff166114355760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016108f8565b6001600160a01b03841660009081526001602052604090205460ff1615801561147757506001600160a01b03841660009081526008602052604090205460ff16155b801561149c57506001600160a01b03831660009081526008602052604090205460ff16155b80156114da57507f00000000000000000000000001f46c47a45b93d486e67f4b0f1ef15b92cb51666001600160a01b0316836001600160a01b031614155b15611554576003546001600160a01b038416600090815260046020526040902054611506908490612155565b11156115545760405162461bcd60e51b815260206004820152601860248201527f6d61782077616c6c6574206c696d69742072656163686564000000000000000060448201526064016108f8565b6002548211158061157d57506001600160a01b03841660009081526007602052604090205460ff165b806115a057506001600160a01b03831660009081526007602052604090205460ff165b6115e45760405162461bcd60e51b815260206004820152601560248201527413585e08151608131a5b5a5d08115e18d959591959605a1b60448201526064016108f8565b6115ec611821565b156115f9576115f9611894565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03871660009081526004909152919091205461164b918490611344565b6001600160a01b038516600090815260046020908152604080832093909355600690529081205460ff168061169857506001600160a01b03841660009081526006602052604090205460ff165b6116ac576116a7858486611a47565b6116ae565b825b6001600160a01b0385166000908152600460205260409020549091506116d49082611ba4565b6001600160a01b0380861660008181526004602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906117289085815260200190565b60405180910390a3506001949350505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260049091529182205461178c918490611344565b6001600160a01b0380861660009081526004602052604080822093909355908516815220546117bb9083611ba4565b6001600160a01b0380851660008181526004602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061180f9086815260200190565b60405180910390a35060019392505050565b6000336001600160a01b037f00000000000000000000000001f46c47a45b93d486e67f4b0f1ef15b92cb5166161480159061185f575060135460ff16155b80156118745750601154600160a81b900460ff165b8015610d0d57505060125430600090815260046020526040902054101590565b6013805460ff1916600117905560408051600280825260608201835260009260208301908036833701905050905030816000815181106118d6576118d6611fa5565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28160018151811061192a5761192a611fa5565b6001600160a01b03928316602091820292909201015260115460125460405163791ac94760e01b8152919092169163791ac9479161197491906000908690309042906004016121a3565b600060405180830381600087803b15801561198e57600080fd5b505af11580156119a2573d6000803e3d6000fd5b505050506000600b54476009546119b991906120fd565b6119c3919061211c565b600f546040519192506001600160a01b03169082156108fc029083906000818181858888f193505050501580156119fe573d6000803e3d6000fd5b506010546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015611a38573d6000803e3d6000fd5b50506013805460ff1916905550565b6000821580611a565750600b54155b15611a62575081610c83565b600e546001600160a01b037f00000000000000000000000001f46c47a45b93d486e67f4b0f1ef15b92cb5166811690841603611aa15750600c54611adf565b7f00000000000000000000000001f46c47a45b93d486e67f4b0f1ef15b92cb51666001600160a01b0316856001600160a01b031603611adf5750600d545b6000611b14611aef6064806120fd565b611b0e84611b08600b548a611c0390919063ffffffff16565b90611c03565b90611c85565b90508015611b905730600090815260046020526040902054611b369082611ba4565b30600081815260046020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611b879085815260200190565b60405180910390a35b611b9a8582611cc7565b9695505050505050565b600080611bb18385612155565b905083811015610c835760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016108f8565b600082600003611c1557506000610b31565b6000611c2183856120fd565b905082611c2e858361211c565b14610c835760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016108f8565b6000610c8383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d09565b6000610c8383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611344565b60008183611d2a5760405162461bcd60e51b81526004016108f89190611dce565b506000611375848661211c565b8015158114611d4557600080fd5b50565b600080600060408486031215611d5d57600080fd5b833567ffffffffffffffff80821115611d7557600080fd5b818601915086601f830112611d8957600080fd5b813581811115611d9857600080fd5b8760208260051b8501011115611dad57600080fd5b60209283019550935050840135611dc381611d37565b809150509250925092565b600060208083528351808285015260005b81811015611dfb57858101830151858201604001528201611ddf565b81811115611e0d576000604083870101525b50601f01601f1916929092016040019392505050565b600060208284031215611e3557600080fd5b5035919050565b6001600160a01b0381168114611d4557600080fd5b60008060408385031215611e6457600080fd5b8235611e6f81611e3c565b946020939093013593505050565b600080600060608486031215611e9257600080fd5b8335611e9d81611e3c565b92506020840135611ead81611e3c565b929592945050506040919091013590565b600060208284031215611ed057600080fd5b8135610c8381611e3c565b60008060408385031215611eee57600080fd5b50508035926020909101359150565b600080600060608486031215611f1257600080fd5b505081359360208301359350604090920135919050565b60008060408385031215611f3c57600080fd5b8235611f4781611e3c565b91506020830135611f5781611e3c565b809150509250929050565b60008060408385031215611f7557600080fd5b8235611e6f81611d37565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611fe357611fe3611fbb565b5060010190565b60208082526006908201526510a7aba722a960d11b604082015260600190565b600181815b8085111561204557816000190482111561202b5761202b611fbb565b8085161561203857918102915b93841c939080029061200f565b509250929050565b60008261205c57506001610b31565b8161206957506000610b31565b816001811461207f5760028114612089576120a5565b6001915050610b31565b60ff84111561209a5761209a611fbb565b50506001821b610b31565b5060208310610133831016604e8410600b84101617156120c8575081810a610b31565b6120d2838361200a565b80600019048211156120e6576120e6611fbb565b029392505050565b6000610c8360ff84168361204d565b600081600019048311821515161561211757612117611fbb565b500290565b60008261213957634e487b7160e01b600052601260045260246000fd5b500490565b60008282101561215057612150611fbb565b500390565b6000821982111561216857612168611fbb565b500190565b60006020828403121561217f57600080fd5b5051919050565b60006020828403121561219857600080fd5b8151610c8381611d37565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156121f35784516001600160a01b0316835293830193918301916001016121ce565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212204cb5435aaf79cce375a32dc122f7212dd91eb3be3bc92d5b0fbb0dad8b47e6ee64736f6c634300080e0033
Deployed Bytecode Sourcemap
3737:9417:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11975:229;;;;;;;;;;-1:-1:-1;11975:229:0;;;;;:::i;:::-;;:::i;:::-;;11525:213;;;;;;;;;;-1:-1:-1;11525:213:0;;;;;:::i;:::-;;:::i;5119:48::-;;;;;;;;;;;;;;;;;;;1038:25:1;;;1026:2;1011:18;5119:48:0;;;;;;;;3994:41;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3994:41:0;;;;;;;;;;;;:::i;7339:261::-;;;;;;;;;;-1:-1:-1;7339:261:0;;;;;:::i;:::-;;:::i;6443:216::-;;;;;;;;;;-1:-1:-1;6443:216:0;;;;;:::i;:::-;;:::i;:::-;;;2482:14:1;;2475:22;2457:41;;2445:2;2430:18;6443:216:0;2317:187:1;4729:44:0;;;;;;;;;;;;4770:3;4729:44;;4129:63;;;;;;;;;;;;;:::i;10277:259::-;;;;;;;;;;-1:-1:-1;10277:259:0;;;;;:::i;:::-;;:::i;4674:48::-;;;;;;;;;;;;;;;;6961:370;;;;;;;;;;-1:-1:-1;6961:370:0;;;;;:::i;:::-;;:::i;13014:137::-;;;;;;;;;;;;;:::i;10836:74::-;;;;;;;;;;;;;:::i;2572:103::-;;;;;;;;;;-1:-1:-1;2572:103:0;;;;;:::i;:::-;2627:4;2662:5;-1:-1:-1;;;;;2651:16:0;;;2662:5;;2651:16;;2572:103;4086:34;;;;;;;;;;;;4119:1;4086:34;;;;;3394:4:1;3382:17;;;3364:36;;3352:2;3337:18;4086:34:0;3222:184:1;4436:44:0;;;;;;;;;;-1:-1:-1;4436:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;4934:30;;;;;;;;;;-1:-1:-1;4934:30:0;;;;-1:-1:-1;;;;;4934:30:0;;;;;;-1:-1:-1;;;;;3575:32:1;;;3557:51;;3545:2;3530:18;4934:30:0;3411:203:1;12419:208:0;;;;;;;;;;-1:-1:-1;12419:208:0;;;;;:::i;:::-;;:::i;11746:221::-;;;;;;;;;;-1:-1:-1;11746:221:0;;;;;:::i;:::-;;:::i;6667:122::-;;;;;;;;;;-1:-1:-1;6667:122:0;;;;;:::i;:::-;;:::i;4603:31::-;;;;;;;;;;;;;;;;12212:199;;;;;;;;;;-1:-1:-1;12212:199:0;;;;;:::i;:::-;;:::i;5082:30::-;;;;;;;;;;-1:-1:-1;5082:30:0;;;;-1:-1:-1;;;5082:30:0;;;;;;4314:45;;;;;;;;;;-1:-1:-1;4314:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;3037:168;;;;;;;;;;;;;:::i;10544:284::-;;;;;;;;;;-1:-1:-1;10544:284:0;;;;;:::i;:::-;;:::i;4255:50::-;;;;;;;;;;;;;;;;4201:47;;;;;;;;;;;;;;;;6218:78;;;;;;;;;;-1:-1:-1;6270:7:0;6288:5;-1:-1:-1;;;;;6288:5:0;6218:78;;4487:48;;;;;;;;;;-1:-1:-1;4487:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;4042:37;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;4042:37:0;;;;;5004:29;;;;;;;;;;;;;;;6797:156;;;;;;;;;;-1:-1:-1;6797:156:0;;;;;:::i;:::-;;:::i;2299:96::-;;;;;;;;;;-1:-1:-1;2299:96:0;;;;;:::i;:::-;;:::i;7606:262::-;;;;;;;;;;-1:-1:-1;7606:262:0;;;;;:::i;:::-;;:::i;4542:52::-;;;;;;;;;;-1:-1:-1;4542:52:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12635:204;;;;;;;;;;-1:-1:-1;12635:204:0;;;;;:::i;:::-;;:::i;4641:26::-;;;;;;;;;;;;;;;;6302:133;;;;;;;;;;-1:-1:-1;6302:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;6404:19:0;;;6386:7;6404:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;6302:133;12847:155;;;;;;;;;;-1:-1:-1;12847:155:0;;;;;:::i;:::-;;:::i;4892:35::-;;;;;;;;;;-1:-1:-1;4892:35:0;;;;-1:-1:-1;;;;;4892:35:0;;;2403:161;;;;;;;;;;-1:-1:-1;2403:161:0;;;;;:::i;:::-;;:::i;2798:231::-;;;;;;;;;;-1:-1:-1;2798:231:0;;;;;:::i;:::-;;:::i;4973:24::-;;;;;;;;;;-1:-1:-1;4973:24:0;;;;-1:-1:-1;;;;;4973:24:0;;;2683:107;;;;;;;;;;-1:-1:-1;2683:107:0;;;;;:::i;:::-;;:::i;5042:31::-;;;;;;;;;;-1:-1:-1;5042:31:0;;;;-1:-1:-1;;;5042:31:0;;;;;;11975:229;2240:24;2253:10;2240:12;:24::i;:::-;2232:48;;;;-1:-1:-1;;;2232:48:0;;;;;;;:::i;:::-;;;;;;;;;12088:9:::1;12083:114;12101:20:::0;;::::1;12083:114;;;12179:6;12143:19;:33;12163:9;;12173:1;12163:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12143:33:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;12143:33:0;:42;;-1:-1:-1;;12143:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12123:3:::1;::::0;::::1;:::i;:::-;;;12083:114;;;;11975:229:::0;;;:::o;11525:213::-;2240:24;2253:10;2240:12;:24::i;:::-;2232:48;;;;-1:-1:-1;;;2232:48:0;;;;;;;:::i;:::-;11630:9:::1;11625:106;11643:20:::0;;::::1;11625:106;;;11713:6;11685:11;:25;11697:9;;11707:1;11697:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11685:25:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;11685:25:0;:34;;-1:-1:-1;;11685:34:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11665:3:::1;::::0;::::1;:::i;:::-;;;11625:106;;7339:261:::0;2627:4;2662:5;-1:-1:-1;;;;;2662:5:0;2158:10;2651:16;2142:38;;;;-1:-1:-1;;;2142:38:0;;;;;;;:::i;:::-;7475:1:::1;7448:23;:28;;7440:76;;;::::0;-1:-1:-1;;;7440:76:0;;6666:2:1;7440:76:0::1;::::0;::::1;6648:21:1::0;6705:2;6685:18;;;6678:30;6744:34;6724:18;;;6717:62;-1:-1:-1;;;6795:18:1;;;6788:34;6839:19;;7440:76:0::1;6464:400:1::0;7440:76:0::1;7588:4;7560:23:::0;4180:12:::1;4119:1;4180:2;:12;:::i;:::-;4167:25;::::0;:10:::1;:25;:::i;:::-;7546:37;;;;:::i;:::-;7545:47;;;;:::i;:::-;7527:15;:65:::0;-1:-1:-1;7339:261:0:o;6443:216::-;6547:10;6518:4;6535:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;6535:32:0;;;;;;;;;;:41;;;6592:37;6518:4;;6535:32;;6592:37;;;;6570:6;1038:25:1;;1026:2;1011:18;;892:177;6592:37:0;;;;;;;;-1:-1:-1;6647:4:0;6443:216;;;;;:::o;4129:63::-;4180:12;4119:1;4180:2;:12;:::i;:::-;4167:25;;:10;:25;:::i;:::-;4129:63;:::o;10277:259::-;2627:4;2662:5;-1:-1:-1;;;;;2662:5:0;2158:10;2651:16;2142:38;;;;-1:-1:-1;;;2142:38:0;;;;;;;:::i;:::-;10380:21:::1;10360:17;10471:3;10438:28;10450:16:::0;10380:21;10438:28:::1;:::i;:::-;10436:38;;;;:::i;:::-;10485:43;::::0;10412:62;;-1:-1:-1;10493:10:0::1;::::0;10485:43;::::1;;;::::0;10412:62;;10485:43:::1;::::0;;;10412:62;10493:10;10485:43;::::1;;;;;;;;;;;;;::::0;::::1;;;;6961:370:::0;-1:-1:-1;;;;;7081:19:0;;7061:4;7081:19;;;:11;:19;;;;;;;;7101:10;7081:31;;;;;;;;-1:-1:-1;;7081:52:0;7078:186;;7183:69;;;;;;;;;;;-1:-1:-1;;;7183:69:0;;;;;;;;-1:-1:-1;;;;;7183:19:0;;-1:-1:-1;7183:19:0;;;:11;:19;;;;;7203:10;7183:31;;;;;;;;;;:69;;7219:6;;7183:35;:69::i;:::-;-1:-1:-1;;;;;7149:19:0;;;;;;:11;:19;;;;;;;;7169:10;7149:31;;;;;;;:103;7078:186;7283:40;7297:6;7305:9;7316:6;7283:13;:40::i;:::-;7276:47;;6961:370;;;;;;:::o;13014:137::-;13127:9;:15;;;;3870:42;13067:7;13109:15;;;;;13067:7;;13127:15;4180:12;4119:1;4180:2;:12;:::i;:::-;4167:25;;:10;:25;:::i;:::-;13095:29;;;;:::i;:::-;:47;;;;:::i;:::-;13087:56;;13014:137;:::o;10836:74::-;2627:4;2662:5;-1:-1:-1;;;;;2662:5:0;2158:10;2651:16;2142:38;;;;-1:-1:-1;;;2142:38:0;;;;;;;:::i;:::-;10884:11:::1;:18:::0;;-1:-1:-1;;;;10884:18:0::1;-1:-1:-1::0;;;10884:18:0::1;::::0;;10836:74::o;12419:208::-;2627:4;2662:5;-1:-1:-1;;;;;2662:5:0;2158:10;2651:16;2142:38;;;;-1:-1:-1;;;2142:38:0;;;;;;;:::i;:::-;12516:7:::1;:18:::0;;;12545:12:::1;:28:::0;;;12597:22:::1;12560:13:::0;12526:8;12597:22:::1;:::i;:::-;12586:8;:33:::0;-1:-1:-1;;12419:208:0:o;11746:221::-;2240:24;2253:10;2240:12;:24::i;:::-;2232:48;;;;-1:-1:-1;;;2232:48:0;;;;;;;:::i;:::-;11855:9:::1;11850:110;11868:20:::0;;::::1;11850:110;;;11942:6;11910:15;:29;11926:9;;11936:1;11926:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11910:29:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;11910:29:0;:38;;-1:-1:-1;;11910:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11890:3:::1;::::0;::::1;:::i;:::-;;;11850:110;;6667:122:::0;6722:4;6746:35;6754:7;-1:-1:-1;;6746:7:0;:35::i;12212:199::-;2240:24;2253:10;2240:12;:24::i;:::-;2232:48;;;;-1:-1:-1;;;2232:48:0;;;;;;;:::i;:::-;12312:14:::1;:22:::0;;;;12345:13:::1;:20:::0;;;;12376:18:::1;:27:::0;12212:199::o;3037:168::-;2627:4;2662:5;-1:-1:-1;;;;;2662:5:0;2158:10;2651:16;2142:38;;;;-1:-1:-1;;;2142:38:0;;;;;;;:::i;:::-;3120:5:::1;3111::::0;;-1:-1:-1;;;;;3111:5:0::1;3096:21:::0;;:14:::1;:21;::::0;;;;;;;:29;;-1:-1:-1;;3096:29:0::1;::::0;;3136:18;;-1:-1:-1;;;;;;3136:18:0::1;::::0;;3170:27;3557:51:1;;;3170:27:0::1;::::0;3530:18:1;3170:27:0::1;;;;;;;3037:168::o:0;10544:284::-;10635:12;2662:5;;-1:-1:-1;;;;;2662:5:0;2158:10;2651:16;2142:38;;;;-1:-1:-1;;;2142:38:0;;;;;;;:::i;:::-;10663:6:::1;10673:1;10663:11:::0;10660:95:::1;;10699:44;::::0;-1:-1:-1;;;10699:44:0;;10737:4:::1;10699:44;::::0;::::1;3557:51:1::0;-1:-1:-1;;;;;10699:29:0;::::1;::::0;::::1;::::0;3530:18:1;;10699:44:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10690:53;;10660:95;10772:48;::::0;-1:-1:-1;;;10772:48:0;;10801:10:::1;10772:48;::::0;::::1;9273:51:1::0;9340:18;;;9333:34;;;-1:-1:-1;;;;;10772:28:0;::::1;::::0;::::1;::::0;9246:18:1;;10772:48:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;6797:156::-:0;6877:4;6901:44;6915:10;6927:9;6938:6;6901:13;:44::i;2299:96::-;2627:4;2662:5;-1:-1:-1;;;;;2662:5:0;2158:10;2651:16;2142:38;;;;-1:-1:-1;;;2142:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2361:19:0::1;;::::0;;;2383:4:::1;2361:19;::::0;;;;;;;:26;;-1:-1:-1;;2361:26:0::1;::::0;;::::1;::::0;;2299:96::o;7606:262::-;2627:4;2662:5;-1:-1:-1;;;;;2662:5:0;2158:10;2651:16;2142:38;;;;-1:-1:-1;;;2142:38:0;;;;;;;:::i;:::-;7740:1:::1;7712:24;:29;;7704:82;;;::::0;-1:-1:-1;;;7704:82:0;;9830:2:1;7704:82:0::1;::::0;::::1;9812:21:1::0;9869:2;9849:18;;;9842:30;9908:34;9888:18;;;9881:62;-1:-1:-1;;;9959:18:1;;;9952:39;10008:19;;7704:82:0::1;9628:405:1::0;7704:82:0::1;7856:4;7827:24:::0;4180:12:::1;4119:1;4180:2;:12;:::i;:::-;4167:25;::::0;:10:::1;:25;:::i;:::-;7813:38;;;;:::i;:::-;7812:48;;;;:::i;:::-;7797:12;:63:::0;-1:-1:-1;7606:262:0:o;12635:204::-;2627:4;2662:5;-1:-1:-1;;;;;2662:5:0;2158:10;2651:16;2142:38;;;;-1:-1:-1;;;2142:38:0;;;;;;;:::i;:::-;12742:20:::1;:44:::0;;-1:-1:-1;;;;;12742:44:0;;::::1;-1:-1:-1::0;;;;;;12742:44:0;;::::1;;::::0;;;12797:15:::1;:34:::0;;;;;::::1;::::0;::::1;;::::0;;12635:204::o;12847:155::-;2627:4;2662:5;-1:-1:-1;;;;;2662:5:0;2158:10;2651:16;2142:38;;;;-1:-1:-1;;;2142:38:0;;;;;;;:::i;:::-;12938:11:::1;:22:::0;;;::::1;;-1:-1:-1::0;;;12938:22:0::1;-1:-1:-1::0;;;;12938:22:0;;::::1;::::0;;;::::1;::::0;;;12971:13:::1;:23:::0;12847:155::o;2403:161::-;2627:4;2662:5;-1:-1:-1;;;;;2662:5:0;2158:10;2651:16;2142:38;;;;-1:-1:-1;;;2142:38:0;;;;;;;:::i;:::-;2482:5:::1;::::0;-1:-1:-1;;;;;2482:5:0;;::::1;2475:12:::0;;::::1;::::0;2467:51:::1;;;::::0;-1:-1:-1;;;2467:51:0;;10240:2:1;2467:51:0::1;::::0;::::1;10222:21:1::0;10279:2;10259:18;;;10252:30;10318:28;10298:18;;;10291:56;10364:18;;2467:51:0::1;10038:350:1::0;2467:51:0::1;-1:-1:-1::0;;;;;2529:19:0::1;2551:5;2529:19:::0;;;:14:::1;:19;::::0;;;;:27;;-1:-1:-1;;2529:27:0::1;::::0;;2403:161::o;2798:231::-;2627:4;2662:5;-1:-1:-1;;;;;2662:5:0;2158:10;2651:16;2142:38;;;;-1:-1:-1;;;2142:38:0;;;;;;;:::i;:::-;2906:5:::1;2897::::0;;-1:-1:-1;;;;;2897:5:0;;::::1;2882:21:::0;;:14:::1;:21;::::0;;;;;;;:29;;-1:-1:-1;;2882:29:0;;::::1;::::0;;;2922:17;;-1:-1:-1;;;;;;2922:17:0::1;::::0;;::::1;::::0;;::::1;::::0;;2950:21;;;;;:28;;;;::::1;::::0;;::::1;::::0;;;3015:5;;2994:27;;3015:5;::::1;3557:51:1::0;;2994:27:0::1;::::0;3530:18:1;2994:27:0::1;;;;;;;2798:231:::0;:::o;2683:107::-;-1:-1:-1;;;;;2763:19:0;2739:4;2763:19;;;:14;:19;;;;;;;;;2683:107::o;422:192::-;508:7;544:12;536:6;;;;528:29;;;;-1:-1:-1;;;528:29:0;;;;;;;;:::i;:::-;-1:-1:-1;568:9:0;580:5;584:1;580;:5;:::i;:::-;568:17;422:192;-1:-1:-1;;;;;422:192:0:o;7876:1115::-;7988:6;;7968:4;;7988:6;;7985:63;;;8004:41;8019:6;8027:9;8038:6;8004:14;:41::i;:::-;7997:48;;;;7985:63;-1:-1:-1;;;;;8064:22:0;;;;;;:14;:22;;;;;;;;8063:23;:53;;;;-1:-1:-1;;;;;;8091:25:0;;;;;;:14;:25;;;;;;;;8090:26;8063:53;8060:127;;;8140:11;;-1:-1:-1;;;8140:11:0;;;;8132:43;;;;-1:-1:-1;;;8132:43:0;;10595:2:1;8132:43:0;;;10577:21:1;10634:2;10614:18;;;10607:30;-1:-1:-1;;;10653:18:1;;;10646:50;10713:18;;8132:43:0;10393:344:1;8132:43:0;-1:-1:-1;;;;;8204:22:0;;;;;;:14;:22;;;;;;;;8203:23;:55;;;;-1:-1:-1;;;;;;8231:27:0;;;;;;:19;:27;;;;;;;;8230:28;8203:55;:90;;;;-1:-1:-1;;;;;;8263:30:0;;;;;;:19;:30;;;;;;;;8262:31;8203:90;:111;;;;;8310:4;-1:-1:-1;;;;;8297:17:0;:9;-1:-1:-1;;;;;8297:17:0;;;8203:111;8199:230;;;8374:15;;-1:-1:-1;;;;;8340:20:0;;;;;;:9;:20;;;;;;:29;;8363:6;;8340:29;:::i;:::-;8339:50;;8331:86;;;;-1:-1:-1;;;8331:86:0;;10944:2:1;8331:86:0;;;10926:21:1;10983:2;10963:18;;;10956:30;11022:26;11002:18;;;10995:54;11066:18;;8331:86:0;10742:348:1;8331:86:0;8464:12;;8454:6;:22;;8453:51;;;-1:-1:-1;;;;;;8481:23:0;;;;;;:15;:23;;;;;;;;8453:51;:81;;;-1:-1:-1;;;;;;8508:26:0;;;;;;:15;:26;;;;;;;;8453:81;8445:115;;;;-1:-1:-1;;;8445:115:0;;11297:2:1;8445:115:0;;;11279:21:1;11336:2;11316:18;;;11309:30;-1:-1:-1;;;11355:18:1;;;11348:51;11416:18;;8445:115:0;11095:345:1;8445:115:0;8576:16;:14;:16::i;:::-;8573:35;;;8595:10;:8;:10::i;:::-;8640:53;;;;;;;;;;;-1:-1:-1;;;8640:53:0;;;;;;;;-1:-1:-1;;;;;8640:17:0;;-1:-1:-1;8640:17:0;;;:9;:17;;;;;;;;:53;;8662:6;;8640:21;:53::i;:::-;-1:-1:-1;;;;;8620:17:0;;;;;;:9;:17;;;;;;;;:73;;;;8732:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;8755:22:0;;;;;;:11;:22;;;;;;;;8732:45;8731:93;;8790:34;8798:6;8806;8814:9;8790:7;:34::i;:::-;8731:93;;;8781:6;8731:93;-1:-1:-1;;;;;8860:20:0;;;;;;:9;:20;;;;;;8706:118;;-1:-1:-1;8860:40:0;;8706:118;8860:24;:40::i;:::-;-1:-1:-1;;;;;8837:20:0;;;;;;;:9;:20;;;;;;;:63;;;;8918:43;;;;;;;;;;8946:14;1038:25:1;;1026:2;1011:18;;892:177;8918:43:0;;;;;;;;-1:-1:-1;8979:4:0;;7876:1115;-1:-1:-1;;;;7876:1115:0:o;9003:330::-;9133:53;;;;;;;;;;;-1:-1:-1;;;9133:53:0;;;;;;;;-1:-1:-1;;;;;9133:17:0;;9096:4;9133:17;;;:9;:17;;;;;;;:53;;9155:6;;9133:21;:53::i;:::-;-1:-1:-1;;;;;9113:17:0;;;;;;;:9;:17;;;;;;:73;;;;9220:20;;;;;;;:32;;9245:6;9220:24;:32::i;:::-;-1:-1:-1;;;;;9197:20:0;;;;;;;:9;:20;;;;;;;:55;;;;9268:35;;;;;;;;;;9296:6;1038:25:1;;1026:2;1011:18;;892:177;9268:35:0;;;;;;;;-1:-1:-1;9321:4:0;9003:330;;;;;:::o;10072:197::-;10121:4;10145:10;-1:-1:-1;;;;;10159:4:0;10145:18;;;;;:38;;-1:-1:-1;10177:6:0;;;;10176:7;10145:38;:62;;;;-1:-1:-1;10196:11:0;;-1:-1:-1;;;10196:11:0;;;;10145:62;:116;;;;-1:-1:-1;;10248:13:0;;10238:4;10220:24;;;;:9;:24;;;;;;:41;;;10072:197::o;10918:599::-;5214:6;:13;;-1:-1:-1;;5214:13:0;5223:4;5214:13;;;10993:16:::1;::::0;;11007:1:::1;10993:16:::0;;;;;::::1;::::0;;-1:-1:-1;;10993:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10993:16:0::1;10969:40;;11038:4;11020;11025:1;11020:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;11020:23:0::1;;;-1:-1:-1::0;;;;;11020:23:0::1;;;::::0;::::1;11064:4;11054;11059:1;11054:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11054:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;11081:6:::1;::::0;11153:13:::1;::::0;11081:189:::1;::::0;-1:-1:-1;;;11081:189:0;;:6;;;::::1;::::0;:57:::1;::::0;:189:::1;::::0;11153:13;11081:6:::1;::::0;11197:4;;11224::::1;::::0;11244:15:::1;::::0;11081:189:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11291:26;11363:8;;11337:21;11321:12;;:37;;;;:::i;:::-;11320:51;;;;:::i;:::-;11392:20;::::0;11384:58:::1;::::0;11291:80;;-1:-1:-1;;;;;;11392:20:0::1;::::0;11384:58;::::1;;;::::0;11291:80;;11392:20:::1;11384:58:::0;11392:20;11384:58;11291:80;11392:20;11384:58;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;11461:15:0::1;::::0;11453:56:::1;::::0;-1:-1:-1;;;;;11461:15:0;;::::1;::::0;11487:21:::1;11453:56:::0;::::1;;;::::0;11461:15:::1;11453:56:::0;11461:15;11453:56;11487:21;11461:15;11453:56;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5232:6:0;:14;;-1:-1:-1;;5232:14:0;;;-1:-1:-1;10918:599:0:o;9341:723::-;9427:7;9450:11;;;:28;;-1:-1:-1;9465:8:0;;:13;9450:28;9447:72;;;-1:-1:-1;9501:6:0;9494:13;;9447:72;9552:18;;-1:-1:-1;;;;;9599:4:0;9586:17;;;;;;9583:154;;-1:-1:-1;9633:14:0;;9583:154;;;9678:4;-1:-1:-1;;;;;9668:14:0;:6;-1:-1:-1;;;;;9668:14:0;;9665:72;;-1:-1:-1;9712:13:0;;9665:72;9749:17;9769:62;9810:20;4770:3;;9810:20;:::i;:::-;9769:36;9794:10;9769:20;9780:8;;9769:6;:10;;:20;;;;:::i;:::-;:24;;:36::i;:::-;:40;;:62::i;:::-;9749:82;-1:-1:-1;9847:13:0;;9844:172;;9921:4;9903:24;;;;:9;:24;;;;;;:39;;9932:9;9903:28;:39::i;:::-;9894:4;9876:24;;;;:9;:24;;;;;;;:66;;;;9962:42;;-1:-1:-1;;;;;9962:42:0;;;;;;;9994:9;1038:25:1;;1026:2;1011:18;;892:177;9962:42:0;;;;;;;;9844:172;10035:21;:6;10046:9;10035:10;:21::i;:::-;10028:28;9341:723;-1:-1:-1;;;;;;9341:723:0:o;93:181::-;151:7;;183:5;187:1;183;:5;:::i;:::-;171:17;;212:1;207;:6;;199:46;;;;-1:-1:-1;;;199:46:0;;12764:2:1;199:46:0;;;12746:21:1;12803:2;12783:18;;;12776:30;12842:29;12822:18;;;12815:57;12889:18;;199:46:0;12562:351:1;620:250:0;678:7;702:1;707;702:6;698:47;;-1:-1:-1;732:1:0;725:8;;698:47;757:9;769:5;773:1;769;:5;:::i;:::-;757:17;-1:-1:-1;802:1:0;793:5;797:1;757:17;793:5;:::i;:::-;:10;785:56;;;;-1:-1:-1;;;785:56:0;;13120:2:1;785:56:0;;;13102:21:1;13159:2;13139:18;;;13132:30;13198:34;13178:18;;;13171:62;-1:-1:-1;;;13249:18:1;;;13242:31;13290:19;;785:56:0;12918:397:1;876:132:0;934:7;961:39;965:1;968;961:39;;;;;;;;;;;;;;;;;:3;:39::i;280:136::-;338:7;365:43;369:1;372;365:43;;;;;;;;;;;;;;;;;:3;:43::i;1014:189::-;1100:7;1135:12;1128:5;1120:28;;;;-1:-1:-1;;;1120:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1159:9:0;1171:5;1175:1;1171;:5;:::i;14:118:1:-;100:5;93:13;86:21;79:5;76:32;66:60;;122:1;119;112:12;66:60;14:118;:::o;137:750::-;229:6;237;245;298:2;286:9;277:7;273:23;269:32;266:52;;;314:1;311;304:12;266:52;354:9;341:23;383:18;424:2;416:6;413:14;410:34;;;440:1;437;430:12;410:34;478:6;467:9;463:22;453:32;;523:7;516:4;512:2;508:13;504:27;494:55;;545:1;542;535:12;494:55;585:2;572:16;611:2;603:6;600:14;597:34;;;627:1;624;617:12;597:34;682:7;675:4;665:6;662:1;658:14;654:2;650:23;646:34;643:47;640:67;;;703:1;700;693:12;640:67;734:4;726:13;;;;-1:-1:-1;758:6:1;-1:-1:-1;;799:20:1;;786:34;829:28;786:34;829:28;:::i;:::-;876:5;866:15;;;137:750;;;;;:::o;1074:597::-;1186:4;1215:2;1244;1233:9;1226:21;1276:6;1270:13;1319:6;1314:2;1303:9;1299:18;1292:34;1344:1;1354:140;1368:6;1365:1;1362:13;1354:140;;;1463:14;;;1459:23;;1453:30;1429:17;;;1448:2;1425:26;1418:66;1383:10;;1354:140;;;1512:6;1509:1;1506:13;1503:91;;;1582:1;1577:2;1568:6;1557:9;1553:22;1549:31;1542:42;1503:91;-1:-1:-1;1655:2:1;1634:15;-1:-1:-1;;1630:29:1;1615:45;;;;1662:2;1611:54;;1074:597;-1:-1:-1;;;1074:597:1:o;1676:180::-;1735:6;1788:2;1776:9;1767:7;1763:23;1759:32;1756:52;;;1804:1;1801;1794:12;1756:52;-1:-1:-1;1827:23:1;;1676:180;-1:-1:-1;1676:180:1:o;1861:131::-;-1:-1:-1;;;;;1936:31:1;;1926:42;;1916:70;;1982:1;1979;1972:12;1997:315;2065:6;2073;2126:2;2114:9;2105:7;2101:23;2097:32;2094:52;;;2142:1;2139;2132:12;2094:52;2181:9;2168:23;2200:31;2225:5;2200:31;:::i;:::-;2250:5;2302:2;2287:18;;;;2274:32;;-1:-1:-1;;;1997:315:1:o;2509:456::-;2586:6;2594;2602;2655:2;2643:9;2634:7;2630:23;2626:32;2623:52;;;2671:1;2668;2661:12;2623:52;2710:9;2697:23;2729:31;2754:5;2729:31;:::i;:::-;2779:5;-1:-1:-1;2836:2:1;2821:18;;2808:32;2849:33;2808:32;2849:33;:::i;:::-;2509:456;;2901:7;;-1:-1:-1;;;2955:2:1;2940:18;;;;2927:32;;2509:456::o;2970:247::-;3029:6;3082:2;3070:9;3061:7;3057:23;3053:32;3050:52;;;3098:1;3095;3088:12;3050:52;3137:9;3124:23;3156:31;3181:5;3156:31;:::i;3619:248::-;3687:6;3695;3748:2;3736:9;3727:7;3723:23;3719:32;3716:52;;;3764:1;3761;3754:12;3716:52;-1:-1:-1;;3787:23:1;;;3857:2;3842:18;;;3829:32;;-1:-1:-1;3619:248:1:o;3872:316::-;3949:6;3957;3965;4018:2;4006:9;3997:7;3993:23;3989:32;3986:52;;;4034:1;4031;4024:12;3986:52;-1:-1:-1;;4057:23:1;;;4127:2;4112:18;;4099:32;;-1:-1:-1;4178:2:1;4163:18;;;4150:32;;3872:316;-1:-1:-1;3872:316:1:o;4193:388::-;4261:6;4269;4322:2;4310:9;4301:7;4297:23;4293:32;4290:52;;;4338:1;4335;4328:12;4290:52;4377:9;4364:23;4396:31;4421:5;4396:31;:::i;:::-;4446:5;-1:-1:-1;4503:2:1;4488:18;;4475:32;4516:33;4475:32;4516:33;:::i;:::-;4568:7;4558:17;;;4193:388;;;;;:::o;4586:309::-;4651:6;4659;4712:2;4700:9;4691:7;4687:23;4683:32;4680:52;;;4728:1;4725;4718:12;4680:52;4767:9;4754:23;4786:28;4808:5;4786:28;:::i;5386:335::-;5588:2;5570:21;;;5627:2;5607:18;;;5600:30;-1:-1:-1;;;5661:2:1;5646:18;;5639:41;5712:2;5697:18;;5386:335::o;5726:127::-;5787:10;5782:3;5778:20;5775:1;5768:31;5818:4;5815:1;5808:15;5842:4;5839:1;5832:15;5858:127;5919:10;5914:3;5910:20;5907:1;5900:31;5950:4;5947:1;5940:15;5974:4;5971:1;5964:15;5990:135;6029:3;6050:17;;;6047:43;;6070:18;;:::i;:::-;-1:-1:-1;6117:1:1;6106:13;;5990:135::o;6130:329::-;6332:2;6314:21;;;6371:1;6351:18;;;6344:29;-1:-1:-1;;;6404:2:1;6389:18;;6382:36;6450:2;6435:18;;6130:329::o;6869:422::-;6958:1;7001:5;6958:1;7015:270;7036:7;7026:8;7023:21;7015:270;;;7095:4;7091:1;7087:6;7083:17;7077:4;7074:27;7071:53;;;7104:18;;:::i;:::-;7154:7;7144:8;7140:22;7137:55;;;7174:16;;;;7137:55;7253:22;;;;7213:15;;;;7015:270;;;7019:3;6869:422;;;;;:::o;7296:806::-;7345:5;7375:8;7365:80;;-1:-1:-1;7416:1:1;7430:5;;7365:80;7464:4;7454:76;;-1:-1:-1;7501:1:1;7515:5;;7454:76;7546:4;7564:1;7559:59;;;;7632:1;7627:130;;;;7539:218;;7559:59;7589:1;7580:10;;7603:5;;;7627:130;7664:3;7654:8;7651:17;7648:43;;;7671:18;;:::i;:::-;-1:-1:-1;;7727:1:1;7713:16;;7742:5;;7539:218;;7841:2;7831:8;7828:16;7822:3;7816:4;7813:13;7809:36;7803:2;7793:8;7790:16;7785:2;7779:4;7776:12;7772:35;7769:77;7766:159;;;-1:-1:-1;7878:19:1;;;7910:5;;7766:159;7957:34;7982:8;7976:4;7957:34;:::i;:::-;8027:6;8023:1;8019:6;8015:19;8006:7;8003:32;8000:58;;;8038:18;;:::i;:::-;8076:20;;7296:806;-1:-1:-1;;;7296:806:1:o;8107:140::-;8165:5;8194:47;8235:4;8225:8;8221:19;8215:4;8194:47;:::i;8252:168::-;8292:7;8358:1;8354;8350:6;8346:14;8343:1;8340:21;8335:1;8328:9;8321:17;8317:45;8314:71;;;8365:18;;:::i;:::-;-1:-1:-1;8405:9:1;;8252:168::o;8425:217::-;8465:1;8491;8481:132;;8535:10;8530:3;8526:20;8523:1;8516:31;8570:4;8567:1;8560:15;8598:4;8595:1;8588:15;8481:132;-1:-1:-1;8627:9:1;;8425:217::o;8647:125::-;8687:4;8715:1;8712;8709:8;8706:34;;;8720:18;;:::i;:::-;-1:-1:-1;8757:9:1;;8647:125::o;8777:128::-;8817:3;8848:1;8844:6;8841:1;8838:13;8835:39;;;8854:18;;:::i;:::-;-1:-1:-1;8890:9:1;;8777:128::o;8910:184::-;8980:6;9033:2;9021:9;9012:7;9008:23;9004:32;9001:52;;;9049:1;9046;9039:12;9001:52;-1:-1:-1;9072:16:1;;8910:184;-1:-1:-1;8910:184:1:o;9378:245::-;9445:6;9498:2;9486:9;9477:7;9473:23;9469:32;9466:52;;;9514:1;9511;9504:12;9466:52;9546:9;9540:16;9565:28;9587:5;9565:28;:::i;11577:980::-;11839:4;11887:3;11876:9;11872:19;11918:6;11907:9;11900:25;11944:2;11982:6;11977:2;11966:9;11962:18;11955:34;12025:3;12020:2;12009:9;12005:18;11998:31;12049:6;12084;12078:13;12115:6;12107;12100:22;12153:3;12142:9;12138:19;12131:26;;12192:2;12184:6;12180:15;12166:29;;12213:1;12223:195;12237:6;12234:1;12231:13;12223:195;;;12302:13;;-1:-1:-1;;;;;12298:39:1;12286:52;;12393:15;;;;12358:12;;;;12334:1;12252:9;12223:195;;;-1:-1:-1;;;;;;;12474:32:1;;;;12469:2;12454:18;;12447:60;-1:-1:-1;;;12538:3:1;12523:19;12516:35;12435:3;11577:980;-1:-1:-1;;;11577:980:1:o
Swarm Source
ipfs://4cb5435aaf79cce375a32dc122f7212dd91eb3be3bc92d5b0fbb0dad8b47e6ee
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.