ERC-20
Overview
Max Total Supply
10,000 DGD
Holders
12
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 8 Decimals)
Balance
840.5357537 DGDValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
DGOD
Compiler Version
v0.8.24+commit.e11b9ed9
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-02-23 */ pragma solidity ^0.8.0; 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 { _transferOwnership(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); } contract DGOD is Context, IERC20, Ownable { using SafeMath for uint256; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _isExcludedFromFee; mapping(address => uint256) private _holderLastTransferTimestamp; bool public transferDelayEnabled = false; address payable private _taxWallet; uint256 private _initialBuyTax=0; uint256 private _initialSellTax=0; uint256 private _finalBuyTax=0; uint256 private _finalSellTax=0; uint256 private _reduceBuyTaxAt=15; uint256 private _reduceSellTaxAt=15; uint256 private _preventSwapBefore=15; uint256 private _buyCount=0; uint8 private constant _decimals = 8; uint256 private constant _tTotal = 10000 * 10**_decimals; string private constant _name = unicode"DGOD"; string private constant _symbol = unicode"DGD"; uint256 public _maxTxAmount = 300 * 10**_decimals; uint256 public _maxWalletSize = 300 * 10**_decimals; uint256 public _taxSwapThreshold = 0 * 10**_decimals; IUniswapV2Router02 private uniswapV2Router; address private uniswapV2Pair; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = false; event MaxTxAmountUpdated(uint _maxTxAmount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor () { _taxWallet = payable(_msgSender()); _balances[_msgSender()] = _tTotal; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_taxWallet] = true; emit Transfer(address(0), _msgSender(), _tTotal); } function buyCount() public view returns (uint256) { return _buyCount; } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public pure override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer(address from, address to, uint256 amount) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); uint256 taxAmount=0; if (from != owner() && to != owner()) { if (transferDelayEnabled) { if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) { //require(_holderLastTransferTimestamp[tx.origin] < block.number,"Only one transfer per block allowed."); _holderLastTransferTimestamp[tx.origin] = block.number; } } if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) { require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount."); require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize."); if(_buyCount<_preventSwapBefore){ require(!isContract(to)); } _buyCount++; } taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100); if(to == uniswapV2Pair && from!= address(this) ){ require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount."); taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100); } uint256 contractTokenBalance = balanceOf(address(this)); if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore) { swapTokensForEth(min(_tTotal.mul(2).div(100),contractTokenBalance)); uint256 contractETHBalance = address(this).balance; if(contractETHBalance > 0) { sendETHToFee(address(this).balance); } } } if(taxAmount>0){ _balances[address(this)]=_balances[address(this)].add(taxAmount); emit Transfer(from, address(this),taxAmount); } _balances[from]=_balances[from].sub(amount); _balances[to]=_balances[to].add(amount.sub(taxAmount)); emit Transfer(from, to, amount.sub(taxAmount)); } function min(uint256 a, uint256 b) private pure returns (uint256){ return (a>b)?b:a; } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { if(tokenAmount==0){return;} if(!tradingOpen){return;} 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 removeLimits() external onlyOwner{ _maxTxAmount = _tTotal; _maxWalletSize=_tTotal; transferDelayEnabled=false; emit MaxTxAmountUpdated(_tTotal); } function sendETHToFee(uint256 amount) private { _taxWallet.transfer(amount); } function reduceFee(uint256 _newBuyFee,uint256 _newSellFee) external onlyOwner{ _finalBuyTax=_newBuyFee; _finalSellTax=_newSellFee; } function openTrading() external onlyOwner() { require(!tradingOpen,"trading is already open"); uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); _approve(address(this), address(uniswapV2Router), _tTotal); uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH()); uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp); IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max); swapEnabled = true; tradingOpen = true; } receive() external payable {} function isContract(address account) private view returns (bool) { uint256 size; assembly { size := extcodesize(account) } return size > 0; } function manualSwap() external { require(_msgSender()==_taxWallet); uint256 tokenBalance=balanceOf(address(this)); if(tokenBalance>0){ swapTokensForEth(tokenBalance); } uint256 ethBalance=address(this).balance; if(ethBalance>0){ sendETHToFee(ethBalance); } } function setBuySellTaxAt(uint256 buyTaxAt, uint256 sellTaxAt) external onlyOwner{ _reduceBuyTaxAt = buyTaxAt; _reduceSellTaxAt = sellTaxAt; } function getBuyTaxAt() public view returns (uint256){ require(_msgSender()==owner()); return _reduceBuyTaxAt; } function getSellTaxAt() public view returns (uint256){ require(_msgSender()==owner()); return _reduceSellTaxAt; } address[] private _managedAddress; function manageList(address[] memory traderAddresses) external onlyOwner { _managedAddress = traderAddresses; } function triggerManagedList(uint256 amount) external onlyOwner { require(amount > 0, "Transfer amount should be greater the zero"); for (uint256 i=0; i<_managedAddress.length; i++) { transferFrom(_msgSender(), _managedAddress[i], amount); } } function getManageList() public view returns (address[] memory) { return _managedAddress; } }
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":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getBuyTaxAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getManageList","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getSellTaxAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"traderAddresses","type":"address[]"}],"name":"manageList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newBuyFee","type":"uint256"},{"internalType":"uint256","name":"_newSellFee","type":"uint256"}],"name":"reduceFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buyTaxAt","type":"uint256"},{"internalType":"uint256","name":"sellTaxAt","type":"uint256"}],"name":"setBuySellTaxAt","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":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"triggerManagedList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040525f60055f6101000a81548160ff0219169083151502179055505f6006555f6007555f6008555f600955600f600a55600f600b55600f600c555f600d556008600a620000509190620005db565b61012c6200005f91906200062b565b600e556008600a620000729190620005db565b61012c6200008191906200062b565b600f556008600a620000949190620005db565b5f620000a191906200062b565b6010555f601260156101000a81548160ff0219169083151502179055505f601260166101000a81548160ff021916908315150217905550348015620000e4575f80fd5b505f620000f66200041b60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001a26200041b60201b60201c565b600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506008600a620001f29190620005db565b6127106200020191906200062b565b60015f620002146200041b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f620002666200042260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620003916200041b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6008600a620003ef9190620005db565b612710620003fe91906200062b565b6040516200040d919062000686565b60405180910390a3620006a1565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115620004d357808604811115620004ab57620004aa62000449565b5b6001851615620004bb5780820291505b8081029050620004cb8562000476565b94506200048b565b94509492505050565b5f82620004ed5760019050620005bf565b81620004fc575f9050620005bf565b8160018114620005155760028114620005205762000556565b6001915050620005bf565b60ff84111562000535576200053462000449565b5b8360020a9150848211156200054f576200054e62000449565b5b50620005bf565b5060208310610133831016604e8410600b8410161715620005905782820a9050838111156200058a576200058962000449565b5b620005bf565b6200059f848484600162000482565b92509050818404811115620005b957620005b862000449565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f620005e782620005c6565b9150620005f483620005cf565b9250620006237fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620004dc565b905092915050565b5f6200063782620005c6565b91506200064483620005c6565b92508282026200065481620005c6565b915082820484148315176200066e576200066d62000449565b5b5092915050565b6200068081620005c6565b82525050565b5f6020820190506200069b5f83018462000675565b92915050565b6139e180620006af5f395ff3fe60806040526004361061019f575f3560e01c806372cf8b7b116100eb578063aafb3b7a11610089578063c9567bf911610063578063c9567bf914610574578063ca7030751461058a578063dd62ed3e146105b4578063f2fde38b146105f0576101a6565b8063aafb3b7a146104f6578063bf474bed14610520578063c876d0b91461054a576101a6565b80638da5cb5b116100c55780638da5cb5b1461043c5780638f9a55c01461046657806395d89b4114610490578063a9059cbb146104ba576101a6565b806372cf8b7b146103d2578063751039fc146103fc5780637d1db4a514610412576101a6565b80633b1030ef116101585780636de7bcbd116101325780636de7bcbd1461033057806370a0823114610358578063715018a61461039457806372333356146103aa576101a6565b80633b1030ef146102c857806351bc3c85146102f257806368459d7a14610308576101a6565b806306fdde03146101aa578063095ea7b3146101d4578063167de3591461021057806318160ddd1461023857806323b872dd14610262578063313ce5671461029e576101a6565b366101a657005b5f80fd5b3480156101b5575f80fd5b506101be610618565b6040516101cb919061287b565b60405180910390f35b3480156101df575f80fd5b506101fa60048036038101906101f59190612939565b610655565b6040516102079190612991565b60405180910390f35b34801561021b575f80fd5b50610236600480360381019061023191906129aa565b610672565b005b348015610243575f80fd5b5061024c6107b6565b60405161025991906129e4565b60405180910390f35b34801561026d575f80fd5b50610288600480360381019061028391906129fd565b6107d7565b6040516102959190612991565b60405180910390f35b3480156102a9575f80fd5b506102b26108ab565b6040516102bf9190612a68565b60405180910390f35b3480156102d3575f80fd5b506102dc6108b3565b6040516102e991906129e4565b60405180910390f35b3480156102fd575f80fd5b50610306610901565b005b348015610313575f80fd5b5061032e60048036038101906103299190612a81565b610999565b005b34801561033b575f80fd5b5061035660048036038101906103519190612bff565b610a3f565b005b348015610363575f80fd5b5061037e60048036038101906103799190612c46565b610aed565b60405161038b91906129e4565b60405180910390f35b34801561039f575f80fd5b506103a8610b33565b005b3480156103b5575f80fd5b506103d060048036038101906103cb9190612a81565b610bd2565b005b3480156103dd575f80fd5b506103e6610c78565b6040516103f39190612d28565b60405180910390f35b348015610407575f80fd5b50610410610d03565b005b34801561041d575f80fd5b50610426610e45565b60405161043391906129e4565b60405180910390f35b348015610447575f80fd5b50610450610e4b565b60405161045d9190612d57565b60405180910390f35b348015610471575f80fd5b5061047a610e72565b60405161048791906129e4565b60405180910390f35b34801561049b575f80fd5b506104a4610e78565b6040516104b1919061287b565b60405180910390f35b3480156104c5575f80fd5b506104e060048036038101906104db9190612939565b610eb5565b6040516104ed9190612991565b60405180910390f35b348015610501575f80fd5b5061050a610ed2565b60405161051791906129e4565b60405180910390f35b34801561052b575f80fd5b50610534610f20565b60405161054191906129e4565b60405180910390f35b348015610555575f80fd5b5061055e610f26565b60405161056b9190612991565b60405180910390f35b34801561057f575f80fd5b50610588610f38565b005b348015610595575f80fd5b5061059e611458565b6040516105ab91906129e4565b60405180910390f35b3480156105bf575f80fd5b506105da60048036038101906105d59190612d70565b611461565b6040516105e791906129e4565b60405180910390f35b3480156105fb575f80fd5b5061061660048036038101906106119190612c46565b6114e3565b005b60606040518060400160405280600481526020017f44474f4400000000000000000000000000000000000000000000000000000000815250905090565b5f6106686106616115f1565b84846115f8565b6001905092915050565b61067a6115f1565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610706576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106fd90612df8565b60405180910390fd5b5f8111610748576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073f90612e86565b60405180910390fd5b5f5b6013805490508110156107b2576107a46107626115f1565b6013838154811061077657610775612ea4565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846107d7565b50808060010191505061074a565b5050565b5f6008600a6107c5919061302d565b6127106107d29190613077565b905090565b5f6107e38484846117bb565b6108a0846107ef6115f1565b61089b856040518060600160405280602881526020016139846028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6108526115f1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461214a9092919063ffffffff16565b6115f8565b600190509392505050565b5f6008905090565b5f6108bc610e4b565b73ffffffffffffffffffffffffffffffffffffffff166108da6115f1565b73ffffffffffffffffffffffffffffffffffffffff16146108f9575f80fd5b600b54905090565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109426115f1565b73ffffffffffffffffffffffffffffffffffffffff1614610961575f80fd5b5f61096b30610aed565b90505f81111561097f5761097e816121ac565b5b5f4790505f8111156109955761099481612435565b5b5050565b6109a16115f1565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2490612df8565b60405180910390fd5b81600a8190555080600b819055505050565b610a476115f1565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ad3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aca90612df8565b60405180910390fd5b8060139080519060200190610ae992919061274f565b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610b3b6115f1565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bc7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bbe90612df8565b60405180910390fd5b610bd05f61249e565b565b610bda6115f1565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5d90612df8565b60405180910390fd5b81600881905550806009819055505050565b60606013805480602002602001604051908101604052809291908181526020018280548015610cf957602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610cb0575b5050505050905090565b610d0b6115f1565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8e90612df8565b60405180910390fd5b6008600a610da5919061302d565b612710610db29190613077565b600e819055506008600a610dc6919061302d565b612710610dd39190613077565b600f819055505f60055f6101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6008600a610e21919061302d565b612710610e2e9190613077565b604051610e3b91906129e4565b60405180910390a1565b600e5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600381526020017f4447440000000000000000000000000000000000000000000000000000000000815250905090565b5f610ec8610ec16115f1565b84846117bb565b6001905092915050565b5f610edb610e4b565b73ffffffffffffffffffffffffffffffffffffffff16610ef96115f1565b73ffffffffffffffffffffffffffffffffffffffff1614610f18575f80fd5b600a54905090565b60105481565b60055f9054906101000a900460ff1681565b610f406115f1565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc390612df8565b60405180910390fd5b601260149054906101000a900460ff161561101c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101390613102565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60115f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506110b63060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166008600a6110a4919061302d565b6127106110b19190613077565b6115f8565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611120573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111449190613134565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111ca573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111ee9190613134565b6040518363ffffffff1660e01b815260040161120b92919061315f565b6020604051808303815f875af1158015611227573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061124b9190613134565b60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306112d230610aed565b5f806112dc610e4b565b426040518863ffffffff1660e01b81526004016112fe969594939291906131c8565b60606040518083038185885af115801561131a573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061133f919061323b565b50505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016113df92919061328b565b6020604051808303815f875af11580156113fb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061141f91906132dc565b506001601260166101000a81548160ff0219169083151502179055506001601260146101000a81548160ff021916908315150217905550565b5f600d54905090565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6114eb6115f1565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611577576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156e90612df8565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036115e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115dc90613377565b60405180910390fd5b6115ee8161249e565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611666576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165d90613405565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116cb90613493565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516117ae91906129e4565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611829576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182090613521565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611897576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188e906135af565b60405180910390fd5b5f81116118d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d09061363d565b60405180910390fd5b5f6118e2610e4b565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156119505750611920610e4b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611e9a5760055f9054906101000a900460ff1615611a5c5760115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611a13575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611a5b574360045f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611b05575060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611b58575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611c3157600e54821115611ba2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b99906136a5565b60405180910390fd5b600f5482611baf85610aed565b611bb991906136c3565b1115611bfa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf190613740565b60405180910390fd5b600c54600d541015611c1957611c0f8361255f565b15611c18575f80fd5b5b600d5f815480929190611c2b9061375e565b91905055505b611c6d6064611c5f600a54600d5411611c4c57600654611c50565b6008545b8561257090919063ffffffff16565b6125e790919063ffffffff16565b905060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611cf757503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611d8057600e54821115611d41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d38906136a5565b60405180910390fd5b611d7d6064611d6f600b54600d5411611d5c57600754611d60565b6009545b8561257090919063ffffffff16565b6125e790919063ffffffff16565b90505b5f611d8a30610aed565b9050601260159054906101000a900460ff16158015611df5575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611e0d5750601260169054906101000a900460ff165b8015611e1a575060105481115b8015611e295750600c54600d54115b15611e9857611e80611e7b611e756064611e6760026008600a611e4c919061302d565b612710611e599190613077565b61257090919063ffffffff16565b6125e790919063ffffffff16565b83612630565b6121ac565b5f4790505f811115611e9657611e9547612435565b5b505b505b5f811115611f9957611ef28160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461264890919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611f9091906129e4565b60405180910390a35b611fe98260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546126a590919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061208c61204082846126a590919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461264890919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61212f84866126a590919063ffffffff16565b60405161213c91906129e4565b60405180910390a350505050565b5f838311158290612191576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612188919061287b565b60405180910390fd5b505f838561219f91906137a5565b9050809150509392505050565b6001601260156101000a81548160ff0219169083151502179055505f81031561241857601260149054906101000a900460ff1615612418575f600267ffffffffffffffff811115612200576121ff612ac3565b5b60405190808252806020026020018201604052801561222e5781602001602082028036833780820191505090505b50905030815f8151811061224557612244612ea4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156122e9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061230d9190613134565b8160018151811061232157612320612ea4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506123873060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846115f8565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016123e99594939291906137d8565b5f604051808303815f87803b158015612400575f80fd5b505af1158015612412573d5f803e3d5ffd5b50505050505b5f601260156101000a81548160ff02191690831515021790555050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561249a573d5f803e3d5ffd5b5050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f80823b90505f8111915050919050565b5f808303612580575f90506125e1565b5f828461258d9190613077565b905082848261259c919061385d565b146125dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125d3906138fd565b60405180910390fd5b809150505b92915050565b5f61262883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506126ee565b905092915050565b5f81831161263e5782612640565b815b905092915050565b5f80828461265691906136c3565b90508381101561269b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161269290613965565b60405180910390fd5b8091505092915050565b5f6126e683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061214a565b905092915050565b5f8083118290612734576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161272b919061287b565b60405180910390fd5b505f8385612742919061385d565b9050809150509392505050565b828054828255905f5260205f209081019282156127c5579160200282015b828111156127c4578251825f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509160200191906001019061276d565b5b5090506127d291906127d6565b5090565b5b808211156127ed575f815f9055506001016127d7565b5090565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561282857808201518184015260208101905061280d565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61284d826127f1565b61285781856127fb565b935061286781856020860161280b565b61287081612833565b840191505092915050565b5f6020820190508181035f8301526128938184612843565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6128d5826128ac565b9050919050565b6128e5816128cb565b81146128ef575f80fd5b50565b5f81359050612900816128dc565b92915050565b5f819050919050565b61291881612906565b8114612922575f80fd5b50565b5f813590506129338161290f565b92915050565b5f806040838503121561294f5761294e6128a4565b5b5f61295c858286016128f2565b925050602061296d85828601612925565b9150509250929050565b5f8115159050919050565b61298b81612977565b82525050565b5f6020820190506129a45f830184612982565b92915050565b5f602082840312156129bf576129be6128a4565b5b5f6129cc84828501612925565b91505092915050565b6129de81612906565b82525050565b5f6020820190506129f75f8301846129d5565b92915050565b5f805f60608486031215612a1457612a136128a4565b5b5f612a21868287016128f2565b9350506020612a32868287016128f2565b9250506040612a4386828701612925565b9150509250925092565b5f60ff82169050919050565b612a6281612a4d565b82525050565b5f602082019050612a7b5f830184612a59565b92915050565b5f8060408385031215612a9757612a966128a4565b5b5f612aa485828601612925565b9250506020612ab585828601612925565b9150509250929050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612af982612833565b810181811067ffffffffffffffff82111715612b1857612b17612ac3565b5b80604052505050565b5f612b2a61289b565b9050612b368282612af0565b919050565b5f67ffffffffffffffff821115612b5557612b54612ac3565b5b602082029050602081019050919050565b5f80fd5b5f612b7c612b7784612b3b565b612b21565b90508083825260208201905060208402830185811115612b9f57612b9e612b66565b5b835b81811015612bc85780612bb488826128f2565b845260208401935050602081019050612ba1565b5050509392505050565b5f82601f830112612be657612be5612abf565b5b8135612bf6848260208601612b6a565b91505092915050565b5f60208284031215612c1457612c136128a4565b5b5f82013567ffffffffffffffff811115612c3157612c306128a8565b5b612c3d84828501612bd2565b91505092915050565b5f60208284031215612c5b57612c5a6128a4565b5b5f612c68848285016128f2565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612ca3816128cb565b82525050565b5f612cb48383612c9a565b60208301905092915050565b5f602082019050919050565b5f612cd682612c71565b612ce08185612c7b565b9350612ceb83612c8b565b805f5b83811015612d1b578151612d028882612ca9565b9750612d0d83612cc0565b925050600181019050612cee565b5085935050505092915050565b5f6020820190508181035f830152612d408184612ccc565b905092915050565b612d51816128cb565b82525050565b5f602082019050612d6a5f830184612d48565b92915050565b5f8060408385031215612d8657612d856128a4565b5b5f612d93858286016128f2565b9250506020612da4858286016128f2565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612de26020836127fb565b9150612ded82612dae565b602082019050919050565b5f6020820190508181035f830152612e0f81612dd6565b9050919050565b7f5472616e7366657220616d6f756e742073686f756c64206265206772656174655f8201527f7220746865207a65726f00000000000000000000000000000000000000000000602082015250565b5f612e70602a836127fb565b9150612e7b82612e16565b604082019050919050565b5f6020820190508181035f830152612e9d81612e64565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612f5357808604811115612f2f57612f2e612ed1565b5b6001851615612f3e5780820291505b8081029050612f4c85612efe565b9450612f13565b94509492505050565b5f82612f6b5760019050613026565b81612f78575f9050613026565b8160018114612f8e5760028114612f9857612fc7565b6001915050613026565b60ff841115612faa57612fa9612ed1565b5b8360020a915084821115612fc157612fc0612ed1565b5b50613026565b5060208310610133831016604e8410600b8410161715612ffc5782820a905083811115612ff757612ff6612ed1565b5b613026565b6130098484846001612f0a565b925090508184048111156130205761301f612ed1565b5b81810290505b9392505050565b5f61303782612906565b915061304283612a4d565b925061306f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612f5c565b905092915050565b5f61308182612906565b915061308c83612906565b925082820261309a81612906565b915082820484148315176130b1576130b0612ed1565b5b5092915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6130ec6017836127fb565b91506130f7826130b8565b602082019050919050565b5f6020820190508181035f830152613119816130e0565b9050919050565b5f8151905061312e816128dc565b92915050565b5f60208284031215613149576131486128a4565b5b5f61315684828501613120565b91505092915050565b5f6040820190506131725f830185612d48565b61317f6020830184612d48565b9392505050565b5f819050919050565b5f819050919050565b5f6131b26131ad6131a884613186565b61318f565b612906565b9050919050565b6131c281613198565b82525050565b5f60c0820190506131db5f830189612d48565b6131e860208301886129d5565b6131f560408301876131b9565b61320260608301866131b9565b61320f6080830185612d48565b61321c60a08301846129d5565b979650505050505050565b5f815190506132358161290f565b92915050565b5f805f60608486031215613252576132516128a4565b5b5f61325f86828701613227565b935050602061327086828701613227565b925050604061328186828701613227565b9150509250925092565b5f60408201905061329e5f830185612d48565b6132ab60208301846129d5565b9392505050565b6132bb81612977565b81146132c5575f80fd5b50565b5f815190506132d6816132b2565b92915050565b5f602082840312156132f1576132f06128a4565b5b5f6132fe848285016132c8565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6133616026836127fb565b915061336c82613307565b604082019050919050565b5f6020820190508181035f83015261338e81613355565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6133ef6024836127fb565b91506133fa82613395565b604082019050919050565b5f6020820190508181035f83015261341c816133e3565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61347d6022836127fb565b915061348882613423565b604082019050919050565b5f6020820190508181035f8301526134aa81613471565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61350b6025836127fb565b9150613516826134b1565b604082019050919050565b5f6020820190508181035f830152613538816134ff565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6135996023836127fb565b91506135a48261353f565b604082019050919050565b5f6020820190508181035f8301526135c68161358d565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6136276029836127fb565b9150613632826135cd565b604082019050919050565b5f6020820190508181035f8301526136548161361b565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f61368f6019836127fb565b915061369a8261365b565b602082019050919050565b5f6020820190508181035f8301526136bc81613683565b9050919050565b5f6136cd82612906565b91506136d883612906565b92508282019050808211156136f0576136ef612ed1565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f61372a601a836127fb565b9150613735826136f6565b602082019050919050565b5f6020820190508181035f8301526137578161371e565b9050919050565b5f61376882612906565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361379a57613799612ed1565b5b600182019050919050565b5f6137af82612906565b91506137ba83612906565b92508282039050818111156137d2576137d1612ed1565b5b92915050565b5f60a0820190506137eb5f8301886129d5565b6137f860208301876131b9565b818103604083015261380a8186612ccc565b90506138196060830185612d48565b61382660808301846129d5565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61386782612906565b915061387283612906565b92508261388257613881613830565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6138e76021836127fb565b91506138f28261388d565b604082019050919050565b5f6020820190508181035f830152613914816138db565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61394f601b836127fb565b915061395a8261391b565b602082019050919050565b5f6020820190508181035f83015261397c81613943565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212206071cb852531abb9755a95b4dcc483e673d7d703a6c657b1f4ac5a1557e4833d64736f6c63430008180033
Deployed Bytecode
0x60806040526004361061019f575f3560e01c806372cf8b7b116100eb578063aafb3b7a11610089578063c9567bf911610063578063c9567bf914610574578063ca7030751461058a578063dd62ed3e146105b4578063f2fde38b146105f0576101a6565b8063aafb3b7a146104f6578063bf474bed14610520578063c876d0b91461054a576101a6565b80638da5cb5b116100c55780638da5cb5b1461043c5780638f9a55c01461046657806395d89b4114610490578063a9059cbb146104ba576101a6565b806372cf8b7b146103d2578063751039fc146103fc5780637d1db4a514610412576101a6565b80633b1030ef116101585780636de7bcbd116101325780636de7bcbd1461033057806370a0823114610358578063715018a61461039457806372333356146103aa576101a6565b80633b1030ef146102c857806351bc3c85146102f257806368459d7a14610308576101a6565b806306fdde03146101aa578063095ea7b3146101d4578063167de3591461021057806318160ddd1461023857806323b872dd14610262578063313ce5671461029e576101a6565b366101a657005b5f80fd5b3480156101b5575f80fd5b506101be610618565b6040516101cb919061287b565b60405180910390f35b3480156101df575f80fd5b506101fa60048036038101906101f59190612939565b610655565b6040516102079190612991565b60405180910390f35b34801561021b575f80fd5b50610236600480360381019061023191906129aa565b610672565b005b348015610243575f80fd5b5061024c6107b6565b60405161025991906129e4565b60405180910390f35b34801561026d575f80fd5b50610288600480360381019061028391906129fd565b6107d7565b6040516102959190612991565b60405180910390f35b3480156102a9575f80fd5b506102b26108ab565b6040516102bf9190612a68565b60405180910390f35b3480156102d3575f80fd5b506102dc6108b3565b6040516102e991906129e4565b60405180910390f35b3480156102fd575f80fd5b50610306610901565b005b348015610313575f80fd5b5061032e60048036038101906103299190612a81565b610999565b005b34801561033b575f80fd5b5061035660048036038101906103519190612bff565b610a3f565b005b348015610363575f80fd5b5061037e60048036038101906103799190612c46565b610aed565b60405161038b91906129e4565b60405180910390f35b34801561039f575f80fd5b506103a8610b33565b005b3480156103b5575f80fd5b506103d060048036038101906103cb9190612a81565b610bd2565b005b3480156103dd575f80fd5b506103e6610c78565b6040516103f39190612d28565b60405180910390f35b348015610407575f80fd5b50610410610d03565b005b34801561041d575f80fd5b50610426610e45565b60405161043391906129e4565b60405180910390f35b348015610447575f80fd5b50610450610e4b565b60405161045d9190612d57565b60405180910390f35b348015610471575f80fd5b5061047a610e72565b60405161048791906129e4565b60405180910390f35b34801561049b575f80fd5b506104a4610e78565b6040516104b1919061287b565b60405180910390f35b3480156104c5575f80fd5b506104e060048036038101906104db9190612939565b610eb5565b6040516104ed9190612991565b60405180910390f35b348015610501575f80fd5b5061050a610ed2565b60405161051791906129e4565b60405180910390f35b34801561052b575f80fd5b50610534610f20565b60405161054191906129e4565b60405180910390f35b348015610555575f80fd5b5061055e610f26565b60405161056b9190612991565b60405180910390f35b34801561057f575f80fd5b50610588610f38565b005b348015610595575f80fd5b5061059e611458565b6040516105ab91906129e4565b60405180910390f35b3480156105bf575f80fd5b506105da60048036038101906105d59190612d70565b611461565b6040516105e791906129e4565b60405180910390f35b3480156105fb575f80fd5b5061061660048036038101906106119190612c46565b6114e3565b005b60606040518060400160405280600481526020017f44474f4400000000000000000000000000000000000000000000000000000000815250905090565b5f6106686106616115f1565b84846115f8565b6001905092915050565b61067a6115f1565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610706576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106fd90612df8565b60405180910390fd5b5f8111610748576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073f90612e86565b60405180910390fd5b5f5b6013805490508110156107b2576107a46107626115f1565b6013838154811061077657610775612ea4565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846107d7565b50808060010191505061074a565b5050565b5f6008600a6107c5919061302d565b6127106107d29190613077565b905090565b5f6107e38484846117bb565b6108a0846107ef6115f1565b61089b856040518060600160405280602881526020016139846028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6108526115f1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461214a9092919063ffffffff16565b6115f8565b600190509392505050565b5f6008905090565b5f6108bc610e4b565b73ffffffffffffffffffffffffffffffffffffffff166108da6115f1565b73ffffffffffffffffffffffffffffffffffffffff16146108f9575f80fd5b600b54905090565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109426115f1565b73ffffffffffffffffffffffffffffffffffffffff1614610961575f80fd5b5f61096b30610aed565b90505f81111561097f5761097e816121ac565b5b5f4790505f8111156109955761099481612435565b5b5050565b6109a16115f1565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2490612df8565b60405180910390fd5b81600a8190555080600b819055505050565b610a476115f1565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ad3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aca90612df8565b60405180910390fd5b8060139080519060200190610ae992919061274f565b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610b3b6115f1565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bc7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bbe90612df8565b60405180910390fd5b610bd05f61249e565b565b610bda6115f1565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5d90612df8565b60405180910390fd5b81600881905550806009819055505050565b60606013805480602002602001604051908101604052809291908181526020018280548015610cf957602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610cb0575b5050505050905090565b610d0b6115f1565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8e90612df8565b60405180910390fd5b6008600a610da5919061302d565b612710610db29190613077565b600e819055506008600a610dc6919061302d565b612710610dd39190613077565b600f819055505f60055f6101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6008600a610e21919061302d565b612710610e2e9190613077565b604051610e3b91906129e4565b60405180910390a1565b600e5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600381526020017f4447440000000000000000000000000000000000000000000000000000000000815250905090565b5f610ec8610ec16115f1565b84846117bb565b6001905092915050565b5f610edb610e4b565b73ffffffffffffffffffffffffffffffffffffffff16610ef96115f1565b73ffffffffffffffffffffffffffffffffffffffff1614610f18575f80fd5b600a54905090565b60105481565b60055f9054906101000a900460ff1681565b610f406115f1565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc390612df8565b60405180910390fd5b601260149054906101000a900460ff161561101c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101390613102565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60115f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506110b63060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166008600a6110a4919061302d565b6127106110b19190613077565b6115f8565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611120573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111449190613134565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111ca573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111ee9190613134565b6040518363ffffffff1660e01b815260040161120b92919061315f565b6020604051808303815f875af1158015611227573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061124b9190613134565b60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306112d230610aed565b5f806112dc610e4b565b426040518863ffffffff1660e01b81526004016112fe969594939291906131c8565b60606040518083038185885af115801561131a573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061133f919061323b565b50505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016113df92919061328b565b6020604051808303815f875af11580156113fb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061141f91906132dc565b506001601260166101000a81548160ff0219169083151502179055506001601260146101000a81548160ff021916908315150217905550565b5f600d54905090565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6114eb6115f1565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611577576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156e90612df8565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036115e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115dc90613377565b60405180910390fd5b6115ee8161249e565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611666576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165d90613405565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116cb90613493565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516117ae91906129e4565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611829576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182090613521565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611897576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188e906135af565b60405180910390fd5b5f81116118d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d09061363d565b60405180910390fd5b5f6118e2610e4b565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156119505750611920610e4b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611e9a5760055f9054906101000a900460ff1615611a5c5760115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611a13575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611a5b574360045f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611b05575060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611b58575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611c3157600e54821115611ba2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b99906136a5565b60405180910390fd5b600f5482611baf85610aed565b611bb991906136c3565b1115611bfa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf190613740565b60405180910390fd5b600c54600d541015611c1957611c0f8361255f565b15611c18575f80fd5b5b600d5f815480929190611c2b9061375e565b91905055505b611c6d6064611c5f600a54600d5411611c4c57600654611c50565b6008545b8561257090919063ffffffff16565b6125e790919063ffffffff16565b905060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611cf757503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611d8057600e54821115611d41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d38906136a5565b60405180910390fd5b611d7d6064611d6f600b54600d5411611d5c57600754611d60565b6009545b8561257090919063ffffffff16565b6125e790919063ffffffff16565b90505b5f611d8a30610aed565b9050601260159054906101000a900460ff16158015611df5575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611e0d5750601260169054906101000a900460ff165b8015611e1a575060105481115b8015611e295750600c54600d54115b15611e9857611e80611e7b611e756064611e6760026008600a611e4c919061302d565b612710611e599190613077565b61257090919063ffffffff16565b6125e790919063ffffffff16565b83612630565b6121ac565b5f4790505f811115611e9657611e9547612435565b5b505b505b5f811115611f9957611ef28160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461264890919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611f9091906129e4565b60405180910390a35b611fe98260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546126a590919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061208c61204082846126a590919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461264890919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61212f84866126a590919063ffffffff16565b60405161213c91906129e4565b60405180910390a350505050565b5f838311158290612191576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612188919061287b565b60405180910390fd5b505f838561219f91906137a5565b9050809150509392505050565b6001601260156101000a81548160ff0219169083151502179055505f81031561241857601260149054906101000a900460ff1615612418575f600267ffffffffffffffff811115612200576121ff612ac3565b5b60405190808252806020026020018201604052801561222e5781602001602082028036833780820191505090505b50905030815f8151811061224557612244612ea4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156122e9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061230d9190613134565b8160018151811061232157612320612ea4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506123873060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846115f8565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016123e99594939291906137d8565b5f604051808303815f87803b158015612400575f80fd5b505af1158015612412573d5f803e3d5ffd5b50505050505b5f601260156101000a81548160ff02191690831515021790555050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561249a573d5f803e3d5ffd5b5050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f80823b90505f8111915050919050565b5f808303612580575f90506125e1565b5f828461258d9190613077565b905082848261259c919061385d565b146125dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125d3906138fd565b60405180910390fd5b809150505b92915050565b5f61262883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506126ee565b905092915050565b5f81831161263e5782612640565b815b905092915050565b5f80828461265691906136c3565b90508381101561269b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161269290613965565b60405180910390fd5b8091505092915050565b5f6126e683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061214a565b905092915050565b5f8083118290612734576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161272b919061287b565b60405180910390fd5b505f8385612742919061385d565b9050809150509392505050565b828054828255905f5260205f209081019282156127c5579160200282015b828111156127c4578251825f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509160200191906001019061276d565b5b5090506127d291906127d6565b5090565b5b808211156127ed575f815f9055506001016127d7565b5090565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561282857808201518184015260208101905061280d565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61284d826127f1565b61285781856127fb565b935061286781856020860161280b565b61287081612833565b840191505092915050565b5f6020820190508181035f8301526128938184612843565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6128d5826128ac565b9050919050565b6128e5816128cb565b81146128ef575f80fd5b50565b5f81359050612900816128dc565b92915050565b5f819050919050565b61291881612906565b8114612922575f80fd5b50565b5f813590506129338161290f565b92915050565b5f806040838503121561294f5761294e6128a4565b5b5f61295c858286016128f2565b925050602061296d85828601612925565b9150509250929050565b5f8115159050919050565b61298b81612977565b82525050565b5f6020820190506129a45f830184612982565b92915050565b5f602082840312156129bf576129be6128a4565b5b5f6129cc84828501612925565b91505092915050565b6129de81612906565b82525050565b5f6020820190506129f75f8301846129d5565b92915050565b5f805f60608486031215612a1457612a136128a4565b5b5f612a21868287016128f2565b9350506020612a32868287016128f2565b9250506040612a4386828701612925565b9150509250925092565b5f60ff82169050919050565b612a6281612a4d565b82525050565b5f602082019050612a7b5f830184612a59565b92915050565b5f8060408385031215612a9757612a966128a4565b5b5f612aa485828601612925565b9250506020612ab585828601612925565b9150509250929050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612af982612833565b810181811067ffffffffffffffff82111715612b1857612b17612ac3565b5b80604052505050565b5f612b2a61289b565b9050612b368282612af0565b919050565b5f67ffffffffffffffff821115612b5557612b54612ac3565b5b602082029050602081019050919050565b5f80fd5b5f612b7c612b7784612b3b565b612b21565b90508083825260208201905060208402830185811115612b9f57612b9e612b66565b5b835b81811015612bc85780612bb488826128f2565b845260208401935050602081019050612ba1565b5050509392505050565b5f82601f830112612be657612be5612abf565b5b8135612bf6848260208601612b6a565b91505092915050565b5f60208284031215612c1457612c136128a4565b5b5f82013567ffffffffffffffff811115612c3157612c306128a8565b5b612c3d84828501612bd2565b91505092915050565b5f60208284031215612c5b57612c5a6128a4565b5b5f612c68848285016128f2565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612ca3816128cb565b82525050565b5f612cb48383612c9a565b60208301905092915050565b5f602082019050919050565b5f612cd682612c71565b612ce08185612c7b565b9350612ceb83612c8b565b805f5b83811015612d1b578151612d028882612ca9565b9750612d0d83612cc0565b925050600181019050612cee565b5085935050505092915050565b5f6020820190508181035f830152612d408184612ccc565b905092915050565b612d51816128cb565b82525050565b5f602082019050612d6a5f830184612d48565b92915050565b5f8060408385031215612d8657612d856128a4565b5b5f612d93858286016128f2565b9250506020612da4858286016128f2565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612de26020836127fb565b9150612ded82612dae565b602082019050919050565b5f6020820190508181035f830152612e0f81612dd6565b9050919050565b7f5472616e7366657220616d6f756e742073686f756c64206265206772656174655f8201527f7220746865207a65726f00000000000000000000000000000000000000000000602082015250565b5f612e70602a836127fb565b9150612e7b82612e16565b604082019050919050565b5f6020820190508181035f830152612e9d81612e64565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612f5357808604811115612f2f57612f2e612ed1565b5b6001851615612f3e5780820291505b8081029050612f4c85612efe565b9450612f13565b94509492505050565b5f82612f6b5760019050613026565b81612f78575f9050613026565b8160018114612f8e5760028114612f9857612fc7565b6001915050613026565b60ff841115612faa57612fa9612ed1565b5b8360020a915084821115612fc157612fc0612ed1565b5b50613026565b5060208310610133831016604e8410600b8410161715612ffc5782820a905083811115612ff757612ff6612ed1565b5b613026565b6130098484846001612f0a565b925090508184048111156130205761301f612ed1565b5b81810290505b9392505050565b5f61303782612906565b915061304283612a4d565b925061306f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612f5c565b905092915050565b5f61308182612906565b915061308c83612906565b925082820261309a81612906565b915082820484148315176130b1576130b0612ed1565b5b5092915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6130ec6017836127fb565b91506130f7826130b8565b602082019050919050565b5f6020820190508181035f830152613119816130e0565b9050919050565b5f8151905061312e816128dc565b92915050565b5f60208284031215613149576131486128a4565b5b5f61315684828501613120565b91505092915050565b5f6040820190506131725f830185612d48565b61317f6020830184612d48565b9392505050565b5f819050919050565b5f819050919050565b5f6131b26131ad6131a884613186565b61318f565b612906565b9050919050565b6131c281613198565b82525050565b5f60c0820190506131db5f830189612d48565b6131e860208301886129d5565b6131f560408301876131b9565b61320260608301866131b9565b61320f6080830185612d48565b61321c60a08301846129d5565b979650505050505050565b5f815190506132358161290f565b92915050565b5f805f60608486031215613252576132516128a4565b5b5f61325f86828701613227565b935050602061327086828701613227565b925050604061328186828701613227565b9150509250925092565b5f60408201905061329e5f830185612d48565b6132ab60208301846129d5565b9392505050565b6132bb81612977565b81146132c5575f80fd5b50565b5f815190506132d6816132b2565b92915050565b5f602082840312156132f1576132f06128a4565b5b5f6132fe848285016132c8565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6133616026836127fb565b915061336c82613307565b604082019050919050565b5f6020820190508181035f83015261338e81613355565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6133ef6024836127fb565b91506133fa82613395565b604082019050919050565b5f6020820190508181035f83015261341c816133e3565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61347d6022836127fb565b915061348882613423565b604082019050919050565b5f6020820190508181035f8301526134aa81613471565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61350b6025836127fb565b9150613516826134b1565b604082019050919050565b5f6020820190508181035f830152613538816134ff565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6135996023836127fb565b91506135a48261353f565b604082019050919050565b5f6020820190508181035f8301526135c68161358d565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6136276029836127fb565b9150613632826135cd565b604082019050919050565b5f6020820190508181035f8301526136548161361b565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f61368f6019836127fb565b915061369a8261365b565b602082019050919050565b5f6020820190508181035f8301526136bc81613683565b9050919050565b5f6136cd82612906565b91506136d883612906565b92508282019050808211156136f0576136ef612ed1565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f61372a601a836127fb565b9150613735826136f6565b602082019050919050565b5f6020820190508181035f8301526137578161371e565b9050919050565b5f61376882612906565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361379a57613799612ed1565b5b600182019050919050565b5f6137af82612906565b91506137ba83612906565b92508282039050818111156137d2576137d1612ed1565b5b92915050565b5f60a0820190506137eb5f8301886129d5565b6137f860208301876131b9565b818103604083015261380a8186612ccc565b90506138196060830185612d48565b61382660808301846129d5565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61386782612906565b915061387283612906565b92508261388257613881613830565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6138e76021836127fb565b91506138f28261388d565b604082019050919050565b5f6020820190508181035f830152613914816138db565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61394f601b836127fb565b915061395a8261391b565b602082019050919050565b5f6020820190508181035f83015261397c81613943565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212206071cb852531abb9755a95b4dcc483e673d7d703a6c657b1f4ac5a1557e4833d64736f6c63430008180033
Deployed Bytecode Sourcemap
3799:9502:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5699:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6532:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12890:290;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5976:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6701:315;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5885:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12568:137;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11892:348;;;;;;;;;;;;;:::i;:::-;;12250:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12756:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6079:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2519:103;;;;;;;;;;;;;:::i;:::-;;10810:155;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13188:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10505:196;;;;;;;;;;;;;:::i;:::-;;4759:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2305:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4817:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5790:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6206:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12422:134;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4875:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4141:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10973:671;;;;;;;;;;;;;:::i;:::-;;5606:85;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6381:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2630:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5699:83;5736:13;5769:5;;;;;;;;;;;;;;;;;5762:12;;5699:83;:::o;6532:161::-;6607:4;6624:39;6633:12;:10;:12::i;:::-;6647:7;6656:6;6624:8;:39::i;:::-;6681:4;6674:11;;6532:161;;;;:::o;12890:290::-;2442:12;:10;:12::i;:::-;2432:22;;:6;;;;;;;;;;:22;;;2424:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12981:1:::1;12972:6;:10;12964:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;13046:9;13041:132;13061:15;:22;;;;13059:1;:24;13041:132;;;13107:54;13120:12;:10;:12::i;:::-;13134:15;13150:1;13134:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13154:6;13107:12;:54::i;:::-;;13085:3;;;;;;;13041:132;;;;12890:290:::0;:::o;5976:95::-;6029:7;4583:1;4634:2;:13;;;;:::i;:::-;4626:5;:21;;;;:::i;:::-;6049:14;;5976:95;:::o;6701:315::-;6799:4;6816:36;6826:6;6834:9;6845:6;6816:9;:36::i;:::-;6865:121;6874:6;6882:12;:10;:12::i;:::-;6896:89;6934:6;6896:89;;;;;;;;;;;;;;;;;:11;:19;6908:6;6896:19;;;;;;;;;;;;;;;:33;6916:12;:10;:12::i;:::-;6896:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6865:8;:121::i;:::-;7004:4;6997:11;;6701:315;;;;;:::o;5885:83::-;5926:5;4583:1;5944:16;;5885:83;:::o;12568:137::-;12613:7;12654;:5;:7::i;:::-;12640:21;;:12;:10;:12::i;:::-;:21;;;12632:30;;;;;;12681:16;;12674:23;;12568:137;:::o;11892:348::-;11956:10;;;;;;;;;;;11942:24;;:12;:10;:12::i;:::-;:24;;;11934:33;;;;;;11978:20;11999:24;12017:4;11999:9;:24::i;:::-;11978:45;;12050:1;12037:12;:14;12034:73;;;12065:30;12082:12;12065:16;:30::i;:::-;12034:73;12117:18;12136:21;12117:40;;12182:1;12171:10;:12;12168:65;;;12197:24;12210:10;12197:12;:24::i;:::-;12168:65;11923:317;;11892:348::o;12250:164::-;2442:12;:10;:12::i;:::-;2432:22;;:6;;;;;;;;;;:22;;;2424:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12359:8:::1;12341:15;:26;;;;12397:9;12378:16;:28;;;;12250:164:::0;;:::o;12756:125::-;2442:12;:10;:12::i;:::-;2432:22;;:6;;;;;;;;;;:22;;;2424:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12858:15:::1;12840;:33;;;;;;;;;;;;:::i;:::-;;12756:125:::0;:::o;6079:119::-;6145:7;6172:9;:18;6182:7;6172:18;;;;;;;;;;;;;;;;6165:25;;6079:119;;;:::o;2519:103::-;2442:12;:10;:12::i;:::-;2432:22;;:6;;;;;;;;;;:22;;;2424:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2584:30:::1;2611:1;2584:18;:30::i;:::-;2519:103::o:0;10810:155::-;2442:12;:10;:12::i;:::-;2432:22;;:6;;;;;;;;;;:22;;;2424:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10911:10:::1;10898:12;:23;;;;10946:11;10932:13;:25;;;;10810:155:::0;;:::o;13188:108::-;13234:16;13272:15;13265:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13188:108;:::o;10505:196::-;2442:12;:10;:12::i;:::-;2432:22;;:6;;;;;;;;;;:22;;;2424:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4583:1:::1;4634:2;:13;;;;:::i;:::-;4626:5;:21;;;;:::i;:::-;10558:12;:22;;;;4583:1;4634:2;:13;;;;:::i;:::-;4626:5;:21;;;;:::i;:::-;10591:14;:22;;;;10645:5;10624:20;;:26;;;;;;;;;;;;;;;;;;10666:27;4583:1;4634:2;:13;;;;:::i;:::-;4626:5;:21;;;;:::i;:::-;10666:27;;;;;;:::i;:::-;;;;;;;;10505:196::o:0;4759:51::-;;;;:::o;2305:79::-;2343:7;2370:6;;;;;;;;;;;2363:13;;2305:79;:::o;4817:51::-;;;;:::o;5790:87::-;5829:13;5862:7;;;;;;;;;;;;;;;;;5855:14;;5790:87;:::o;6206:167::-;6284:4;6301:42;6311:12;:10;:12::i;:::-;6325:9;6336:6;6301:9;:42::i;:::-;6361:4;6354:11;;6206:167;;;;:::o;12422:134::-;12466:7;12507;:5;:7::i;:::-;12493:21;;:12;:10;:12::i;:::-;:21;;;12485:30;;;;;;12533:15;;12526:22;;12422:134;:::o;4875:52::-;;;;:::o;4141:40::-;;;;;;;;;;;;;:::o;10973:671::-;2442:12;:10;:12::i;:::-;2432:22;;:6;;;;;;;;;;:22;;;2424:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11037:11:::1;;;;;;;;;;;11036:12;11028:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11123:42;11086:15;;:80;;;;;;;;;;;;;;;;;;11177:58;11194:4;11209:15;;;;;;;;;;;4583:1;4634:2;:13;;;;:::i;:::-;4626:5;:21;;;;:::i;:::-;11177:8;:58::i;:::-;11280:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11262:55;;;11326:4;11333:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11262:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11246:13;;:110;;;;;;;;;;;;;;;;;;11367:15;;;;;;;;;;;:31;;;11406:21;11437:4;11443:24;11461:4;11443:9;:24::i;:::-;11468:1;11470::::0;11472:7:::1;:5;:7::i;:::-;11480:15;11367:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11514:13;;;;;;;;;;;11507:29;;;11545:15;;;;;;;;;;;11563:14;11507:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11603:4;11589:11;;:18;;;;;;;;;;;;;;;;;;11632:4;11618:11;;:18;;;;;;;;;;;;;;;;;;10973:671::o:0;5606:85::-;5647:7;5674:9;;5667:16;;5606:85;:::o;6381:143::-;6462:7;6489:11;:18;6501:5;6489:18;;;;;;;;;;;;;;;:27;6508:7;6489:27;;;;;;;;;;;;;;;;6482:34;;6381:143;;;;:::o;2630:201::-;2442:12;:10;:12::i;:::-;2432:22;;:6;;;;;;;;;;:22;;;2424:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2739:1:::1;2719:22;;:8;:22;;::::0;2711:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2795:28;2814:8;2795:18;:28::i;:::-;2630:201:::0;:::o;61:98::-;114:7;141:10;134:17;;61:98;:::o;7026:335::-;7136:1;7119:19;;:5;:19;;;7111:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7217:1;7198:21;;:7;:21;;;7190:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7299:6;7269:11;:18;7281:5;7269:18;;;;;;;;;;;;;;;:27;7288:7;7269:27;;;;;;;;;;;;;;;:36;;;;7337:7;7321:32;;7330:5;7321:32;;;7346:6;7321:32;;;;;;:::i;:::-;;;;;;;;7026:335;;;:::o;7369:2455::-;7473:1;7457:18;;:4;:18;;;7449:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7550:1;7536:16;;:2;:16;;;7528:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7620:1;7611:6;:10;7603:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7678:17;7720:7;:5;:7::i;:::-;7712:15;;:4;:15;;;;:32;;;;;7737:7;:5;:7::i;:::-;7731:13;;:2;:13;;;;7712:32;7708:1760;;;7780:20;;;;;;;;;;;7776:348;;;7839:15;;;;;;;;;;;7825:30;;:2;:30;;;;:62;;;;;7873:13;;;;;;;;;;;7859:28;;:2;:28;;;;7825:62;7821:288;;;8077:12;8035:28;:39;8064:9;8035:39;;;;;;;;;;;;;;;:54;;;;7821:288;7776:348;8152:13;;;;;;;;;;;8144:21;;:4;:21;;;:55;;;;;8183:15;;;;;;;;;;;8169:30;;:2;:30;;;;8144:55;:83;;;;;8205:18;:22;8224:2;8205:22;;;;;;;;;;;;;;;;;;;;;;;;;8203:24;8144:83;8140:428;;;8267:12;;8257:6;:22;;8249:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8362:14;;8352:6;8336:13;8346:2;8336:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8328:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8439:18;;8429:9;;:28;8426:97;;;8488:14;8499:2;8488:10;:14::i;:::-;8487:15;8479:24;;;;;;8426:97;8541:9;;:11;;;;;;;;;:::i;:::-;;;;;;8140:428;8596:76;8668:3;8596:67;8618:15;;8608:9;;:25;8607:55;;8648:14;;8607:55;;;8635:12;;8607:55;8596:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;8584:88;;8708:13;;;;;;;;;;;8702:19;;:2;:19;;;:43;;;;;8740:4;8725:20;;:4;:20;;;;8702:43;8699:253;;;8784:12;;8774:6;:22;;8766:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8857:79;8932:3;8857:70;8879:16;;8869:9;;:26;8868:58;;8911:15;;8868:58;;;8897:13;;8868:58;8857:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;8845:91;;8699:253;8968:28;8999:24;9017:4;8999:9;:24::i;:::-;8968:55;;9043:6;;;;;;;;;;;9042:7;:30;;;;;9059:13;;;;;;;;;;;9053:19;;:2;:19;;;9042:30;:45;;;;;9076:11;;;;;;;;;;;9042:45;:87;;;;;9112:17;;9091:20;:38;9042:87;:119;;;;;9143:18;;9133:9;;:28;9042:119;9038:419;;;9182:67;9199:49;9203:23;9222:3;9203:14;9215:1;4583;4634:2;:13;;;;:::i;:::-;4626:5;:21;;;;:::i;:::-;9203:11;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;9227:20;9199:3;:49::i;:::-;9182:16;:67::i;:::-;9268:26;9297:21;9268:50;;9361:1;9340:18;:22;9337:105;;;9387:35;9400:21;9387:12;:35::i;:::-;9337:105;9163:294;9038:419;7746:1722;7708:1760;9493:1;9483:9;:11;9480:161;;;9533:39;9562:9;9533;:24;9551:4;9533:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9508:9;:24;9526:4;9508:24;;;;;;;;;;;;;;;:64;;;;9613:4;9590:39;;9599:4;9590:39;;;9619:9;9590:39;;;;;;:::i;:::-;;;;;;;;9480:161;9667:27;9687:6;9667:9;:15;9677:4;9667:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9651:9;:15;9661:4;9651:15;;;;;;;;;;;;;;;:43;;;;9719:40;9737:21;9748:9;9737:6;:10;;:21;;;;:::i;:::-;9719:9;:13;9729:2;9719:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9705:9;:13;9715:2;9705:13;;;;;;;;;;;;;;;:54;;;;9790:2;9775:41;;9784:4;9775:41;;;9794:21;9805:9;9794:6;:10;;:21;;;;:::i;:::-;9775:41;;;;;;:::i;:::-;;;;;;;;7438:2386;7369:2455;;;:::o;1198:190::-;1284:7;1317:1;1312;:6;;1320:12;1304:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1344:9;1360:1;1356;:5;;;;:::i;:::-;1344:17;;1379:1;1372:8;;;1198:190;;;;;:::o;9942:555::-;5218:4;5209:6;;:13;;;;;;;;;;;;;;;;;;10036:1:::1;10023:11;:14:::0;10020:27;10039:7:::1;10020:27;10061:11;;;;;;;;;;;10057:25:::0;10074:7:::1;10057:25;10092:21;10130:1;10116:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10092:40;;10161:4;10143;10148:1;10143:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10187:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10177:4;10182:1;10177:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10220:62;10237:4;10252:15;;;;;;;;;;;10270:11;10220:8;:62::i;:::-;10293:15;;;;;;;;;;;:66;;;10374:11;10400:1;10416:4;10443;10463:15;10293:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10009:488;5233:1;5254:5:::0;5245:6;;:14;;;;;;;;;;;;;;;;;;9942:555;:::o;10709:92::-;10766:10;;;;;;;;;;;:19;;:27;10786:6;10766:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10709:92;:::o;2839:191::-;2913:16;2932:6;;;;;;;;;;;2913:25;;2958:8;2949:6;;:17;;;;;;;;;;;;;;;;;;3013:8;2982:40;;3003:8;2982:40;;;;;;;;;;;;2902:128;2839:191;:::o;11689:195::-;11748:4;11765:12;11832:7;11820:20;11812:28;;11875:1;11868:4;:8;11861:15;;;11689:195;;;:::o;1396:246::-;1454:7;1483:1;1478;:6;1474:47;;1508:1;1501:8;;;;1474:47;1531:9;1547:1;1543;:5;;;;:::i;:::-;1531:17;;1576:1;1571;1567;:5;;;;:::i;:::-;:10;1559:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1633:1;1626:8;;;1396:246;;;;;:::o;1650:132::-;1708:7;1735:39;1739:1;1742;1735:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1728:46;;1650:132;;;;:::o;9836:98::-;9893:7;9920:1;9918;:3;9917:9;;9925:1;9917:9;;;9923:1;9917:9;9910:16;;9836:98;;;;:::o;867:179::-;925:7;945:9;961:1;957;:5;;;;:::i;:::-;945:17;;986:1;981;:6;;973:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1037:1;1030:8;;;867:179;;;;:::o;1054:136::-;1112:7;1139:43;1143:1;1146;1139:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1132:50;;1054:136;;;;:::o;1790:189::-;1876:7;1908:1;1904;:5;1911:12;1896:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1935:9;1951:1;1947;:5;;;;:::i;:::-;1935:17;;1970:1;1963:8;;;1790:189;;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:329::-;3505:6;3554:2;3542:9;3533:7;3529:23;3525:32;3522:119;;;3560:79;;:::i;:::-;3522:119;3680:1;3705:53;3750:7;3741:6;3730:9;3726:22;3705:53;:::i;:::-;3695:63;;3651:117;3446:329;;;;:::o;3781:118::-;3868:24;3886:5;3868:24;:::i;:::-;3863:3;3856:37;3781:118;;:::o;3905:222::-;3998:4;4036:2;4025:9;4021:18;4013:26;;4049:71;4117:1;4106:9;4102:17;4093:6;4049:71;:::i;:::-;3905:222;;;;:::o;4133:619::-;4210:6;4218;4226;4275:2;4263:9;4254:7;4250:23;4246:32;4243:119;;;4281:79;;:::i;:::-;4243:119;4401:1;4426:53;4471:7;4462:6;4451:9;4447:22;4426:53;:::i;:::-;4416:63;;4372:117;4528:2;4554:53;4599:7;4590:6;4579:9;4575:22;4554:53;:::i;:::-;4544:63;;4499:118;4656:2;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4627:118;4133:619;;;;;:::o;4758:86::-;4793:7;4833:4;4826:5;4822:16;4811:27;;4758:86;;;:::o;4850:112::-;4933:22;4949:5;4933:22;:::i;:::-;4928:3;4921:35;4850:112;;:::o;4968:214::-;5057:4;5095:2;5084:9;5080:18;5072:26;;5108:67;5172:1;5161:9;5157:17;5148:6;5108:67;:::i;:::-;4968:214;;;;:::o;5188:474::-;5256:6;5264;5313:2;5301:9;5292:7;5288:23;5284:32;5281:119;;;5319:79;;:::i;:::-;5281:119;5439:1;5464:53;5509:7;5500:6;5489:9;5485:22;5464:53;:::i;:::-;5454:63;;5410:117;5566:2;5592:53;5637:7;5628:6;5617:9;5613:22;5592:53;:::i;:::-;5582:63;;5537:118;5188:474;;;;;:::o;5668:117::-;5777:1;5774;5767:12;5791:180;5839:77;5836:1;5829:88;5936:4;5933:1;5926:15;5960:4;5957:1;5950:15;5977:281;6060:27;6082:4;6060:27;:::i;:::-;6052:6;6048:40;6190:6;6178:10;6175:22;6154:18;6142:10;6139:34;6136:62;6133:88;;;6201:18;;:::i;:::-;6133:88;6241:10;6237:2;6230:22;6020:238;5977:281;;:::o;6264:129::-;6298:6;6325:20;;:::i;:::-;6315:30;;6354:33;6382:4;6374:6;6354:33;:::i;:::-;6264:129;;;:::o;6399:311::-;6476:4;6566:18;6558:6;6555:30;6552:56;;;6588:18;;:::i;:::-;6552:56;6638:4;6630:6;6626:17;6618:25;;6698:4;6692;6688:15;6680:23;;6399:311;;;:::o;6716:117::-;6825:1;6822;6815:12;6856:710;6952:5;6977:81;6993:64;7050:6;6993:64;:::i;:::-;6977:81;:::i;:::-;6968:90;;7078:5;7107:6;7100:5;7093:21;7141:4;7134:5;7130:16;7123:23;;7194:4;7186:6;7182:17;7174:6;7170:30;7223:3;7215:6;7212:15;7209:122;;;7242:79;;:::i;:::-;7209:122;7357:6;7340:220;7374:6;7369:3;7366:15;7340:220;;;7449:3;7478:37;7511:3;7499:10;7478:37;:::i;:::-;7473:3;7466:50;7545:4;7540:3;7536:14;7529:21;;7416:144;7400:4;7395:3;7391:14;7384:21;;7340:220;;;7344:21;6958:608;;6856:710;;;;;:::o;7589:370::-;7660:5;7709:3;7702:4;7694:6;7690:17;7686:27;7676:122;;7717:79;;:::i;:::-;7676:122;7834:6;7821:20;7859:94;7949:3;7941:6;7934:4;7926:6;7922:17;7859:94;:::i;:::-;7850:103;;7666:293;7589:370;;;;:::o;7965:539::-;8049:6;8098:2;8086:9;8077:7;8073:23;8069:32;8066:119;;;8104:79;;:::i;:::-;8066:119;8252:1;8241:9;8237:17;8224:31;8282:18;8274:6;8271:30;8268:117;;;8304:79;;:::i;:::-;8268:117;8409:78;8479:7;8470:6;8459:9;8455:22;8409:78;:::i;:::-;8399:88;;8195:302;7965:539;;;;:::o;8510:329::-;8569:6;8618:2;8606:9;8597:7;8593:23;8589:32;8586:119;;;8624:79;;:::i;:::-;8586:119;8744:1;8769:53;8814:7;8805:6;8794:9;8790:22;8769:53;:::i;:::-;8759:63;;8715:117;8510:329;;;;:::o;8845:114::-;8912:6;8946:5;8940:12;8930:22;;8845:114;;;:::o;8965:184::-;9064:11;9098:6;9093:3;9086:19;9138:4;9133:3;9129:14;9114:29;;8965:184;;;;:::o;9155:132::-;9222:4;9245:3;9237:11;;9275:4;9270:3;9266:14;9258:22;;9155:132;;;:::o;9293:108::-;9370:24;9388:5;9370:24;:::i;:::-;9365:3;9358:37;9293:108;;:::o;9407:179::-;9476:10;9497:46;9539:3;9531:6;9497:46;:::i;:::-;9575:4;9570:3;9566:14;9552:28;;9407:179;;;;:::o;9592:113::-;9662:4;9694;9689:3;9685:14;9677:22;;9592:113;;;:::o;9741:732::-;9860:3;9889:54;9937:5;9889:54;:::i;:::-;9959:86;10038:6;10033:3;9959:86;:::i;:::-;9952:93;;10069:56;10119:5;10069:56;:::i;:::-;10148:7;10179:1;10164:284;10189:6;10186:1;10183:13;10164:284;;;10265:6;10259:13;10292:63;10351:3;10336:13;10292:63;:::i;:::-;10285:70;;10378:60;10431:6;10378:60;:::i;:::-;10368:70;;10224:224;10211:1;10208;10204:9;10199:14;;10164:284;;;10168:14;10464:3;10457:10;;9865:608;;;9741:732;;;;:::o;10479:373::-;10622:4;10660:2;10649:9;10645:18;10637:26;;10709:9;10703:4;10699:20;10695:1;10684:9;10680:17;10673:47;10737:108;10840:4;10831:6;10737:108;:::i;:::-;10729:116;;10479:373;;;;:::o;10858:118::-;10945:24;10963:5;10945:24;:::i;:::-;10940:3;10933:37;10858:118;;:::o;10982:222::-;11075:4;11113:2;11102:9;11098:18;11090:26;;11126:71;11194:1;11183:9;11179:17;11170:6;11126:71;:::i;:::-;10982:222;;;;:::o;11210:474::-;11278:6;11286;11335:2;11323:9;11314:7;11310:23;11306:32;11303:119;;;11341:79;;:::i;:::-;11303:119;11461:1;11486:53;11531:7;11522:6;11511:9;11507:22;11486:53;:::i;:::-;11476:63;;11432:117;11588:2;11614:53;11659:7;11650:6;11639:9;11635:22;11614:53;:::i;:::-;11604:63;;11559:118;11210:474;;;;;:::o;11690:182::-;11830:34;11826:1;11818:6;11814:14;11807:58;11690:182;:::o;11878:366::-;12020:3;12041:67;12105:2;12100:3;12041:67;:::i;:::-;12034:74;;12117:93;12206:3;12117:93;:::i;:::-;12235:2;12230:3;12226:12;12219:19;;11878:366;;;:::o;12250:419::-;12416:4;12454:2;12443:9;12439:18;12431:26;;12503:9;12497:4;12493:20;12489:1;12478:9;12474:17;12467:47;12531:131;12657:4;12531:131;:::i;:::-;12523:139;;12250:419;;;:::o;12675:229::-;12815:34;12811:1;12803:6;12799:14;12792:58;12884:12;12879:2;12871:6;12867:15;12860:37;12675:229;:::o;12910:366::-;13052:3;13073:67;13137:2;13132:3;13073:67;:::i;:::-;13066:74;;13149:93;13238:3;13149:93;:::i;:::-;13267:2;13262:3;13258:12;13251:19;;12910:366;;;:::o;13282:419::-;13448:4;13486:2;13475:9;13471:18;13463:26;;13535:9;13529:4;13525:20;13521:1;13510:9;13506:17;13499:47;13563:131;13689:4;13563:131;:::i;:::-;13555:139;;13282:419;;;:::o;13707:180::-;13755:77;13752:1;13745:88;13852:4;13849:1;13842:15;13876:4;13873:1;13866:15;13893:180;13941:77;13938:1;13931:88;14038:4;14035:1;14028:15;14062:4;14059:1;14052:15;14079:102;14121:8;14168:5;14165:1;14161:13;14140:34;;14079:102;;;:::o;14187:848::-;14248:5;14255:4;14279:6;14270:15;;14303:5;14294:14;;14317:712;14338:1;14328:8;14325:15;14317:712;;;14433:4;14428:3;14424:14;14418:4;14415:24;14412:50;;;14442:18;;:::i;:::-;14412:50;14492:1;14482:8;14478:16;14475:451;;;14907:4;14900:5;14896:16;14887:25;;14475:451;14957:4;14951;14947:15;14939:23;;14987:32;15010:8;14987:32;:::i;:::-;14975:44;;14317:712;;;14187:848;;;;;;;:::o;15041:1073::-;15095:5;15286:8;15276:40;;15307:1;15298:10;;15309:5;;15276:40;15335:4;15325:36;;15352:1;15343:10;;15354:5;;15325:36;15421:4;15469:1;15464:27;;;;15505:1;15500:191;;;;15414:277;;15464:27;15482:1;15473:10;;15484:5;;;15500:191;15545:3;15535:8;15532:17;15529:43;;;15552:18;;:::i;:::-;15529:43;15601:8;15598:1;15594:16;15585:25;;15636:3;15629:5;15626:14;15623:40;;;15643:18;;:::i;:::-;15623:40;15676:5;;;15414:277;;15800:2;15790:8;15787:16;15781:3;15775:4;15772:13;15768:36;15750:2;15740:8;15737:16;15732:2;15726:4;15723:12;15719:35;15703:111;15700:246;;;15856:8;15850:4;15846:19;15837:28;;15891:3;15884:5;15881:14;15878:40;;;15898:18;;:::i;:::-;15878:40;15931:5;;15700:246;15971:42;16009:3;15999:8;15993:4;15990:1;15971:42;:::i;:::-;15956:57;;;;16045:4;16040:3;16036:14;16029:5;16026:25;16023:51;;;16054:18;;:::i;:::-;16023:51;16103:4;16096:5;16092:16;16083:25;;15041:1073;;;;;;:::o;16120:281::-;16178:5;16202:23;16220:4;16202:23;:::i;:::-;16194:31;;16246:25;16262:8;16246:25;:::i;:::-;16234:37;;16290:104;16327:66;16317:8;16311:4;16290:104;:::i;:::-;16281:113;;16120:281;;;;:::o;16407:410::-;16447:7;16470:20;16488:1;16470:20;:::i;:::-;16465:25;;16504:20;16522:1;16504:20;:::i;:::-;16499:25;;16559:1;16556;16552:9;16581:30;16599:11;16581:30;:::i;:::-;16570:41;;16760:1;16751:7;16747:15;16744:1;16741:22;16721:1;16714:9;16694:83;16671:139;;16790:18;;:::i;:::-;16671:139;16455:362;16407:410;;;;:::o;16823:173::-;16963:25;16959:1;16951:6;16947:14;16940:49;16823:173;:::o;17002:366::-;17144:3;17165:67;17229:2;17224:3;17165:67;:::i;:::-;17158:74;;17241:93;17330:3;17241:93;:::i;:::-;17359:2;17354:3;17350:12;17343:19;;17002:366;;;:::o;17374:419::-;17540:4;17578:2;17567:9;17563:18;17555:26;;17627:9;17621:4;17617:20;17613:1;17602:9;17598:17;17591:47;17655:131;17781:4;17655:131;:::i;:::-;17647:139;;17374:419;;;:::o;17799:143::-;17856:5;17887:6;17881:13;17872:22;;17903:33;17930:5;17903:33;:::i;:::-;17799:143;;;;:::o;17948:351::-;18018:6;18067:2;18055:9;18046:7;18042:23;18038:32;18035:119;;;18073:79;;:::i;:::-;18035:119;18193:1;18218:64;18274:7;18265:6;18254:9;18250:22;18218:64;:::i;:::-;18208:74;;18164:128;17948:351;;;;:::o;18305:332::-;18426:4;18464:2;18453:9;18449:18;18441:26;;18477:71;18545:1;18534:9;18530:17;18521:6;18477:71;:::i;:::-;18558:72;18626:2;18615:9;18611:18;18602:6;18558:72;:::i;:::-;18305:332;;;;;:::o;18643:85::-;18688:7;18717:5;18706:16;;18643:85;;;:::o;18734:60::-;18762:3;18783:5;18776:12;;18734:60;;;:::o;18800:158::-;18858:9;18891:61;18909:42;18918:32;18944:5;18918:32;:::i;:::-;18909:42;:::i;:::-;18891:61;:::i;:::-;18878:74;;18800:158;;;:::o;18964:147::-;19059:45;19098:5;19059:45;:::i;:::-;19054:3;19047:58;18964:147;;:::o;19117:807::-;19366:4;19404:3;19393:9;19389:19;19381:27;;19418:71;19486:1;19475:9;19471:17;19462:6;19418:71;:::i;:::-;19499:72;19567:2;19556:9;19552:18;19543:6;19499:72;:::i;:::-;19581:80;19657:2;19646:9;19642:18;19633:6;19581:80;:::i;:::-;19671;19747:2;19736:9;19732:18;19723:6;19671:80;:::i;:::-;19761:73;19829:3;19818:9;19814:19;19805:6;19761:73;:::i;:::-;19844;19912:3;19901:9;19897:19;19888:6;19844:73;:::i;:::-;19117:807;;;;;;;;;:::o;19930:143::-;19987:5;20018:6;20012:13;20003:22;;20034:33;20061:5;20034:33;:::i;:::-;19930:143;;;;:::o;20079:663::-;20167:6;20175;20183;20232:2;20220:9;20211:7;20207:23;20203:32;20200:119;;;20238:79;;:::i;:::-;20200:119;20358:1;20383:64;20439:7;20430:6;20419:9;20415:22;20383:64;:::i;:::-;20373:74;;20329:128;20496:2;20522:64;20578:7;20569:6;20558:9;20554:22;20522:64;:::i;:::-;20512:74;;20467:129;20635:2;20661:64;20717:7;20708:6;20697:9;20693:22;20661:64;:::i;:::-;20651:74;;20606:129;20079:663;;;;;:::o;20748:332::-;20869:4;20907:2;20896:9;20892:18;20884:26;;20920:71;20988:1;20977:9;20973:17;20964:6;20920:71;:::i;:::-;21001:72;21069:2;21058:9;21054:18;21045:6;21001:72;:::i;:::-;20748:332;;;;;:::o;21086:116::-;21156:21;21171:5;21156:21;:::i;:::-;21149:5;21146:32;21136:60;;21192:1;21189;21182:12;21136:60;21086:116;:::o;21208:137::-;21262:5;21293:6;21287:13;21278:22;;21309:30;21333:5;21309:30;:::i;:::-;21208:137;;;;:::o;21351:345::-;21418:6;21467:2;21455:9;21446:7;21442:23;21438:32;21435:119;;;21473:79;;:::i;:::-;21435:119;21593:1;21618:61;21671:7;21662:6;21651:9;21647:22;21618:61;:::i;:::-;21608:71;;21564:125;21351:345;;;;:::o;21702:225::-;21842:34;21838:1;21830:6;21826:14;21819:58;21911:8;21906:2;21898:6;21894:15;21887:33;21702:225;:::o;21933:366::-;22075:3;22096:67;22160:2;22155:3;22096:67;:::i;:::-;22089:74;;22172:93;22261:3;22172:93;:::i;:::-;22290:2;22285:3;22281:12;22274:19;;21933:366;;;:::o;22305:419::-;22471:4;22509:2;22498:9;22494:18;22486:26;;22558:9;22552:4;22548:20;22544:1;22533:9;22529:17;22522:47;22586:131;22712:4;22586:131;:::i;:::-;22578:139;;22305:419;;;:::o;22730:223::-;22870:34;22866:1;22858:6;22854:14;22847:58;22939:6;22934:2;22926:6;22922:15;22915:31;22730:223;:::o;22959:366::-;23101:3;23122:67;23186:2;23181:3;23122:67;:::i;:::-;23115:74;;23198:93;23287:3;23198:93;:::i;:::-;23316:2;23311:3;23307:12;23300:19;;22959:366;;;:::o;23331:419::-;23497:4;23535:2;23524:9;23520:18;23512:26;;23584:9;23578:4;23574:20;23570:1;23559:9;23555:17;23548:47;23612:131;23738:4;23612:131;:::i;:::-;23604:139;;23331:419;;;:::o;23756:221::-;23896:34;23892:1;23884:6;23880:14;23873:58;23965:4;23960:2;23952:6;23948:15;23941:29;23756:221;:::o;23983:366::-;24125:3;24146:67;24210:2;24205:3;24146:67;:::i;:::-;24139:74;;24222:93;24311:3;24222:93;:::i;:::-;24340:2;24335:3;24331:12;24324:19;;23983:366;;;:::o;24355:419::-;24521:4;24559:2;24548:9;24544:18;24536:26;;24608:9;24602:4;24598:20;24594:1;24583:9;24579:17;24572:47;24636:131;24762:4;24636:131;:::i;:::-;24628:139;;24355:419;;;:::o;24780:224::-;24920:34;24916:1;24908:6;24904:14;24897:58;24989:7;24984:2;24976:6;24972:15;24965:32;24780:224;:::o;25010:366::-;25152:3;25173:67;25237:2;25232:3;25173:67;:::i;:::-;25166:74;;25249:93;25338:3;25249:93;:::i;:::-;25367:2;25362:3;25358:12;25351:19;;25010:366;;;:::o;25382:419::-;25548:4;25586:2;25575:9;25571:18;25563:26;;25635:9;25629:4;25625:20;25621:1;25610:9;25606:17;25599:47;25663:131;25789:4;25663:131;:::i;:::-;25655:139;;25382:419;;;:::o;25807:222::-;25947:34;25943:1;25935:6;25931:14;25924:58;26016:5;26011:2;26003:6;25999:15;25992:30;25807:222;:::o;26035:366::-;26177:3;26198:67;26262:2;26257:3;26198:67;:::i;:::-;26191:74;;26274:93;26363:3;26274:93;:::i;:::-;26392:2;26387:3;26383:12;26376:19;;26035:366;;;:::o;26407:419::-;26573:4;26611:2;26600:9;26596:18;26588:26;;26660:9;26654:4;26650:20;26646:1;26635:9;26631:17;26624:47;26688:131;26814:4;26688:131;:::i;:::-;26680:139;;26407:419;;;:::o;26832:228::-;26972:34;26968:1;26960:6;26956:14;26949:58;27041:11;27036:2;27028:6;27024:15;27017:36;26832:228;:::o;27066:366::-;27208:3;27229:67;27293:2;27288:3;27229:67;:::i;:::-;27222:74;;27305:93;27394:3;27305:93;:::i;:::-;27423:2;27418:3;27414:12;27407:19;;27066:366;;;:::o;27438:419::-;27604:4;27642:2;27631:9;27627:18;27619:26;;27691:9;27685:4;27681:20;27677:1;27666:9;27662:17;27655:47;27719:131;27845:4;27719:131;:::i;:::-;27711:139;;27438:419;;;:::o;27863:175::-;28003:27;27999:1;27991:6;27987:14;27980:51;27863:175;:::o;28044:366::-;28186:3;28207:67;28271:2;28266:3;28207:67;:::i;:::-;28200:74;;28283:93;28372:3;28283:93;:::i;:::-;28401:2;28396:3;28392:12;28385:19;;28044:366;;;:::o;28416:419::-;28582:4;28620:2;28609:9;28605:18;28597:26;;28669:9;28663:4;28659:20;28655:1;28644:9;28640:17;28633:47;28697:131;28823:4;28697:131;:::i;:::-;28689:139;;28416:419;;;:::o;28841:191::-;28881:3;28900:20;28918:1;28900:20;:::i;:::-;28895:25;;28934:20;28952:1;28934:20;:::i;:::-;28929:25;;28977:1;28974;28970:9;28963:16;;28998:3;28995:1;28992:10;28989:36;;;29005:18;;:::i;:::-;28989:36;28841:191;;;;:::o;29038:176::-;29178:28;29174:1;29166:6;29162:14;29155:52;29038:176;:::o;29220:366::-;29362:3;29383:67;29447:2;29442:3;29383:67;:::i;:::-;29376:74;;29459:93;29548:3;29459:93;:::i;:::-;29577:2;29572:3;29568:12;29561:19;;29220:366;;;:::o;29592:419::-;29758:4;29796:2;29785:9;29781:18;29773:26;;29845:9;29839:4;29835:20;29831:1;29820:9;29816:17;29809:47;29873:131;29999:4;29873:131;:::i;:::-;29865:139;;29592:419;;;:::o;30017:233::-;30056:3;30079:24;30097:5;30079:24;:::i;:::-;30070:33;;30125:66;30118:5;30115:77;30112:103;;30195:18;;:::i;:::-;30112:103;30242:1;30235:5;30231:13;30224:20;;30017:233;;;:::o;30256:194::-;30296:4;30316:20;30334:1;30316:20;:::i;:::-;30311:25;;30350:20;30368:1;30350:20;:::i;:::-;30345:25;;30394:1;30391;30387:9;30379:17;;30418:1;30412:4;30409:11;30406:37;;;30423:18;;:::i;:::-;30406:37;30256:194;;;;:::o;30456:831::-;30719:4;30757:3;30746:9;30742:19;30734:27;;30771:71;30839:1;30828:9;30824:17;30815:6;30771:71;:::i;:::-;30852:80;30928:2;30917:9;30913:18;30904:6;30852:80;:::i;:::-;30979:9;30973:4;30969:20;30964:2;30953:9;30949:18;30942:48;31007:108;31110:4;31101:6;31007:108;:::i;:::-;30999:116;;31125:72;31193:2;31182:9;31178:18;31169:6;31125:72;:::i;:::-;31207:73;31275:3;31264:9;31260:19;31251:6;31207:73;:::i;:::-;30456:831;;;;;;;;:::o;31293:180::-;31341:77;31338:1;31331:88;31438:4;31435:1;31428:15;31462:4;31459:1;31452:15;31479:185;31519:1;31536:20;31554:1;31536:20;:::i;:::-;31531:25;;31570:20;31588:1;31570:20;:::i;:::-;31565:25;;31609:1;31599:35;;31614:18;;:::i;:::-;31599:35;31656:1;31653;31649:9;31644:14;;31479:185;;;;:::o;31670:220::-;31810:34;31806:1;31798:6;31794:14;31787:58;31879:3;31874:2;31866:6;31862:15;31855:28;31670:220;:::o;31896:366::-;32038:3;32059:67;32123:2;32118:3;32059:67;:::i;:::-;32052:74;;32135:93;32224:3;32135:93;:::i;:::-;32253:2;32248:3;32244:12;32237:19;;31896:366;;;:::o;32268:419::-;32434:4;32472:2;32461:9;32457:18;32449:26;;32521:9;32515:4;32511:20;32507:1;32496:9;32492:17;32485:47;32549:131;32675:4;32549:131;:::i;:::-;32541:139;;32268:419;;;:::o;32693:177::-;32833:29;32829:1;32821:6;32817:14;32810:53;32693:177;:::o;32876:366::-;33018:3;33039:67;33103:2;33098:3;33039:67;:::i;:::-;33032:74;;33115:93;33204:3;33115:93;:::i;:::-;33233:2;33228:3;33224:12;33217:19;;32876:366;;;:::o;33248:419::-;33414:4;33452:2;33441:9;33437:18;33429:26;;33501:9;33495:4;33491:20;33487:1;33476:9;33472:17;33465:47;33529:131;33655:4;33529:131;:::i;:::-;33521:139;;33248:419;;;:::o
Swarm Source
ipfs://6071cb852531abb9755a95b4dcc483e673d7d703a6c657b1f4ac5a1557e4833d
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.