ERC-20
Overview
Max Total Supply
1,000,000,000,000 FINJA
Holders
27
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
15,353,085,461.496178634 FINJAValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
FlokiNinja
Compiler Version
v0.8.4+commit.c7e474f2
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-02-05 */ /* Floki Ninja - $FINJA "The Worlds Bravest Floki Ninja." https://t.me/FlokiNinjaETH */ // SPDX-License-Identifier: Unlicensed pragma solidity ^0.8.4; 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; address private _previousOwner; 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 FlokiNinja is Context, IERC20, Ownable { using SafeMath for uint256; mapping (address => uint256) private _rOwned; mapping (address => uint256) private _tOwned; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _isExcludedFromFee; mapping (address => bool) private bots; mapping (address => uint) private cooldown; uint256 private constant MAX = ~uint256(0); uint256 private constant _tTotal = 1e12 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; uint256 private _feeAddr1 = 1; uint256 private _feeAddr2 = 10; uint256 private _purchaseMarketingFee = 10; uint256 private _purchaseRedistributionFee = 1; uint256 private _sellMarketingFee = 10; uint256 private _sellRedistributionFee = 1; address payable private _feeAddrWallet1; address payable private _feeAddrWallet2; string private constant _name = "Floki Ninja"; string private constant _symbol = "FINJA"; uint8 private constant _decimals = 9; IUniswapV2Router02 private uniswapV2Router; address private uniswapV2Pair; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = false; bool private cooldownEnabled = false; uint256 private _maxTxAmount = _tTotal; event MaxTxAmountUpdated(uint _maxTxAmount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor () { _feeAddrWallet1 = payable(0xD4e52a8682349B8Ba721D85A62D1E8991Af8Af8f); _feeAddrWallet2 = payable(0xD4e52a8682349B8Ba721D85A62D1E8991Af8Af8f); _rOwned[_msgSender()] = _rTotal; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_feeAddrWallet1] = true; _isExcludedFromFee[_feeAddrWallet2] = true; emit Transfer(address(0x0000000000000000000000000000000000000000), _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 tokenFromReflection(_rOwned[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 setCooldownEnabled(bool onoff) external onlyOwner() { cooldownEnabled = onoff; } function tokenFromReflection(uint256 rAmount) private view returns(uint256) { require(rAmount <= _rTotal, "Amount must be less than total reflections"); uint256 currentRate = _getRate(); return rAmount.div(currentRate); } 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"); _feeAddr1 = 1; _feeAddr2 = 10; if (from != owner() && to != owner()) { require(!bots[from] && !bots[to]); if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && cooldownEnabled) { // Cooldown require(amount <= _maxTxAmount); require(cooldown[to] < block.timestamp); cooldown[to] = block.timestamp + (30 seconds); } if (to == uniswapV2Pair && from != address(uniswapV2Router) && ! _isExcludedFromFee[from]) { _feeAddr1 = 1; _feeAddr2 = 10; } uint256 contractTokenBalance = balanceOf(address(this)); if (!inSwap && from != uniswapV2Pair && swapEnabled) { swapTokensForEth(contractTokenBalance); uint256 contractETHBalance = address(this).balance; if(contractETHBalance > 0) { sendETHToFee(address(this).balance); } } } _tokenTransfer(from,to,amount); } 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 sendETHToFee(uint256 amount) private { _feeAddrWallet1.transfer(amount.div(2)); _feeAddrWallet2.transfer(amount.div(2)); } function openTrading() external onlyOwner() { require(!tradingOpen,"trading is already open"); IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Router = _uniswapV2Router; _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); swapEnabled = true; cooldownEnabled = true; _maxTxAmount = 2e10 * 10**9; tradingOpen = true; IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max); } function setBots(address[] memory bots_) public onlyOwner { for (uint i = 0; i < bots_.length; i++) { bots[bots_[i]] = true; } } function delBot(address notbot) public onlyOwner { bots[notbot] = false; } function _tokenTransfer(address sender, address recipient, uint256 amount) private { _transferStandard(sender, recipient, amount); } function _transferStandard(address sender, address recipient, uint256 tAmount) private { (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeTeam(tTeam); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _takeTeam(uint256 tTeam) private { uint256 currentRate = _getRate(); uint256 rTeam = tTeam.mul(currentRate); _rOwned[address(this)] = _rOwned[address(this)].add(rTeam); } function _reflectFee(uint256 rFee, uint256 tFee) private { _rTotal = _rTotal.sub(rFee); _tFeeTotal = _tFeeTotal.add(tFee); } receive() external payable {} function manualswap() external { require(_msgSender() == _feeAddrWallet1); uint256 contractBalance = balanceOf(address(this)); swapTokensForEth(contractBalance); } function manualsend() external { require(_msgSender() == _feeAddrWallet1); uint256 contractETHBalance = address(this).balance; sendETHToFee(contractETHBalance); } function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) { (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _feeAddr1, _feeAddr2); uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate); return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam); } function _getTValues(uint256 tAmount, uint256 taxFee, uint256 TeamFee) private pure returns (uint256, uint256, uint256) { uint256 tFee = tAmount.mul(taxFee).div(100); uint256 tTeam = tAmount.mul(TeamFee).div(100); uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam); return (tTransferAmount, tFee, tTeam); } function _getRValues(uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate) private pure returns (uint256, uint256, uint256) { uint256 rAmount = tAmount.mul(currentRate); uint256 rFee = tFee.mul(currentRate); uint256 rTeam = tTeam.mul(currentRate); uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam); return (rAmount, rTransferAmount, rFee); } function _getRate() private view returns(uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return rSupply.div(tSupply); } function _getCurrentSupply() private view returns(uint256, uint256) { uint256 rSupply = _rTotal; uint256 tSupply = _tTotal; if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal); return (rSupply, tSupply); } function setBuyFees(uint256 redistributionFee, uint256 marketingFee) external onlyOwner { _purchaseMarketingFee = marketingFee; _purchaseRedistributionFee = redistributionFee; } function setSellFees(uint256 redistributionFee, uint256 marketingFee) external onlyOwner { _sellMarketingFee = marketingFee; _sellRedistributionFee = redistributionFee; } function removeStrictTxLimit() public onlyOwner { _maxTxAmount = 1e12 * 10**9; } }
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":[{"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":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","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":"removeStrictTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redistributionFee","type":"uint256"},{"internalType":"uint256","name":"marketingFee","type":"uint256"}],"name":"setBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redistributionFee","type":"uint256"},{"internalType":"uint256","name":"marketingFee","type":"uint256"}],"name":"setSellFees","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
6080604052683635c9adc5dea000006000196200001d919062000545565b6000196200002c919062000500565b6008556001600a55600a600b55600a600c556001600d55600a600e556001600f556000601360156101000a81548160ff0219169083151502179055506000601360166101000a81548160ff0219169083151502179055506000601360176101000a81548160ff021916908315150217905550683635c9adc5dea00000601455348015620000b857600080fd5b506000620000cb620004a160201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35073d4e52a8682349b8ba721d85a62d1e8991af8af8f601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073d4e52a8682349b8ba721d85a62d1e8991af8af8f601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600854600260006200022a620004a160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600560006200027e620004a960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200042b620004a160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef683635c9adc5dea00000604051620004939190620004e3565b60405180910390a3620005db565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620004dd816200053b565b82525050565b6000602082019050620004fa6000830184620004d2565b92915050565b60006200050d826200053b565b91506200051a836200053b565b92508282101562000530576200052f6200057d565b5b828203905092915050565b6000819050919050565b600062000552826200053b565b91506200055f836200053b565b925082620005725762000571620005ac565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b61363a80620005eb6000396000f3fe6080604052600436106101235760003560e01c80638da5cb5b116100a0578063b515566a11610064578063b515566a146103cc578063c3c8cd80146103f5578063c9567bf91461040c578063dd62ed3e14610423578063ff872602146104605761012a565b80638da5cb5b146102e757806395d89b41146103125780639fd8234e1461033d578063a9059cbb14610366578063b2d8f208146103a35761012a565b8063313ce567116100e7578063313ce567146102285780635932ead1146102535780636fc3eaec1461027c57806370a0823114610293578063715018a6146102d05761012a565b806306fdde031461012f578063095ea7b31461015a57806318160ddd1461019757806323b872dd146101c2578063273123b7146101ff5761012a565b3661012a57005b600080fd5b34801561013b57600080fd5b50610144610477565b6040516101519190612d94565b60405180910390f35b34801561016657600080fd5b50610181600480360381019061017c91906128ea565b6104b4565b60405161018e9190612d79565b60405180910390f35b3480156101a357600080fd5b506101ac6104d2565b6040516101b99190612ef6565b60405180910390f35b3480156101ce57600080fd5b506101e960048036038101906101e4919061289b565b6104e3565b6040516101f69190612d79565b60405180910390f35b34801561020b57600080fd5b506102266004803603810190610221919061280d565b6105bc565b005b34801561023457600080fd5b5061023d6106ac565b60405161024a9190612f6b565b60405180910390f35b34801561025f57600080fd5b5061027a60048036038101906102759190612967565b6106b5565b005b34801561028857600080fd5b50610291610767565b005b34801561029f57600080fd5b506102ba60048036038101906102b5919061280d565b6107d9565b6040516102c79190612ef6565b60405180910390f35b3480156102dc57600080fd5b506102e561082a565b005b3480156102f357600080fd5b506102fc61097d565b6040516103099190612cab565b60405180910390f35b34801561031e57600080fd5b506103276109a6565b6040516103349190612d94565b60405180910390f35b34801561034957600080fd5b50610364600480360381019061035f91906129b9565b6109e3565b005b34801561037257600080fd5b5061038d600480360381019061038891906128ea565b610a8a565b60405161039a9190612d79565b60405180910390f35b3480156103af57600080fd5b506103ca60048036038101906103c591906129b9565b610aa8565b005b3480156103d857600080fd5b506103f360048036038101906103ee9190612926565b610b4f565b005b34801561040157600080fd5b5061040a610c9f565b005b34801561041857600080fd5b50610421610d19565b005b34801561042f57600080fd5b5061044a6004803603810190610445919061285f565b611276565b6040516104579190612ef6565b60405180910390f35b34801561046c57600080fd5b506104756112fd565b005b60606040518060400160405280600b81526020017f466c6f6b69204e696e6a61000000000000000000000000000000000000000000815250905090565b60006104c86104c16113a4565b84846113ac565b6001905092915050565b6000683635c9adc5dea00000905090565b60006104f0848484611577565b6105b1846104fc6113a4565b6105ac856040518060600160405280602881526020016135dd60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105626113a4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b7c9092919063ffffffff16565b6113ac565b600190509392505050565b6105c46113a4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610651576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064890612e56565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b6106bd6113a4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461074a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074190612e56565b60405180910390fd5b80601360176101000a81548160ff02191690831515021790555050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107a86113a4565b73ffffffffffffffffffffffffffffffffffffffff16146107c857600080fd5b60004790506107d681611be0565b50565b6000610823600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cdb565b9050919050565b6108326113a4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b690612e56565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f46494e4a41000000000000000000000000000000000000000000000000000000815250905090565b6109eb6113a4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6f90612e56565b60405180910390fd5b80600e8190555081600f819055505050565b6000610a9e610a976113a4565b8484611577565b6001905092915050565b610ab06113a4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3490612e56565b60405180910390fd5b80600c8190555081600d819055505050565b610b576113a4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610be4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bdb90612e56565b60405180910390fd5b60005b8151811015610c9b57600160066000848481518110610c2f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610c939061320c565b915050610be7565b5050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ce06113a4565b73ffffffffffffffffffffffffffffffffffffffff1614610d0057600080fd5b6000610d0b306107d9565b9050610d1681611d49565b50565b610d216113a4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da590612e56565b60405180910390fd5b601360149054906101000a900460ff1615610dfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df590612ed6565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610e8e30601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16683635c9adc5dea000006113ac565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610ed457600080fd5b505afa158015610ee8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f0c9190612836565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610f6e57600080fd5b505afa158015610f82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa69190612836565b6040518363ffffffff1660e01b8152600401610fc3929190612cc6565b602060405180830381600087803b158015610fdd57600080fd5b505af1158015610ff1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110159190612836565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061109e306107d9565b6000806110a961097d565b426040518863ffffffff1660e01b81526004016110cb96959493929190612d18565b6060604051808303818588803b1580156110e457600080fd5b505af11580156110f8573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061111d91906129f5565b5050506001601360166101000a81548160ff0219169083151502179055506001601360176101000a81548160ff0219169083151502179055506801158e460913d000006014819055506001601360146101000a81548160ff021916908315150217905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611220929190612cef565b602060405180830381600087803b15801561123a57600080fd5b505af115801561124e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112729190612990565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6113056113a4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611392576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138990612e56565b60405180910390fd5b683635c9adc5dea00000601481905550565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561141c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141390612eb6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561148c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148390612df6565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161156a9190612ef6565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156115e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115de90612e96565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611657576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164e90612db6565b60405180910390fd5b6000811161169a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169190612e76565b60405180910390fd5b6001600a81905550600a600b819055506116b261097d565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561172057506116f061097d565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611b6c57600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156117c95750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6117d257600080fd5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561187d5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156118d35750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156118eb5750601360179054906101000a900460ff165b1561199b576014548111156118ff57600080fd5b42600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061194a57600080fd5b601e42611957919061302c565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015611a465750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611a9c5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611ab2576001600a81905550600a600b819055505b6000611abd306107d9565b9050601360159054906101000a900460ff16158015611b2a5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611b425750601360169054906101000a900460ff165b15611b6a57611b5081611d49565b60004790506000811115611b6857611b6747611be0565b5b505b505b611b77838383612043565b505050565b6000838311158290611bc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bbb9190612d94565b60405180910390fd5b5060008385611bd3919061310d565b9050809150509392505050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611c3060028461205390919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611c5b573d6000803e3d6000fd5b50601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611cac60028461205390919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611cd7573d6000803e3d6000fd5b5050565b6000600854821115611d22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1990612dd6565b60405180910390fd5b6000611d2c61209d565b9050611d41818461205390919063ffffffff16565b915050919050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611da7577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015611dd55781602001602082028036833780820191505090505b5090503081600081518110611e13577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611eb557600080fd5b505afa158015611ec9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611eed9190612836565b81600181518110611f27577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611f8e30601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846113ac565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611ff2959493929190612f11565b600060405180830381600087803b15801561200c57600080fd5b505af1158015612020573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b61204e8383836120c8565b505050565b600061209583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612293565b905092915050565b60008060006120aa6122f6565b915091506120c1818361205390919063ffffffff16565b9250505090565b6000806000806000806120da87612358565b95509550955095509550955061213886600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123c090919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506121cd85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461240a90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061221981612468565b6122238483612525565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516122809190612ef6565b60405180910390a3505050505050505050565b600080831182906122da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122d19190612d94565b60405180910390fd5b50600083856122e99190613082565b9050809150509392505050565b600080600060085490506000683635c9adc5dea00000905061232c683635c9adc5dea0000060085461205390919063ffffffff16565b82101561234b57600854683635c9adc5dea00000935093505050612354565b81819350935050505b9091565b60008060008060008060008060006123758a600a54600b5461255f565b925092509250600061238561209d565b905060008060006123988e8787876125f5565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061240283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b7c565b905092915050565b6000808284612419919061302c565b90508381101561245e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161245590612e16565b60405180910390fd5b8091505092915050565b600061247261209d565b90506000612489828461267e90919063ffffffff16565b90506124dd81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461240a90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61253a826008546123c090919063ffffffff16565b6008819055506125558160095461240a90919063ffffffff16565b6009819055505050565b60008060008061258b606461257d888a61267e90919063ffffffff16565b61205390919063ffffffff16565b905060006125b560646125a7888b61267e90919063ffffffff16565b61205390919063ffffffff16565b905060006125de826125d0858c6123c090919063ffffffff16565b6123c090919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061260e858961267e90919063ffffffff16565b90506000612625868961267e90919063ffffffff16565b9050600061263c878961267e90919063ffffffff16565b905060006126658261265785876123c090919063ffffffff16565b6123c090919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083141561269157600090506126f3565b6000828461269f91906130b3565b90508284826126ae9190613082565b146126ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126e590612e36565b60405180910390fd5b809150505b92915050565b600061270c61270784612fab565b612f86565b9050808382526020820190508285602086028201111561272b57600080fd5b60005b8581101561275b57816127418882612765565b84526020840193506020830192505060018101905061272e565b5050509392505050565b60008135905061277481613597565b92915050565b60008151905061278981613597565b92915050565b600082601f8301126127a057600080fd5b81356127b08482602086016126f9565b91505092915050565b6000813590506127c8816135ae565b92915050565b6000815190506127dd816135ae565b92915050565b6000813590506127f2816135c5565b92915050565b600081519050612807816135c5565b92915050565b60006020828403121561281f57600080fd5b600061282d84828501612765565b91505092915050565b60006020828403121561284857600080fd5b60006128568482850161277a565b91505092915050565b6000806040838503121561287257600080fd5b600061288085828601612765565b925050602061289185828601612765565b9150509250929050565b6000806000606084860312156128b057600080fd5b60006128be86828701612765565b93505060206128cf86828701612765565b92505060406128e0868287016127e3565b9150509250925092565b600080604083850312156128fd57600080fd5b600061290b85828601612765565b925050602061291c858286016127e3565b9150509250929050565b60006020828403121561293857600080fd5b600082013567ffffffffffffffff81111561295257600080fd5b61295e8482850161278f565b91505092915050565b60006020828403121561297957600080fd5b6000612987848285016127b9565b91505092915050565b6000602082840312156129a257600080fd5b60006129b0848285016127ce565b91505092915050565b600080604083850312156129cc57600080fd5b60006129da858286016127e3565b92505060206129eb858286016127e3565b9150509250929050565b600080600060608486031215612a0a57600080fd5b6000612a18868287016127f8565b9350506020612a29868287016127f8565b9250506040612a3a868287016127f8565b9150509250925092565b6000612a508383612a5c565b60208301905092915050565b612a6581613141565b82525050565b612a7481613141565b82525050565b6000612a8582612fe7565b612a8f818561300a565b9350612a9a83612fd7565b8060005b83811015612acb578151612ab28882612a44565b9750612abd83612ffd565b925050600181019050612a9e565b5085935050505092915050565b612ae181613153565b82525050565b612af081613196565b82525050565b6000612b0182612ff2565b612b0b818561301b565b9350612b1b8185602086016131a8565b612b24816132e2565b840191505092915050565b6000612b3c60238361301b565b9150612b47826132f3565b604082019050919050565b6000612b5f602a8361301b565b9150612b6a82613342565b604082019050919050565b6000612b8260228361301b565b9150612b8d82613391565b604082019050919050565b6000612ba5601b8361301b565b9150612bb0826133e0565b602082019050919050565b6000612bc860218361301b565b9150612bd382613409565b604082019050919050565b6000612beb60208361301b565b9150612bf682613458565b602082019050919050565b6000612c0e60298361301b565b9150612c1982613481565b604082019050919050565b6000612c3160258361301b565b9150612c3c826134d0565b604082019050919050565b6000612c5460248361301b565b9150612c5f8261351f565b604082019050919050565b6000612c7760178361301b565b9150612c828261356e565b602082019050919050565b612c968161317f565b82525050565b612ca581613189565b82525050565b6000602082019050612cc06000830184612a6b565b92915050565b6000604082019050612cdb6000830185612a6b565b612ce86020830184612a6b565b9392505050565b6000604082019050612d046000830185612a6b565b612d116020830184612c8d565b9392505050565b600060c082019050612d2d6000830189612a6b565b612d3a6020830188612c8d565b612d476040830187612ae7565b612d546060830186612ae7565b612d616080830185612a6b565b612d6e60a0830184612c8d565b979650505050505050565b6000602082019050612d8e6000830184612ad8565b92915050565b60006020820190508181036000830152612dae8184612af6565b905092915050565b60006020820190508181036000830152612dcf81612b2f565b9050919050565b60006020820190508181036000830152612def81612b52565b9050919050565b60006020820190508181036000830152612e0f81612b75565b9050919050565b60006020820190508181036000830152612e2f81612b98565b9050919050565b60006020820190508181036000830152612e4f81612bbb565b9050919050565b60006020820190508181036000830152612e6f81612bde565b9050919050565b60006020820190508181036000830152612e8f81612c01565b9050919050565b60006020820190508181036000830152612eaf81612c24565b9050919050565b60006020820190508181036000830152612ecf81612c47565b9050919050565b60006020820190508181036000830152612eef81612c6a565b9050919050565b6000602082019050612f0b6000830184612c8d565b92915050565b600060a082019050612f266000830188612c8d565b612f336020830187612ae7565b8181036040830152612f458186612a7a565b9050612f546060830185612a6b565b612f616080830184612c8d565b9695505050505050565b6000602082019050612f806000830184612c9c565b92915050565b6000612f90612fa1565b9050612f9c82826131db565b919050565b6000604051905090565b600067ffffffffffffffff821115612fc657612fc56132b3565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006130378261317f565b91506130428361317f565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561307757613076613255565b5b828201905092915050565b600061308d8261317f565b91506130988361317f565b9250826130a8576130a7613284565b5b828204905092915050565b60006130be8261317f565b91506130c98361317f565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561310257613101613255565b5b828202905092915050565b60006131188261317f565b91506131238361317f565b92508282101561313657613135613255565b5b828203905092915050565b600061314c8261315f565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006131a18261317f565b9050919050565b60005b838110156131c65780820151818401526020810190506131ab565b838111156131d5576000848401525b50505050565b6131e4826132e2565b810181811067ffffffffffffffff82111715613203576132026132b3565b5b80604052505050565b60006132178261317f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561324a57613249613255565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6135a081613141565b81146135ab57600080fd5b50565b6135b781613153565b81146135c257600080fd5b50565b6135ce8161317f565b81146135d957600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220081d08c3031c2e4ebaa1c13874efb5fc3e05dd2ab7a5d81969a9f9720842787164736f6c63430008040033
Deployed Bytecode
0x6080604052600436106101235760003560e01c80638da5cb5b116100a0578063b515566a11610064578063b515566a146103cc578063c3c8cd80146103f5578063c9567bf91461040c578063dd62ed3e14610423578063ff872602146104605761012a565b80638da5cb5b146102e757806395d89b41146103125780639fd8234e1461033d578063a9059cbb14610366578063b2d8f208146103a35761012a565b8063313ce567116100e7578063313ce567146102285780635932ead1146102535780636fc3eaec1461027c57806370a0823114610293578063715018a6146102d05761012a565b806306fdde031461012f578063095ea7b31461015a57806318160ddd1461019757806323b872dd146101c2578063273123b7146101ff5761012a565b3661012a57005b600080fd5b34801561013b57600080fd5b50610144610477565b6040516101519190612d94565b60405180910390f35b34801561016657600080fd5b50610181600480360381019061017c91906128ea565b6104b4565b60405161018e9190612d79565b60405180910390f35b3480156101a357600080fd5b506101ac6104d2565b6040516101b99190612ef6565b60405180910390f35b3480156101ce57600080fd5b506101e960048036038101906101e4919061289b565b6104e3565b6040516101f69190612d79565b60405180910390f35b34801561020b57600080fd5b506102266004803603810190610221919061280d565b6105bc565b005b34801561023457600080fd5b5061023d6106ac565b60405161024a9190612f6b565b60405180910390f35b34801561025f57600080fd5b5061027a60048036038101906102759190612967565b6106b5565b005b34801561028857600080fd5b50610291610767565b005b34801561029f57600080fd5b506102ba60048036038101906102b5919061280d565b6107d9565b6040516102c79190612ef6565b60405180910390f35b3480156102dc57600080fd5b506102e561082a565b005b3480156102f357600080fd5b506102fc61097d565b6040516103099190612cab565b60405180910390f35b34801561031e57600080fd5b506103276109a6565b6040516103349190612d94565b60405180910390f35b34801561034957600080fd5b50610364600480360381019061035f91906129b9565b6109e3565b005b34801561037257600080fd5b5061038d600480360381019061038891906128ea565b610a8a565b60405161039a9190612d79565b60405180910390f35b3480156103af57600080fd5b506103ca60048036038101906103c591906129b9565b610aa8565b005b3480156103d857600080fd5b506103f360048036038101906103ee9190612926565b610b4f565b005b34801561040157600080fd5b5061040a610c9f565b005b34801561041857600080fd5b50610421610d19565b005b34801561042f57600080fd5b5061044a6004803603810190610445919061285f565b611276565b6040516104579190612ef6565b60405180910390f35b34801561046c57600080fd5b506104756112fd565b005b60606040518060400160405280600b81526020017f466c6f6b69204e696e6a61000000000000000000000000000000000000000000815250905090565b60006104c86104c16113a4565b84846113ac565b6001905092915050565b6000683635c9adc5dea00000905090565b60006104f0848484611577565b6105b1846104fc6113a4565b6105ac856040518060600160405280602881526020016135dd60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105626113a4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b7c9092919063ffffffff16565b6113ac565b600190509392505050565b6105c46113a4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610651576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064890612e56565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b6106bd6113a4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461074a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074190612e56565b60405180910390fd5b80601360176101000a81548160ff02191690831515021790555050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107a86113a4565b73ffffffffffffffffffffffffffffffffffffffff16146107c857600080fd5b60004790506107d681611be0565b50565b6000610823600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cdb565b9050919050565b6108326113a4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b690612e56565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f46494e4a41000000000000000000000000000000000000000000000000000000815250905090565b6109eb6113a4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6f90612e56565b60405180910390fd5b80600e8190555081600f819055505050565b6000610a9e610a976113a4565b8484611577565b6001905092915050565b610ab06113a4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3490612e56565b60405180910390fd5b80600c8190555081600d819055505050565b610b576113a4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610be4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bdb90612e56565b60405180910390fd5b60005b8151811015610c9b57600160066000848481518110610c2f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610c939061320c565b915050610be7565b5050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ce06113a4565b73ffffffffffffffffffffffffffffffffffffffff1614610d0057600080fd5b6000610d0b306107d9565b9050610d1681611d49565b50565b610d216113a4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da590612e56565b60405180910390fd5b601360149054906101000a900460ff1615610dfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df590612ed6565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610e8e30601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16683635c9adc5dea000006113ac565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610ed457600080fd5b505afa158015610ee8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f0c9190612836565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610f6e57600080fd5b505afa158015610f82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa69190612836565b6040518363ffffffff1660e01b8152600401610fc3929190612cc6565b602060405180830381600087803b158015610fdd57600080fd5b505af1158015610ff1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110159190612836565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061109e306107d9565b6000806110a961097d565b426040518863ffffffff1660e01b81526004016110cb96959493929190612d18565b6060604051808303818588803b1580156110e457600080fd5b505af11580156110f8573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061111d91906129f5565b5050506001601360166101000a81548160ff0219169083151502179055506001601360176101000a81548160ff0219169083151502179055506801158e460913d000006014819055506001601360146101000a81548160ff021916908315150217905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611220929190612cef565b602060405180830381600087803b15801561123a57600080fd5b505af115801561124e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112729190612990565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6113056113a4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611392576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138990612e56565b60405180910390fd5b683635c9adc5dea00000601481905550565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561141c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141390612eb6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561148c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148390612df6565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161156a9190612ef6565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156115e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115de90612e96565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611657576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164e90612db6565b60405180910390fd5b6000811161169a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169190612e76565b60405180910390fd5b6001600a81905550600a600b819055506116b261097d565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561172057506116f061097d565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611b6c57600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156117c95750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6117d257600080fd5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561187d5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156118d35750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156118eb5750601360179054906101000a900460ff165b1561199b576014548111156118ff57600080fd5b42600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061194a57600080fd5b601e42611957919061302c565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015611a465750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611a9c5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611ab2576001600a81905550600a600b819055505b6000611abd306107d9565b9050601360159054906101000a900460ff16158015611b2a5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611b425750601360169054906101000a900460ff165b15611b6a57611b5081611d49565b60004790506000811115611b6857611b6747611be0565b5b505b505b611b77838383612043565b505050565b6000838311158290611bc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bbb9190612d94565b60405180910390fd5b5060008385611bd3919061310d565b9050809150509392505050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611c3060028461205390919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611c5b573d6000803e3d6000fd5b50601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611cac60028461205390919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611cd7573d6000803e3d6000fd5b5050565b6000600854821115611d22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1990612dd6565b60405180910390fd5b6000611d2c61209d565b9050611d41818461205390919063ffffffff16565b915050919050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611da7577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015611dd55781602001602082028036833780820191505090505b5090503081600081518110611e13577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611eb557600080fd5b505afa158015611ec9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611eed9190612836565b81600181518110611f27577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611f8e30601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846113ac565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611ff2959493929190612f11565b600060405180830381600087803b15801561200c57600080fd5b505af1158015612020573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b61204e8383836120c8565b505050565b600061209583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612293565b905092915050565b60008060006120aa6122f6565b915091506120c1818361205390919063ffffffff16565b9250505090565b6000806000806000806120da87612358565b95509550955095509550955061213886600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123c090919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506121cd85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461240a90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061221981612468565b6122238483612525565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516122809190612ef6565b60405180910390a3505050505050505050565b600080831182906122da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122d19190612d94565b60405180910390fd5b50600083856122e99190613082565b9050809150509392505050565b600080600060085490506000683635c9adc5dea00000905061232c683635c9adc5dea0000060085461205390919063ffffffff16565b82101561234b57600854683635c9adc5dea00000935093505050612354565b81819350935050505b9091565b60008060008060008060008060006123758a600a54600b5461255f565b925092509250600061238561209d565b905060008060006123988e8787876125f5565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061240283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b7c565b905092915050565b6000808284612419919061302c565b90508381101561245e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161245590612e16565b60405180910390fd5b8091505092915050565b600061247261209d565b90506000612489828461267e90919063ffffffff16565b90506124dd81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461240a90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61253a826008546123c090919063ffffffff16565b6008819055506125558160095461240a90919063ffffffff16565b6009819055505050565b60008060008061258b606461257d888a61267e90919063ffffffff16565b61205390919063ffffffff16565b905060006125b560646125a7888b61267e90919063ffffffff16565b61205390919063ffffffff16565b905060006125de826125d0858c6123c090919063ffffffff16565b6123c090919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061260e858961267e90919063ffffffff16565b90506000612625868961267e90919063ffffffff16565b9050600061263c878961267e90919063ffffffff16565b905060006126658261265785876123c090919063ffffffff16565b6123c090919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083141561269157600090506126f3565b6000828461269f91906130b3565b90508284826126ae9190613082565b146126ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126e590612e36565b60405180910390fd5b809150505b92915050565b600061270c61270784612fab565b612f86565b9050808382526020820190508285602086028201111561272b57600080fd5b60005b8581101561275b57816127418882612765565b84526020840193506020830192505060018101905061272e565b5050509392505050565b60008135905061277481613597565b92915050565b60008151905061278981613597565b92915050565b600082601f8301126127a057600080fd5b81356127b08482602086016126f9565b91505092915050565b6000813590506127c8816135ae565b92915050565b6000815190506127dd816135ae565b92915050565b6000813590506127f2816135c5565b92915050565b600081519050612807816135c5565b92915050565b60006020828403121561281f57600080fd5b600061282d84828501612765565b91505092915050565b60006020828403121561284857600080fd5b60006128568482850161277a565b91505092915050565b6000806040838503121561287257600080fd5b600061288085828601612765565b925050602061289185828601612765565b9150509250929050565b6000806000606084860312156128b057600080fd5b60006128be86828701612765565b93505060206128cf86828701612765565b92505060406128e0868287016127e3565b9150509250925092565b600080604083850312156128fd57600080fd5b600061290b85828601612765565b925050602061291c858286016127e3565b9150509250929050565b60006020828403121561293857600080fd5b600082013567ffffffffffffffff81111561295257600080fd5b61295e8482850161278f565b91505092915050565b60006020828403121561297957600080fd5b6000612987848285016127b9565b91505092915050565b6000602082840312156129a257600080fd5b60006129b0848285016127ce565b91505092915050565b600080604083850312156129cc57600080fd5b60006129da858286016127e3565b92505060206129eb858286016127e3565b9150509250929050565b600080600060608486031215612a0a57600080fd5b6000612a18868287016127f8565b9350506020612a29868287016127f8565b9250506040612a3a868287016127f8565b9150509250925092565b6000612a508383612a5c565b60208301905092915050565b612a6581613141565b82525050565b612a7481613141565b82525050565b6000612a8582612fe7565b612a8f818561300a565b9350612a9a83612fd7565b8060005b83811015612acb578151612ab28882612a44565b9750612abd83612ffd565b925050600181019050612a9e565b5085935050505092915050565b612ae181613153565b82525050565b612af081613196565b82525050565b6000612b0182612ff2565b612b0b818561301b565b9350612b1b8185602086016131a8565b612b24816132e2565b840191505092915050565b6000612b3c60238361301b565b9150612b47826132f3565b604082019050919050565b6000612b5f602a8361301b565b9150612b6a82613342565b604082019050919050565b6000612b8260228361301b565b9150612b8d82613391565b604082019050919050565b6000612ba5601b8361301b565b9150612bb0826133e0565b602082019050919050565b6000612bc860218361301b565b9150612bd382613409565b604082019050919050565b6000612beb60208361301b565b9150612bf682613458565b602082019050919050565b6000612c0e60298361301b565b9150612c1982613481565b604082019050919050565b6000612c3160258361301b565b9150612c3c826134d0565b604082019050919050565b6000612c5460248361301b565b9150612c5f8261351f565b604082019050919050565b6000612c7760178361301b565b9150612c828261356e565b602082019050919050565b612c968161317f565b82525050565b612ca581613189565b82525050565b6000602082019050612cc06000830184612a6b565b92915050565b6000604082019050612cdb6000830185612a6b565b612ce86020830184612a6b565b9392505050565b6000604082019050612d046000830185612a6b565b612d116020830184612c8d565b9392505050565b600060c082019050612d2d6000830189612a6b565b612d3a6020830188612c8d565b612d476040830187612ae7565b612d546060830186612ae7565b612d616080830185612a6b565b612d6e60a0830184612c8d565b979650505050505050565b6000602082019050612d8e6000830184612ad8565b92915050565b60006020820190508181036000830152612dae8184612af6565b905092915050565b60006020820190508181036000830152612dcf81612b2f565b9050919050565b60006020820190508181036000830152612def81612b52565b9050919050565b60006020820190508181036000830152612e0f81612b75565b9050919050565b60006020820190508181036000830152612e2f81612b98565b9050919050565b60006020820190508181036000830152612e4f81612bbb565b9050919050565b60006020820190508181036000830152612e6f81612bde565b9050919050565b60006020820190508181036000830152612e8f81612c01565b9050919050565b60006020820190508181036000830152612eaf81612c24565b9050919050565b60006020820190508181036000830152612ecf81612c47565b9050919050565b60006020820190508181036000830152612eef81612c6a565b9050919050565b6000602082019050612f0b6000830184612c8d565b92915050565b600060a082019050612f266000830188612c8d565b612f336020830187612ae7565b8181036040830152612f458186612a7a565b9050612f546060830185612a6b565b612f616080830184612c8d565b9695505050505050565b6000602082019050612f806000830184612c9c565b92915050565b6000612f90612fa1565b9050612f9c82826131db565b919050565b6000604051905090565b600067ffffffffffffffff821115612fc657612fc56132b3565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006130378261317f565b91506130428361317f565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561307757613076613255565b5b828201905092915050565b600061308d8261317f565b91506130988361317f565b9250826130a8576130a7613284565b5b828204905092915050565b60006130be8261317f565b91506130c98361317f565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561310257613101613255565b5b828202905092915050565b60006131188261317f565b91506131238361317f565b92508282101561313657613135613255565b5b828203905092915050565b600061314c8261315f565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006131a18261317f565b9050919050565b60005b838110156131c65780820151818401526020810190506131ab565b838111156131d5576000848401525b50505050565b6131e4826132e2565b810181811067ffffffffffffffff82111715613203576132026132b3565b5b80604052505050565b60006132178261317f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561324a57613249613255565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6135a081613141565b81146135ab57600080fd5b50565b6135b781613153565b81146135c257600080fd5b50565b6135ce8161317f565b81146135d957600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220081d08c3031c2e4ebaa1c13874efb5fc3e05dd2ab7a5d81969a9f9720842787164736f6c63430008040033
Deployed Bytecode Sourcemap
3645:11080:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5750:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6602:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6027:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6771:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10941:88;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5936:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7092:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12318:194;;;;;;;;;;;;;:::i;:::-;;6130:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2724:148;;;;;;;;;;;;;:::i;:::-;;2510:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5841:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14427:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6276:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14219:200;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10765:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12111:195;;;;;;;;;;;;;:::i;:::-;;9944:809;;;;;;;;;;;;;:::i;:::-;;6451:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14628:94;;;;;;;;;;;;;:::i;:::-;;5750:83;5787:13;5820:5;;;;;;;;;;;;;;;;;5813:12;;5750:83;:::o;6602:161::-;6677:4;6694:39;6703:12;:10;:12::i;:::-;6717:7;6726:6;6694:8;:39::i;:::-;6751:4;6744:11;;6602:161;;;;:::o;6027:95::-;6080:7;4148:12;6100:14;;6027:95;:::o;6771:313::-;6869:4;6886:36;6896:6;6904:9;6915:6;6886:9;:36::i;:::-;6933:121;6942:6;6950:12;:10;:12::i;:::-;6964:89;7002:6;6964:89;;;;;;;;;;;;;;;;;:11;:19;6976:6;6964:19;;;;;;;;;;;;;;;:33;6984:12;:10;:12::i;:::-;6964:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6933:8;:121::i;:::-;7072:4;7065:11;;6771:313;;;;;:::o;10941:88::-;2647:12;:10;:12::i;:::-;2637:22;;:6;;;;;;;;;;:22;;;2629:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11016:5:::1;11001:4;:12;11006:6;11001:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;10941:88:::0;:::o;5936:83::-;5977:5;4778:1;5995:16;;5936:83;:::o;7092:103::-;2647:12;:10;:12::i;:::-;2637:22;;:6;;;;;;;;;;:22;;;2629:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7182:5:::1;7164:15;;:23;;;;;;;;;;;;;;;;;;7092:103:::0;:::o;12318:194::-;12384:15;;;;;;;;;;;12368:31;;:12;:10;:12::i;:::-;:31;;;12360:40;;;;;;12411:26;12440:21;12411:50;;12472:32;12485:18;12472:12;:32::i;:::-;12318:194;:::o;6130:138::-;6196:7;6223:37;6243:7;:16;6251:7;6243:16;;;;;;;;;;;;;;;;6223:19;:37::i;:::-;6216:44;;6130:138;;;:::o;2724:148::-;2647:12;:10;:12::i;:::-;2637:22;;:6;;;;;;;;;;:22;;;2629:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2831:1:::1;2794:40;;2815:6;::::0;::::1;;;;;;;;2794:40;;;;;;;;;;;;2862:1;2845:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2724:148::o:0;2510:79::-;2548:7;2575:6;;;;;;;;;;;2568:13;;2510:79;:::o;5841:87::-;5880:13;5913:7;;;;;;;;;;;;;;;;;5906:14;;5841:87;:::o;14427:193::-;2647:12;:10;:12::i;:::-;2637:22;;:6;;;;;;;;;;:22;;;2629:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14547:12:::1;14527:17;:32;;;;14595:17;14570:22;:42;;;;14427:193:::0;;:::o;6276:167::-;6354:4;6371:42;6381:12;:10;:12::i;:::-;6395:9;6406:6;6371:9;:42::i;:::-;6431:4;6424:11;;6276:167;;;;:::o;14219:200::-;2647:12;:10;:12::i;:::-;2637:22;;:6;;;;;;;;;;:22;;;2629:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14342:12:::1;14318:21;:36;;;;14394:17;14365:26;:46;;;;14219:200:::0;;:::o;10765:164::-;2647:12;:10;:12::i;:::-;2637:22;;:6;;;;;;;;;;:22;;;2629:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10839:6:::1;10834:88;10855:5;:12;10851:1;:16;10834:88;;;10906:4;10889;:14;10894:5;10900:1;10894:8;;;;;;;;;;;;;;;;;;;;;;10889:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;10869:3;;;;;:::i;:::-;;;;10834:88;;;;10765:164:::0;:::o;12111:195::-;12177:15;;;;;;;;;;;12161:31;;:12;:10;:12::i;:::-;:31;;;12153:40;;;;;;12204:23;12230:24;12248:4;12230:9;:24::i;:::-;12204:50;;12265:33;12282:15;12265:16;:33::i;:::-;12111:195;:::o;9944:809::-;2647:12;:10;:12::i;:::-;2637:22;;:6;;;;;;;;;;:22;;;2629:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10008:11:::1;;;;;;;;;;;10007:12;9999:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;10057:35;10114:42;10057:100;;10186:16;10168:15;;:34;;;;;;;;;;;;;;;;;;10213:58;10230:4;10245:15;;;;;;;;;;;4148:12;10213:8;:58::i;:::-;10316:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10298:56;;;10363:4;10370:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10298:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10282:13;;:112;;;;;;;;;;;;;;;;;;10405:15;;;;;;;;;;;:31;;;10444:21;10475:4;10481:24;10499:4;10481:9;:24::i;:::-;10506:1;10508::::0;10510:7:::1;:5;:7::i;:::-;10518:15;10405:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;10559:4;10545:11;;:18;;;;;;;;;;;;;;;;;;10592:4;10574:15;;:22;;;;;;;;;;;;;;;;;;10622:12;10607;:27;;;;10659:4;10645:11;;:18;;;;;;;;;;;;;;;;;;10681:13;;;;;;;;;;;10674:29;;;10712:15;;;;;;;;;;;10730:14;10674:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2707:1;9944:809::o:0;6451:143::-;6532:7;6559:11;:18;6571:5;6559:18;;;;;;;;;;;;;;;:27;6578:7;6559:27;;;;;;;;;;;;;;;;6552:34;;6451:143;;;;:::o;14628:94::-;2647:12;:10;:12::i;:::-;2637:22;;:6;;;;;;;;;;:22;;;2629:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14702:12:::1;14687;:27;;;;14628:94::o:0;228:98::-;281:7;308:10;301:17;;228:98;:::o;7465:335::-;7575:1;7558:19;;:5;:19;;;;7550:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7656:1;7637:21;;:7;:21;;;;7629:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7738:6;7708:11;:18;7720:5;7708:18;;;;;;;;;;;;;;;:27;7727:7;7708:27;;;;;;;;;;;;;;;:36;;;;7776:7;7760:32;;7769:5;7760:32;;;7785:6;7760:32;;;;;;:::i;:::-;;;;;;;;7465:335;;;:::o;7808:1463::-;7912:1;7896:18;;:4;:18;;;;7888:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7989:1;7975:16;;:2;:16;;;;7967:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8059:1;8050:6;:10;8042:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8129:1;8117:9;:13;;;;8153:2;8141:9;:14;;;;8178:7;:5;:7::i;:::-;8170:15;;:4;:15;;;;:32;;;;;8195:7;:5;:7::i;:::-;8189:13;;:2;:13;;;;8170:32;8166:1053;;;8228:4;:10;8233:4;8228:10;;;;;;;;;;;;;;;;;;;;;;;;;8227:11;:24;;;;;8243:4;:8;8248:2;8243:8;;;;;;;;;;;;;;;;;;;;;;;;;8242:9;8227:24;8219:33;;;;;;8279:13;;;;;;;;;;;8271:21;;:4;:21;;;:55;;;;;8310:15;;;;;;;;;;;8296:30;;:2;:30;;;;8271:55;:83;;;;;8332:18;:22;8351:2;8332:22;;;;;;;;;;;;;;;;;;;;;;;;;8330:24;8271:83;:102;;;;;8358:15;;;;;;;;;;;8271:102;8267:325;;;8441:12;;8431:6;:22;;8423:31;;;;;;8496:15;8481:8;:12;8490:2;8481:12;;;;;;;;;;;;;;;;:30;8473:39;;;;;;8565:10;8546:15;:30;;;;:::i;:::-;8531:8;:12;8540:2;8531:12;;;;;;;;;;;;;;;:45;;;;8267:325;8644:13;;;;;;;;;;;8638:19;;:2;:19;;;:55;;;;;8677:15;;;;;;;;;;;8661:32;;:4;:32;;;;8638:55;:85;;;;;8699:18;:24;8718:4;8699:24;;;;;;;;;;;;;;;;;;;;;;;;;8697:26;8638:85;8634:172;;;8756:1;8744:9;:13;;;;8788:2;8776:9;:14;;;;8634:172;8820:28;8851:24;8869:4;8851:9;:24::i;:::-;8820:55;;8895:6;;;;;;;;;;;8894:7;:32;;;;;8913:13;;;;;;;;;;;8905:21;;:4;:21;;;;8894:32;:47;;;;;8930:11;;;;;;;;;;;8894:47;8890:318;;;8962:38;8979:20;8962:16;:38::i;:::-;9019:26;9048:21;9019:50;;9112:1;9091:18;:22;9088:105;;;9138:35;9151:21;9138:12;:35::i;:::-;9088:105;8890:318;;8166:1053;;9233:30;9248:4;9253:2;9256:6;9233:14;:30::i;:::-;7808:1463;;;:::o;1365:190::-;1451:7;1484:1;1479;:6;;1487:12;1471:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1511:9;1527:1;1523;:5;;;;:::i;:::-;1511:17;;1546:1;1539:8;;;1365:190;;;;;:::o;9778:154::-;9835:15;;;;;;;;;;;:24;;:39;9860:13;9871:1;9860:6;:10;;:13;;;;:::i;:::-;9835:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9885:15;;;;;;;;;;;:24;;:39;9910:13;9921:1;9910:6;:10;;:13;;;;:::i;:::-;9885:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9778:154;:::o;7203:254::-;7270:7;7309;;7298;:18;;7290:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;7374:19;7397:10;:8;:10::i;:::-;7374:33;;7425:24;7437:11;7425:7;:11;;:24;;;;:::i;:::-;7418:31;;;7203:254;;;:::o;9279:483::-;5160:4;5151:6;;:13;;;;;;;;;;;;;;;;;;9357:21:::1;9395:1;9381:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9357:40;;9426:4;9408;9413:1;9408:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;9452:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9442:4;9447:1;9442:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;::::0;::::1;9485:62;9502:4;9517:15;;;;;;;;;;;9535:11;9485:8;:62::i;:::-;9558:15;;;;;;;;;;;:66;;;9639:11;9665:1;9681:4;9708;9728:15;9558:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;5175:1;5196:5:::0;5187:6;;:14;;;;;;;;;;;;;;;;;;9279:483;:::o;11045:146::-;11139:44;11157:6;11165:9;11176:6;11139:17;:44::i;:::-;11045:146;;;:::o;1817:132::-;1875:7;1902:39;1906:1;1909;1902:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1895:46;;1817:132;;;;:::o;13778:163::-;13819:7;13840:15;13857;13876:19;:17;:19::i;:::-;13839:56;;;;13913:20;13925:7;13913;:11;;:20;;;;:::i;:::-;13906:27;;;;13778:163;:::o;11199:488::-;11298:15;11315:23;11340:12;11354:23;11379:12;11393:13;11410:19;11421:7;11410:10;:19::i;:::-;11297:132;;;;;;;;;;;;11458:28;11478:7;11458;:15;11466:6;11458:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;11440:7;:15;11448:6;11440:15;;;;;;;;;;;;;;;:46;;;;11518:39;11541:15;11518:7;:18;11526:9;11518:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;11497:7;:18;11505:9;11497:18;;;;;;;;;;;;;;;:60;;;;11569:16;11579:5;11569:9;:16::i;:::-;11596:23;11608:4;11614;11596:11;:23::i;:::-;11652:9;11635:44;;11644:6;11635:44;;;11663:15;11635:44;;;;;;:::i;:::-;;;;;;;;11199:488;;;;;;;;;:::o;1957:189::-;2043:7;2075:1;2071;:5;2078:12;2063:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2102:9;2118:1;2114;:5;;;;:::i;:::-;2102:17;;2137:1;2130:8;;;1957:189;;;;;:::o;13949:262::-;13999:7;14008;14028:15;14046:7;;14028:25;;14064:15;4148:12;14064:25;;14120:20;4148:12;14120:7;;:11;;:20;;;;:::i;:::-;14110:7;:30;14106:61;;;14150:7;;4148:12;14142:25;;;;;;;;14106:61;14186:7;14195;14178:25;;;;;;13949:262;;;:::o;12526:471::-;12585:7;12594;12603;12612;12621;12630;12651:23;12676:12;12690:13;12707:42;12719:7;12728:9;;12739;;12707:11;:42::i;:::-;12650:99;;;;;;12760:19;12783:10;:8;:10::i;:::-;12760:33;;12805:15;12822:23;12847:12;12863:46;12875:7;12884:4;12890:5;12897:11;12863;:46::i;:::-;12804:105;;;;;;12928:7;12937:15;12954:4;12960:15;12977:4;12983:5;12920:69;;;;;;;;;;;;;;;;;;;12526:471;;;;;;;:::o;1221:136::-;1279:7;1306:43;1310:1;1313;1306:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1299:50;;1221:136;;;;:::o;1034:179::-;1092:7;1112:9;1128:1;1124;:5;;;;:::i;:::-;1112:17;;1153:1;1148;:6;;1140:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1204:1;1197:8;;;1034:179;;;;:::o;11695:212::-;11748:19;11771:10;:8;:10::i;:::-;11748:33;;11792:13;11808:22;11818:11;11808:5;:9;;:22;;;;:::i;:::-;11792:38;;11866:33;11893:5;11866:7;:22;11882:4;11866:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;11841:7;:22;11857:4;11841:22;;;;;;;;;;;;;;;:58;;;;11695:212;;;:::o;11915:147::-;11993:17;12005:4;11993:7;;:11;;:17;;;;:::i;:::-;11983:7;:27;;;;12034:20;12049:4;12034:10;;:14;;:20;;;;:::i;:::-;12021:10;:33;;;;11915:147;;:::o;13005:351::-;13098:7;13107;13116;13136:12;13151:28;13175:3;13151:19;13163:6;13151:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;13136:43;;13190:13;13206:29;13231:3;13206:20;13218:7;13206;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;13190:45;;13246:23;13272:28;13294:5;13272:17;13284:4;13272:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;13246:54;;13319:15;13336:4;13342:5;13311:37;;;;;;;;;13005:351;;;;;;;:::o;13364:409::-;13474:7;13483;13492;13512:15;13530:24;13542:11;13530:7;:11;;:24;;;;:::i;:::-;13512:42;;13565:12;13580:21;13589:11;13580:4;:8;;:21;;;;:::i;:::-;13565:36;;13612:13;13628:22;13638:11;13628:5;:9;;:22;;;;:::i;:::-;13612:38;;13661:23;13687:28;13709:5;13687:17;13699:4;13687:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;13661:54;;13734:7;13743:15;13760:4;13726:39;;;;;;;;;;13364:409;;;;;;;;:::o;1563:246::-;1621:7;1650:1;1645;:6;1641:47;;;1675:1;1668:8;;;;1641:47;1698:9;1714:1;1710;:5;;;;:::i;:::-;1698:17;;1743:1;1738;1734;:5;;;;:::i;:::-;:10;1726:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1800:1;1793:8;;;1563:246;;;;;:::o;24:655:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:2;;;414:1;411;404:12;350:2;450:1;435:238;460:6;457:1;454:13;435:238;;;528:3;557:37;590:3;578:10;557:37;:::i;:::-;552:3;545:50;624:4;619:3;615:14;608:21;;658:4;653:3;649:14;642:21;;495:178;482:1;479;475:9;470:14;;435:238;;;439:14;126:553;;;;;;;:::o;685:139::-;731:5;769:6;756:20;747:29;;785:33;812:5;785:33;:::i;:::-;737:87;;;;:::o;830:143::-;887:5;918:6;912:13;903:22;;934:33;961:5;934:33;:::i;:::-;893:80;;;;:::o;996:303::-;1067:5;1116:3;1109:4;1101:6;1097:17;1093:27;1083:2;;1134:1;1131;1124:12;1083:2;1174:6;1161:20;1199:94;1289:3;1281:6;1274:4;1266:6;1262:17;1199:94;:::i;:::-;1190:103;;1073:226;;;;;:::o;1305:133::-;1348:5;1386:6;1373:20;1364:29;;1402:30;1426:5;1402:30;:::i;:::-;1354:84;;;;:::o;1444:137::-;1498:5;1529:6;1523:13;1514:22;;1545:30;1569:5;1545:30;:::i;:::-;1504:77;;;;:::o;1587:139::-;1633:5;1671:6;1658:20;1649:29;;1687:33;1714:5;1687:33;:::i;:::-;1639:87;;;;:::o;1732:143::-;1789:5;1820:6;1814:13;1805:22;;1836:33;1863:5;1836:33;:::i;:::-;1795:80;;;;:::o;1881:262::-;1940:6;1989:2;1977:9;1968:7;1964:23;1960:32;1957:2;;;2005:1;2002;1995:12;1957:2;2048:1;2073:53;2118:7;2109:6;2098:9;2094:22;2073:53;:::i;:::-;2063:63;;2019:117;1947:196;;;;:::o;2149:284::-;2219:6;2268:2;2256:9;2247:7;2243:23;2239:32;2236:2;;;2284:1;2281;2274:12;2236:2;2327:1;2352:64;2408:7;2399:6;2388:9;2384:22;2352:64;:::i;:::-;2342:74;;2298:128;2226:207;;;;:::o;2439:407::-;2507:6;2515;2564:2;2552:9;2543:7;2539:23;2535:32;2532:2;;;2580:1;2577;2570:12;2532:2;2623:1;2648:53;2693:7;2684:6;2673:9;2669:22;2648:53;:::i;:::-;2638:63;;2594:117;2750:2;2776:53;2821:7;2812:6;2801:9;2797:22;2776:53;:::i;:::-;2766:63;;2721:118;2522:324;;;;;:::o;2852:552::-;2929:6;2937;2945;2994:2;2982:9;2973:7;2969:23;2965:32;2962:2;;;3010:1;3007;3000:12;2962:2;3053:1;3078:53;3123:7;3114:6;3103:9;3099:22;3078:53;:::i;:::-;3068:63;;3024:117;3180:2;3206:53;3251:7;3242:6;3231:9;3227:22;3206:53;:::i;:::-;3196:63;;3151:118;3308:2;3334:53;3379:7;3370:6;3359:9;3355:22;3334:53;:::i;:::-;3324:63;;3279:118;2952:452;;;;;:::o;3410:407::-;3478:6;3486;3535:2;3523:9;3514:7;3510:23;3506:32;3503:2;;;3551:1;3548;3541:12;3503:2;3594:1;3619:53;3664:7;3655:6;3644:9;3640:22;3619:53;:::i;:::-;3609:63;;3565:117;3721:2;3747:53;3792:7;3783:6;3772:9;3768:22;3747:53;:::i;:::-;3737:63;;3692:118;3493:324;;;;;:::o;3823:405::-;3907:6;3956:2;3944:9;3935:7;3931:23;3927:32;3924:2;;;3972:1;3969;3962:12;3924:2;4043:1;4032:9;4028:17;4015:31;4073:18;4065:6;4062:30;4059:2;;;4105:1;4102;4095:12;4059:2;4133:78;4203:7;4194:6;4183:9;4179:22;4133:78;:::i;:::-;4123:88;;3986:235;3914:314;;;;:::o;4234:256::-;4290:6;4339:2;4327:9;4318:7;4314:23;4310:32;4307:2;;;4355:1;4352;4345:12;4307:2;4398:1;4423:50;4465:7;4456:6;4445:9;4441:22;4423:50;:::i;:::-;4413:60;;4369:114;4297:193;;;;:::o;4496:278::-;4563:6;4612:2;4600:9;4591:7;4587:23;4583:32;4580:2;;;4628:1;4625;4618:12;4580:2;4671:1;4696:61;4749:7;4740:6;4729:9;4725:22;4696:61;:::i;:::-;4686:71;;4642:125;4570:204;;;;:::o;4780:407::-;4848:6;4856;4905:2;4893:9;4884:7;4880:23;4876:32;4873:2;;;4921:1;4918;4911:12;4873:2;4964:1;4989:53;5034:7;5025:6;5014:9;5010:22;4989:53;:::i;:::-;4979:63;;4935:117;5091:2;5117:53;5162:7;5153:6;5142:9;5138:22;5117:53;:::i;:::-;5107:63;;5062:118;4863:324;;;;;:::o;5193:596::-;5281:6;5289;5297;5346:2;5334:9;5325:7;5321:23;5317:32;5314:2;;;5362:1;5359;5352:12;5314:2;5405:1;5430:64;5486:7;5477:6;5466:9;5462:22;5430:64;:::i;:::-;5420:74;;5376:128;5543:2;5569:64;5625:7;5616:6;5605:9;5601:22;5569:64;:::i;:::-;5559:74;;5514:129;5682:2;5708:64;5764:7;5755:6;5744:9;5740:22;5708:64;:::i;:::-;5698:74;;5653:129;5304:485;;;;;:::o;5795:179::-;5864:10;5885:46;5927:3;5919:6;5885:46;:::i;:::-;5963:4;5958:3;5954:14;5940:28;;5875:99;;;;:::o;5980:108::-;6057:24;6075:5;6057:24;:::i;:::-;6052:3;6045:37;6035:53;;:::o;6094:118::-;6181:24;6199:5;6181:24;:::i;:::-;6176:3;6169:37;6159:53;;:::o;6248:732::-;6367:3;6396:54;6444:5;6396:54;:::i;:::-;6466:86;6545:6;6540:3;6466:86;:::i;:::-;6459:93;;6576:56;6626:5;6576:56;:::i;:::-;6655:7;6686:1;6671:284;6696:6;6693:1;6690:13;6671:284;;;6772:6;6766:13;6799:63;6858:3;6843:13;6799:63;:::i;:::-;6792:70;;6885:60;6938:6;6885:60;:::i;:::-;6875:70;;6731:224;6718:1;6715;6711:9;6706:14;;6671:284;;;6675:14;6971:3;6964:10;;6372:608;;;;;;;:::o;6986:109::-;7067:21;7082:5;7067:21;:::i;:::-;7062:3;7055:34;7045:50;;:::o;7101:147::-;7196:45;7235:5;7196:45;:::i;:::-;7191:3;7184:58;7174:74;;:::o;7254:364::-;7342:3;7370:39;7403:5;7370:39;:::i;:::-;7425:71;7489:6;7484:3;7425:71;:::i;:::-;7418:78;;7505:52;7550:6;7545:3;7538:4;7531:5;7527:16;7505:52;:::i;:::-;7582:29;7604:6;7582:29;:::i;:::-;7577:3;7573:39;7566:46;;7346:272;;;;;:::o;7624:366::-;7766:3;7787:67;7851:2;7846:3;7787:67;:::i;:::-;7780:74;;7863:93;7952:3;7863:93;:::i;:::-;7981:2;7976:3;7972:12;7965:19;;7770:220;;;:::o;7996:366::-;8138:3;8159:67;8223:2;8218:3;8159:67;:::i;:::-;8152:74;;8235:93;8324:3;8235:93;:::i;:::-;8353:2;8348:3;8344:12;8337:19;;8142:220;;;:::o;8368:366::-;8510:3;8531:67;8595:2;8590:3;8531:67;:::i;:::-;8524:74;;8607:93;8696:3;8607:93;:::i;:::-;8725:2;8720:3;8716:12;8709:19;;8514:220;;;:::o;8740:366::-;8882:3;8903:67;8967:2;8962:3;8903:67;:::i;:::-;8896:74;;8979:93;9068:3;8979:93;:::i;:::-;9097:2;9092:3;9088:12;9081:19;;8886:220;;;:::o;9112:366::-;9254:3;9275:67;9339:2;9334:3;9275:67;:::i;:::-;9268:74;;9351:93;9440:3;9351:93;:::i;:::-;9469:2;9464:3;9460:12;9453:19;;9258:220;;;:::o;9484:366::-;9626:3;9647:67;9711:2;9706:3;9647:67;:::i;:::-;9640:74;;9723:93;9812:3;9723:93;:::i;:::-;9841:2;9836:3;9832:12;9825:19;;9630:220;;;:::o;9856:366::-;9998:3;10019:67;10083:2;10078:3;10019:67;:::i;:::-;10012:74;;10095:93;10184:3;10095:93;:::i;:::-;10213:2;10208:3;10204:12;10197:19;;10002:220;;;:::o;10228:366::-;10370:3;10391:67;10455:2;10450:3;10391:67;:::i;:::-;10384:74;;10467:93;10556:3;10467:93;:::i;:::-;10585:2;10580:3;10576:12;10569:19;;10374:220;;;:::o;10600:366::-;10742:3;10763:67;10827:2;10822:3;10763:67;:::i;:::-;10756:74;;10839:93;10928:3;10839:93;:::i;:::-;10957:2;10952:3;10948:12;10941:19;;10746:220;;;:::o;10972:366::-;11114:3;11135:67;11199:2;11194:3;11135:67;:::i;:::-;11128:74;;11211:93;11300:3;11211:93;:::i;:::-;11329:2;11324:3;11320:12;11313:19;;11118:220;;;:::o;11344:118::-;11431:24;11449:5;11431:24;:::i;:::-;11426:3;11419:37;11409:53;;:::o;11468:112::-;11551:22;11567:5;11551:22;:::i;:::-;11546:3;11539:35;11529:51;;:::o;11586:222::-;11679:4;11717:2;11706:9;11702:18;11694:26;;11730:71;11798:1;11787:9;11783:17;11774:6;11730:71;:::i;:::-;11684:124;;;;:::o;11814:332::-;11935:4;11973:2;11962:9;11958:18;11950:26;;11986:71;12054:1;12043:9;12039:17;12030:6;11986:71;:::i;:::-;12067:72;12135:2;12124:9;12120:18;12111:6;12067:72;:::i;:::-;11940:206;;;;;:::o;12152:332::-;12273:4;12311:2;12300:9;12296:18;12288:26;;12324:71;12392:1;12381:9;12377:17;12368:6;12324:71;:::i;:::-;12405:72;12473:2;12462:9;12458:18;12449:6;12405:72;:::i;:::-;12278:206;;;;;:::o;12490:807::-;12739:4;12777:3;12766:9;12762:19;12754:27;;12791:71;12859:1;12848:9;12844:17;12835:6;12791:71;:::i;:::-;12872:72;12940:2;12929:9;12925:18;12916:6;12872:72;:::i;:::-;12954:80;13030:2;13019:9;13015:18;13006:6;12954:80;:::i;:::-;13044;13120:2;13109:9;13105:18;13096:6;13044:80;:::i;:::-;13134:73;13202:3;13191:9;13187:19;13178:6;13134:73;:::i;:::-;13217;13285:3;13274:9;13270:19;13261:6;13217:73;:::i;:::-;12744:553;;;;;;;;;:::o;13303:210::-;13390:4;13428:2;13417:9;13413:18;13405:26;;13441:65;13503:1;13492:9;13488:17;13479:6;13441:65;:::i;:::-;13395:118;;;;:::o;13519:313::-;13632:4;13670:2;13659:9;13655:18;13647:26;;13719:9;13713:4;13709:20;13705:1;13694:9;13690:17;13683:47;13747:78;13820:4;13811:6;13747:78;:::i;:::-;13739:86;;13637:195;;;;:::o;13838:419::-;14004:4;14042:2;14031:9;14027:18;14019:26;;14091:9;14085:4;14081:20;14077:1;14066:9;14062:17;14055:47;14119:131;14245:4;14119:131;:::i;:::-;14111:139;;14009:248;;;:::o;14263:419::-;14429:4;14467:2;14456:9;14452:18;14444:26;;14516:9;14510:4;14506:20;14502:1;14491:9;14487:17;14480:47;14544:131;14670:4;14544:131;:::i;:::-;14536:139;;14434:248;;;:::o;14688:419::-;14854:4;14892:2;14881:9;14877:18;14869:26;;14941:9;14935:4;14931:20;14927:1;14916:9;14912:17;14905:47;14969:131;15095:4;14969:131;:::i;:::-;14961:139;;14859:248;;;:::o;15113:419::-;15279:4;15317:2;15306:9;15302:18;15294:26;;15366:9;15360:4;15356:20;15352:1;15341:9;15337:17;15330:47;15394:131;15520:4;15394:131;:::i;:::-;15386:139;;15284:248;;;:::o;15538:419::-;15704:4;15742:2;15731:9;15727:18;15719:26;;15791:9;15785:4;15781:20;15777:1;15766:9;15762:17;15755:47;15819:131;15945:4;15819:131;:::i;:::-;15811:139;;15709:248;;;:::o;15963:419::-;16129:4;16167:2;16156:9;16152:18;16144:26;;16216:9;16210:4;16206:20;16202:1;16191:9;16187:17;16180:47;16244:131;16370:4;16244:131;:::i;:::-;16236:139;;16134:248;;;:::o;16388:419::-;16554:4;16592:2;16581:9;16577:18;16569:26;;16641:9;16635:4;16631:20;16627:1;16616:9;16612:17;16605:47;16669:131;16795:4;16669:131;:::i;:::-;16661:139;;16559:248;;;:::o;16813:419::-;16979:4;17017:2;17006:9;17002:18;16994:26;;17066:9;17060:4;17056:20;17052:1;17041:9;17037:17;17030:47;17094:131;17220:4;17094:131;:::i;:::-;17086:139;;16984:248;;;:::o;17238:419::-;17404:4;17442:2;17431:9;17427:18;17419:26;;17491:9;17485:4;17481:20;17477:1;17466:9;17462:17;17455:47;17519:131;17645:4;17519:131;:::i;:::-;17511:139;;17409:248;;;:::o;17663:419::-;17829:4;17867:2;17856:9;17852:18;17844:26;;17916:9;17910:4;17906:20;17902:1;17891:9;17887:17;17880:47;17944:131;18070:4;17944:131;:::i;:::-;17936:139;;17834:248;;;:::o;18088:222::-;18181:4;18219:2;18208:9;18204:18;18196:26;;18232:71;18300:1;18289:9;18285:17;18276:6;18232:71;:::i;:::-;18186:124;;;;:::o;18316:831::-;18579:4;18617:3;18606:9;18602:19;18594:27;;18631:71;18699:1;18688:9;18684:17;18675:6;18631:71;:::i;:::-;18712:80;18788:2;18777:9;18773:18;18764:6;18712:80;:::i;:::-;18839:9;18833:4;18829:20;18824:2;18813:9;18809:18;18802:48;18867:108;18970:4;18961:6;18867:108;:::i;:::-;18859:116;;18985:72;19053:2;19042:9;19038:18;19029:6;18985:72;:::i;:::-;19067:73;19135:3;19124:9;19120:19;19111:6;19067:73;:::i;:::-;18584:563;;;;;;;;:::o;19153:214::-;19242:4;19280:2;19269:9;19265:18;19257:26;;19293:67;19357:1;19346:9;19342:17;19333:6;19293:67;:::i;:::-;19247:120;;;;:::o;19373:129::-;19407:6;19434:20;;:::i;:::-;19424:30;;19463:33;19491:4;19483:6;19463:33;:::i;:::-;19414:88;;;:::o;19508:75::-;19541:6;19574:2;19568:9;19558:19;;19548:35;:::o;19589:311::-;19666:4;19756:18;19748:6;19745:30;19742:2;;;19778:18;;:::i;:::-;19742:2;19828:4;19820:6;19816:17;19808:25;;19888:4;19882;19878:15;19870:23;;19671:229;;;:::o;19906:132::-;19973:4;19996:3;19988:11;;20026:4;20021:3;20017:14;20009:22;;19978:60;;;:::o;20044:114::-;20111:6;20145:5;20139:12;20129:22;;20118:40;;;:::o;20164:99::-;20216:6;20250:5;20244:12;20234:22;;20223:40;;;:::o;20269:113::-;20339:4;20371;20366:3;20362:14;20354:22;;20344:38;;;:::o;20388:184::-;20487:11;20521:6;20516:3;20509:19;20561:4;20556:3;20552:14;20537:29;;20499:73;;;;:::o;20578:169::-;20662:11;20696:6;20691:3;20684:19;20736:4;20731:3;20727:14;20712:29;;20674:73;;;;:::o;20753:305::-;20793:3;20812:20;20830:1;20812:20;:::i;:::-;20807:25;;20846:20;20864:1;20846:20;:::i;:::-;20841:25;;21000:1;20932:66;20928:74;20925:1;20922:81;20919:2;;;21006:18;;:::i;:::-;20919:2;21050:1;21047;21043:9;21036:16;;20797:261;;;;:::o;21064:185::-;21104:1;21121:20;21139:1;21121:20;:::i;:::-;21116:25;;21155:20;21173:1;21155:20;:::i;:::-;21150:25;;21194:1;21184:2;;21199:18;;:::i;:::-;21184:2;21241:1;21238;21234:9;21229:14;;21106:143;;;;:::o;21255:348::-;21295:7;21318:20;21336:1;21318:20;:::i;:::-;21313:25;;21352:20;21370:1;21352:20;:::i;:::-;21347:25;;21540:1;21472:66;21468:74;21465:1;21462:81;21457:1;21450:9;21443:17;21439:105;21436:2;;;21547:18;;:::i;:::-;21436:2;21595:1;21592;21588:9;21577:20;;21303:300;;;;:::o;21609:191::-;21649:4;21669:20;21687:1;21669:20;:::i;:::-;21664:25;;21703:20;21721:1;21703:20;:::i;:::-;21698:25;;21742:1;21739;21736:8;21733:2;;;21747:18;;:::i;:::-;21733:2;21792:1;21789;21785:9;21777:17;;21654:146;;;;:::o;21806:96::-;21843:7;21872:24;21890:5;21872:24;:::i;:::-;21861:35;;21851:51;;;:::o;21908:90::-;21942:7;21985:5;21978:13;21971:21;21960:32;;21950:48;;;:::o;22004:126::-;22041:7;22081:42;22074:5;22070:54;22059:65;;22049:81;;;:::o;22136:77::-;22173:7;22202:5;22191:16;;22181:32;;;:::o;22219:86::-;22254:7;22294:4;22287:5;22283:16;22272:27;;22262:43;;;:::o;22311:121::-;22369:9;22402:24;22420:5;22402:24;:::i;:::-;22389:37;;22379:53;;;:::o;22438:307::-;22506:1;22516:113;22530:6;22527:1;22524:13;22516:113;;;22615:1;22610:3;22606:11;22600:18;22596:1;22591:3;22587:11;22580:39;22552:2;22549:1;22545:10;22540:15;;22516:113;;;22647:6;22644:1;22641:13;22638:2;;;22727:1;22718:6;22713:3;22709:16;22702:27;22638:2;22487:258;;;;:::o;22751:281::-;22834:27;22856:4;22834:27;:::i;:::-;22826:6;22822:40;22964:6;22952:10;22949:22;22928:18;22916:10;22913:34;22910:62;22907:2;;;22975:18;;:::i;:::-;22907:2;23015:10;23011:2;23004:22;22794:238;;;:::o;23038:233::-;23077:3;23100:24;23118:5;23100:24;:::i;:::-;23091:33;;23146:66;23139:5;23136:77;23133:2;;;23216:18;;:::i;:::-;23133:2;23263:1;23256:5;23252:13;23245:20;;23081:190;;;:::o;23277:180::-;23325:77;23322:1;23315:88;23422:4;23419:1;23412:15;23446:4;23443:1;23436:15;23463:180;23511:77;23508:1;23501:88;23608:4;23605:1;23598:15;23632:4;23629:1;23622:15;23649:180;23697:77;23694:1;23687:88;23794:4;23791:1;23784:15;23818:4;23815:1;23808:15;23835:102;23876:6;23927:2;23923:7;23918:2;23911:5;23907:14;23903:28;23893:38;;23883:54;;;:::o;23943:222::-;24083:34;24079:1;24071:6;24067:14;24060:58;24152:5;24147:2;24139:6;24135:15;24128:30;24049:116;:::o;24171:229::-;24311:34;24307:1;24299:6;24295:14;24288:58;24380:12;24375:2;24367:6;24363:15;24356:37;24277:123;:::o;24406:221::-;24546:34;24542:1;24534:6;24530:14;24523:58;24615:4;24610:2;24602:6;24598:15;24591:29;24512:115;:::o;24633:177::-;24773:29;24769:1;24761:6;24757:14;24750:53;24739:71;:::o;24816:220::-;24956:34;24952:1;24944:6;24940:14;24933:58;25025:3;25020:2;25012:6;25008:15;25001:28;24922:114;:::o;25042:182::-;25182:34;25178:1;25170:6;25166:14;25159:58;25148:76;:::o;25230:228::-;25370:34;25366:1;25358:6;25354:14;25347:58;25439:11;25434:2;25426:6;25422:15;25415:36;25336:122;:::o;25464:224::-;25604:34;25600:1;25592:6;25588:14;25581:58;25673:7;25668:2;25660:6;25656:15;25649:32;25570:118;:::o;25694:223::-;25834:34;25830:1;25822:6;25818:14;25811:58;25903:6;25898:2;25890:6;25886:15;25879:31;25800:117;:::o;25923:173::-;26063:25;26059:1;26051:6;26047:14;26040:49;26029:67;:::o;26102:122::-;26175:24;26193:5;26175:24;:::i;:::-;26168:5;26165:35;26155:2;;26214:1;26211;26204:12;26155:2;26145:79;:::o;26230:116::-;26300:21;26315:5;26300:21;:::i;:::-;26293:5;26290:32;26280:2;;26336:1;26333;26326:12;26280:2;26270:76;:::o;26352:122::-;26425:24;26443:5;26425:24;:::i;:::-;26418:5;26415:35;26405:2;;26464:1;26461;26454:12;26405:2;26395:79;:::o
Swarm Source
ipfs://081d08c3031c2e4ebaa1c13874efb5fc3e05dd2ab7a5d81969a9f97208427871
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.