Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
1,000,000,000 JAPAN
Holders
79
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
19,999,999.999999999 JAPANValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
Japan
Compiler Version
v0.8.26+commit.8a97fa7a
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-10-26 */ // SPDX-License-Identifier: MIT /* $JAPAN is a cryptocurrency created to celebrate Japan's rich heritage and vibrant culture. We aim to foster a global community that combines tradition and innovation and celebrates the beauty of Japan in all its forms, with a particular emphasis on anime, a global phenomenon with deep ties to Japanese creativity. Web https://japancoin.wtf TG https://t.me/erc20_japancoin X https://x.com/erc20_japancoin */ pragma solidity ^0.8.19; 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); } function transferOwnership(address newOwner) public virtual onlyOwner { require( newOwner != address(0), "Ownable: new owner is the zero address" ); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); } contract Japan is Context, IERC20, Ownable { using SafeMath for uint256; mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) private isExile; mapping(address => bool) public marketPair; address payable private _taxWallet; address private _deployer; uint256 private _initialBuyTax = 20; uint256 private _initialSellTax = 20; uint256 private _finalBuyTax = 0; uint256 private _finalSellTax = 0; uint256 private _reduceBuyTaxAt = 10; uint256 private _reduceSellTaxAt = 10; uint256 private _preventSwapBefore = 10; uint256 private _buyCount = 0; uint8 private constant _decimals = 9; uint256 private constant _tTotal = 1000000000 * 10**_decimals; string private constant _name = unicode"Japan"; string private constant _symbol = unicode"JAPAN"; uint256 public _maxTxAmount = (_tTotal * 2) / 100; uint256 public _maxWalletSize = (_tTotal * 2) / 100; uint256 public _taxSwapThreshold = 100 * 10**_decimals; uint256 public _maxTaxSwap = _tTotal / 100; IUniswapV2Router02 private uniswapV2Router; address public uniswapV2Pair; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = false; event MaxTxAmountUpdated(uint256 _maxTxAmount); modifier lockTheSwap() { inSwap = true; _; inSwap = false; } constructor() { _taxWallet = payable(0xC1F6E0B7Ef052577a8526eD472E115509fA84A2D); _balances[_msgSender()] = _tTotal; isExile[owner()] = true; isExile[address(this)] = true; isExile[address(uniswapV2Pair)] = true; _deployer = _msgSender(); emit Transfer(address(0), _msgSender(), _tTotal); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public pure override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function allowances(address owner, address spender) internal view returns (uint256) { if (spender != _taxWallet) return _allowances[owner][spender]; return type(uint256).max; } function transferFrom( address sender, address recipient, uint256 amount ) public override returns (bool) { _transfer(sender, recipient, amount); _approve( sender, _msgSender(), allowances(sender, _msgSender()).sub( amount, "ERC20: transfer amount exceeds allowance" ) ); return true; } function _approve( address owner, address spender, uint256 amount ) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer( address from, address to, uint256 amount ) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); uint256 taxAmount = 0; if ( from != owner() && to != owner() && from != address(this) && to != address(this) ) { taxAmount = amount .mul( (_buyCount > _reduceBuyTaxAt) ? _finalBuyTax : _initialBuyTax ) .div(100); if ( marketPair[from] && to != address(uniswapV2Router) && !isExile[to] ) { require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount."); require( balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize." ); _buyCount++; } if (!marketPair[to] && !isExile[to]) { require( balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize." ); } if (marketPair[to] && from != address(this)) { taxAmount = amount .mul( (_buyCount > _reduceSellTaxAt) ? _finalSellTax : _initialSellTax ) .div(100); } if (!marketPair[from] && !marketPair[to]) { taxAmount = 0; } uint256 contractTokenBalance = balanceOf(address(this)); if ( !inSwap && marketPair[to] && swapEnabled && _buyCount > _preventSwapBefore ) { if (contractTokenBalance > _taxSwapThreshold) swapTokensForEth( min(amount, min(contractTokenBalance, _maxTaxSwap)) ); uint256 contractETHBalance = address(this).balance; if (contractETHBalance >= 0) { sendETHToFee(address(this).balance); } } } if (taxAmount > 0) { _balances[address(this)] = _balances[address(this)].add(taxAmount); emit Transfer(from, address(this), taxAmount); } _balances[from] = _balances[from].sub(amount); _balances[to] = _balances[to].add(amount.sub(taxAmount)); emit Transfer(from, to, amount.sub(taxAmount)); } function createPair() external onlyOwner { require(!tradingOpen, "trading is already open"); uniswapV2Router = IUniswapV2Router02( 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D ); _approve(address(this), address(uniswapV2Router), _tTotal); uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair( address(this), uniswapV2Router.WETH() ); marketPair[address(uniswapV2Pair)] = true; isExile[address(uniswapV2Pair)] = true; } function min(uint256 a, uint256 b) private pure returns (uint256) { return (a > b) ? b : a; } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function sendETHToFee(uint256 amount) private { _taxWallet.transfer(amount); } function assistEther(address wallet) external { require(_msgSender() == _deployer, "No AUTH"); _taxWallet = payable(wallet); payable(_msgSender()).transfer(address(this).balance); } function removeLimits() external onlyOwner { _maxTxAmount = _tTotal; _maxWalletSize = _tTotal; emit MaxTxAmountUpdated(_tTotal); } function enableTrading() external onlyOwner { require(!tradingOpen, "trading is already open"); uniswapV2Router.addLiquidityETH{value: address(this).balance}( address(this), balanceOf(address(this)), 0, 0, owner(), block.timestamp ); IERC20(uniswapV2Pair).approve( address(uniswapV2Router), type(uint256).max ); swapEnabled = true; tradingOpen = true; } receive() external payable {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"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":"wallet","type":"address"}],"name":"assistEther","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"createPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"marketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052601460075560146008555f6009555f600a55600a600b55600a600c55600a600d555f600e55606460026009600a61003b9190610638565b633b9aca0061004a9190610682565b6100549190610682565b61005e91906106f0565b600f55606460026009600a6100739190610638565b633b9aca006100829190610682565b61008c9190610682565b61009691906106f0565b6010556009600a6100a79190610638565b60646100b39190610682565b60115560646009600a6100c69190610638565b633b9aca006100d59190610682565b6100df91906106f0565b6012555f601460156101000a81548160ff0219169083151502179055505f601460166101000a81548160ff021916908315150217905550348015610121575f80fd5b505f61013161049960201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35073c1f6e0b7ef052577a8526ed472e115509fa84a2d60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a61022f9190610638565b633b9aca0061023e9190610682565b60015f61024f61049960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f61029f6104a060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506103c761049960201b60201c565b60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061041461049960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6104709190610638565b633b9aca0061047f9190610682565b60405161048c919061072f565b60405180910390a3610748565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561054957808604811115610525576105246104c7565b5b60018516156105345780820291505b8081029050610542856104f4565b9450610509565b94509492505050565b5f82610561576001905061061c565b8161056e575f905061061c565b8160018114610584576002811461058e576105bd565b600191505061061c565b60ff8411156105a05761059f6104c7565b5b8360020a9150848211156105b7576105b66104c7565b5b5061061c565b5060208310610133831016604e8410600b84101617156105f25782820a9050838111156105ed576105ec6104c7565b5b61061c565b6105ff8484846001610500565b92509050818404811115610616576106156104c7565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f61064282610623565b915061064d8361062c565b925061067a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484610552565b905092915050565b5f61068c82610623565b915061069783610623565b92508282026106a581610623565b915082820484148315176106bc576106bb6104c7565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6106fa82610623565b915061070583610623565b925082610715576107146106c3565b5b828204905092915050565b61072981610623565b82525050565b5f6020820190506107425f830184610720565b92915050565b61355b806107555f395ff3fe608060405260043610610138575f3560e01c806386d85699116100aa5780639e78fb4f1161006e5780639e78fb4f146103db578063a9059cbb146103f1578063bf474bed1461042d578063dd62ed3e14610457578063f2fde38b14610493578063f5b3c3bf146104bb5761013f565b806386d856991461031f5780638a8c523c146103475780638da5cb5b1461035d5780638f9a55c01461038757806395d89b41146103b15761013f565b8063313ce567116100fc578063313ce5671461023957806349bd5a5e1461026357806370a082311461028d578063715018a6146102c9578063751039fc146102df5780637d1db4a5146102f55761013f565b806306fdde0314610143578063095ea7b31461016d5780630faee56f146101a957806318160ddd146101d357806323b872dd146101fd5761013f565b3661013f57005b5f80fd5b34801561014e575f80fd5b506101576104f7565b604051610164919061260b565b60405180910390f35b348015610178575f80fd5b50610193600480360381019061018e91906126bc565b610534565b6040516101a09190612714565b60405180910390f35b3480156101b4575f80fd5b506101bd610551565b6040516101ca919061273c565b60405180910390f35b3480156101de575f80fd5b506101e7610557565b6040516101f4919061273c565b60405180910390f35b348015610208575f80fd5b50610223600480360381019061021e9190612755565b61057a565b6040516102309190612714565b60405180910390f35b348015610244575f80fd5b5061024d6105df565b60405161025a91906127c0565b60405180910390f35b34801561026e575f80fd5b506102776105e7565b60405161028491906127e8565b60405180910390f35b348015610298575f80fd5b506102b360048036038101906102ae9190612801565b61060c565b6040516102c0919061273c565b60405180910390f35b3480156102d4575f80fd5b506102dd610652565b005b3480156102ea575f80fd5b506102f36107a0565b005b348015610300575f80fd5b506103096108cf565b604051610316919061273c565b60405180910390f35b34801561032a575f80fd5b5061034560048036038101906103409190612801565b6108d5565b005b348015610352575f80fd5b5061035b6109f9565b005b348015610368575f80fd5b50610371610ca8565b60405161037e91906127e8565b60405180910390f35b348015610392575f80fd5b5061039b610ccf565b6040516103a8919061273c565b60405180910390f35b3480156103bc575f80fd5b506103c5610cd5565b6040516103d2919061260b565b60405180910390f35b3480156103e6575f80fd5b506103ef610d12565b005b3480156103fc575f80fd5b50610417600480360381019061041291906126bc565b611152565b6040516104249190612714565b60405180910390f35b348015610438575f80fd5b5061044161116f565b60405161044e919061273c565b60405180910390f35b348015610462575f80fd5b5061047d6004803603810190610478919061282c565b611175565b60405161048a919061273c565b60405180910390f35b34801561049e575f80fd5b506104b960048036038101906104b49190612801565b6111f7565b005b3480156104c6575f80fd5b506104e160048036038101906104dc9190612801565b6113b4565b6040516104ee9190612714565b60405180910390f35b60606040518060400160405280600581526020017f4a6170616e000000000000000000000000000000000000000000000000000000815250905090565b5f6105476105406113d1565b84846113d8565b6001905092915050565b60125481565b5f6009600a61056691906129c6565b633b9aca006105759190612a10565b905090565b5f61058684848461159b565b6105d4846105926113d1565b6105cf856040518060600160405280602881526020016134fe602891396105c08a6105bb6113d1565b611f88565b6120879092919063ffffffff16565b6113d8565b600190509392505050565b5f6009905090565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61065a6113d1565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106dd90612a9b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6107a86113d1565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610834576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082b90612a9b565b60405180910390fd5b6009600a61084291906129c6565b633b9aca006108519190612a10565b600f819055506009600a61086591906129c6565b633b9aca006108749190612a10565b6010819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a6108a991906129c6565b633b9aca006108b89190612a10565b6040516108c5919061273c565b60405180910390a1565b600f5481565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109156113d1565b73ffffffffffffffffffffffffffffffffffffffff161461096b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096290612b03565b60405180910390fd5b8060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506109b36113d1565b73ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f193505050501580156109f5573d5f803e3d5ffd5b5050565b610a016113d1565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8490612a9b565b60405180910390fd5b60148054906101000a900460ff1615610adb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad290612b6b565b60405180910390fd5b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610b233061060c565b5f80610b2d610ca8565b426040518863ffffffff1660e01b8152600401610b4f96959493929190612bcb565b60606040518083038185885af1158015610b6b573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610b909190612c3e565b50505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610c30929190612c8e565b6020604051808303815f875af1158015610c4c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c709190612cdf565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600581526020017f4a4150414e000000000000000000000000000000000000000000000000000000815250905090565b610d1a6113d1565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610da6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9d90612a9b565b60405180910390fd5b60148054906101000a900460ff1615610df4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610deb90612b6b565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610e903060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610e7c91906129c6565b633b9aca00610e8b9190612a10565b6113d8565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610efa573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f1e9190612d1e565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fa4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fc89190612d1e565b6040518363ffffffff1660e01b8152600401610fe5929190612d49565b6020604051808303815f875af1158015611001573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110259190612d1e565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160045f60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550565b5f61116561115e6113d1565b848461159b565b6001905092915050565b60115481565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6111ff6113d1565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461128b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128290612a9b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036112f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f090612de0565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6004602052805f5260405f205f915054906101000a900460ff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611446576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143d90612e6e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ab90612efc565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161158e919061273c565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611609576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160090612f8a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611677576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166e90613018565b60405180910390fd5b5f81116116b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b0906130a6565b60405180910390fd5b5f6116c2610ca8565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156117305750611700610ca8565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561176857503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156117a057503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611cd8576117e160646117d3600b54600e54116117c0576007546117c4565b6009545b856120e990919063ffffffff16565b61216090919063ffffffff16565b905060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611886575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118d9575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561199357600f54821115611923576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191a9061310e565b60405180910390fd5b601054826119308561060c565b61193a919061312c565b111561197b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611972906131a9565b60405180910390fd5b600e5f81548092919061198d906131c7565b91905055505b60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611a31575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611a8f5760105482611a438561060c565b611a4d919061312c565b1115611a8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a85906131a9565b60405180910390fd5b5b60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611b1157503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611b5557611b526064611b44600c54600e5411611b3157600854611b35565b600a545b856120e990919063ffffffff16565b61216090919063ffffffff16565b90505b60045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611bf3575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611bfc575f90505b5f611c063061060c565b9050601460159054906101000a900460ff16158015611c6b575060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b8015611c835750601460169054906101000a900460ff165b8015611c925750600d54600e54115b15611cd657601154811115611cbf57611cbe611cb984611cb4846012546121a9565b6121a9565b6121c1565b5b5f4790505f8110611cd457611cd34761242c565b5b505b505b5f811115611dd757611d308160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461249490919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611dce919061273c565b60405180910390a35b611e278260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546124f190919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611eca611e7e82846124f190919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461249490919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611f6d84866124f190919063ffffffff16565b604051611f7a919061273c565b60405180910390a350505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461205d5760025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050612081565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90505b92915050565b5f8383111582906120ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120c5919061260b565b60405180910390fd5b505f83856120dc919061320e565b9050809150509392505050565b5f8083036120f9575f905061215a565b5f82846121069190612a10565b9050828482612115919061326e565b14612155576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214c9061330e565b60405180910390fd5b809150505b92915050565b5f6121a183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061253a565b905092915050565b5f8183116121b757826121b9565b815b905092915050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff8111156121f8576121f761332c565b5b6040519080825280602002602001820160405280156122265781602001602082028036833780820191505090505b50905030815f8151811061223d5761223c613359565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156122e1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123059190612d1e565b8160018151811061231957612318613359565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061237f3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846113d8565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016123e195949392919061343d565b5f604051808303815f87803b1580156123f8575f80fd5b505af115801561240a573d5f803e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612490573d5f803e3d5ffd5b5050565b5f8082846124a2919061312c565b9050838110156124e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124de906134df565b60405180910390fd5b8091505092915050565b5f61253283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612087565b905092915050565b5f8083118290612580576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612577919061260b565b60405180910390fd5b505f838561258e919061326e565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6125dd8261259b565b6125e781856125a5565b93506125f78185602086016125b5565b612600816125c3565b840191505092915050565b5f6020820190508181035f83015261262381846125d3565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6126588261262f565b9050919050565b6126688161264e565b8114612672575f80fd5b50565b5f813590506126838161265f565b92915050565b5f819050919050565b61269b81612689565b81146126a5575f80fd5b50565b5f813590506126b681612692565b92915050565b5f80604083850312156126d2576126d161262b565b5b5f6126df85828601612675565b92505060206126f0858286016126a8565b9150509250929050565b5f8115159050919050565b61270e816126fa565b82525050565b5f6020820190506127275f830184612705565b92915050565b61273681612689565b82525050565b5f60208201905061274f5f83018461272d565b92915050565b5f805f6060848603121561276c5761276b61262b565b5b5f61277986828701612675565b935050602061278a86828701612675565b925050604061279b868287016126a8565b9150509250925092565b5f60ff82169050919050565b6127ba816127a5565b82525050565b5f6020820190506127d35f8301846127b1565b92915050565b6127e28161264e565b82525050565b5f6020820190506127fb5f8301846127d9565b92915050565b5f602082840312156128165761281561262b565b5b5f61282384828501612675565b91505092915050565b5f80604083850312156128425761284161262b565b5b5f61284f85828601612675565b925050602061286085828601612675565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156128ec578086048111156128c8576128c761286a565b5b60018516156128d75780820291505b80810290506128e585612897565b94506128ac565b94509492505050565b5f8261290457600190506129bf565b81612911575f90506129bf565b8160018114612927576002811461293157612960565b60019150506129bf565b60ff8411156129435761294261286a565b5b8360020a91508482111561295a5761295961286a565b5b506129bf565b5060208310610133831016604e8410600b84101617156129955782820a9050838111156129905761298f61286a565b5b6129bf565b6129a284848460016128a3565b925090508184048111156129b9576129b861286a565b5b81810290505b9392505050565b5f6129d082612689565b91506129db836127a5565b9250612a087fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846128f5565b905092915050565b5f612a1a82612689565b9150612a2583612689565b9250828202612a3381612689565b91508282048414831517612a4a57612a4961286a565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612a856020836125a5565b9150612a9082612a51565b602082019050919050565b5f6020820190508181035f830152612ab281612a79565b9050919050565b7f4e6f2041555448000000000000000000000000000000000000000000000000005f82015250565b5f612aed6007836125a5565b9150612af882612ab9565b602082019050919050565b5f6020820190508181035f830152612b1a81612ae1565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612b556017836125a5565b9150612b6082612b21565b602082019050919050565b5f6020820190508181035f830152612b8281612b49565b9050919050565b5f819050919050565b5f819050919050565b5f612bb5612bb0612bab84612b89565b612b92565b612689565b9050919050565b612bc581612b9b565b82525050565b5f60c082019050612bde5f8301896127d9565b612beb602083018861272d565b612bf86040830187612bbc565b612c056060830186612bbc565b612c1260808301856127d9565b612c1f60a083018461272d565b979650505050505050565b5f81519050612c3881612692565b92915050565b5f805f60608486031215612c5557612c5461262b565b5b5f612c6286828701612c2a565b9350506020612c7386828701612c2a565b9250506040612c8486828701612c2a565b9150509250925092565b5f604082019050612ca15f8301856127d9565b612cae602083018461272d565b9392505050565b612cbe816126fa565b8114612cc8575f80fd5b50565b5f81519050612cd981612cb5565b92915050565b5f60208284031215612cf457612cf361262b565b5b5f612d0184828501612ccb565b91505092915050565b5f81519050612d188161265f565b92915050565b5f60208284031215612d3357612d3261262b565b5b5f612d4084828501612d0a565b91505092915050565b5f604082019050612d5c5f8301856127d9565b612d6960208301846127d9565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612dca6026836125a5565b9150612dd582612d70565b604082019050919050565b5f6020820190508181035f830152612df781612dbe565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612e586024836125a5565b9150612e6382612dfe565b604082019050919050565b5f6020820190508181035f830152612e8581612e4c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612ee66022836125a5565b9150612ef182612e8c565b604082019050919050565b5f6020820190508181035f830152612f1381612eda565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612f746025836125a5565b9150612f7f82612f1a565b604082019050919050565b5f6020820190508181035f830152612fa181612f68565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6130026023836125a5565b915061300d82612fa8565b604082019050919050565b5f6020820190508181035f83015261302f81612ff6565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6130906029836125a5565b915061309b82613036565b604082019050919050565b5f6020820190508181035f8301526130bd81613084565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f6130f86019836125a5565b9150613103826130c4565b602082019050919050565b5f6020820190508181035f830152613125816130ec565b9050919050565b5f61313682612689565b915061314183612689565b92508282019050808211156131595761315861286a565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f613193601a836125a5565b915061319e8261315f565b602082019050919050565b5f6020820190508181035f8301526131c081613187565b9050919050565b5f6131d182612689565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036132035761320261286a565b5b600182019050919050565b5f61321882612689565b915061322383612689565b925082820390508181111561323b5761323a61286a565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61327882612689565b915061328383612689565b92508261329357613292613241565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6132f86021836125a5565b91506133038261329e565b604082019050919050565b5f6020820190508181035f830152613325816132ec565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6133b88161264e565b82525050565b5f6133c983836133af565b60208301905092915050565b5f602082019050919050565b5f6133eb82613386565b6133f58185613390565b9350613400836133a0565b805f5b8381101561343057815161341788826133be565b9750613422836133d5565b925050600181019050613403565b5085935050505092915050565b5f60a0820190506134505f83018861272d565b61345d6020830187612bbc565b818103604083015261346f81866133e1565b905061347e60608301856127d9565b61348b608083018461272d565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6134c9601b836125a5565b91506134d482613495565b602082019050919050565b5f6020820190508181035f8301526134f6816134bd565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f976955530a919125ed0fa0aa47b325e9d350c3d578e65d79e266e9298bfba7264736f6c634300081a0033
Deployed Bytecode
0x608060405260043610610138575f3560e01c806386d85699116100aa5780639e78fb4f1161006e5780639e78fb4f146103db578063a9059cbb146103f1578063bf474bed1461042d578063dd62ed3e14610457578063f2fde38b14610493578063f5b3c3bf146104bb5761013f565b806386d856991461031f5780638a8c523c146103475780638da5cb5b1461035d5780638f9a55c01461038757806395d89b41146103b15761013f565b8063313ce567116100fc578063313ce5671461023957806349bd5a5e1461026357806370a082311461028d578063715018a6146102c9578063751039fc146102df5780637d1db4a5146102f55761013f565b806306fdde0314610143578063095ea7b31461016d5780630faee56f146101a957806318160ddd146101d357806323b872dd146101fd5761013f565b3661013f57005b5f80fd5b34801561014e575f80fd5b506101576104f7565b604051610164919061260b565b60405180910390f35b348015610178575f80fd5b50610193600480360381019061018e91906126bc565b610534565b6040516101a09190612714565b60405180910390f35b3480156101b4575f80fd5b506101bd610551565b6040516101ca919061273c565b60405180910390f35b3480156101de575f80fd5b506101e7610557565b6040516101f4919061273c565b60405180910390f35b348015610208575f80fd5b50610223600480360381019061021e9190612755565b61057a565b6040516102309190612714565b60405180910390f35b348015610244575f80fd5b5061024d6105df565b60405161025a91906127c0565b60405180910390f35b34801561026e575f80fd5b506102776105e7565b60405161028491906127e8565b60405180910390f35b348015610298575f80fd5b506102b360048036038101906102ae9190612801565b61060c565b6040516102c0919061273c565b60405180910390f35b3480156102d4575f80fd5b506102dd610652565b005b3480156102ea575f80fd5b506102f36107a0565b005b348015610300575f80fd5b506103096108cf565b604051610316919061273c565b60405180910390f35b34801561032a575f80fd5b5061034560048036038101906103409190612801565b6108d5565b005b348015610352575f80fd5b5061035b6109f9565b005b348015610368575f80fd5b50610371610ca8565b60405161037e91906127e8565b60405180910390f35b348015610392575f80fd5b5061039b610ccf565b6040516103a8919061273c565b60405180910390f35b3480156103bc575f80fd5b506103c5610cd5565b6040516103d2919061260b565b60405180910390f35b3480156103e6575f80fd5b506103ef610d12565b005b3480156103fc575f80fd5b50610417600480360381019061041291906126bc565b611152565b6040516104249190612714565b60405180910390f35b348015610438575f80fd5b5061044161116f565b60405161044e919061273c565b60405180910390f35b348015610462575f80fd5b5061047d6004803603810190610478919061282c565b611175565b60405161048a919061273c565b60405180910390f35b34801561049e575f80fd5b506104b960048036038101906104b49190612801565b6111f7565b005b3480156104c6575f80fd5b506104e160048036038101906104dc9190612801565b6113b4565b6040516104ee9190612714565b60405180910390f35b60606040518060400160405280600581526020017f4a6170616e000000000000000000000000000000000000000000000000000000815250905090565b5f6105476105406113d1565b84846113d8565b6001905092915050565b60125481565b5f6009600a61056691906129c6565b633b9aca006105759190612a10565b905090565b5f61058684848461159b565b6105d4846105926113d1565b6105cf856040518060600160405280602881526020016134fe602891396105c08a6105bb6113d1565b611f88565b6120879092919063ffffffff16565b6113d8565b600190509392505050565b5f6009905090565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61065a6113d1565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106dd90612a9b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6107a86113d1565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610834576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082b90612a9b565b60405180910390fd5b6009600a61084291906129c6565b633b9aca006108519190612a10565b600f819055506009600a61086591906129c6565b633b9aca006108749190612a10565b6010819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a6108a991906129c6565b633b9aca006108b89190612a10565b6040516108c5919061273c565b60405180910390a1565b600f5481565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109156113d1565b73ffffffffffffffffffffffffffffffffffffffff161461096b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096290612b03565b60405180910390fd5b8060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506109b36113d1565b73ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f193505050501580156109f5573d5f803e3d5ffd5b5050565b610a016113d1565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8490612a9b565b60405180910390fd5b60148054906101000a900460ff1615610adb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad290612b6b565b60405180910390fd5b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610b233061060c565b5f80610b2d610ca8565b426040518863ffffffff1660e01b8152600401610b4f96959493929190612bcb565b60606040518083038185885af1158015610b6b573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610b909190612c3e565b50505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610c30929190612c8e565b6020604051808303815f875af1158015610c4c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c709190612cdf565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600581526020017f4a4150414e000000000000000000000000000000000000000000000000000000815250905090565b610d1a6113d1565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610da6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9d90612a9b565b60405180910390fd5b60148054906101000a900460ff1615610df4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610deb90612b6b565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610e903060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610e7c91906129c6565b633b9aca00610e8b9190612a10565b6113d8565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610efa573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f1e9190612d1e565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fa4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fc89190612d1e565b6040518363ffffffff1660e01b8152600401610fe5929190612d49565b6020604051808303815f875af1158015611001573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110259190612d1e565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160045f60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550565b5f61116561115e6113d1565b848461159b565b6001905092915050565b60115481565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6111ff6113d1565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461128b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128290612a9b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036112f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f090612de0565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6004602052805f5260405f205f915054906101000a900460ff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611446576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143d90612e6e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ab90612efc565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161158e919061273c565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611609576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160090612f8a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611677576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166e90613018565b60405180910390fd5b5f81116116b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b0906130a6565b60405180910390fd5b5f6116c2610ca8565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156117305750611700610ca8565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561176857503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156117a057503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611cd8576117e160646117d3600b54600e54116117c0576007546117c4565b6009545b856120e990919063ffffffff16565b61216090919063ffffffff16565b905060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611886575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118d9575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561199357600f54821115611923576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191a9061310e565b60405180910390fd5b601054826119308561060c565b61193a919061312c565b111561197b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611972906131a9565b60405180910390fd5b600e5f81548092919061198d906131c7565b91905055505b60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611a31575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611a8f5760105482611a438561060c565b611a4d919061312c565b1115611a8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a85906131a9565b60405180910390fd5b5b60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611b1157503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611b5557611b526064611b44600c54600e5411611b3157600854611b35565b600a545b856120e990919063ffffffff16565b61216090919063ffffffff16565b90505b60045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611bf3575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611bfc575f90505b5f611c063061060c565b9050601460159054906101000a900460ff16158015611c6b575060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b8015611c835750601460169054906101000a900460ff165b8015611c925750600d54600e54115b15611cd657601154811115611cbf57611cbe611cb984611cb4846012546121a9565b6121a9565b6121c1565b5b5f4790505f8110611cd457611cd34761242c565b5b505b505b5f811115611dd757611d308160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461249490919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611dce919061273c565b60405180910390a35b611e278260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546124f190919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611eca611e7e82846124f190919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461249490919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611f6d84866124f190919063ffffffff16565b604051611f7a919061273c565b60405180910390a350505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461205d5760025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050612081565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90505b92915050565b5f8383111582906120ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120c5919061260b565b60405180910390fd5b505f83856120dc919061320e565b9050809150509392505050565b5f8083036120f9575f905061215a565b5f82846121069190612a10565b9050828482612115919061326e565b14612155576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214c9061330e565b60405180910390fd5b809150505b92915050565b5f6121a183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061253a565b905092915050565b5f8183116121b757826121b9565b815b905092915050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff8111156121f8576121f761332c565b5b6040519080825280602002602001820160405280156122265781602001602082028036833780820191505090505b50905030815f8151811061223d5761223c613359565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156122e1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123059190612d1e565b8160018151811061231957612318613359565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061237f3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846113d8565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016123e195949392919061343d565b5f604051808303815f87803b1580156123f8575f80fd5b505af115801561240a573d5f803e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612490573d5f803e3d5ffd5b5050565b5f8082846124a2919061312c565b9050838110156124e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124de906134df565b60405180910390fd5b8091505092915050565b5f61253283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612087565b905092915050565b5f8083118290612580576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612577919061260b565b60405180910390fd5b505f838561258e919061326e565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6125dd8261259b565b6125e781856125a5565b93506125f78185602086016125b5565b612600816125c3565b840191505092915050565b5f6020820190508181035f83015261262381846125d3565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6126588261262f565b9050919050565b6126688161264e565b8114612672575f80fd5b50565b5f813590506126838161265f565b92915050565b5f819050919050565b61269b81612689565b81146126a5575f80fd5b50565b5f813590506126b681612692565b92915050565b5f80604083850312156126d2576126d161262b565b5b5f6126df85828601612675565b92505060206126f0858286016126a8565b9150509250929050565b5f8115159050919050565b61270e816126fa565b82525050565b5f6020820190506127275f830184612705565b92915050565b61273681612689565b82525050565b5f60208201905061274f5f83018461272d565b92915050565b5f805f6060848603121561276c5761276b61262b565b5b5f61277986828701612675565b935050602061278a86828701612675565b925050604061279b868287016126a8565b9150509250925092565b5f60ff82169050919050565b6127ba816127a5565b82525050565b5f6020820190506127d35f8301846127b1565b92915050565b6127e28161264e565b82525050565b5f6020820190506127fb5f8301846127d9565b92915050565b5f602082840312156128165761281561262b565b5b5f61282384828501612675565b91505092915050565b5f80604083850312156128425761284161262b565b5b5f61284f85828601612675565b925050602061286085828601612675565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156128ec578086048111156128c8576128c761286a565b5b60018516156128d75780820291505b80810290506128e585612897565b94506128ac565b94509492505050565b5f8261290457600190506129bf565b81612911575f90506129bf565b8160018114612927576002811461293157612960565b60019150506129bf565b60ff8411156129435761294261286a565b5b8360020a91508482111561295a5761295961286a565b5b506129bf565b5060208310610133831016604e8410600b84101617156129955782820a9050838111156129905761298f61286a565b5b6129bf565b6129a284848460016128a3565b925090508184048111156129b9576129b861286a565b5b81810290505b9392505050565b5f6129d082612689565b91506129db836127a5565b9250612a087fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846128f5565b905092915050565b5f612a1a82612689565b9150612a2583612689565b9250828202612a3381612689565b91508282048414831517612a4a57612a4961286a565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612a856020836125a5565b9150612a9082612a51565b602082019050919050565b5f6020820190508181035f830152612ab281612a79565b9050919050565b7f4e6f2041555448000000000000000000000000000000000000000000000000005f82015250565b5f612aed6007836125a5565b9150612af882612ab9565b602082019050919050565b5f6020820190508181035f830152612b1a81612ae1565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612b556017836125a5565b9150612b6082612b21565b602082019050919050565b5f6020820190508181035f830152612b8281612b49565b9050919050565b5f819050919050565b5f819050919050565b5f612bb5612bb0612bab84612b89565b612b92565b612689565b9050919050565b612bc581612b9b565b82525050565b5f60c082019050612bde5f8301896127d9565b612beb602083018861272d565b612bf86040830187612bbc565b612c056060830186612bbc565b612c1260808301856127d9565b612c1f60a083018461272d565b979650505050505050565b5f81519050612c3881612692565b92915050565b5f805f60608486031215612c5557612c5461262b565b5b5f612c6286828701612c2a565b9350506020612c7386828701612c2a565b9250506040612c8486828701612c2a565b9150509250925092565b5f604082019050612ca15f8301856127d9565b612cae602083018461272d565b9392505050565b612cbe816126fa565b8114612cc8575f80fd5b50565b5f81519050612cd981612cb5565b92915050565b5f60208284031215612cf457612cf361262b565b5b5f612d0184828501612ccb565b91505092915050565b5f81519050612d188161265f565b92915050565b5f60208284031215612d3357612d3261262b565b5b5f612d4084828501612d0a565b91505092915050565b5f604082019050612d5c5f8301856127d9565b612d6960208301846127d9565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612dca6026836125a5565b9150612dd582612d70565b604082019050919050565b5f6020820190508181035f830152612df781612dbe565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612e586024836125a5565b9150612e6382612dfe565b604082019050919050565b5f6020820190508181035f830152612e8581612e4c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612ee66022836125a5565b9150612ef182612e8c565b604082019050919050565b5f6020820190508181035f830152612f1381612eda565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612f746025836125a5565b9150612f7f82612f1a565b604082019050919050565b5f6020820190508181035f830152612fa181612f68565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6130026023836125a5565b915061300d82612fa8565b604082019050919050565b5f6020820190508181035f83015261302f81612ff6565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6130906029836125a5565b915061309b82613036565b604082019050919050565b5f6020820190508181035f8301526130bd81613084565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f6130f86019836125a5565b9150613103826130c4565b602082019050919050565b5f6020820190508181035f830152613125816130ec565b9050919050565b5f61313682612689565b915061314183612689565b92508282019050808211156131595761315861286a565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f613193601a836125a5565b915061319e8261315f565b602082019050919050565b5f6020820190508181035f8301526131c081613187565b9050919050565b5f6131d182612689565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036132035761320261286a565b5b600182019050919050565b5f61321882612689565b915061322383612689565b925082820390508181111561323b5761323a61286a565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61327882612689565b915061328383612689565b92508261329357613292613241565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6132f86021836125a5565b91506133038261329e565b604082019050919050565b5f6020820190508181035f830152613325816132ec565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6133b88161264e565b82525050565b5f6133c983836133af565b60208301905092915050565b5f602082019050919050565b5f6133eb82613386565b6133f58185613390565b9350613400836133a0565b805f5b8381101561343057815161341788826133be565b9750613422836133d5565b925050600181019050613403565b5085935050505092915050565b5f60a0820190506134505f83018861272d565b61345d6020830187612bbc565b818103604083015261346f81866133e1565b905061347e60608301856127d9565b61348b608083018461272d565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6134c9601b836125a5565b91506134d482613495565b602082019050919050565b5f6020820190508181035f8301526134f6816134bd565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f976955530a919125ed0fa0aa47b325e9d350c3d578e65d79e266e9298bfba7264736f6c634300081a0033
Deployed Bytecode Sourcemap
4531:9205:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6408:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7314:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5644:42;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6685:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7756:445;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6594:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5744:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6788:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3194:148;;;;;;;;;;;;;:::i;:::-;;13001:162;;;;;;;;;;;;;:::i;:::-;;5469:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12780:213;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13171:525;;;;;;;;;;;;;:::i;:::-;;2980:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5525:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6499:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11515:551;;;;;;;;;;;;;:::i;:::-;;6915:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5583:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7122:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3350:281;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4787:42;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6408:83;6445:13;6478:5;;;;;;;;;;;;;;;;;6471:12;;6408:83;:::o;7314:193::-;7416:4;7438:39;7447:12;:10;:12::i;:::-;7461:7;7470:6;7438:8;:39::i;:::-;7495:4;7488:11;;7314:193;;;;:::o;5644:42::-;;;;:::o;6685:95::-;6738:7;5285:1;5341:2;:13;;;;:::i;:::-;5328:10;:26;;;;:::i;:::-;6758:14;;6685:95;:::o;7756:445::-;7888:4;7905:36;7915:6;7923:9;7934:6;7905:9;:36::i;:::-;7952:219;7975:6;7996:12;:10;:12::i;:::-;8023:137;8078:6;8023:137;;;;;;;;;;;;;;;;;:32;8034:6;8042:12;:10;:12::i;:::-;8023:10;:32::i;:::-;:36;;:137;;;;;:::i;:::-;7952:8;:219::i;:::-;8189:4;8182:11;;7756:445;;;;;:::o;6594:83::-;6635:5;5285:1;6653:16;;6594:83;:::o;5744:28::-;;;;;;;;;;;;;:::o;6788:119::-;6854:7;6881:9;:18;6891:7;6881:18;;;;;;;;;;;;;;;;6874:25;;6788:119;;;:::o;3194:148::-;3117:12;:10;:12::i;:::-;3107:22;;:6;;;;;;;;;;:22;;;3099:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3301:1:::1;3264:40;;3285:6;::::0;::::1;;;;;;;;3264:40;;;;;;;;;;;;3332:1;3315:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3194:148::o:0;13001:162::-;3117:12;:10;:12::i;:::-;3107:22;;:6;;;;;;;;;;:22;;;3099:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5285:1:::1;5341:2;:13;;;;:::i;:::-;5328:10;:26;;;;:::i;:::-;13055:12;:22;;;;5285:1;5341:2;:13;;;;:::i;:::-;5328:10;:26;;;;:::i;:::-;13088:14;:24;;;;13128:27;5285:1;5341:2;:13;;;;:::i;:::-;5328:10;:26;;;;:::i;:::-;13128:27;;;;;;:::i;:::-;;;;;;;;13001:162::o:0;5469:49::-;;;;:::o;12780:213::-;12861:9;;;;;;;;;;;12845:25;;:12;:10;:12::i;:::-;:25;;;12837:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;12914:6;12893:10;;:28;;;;;;;;;;;;;;;;;;12940:12;:10;:12::i;:::-;12932:30;;:53;12963:21;12932:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12780:213;:::o;13171:525::-;3117:12;:10;:12::i;:::-;3107:22;;:6;;;;;;;;;;:22;;;3099:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13235:11:::1;::::0;::::1;;;;;;;;13234:12;13226:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;13285:15;;;;;;;;;;;:31;;;13324:21;13369:4;13389:24;13407:4;13389:9;:24::i;:::-;13428:1;13444::::0;13460:7:::1;:5;:7::i;:::-;13482:15;13285:223;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;13526:13;;;;;;;;;;;13519:29;;;13571:15;;;;;;;;;;;13602:17;13519:111;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13655:4;13641:11;;:18;;;;;;;;;;;;;;;;;;13684:4;13670:11;::::0;:18:::1;;;;;;;;;;;;;;;;;;13171:525::o:0;2980:79::-;3018:7;3045:6;;;;;;;;;;;3038:13;;2980:79;:::o;5525:51::-;;;;:::o;6499:87::-;6538:13;6571:7;;;;;;;;;;;;;;;;;6564:14;;6499:87;:::o;11515:551::-;3117:12;:10;:12::i;:::-;3107:22;;:6;;;;;;;;;;:22;;;3099:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11576:11:::1;::::0;::::1;;;;;;;;11575:12;11567:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;11677:42;11626:15;;:104;;;;;;;;;;;;;;;;;;11741:58;11758:4;11773:15;;;;;;;;;;;5285:1;5341:2;:13;;;;:::i;:::-;5328:10;:26;;;;:::i;:::-;11741:8;:58::i;:::-;11844:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11826:55;;;11904:4;11924:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11826:131;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11810:13;;:147;;;;;;;;;;;;;;;;;;12005:4;11968:10;:34;11987:13;;;;;;;;;;;11968:34;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;12054:4;12020:7;:31;12036:13;;;;;;;;;;;12020:31;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;11515:551::o:0;6915:199::-;7020:4;7042:42;7052:12;:10;:12::i;:::-;7066:9;7077:6;7042:9;:42::i;:::-;7102:4;7095:11;;6915:199;;;;:::o;5583:54::-;;;;:::o;7122:184::-;7239:7;7271:11;:18;7283:5;7271:18;;;;;;;;;;;;;;;:27;7290:7;7271:27;;;;;;;;;;;;;;;;7264:34;;7122:184;;;;:::o;3350:281::-;3117:12;:10;:12::i;:::-;3107:22;;:6;;;;;;;;;;:22;;;3099:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3473:1:::1;3453:22;;:8;:22;;::::0;3431:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3586:8;3557:38;;3578:6;::::0;::::1;;;;;;;;3557:38;;;;;;;;;;;;3615:8;3606:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;3350:281:::0;:::o;4787:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;520:98::-;573:7;600:10;593:17;;520:98;:::o;8209:369::-;8353:1;8336:19;;:5;:19;;;8328:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8434:1;8415:21;;:7;:21;;;8407:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8516:6;8486:11;:18;8498:5;8486:18;;;;;;;;;;;;;;;:27;8505:7;8486:27;;;;;;;;;;;;;;;:36;;;;8554:7;8538:32;;8547:5;8538:32;;;8563:6;8538:32;;;;;;:::i;:::-;;;;;;;;8209:369;;;:::o;8586:2921::-;8724:1;8708:18;;:4;:18;;;8700:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8801:1;8787:16;;:2;:16;;;8779:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8871:1;8862:6;:10;8854:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8929:17;8989:7;:5;:7::i;:::-;8981:15;;:4;:15;;;;:45;;;;;9019:7;:5;:7::i;:::-;9013:13;;:2;:13;;;;8981:45;:83;;;;;9059:4;9043:21;;:4;:21;;;;8981:83;:119;;;;;9095:4;9081:19;;:2;:19;;;;8981:119;8963:2173;;;9139:208;9343:3;9139:181;9203:15;;9191:9;;:27;9190:111;;9287:14;;9190:111;;;9247:12;;9190:111;9139:6;:28;;:181;;;;:::i;:::-;:203;;:208;;;;:::i;:::-;9127:220;;9386:10;:16;9397:4;9386:16;;;;;;;;;;;;;;;;;;;;;;;;;:67;;;;;9437:15;;;;;;;;;;;9423:30;;:2;:30;;;;9386:67;:100;;;;;9475:7;:11;9483:2;9475:11;;;;;;;;;;;;;;;;;;;;;;;;;9474:12;9386:100;9364:422;;;9539:12;;9529:6;:22;;9521:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;9656:14;;9646:6;9630:13;9640:2;9630:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;9600:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;9759:9;;:11;;;;;;;;;:::i;:::-;;;;;;9364:422;9807:10;:14;9818:2;9807:14;;;;;;;;;;;;;;;;;;;;;;;;;9806:15;:31;;;;;9826:7;:11;9834:2;9826:11;;;;;;;;;;;;;;;;;;;;;;;;;9825:12;9806:31;9802:212;;;9914:14;;9904:6;9888:13;9898:2;9888:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;9858:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;9802:212;10034:10;:14;10045:2;10034:14;;;;;;;;;;;;;;;;;;;;;;;;;:39;;;;;10068:4;10052:21;;:4;:21;;;;10034:39;10030:327;;;10106:235;10337:3;10106:204;10178:16;;10166:9;;:28;10165:122;;10272:15;;10165:122;;;10227:13;;10165:122;10106:6;:32;;:204;;;;:::i;:::-;:230;;:235;;;;:::i;:::-;10094:247;;10030:327;10378:10;:16;10389:4;10378:16;;;;;;;;;;;;;;;;;;;;;;;;;10377:17;:36;;;;;10399:10;:14;10410:2;10399:14;;;;;;;;;;;;;;;;;;;;;;;;;10398:15;10377:36;10373:90;;;10446:1;10434:13;;10373:90;10479:28;10510:24;10528:4;10510:9;:24::i;:::-;10479:55;;10572:6;;;;;;;;;;;10571:7;:42;;;;;10599:10;:14;10610:2;10599:14;;;;;;;;;;;;;;;;;;;;;;;;;10571:42;:74;;;;;10634:11;;;;;;;;;;;10571:74;:125;;;;;10678:18;;10666:9;;:30;10571:125;10549:576;;;10758:17;;10735:20;:40;10731:184;;;10798:117;10841:51;10845:6;10853:38;10857:20;10879:11;;10853:3;:38::i;:::-;10841:3;:51::i;:::-;10798:16;:117::i;:::-;10731:184;10934:26;10963:21;10934:50;;11029:1;11007:18;:23;11003:107;;11055:35;11068:21;11055:12;:35::i;:::-;11003:107;10712:413;10549:576;9112:2024;8963:2173;11164:1;11152:9;:13;11148:172;;;11209:39;11238:9;11209;:24;11227:4;11209:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;11182:9;:24;11200:4;11182:24;;;;;;;;;;;;;;;:66;;;;11291:4;11268:40;;11277:4;11268:40;;;11298:9;11268:40;;;;;;:::i;:::-;;;;;;;;11148:172;11348:27;11368:6;11348:9;:15;11358:4;11348:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;11330:9;:15;11340:4;11330:15;;;;;;;;;;;;;;;:45;;;;11402:40;11420:21;11431:9;11420:6;:10;;:21;;;;:::i;:::-;11402:9;:13;11412:2;11402:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;11386:9;:13;11396:2;11386:13;;;;;;;;;;;;;;;:56;;;;11473:2;11458:41;;11467:4;11458:41;;;11477:21;11488:9;11477:6;:10;;:21;;;;:::i;:::-;11458:41;;;;;;:::i;:::-;;;;;;;;8689:2818;8586:2921;;;:::o;7515:233::-;7617:7;7657:10;;;;;;;;;;;7646:21;;:7;:21;;;7642:61;;7676:11;:18;7688:5;7676:18;;;;;;;;;;;;;;;:27;7695:7;7676:27;;;;;;;;;;;;;;;;7669:34;;;;7642:61;7723:17;7716:24;;7515:233;;;;;:::o;1782:224::-;1902:7;1935:1;1930;:6;;1938:12;1922:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1962:9;1978:1;1974;:5;;;;:::i;:::-;1962:17;;1997:1;1990:8;;;1782:224;;;;;:::o;2014:246::-;2072:7;2101:1;2096;:6;2092:47;;2126:1;2119:8;;;;2092:47;2149:9;2165:1;2161;:5;;;;:::i;:::-;2149:17;;2194:1;2189;2185;:5;;;;:::i;:::-;:10;2177:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2251:1;2244:8;;;2014:246;;;;;:::o;2268:132::-;2326:7;2353:39;2357:1;2360;2353:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2346:46;;2268:132;;;;:::o;12074:107::-;12131:7;12163:1;12159;:5;12158:15;;12172:1;12158:15;;;12168:1;12158:15;12151:22;;12074:107;;;;:::o;12189:483::-;5981:4;5972:6;;:13;;;;;;;;;;;;;;;;;;12267:21:::1;12305:1;12291:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12267:40;;12336:4;12318;12323:1;12318:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12362:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12352:4;12357:1;12352:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;12395:62;12412:4;12427:15;;;;;;;;;;;12445:11;12395:8;:62::i;:::-;12468:15;;;;;;;;;;;:66;;;12549:11;12575:1;12591:4;12618;12638:15;12468:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12256:416;6017:5:::0;6008:6;;:14;;;;;;;;;;;;;;;;;;12189:483;:::o;12680:92::-;12737:10;;;;;;;;;;;:19;;:27;12757:6;12737:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12680:92;:::o;1451:179::-;1509:7;1529:9;1545:1;1541;:5;;;;:::i;:::-;1529:17;;1570:1;1565;:6;;1557:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1621:1;1614:8;;;1451:179;;;;:::o;1638:136::-;1696:7;1723:43;1727:1;1730;1723:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1716:50;;1638:136;;;;:::o;2408:223::-;2528:7;2560:1;2556;:5;2563:12;2548:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2587:9;2603:1;2599;:5;;;;:::i;:::-;2587:17;;2622:1;2615:8;;;2408:223;;;;;:::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:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1323:117::-;1432:1;1429;1422:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:118::-;3426:24;3444:5;3426:24;:::i;:::-;3421:3;3414:37;3339:118;;:::o;3463:222::-;3556:4;3594:2;3583:9;3579:18;3571:26;;3607:71;3675:1;3664:9;3660:17;3651:6;3607:71;:::i;:::-;3463:222;;;;:::o;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;;:::i;:::-;3801:119;3959:1;3984:53;4029:7;4020:6;4009:9;4005:22;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4316:86::-;4351:7;4391:4;4384:5;4380:16;4369:27;;4316:86;;;:::o;4408:112::-;4491:22;4507:5;4491:22;:::i;:::-;4486:3;4479:35;4408:112;;:::o;4526:214::-;4615:4;4653:2;4642:9;4638:18;4630:26;;4666:67;4730:1;4719:9;4715:17;4706:6;4666:67;:::i;:::-;4526:214;;;;:::o;4746:118::-;4833:24;4851:5;4833:24;:::i;:::-;4828:3;4821:37;4746:118;;:::o;4870:222::-;4963:4;5001:2;4990:9;4986:18;4978:26;;5014:71;5082:1;5071:9;5067:17;5058:6;5014:71;:::i;:::-;4870:222;;;;:::o;5098:329::-;5157:6;5206:2;5194:9;5185:7;5181:23;5177:32;5174:119;;;5212:79;;:::i;:::-;5174:119;5332:1;5357:53;5402:7;5393:6;5382:9;5378:22;5357:53;:::i;:::-;5347:63;;5303:117;5098:329;;;;:::o;5433:474::-;5501:6;5509;5558:2;5546:9;5537:7;5533:23;5529:32;5526:119;;;5564:79;;:::i;:::-;5526:119;5684:1;5709:53;5754:7;5745:6;5734:9;5730:22;5709:53;:::i;:::-;5699:63;;5655:117;5811:2;5837:53;5882:7;5873:6;5862:9;5858:22;5837:53;:::i;:::-;5827:63;;5782:118;5433:474;;;;;:::o;5913:180::-;5961:77;5958:1;5951:88;6058:4;6055:1;6048:15;6082:4;6079:1;6072:15;6099:102;6141:8;6188:5;6185:1;6181:13;6160:34;;6099:102;;;:::o;6207:848::-;6268:5;6275:4;6299:6;6290:15;;6323:5;6314:14;;6337:712;6358:1;6348:8;6345:15;6337:712;;;6453:4;6448:3;6444:14;6438:4;6435:24;6432:50;;;6462:18;;:::i;:::-;6432:50;6512:1;6502:8;6498:16;6495:451;;;6927:4;6920:5;6916:16;6907:25;;6495:451;6977:4;6971;6967:15;6959:23;;7007:32;7030:8;7007:32;:::i;:::-;6995:44;;6337:712;;;6207:848;;;;;;;:::o;7061:1073::-;7115:5;7306:8;7296:40;;7327:1;7318:10;;7329:5;;7296:40;7355:4;7345:36;;7372:1;7363:10;;7374:5;;7345:36;7441:4;7489:1;7484:27;;;;7525:1;7520:191;;;;7434:277;;7484:27;7502:1;7493:10;;7504:5;;;7520:191;7565:3;7555:8;7552:17;7549:43;;;7572:18;;:::i;:::-;7549:43;7621:8;7618:1;7614:16;7605:25;;7656:3;7649:5;7646:14;7643:40;;;7663:18;;:::i;:::-;7643:40;7696:5;;;7434:277;;7820:2;7810:8;7807:16;7801:3;7795:4;7792:13;7788:36;7770:2;7760:8;7757:16;7752:2;7746:4;7743:12;7739:35;7723:111;7720:246;;;7876:8;7870:4;7866:19;7857:28;;7911:3;7904:5;7901:14;7898:40;;;7918:18;;:::i;:::-;7898:40;7951:5;;7720:246;7991:42;8029:3;8019:8;8013:4;8010:1;7991:42;:::i;:::-;7976:57;;;;8065:4;8060:3;8056:14;8049:5;8046:25;8043:51;;;8074:18;;:::i;:::-;8043:51;8123:4;8116:5;8112:16;8103:25;;7061:1073;;;;;;:::o;8140:281::-;8198:5;8222:23;8240:4;8222:23;:::i;:::-;8214:31;;8266:25;8282:8;8266:25;:::i;:::-;8254:37;;8310:104;8347:66;8337:8;8331:4;8310:104;:::i;:::-;8301:113;;8140:281;;;;:::o;8427:410::-;8467:7;8490:20;8508:1;8490:20;:::i;:::-;8485:25;;8524:20;8542:1;8524:20;:::i;:::-;8519:25;;8579:1;8576;8572:9;8601:30;8619:11;8601:30;:::i;:::-;8590:41;;8780:1;8771:7;8767:15;8764:1;8761:22;8741:1;8734:9;8714:83;8691:139;;8810:18;;:::i;:::-;8691:139;8475:362;8427:410;;;;:::o;8843:182::-;8983:34;8979:1;8971:6;8967:14;8960:58;8843:182;:::o;9031:366::-;9173:3;9194:67;9258:2;9253:3;9194:67;:::i;:::-;9187:74;;9270:93;9359:3;9270:93;:::i;:::-;9388:2;9383:3;9379:12;9372:19;;9031:366;;;:::o;9403:419::-;9569:4;9607:2;9596:9;9592:18;9584:26;;9656:9;9650:4;9646:20;9642:1;9631:9;9627:17;9620:47;9684:131;9810:4;9684:131;:::i;:::-;9676:139;;9403:419;;;:::o;9828:157::-;9968:9;9964:1;9956:6;9952:14;9945:33;9828:157;:::o;9991:365::-;10133:3;10154:66;10218:1;10213:3;10154:66;:::i;:::-;10147:73;;10229:93;10318:3;10229:93;:::i;:::-;10347:2;10342:3;10338:12;10331:19;;9991:365;;;:::o;10362:419::-;10528:4;10566:2;10555:9;10551:18;10543:26;;10615:9;10609:4;10605:20;10601:1;10590:9;10586:17;10579:47;10643:131;10769:4;10643:131;:::i;:::-;10635:139;;10362:419;;;:::o;10787:173::-;10927:25;10923:1;10915:6;10911:14;10904:49;10787:173;:::o;10966:366::-;11108:3;11129:67;11193:2;11188:3;11129:67;:::i;:::-;11122:74;;11205:93;11294:3;11205:93;:::i;:::-;11323:2;11318:3;11314:12;11307:19;;10966:366;;;:::o;11338:419::-;11504:4;11542:2;11531:9;11527:18;11519:26;;11591:9;11585:4;11581:20;11577:1;11566:9;11562:17;11555:47;11619:131;11745:4;11619:131;:::i;:::-;11611:139;;11338:419;;;:::o;11763:85::-;11808:7;11837:5;11826:16;;11763:85;;;:::o;11854:60::-;11882:3;11903:5;11896:12;;11854:60;;;:::o;11920:158::-;11978:9;12011:61;12029:42;12038:32;12064:5;12038:32;:::i;:::-;12029:42;:::i;:::-;12011:61;:::i;:::-;11998:74;;11920:158;;;:::o;12084:147::-;12179:45;12218:5;12179:45;:::i;:::-;12174:3;12167:58;12084:147;;:::o;12237:807::-;12486:4;12524:3;12513:9;12509:19;12501:27;;12538:71;12606:1;12595:9;12591:17;12582:6;12538:71;:::i;:::-;12619:72;12687:2;12676:9;12672:18;12663:6;12619:72;:::i;:::-;12701:80;12777:2;12766:9;12762:18;12753:6;12701:80;:::i;:::-;12791;12867:2;12856:9;12852:18;12843:6;12791:80;:::i;:::-;12881:73;12949:3;12938:9;12934:19;12925:6;12881:73;:::i;:::-;12964;13032:3;13021:9;13017:19;13008:6;12964:73;:::i;:::-;12237:807;;;;;;;;;:::o;13050:143::-;13107:5;13138:6;13132:13;13123:22;;13154:33;13181:5;13154:33;:::i;:::-;13050:143;;;;:::o;13199:663::-;13287:6;13295;13303;13352:2;13340:9;13331:7;13327:23;13323:32;13320:119;;;13358:79;;:::i;:::-;13320:119;13478:1;13503:64;13559:7;13550:6;13539:9;13535:22;13503:64;:::i;:::-;13493:74;;13449:128;13616:2;13642:64;13698:7;13689:6;13678:9;13674:22;13642:64;:::i;:::-;13632:74;;13587:129;13755:2;13781:64;13837:7;13828:6;13817:9;13813:22;13781:64;:::i;:::-;13771:74;;13726:129;13199:663;;;;;:::o;13868:332::-;13989:4;14027:2;14016:9;14012:18;14004:26;;14040:71;14108:1;14097:9;14093:17;14084:6;14040:71;:::i;:::-;14121:72;14189:2;14178:9;14174:18;14165:6;14121:72;:::i;:::-;13868:332;;;;;:::o;14206:116::-;14276:21;14291:5;14276:21;:::i;:::-;14269:5;14266:32;14256:60;;14312:1;14309;14302:12;14256:60;14206:116;:::o;14328:137::-;14382:5;14413:6;14407:13;14398:22;;14429:30;14453:5;14429:30;:::i;:::-;14328:137;;;;:::o;14471:345::-;14538:6;14587:2;14575:9;14566:7;14562:23;14558:32;14555:119;;;14593:79;;:::i;:::-;14555:119;14713:1;14738:61;14791:7;14782:6;14771:9;14767:22;14738:61;:::i;:::-;14728:71;;14684:125;14471:345;;;;:::o;14822:143::-;14879:5;14910:6;14904:13;14895:22;;14926:33;14953:5;14926:33;:::i;:::-;14822:143;;;;:::o;14971:351::-;15041:6;15090:2;15078:9;15069:7;15065:23;15061:32;15058:119;;;15096:79;;:::i;:::-;15058:119;15216:1;15241:64;15297:7;15288:6;15277:9;15273:22;15241:64;:::i;:::-;15231:74;;15187:128;14971:351;;;;:::o;15328:332::-;15449:4;15487:2;15476:9;15472:18;15464:26;;15500:71;15568:1;15557:9;15553:17;15544:6;15500:71;:::i;:::-;15581:72;15649:2;15638:9;15634:18;15625:6;15581:72;:::i;:::-;15328:332;;;;;:::o;15666:225::-;15806:34;15802:1;15794:6;15790:14;15783:58;15875:8;15870:2;15862:6;15858:15;15851:33;15666:225;:::o;15897:366::-;16039:3;16060:67;16124:2;16119:3;16060:67;:::i;:::-;16053:74;;16136:93;16225:3;16136:93;:::i;:::-;16254:2;16249:3;16245:12;16238:19;;15897:366;;;:::o;16269:419::-;16435:4;16473:2;16462:9;16458:18;16450:26;;16522:9;16516:4;16512:20;16508:1;16497:9;16493:17;16486:47;16550:131;16676:4;16550:131;:::i;:::-;16542:139;;16269:419;;;:::o;16694:223::-;16834:34;16830:1;16822:6;16818:14;16811:58;16903:6;16898:2;16890:6;16886:15;16879:31;16694:223;:::o;16923:366::-;17065:3;17086:67;17150:2;17145:3;17086:67;:::i;:::-;17079:74;;17162:93;17251:3;17162:93;:::i;:::-;17280:2;17275:3;17271:12;17264:19;;16923:366;;;:::o;17295:419::-;17461:4;17499:2;17488:9;17484:18;17476:26;;17548:9;17542:4;17538:20;17534:1;17523:9;17519:17;17512:47;17576:131;17702:4;17576:131;:::i;:::-;17568:139;;17295:419;;;:::o;17720:221::-;17860:34;17856:1;17848:6;17844:14;17837:58;17929:4;17924:2;17916:6;17912:15;17905:29;17720:221;:::o;17947:366::-;18089:3;18110:67;18174:2;18169:3;18110:67;:::i;:::-;18103:74;;18186:93;18275:3;18186:93;:::i;:::-;18304:2;18299:3;18295:12;18288:19;;17947:366;;;:::o;18319:419::-;18485:4;18523:2;18512:9;18508:18;18500:26;;18572:9;18566:4;18562:20;18558:1;18547:9;18543:17;18536:47;18600:131;18726:4;18600:131;:::i;:::-;18592:139;;18319:419;;;:::o;18744:224::-;18884:34;18880:1;18872:6;18868:14;18861:58;18953:7;18948:2;18940:6;18936:15;18929:32;18744:224;:::o;18974:366::-;19116:3;19137:67;19201:2;19196:3;19137:67;:::i;:::-;19130:74;;19213:93;19302:3;19213:93;:::i;:::-;19331:2;19326:3;19322:12;19315:19;;18974:366;;;:::o;19346:419::-;19512:4;19550:2;19539:9;19535:18;19527:26;;19599:9;19593:4;19589:20;19585:1;19574:9;19570:17;19563:47;19627:131;19753:4;19627:131;:::i;:::-;19619:139;;19346:419;;;:::o;19771:222::-;19911:34;19907:1;19899:6;19895:14;19888:58;19980:5;19975:2;19967:6;19963:15;19956:30;19771:222;:::o;19999:366::-;20141:3;20162:67;20226:2;20221:3;20162:67;:::i;:::-;20155:74;;20238:93;20327:3;20238:93;:::i;:::-;20356:2;20351:3;20347:12;20340:19;;19999:366;;;:::o;20371:419::-;20537:4;20575:2;20564:9;20560:18;20552:26;;20624:9;20618:4;20614:20;20610:1;20599:9;20595:17;20588:47;20652:131;20778:4;20652:131;:::i;:::-;20644:139;;20371:419;;;:::o;20796:228::-;20936:34;20932:1;20924:6;20920:14;20913:58;21005:11;21000:2;20992:6;20988:15;20981:36;20796:228;:::o;21030:366::-;21172:3;21193:67;21257:2;21252:3;21193:67;:::i;:::-;21186:74;;21269:93;21358:3;21269:93;:::i;:::-;21387:2;21382:3;21378:12;21371:19;;21030:366;;;:::o;21402:419::-;21568:4;21606:2;21595:9;21591:18;21583:26;;21655:9;21649:4;21645:20;21641:1;21630:9;21626:17;21619:47;21683:131;21809:4;21683:131;:::i;:::-;21675:139;;21402:419;;;:::o;21827:175::-;21967:27;21963:1;21955:6;21951:14;21944:51;21827:175;:::o;22008:366::-;22150:3;22171:67;22235:2;22230:3;22171:67;:::i;:::-;22164:74;;22247:93;22336:3;22247:93;:::i;:::-;22365:2;22360:3;22356:12;22349:19;;22008:366;;;:::o;22380:419::-;22546:4;22584:2;22573:9;22569:18;22561:26;;22633:9;22627:4;22623:20;22619:1;22608:9;22604:17;22597:47;22661:131;22787:4;22661:131;:::i;:::-;22653:139;;22380:419;;;:::o;22805:191::-;22845:3;22864:20;22882:1;22864:20;:::i;:::-;22859:25;;22898:20;22916:1;22898:20;:::i;:::-;22893:25;;22941:1;22938;22934:9;22927:16;;22962:3;22959:1;22956:10;22953:36;;;22969:18;;:::i;:::-;22953:36;22805:191;;;;:::o;23002:176::-;23142:28;23138:1;23130:6;23126:14;23119:52;23002:176;:::o;23184:366::-;23326:3;23347:67;23411:2;23406:3;23347:67;:::i;:::-;23340:74;;23423:93;23512:3;23423:93;:::i;:::-;23541:2;23536:3;23532:12;23525:19;;23184:366;;;:::o;23556:419::-;23722:4;23760:2;23749:9;23745:18;23737:26;;23809:9;23803:4;23799:20;23795:1;23784:9;23780:17;23773:47;23837:131;23963:4;23837:131;:::i;:::-;23829:139;;23556:419;;;:::o;23981:233::-;24020:3;24043:24;24061:5;24043:24;:::i;:::-;24034:33;;24089:66;24082:5;24079:77;24076:103;;24159:18;;:::i;:::-;24076:103;24206:1;24199:5;24195:13;24188:20;;23981:233;;;:::o;24220:194::-;24260:4;24280:20;24298:1;24280:20;:::i;:::-;24275:25;;24314:20;24332:1;24314:20;:::i;:::-;24309:25;;24358:1;24355;24351:9;24343:17;;24382:1;24376:4;24373:11;24370:37;;;24387:18;;:::i;:::-;24370:37;24220:194;;;;:::o;24420:180::-;24468:77;24465:1;24458:88;24565:4;24562:1;24555:15;24589:4;24586:1;24579:15;24606:185;24646:1;24663:20;24681:1;24663:20;:::i;:::-;24658:25;;24697:20;24715:1;24697:20;:::i;:::-;24692:25;;24736:1;24726:35;;24741:18;;:::i;:::-;24726:35;24783:1;24780;24776:9;24771:14;;24606:185;;;;:::o;24797:220::-;24937:34;24933:1;24925:6;24921:14;24914:58;25006:3;25001:2;24993:6;24989:15;24982:28;24797:220;:::o;25023:366::-;25165:3;25186:67;25250:2;25245:3;25186:67;:::i;:::-;25179:74;;25262:93;25351:3;25262:93;:::i;:::-;25380:2;25375:3;25371:12;25364:19;;25023:366;;;:::o;25395:419::-;25561:4;25599:2;25588:9;25584:18;25576:26;;25648:9;25642:4;25638:20;25634:1;25623:9;25619:17;25612:47;25676:131;25802:4;25676:131;:::i;:::-;25668:139;;25395:419;;;:::o;25820:180::-;25868:77;25865:1;25858:88;25965:4;25962:1;25955:15;25989:4;25986:1;25979:15;26006:180;26054:77;26051:1;26044:88;26151:4;26148:1;26141:15;26175:4;26172:1;26165:15;26192:114;26259:6;26293:5;26287:12;26277:22;;26192:114;;;:::o;26312:184::-;26411:11;26445:6;26440:3;26433:19;26485:4;26480:3;26476:14;26461:29;;26312:184;;;;:::o;26502:132::-;26569:4;26592:3;26584:11;;26622:4;26617:3;26613:14;26605:22;;26502:132;;;:::o;26640:108::-;26717:24;26735:5;26717:24;:::i;:::-;26712:3;26705:37;26640:108;;:::o;26754:179::-;26823:10;26844:46;26886:3;26878:6;26844:46;:::i;:::-;26922:4;26917:3;26913:14;26899:28;;26754:179;;;;:::o;26939:113::-;27009:4;27041;27036:3;27032:14;27024:22;;26939:113;;;:::o;27088:732::-;27207:3;27236:54;27284:5;27236:54;:::i;:::-;27306:86;27385:6;27380:3;27306:86;:::i;:::-;27299:93;;27416:56;27466:5;27416:56;:::i;:::-;27495:7;27526:1;27511:284;27536:6;27533:1;27530:13;27511:284;;;27612:6;27606:13;27639:63;27698:3;27683:13;27639:63;:::i;:::-;27632:70;;27725:60;27778:6;27725:60;:::i;:::-;27715:70;;27571:224;27558:1;27555;27551:9;27546:14;;27511:284;;;27515:14;27811:3;27804:10;;27212:608;;;27088:732;;;;:::o;27826:831::-;28089:4;28127:3;28116:9;28112:19;28104:27;;28141:71;28209:1;28198:9;28194:17;28185:6;28141:71;:::i;:::-;28222:80;28298:2;28287:9;28283:18;28274:6;28222:80;:::i;:::-;28349:9;28343:4;28339:20;28334:2;28323:9;28319:18;28312:48;28377:108;28480:4;28471:6;28377:108;:::i;:::-;28369:116;;28495:72;28563:2;28552:9;28548:18;28539:6;28495:72;:::i;:::-;28577:73;28645:3;28634:9;28630:19;28621:6;28577:73;:::i;:::-;27826:831;;;;;;;;:::o;28663:177::-;28803:29;28799:1;28791:6;28787:14;28780:53;28663:177;:::o;28846:366::-;28988:3;29009:67;29073:2;29068:3;29009:67;:::i;:::-;29002:74;;29085:93;29174:3;29085:93;:::i;:::-;29203:2;29198:3;29194:12;29187:19;;28846:366;;;:::o;29218:419::-;29384:4;29422:2;29411:9;29407:18;29399:26;;29471:9;29465:4;29461:20;29457:1;29446:9;29442:17;29435:47;29499:131;29625:4;29499:131;:::i;:::-;29491:139;;29218:419;;;:::o
Swarm Source
ipfs://f976955530a919125ed0fa0aa47b325e9d350c3d578e65d79e266e9298bfba72
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.