Token Valentine Doge
Overview ERC20
Price
$0.00 @ 0.000000 ETH
Fully Diluted Market Cap
Total Supply:
1,000,000,000,000 $VDOGE
Holders:
77 addresses
Transfers:
-
Contract:
Decimals:
9
[ Download CSV Export ]
[ Download CSV Export ]
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
ValentineDoge
Compiler Version
v0.8.10+commit.fc410830
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-02-09 */ //Tg: https://t.me/Valentine_Doge_ERC //Twitter: https://twitter.com/Val_Doge_ERC //Website: https://valentinedoge.live/ /** ▄▄███▄▄·██╗ ██╗██████╗ ██████╗ ██████╗ ███████╗ ██╔════╝██║ ██║██╔══██╗██╔═══██╗██╔════╝ ██╔════╝ ███████╗██║ ██║██║ ██║██║ ██║██║ ███╗█████╗ ╚════██║╚██╗ ██╔╝██║ ██║██║ ██║██║ ██║██╔══╝ ███████║ ╚████╔╝ ██████╔╝╚██████╔╝╚██████╔╝███████╗ ╚═▀▀▀══╝ ╚═══╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚══════╝ */ pragma solidity ^0.8.10; pragma experimental ABIEncoderV2; // SPDX-License-Identifier:MIT 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 ); } // Dex Factory contract interface interface IDexFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } // Dex Router02 contract interface interface IDexRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return payable(msg.sender); } function _msgData() internal view virtual returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } contract Ownable is Context { address private _owner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { _owner = _msgSender(); emit OwnershipTransferred(address(0), _owner); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = payable(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require( newOwner != address(0), "Ownable: new owner is the zero address" ); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } contract ValentineDoge is Context, IERC20, Ownable { using SafeMath for uint256; mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) public isExcludedFromFee; mapping(address => bool) public isExcludedFromMaxTxn; mapping(address => bool) public isExcludedFromMaxHolding; mapping(address => bool) public isBot; string private _name = "Valentine Doge"; string private _symbol = "$VDOGE"; uint8 private _decimals = 9; uint256 private _totalSupply = 1 * 1e12 * 1e9; address private constant DEAD = address(0xdead); address private constant ZERO = address(0); IDexRouter public dexRouter; address public dexPair; address payable public marketWallet; address payable public devWallet; uint256 public minTokenToSwap = _totalSupply.div(1e5); // this amount will trigger swap and distribute uint256 public maxHoldLimit = _totalSupply.mul(2).div(100); // this is the max wallet holding limit uint256 public maxTxnLimit = _totalSupply.mul(2).div(100); // this is the max wallet holding limit uint256 public percentDivider = 1000; bool public distributeAndLiquifyStatus; // should be true to turn on to liquidate the pool bool public feesStatus; // enable by default bool public trading; // once enable can't be disable afterwards uint256 public launchedAt; // launch time uint256 public snipingTime = 60 seconds; // snipping time uint256 public marketFeeOnBuying = 20; // 2% will be added to the market address uint256 public devFeeOnBuying = 20; // 2% will be added to the development address uint256 public liquidityFeeOnBuying = 10; // 1% will be added to the liquidity uint256 public marketFeeOnSelling = 20; // 2% will be added to the market address uint256 public devFeeOnSelling = 20; // 2% will be added to the development address uint256 public liquidityFeeOnSelling = 10; // 1% will be added to the liquidity uint256 liquidityFeeCounter = 0; uint256 marketFeeCounter = 0; uint256 devFeeCounter = 0; event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiqudity ); constructor() { marketWallet = payable(0xB3c9c4c30BB1ceD91DD7E174F6aE071b8E87cF53); devWallet = payable(0xE88904c1c692755118f2e2b6C976f2d60b0180a6); IDexRouter _dexRouter = IDexRouter( 0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506 ); // Create a dex pair for this new ERC20 dexPair = IDexFactory(_dexRouter.factory()).createPair( address(this), _dexRouter.WETH() ); // set the rest of the contract variables dexRouter = _dexRouter; //exclude owner and this contract from fee isExcludedFromFee[owner()] = true; isExcludedFromFee[address(this)] = true; //exclude owner and this contract from txn limit isExcludedFromMaxTxn[owner()] = true; isExcludedFromMaxTxn[address(this)] = true; //exclude owner and this contract from max hold limit isExcludedFromMaxHolding[owner()] = true; isExcludedFromMaxHolding[address(this)] = true; isExcludedFromMaxHolding[dexPair] = true; isExcludedFromMaxHolding[address(dexRouter)] = true; isExcludedFromMaxHolding[marketWallet] = true; isExcludedFromMaxHolding[devWallet] = true; _balances[owner()] = _totalSupply; emit Transfer(address(0), owner(), _totalSupply); } //to receive ETH from dexRouter when swapping receive() external payable {} function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view returns (uint8) { return _decimals; } function totalSupply() public view override returns (uint256) { return _totalSupply; } 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 increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve( _msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue) ); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { _approve( _msgSender(), spender, _allowances[_msgSender()][spender].sub( subtractedValue, "ERC20: decreased allowance below zero" ) ); return true; } function includeOrExcludeFromFee(address account, bool value) external onlyOwner { isExcludedFromFee[account] = value; } function includeOrExcludeFromMaxHolding(address account, bool value) external onlyOwner { isExcludedFromMaxHolding[account] = value; } function includeOrExcludeFromMaxTxn(address account, bool value) external onlyOwner { isExcludedFromMaxTxn[account] = value; } function addOrRemoveBots(address[] memory accounts, bool value) external onlyOwner { for (uint256 i; i < accounts.length; i++) { isBot[accounts[i]] = value; } } function setMinTokenToSwap(uint256 _amount) external onlyOwner { minTokenToSwap = _amount; } function setMaxHoldLimit(uint256 _amount) external onlyOwner { require(_amount >= _totalSupply.div(percentDivider), "should be greater than 0.1%"); maxHoldLimit = _amount; } function setMaxTxnLimit(uint256 _amount) external onlyOwner { require(_amount >= _totalSupply.div(percentDivider), "should be greater than 0.1%"); maxTxnLimit = _amount; } function setBuyFeePercent( uint256 _marketFee, uint256 _devFee, uint256 _lpFee ) external onlyOwner { marketFeeOnBuying = _marketFee; devFeeOnBuying = _devFee; liquidityFeeOnBuying = _lpFee; require( _marketFee.add(_devFee).add(_lpFee) <= percentDivider.mul(25).div(100), "can't be more than 25%" ); } function setSellFeePercent( uint256 _marketFee, uint256 _devFee, uint256 _lpFee ) external onlyOwner { marketFeeOnSelling = _marketFee; devFeeOnSelling = _devFee; liquidityFeeOnSelling = _lpFee; require( _marketFee.add(_devFee).add(_lpFee) <= percentDivider.mul(25).div(100), "can't be more than 25%" ); } function setDistributionStatus(bool _value) public onlyOwner { distributeAndLiquifyStatus = _value; } function enableOrDisableFees(bool _value) external onlyOwner { feesStatus = _value; } function updateAddresses( address payable _marketWallet, address payable _devWallet ) external onlyOwner { marketWallet = _marketWallet; devWallet = _devWallet; } function removeStuckEth(address payable _account, uint256 _amount) external onlyOwner { _account.transfer(_amount); } function enableTrading() external onlyOwner { require(!trading, "already enabled"); launchedAt = block.timestamp; trading = true; feesStatus = true; distributeAndLiquifyStatus = true; } function totalBuyFeePerTx(uint256 amount) public view returns (uint256) { uint256 fee = amount .mul( marketFeeOnBuying.add(devFeeOnBuying).add(liquidityFeeOnBuying) ) .div(percentDivider); return fee; } function totalSellFeePerTx(uint256 amount) public view returns (uint256) { uint256 fee = amount .mul( marketFeeOnSelling.add(devFeeOnSelling).add( liquidityFeeOnSelling ) ) .div(percentDivider); return fee; } 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, "ERC20: Amount must be greater than zero"); require(!isBot[from], "ERC20: Bot detected"); if (!isExcludedFromMaxTxn[from] && !isExcludedFromMaxTxn[to]) { require(trading, "ERC20: trading not enable yet"); require(amount <= maxTxnLimit,"ERC20: max txn limit exceeds"); // anti snipper bot if ( block.timestamp < launchedAt + snipingTime && from != address(dexRouter) ) { if (dexPair == from) { isBot[to] = true; } else if (dexPair == to) { isBot[from] = true; } } } if (!isExcludedFromMaxHolding[to]) { require( balanceOf(to).add(amount) <= maxHoldLimit, "ERC20: max hold limit exceeds" ); } // swap and liquify distributeAndLiquify(from, to); //indicates if fee should be deducted from transfer bool takeFee = true; //if any account belongs to isExcludedFromFee account then remove the fee if (isExcludedFromFee[from] || isExcludedFromFee[to] || !feesStatus) { takeFee = false; } //transfer amount, it will take tax, burn, liquidity fee _tokenTransfer(from, to, amount, takeFee); } //this method is responsible for taking all fee, if takeFee is true function _tokenTransfer( address sender, address recipient, uint256 amount, bool takeFee ) private { if (sender == dexPair && takeFee) { uint256 allFee = totalBuyFeePerTx(amount); uint256 tTransferAmount = amount.sub(allFee); _balances[sender] = _balances[sender].sub(amount); _balances[recipient] = _balances[recipient].add(tTransferAmount); emit Transfer(sender, recipient, tTransferAmount); takeTokenFee(sender, allFee); setFeeCountersOnBuying(amount); } else if (recipient == dexPair && takeFee) { uint256 allFee = totalSellFeePerTx(amount); uint256 tTransferAmount = amount.sub(allFee); _balances[sender] = _balances[sender].sub(amount); _balances[recipient] = _balances[recipient].add(tTransferAmount); emit Transfer(sender, recipient, tTransferAmount); takeTokenFee(sender, allFee); setFeeCountersOnSelling(amount); } else { _balances[sender] = _balances[sender].sub(amount); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); } } function takeTokenFee(address sender, uint256 amount) private { _balances[address(this)] = _balances[address(this)].add(amount); emit Transfer(sender, address(this), amount); } function setFeeCountersOnBuying(uint256 amount) private { liquidityFeeCounter += amount.mul(liquidityFeeOnBuying).div( percentDivider ); marketFeeCounter += amount.mul(marketFeeOnBuying).div(percentDivider); devFeeCounter += amount.mul(devFeeOnBuying).div(percentDivider); } function setFeeCountersOnSelling(uint256 amount) private { liquidityFeeCounter += amount.mul(liquidityFeeOnSelling).div( percentDivider ); marketFeeCounter += amount.mul(marketFeeOnSelling).div(percentDivider); devFeeCounter += amount.mul(devFeeOnSelling).div(percentDivider); } function distributeAndLiquify(address from, address to) private { // is the token balance of this contract address over the min number of // tokens that we need to initiate a swap + liquidity lock? // also, don't get caught in a circular liquidity event. // also, don't swap & liquify if sender is Dex pair. uint256 contractTokenBalance = balanceOf(address(this)); bool shouldSell = contractTokenBalance >= minTokenToSwap; if ( shouldSell && from != dexPair && distributeAndLiquifyStatus && !(from == address(this) && to == address(dexPair)) // swap 1 time ) { // approve contract _approve(address(this), address(dexRouter), contractTokenBalance); uint256 halfLiquidity = liquidityFeeCounter.div(2); uint256 otherHalfLiquidity = liquidityFeeCounter.sub(halfLiquidity); uint256 tokenAmountToBeSwapped = contractTokenBalance.sub( otherHalfLiquidity ); // now is to lock into liquidty pool Utils.swapTokensForEth(address(dexRouter), tokenAmountToBeSwapped); uint256 deltaBalance = address(this).balance; uint256 ethToBeAddedToLiquidity = deltaBalance .mul(halfLiquidity) .div(tokenAmountToBeSwapped); // add liquidity to Dex if (ethToBeAddedToLiquidity > 0) { Utils.addLiquidity( address(dexRouter), owner(), otherHalfLiquidity, ethToBeAddedToLiquidity ); emit SwapAndLiquify( halfLiquidity, ethToBeAddedToLiquidity, otherHalfLiquidity ); } uint256 ethFormarket = deltaBalance.mul(marketFeeCounter).div( tokenAmountToBeSwapped ); uint256 ethForDev = address(this).balance.sub(ethToBeAddedToLiquidity).sub( ethFormarket ); // sending eth to market wallet if (ethFormarket > 0) marketWallet.transfer(ethFormarket); // sending eth to development wallet if (ethForDev > 0) devWallet.transfer(ethForDev); // Reset all fee counters liquidityFeeCounter = 0; marketFeeCounter = 0; devFeeCounter = 0; } } } // Library for doing a swap on Dex library Utils { using SafeMath for uint256; function swapTokensForEth(address routerAddress, uint256 tokenAmount) internal { IDexRouter dexRouter = IDexRouter(routerAddress); // generate the Dex pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = dexRouter.WETH(); // make the swap dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), block.timestamp + 300 ); } function addLiquidity( address routerAddress, address owner, uint256 tokenAmount, uint256 ethAmount ) internal { IDexRouter dexRouter = IDexRouter(routerAddress); // add the liquidity dexRouter.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable owner, block.timestamp + 300 ); } } 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) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 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; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } function mod( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"value","type":"bool"}],"name":"addOrRemoveBots","outputs":[],"stateMutability":"nonpayable","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":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devFeeOnBuying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"devFeeOnSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dexPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IDexRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"distributeAndLiquifyStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_value","type":"bool"}],"name":"enableOrDisableFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feesStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"includeOrExcludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"includeOrExcludeFromMaxHolding","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"includeOrExcludeFromMaxTxn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromMaxHolding","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromMaxTxn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFeeOnBuying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFeeOnSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketFeeOnBuying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketFeeOnSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxHoldLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxnLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minTokenToSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"percentDivider","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"_account","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"removeStuckEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"},{"internalType":"uint256","name":"_lpFee","type":"uint256"}],"name":"setBuyFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_value","type":"bool"}],"name":"setDistributionStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setMaxHoldLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setMaxTxnLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setMinTokenToSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"},{"internalType":"uint256","name":"_lpFee","type":"uint256"}],"name":"setSellFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"snipingTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"totalBuyFeePerTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"totalSellFeePerTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"trading","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_marketWallet","type":"address"},{"internalType":"address payable","name":"_devWallet","type":"address"}],"name":"updateAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526040518060400160405280600e81526020017f56616c656e74696e6520446f6765000000000000000000000000000000000000815250600790805190602001906200005192919062000b80565b506040518060400160405280600681526020017f2456444f47450000000000000000000000000000000000000000000000000000815250600890805190602001906200009f92919062000b80565b5060098060006101000a81548160ff021916908360ff160217905550683635c9adc5dea00000600a55620000e7620186a0600a5462000a1160201b620024991790919060201c565b600f556200012160646200010d6002600a5462000a6360201b620024e31790919060201c565b62000a1160201b620024991790919060201c565b6010556200015b6064620001476002600a5462000a6360201b620024e31790919060201c565b62000a1160201b620024991790919060201c565b6011556103e8601255603c60155560146016556014601755600a60185560146019556014601a55600a601b556000601c556000601d556000601e55348015620001a357600080fd5b50620001b462000ae760201b60201c565b6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a373b3c9c4c30bb1ced91dd7e174f6ae071b8e87cf53600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073e88904c1c692755118f2e2b6c976f2d60b0180a6600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000731b02da8cb0d097eb8d57a175b88c7d8b4799750690508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200037d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003a3919062000c9a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200040b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000431919062000c9a565b6040518363ffffffff1660e01b81526004016200045092919062000cdd565b6020604051808303816000875af115801562000470573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000496919062000c9a565b600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600360006200052d62000aef60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000620005ec62000aef60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000620006ab62000aef60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600a54600160006200095362000aef60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620009a162000aef60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600a5460405162000a02919062000d25565b60405180910390a35062000ffe565b600062000a5b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000b1860201b60201c565b905092915050565b60008083141562000a78576000905062000ae1565b6000828462000a88919062000d71565b905082848262000a99919062000e01565b1462000adc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000ad39062000ec0565b60405180910390fd5b809150505b92915050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000808311829062000b62576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b59919062000f75565b60405180910390fd5b506000838562000b73919062000e01565b9050809150509392505050565b82805462000b8e9062000fc8565b90600052602060002090601f01602090048101928262000bb2576000855562000bfe565b82601f1062000bcd57805160ff191683800117855562000bfe565b8280016001018555821562000bfe579182015b8281111562000bfd57825182559160200191906001019062000be0565b5b50905062000c0d919062000c11565b5090565b5b8082111562000c2c57600081600090555060010162000c12565b5090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000c628262000c35565b9050919050565b62000c748162000c55565b811462000c8057600080fd5b50565b60008151905062000c948162000c69565b92915050565b60006020828403121562000cb35762000cb262000c30565b5b600062000cc38482850162000c83565b91505092915050565b62000cd78162000c55565b82525050565b600060408201905062000cf4600083018562000ccc565b62000d03602083018462000ccc565b9392505050565b6000819050919050565b62000d1f8162000d0a565b82525050565b600060208201905062000d3c600083018462000d14565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000d7e8262000d0a565b915062000d8b8362000d0a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000dc75762000dc662000d42565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000e0e8262000d0a565b915062000e1b8362000d0a565b92508262000e2e5762000e2d62000dd2565b5b828204905092915050565b600082825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600062000ea860218362000e39565b915062000eb58262000e4a565b604082019050919050565b6000602082019050818103600083015262000edb8162000e99565b9050919050565b600081519050919050565b60005b8381101562000f0d57808201518184015260208101905062000ef0565b8381111562000f1d576000848401525b50505050565b6000601f19601f8301169050919050565b600062000f418262000ee2565b62000f4d818562000e39565b935062000f5f81856020860162000eed565b62000f6a8162000f23565b840191505092915050565b6000602082019050818103600083015262000f91818462000f34565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000fe157607f821691505b6020821081141562000ff85762000ff762000f99565b5b50919050565b615238806200100e6000396000f3fe60806040526004361061031e5760003560e01c80638da5cb5b116101ab578063c1d11037116100f7578063ed42142911610095578063f2fde38b1161006f578063f2fde38b14610bfb578063f4b3dbc314610c24578063fe6f1b0514610c61578063ffb14a3314610c8c57610325565b8063ed42142914610b6a578063f097ea1a14610ba7578063f242ab4114610bd057610325565b8063e4440a86116100d1578063e4440a8614610ac0578063e6c84dc614610aeb578063ea5b9e8514610b16578063ec44acf214610b3f57610325565b8063c1d1103714610a2f578063cb0b96c614610a58578063dd62ed3e14610a8357610325565b80639be5755f11610164578063a9059cbb1161013e578063a9059cbb14610975578063b0bc2a2d146109b2578063be19674b146109db578063bf56b37114610a0457610325565b80639be5755f146108e4578063a457c2d71461090f578063a7c29b401461094c57610325565b80638da5cb5b146107d25780638ea5220f146107fd57806395d89b411461082857806399b102b5146108535780639a36dfa1146108905780639b6a2750146108bb57610325565b8063395093511161026a578063715018a61161022357806384ea21bc116101fd57806384ea21bc1461072a5780638756aabd14610767578063879dd3c5146107905780638a8c523c146107bb57610325565b8063715018a6146106bd57806379777b4e146106d45780637d99c66d146106ff57610325565b806339509351146105735780633bbac579146105b0578063408edac5146105ed5780635342acb414610618578063681aa3621461065557806370a082311461068057610325565b806318160ddd116102d75780632d129390116102b15780632d129390146104cb578063313ce567146104f45780633326d7f21461051f57806336e5ec751461054a57610325565b806318160ddd146104385780631884f1e61461046357806323b872dd1461048e57610325565b806306fdde031461032a5780630758d92414610355578063095ea7b3146103805780630a2d140c146103bd57806310a60f02146103e6578063151cd1c21461040f57610325565b3661032557005b600080fd5b34801561033657600080fd5b5061033f610cb7565b60405161034c9190613e60565b60405180910390f35b34801561036157600080fd5b5061036a610d49565b6040516103779190613f01565b60405180910390f35b34801561038c57600080fd5b506103a760048036038101906103a29190613fa4565b610d6f565b6040516103b49190613fff565b60405180910390f35b3480156103c957600080fd5b506103e460048036038101906103df9190614046565b610d8d565b005b3480156103f257600080fd5b5061040d600480360381019061040891906141bb565b610e3f565b005b34801561041b57600080fd5b5061043660048036038101906104319190614217565b610f69565b005b34801561044457600080fd5b5061044d6110a7565b60405161045a9190614279565b60405180910390f35b34801561046f57600080fd5b506104786110b1565b6040516104859190614279565b60405180910390f35b34801561049a57600080fd5b506104b560048036038101906104b09190614294565b6110b7565b6040516104c29190613fff565b60405180910390f35b3480156104d757600080fd5b506104f260048036038101906104ed91906142e7565b611190565b005b34801561050057600080fd5b50610509611280565b6040516105169190614343565b60405180910390f35b34801561052b57600080fd5b50610534611297565b6040516105419190614279565b60405180910390f35b34801561055657600080fd5b50610571600480360381019061056c919061439c565b61129d565b005b34801561057f57600080fd5b5061059a60048036038101906105959190613fa4565b61137d565b6040516105a79190613fff565b60405180910390f35b3480156105bc57600080fd5b506105d760048036038101906105d291906143dc565b611430565b6040516105e49190613fff565b60405180910390f35b3480156105f957600080fd5b50610602611450565b60405161060f9190614279565b60405180910390f35b34801561062457600080fd5b5061063f600480360381019061063a91906143dc565b611456565b60405161064c9190613fff565b60405180910390f35b34801561066157600080fd5b5061066a611476565b6040516106779190614279565b60405180910390f35b34801561068c57600080fd5b506106a760048036038101906106a291906143dc565b61147c565b6040516106b49190614279565b60405180910390f35b3480156106c957600080fd5b506106d26114c5565b005b3480156106e057600080fd5b506106e9611618565b6040516106f69190613fff565b60405180910390f35b34801561070b57600080fd5b5061071461162b565b6040516107219190614279565b60405180910390f35b34801561073657600080fd5b50610751600480360381019061074c91906143dc565b611631565b60405161075e9190613fff565b60405180910390f35b34801561077357600080fd5b5061078e60048036038101906107899190614409565b611651565b005b34801561079c57600080fd5b506107a5611749565b6040516107b29190613fff565b60405180910390f35b3480156107c757600080fd5b506107d061175c565b005b3480156107de57600080fd5b506107e761189b565b6040516107f49190614445565b60405180910390f35b34801561080957600080fd5b506108126118c4565b60405161081f919061446f565b60405180910390f35b34801561083457600080fd5b5061083d6118ea565b60405161084a9190613e60565b60405180910390f35b34801561085f57600080fd5b5061087a600480360381019061087591906143dc565b61197c565b6040516108879190613fff565b60405180910390f35b34801561089c57600080fd5b506108a561199c565b6040516108b29190614279565b60405180910390f35b3480156108c757600080fd5b506108e260048036038101906108dd9190614409565b6119a2565b005b3480156108f057600080fd5b506108f9611a9a565b6040516109069190614279565b60405180910390f35b34801561091b57600080fd5b5061093660048036038101906109319190613fa4565b611aa0565b6040516109439190613fff565b60405180910390f35b34801561095857600080fd5b50610973600480360381019061096e91906142e7565b611b6d565b005b34801561098157600080fd5b5061099c60048036038101906109979190613fa4565b611c5d565b6040516109a99190613fff565b60405180910390f35b3480156109be57600080fd5b506109d960048036038101906109d49190614046565b611c7b565b005b3480156109e757600080fd5b50610a0260048036038101906109fd9190614217565b611d2d565b005b348015610a1057600080fd5b50610a19611e6b565b604051610a269190614279565b60405180910390f35b348015610a3b57600080fd5b50610a566004803603810190610a51919061448a565b611e71565b005b348015610a6457600080fd5b50610a6d611f8c565b604051610a7a9190614279565b60405180910390f35b348015610a8f57600080fd5b50610aaa6004803603810190610aa591906144ca565b611f92565b604051610ab79190614279565b60405180910390f35b348015610acc57600080fd5b50610ad5612019565b604051610ae2919061446f565b60405180910390f35b348015610af757600080fd5b50610b0061203f565b604051610b0d9190614279565b60405180910390f35b348015610b2257600080fd5b50610b3d6004803603810190610b3891906142e7565b612045565b005b348015610b4b57600080fd5b50610b54612135565b604051610b619190613fff565b60405180910390f35b348015610b7657600080fd5b50610b916004803603810190610b8c9190614409565b612148565b604051610b9e9190614279565b60405180910390f35b348015610bb357600080fd5b50610bce6004803603810190610bc99190614409565b6121a7565b005b348015610bdc57600080fd5b50610be5612246565b604051610bf29190614445565b60405180910390f35b348015610c0757600080fd5b50610c226004803603810190610c1d91906143dc565b61226c565b005b348015610c3057600080fd5b50610c4b6004803603810190610c469190614409565b61242e565b604051610c589190614279565b60405180910390f35b348015610c6d57600080fd5b50610c7661248d565b604051610c839190614279565b60405180910390f35b348015610c9857600080fd5b50610ca1612493565b604051610cae9190614279565b60405180910390f35b606060078054610cc690614539565b80601f0160208091040260200160405190810160405280929190818152602001828054610cf290614539565b8015610d3f5780601f10610d1457610100808354040283529160200191610d3f565b820191906000526020600020905b815481529060010190602001808311610d2257829003601f168201915b5050505050905090565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610d83610d7c61255e565b8484612566565b6001905092915050565b610d9561255e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e19906145b7565b60405180910390fd5b80601360006101000a81548160ff02191690831515021790555050565b610e4761255e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ed4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ecb906145b7565b60405180910390fd5b60005b8251811015610f64578160066000858481518110610ef857610ef76145d7565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610f5c90614635565b915050610ed7565b505050565b610f7161255e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ffe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff5906145b7565b60405180910390fd5b8260198190555081601a8190555080601b8190555061103c606461102e60196012546124e390919063ffffffff16565b61249990919063ffffffff16565b61106182611053858761273190919063ffffffff16565b61273190919063ffffffff16565b11156110a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611099906146ca565b60405180910390fd5b505050565b6000600a54905090565b600f5481565b60006110c484848461278f565b611185846110d061255e565b611180856040518060600160405280602881526020016151b660289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061113661255e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612de89092919063ffffffff16565b612566565b600190509392505050565b61119861255e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611225576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121c906145b7565b60405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600960009054906101000a900460ff16905090565b60185481565b6112a561255e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611332576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611329906145b7565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611378573d6000803e3d6000fd5b505050565b600061142661138a61255e565b84611421856002600061139b61255e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461273190919063ffffffff16565b612566565b6001905092915050565b60066020528060005260406000206000915054906101000a900460ff1681565b60195481565b60036020528060005260406000206000915054906101000a900460ff1681565b60115481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6114cd61255e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461155a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611551906145b7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b601360009054906101000a900460ff1681565b60155481565b60056020528060005260406000206000915054906101000a900460ff1681565b61165961255e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116dd906145b7565b60405180910390fd5b6116fd601254600a5461249990919063ffffffff16565b81101561173f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173690614736565b60405180910390fd5b8060108190555050565b601360019054906101000a900460ff1681565b61176461255e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e8906145b7565b60405180910390fd5b601360029054906101000a900460ff1615611841576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611838906147a2565b60405180910390fd5b426014819055506001601360026101000a81548160ff0219169083151502179055506001601360016101000a81548160ff0219169083151502179055506001601360006101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600880546118f990614539565b80601f016020809104026020016040519081016040528092919081815260200182805461192590614539565b80156119725780601f1061194757610100808354040283529160200191611972565b820191906000526020600020905b81548152906001019060200180831161195557829003601f168201915b5050505050905090565b60046020528060005260406000206000915054906101000a900460ff1681565b60105481565b6119aa61255e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2e906145b7565b60405180910390fd5b611a4e601254600a5461249990919063ffffffff16565b811015611a90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8790614736565b60405180910390fd5b8060118190555050565b601a5481565b6000611b63611aad61255e565b84611b5e856040518060600160405280602581526020016151de6025913960026000611ad761255e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612de89092919063ffffffff16565b612566565b6001905092915050565b611b7561255e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf9906145b7565b60405180910390fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000611c71611c6a61255e565b848461278f565b6001905092915050565b611c8361255e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d07906145b7565b60405180910390fd5b80601360016101000a81548160ff02191690831515021790555050565b611d3561255e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611dc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611db9906145b7565b60405180910390fd5b826016819055508160178190555080601881905550611e006064611df260196012546124e390919063ffffffff16565b61249990919063ffffffff16565b611e2582611e17858761273190919063ffffffff16565b61273190919063ffffffff16565b1115611e66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5d906146ca565b60405180910390fd5b505050565b60145481565b611e7961255e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611efd906145b7565b60405180910390fd5b81600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60175481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601b5481565b61204d61255e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146120da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120d1906145b7565b60405180910390fd5b80600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601360029054906101000a900460ff1681565b60008061219c60125461218e61217f60185461217160175460165461273190919063ffffffff16565b61273190919063ffffffff16565b866124e390919063ffffffff16565b61249990919063ffffffff16565b905080915050919050565b6121af61255e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461223c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612233906145b7565b60405180910390fd5b80600f8190555050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61227461255e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612301576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122f8906145b7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612371576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161236890614834565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080612482601254612474612465601b54612457601a5460195461273190919063ffffffff16565b61273190919063ffffffff16565b866124e390919063ffffffff16565b61249990919063ffffffff16565b905080915050919050565b60125481565b60165481565b60006124db83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612e4c565b905092915050565b6000808314156124f65760009050612558565b600082846125049190614854565b905082848261251391906148dd565b14612553576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161254a90614980565b60405180910390fd5b809150505b92915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156125d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125cd90614a12565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612646576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161263d90614aa4565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516127249190614279565b60405180910390a3505050565b60008082846127409190614ac4565b905083811015612785576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161277c90614b66565b60405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156127ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127f690614bf8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561286f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161286690614c8a565b60405180910390fd5b600081116128b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128a990614d1c565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561293f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161293690614d88565b60405180910390fd5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156129e35750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612c5257601360029054906101000a900460ff16612a37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a2e90614df4565b60405180910390fd5b601154811115612a7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a7390614e60565b60405180910390fd5b601554601454612a8c9190614ac4565b42108015612ae85750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15612c51578273ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415612ba0576001600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550612c50565b8173ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415612c4f576001600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b5b5b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612d0357601054612cc182612cb38561147c565b61273190919063ffffffff16565b1115612d02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cf990614ecc565b60405180910390fd5b5b612d0d8383612eaf565b600060019050600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612db45750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80612dcc5750601360019054906101000a900460ff16155b15612dd657600090505b612de28484848461327a565b50505050565b6000838311158290612e30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e279190613e60565b60405180910390fd5b5060008385612e3f9190614eec565b9050809150509392505050565b60008083118290612e93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e8a9190613e60565b60405180910390fd5b5060008385612ea291906148dd565b9050809150509392505050565b6000612eba3061147c565b90506000600f548210159050808015612f215750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015612f395750601360009054906101000a900460ff165b8015612fca57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015612fc85750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b155b1561327457612ffc30600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612566565b60006130146002601c5461249990919063ffffffff16565b9050600061302d82601c5461386990919063ffffffff16565b90506000613044828661386990919063ffffffff16565b9050613072600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16826138b3565b6000479050600061309e8361309087856124e390919063ffffffff16565b61249990919063ffffffff16565b9050600081111561311a576130de600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166130d761189b565b8684613a99565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb56185828660405161311193929190614f20565b60405180910390a15b600061314384613135601d54866124e390919063ffffffff16565b61249990919063ffffffff16565b9050600061316c8261315e854761386990919063ffffffff16565b61386990919063ffffffff16565b905060008211156131e157600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501580156131df573d6000803e3d6000fd5b505b600081111561325457600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015613252573d6000803e3d6000fd5b505b6000601c819055506000601d819055506000601e81905550505050505050505b50505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156132d45750805b156134a65760006132e483612148565b905060006132fb828561386990919063ffffffff16565b905061334f84600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461386990919063ffffffff16565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506133e481600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461273190919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516134849190614279565b60405180910390a36134968683613b3d565b61349f84613c3b565b5050613863565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156135005750805b156136d25760006135108361242e565b90506000613527828561386990919063ffffffff16565b905061357b84600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461386990919063ffffffff16565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061361081600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461273190919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516136b09190614279565b60405180910390a36136c28683613b3d565b6136cb84613d01565b5050613862565b61372482600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461386990919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506137b982600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461273190919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516138599190614279565b60405180910390a35b5b50505050565b60006138ab83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612de8565b905092915050565b60008290506000600267ffffffffffffffff8111156138d5576138d4614078565b5b6040519080825280602002602001820160405280156139035781602001602082028036833780820191505090505b509050308160008151811061391b5761391a6145d7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508173ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156139a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139c49190614f6c565b816001815181106139d8576139d76145d7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508173ffffffffffffffffffffffffffffffffffffffff1663791ac947846000843061012c42613a419190614ac4565b6040518663ffffffff1660e01b8152600401613a61959493929190615092565b600060405180830381600087803b158015613a7b57600080fd5b505af1158015613a8f573d6000803e3d6000fd5b5050505050505050565b60008490508073ffffffffffffffffffffffffffffffffffffffff1663f305d7198330866000808a61012c42613acf9190614ac4565b6040518863ffffffff1660e01b8152600401613af0969594939291906150ec565b60606040518083038185885af1158015613b0e573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190613b339190615162565b5050505050505050565b613b8f81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461273190919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613c2f9190614279565b60405180910390a35050565b613c64601254613c56601854846124e390919063ffffffff16565b61249990919063ffffffff16565b601c6000828254613c759190614ac4565b92505081905550613ca5601254613c97601654846124e390919063ffffffff16565b61249990919063ffffffff16565b601d6000828254613cb69190614ac4565b92505081905550613ce6601254613cd8601754846124e390919063ffffffff16565b61249990919063ffffffff16565b601e6000828254613cf79190614ac4565b9250508190555050565b613d2a601254613d1c601b54846124e390919063ffffffff16565b61249990919063ffffffff16565b601c6000828254613d3b9190614ac4565b92505081905550613d6b601254613d5d601954846124e390919063ffffffff16565b61249990919063ffffffff16565b601d6000828254613d7c9190614ac4565b92505081905550613dac601254613d9e601a54846124e390919063ffffffff16565b61249990919063ffffffff16565b601e6000828254613dbd9190614ac4565b9250508190555050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613e01578082015181840152602081019050613de6565b83811115613e10576000848401525b50505050565b6000601f19601f8301169050919050565b6000613e3282613dc7565b613e3c8185613dd2565b9350613e4c818560208601613de3565b613e5581613e16565b840191505092915050565b60006020820190508181036000830152613e7a8184613e27565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000613ec7613ec2613ebd84613e82565b613ea2565b613e82565b9050919050565b6000613ed982613eac565b9050919050565b6000613eeb82613ece565b9050919050565b613efb81613ee0565b82525050565b6000602082019050613f166000830184613ef2565b92915050565b6000604051905090565b600080fd5b600080fd5b6000613f3b82613e82565b9050919050565b613f4b81613f30565b8114613f5657600080fd5b50565b600081359050613f6881613f42565b92915050565b6000819050919050565b613f8181613f6e565b8114613f8c57600080fd5b50565b600081359050613f9e81613f78565b92915050565b60008060408385031215613fbb57613fba613f26565b5b6000613fc985828601613f59565b9250506020613fda85828601613f8f565b9150509250929050565b60008115159050919050565b613ff981613fe4565b82525050565b60006020820190506140146000830184613ff0565b92915050565b61402381613fe4565b811461402e57600080fd5b50565b6000813590506140408161401a565b92915050565b60006020828403121561405c5761405b613f26565b5b600061406a84828501614031565b91505092915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6140b082613e16565b810181811067ffffffffffffffff821117156140cf576140ce614078565b5b80604052505050565b60006140e2613f1c565b90506140ee82826140a7565b919050565b600067ffffffffffffffff82111561410e5761410d614078565b5b602082029050602081019050919050565b600080fd5b6000614137614132846140f3565b6140d8565b9050808382526020820190506020840283018581111561415a5761415961411f565b5b835b81811015614183578061416f8882613f59565b84526020840193505060208101905061415c565b5050509392505050565b600082601f8301126141a2576141a1614073565b5b81356141b2848260208601614124565b91505092915050565b600080604083850312156141d2576141d1613f26565b5b600083013567ffffffffffffffff8111156141f0576141ef613f2b565b5b6141fc8582860161418d565b925050602061420d85828601614031565b9150509250929050565b6000806000606084860312156142305761422f613f26565b5b600061423e86828701613f8f565b935050602061424f86828701613f8f565b925050604061426086828701613f8f565b9150509250925092565b61427381613f6e565b82525050565b600060208201905061428e600083018461426a565b92915050565b6000806000606084860312156142ad576142ac613f26565b5b60006142bb86828701613f59565b93505060206142cc86828701613f59565b92505060406142dd86828701613f8f565b9150509250925092565b600080604083850312156142fe576142fd613f26565b5b600061430c85828601613f59565b925050602061431d85828601614031565b9150509250929050565b600060ff82169050919050565b61433d81614327565b82525050565b60006020820190506143586000830184614334565b92915050565b600061436982613e82565b9050919050565b6143798161435e565b811461438457600080fd5b50565b60008135905061439681614370565b92915050565b600080604083850312156143b3576143b2613f26565b5b60006143c185828601614387565b92505060206143d285828601613f8f565b9150509250929050565b6000602082840312156143f2576143f1613f26565b5b600061440084828501613f59565b91505092915050565b60006020828403121561441f5761441e613f26565b5b600061442d84828501613f8f565b91505092915050565b61443f81613f30565b82525050565b600060208201905061445a6000830184614436565b92915050565b6144698161435e565b82525050565b60006020820190506144846000830184614460565b92915050565b600080604083850312156144a1576144a0613f26565b5b60006144af85828601614387565b92505060206144c085828601614387565b9150509250929050565b600080604083850312156144e1576144e0613f26565b5b60006144ef85828601613f59565b925050602061450085828601613f59565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061455157607f821691505b602082108114156145655761456461450a565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006145a1602083613dd2565b91506145ac8261456b565b602082019050919050565b600060208201905081810360008301526145d081614594565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061464082613f6e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561467357614672614606565b5b600182019050919050565b7f63616e2774206265206d6f7265207468616e2032352500000000000000000000600082015250565b60006146b4601683613dd2565b91506146bf8261467e565b602082019050919050565b600060208201905081810360008301526146e3816146a7565b9050919050565b7f73686f756c642062652067726561746572207468616e20302e31250000000000600082015250565b6000614720601b83613dd2565b915061472b826146ea565b602082019050919050565b6000602082019050818103600083015261474f81614713565b9050919050565b7f616c726561647920656e61626c65640000000000000000000000000000000000600082015250565b600061478c600f83613dd2565b915061479782614756565b602082019050919050565b600060208201905081810360008301526147bb8161477f565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061481e602683613dd2565b9150614829826147c2565b604082019050919050565b6000602082019050818103600083015261484d81614811565b9050919050565b600061485f82613f6e565b915061486a83613f6e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156148a3576148a2614606565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006148e882613f6e565b91506148f383613f6e565b925082614903576149026148ae565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061496a602183613dd2565b91506149758261490e565b604082019050919050565b600060208201905081810360008301526149998161495d565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006149fc602483613dd2565b9150614a07826149a0565b604082019050919050565b60006020820190508181036000830152614a2b816149ef565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000614a8e602283613dd2565b9150614a9982614a32565b604082019050919050565b60006020820190508181036000830152614abd81614a81565b9050919050565b6000614acf82613f6e565b9150614ada83613f6e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614b0f57614b0e614606565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614b50601b83613dd2565b9150614b5b82614b1a565b602082019050919050565b60006020820190508181036000830152614b7f81614b43565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614be2602583613dd2565b9150614bed82614b86565b604082019050919050565b60006020820190508181036000830152614c1181614bd5565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614c74602383613dd2565b9150614c7f82614c18565b604082019050919050565b60006020820190508181036000830152614ca381614c67565b9050919050565b7f45524332303a20416d6f756e74206d757374206265206772656174657220746860008201527f616e207a65726f00000000000000000000000000000000000000000000000000602082015250565b6000614d06602783613dd2565b9150614d1182614caa565b604082019050919050565b60006020820190508181036000830152614d3581614cf9565b9050919050565b7f45524332303a20426f7420646574656374656400000000000000000000000000600082015250565b6000614d72601383613dd2565b9150614d7d82614d3c565b602082019050919050565b60006020820190508181036000830152614da181614d65565b9050919050565b7f45524332303a2074726164696e67206e6f7420656e61626c6520796574000000600082015250565b6000614dde601d83613dd2565b9150614de982614da8565b602082019050919050565b60006020820190508181036000830152614e0d81614dd1565b9050919050565b7f45524332303a206d61782074786e206c696d6974206578636565647300000000600082015250565b6000614e4a601c83613dd2565b9150614e5582614e14565b602082019050919050565b60006020820190508181036000830152614e7981614e3d565b9050919050565b7f45524332303a206d617820686f6c64206c696d69742065786365656473000000600082015250565b6000614eb6601d83613dd2565b9150614ec182614e80565b602082019050919050565b60006020820190508181036000830152614ee581614ea9565b9050919050565b6000614ef782613f6e565b9150614f0283613f6e565b925082821015614f1557614f14614606565b5b828203905092915050565b6000606082019050614f35600083018661426a565b614f42602083018561426a565b614f4f604083018461426a565b949350505050565b600081519050614f6681613f42565b92915050565b600060208284031215614f8257614f81613f26565b5b6000614f9084828501614f57565b91505092915050565b6000819050919050565b6000614fbe614fb9614fb484614f99565b613ea2565b613f6e565b9050919050565b614fce81614fa3565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61500981613f30565b82525050565b600061501b8383615000565b60208301905092915050565b6000602082019050919050565b600061503f82614fd4565b6150498185614fdf565b935061505483614ff0565b8060005b8381101561508557815161506c888261500f565b975061507783615027565b925050600181019050615058565b5085935050505092915050565b600060a0820190506150a7600083018861426a565b6150b46020830187614fc5565b81810360408301526150c68186615034565b90506150d56060830185614436565b6150e2608083018461426a565b9695505050505050565b600060c0820190506151016000830189614436565b61510e602083018861426a565b61511b6040830187614fc5565b6151286060830186614fc5565b6151356080830185614436565b61514260a083018461426a565b979650505050505050565b60008151905061515c81613f78565b92915050565b60008060006060848603121561517b5761517a613f26565b5b60006151898682870161514d565b935050602061519a8682870161514d565b92505060406151ab8682870161514d565b915050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220ed65ec082b7b6d6acb29fcec12d79b9d7803649ee1858b726b263d955c5377a464736f6c634300080a0033
Deployed ByteCode Sourcemap
4244:16554:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8026:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4964:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8937:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12408:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10823:219;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11987:413;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8303:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5110:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9138:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10473:171;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8212:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5974:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12854:154;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9592:300;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4641:37;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6060:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4463:49;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5323:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8411:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3791:157;;;;;;;;;;;;;:::i;:::-;;5472:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5734:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4578:56;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11164:196;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5568:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13016:235;;;;;;;;;;;;;:::i;:::-;;3577:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5069:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8117:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4519:52;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5218:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11368:194;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6147:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9900:400;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10652:163;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8538:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12531:99;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11570:409;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5687:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12638:208;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5886:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8745:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5027:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6236:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10308:157;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5618:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13259:281;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11050:106;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4998:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3956:281;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13548:325;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5427:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5800:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8026:83;8063:13;8096:5;8089:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8026:83;:::o;4964:27::-;;;;;;;;;;;;;:::o;8937:193::-;9039:4;9061:39;9070:12;:10;:12::i;:::-;9084:7;9093:6;9061:8;:39::i;:::-;9118:4;9111:11;;8937:193;;;;:::o;12408:115::-;3714:12;:10;:12::i;:::-;3704:22;;:6;;;;;;;;;;:22;;;3696:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12509:6:::1;12480:26;;:35;;;;;;;;;;;;;;;;;;12408:115:::0;:::o;10823:219::-;3714:12;:10;:12::i;:::-;3704:22;;:6;;;;;;;;;;:22;;;3696:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10945:9:::1;10940:95;10960:8;:15;10956:1;:19;10940:95;;;11018:5;10997;:18;11003:8;11012:1;11003:11;;;;;;;;:::i;:::-;;;;;;;;10997:18;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;10977:3;;;;;:::i;:::-;;;;10940:95;;;;10823:219:::0;;:::o;11987:413::-;3714:12;:10;:12::i;:::-;3704:22;;:6;;;;;;;;;;:22;;;3696:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12152:10:::1;12131:18;:31;;;;12191:7;12173:15;:25;;;;12233:6;12209:21;:30;;;;12311:31;12338:3;12311:22;12330:2;12311:14;;:18;;:22;;;;:::i;:::-;:26;;:31;;;;:::i;:::-;12272:35;12300:6;12272:23;12287:7;12272:10;:14;;:23;;;;:::i;:::-;:27;;:35;;;;:::i;:::-;:70;;12250:142;;;;;;;;;;;;:::i;:::-;;;;;;;;;11987:413:::0;;;:::o;8303:100::-;8356:7;8383:12;;8376:19;;8303:100;:::o;5110:53::-;;;;:::o;9138:446::-;9270:4;9287:36;9297:6;9305:9;9316:6;9287:9;:36::i;:::-;9334:220;9357:6;9378:12;:10;:12::i;:::-;9405:138;9461:6;9405:138;;;;;;;;;;;;;;;;;:11;:19;9417:6;9405:19;;;;;;;;;;;;;;;:33;9425:12;:10;:12::i;:::-;9405:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;9334:8;:220::i;:::-;9572:4;9565:11;;9138:446;;;;;:::o;10473:171::-;3714:12;:10;:12::i;:::-;3704:22;;:6;;;;;;;;;;:22;;;3696:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10631:5:::1;10595:24;:33;10620:7;10595:33;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;10473:171:::0;;:::o;8212:83::-;8253:5;8278:9;;;;;;;;;;;8271:16;;8212:83;:::o;5974:40::-;;;;:::o;12854:154::-;3714:12;:10;:12::i;:::-;3704:22;;:6;;;;;;;;;;:22;;;3696:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12974:8:::1;:17;;:26;12992:7;12974:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;12854:154:::0;;:::o;9592:300::-;9707:4;9729:133;9752:12;:10;:12::i;:::-;9779:7;9801:50;9840:10;9801:11;:25;9813:12;:10;:12::i;:::-;9801:25;;;;;;;;;;;;;;;:34;9827:7;9801:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;9729:8;:133::i;:::-;9880:4;9873:11;;9592:300;;;;:::o;4641:37::-;;;;;;;;;;;;;;;;;;;;;;:::o;6060:38::-;;;;:::o;4463:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;5323:57::-;;;;:::o;8411:119::-;8477:7;8504:9;:18;8514:7;8504:18;;;;;;;;;;;;;;;;8497:25;;8411:119;;;:::o;3791:157::-;3714:12;:10;:12::i;:::-;3704:22;;:6;;;;;;;;;;:22;;;3696:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3898:1:::1;3861:40;;3882:6;::::0;::::1;;;;;;;;3861:40;;;;;;;;;;;;3937:1;3912:6:::0;::::1;:28;;;;;;;;;;;;;;;;;;3791:157::o:0;5472:38::-;;;;;;;;;;;;;:::o;5734:39::-;;;;:::o;4578:56::-;;;;;;;;;;;;;;;;;;;;;;:::o;11164:196::-;3714:12;:10;:12::i;:::-;3704:22;;:6;;;;;;;;;;:22;;;3696:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11255:32:::1;11272:14;;11255:12;;:16;;:32;;;;:::i;:::-;11244:7;:43;;11236:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;11345:7;11330:12;:22;;;;11164:196:::0;:::o;5568:22::-;;;;;;;;;;;;;:::o;13016:235::-;3714:12;:10;:12::i;:::-;3704:22;;:6;;;;;;;;;;:22;;;3696:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13080:7:::1;;;;;;;;;;;13079:8;13071:36;;;;;;;;;;;;:::i;:::-;;;;;;;;;13131:15;13118:10;:28;;;;13167:4;13157:7;;:14;;;;;;;;;;;;;;;;;;13195:4;13182:10;;:17;;;;;;;;;;;;;;;;;;13239:4;13210:26;;:33;;;;;;;;;;;;;;;;;;13016:235::o:0;3577:79::-;3615:7;3642:6;;;;;;;;;;;3635:13;;3577:79;:::o;5069:32::-;;;;;;;;;;;;;:::o;8117:87::-;8156:13;8189:7;8182:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8117:87;:::o;4519:52::-;;;;;;;;;;;;;;;;;;;;;;:::o;5218:58::-;;;;:::o;11368:194::-;3714:12;:10;:12::i;:::-;3704:22;;:6;;;;;;;;;;:22;;;3696:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11458:32:::1;11475:14;;11458:12;;:16;;:32;;;;:::i;:::-;11447:7;:43;;11439:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;11547:7;11533:11;:21;;;;11368:194:::0;:::o;6147:35::-;;;;:::o;9900:400::-;10020:4;10042:228;10065:12;:10;:12::i;:::-;10092:7;10114:145;10171:15;10114:145;;;;;;;;;;;;;;;;;:11;:25;10126:12;:10;:12::i;:::-;10114:25;;;;;;;;;;;;;;;:34;10140:7;10114:34;;;;;;;;;;;;;;;;:38;;:145;;;;;:::i;:::-;10042:8;:228::i;:::-;10288:4;10281:11;;9900:400;;;;:::o;10652:163::-;3714:12;:10;:12::i;:::-;3704:22;;:6;;;;;;;;;;:22;;;3696:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10802:5:::1;10770:20;:29;10791:7;10770:29;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;10652:163:::0;;:::o;8538:199::-;8643:4;8665:42;8675:12;:10;:12::i;:::-;8689:9;8700:6;8665:9;:42::i;:::-;8725:4;8718:11;;8538:199;;;;:::o;12531:99::-;3714:12;:10;:12::i;:::-;3704:22;;:6;;;;;;;;;;:22;;;3696:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12616:6:::1;12603:10;;:19;;;;;;;;;;;;;;;;;;12531:99:::0;:::o;11570:409::-;3714:12;:10;:12::i;:::-;3704:22;;:6;;;;;;;;;;:22;;;3696:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11733:10:::1;11713:17;:30;;;;11771:7;11754:14;:24;;;;11812:6;11789:20;:29;;;;11890:31;11917:3;11890:22;11909:2;11890:14;;:18;;:22;;;;:::i;:::-;:26;;:31;;;;:::i;:::-;11851:35;11879:6;11851:23;11866:7;11851:10;:14;;:23;;;;:::i;:::-;:27;;:35;;;;:::i;:::-;:70;;11829:142;;;;;;;;;;;;:::i;:::-;;;;;;;;;11570:409:::0;;;:::o;5687:25::-;;;;:::o;12638:208::-;3714:12;:10;:12::i;:::-;3704:22;;:6;;;;;;;;;;:22;;;3696:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12792:13:::1;12777:12;;:28;;;;;;;;;;;;;;;;;;12828:10;12816:9;;:22;;;;;;;;;;;;;;;;;;12638:208:::0;;:::o;5886:34::-;;;;:::o;8745:184::-;8862:7;8894:11;:18;8906:5;8894:18;;;;;;;;;;;;;;;:27;8913:7;8894:27;;;;;;;;;;;;;;;;8887:34;;8745:184;;;;:::o;5027:35::-;;;;;;;;;;;;;:::o;6236:41::-;;;;:::o;10308:157::-;3714:12;:10;:12::i;:::-;3704:22;;:6;;;;;;;;;;:22;;;3696:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10452:5:::1;10423:17;:26;10441:7;10423:26;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;10308:157:::0;;:::o;5618:19::-;;;;;;;;;;;;;:::o;13259:281::-;13322:7;13342:11;13356:155;13496:14;;13356:121;13399:63;13441:20;;13399:37;13421:14;;13399:17;;:21;;:37;;;;:::i;:::-;:41;;:63;;;;:::i;:::-;13356:6;:24;;:121;;;;:::i;:::-;:139;;:155;;;;:::i;:::-;13342:169;;13529:3;13522:10;;;13259:281;;;:::o;11050:106::-;3714:12;:10;:12::i;:::-;3704:22;;:6;;;;;;;;;;:22;;;3696:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11141:7:::1;11124:14;:24;;;;11050:106:::0;:::o;4998:22::-;;;;;;;;;;;;;:::o;3956:281::-;3714:12;:10;:12::i;:::-;3704:22;;:6;;;;;;;;;;:22;;;3696:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4079:1:::1;4059:22;;:8;:22;;;;4037:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;4192:8;4163:38;;4184:6;::::0;::::1;;;;;;;;4163:38;;;;;;;;;;;;4221:8;4212:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;3956:281:::0;:::o;13548:325::-;13612:7;13632:11;13646:198;13829:14;;13646:164;13689:106;13755:21;;13689:39;13712:15;;13689:18;;:22;;:39;;;;:::i;:::-;:43;;:106;;;;:::i;:::-;13646:6;:24;;:164;;;;:::i;:::-;:182;;:198;;;;:::i;:::-;13632:212;;13862:3;13855:10;;;13548:325;;;:::o;5427:36::-;;;;:::o;5800:37::-;;;;:::o;23094:132::-;23152:7;23179:39;23183:1;23186;23179:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;23172:46;;23094:132;;;;:::o;22615:471::-;22673:7;22923:1;22918;:6;22914:47;;;22948:1;22941:8;;;;22914:47;22973:9;22989:1;22985;:5;;;;:::i;:::-;22973:17;;23018:1;23013;23009;:5;;;;:::i;:::-;:10;23001:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;23077:1;23070:8;;;22615:471;;;;;:::o;2913:115::-;2966:15;3009:10;2994:26;;2913:115;:::o;13881:371::-;14025:1;14008:19;;:5;:19;;;;14000:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14106:1;14087:21;;:7;:21;;;;14079:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14190:6;14160:11;:18;14172:5;14160:18;;;;;;;;;;;;;;;:27;14179:7;14160:27;;;;;;;;;;;;;;;:36;;;;14228:7;14212:32;;14221:5;14212:32;;;14237:6;14212:32;;;;;;:::i;:::-;;;;;;;;13881:371;;;:::o;22048:181::-;22106:7;22126:9;22142:1;22138;:5;;;;:::i;:::-;22126:17;;22167:1;22162;:6;;22154:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;22220:1;22213:8;;;22048:181;;;;:::o;14260:1688::-;14398:1;14382:18;;:4;:18;;;;14374:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14475:1;14461:16;;:2;:16;;;;14453:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;14545:1;14536:6;:10;14528:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;14610:5;:11;14616:4;14610:11;;;;;;;;;;;;;;;;;;;;;;;;;14609:12;14601:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;14661:20;:26;14682:4;14661:26;;;;;;;;;;;;;;;;;;;;;;;;;14660:27;:56;;;;;14692:20;:24;14713:2;14692:24;;;;;;;;;;;;;;;;;;;;;;;;;14691:25;14660:56;14656:588;;;14741:7;;;;;;;;;;;14733:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;14815:11;;14805:6;:21;;14797:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;14959:11;;14946:10;;:24;;;;:::i;:::-;14928:15;:42;:89;;;;;15007:9;;;;;;;;;;;14991:26;;:4;:26;;;;14928:89;14906:327;;;15067:4;15056:15;;:7;;;;;;;;;;;:15;;;15052:166;;;15108:4;15096:5;:9;15102:2;15096:9;;;;;;;;;;;;;;;;:16;;;;;;;;;;;;;;;;;;15052:166;;;15153:2;15142:13;;:7;;;;;;;;;;;:13;;;15138:80;;;15194:4;15180:5;:11;15186:4;15180:11;;;;;;;;;;;;;;;;:18;;;;;;;;;;;;;;;;;;15138:80;15052:166;14906:327;14656:588;15261:24;:28;15286:2;15261:28;;;;;;;;;;;;;;;;;;;;;;;;;15256:194;;15361:12;;15332:25;15350:6;15332:13;15342:2;15332:9;:13::i;:::-;:17;;:25;;;;:::i;:::-;:41;;15306:132;;;;;;;;;;;;:::i;:::-;;;;;;;;;15256:194;15491:30;15512:4;15518:2;15491:20;:30::i;:::-;15595:12;15610:4;15595:19;;15714:17;:23;15732:4;15714:23;;;;;;;;;;;;;;;;;;;;;;;;;:48;;;;15741:17;:21;15759:2;15741:21;;;;;;;;;;;;;;;;;;;;;;;;;15714:48;:63;;;;15767:10;;;;;;;;;;;15766:11;15714:63;15710:111;;;15804:5;15794:15;;15710:111;15899:41;15914:4;15920:2;15924:6;15932:7;15899:14;:41::i;:::-;14363:1585;14260:1688;;;:::o;22381:226::-;22501:7;22534:1;22529;:6;;22537:12;22521:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;22561:9;22577:1;22573;:5;;;;:::i;:::-;22561:17;;22598:1;22591:8;;;22381:226;;;;;:::o;23234:312::-;23354:7;23386:1;23382;:5;23389:12;23374:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;23413:9;23429:1;23425;:5;;;;:::i;:::-;23413:17;;23537:1;23530:8;;;23234:312;;;;;:::o;18216:2579::-;18569:28;18600:24;18618:4;18600:9;:24::i;:::-;18569:55;;18637:15;18679:14;;18655:20;:38;;18637:56;;18724:10;:42;;;;;18759:7;;;;;;;;;;;18751:15;;:4;:15;;;;18724:42;:85;;;;;18783:26;;;;;;;;;;;18724:85;:152;;;;;18844:4;18828:21;;:4;:21;;;:47;;;;;18867:7;;;;;;;;;;;18853:22;;:2;:22;;;18828:47;18826:50;18724:152;18706:2082;;;18951:65;18968:4;18983:9;;;;;;;;;;;18995:20;18951:8;:65::i;:::-;19033:21;19057:26;19081:1;19057:19;;:23;;:26;;;;:::i;:::-;19033:50;;19098:26;19127:38;19151:13;19127:19;;:23;;:38;;;;:::i;:::-;19098:67;;19182:30;19215:76;19258:18;19215:20;:24;;:76;;;;:::i;:::-;19182:109;;19358:66;19389:9;;;;;;;;;;;19401:22;19358;:66::i;:::-;19441:20;19464:21;19441:44;;19500:31;19534:95;19606:22;19534:49;19569:13;19534:12;:34;;:49;;;;:::i;:::-;:71;;:95;;;;:::i;:::-;19500:129;;19713:1;19687:23;:27;19683:445;;;19735:195;19784:9;;;;;;;;;;;19817:7;:5;:7::i;:::-;19847:18;19888:23;19735:18;:195::i;:::-;19956:156;19993:13;20029:23;20075:18;19956:156;;;;;;;;:::i;:::-;;;;;;;;19683:445;20144:20;20167:94;20224:22;20167:34;20184:16;;20167:12;:16;;:34;;;;:::i;:::-;:38;;:94;;;;:::i;:::-;20144:117;;20276:17;20296:100;20369:12;20296:50;20322:23;20296:21;:25;;:50;;;;:::i;:::-;:54;;:100;;;;:::i;:::-;20276:120;;20477:1;20462:12;:16;20458:57;;;20480:12;;;;;;;;;;;:21;;:35;20502:12;20480:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20458:57;20598:1;20586:9;:13;20582:48;;;20601:9;;;;;;;;;;;:18;;:29;20620:9;20601:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20582:48;20708:1;20686:19;:23;;;;20743:1;20724:16;:20;;;;20775:1;20759:13;:17;;;;18903:1885;;;;;;;18706:2082;18280:2515;;18216:2579;;:::o;16029:1294::-;16194:7;;;;;;;;;;;16184:17;;:6;:17;;;:28;;;;;16205:7;16184:28;16180:1136;;;16229:14;16246:24;16263:6;16246:16;:24::i;:::-;16229:41;;16285:23;16311:18;16322:6;16311;:10;;:18;;;;:::i;:::-;16285:44;;16364:29;16386:6;16364:9;:17;16374:6;16364:17;;;;;;;;;;;;;;;;:21;;:29;;;;:::i;:::-;16344:9;:17;16354:6;16344:17;;;;;;;;;;;;;;;:49;;;;16431:41;16456:15;16431:9;:20;16441:9;16431:20;;;;;;;;;;;;;;;;:24;;:41;;;;:::i;:::-;16408:9;:20;16418:9;16408:20;;;;;;;;;;;;;;;:64;;;;16511:9;16494:44;;16503:6;16494:44;;;16522:15;16494:44;;;;;;:::i;:::-;;;;;;;;16553:28;16566:6;16574;16553:12;:28::i;:::-;16596:30;16619:6;16596:22;:30::i;:::-;16214:424;;16180:1136;;;16661:7;;;;;;;;;;;16648:20;;:9;:20;;;:31;;;;;16672:7;16648:31;16644:672;;;16696:14;16713:25;16731:6;16713:17;:25::i;:::-;16696:42;;16753:23;16779:18;16790:6;16779;:10;;:18;;;;:::i;:::-;16753:44;;16832:29;16854:6;16832:9;:17;16842:6;16832:17;;;;;;;;;;;;;;;;:21;;:29;;;;:::i;:::-;16812:9;:17;16822:6;16812:17;;;;;;;;;;;;;;;:49;;;;16899:41;16924:15;16899:9;:20;16909:9;16899:20;;;;;;;;;;;;;;;;:24;;:41;;;;:::i;:::-;16876:9;:20;16886:9;16876:20;;;;;;;;;;;;;;;:64;;;;16979:9;16962:44;;16971:6;16962:44;;;16990:15;16962:44;;;;;;:::i;:::-;;;;;;;;17021:28;17034:6;17042;17021:12;:28::i;:::-;17064:31;17088:6;17064:23;:31::i;:::-;16681:426;;16644:672;;;17148:29;17170:6;17148:9;:17;17158:6;17148:17;;;;;;;;;;;;;;;;:21;;:29;;;;:::i;:::-;17128:9;:17;17138:6;17128:17;;;;;;;;;;;;;;;:49;;;;17215:32;17240:6;17215:9;:20;17225:9;17215:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;17192:9;:20;17202:9;17192:20;;;;;;;;;;;;;;;:55;;;;17286:9;17269:35;;17278:6;17269:35;;;17297:6;17269:35;;;;;;:::i;:::-;;;;;;;;16644:672;16180:1136;16029:1294;;;;:::o;22237:136::-;22295:7;22322:43;22326:1;22329;22322:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;22315:50;;22237:136;;;;:::o;20894:603::-;20998:20;21032:13;20998:48;;21115:21;21153:1;21139:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21115:40;;21184:4;21166;21171:1;21166:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;21210:9;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21200:4;21205:1;21200:7;;;;;;;;:::i;:::-;;;;;;;:26;;;;;;;;;;;21265:9;:60;;;21340:11;21366:1;21410:4;21437;21475:3;21457:15;:21;;;;:::i;:::-;21265:224;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20987:510;;20894:603;;:::o;21505:512::-;21668:20;21702:13;21668:48;;21759:9;:25;;;21792:9;21825:4;21845:11;21871:1;21914;21957:5;21995:3;21977:15;:21;;;;:::i;:::-;21759:250;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;21657:360;21505:512;;;;:::o;17331:201::-;17431:36;17460:6;17431:9;:24;17449:4;17431:24;;;;;;;;;;;;;;;;:28;;:36;;;;:::i;:::-;17404:9;:24;17422:4;17404:24;;;;;;;;;;;;;;;:63;;;;17510:4;17485:39;;17494:6;17485:39;;;17517:6;17485:39;;;;;;:::i;:::-;;;;;;;;17331:201;;:::o;17540:328::-;17630:76;17681:14;;17630:32;17641:20;;17630:6;:10;;:32;;;;:::i;:::-;:36;;:76;;;;:::i;:::-;17607:19;;:99;;;;;;;:::i;:::-;;;;;;;;17737:49;17771:14;;17737:29;17748:17;;17737:6;:10;;:29;;;;:::i;:::-;:33;;:49;;;;:::i;:::-;17717:16;;:69;;;;;;;:::i;:::-;;;;;;;;17814:46;17845:14;;17814:26;17825:14;;17814:6;:10;;:26;;;;:::i;:::-;:30;;:46;;;;:::i;:::-;17797:13;;:63;;;;;;;:::i;:::-;;;;;;;;17540:328;:::o;17876:332::-;17967:77;18019:14;;17967:33;17978:21;;17967:6;:10;;:33;;;;:::i;:::-;:37;;:77;;;;:::i;:::-;17944:19;;:100;;;;;;;:::i;:::-;;;;;;;;18075:50;18110:14;;18075:30;18086:18;;18075:6;:10;;:30;;;;:::i;:::-;:34;;:50;;;;:::i;:::-;18055:16;;:70;;;;;;;:::i;:::-;;;;;;;;18153:47;18185:14;;18153:27;18164:15;;18153:6;:10;;:27;;;;:::i;:::-;:31;;:47;;;;:::i;:::-;18136:13;;:64;;;;;;;:::i;:::-;;;;;;;;17876:332;:::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:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1397:126::-;1434:7;1474:42;1467:5;1463:54;1452:65;;1397:126;;;:::o;1529:60::-;1557:3;1578:5;1571:12;;1529:60;;;:::o;1595:142::-;1645:9;1678:53;1696:34;1705:24;1723:5;1705:24;:::i;:::-;1696:34;:::i;:::-;1678:53;:::i;:::-;1665:66;;1595:142;;;:::o;1743:126::-;1793:9;1826:37;1857:5;1826:37;:::i;:::-;1813:50;;1743:126;;;:::o;1875:144::-;1943:9;1976:37;2007:5;1976:37;:::i;:::-;1963:50;;1875:144;;;:::o;2025:167::-;2130:55;2179:5;2130:55;:::i;:::-;2125:3;2118:68;2025:167;;:::o;2198:258::-;2309:4;2347:2;2336:9;2332:18;2324:26;;2360:89;2446:1;2435:9;2431:17;2422:6;2360:89;:::i;:::-;2198:258;;;;:::o;2462:75::-;2495:6;2528:2;2522:9;2512:19;;2462:75;:::o;2543:117::-;2652:1;2649;2642:12;2666:117;2775:1;2772;2765:12;2789:96;2826:7;2855:24;2873:5;2855:24;:::i;:::-;2844:35;;2789:96;;;:::o;2891:122::-;2964:24;2982:5;2964:24;:::i;:::-;2957:5;2954:35;2944:63;;3003:1;3000;2993:12;2944:63;2891:122;:::o;3019:139::-;3065:5;3103:6;3090:20;3081:29;;3119:33;3146:5;3119:33;:::i;:::-;3019:139;;;;:::o;3164:77::-;3201:7;3230:5;3219:16;;3164:77;;;:::o;3247:122::-;3320:24;3338:5;3320:24;:::i;:::-;3313:5;3310:35;3300:63;;3359:1;3356;3349:12;3300:63;3247:122;:::o;3375:139::-;3421:5;3459:6;3446:20;3437:29;;3475:33;3502:5;3475:33;:::i;:::-;3375:139;;;;:::o;3520:474::-;3588:6;3596;3645:2;3633:9;3624:7;3620:23;3616:32;3613:119;;;3651:79;;:::i;:::-;3613:119;3771:1;3796:53;3841:7;3832:6;3821:9;3817:22;3796:53;:::i;:::-;3786:63;;3742:117;3898:2;3924:53;3969:7;3960:6;3949:9;3945:22;3924:53;:::i;:::-;3914:63;;3869:118;3520:474;;;;;:::o;4000:90::-;4034:7;4077:5;4070:13;4063:21;4052:32;;4000:90;;;:::o;4096:109::-;4177:21;4192:5;4177:21;:::i;:::-;4172:3;4165:34;4096:109;;:::o;4211:210::-;4298:4;4336:2;4325:9;4321:18;4313:26;;4349:65;4411:1;4400:9;4396:17;4387:6;4349:65;:::i;:::-;4211:210;;;;:::o;4427:116::-;4497:21;4512:5;4497:21;:::i;:::-;4490:5;4487:32;4477:60;;4533:1;4530;4523:12;4477:60;4427:116;:::o;4549:133::-;4592:5;4630:6;4617:20;4608:29;;4646:30;4670:5;4646:30;:::i;:::-;4549:133;;;;:::o;4688:323::-;4744:6;4793:2;4781:9;4772:7;4768:23;4764:32;4761:119;;;4799:79;;:::i;:::-;4761:119;4919:1;4944:50;4986:7;4977:6;4966:9;4962:22;4944:50;:::i;:::-;4934:60;;4890:114;4688:323;;;;:::o;5017:117::-;5126:1;5123;5116:12;5140:180;5188:77;5185:1;5178:88;5285:4;5282:1;5275:15;5309:4;5306:1;5299:15;5326:281;5409:27;5431:4;5409:27;:::i;:::-;5401:6;5397:40;5539:6;5527:10;5524:22;5503:18;5491:10;5488:34;5485:62;5482:88;;;5550:18;;:::i;:::-;5482:88;5590:10;5586:2;5579:22;5369:238;5326:281;;:::o;5613:129::-;5647:6;5674:20;;:::i;:::-;5664:30;;5703:33;5731:4;5723:6;5703:33;:::i;:::-;5613:129;;;:::o;5748:311::-;5825:4;5915:18;5907:6;5904:30;5901:56;;;5937:18;;:::i;:::-;5901:56;5987:4;5979:6;5975:17;5967:25;;6047:4;6041;6037:15;6029:23;;5748:311;;;:::o;6065:117::-;6174:1;6171;6164:12;6205:710;6301:5;6326:81;6342:64;6399:6;6342:64;:::i;:::-;6326:81;:::i;:::-;6317:90;;6427:5;6456:6;6449:5;6442:21;6490:4;6483:5;6479:16;6472:23;;6543:4;6535:6;6531:17;6523:6;6519:30;6572:3;6564:6;6561:15;6558:122;;;6591:79;;:::i;:::-;6558:122;6706:6;6689:220;6723:6;6718:3;6715:15;6689:220;;;6798:3;6827:37;6860:3;6848:10;6827:37;:::i;:::-;6822:3;6815:50;6894:4;6889:3;6885:14;6878:21;;6765:144;6749:4;6744:3;6740:14;6733:21;;6689:220;;;6693:21;6307:608;;6205:710;;;;;:::o;6938:370::-;7009:5;7058:3;7051:4;7043:6;7039:17;7035:27;7025:122;;7066:79;;:::i;:::-;7025:122;7183:6;7170:20;7208:94;7298:3;7290:6;7283:4;7275:6;7271:17;7208:94;:::i;:::-;7199:103;;7015:293;6938:370;;;;:::o;7314:678::-;7404:6;7412;7461:2;7449:9;7440:7;7436:23;7432:32;7429:119;;;7467:79;;:::i;:::-;7429:119;7615:1;7604:9;7600:17;7587:31;7645:18;7637:6;7634:30;7631:117;;;7667:79;;:::i;:::-;7631:117;7772:78;7842:7;7833:6;7822:9;7818:22;7772:78;:::i;:::-;7762:88;;7558:302;7899:2;7925:50;7967:7;7958:6;7947:9;7943:22;7925:50;:::i;:::-;7915:60;;7870:115;7314:678;;;;;:::o;7998:619::-;8075:6;8083;8091;8140:2;8128:9;8119:7;8115:23;8111:32;8108:119;;;8146:79;;:::i;:::-;8108:119;8266:1;8291:53;8336:7;8327:6;8316:9;8312:22;8291:53;:::i;:::-;8281:63;;8237:117;8393:2;8419:53;8464:7;8455:6;8444:9;8440:22;8419:53;:::i;:::-;8409:63;;8364:118;8521:2;8547:53;8592:7;8583:6;8572:9;8568:22;8547:53;:::i;:::-;8537:63;;8492:118;7998:619;;;;;:::o;8623:118::-;8710:24;8728:5;8710:24;:::i;:::-;8705:3;8698:37;8623:118;;:::o;8747:222::-;8840:4;8878:2;8867:9;8863:18;8855:26;;8891:71;8959:1;8948:9;8944:17;8935:6;8891:71;:::i;:::-;8747:222;;;;:::o;8975:619::-;9052:6;9060;9068;9117:2;9105:9;9096:7;9092:23;9088:32;9085:119;;;9123:79;;:::i;:::-;9085:119;9243:1;9268:53;9313:7;9304:6;9293:9;9289:22;9268:53;:::i;:::-;9258:63;;9214:117;9370:2;9396:53;9441:7;9432:6;9421:9;9417:22;9396:53;:::i;:::-;9386:63;;9341:118;9498:2;9524:53;9569:7;9560:6;9549:9;9545:22;9524:53;:::i;:::-;9514:63;;9469:118;8975:619;;;;;:::o;9600:468::-;9665:6;9673;9722:2;9710:9;9701:7;9697:23;9693:32;9690:119;;;9728:79;;:::i;:::-;9690:119;9848:1;9873:53;9918:7;9909:6;9898:9;9894:22;9873:53;:::i;:::-;9863:63;;9819:117;9975:2;10001:50;10043:7;10034:6;10023:9;10019:22;10001:50;:::i;:::-;9991:60;;9946:115;9600:468;;;;;:::o;10074:86::-;10109:7;10149:4;10142:5;10138:16;10127:27;;10074:86;;;:::o;10166:112::-;10249:22;10265:5;10249:22;:::i;:::-;10244:3;10237:35;10166:112;;:::o;10284:214::-;10373:4;10411:2;10400:9;10396:18;10388:26;;10424:67;10488:1;10477:9;10473:17;10464:6;10424:67;:::i;:::-;10284:214;;;;:::o;10504:104::-;10549:7;10578:24;10596:5;10578:24;:::i;:::-;10567:35;;10504:104;;;:::o;10614:138::-;10695:32;10721:5;10695:32;:::i;:::-;10688:5;10685:43;10675:71;;10742:1;10739;10732:12;10675:71;10614:138;:::o;10758:155::-;10812:5;10850:6;10837:20;10828:29;;10866:41;10901:5;10866:41;:::i;:::-;10758:155;;;;:::o;10919:490::-;10995:6;11003;11052:2;11040:9;11031:7;11027:23;11023:32;11020:119;;;11058:79;;:::i;:::-;11020:119;11178:1;11203:61;11256:7;11247:6;11236:9;11232:22;11203:61;:::i;:::-;11193:71;;11149:125;11313:2;11339:53;11384:7;11375:6;11364:9;11360:22;11339:53;:::i;:::-;11329:63;;11284:118;10919:490;;;;;:::o;11415:329::-;11474:6;11523:2;11511:9;11502:7;11498:23;11494:32;11491:119;;;11529:79;;:::i;:::-;11491:119;11649:1;11674:53;11719:7;11710:6;11699:9;11695:22;11674:53;:::i;:::-;11664:63;;11620:117;11415:329;;;;:::o;11750:::-;11809:6;11858:2;11846:9;11837:7;11833:23;11829:32;11826:119;;;11864:79;;:::i;:::-;11826:119;11984:1;12009:53;12054:7;12045:6;12034:9;12030:22;12009:53;:::i;:::-;11999:63;;11955:117;11750:329;;;;:::o;12085:118::-;12172:24;12190:5;12172:24;:::i;:::-;12167:3;12160:37;12085:118;;:::o;12209:222::-;12302:4;12340:2;12329:9;12325:18;12317:26;;12353:71;12421:1;12410:9;12406:17;12397:6;12353:71;:::i;:::-;12209:222;;;;:::o;12437:142::-;12540:32;12566:5;12540:32;:::i;:::-;12535:3;12528:45;12437:142;;:::o;12585:254::-;12694:4;12732:2;12721:9;12717:18;12709:26;;12745:87;12829:1;12818:9;12814:17;12805:6;12745:87;:::i;:::-;12585:254;;;;:::o;12845:506::-;12929:6;12937;12986:2;12974:9;12965:7;12961:23;12957:32;12954:119;;;12992:79;;:::i;:::-;12954:119;13112:1;13137:61;13190:7;13181:6;13170:9;13166:22;13137:61;:::i;:::-;13127:71;;13083:125;13247:2;13273:61;13326:7;13317:6;13306:9;13302:22;13273:61;:::i;:::-;13263:71;;13218:126;12845:506;;;;;:::o;13357:474::-;13425:6;13433;13482:2;13470:9;13461:7;13457:23;13453:32;13450:119;;;13488:79;;:::i;:::-;13450:119;13608:1;13633:53;13678:7;13669:6;13658:9;13654:22;13633:53;:::i;:::-;13623:63;;13579:117;13735:2;13761:53;13806:7;13797:6;13786:9;13782:22;13761:53;:::i;:::-;13751:63;;13706:118;13357:474;;;;;:::o;13837:180::-;13885:77;13882:1;13875:88;13982:4;13979:1;13972:15;14006:4;14003:1;13996:15;14023:320;14067:6;14104:1;14098:4;14094:12;14084:22;;14151:1;14145:4;14141:12;14172:18;14162:81;;14228:4;14220:6;14216:17;14206:27;;14162:81;14290:2;14282:6;14279:14;14259:18;14256:38;14253:84;;;14309:18;;:::i;:::-;14253:84;14074:269;14023:320;;;:::o;14349:182::-;14489:34;14485:1;14477:6;14473:14;14466:58;14349:182;:::o;14537:366::-;14679:3;14700:67;14764:2;14759:3;14700:67;:::i;:::-;14693:74;;14776:93;14865:3;14776:93;:::i;:::-;14894:2;14889:3;14885:12;14878:19;;14537:366;;;:::o;14909:419::-;15075:4;15113:2;15102:9;15098:18;15090:26;;15162:9;15156:4;15152:20;15148:1;15137:9;15133:17;15126:47;15190:131;15316:4;15190:131;:::i;:::-;15182:139;;14909:419;;;:::o;15334:180::-;15382:77;15379:1;15372:88;15479:4;15476:1;15469:15;15503:4;15500:1;15493:15;15520:180;15568:77;15565:1;15558:88;15665:4;15662:1;15655:15;15689:4;15686:1;15679:15;15706:233;15745:3;15768:24;15786:5;15768:24;:::i;:::-;15759:33;;15814:66;15807:5;15804:77;15801:103;;;15884:18;;:::i;:::-;15801:103;15931:1;15924:5;15920:13;15913:20;;15706:233;;;:::o;15945:172::-;16085:24;16081:1;16073:6;16069:14;16062:48;15945:172;:::o;16123:366::-;16265:3;16286:67;16350:2;16345:3;16286:67;:::i;:::-;16279:74;;16362:93;16451:3;16362:93;:::i;:::-;16480:2;16475:3;16471:12;16464:19;;16123:366;;;:::o;16495:419::-;16661:4;16699:2;16688:9;16684:18;16676:26;;16748:9;16742:4;16738:20;16734:1;16723:9;16719:17;16712:47;16776:131;16902:4;16776:131;:::i;:::-;16768:139;;16495:419;;;:::o;16920:177::-;17060:29;17056:1;17048:6;17044:14;17037:53;16920:177;:::o;17103:366::-;17245:3;17266:67;17330:2;17325:3;17266:67;:::i;:::-;17259:74;;17342:93;17431:3;17342:93;:::i;:::-;17460:2;17455:3;17451:12;17444:19;;17103:366;;;:::o;17475:419::-;17641:4;17679:2;17668:9;17664:18;17656:26;;17728:9;17722:4;17718:20;17714:1;17703:9;17699:17;17692:47;17756:131;17882:4;17756:131;:::i;:::-;17748:139;;17475:419;;;:::o;17900:165::-;18040:17;18036:1;18028:6;18024:14;18017:41;17900:165;:::o;18071:366::-;18213:3;18234:67;18298:2;18293:3;18234:67;:::i;:::-;18227:74;;18310:93;18399:3;18310:93;:::i;:::-;18428:2;18423:3;18419:12;18412:19;;18071:366;;;:::o;18443:419::-;18609:4;18647:2;18636:9;18632:18;18624:26;;18696:9;18690:4;18686:20;18682:1;18671:9;18667:17;18660:47;18724:131;18850:4;18724:131;:::i;:::-;18716:139;;18443:419;;;:::o;18868:225::-;19008:34;19004:1;18996:6;18992:14;18985:58;19077:8;19072:2;19064:6;19060:15;19053:33;18868:225;:::o;19099:366::-;19241:3;19262:67;19326:2;19321:3;19262:67;:::i;:::-;19255:74;;19338:93;19427:3;19338:93;:::i;:::-;19456:2;19451:3;19447:12;19440:19;;19099:366;;;:::o;19471:419::-;19637:4;19675:2;19664:9;19660:18;19652:26;;19724:9;19718:4;19714:20;19710:1;19699:9;19695:17;19688:47;19752:131;19878:4;19752:131;:::i;:::-;19744:139;;19471:419;;;:::o;19896:348::-;19936:7;19959:20;19977:1;19959:20;:::i;:::-;19954:25;;19993:20;20011:1;19993:20;:::i;:::-;19988:25;;20181:1;20113:66;20109:74;20106:1;20103:81;20098:1;20091:9;20084:17;20080:105;20077:131;;;20188:18;;:::i;:::-;20077:131;20236:1;20233;20229:9;20218:20;;19896:348;;;;:::o;20250:180::-;20298:77;20295:1;20288:88;20395:4;20392:1;20385:15;20419:4;20416:1;20409:15;20436:185;20476:1;20493:20;20511:1;20493:20;:::i;:::-;20488:25;;20527:20;20545:1;20527:20;:::i;:::-;20522:25;;20566:1;20556:35;;20571:18;;:::i;:::-;20556:35;20613:1;20610;20606:9;20601:14;;20436:185;;;;:::o;20627:220::-;20767:34;20763:1;20755:6;20751:14;20744:58;20836:3;20831:2;20823:6;20819:15;20812:28;20627:220;:::o;20853:366::-;20995:3;21016:67;21080:2;21075:3;21016:67;:::i;:::-;21009:74;;21092:93;21181:3;21092:93;:::i;:::-;21210:2;21205:3;21201:12;21194:19;;20853:366;;;:::o;21225:419::-;21391:4;21429:2;21418:9;21414:18;21406:26;;21478:9;21472:4;21468:20;21464:1;21453:9;21449:17;21442:47;21506:131;21632:4;21506:131;:::i;:::-;21498:139;;21225:419;;;:::o;21650:223::-;21790:34;21786:1;21778:6;21774:14;21767:58;21859:6;21854:2;21846:6;21842:15;21835:31;21650:223;:::o;21879:366::-;22021:3;22042:67;22106:2;22101:3;22042:67;:::i;:::-;22035:74;;22118:93;22207:3;22118:93;:::i;:::-;22236:2;22231:3;22227:12;22220:19;;21879:366;;;:::o;22251:419::-;22417:4;22455:2;22444:9;22440:18;22432:26;;22504:9;22498:4;22494:20;22490:1;22479:9;22475:17;22468:47;22532:131;22658:4;22532:131;:::i;:::-;22524:139;;22251:419;;;:::o;22676:221::-;22816:34;22812:1;22804:6;22800:14;22793:58;22885:4;22880:2;22872:6;22868:15;22861:29;22676:221;:::o;22903:366::-;23045:3;23066:67;23130:2;23125:3;23066:67;:::i;:::-;23059:74;;23142:93;23231:3;23142:93;:::i;:::-;23260:2;23255:3;23251:12;23244:19;;22903:366;;;:::o;23275:419::-;23441:4;23479:2;23468:9;23464:18;23456:26;;23528:9;23522:4;23518:20;23514:1;23503:9;23499:17;23492:47;23556:131;23682:4;23556:131;:::i;:::-;23548:139;;23275:419;;;:::o;23700:305::-;23740:3;23759:20;23777:1;23759:20;:::i;:::-;23754:25;;23793:20;23811:1;23793:20;:::i;:::-;23788:25;;23947:1;23879:66;23875:74;23872:1;23869:81;23866:107;;;23953:18;;:::i;:::-;23866:107;23997:1;23994;23990:9;23983:16;;23700:305;;;;:::o;24011:177::-;24151:29;24147:1;24139:6;24135:14;24128:53;24011:177;:::o;24194:366::-;24336:3;24357:67;24421:2;24416:3;24357:67;:::i;:::-;24350:74;;24433:93;24522:3;24433:93;:::i;:::-;24551:2;24546:3;24542:12;24535:19;;24194:366;;;:::o;24566:419::-;24732:4;24770:2;24759:9;24755:18;24747:26;;24819:9;24813:4;24809:20;24805:1;24794:9;24790:17;24783:47;24847:131;24973:4;24847:131;:::i;:::-;24839:139;;24566:419;;;:::o;24991:224::-;25131:34;25127:1;25119:6;25115:14;25108:58;25200:7;25195:2;25187:6;25183:15;25176:32;24991:224;:::o;25221:366::-;25363:3;25384:67;25448:2;25443:3;25384:67;:::i;:::-;25377:74;;25460:93;25549:3;25460:93;:::i;:::-;25578:2;25573:3;25569:12;25562:19;;25221:366;;;:::o;25593:419::-;25759:4;25797:2;25786:9;25782:18;25774:26;;25846:9;25840:4;25836:20;25832:1;25821:9;25817:17;25810:47;25874:131;26000:4;25874:131;:::i;:::-;25866:139;;25593:419;;;:::o;26018:222::-;26158:34;26154:1;26146:6;26142:14;26135:58;26227:5;26222:2;26214:6;26210:15;26203:30;26018:222;:::o;26246:366::-;26388:3;26409:67;26473:2;26468:3;26409:67;:::i;:::-;26402:74;;26485:93;26574:3;26485:93;:::i;:::-;26603:2;26598:3;26594:12;26587:19;;26246:366;;;:::o;26618:419::-;26784:4;26822:2;26811:9;26807:18;26799:26;;26871:9;26865:4;26861:20;26857:1;26846:9;26842:17;26835:47;26899:131;27025:4;26899:131;:::i;:::-;26891:139;;26618:419;;;:::o;27043:226::-;27183:34;27179:1;27171:6;27167:14;27160:58;27252:9;27247:2;27239:6;27235:15;27228:34;27043:226;:::o;27275:366::-;27417:3;27438:67;27502:2;27497:3;27438:67;:::i;:::-;27431:74;;27514:93;27603:3;27514:93;:::i;:::-;27632:2;27627:3;27623:12;27616:19;;27275:366;;;:::o;27647:419::-;27813:4;27851:2;27840:9;27836:18;27828:26;;27900:9;27894:4;27890:20;27886:1;27875:9;27871:17;27864:47;27928:131;28054:4;27928:131;:::i;:::-;27920:139;;27647:419;;;:::o;28072:169::-;28212:21;28208:1;28200:6;28196:14;28189:45;28072:169;:::o;28247:366::-;28389:3;28410:67;28474:2;28469:3;28410:67;:::i;:::-;28403:74;;28486:93;28575:3;28486:93;:::i;:::-;28604:2;28599:3;28595:12;28588:19;;28247:366;;;:::o;28619:419::-;28785:4;28823:2;28812:9;28808:18;28800:26;;28872:9;28866:4;28862:20;28858:1;28847:9;28843:17;28836:47;28900:131;29026:4;28900:131;:::i;:::-;28892:139;;28619:419;;;:::o;29044:179::-;29184:31;29180:1;29172:6;29168:14;29161:55;29044:179;:::o;29229:366::-;29371:3;29392:67;29456:2;29451:3;29392:67;:::i;:::-;29385:74;;29468:93;29557:3;29468:93;:::i;:::-;29586:2;29581:3;29577:12;29570:19;;29229:366;;;:::o;29601:419::-;29767:4;29805:2;29794:9;29790:18;29782:26;;29854:9;29848:4;29844:20;29840:1;29829:9;29825:17;29818:47;29882:131;30008:4;29882:131;:::i;:::-;29874:139;;29601:419;;;:::o;30026:178::-;30166:30;30162:1;30154:6;30150:14;30143:54;30026:178;:::o;30210:366::-;30352:3;30373:67;30437:2;30432:3;30373:67;:::i;:::-;30366:74;;30449:93;30538:3;30449:93;:::i;:::-;30567:2;30562:3;30558:12;30551:19;;30210:366;;;:::o;30582:419::-;30748:4;30786:2;30775:9;30771:18;30763:26;;30835:9;30829:4;30825:20;30821:1;30810:9;30806:17;30799:47;30863:131;30989:4;30863:131;:::i;:::-;30855:139;;30582:419;;;:::o;31007:179::-;31147:31;31143:1;31135:6;31131:14;31124:55;31007:179;:::o;31192:366::-;31334:3;31355:67;31419:2;31414:3;31355:67;:::i;:::-;31348:74;;31431:93;31520:3;31431:93;:::i;:::-;31549:2;31544:3;31540:12;31533:19;;31192:366;;;:::o;31564:419::-;31730:4;31768:2;31757:9;31753:18;31745:26;;31817:9;31811:4;31807:20;31803:1;31792:9;31788:17;31781:47;31845:131;31971:4;31845:131;:::i;:::-;31837:139;;31564:419;;;:::o;31989:191::-;32029:4;32049:20;32067:1;32049:20;:::i;:::-;32044:25;;32083:20;32101:1;32083:20;:::i;:::-;32078:25;;32122:1;32119;32116:8;32113:34;;;32127:18;;:::i;:::-;32113:34;32172:1;32169;32165:9;32157:17;;31989:191;;;;:::o;32186:442::-;32335:4;32373:2;32362:9;32358:18;32350:26;;32386:71;32454:1;32443:9;32439:17;32430:6;32386:71;:::i;:::-;32467:72;32535:2;32524:9;32520:18;32511:6;32467:72;:::i;:::-;32549;32617:2;32606:9;32602:18;32593:6;32549:72;:::i;:::-;32186:442;;;;;;:::o;32634:143::-;32691:5;32722:6;32716:13;32707:22;;32738:33;32765:5;32738:33;:::i;:::-;32634:143;;;;:::o;32783:351::-;32853:6;32902:2;32890:9;32881:7;32877:23;32873:32;32870:119;;;32908:79;;:::i;:::-;32870:119;33028:1;33053:64;33109:7;33100:6;33089:9;33085:22;33053:64;:::i;:::-;33043:74;;32999:128;32783:351;;;;:::o;33140:85::-;33185:7;33214:5;33203:16;;33140:85;;;:::o;33231:158::-;33289:9;33322:61;33340:42;33349:32;33375:5;33349:32;:::i;:::-;33340:42;:::i;:::-;33322:61;:::i;:::-;33309:74;;33231:158;;;:::o;33395:147::-;33490:45;33529:5;33490:45;:::i;:::-;33485:3;33478:58;33395:147;;:::o;33548:114::-;33615:6;33649:5;33643:12;33633:22;;33548:114;;;:::o;33668:184::-;33767:11;33801:6;33796:3;33789:19;33841:4;33836:3;33832:14;33817:29;;33668:184;;;;:::o;33858:132::-;33925:4;33948:3;33940:11;;33978:4;33973:3;33969:14;33961:22;;33858:132;;;:::o;33996:108::-;34073:24;34091:5;34073:24;:::i;:::-;34068:3;34061:37;33996:108;;:::o;34110:179::-;34179:10;34200:46;34242:3;34234:6;34200:46;:::i;:::-;34278:4;34273:3;34269:14;34255:28;;34110:179;;;;:::o;34295:113::-;34365:4;34397;34392:3;34388:14;34380:22;;34295:113;;;:::o;34444:732::-;34563:3;34592:54;34640:5;34592:54;:::i;:::-;34662:86;34741:6;34736:3;34662:86;:::i;:::-;34655:93;;34772:56;34822:5;34772:56;:::i;:::-;34851:7;34882:1;34867:284;34892:6;34889:1;34886:13;34867:284;;;34968:6;34962:13;34995:63;35054:3;35039:13;34995:63;:::i;:::-;34988:70;;35081:60;35134:6;35081:60;:::i;:::-;35071:70;;34927:224;34914:1;34911;34907:9;34902:14;;34867:284;;;34871:14;35167:3;35160:10;;34568:608;;;34444:732;;;;:::o;35182:831::-;35445:4;35483:3;35472:9;35468:19;35460:27;;35497:71;35565:1;35554:9;35550:17;35541:6;35497:71;:::i;:::-;35578:80;35654:2;35643:9;35639:18;35630:6;35578:80;:::i;:::-;35705:9;35699:4;35695:20;35690:2;35679:9;35675:18;35668:48;35733:108;35836:4;35827:6;35733:108;:::i;:::-;35725:116;;35851:72;35919:2;35908:9;35904:18;35895:6;35851:72;:::i;:::-;35933:73;36001:3;35990:9;35986:19;35977:6;35933:73;:::i;:::-;35182:831;;;;;;;;:::o;36019:807::-;36268:4;36306:3;36295:9;36291:19;36283:27;;36320:71;36388:1;36377:9;36373:17;36364:6;36320:71;:::i;:::-;36401:72;36469:2;36458:9;36454:18;36445:6;36401:72;:::i;:::-;36483:80;36559:2;36548:9;36544:18;36535:6;36483:80;:::i;:::-;36573;36649:2;36638:9;36634:18;36625:6;36573:80;:::i;:::-;36663:73;36731:3;36720:9;36716:19;36707:6;36663:73;:::i;:::-;36746;36814:3;36803:9;36799:19;36790:6;36746:73;:::i;:::-;36019:807;;;;;;;;;:::o;36832:143::-;36889:5;36920:6;36914:13;36905:22;;36936:33;36963:5;36936:33;:::i;:::-;36832:143;;;;:::o;36981:663::-;37069:6;37077;37085;37134:2;37122:9;37113:7;37109:23;37105:32;37102:119;;;37140:79;;:::i;:::-;37102:119;37260:1;37285:64;37341:7;37332:6;37321:9;37317:22;37285:64;:::i;:::-;37275:74;;37231:128;37398:2;37424:64;37480:7;37471:6;37460:9;37456:22;37424:64;:::i;:::-;37414:74;;37369:129;37537:2;37563:64;37619:7;37610:6;37599:9;37595:22;37563:64;:::i;:::-;37553:74;;37508:129;36981:663;;;;;:::o
Metadata Hash
ipfs://ed65ec082b7b6d6acb29fcec12d79b9d7803649ee1858b726b263d955c5377a4