Token 420 Burning Haze
Overview CRC20
Price
$0.00 @ 0.000000 CRO
Fully Diluted Market Cap
Total Supply:
1,000,000 420BH
Holders:
37 addresses
Contract:
Decimals:
9
Balance
37,392.040837536 420BHValue
$0.00
[ Download CSV Export ]
[ Download CSV Export ]
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
FourTwentyBurningHaze
Compiler Version
v0.8.5+commit.a4f2e591
Contract Source Code (Solidity)
/** *Submitted for verification at cronoscan.com on 2022-04-20 */ /** 420 Burning Haze is a meme token launched on 4.20, to honour and cherish the love for weed from people all over the world. Our project is launch on the Cronos blockchain, and aims to become the greatest 420 movement on this chain. As 420 Burning Haze wants to reward people that chill and hold, therefore 2% of every transaction is burned and sent to the dead wallet. Therewith achieving an ever decreasing amount of supply, and an ever increasing token value. Once we hit 100k MC , we will lock the liquidity forever! https://t.me/BurningHaze420 SPDX-License-Identifier: GPL-3.0-or-later */ pragma solidity ^0.8.5; library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } interface IBEP20 { function totalSupply() external view returns (uint256); function decimals() external view returns (uint8); function symbol() external view returns (string memory); function name() external view returns (string memory); function getOwner() external view returns (address); 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); } abstract contract Auth { address internal owner; mapping (address => bool) internal authorizations; constructor(address _owner) { owner = _owner; authorizations[_owner] = true; } modifier onlyOwner() { require(isOwner(msg.sender), "!OWNER"); _; } modifier authorized() { require(isAuthorized(msg.sender), "!AUTHORIZED"); _; } function authorize(address adr) public onlyOwner { authorizations[adr] = true; } function unauthorize(address adr) public onlyOwner { authorizations[adr] = false; } function isOwner(address account) public view returns (bool) { return account == owner; } function isAuthorized(address adr) public view returns (bool) { return authorizations[adr]; } function transferOwnership(address payable adr) public onlyOwner { owner = adr; authorizations[adr] = true; emit OwnershipTransferred(adr); } event OwnershipTransferred(address owner); } interface IDEXFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IDEXRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } interface InterfaceLP { function sync() external; } contract FourTwentyBurningHaze is IBEP20, Auth { using SafeMath for uint256; address WCRO = 0x5C7F8A570d578ED84E63fdFA7b1eE72dEae1AE23; address DEAD = 0x000000000000000000000000000000000000dEaD; address ZERO = 0x0000000000000000000000000000000000000000; string constant _name = "420 Burning Haze"; string constant _symbol = "420BH"; uint8 constant _decimals = 9; uint256 _totalSupply = 1000000 * (10 ** _decimals); uint256 public _maxTxAmount = (_totalSupply * 10) / 1000; uint256 public _maxWalletToken = (_totalSupply * 15) / 1000; mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) _allowances; bool public pokemonCaptureMode = true; mapping (address => bool) public isInPokeball; mapping (address => bool) isFeeExempt; mapping (address => bool) isTxLimitExempt; mapping (address => bool) isTimelockExempt; mapping (address => bool) isDividendExempt; mapping (address => bool) public isBlacklisted; uint256 private liquidityFee = 2; uint256 private marketingFee = 5; uint256 private treasuryFee = 0; uint256 private devFee = 2; uint256 private burnFee = 2; uint256 private totalFee = devFee + marketingFee + liquidityFee + treasuryFee + burnFee; uint256 private feeDenominator = 100; uint256 public deadBlocks = 0; uint256 public launchedAt = 0; uint256 private sellMultiplier = 1; address private autoLiquidityReceiver; address private marketingFeeReceiver; address private treasuryFeeReceiver; address private devFeeReceiver; address private burnFeeReceiver; uint256 targetLiquidity = 99; uint256 targetLiquidityDenominator = 100; IDEXRouter public router; address public pair; InterfaceLP public pairContract; bool public playingPokemon = false; bool public buyCooldownEnabled = false; uint8 public cooldownTimerInterval = 60; mapping (address => uint) private cooldownTimer; bool public swapEnabled = true; uint256 public swapThreshold = _totalSupply * 20 / 10000; bool inSwap; modifier swapping() { inSwap = true; _; inSwap = false; } constructor () Auth(msg.sender) { router = IDEXRouter(0x145677FC4d9b8F19B5D56d1820c48e0443049a30); pair = IDEXFactory(router.factory()).createPair(WCRO, address(this)); pairContract = InterfaceLP(pair); _allowances[address(this)][address(router)] = type(uint256).max; isFeeExempt[msg.sender] = true; isTxLimitExempt[msg.sender] = true; isTimelockExempt[msg.sender] = true; isTimelockExempt[DEAD] = true; isTimelockExempt[address(this)] = true; isDividendExempt[pair] = true; isDividendExempt[address(this)] = true; isDividendExempt[DEAD] = true; autoLiquidityReceiver = 0xD5E52088c2630b90e63200A860721d20CdC534fE; marketingFeeReceiver = 0xaCCF24E00e14ce2eC9C2288e6fa47CCC89D02FAF; treasuryFeeReceiver = 0xaCCF24E00e14ce2eC9C2288e6fa47CCC89D02FAF; devFeeReceiver = 0x5E1c82BBFD6731Af746FE36c4c3cF82724CA08Ac; burnFeeReceiver = DEAD; _balances[msg.sender] = _totalSupply; emit Transfer(address(0), msg.sender, _totalSupply); } receive() external payable { } function totalSupply() external view override returns (uint256) { return _totalSupply; } function decimals() external pure override returns (uint8) { return _decimals; } function symbol() external pure override returns (string memory) { return _symbol; } function name() external pure override returns (string memory) { return _name; } function getOwner() external view override returns (address) { return owner; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _allowances[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } function approveMax(address spender) external returns (bool) { return approve(spender, type(uint256).max); } function transfer(address recipient, uint256 amount) external override returns (bool) { return _transferFrom(msg.sender, recipient, amount); } function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) { if(_allowances[sender][msg.sender] != type(uint256).max){ _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance"); } return _transferFrom(sender, recipient, amount); } function setMaxWalletPercent_base1000(uint256 maxWallPercent_base1000) external onlyOwner() { _maxWalletToken = (_totalSupply * maxWallPercent_base1000 ) / 1000; } function setMaxTxPercent_base1000(uint256 maxTXPercentage_base1000) external onlyOwner() { _maxTxAmount = (_totalSupply * maxTXPercentage_base1000 ) / 1000; } function setTxLimit(uint256 amount) external authorized { _maxTxAmount = amount; } function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) { if(inSwap){ return _basicTransfer(sender, recipient, amount); } if(!authorizations[sender] && !authorizations[recipient]){ require(playingPokemon,"Cant Play Pokemon Yet"); } // Pokemon Capture if(pokemonCaptureMode){ require(!isInPokeball[sender] && !isInPokeball[recipient],"Captured in Pokeball"); } if (!authorizations[sender] && recipient != address(this) && recipient != address(DEAD) && recipient != pair && recipient != burnFeeReceiver){ uint256 heldTokens = balanceOf(recipient); require((heldTokens + amount) <= _maxWalletToken,"Total Holding is currently limited, you can not buy that much.");} if (sender == pair && buyCooldownEnabled && !isTimelockExempt[recipient]) { require(cooldownTimer[recipient] < block.timestamp,"Please wait for 1min between two buys"); cooldownTimer[recipient] = block.timestamp + cooldownTimerInterval; } // Checks max transaction limit checkTxLimit(sender, amount); if(shouldSwapBack()){ swapBack(); } //Exchange tokens _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); uint256 amountReceived = (!shouldTakeFee(sender) || !shouldTakeFee(recipient)) ? amount : takeFee(sender, amount,(recipient == pair)); _balances[recipient] = _balances[recipient].add(amountReceived); emit Transfer(sender, recipient, amountReceived); return true; } function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) { _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); return true; } function checkTxLimit(address sender, uint256 amount) internal view { require(amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded"); } function shouldTakeFee(address sender) internal view returns (bool) { return !isFeeExempt[sender]; } function takeFee(address sender, uint256 amount, bool isSell) internal returns (uint256) { uint256 multiplier = isSell ? sellMultiplier : 100; uint256 feeAmount = amount.mul(totalFee).mul(multiplier).div(feeDenominator * 100); if(!isSell && (launchedAt + deadBlocks) > block.number){ feeAmount = amount.div(100).mul(99); } uint256 burnTokens = feeAmount.mul(burnFee).div(totalFee); uint256 contractTokens = feeAmount.sub(burnTokens); _balances[address(this)] = _balances[address(this)].add(contractTokens); _balances[burnFeeReceiver] = _balances[burnFeeReceiver].add(burnTokens); emit Transfer(sender, address(this), contractTokens); if(burnTokens > 0){ emit Transfer(sender, burnFeeReceiver, burnTokens); } return amount.sub(feeAmount); } function shouldSwapBack() internal view returns (bool) { return msg.sender != pair && !inSwap && swapEnabled && _balances[address(this)] >= swapThreshold; } function clearStuckBalance(uint256 amountPercentage) external authorized { uint256 amountCRO = address(this).balance; payable(msg.sender).transfer(amountCRO * amountPercentage / 100); } function set_sell_multiplier(uint256 Multiplier) external onlyOwner{ sellMultiplier = Multiplier; } // switch Trading function playPokemon(bool _status, uint256 _deadBlocks) public onlyOwner { playingPokemon = _status; if(playingPokemon && launchedAt == 0){ launchedAt = block.number; deadBlocks = _deadBlocks; } } function launchStatus(uint256 _launchblock) public onlyOwner { launchedAt = _launchblock; } // enable cooldown between trades function cooldownEnabled(bool _status, uint8 _interval) public onlyOwner { buyCooldownEnabled = _status; cooldownTimerInterval = _interval; } function swapBack() internal swapping { uint256 dynamicLiquidityFee = isOverLiquified(targetLiquidity, targetLiquidityDenominator) ? 0 : liquidityFee; uint256 amountToLiquify = swapThreshold.mul(dynamicLiquidityFee).div(totalFee).div(2); uint256 amountToSwap = swapThreshold.sub(amountToLiquify); address[] memory path = new address[](2); path[0] = address(this); path[1] = WCRO; uint256 balanceBefore = address(this).balance; router.swapExactTokensForETHSupportingFeeOnTransferTokens( amountToSwap, 0, path, address(this), block.timestamp ); uint256 amountCRO = address(this).balance.sub(balanceBefore); uint256 totalCROFee = totalFee.sub(dynamicLiquidityFee.div(2)); uint256 amountCROLiquidity = amountCRO.mul(dynamicLiquidityFee).div(totalCROFee).div(2); uint256 amountCROMarketing = amountCRO.mul(marketingFee).div(totalCROFee); uint256 amountCRODev = amountCRO.mul(devFee).div(totalCROFee); uint256 amountCROTreasury = amountCRO.mul(treasuryFee).div(totalCROFee); (bool tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountCROMarketing, gas: 30000}(""); (tmpSuccess,) = payable(treasuryFeeReceiver).call{value: amountCROTreasury, gas: 30000}(""); (tmpSuccess,) = payable(devFeeReceiver).call{value: amountCRODev, gas: 30000}(""); tmpSuccess = false; if(amountToLiquify > 0){ router.addLiquidityETH{value: amountCROLiquidity}( address(this), amountToLiquify, 0, 0, autoLiquidityReceiver, block.timestamp ); emit AutoLiquify(amountCROLiquidity, amountToLiquify); } } function enable_blacklist(bool _status) public onlyOwner { pokemonCaptureMode = _status; } function manage_blacklist(address[] calldata addresses, bool status) public onlyOwner { for (uint256 i; i < addresses.length; ++i) { isInPokeball[addresses[i]] = status; } } function setIsFeeExempt(address holder, bool exempt) external authorized { isFeeExempt[holder] = exempt; } function setIsTxLimitExempt(address holder, bool exempt) external authorized { isTxLimitExempt[holder] = exempt; } function setIsTimelockExempt(address holder, bool exempt) external authorized { isTimelockExempt[holder] = exempt; } function setFees(uint256 _liquidityFee, uint256 _devFee, uint256 _marketingFee, uint256 _treasuryFee, uint256 _burnFee, uint256 _feeDenominator) external authorized { liquidityFee = _liquidityFee; devFee = _devFee; marketingFee = _marketingFee; treasuryFee = _treasuryFee; burnFee = _burnFee; totalFee = _liquidityFee.add(_devFee).add(_marketingFee).add(_treasuryFee).add(_burnFee); feeDenominator = _feeDenominator; require(totalFee < feeDenominator/2, "Fees cannot be more than 50%"); } function setFeeReceivers(address _autoLiquidityReceiver, address _marketingFeeReceiver, address _treasuryFeeReceiver, address _burnFeeReceiver, address _devFeeReceiver) external authorized { autoLiquidityReceiver = _autoLiquidityReceiver; marketingFeeReceiver = _marketingFeeReceiver; treasuryFeeReceiver = _treasuryFeeReceiver; burnFeeReceiver = _burnFeeReceiver; devFeeReceiver = _devFeeReceiver; } function setSwapBackSettings(bool _enabled, uint256 _amount) external authorized { swapEnabled = _enabled; swapThreshold = _amount; } function setTargetLiquidity(uint256 _target, uint256 _denominator) external authorized { targetLiquidity = _target; targetLiquidityDenominator = _denominator; } function getCirculatingSupply() public view returns (uint256) { return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO)); } function getLiquidityBacking(uint256 accuracy) public view returns (uint256) { return accuracy.mul(balanceOf(pair).mul(2)).div(getCirculatingSupply()); } function isOverLiquified(uint256 target, uint256 accuracy) public view returns (bool) { return getLiquidityBacking(accuracy) > target; } /* Airdrop Begins */ function multiTransfer(address from, address[] calldata addresses, uint256[] calldata tokens) external onlyOwner { require(addresses.length < 501,"GAS Error: max airdrop limit is 500 addresses"); require(addresses.length == tokens.length,"Mismatch between Address and token count"); uint256 SCCC = 0; for(uint i=0; i < addresses.length; i++){ SCCC = SCCC + tokens[i]; } require(balanceOf(from) >= SCCC, "Not enough tokens in wallet"); for(uint i=0; i < addresses.length; i++){ _basicTransfer(from,addresses[i],tokens[i]); } } event AutoLiquify(uint256 amountCRO, uint256 amountTokens); }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountCRO","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountTokens","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyCooldownEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"},{"internalType":"uint8","name":"_interval","type":"uint8"}],"name":"cooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cooldownTimerInterval","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadBlocks","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enable_blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isInPokeball","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_launchblock","type":"uint256"}],"name":"launchStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"tokens","type":"uint256[]"}],"name":"multiTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pairContract","outputs":[{"internalType":"contract InterfaceLP","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"},{"internalType":"uint256","name":"_deadBlocks","type":"uint256"}],"name":"playPokemon","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"playingPokemon","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pokemonCaptureMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_treasuryFeeReceiver","type":"address"},{"internalType":"address","name":"_burnFeeReceiver","type":"address"},{"internalType":"address","name":"_devFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_treasuryFee","type":"uint256"},{"internalType":"uint256","name":"_burnFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTimelockExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTXPercentage_base1000","type":"uint256"}],"name":"setMaxTxPercent_base1000","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent_base1000","type":"uint256"}],"name":"setMaxWalletPercent_base1000","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_target","type":"uint256"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setTargetLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"Multiplier","type":"uint256"}],"name":"set_sell_multiplier","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"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 payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052600280546001600160a01b0319908116735c7f8a570d578ed84e63fdfa7b1ee72deae1ae231790915560038054821661dead179055600480549091169055620000506009600a6200051c565b6200005f90620f4240620005dd565b6005556103e8600554600a620000769190620005dd565b620000829190620004b0565b6006556103e8600554600f620000999190620005dd565b620000a59190620004b0565b600755600a805460ff1916600117905560026011819055600560128190556000601381905560148390556015839055908290620000e3908262000495565b620000ef919062000495565b620000fb919062000495565b62000107919062000495565b60165560646017819055600060188190556019556001601a81905560636020556021919091556024805462ffffff60a01b1916600f60b21b1790556026805460ff191690911790556005546127109062000163906014620005dd565b6200016f9190620004b0565b6027553480156200017f57600080fd5b5060008054336001600160a01b031991821681178355825260016020818152604093849020805460ff19169092179091556022805473145677fc4d9b8f19b5d56d1820c48e0443049a30931683179055825163c45a015560e01b81529251919263c45a01559260048083019392829003018186803b1580156200020157600080fd5b505afa15801562000216573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200023c919062000463565b6002546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c6539690604401602060405180830381600087803b1580156200028957600080fd5b505af11580156200029e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002c4919062000463565b602380546001600160a01b039283166001600160a01b0319918216811783556024805483169091179055306000818152600960209081526040808320602254881684528252808320600019905533808452600c8352818420805460ff199081166001908117909255600d85528386208054821683179055600e85528386208054821683179055600380548b1687528487208054831684179055878752848720805483168417905598548a168652600f855283862080548216831790559585528285208054871682179055875489168552828520805490961617909455601b8054861673d5e52088c2630b90e63200a860721d20cdc534fe179055601c8054861673accf24e00e14ce2ec9c2288e6fa47ccc89d02faf908117909155601d805487169091179055601e80548616735e1c82bbfd6731af746fe36c4c3cf82724ca08ac1790559454601f80549095169616959095179092556005548183526008855283832081905592519283529290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a362000615565b6000602082840312156200047657600080fd5b81516001600160a01b03811681146200048e57600080fd5b9392505050565b60008219821115620004ab57620004ab620005ff565b500190565b600082620004ce57634e487b7160e01b600052601260045260246000fd5b500490565b600181815b8085111562000514578160001904821115620004f857620004f8620005ff565b808516156200050657918102915b93841c9390800290620004d8565b509250929050565b60006200048e60ff8416836000826200053857506001620005d7565b816200054757506000620005d7565b81600181146200056057600281146200056b576200058b565b6001915050620005d7565b60ff8411156200057f576200057f620005ff565b50506001821b620005d7565b5060208310610133831016604e8410600b8410161715620005b0575081810a620005d7565b620005bc8383620004d3565b8060001904821115620005d357620005d3620005ff565b0290505b92915050565b6000816000190483118215151615620005fa57620005fa620005ff565b500290565b634e487b7160e01b600052601160045260246000fd5b6128d980620006256000396000f3fe6080604052600436106103035760003560e01c8063722b62ad11610190578063bf56b371116100dc578063f0b37c0411610095578063f887ea401161006f578063f887ea4014610990578063fabb0b4f146109b0578063fe575a87146109c6578063fe9fbb80146109f657600080fd5b8063f0b37c0414610930578063f2fde38b14610950578063f84ba65d1461097057600080fd5b8063bf56b37114610853578063c072030b14610869578063d51ed1c81461088a578063dd62ed3e146108aa578063df20fd49146108f0578063ec72d65f1461091057600080fd5b806395d89b4111610149578063a9059cbb11610123578063a9059cbb146107d3578063b1e7a63c146107f3578063b6a5d7de14610813578063bd9ab5371461083357600080fd5b806395d89b41146107655780639ba1fc4c14610793578063a8aa1b31146107b357600080fd5b8063722b62ad146106ba57806378109e54146106db5780637d1db4a5146106f157806386f6c3c114610707578063893d20e8146107275780638e2eee841461074557600080fd5b80632d5945671161024f5780635c85974f11610208578063658d4b7f116101e2578063658d4b7f146106305780636ddd171314610650578063701d09921461066a57806370a082311461068457600080fd5b80635c85974f146105cf5780635e562f3b146105ef578063617fe0ed1461060f57600080fd5b80632d594567146104e65780632f54bf6e14610506578063313ce567146105355780634d709adf1461055757806350db71fb1461058f578063571ac8b0146105af57600080fd5b806318abb635116102bc578063201e799111610296578063201e79911461046157806323b872dd14610481578063249db09f146104a15780632b112e49146104d157600080fd5b806318abb635146104015780631ca0a28d146104215780631da1db5e1461044157600080fd5b80630445b6671461030f57806306fdde031461033857806309302dc61461037a578063095ea7b31461039c5780631161ae39146103cc57806318160ddd146103ec57600080fd5b3661030a57005b600080fd5b34801561031b57600080fd5b5061032560275481565b6040519081526020015b60405180910390f35b34801561034457600080fd5b5060408051808201909152601081526f343230204275726e696e672048617a6560801b60208201525b60405161032f91906126a9565b34801561038657600080fd5b5061039a6103953660046125fd565b610a16565b005b3480156103a857600080fd5b506103bc6103b7366004612514565b610a6a565b604051901515815260200161032f565b3480156103d857600080fd5b506103bc6103e7366004612616565b610ad7565b3480156103f857600080fd5b50600554610325565b34801561040d57600080fd5b5061039a61041c3660046123aa565b610aeb565b34801561042d57600080fd5b5061039a61043c36600461245c565b610b6f565b34801561044d57600080fd5b5061039a61045c3660046125fd565b610d83565b34801561046d57600080fd5b5061039a61047c366004612616565b610df0565b34801561048d57600080fd5b506103bc61049c36600461241b565b610e20565b3480156104ad57600080fd5b506103bc6104bc366004612354565b600b6020526000908152604090205460ff1681565b3480156104dd57600080fd5b50610325610ee2565b3480156104f257600080fd5b5061039a6105013660046125cb565b610f34565b34801561051257600080fd5b506103bc610521366004612354565b6000546001600160a01b0391821691161490565b34801561054157600080fd5b5060095b60405160ff909116815260200161032f565b34801561056357600080fd5b50602454610577906001600160a01b031681565b6040516001600160a01b03909116815260200161032f565b34801561059b57600080fd5b5061039a6105aa3660046124df565b610f95565b3480156105bb57600080fd5b506103bc6105ca366004612354565b610fe5565b3480156105db57600080fd5b5061039a6105ea3660046125fd565b610ff3565b3480156105fb57600080fd5b5061039a61060a366004612594565b61101d565b34801561061b57600080fd5b506024546103bc90600160a81b900460ff1681565b34801561063c57600080fd5b5061039a61064b3660046124df565b61105a565b34801561065c57600080fd5b506026546103bc9060ff1681565b34801561067657600080fd5b50600a546103bc9060ff1681565b34801561069057600080fd5b5061032561069f366004612354565b6001600160a01b031660009081526008602052604090205490565b3480156106c657600080fd5b5060245461054590600160b01b900460ff1681565b3480156106e757600080fd5b5061032560075481565b3480156106fd57600080fd5b5061032560065481565b34801561071357600080fd5b5061039a610722366004612666565b6110aa565b34801561073357600080fd5b506000546001600160a01b0316610577565b34801561075157600080fd5b5061039a610760366004612540565b61116b565b34801561077157600080fd5b50604080518082019091526005815264068646084960db1b602082015261036d565b34801561079f57600080fd5b5061039a6107ae3660046125fd565b61120a565b3480156107bf57600080fd5b50602354610577906001600160a01b031681565b3480156107df57600080fd5b506103bc6107ee366004612514565b611239565b3480156107ff57600080fd5b5061039a61080e3660046125af565b611246565b34801561081f57600080fd5b5061039a61082e366004612354565b6112b1565b34801561083f57600080fd5b5061039a61084e3660046125fd565b611302565b34801561085f57600080fd5b5061032560195481565b34801561087557600080fd5b506024546103bc90600160a01b900460ff1681565b34801561089657600080fd5b506103256108a53660046125fd565b61134d565b3480156108b657600080fd5b506103256108c5366004612371565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b3480156108fc57600080fd5b5061039a61090b3660046125af565b611394565b34801561091c57600080fd5b5061039a61092b3660046125fd565b6113d0565b34801561093c57600080fd5b5061039a61094b366004612354565b6113ff565b34801561095c57600080fd5b5061039a61096b366004612354565b61144a565b34801561097c57600080fd5b5061039a61098b3660046124df565b6114e0565b34801561099c57600080fd5b50602254610577906001600160a01b031681565b3480156109bc57600080fd5b5061032560185481565b3480156109d257600080fd5b506103bc6109e1366004612354565b60106020526000908152604090205460ff1681565b348015610a0257600080fd5b506103bc610a11366004612354565b611530565b6000546001600160a01b03163314610a495760405162461bcd60e51b8152600401610a40906126fe565b60405180910390fd5b6103e881600554610a5a91906127ee565b610a6491906127cc565b60075550565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610ac59086815260200190565b60405180910390a35060015b92915050565b600082610ae38361134d565b119392505050565b610af433611530565b610b105760405162461bcd60e51b8152600401610a409061271e565b601b80546001600160a01b03199081166001600160a01b0397881617909155601c8054821695871695909517909455601d8054851693861693909317909255601f80548416918516919091179055601e80549092169216919091179055565b6000546001600160a01b03163314610b995760405162461bcd60e51b8152600401610a40906126fe565b6101f58310610c005760405162461bcd60e51b815260206004820152602d60248201527f474153204572726f723a206d61782061697264726f70206c696d69742069732060448201526c3530302061646472657373657360981b6064820152608401610a40565b828114610c605760405162461bcd60e51b815260206004820152602860248201527f4d69736d61746368206265747765656e204164647265737320616e6420746f6b604482015267195b8818dbdd5b9d60c21b6064820152608401610a40565b6000805b84811015610ca457838382818110610c7e57610c7e612855565b9050602002013582610c9091906127b4565b915080610c9c81612824565b915050610c64565b5080610cc5876001600160a01b031660009081526008602052604090205490565b1015610d135760405162461bcd60e51b815260206004820152601b60248201527f4e6f7420656e6f75676820746f6b656e7320696e2077616c6c657400000000006044820152606401610a40565b60005b84811015610d7a57610d6787878784818110610d3457610d34612855565b9050602002016020810190610d499190612354565b868685818110610d5b57610d5b612855565b9050602002013561154e565b5080610d7281612824565b915050610d16565b50505050505050565b610d8c33611530565b610da85760405162461bcd60e51b8152600401610a409061271e565b47336108fc6064610db985856127ee565b610dc391906127cc565b6040518115909202916000818181858888f19350505050158015610deb573d6000803e3d6000fd5b505050565b610df933611530565b610e155760405162461bcd60e51b8152600401610a409061271e565b602091909155602155565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914610ecd576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600982528381203382529091529190912054610ea8918490611622565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b610ed884848461165c565b90505b9392505050565b6004546001600160a01b0316600090815260086020526040812054610f2f906003546001600160a01b0316600090815260086020526040902054610f299060055490611b21565b90611b21565b905090565b6000546001600160a01b03163314610f5e5760405162461bcd60e51b8152600401610a40906126fe565b6024805461ffff60a81b1916600160a81b9315159390930260ff60b01b191692909217600160b01b60ff9290921691909102179055565b610f9e33611530565b610fba5760405162461bcd60e51b8152600401610a409061271e565b6001600160a01b03919091166000908152600e60205260409020805460ff1916911515919091179055565b6000610ad182600019610a6a565b610ffc33611530565b6110185760405162461bcd60e51b8152600401610a409061271e565b600655565b6000546001600160a01b031633146110475760405162461bcd60e51b8152600401610a40906126fe565b600a805460ff1916911515919091179055565b61106333611530565b61107f5760405162461bcd60e51b8152600401610a409061271e565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b6110b333611530565b6110cf5760405162461bcd60e51b8152600401610a409061271e565b60118690556014859055601284905560138390556015829055611100826110fa858188818c8c611b63565b90611b63565b60165560178190556111136002826127cc565b601654106111635760405162461bcd60e51b815260206004820152601c60248201527f466565732063616e6e6f74206265206d6f7265207468616e20353025000000006044820152606401610a40565b505050505050565b6000546001600160a01b031633146111955760405162461bcd60e51b8152600401610a40906126fe565b60005b828110156112045781600b60008686858181106111b7576111b7612855565b90506020020160208101906111cc9190612354565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790556111fd81612824565b9050611198565b50505050565b6000546001600160a01b031633146112345760405162461bcd60e51b8152600401610a40906126fe565b601955565b6000610edb33848461165c565b6000546001600160a01b031633146112705760405162461bcd60e51b8152600401610a40906126fe565b6024805460ff60a01b1916600160a01b8415158102919091179182905560ff910416801561129e5750601954155b156112ad574360195560188190555b5050565b6000546001600160a01b031633146112db5760405162461bcd60e51b8152600401610a40906126fe565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6000546001600160a01b0316331461132c5760405162461bcd60e51b8152600401610a40906126fe565b6103e88160055461133d91906127ee565b61134791906127cc565b60065550565b6000610ad161135a610ee2565b6023546001600160a01b031660009081526008602052604090205461138e90611387906002905b90611bc2565b8590611bc2565b90611c41565b61139d33611530565b6113b95760405162461bcd60e51b8152600401610a409061271e565b6026805460ff191692151592909217909155602755565b6000546001600160a01b031633146113fa5760405162461bcd60e51b8152600401610a40906126fe565b601a55565b6000546001600160a01b031633146114295760405162461bcd60e51b8152600401610a40906126fe565b6001600160a01b03166000908152600160205260409020805460ff19169055565b6000546001600160a01b031633146114745760405162461bcd60e51b8152600401610a40906126fe565b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff191690921790915591519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163910160405180910390a150565b6114e933611530565b6115055760405162461bcd60e51b8152600401610a409061271e565b6001600160a01b03919091166000908152600d60205260409020805460ff1916911515919091179055565b6001600160a01b031660009081526001602052604090205460ff1690565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260089091529182205461159f918490611622565b6001600160a01b0380861660009081526008602052604080822093909355908516815220546115ce9083611b63565b6001600160a01b038085166000818152600860205260409081902093909355915190861690600080516020612884833981519152906116109086815260200190565b60405180910390a35060019392505050565b600081848411156116465760405162461bcd60e51b8152600401610a4091906126a9565b506000611653848661280d565b95945050505050565b60285460009060ff161561167c5761167584848461154e565b9050610edb565b6001600160a01b03841660009081526001602052604090205460ff161580156116be57506001600160a01b03831660009081526001602052604090205460ff16155b1561171457602454600160a01b900460ff166117145760405162461bcd60e51b815260206004820152601560248201527410d85b9d08141b185e48141bdad95b5bdb8816595d605a1b6044820152606401610a40565b600a5460ff16156117a4576001600160a01b0384166000908152600b602052604090205460ff1615801561176157506001600160a01b0383166000908152600b602052604090205460ff16155b6117a45760405162461bcd60e51b815260206004820152601460248201527310d85c1d1d5c9959081a5b88141bdad958985b1b60621b6044820152606401610a40565b6001600160a01b03841660009081526001602052604090205460ff161580156117d657506001600160a01b0383163014155b80156117f057506003546001600160a01b03848116911614155b801561180a57506023546001600160a01b03848116911614155b80156118245750601f546001600160a01b03848116911614155b156118c5576001600160a01b03831660009081526008602052604090205460075461184f84836127b4565b11156118c35760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e00006064820152608401610a40565b505b6023546001600160a01b0385811691161480156118eb5750602454600160a81b900460ff165b801561191057506001600160a01b0383166000908152600e602052604090205460ff16155b156119bb576001600160a01b038316600090815260256020526040902054421161198a5760405162461bcd60e51b815260206004820152602560248201527f506c65617365207761697420666f7220316d696e206265747765656e2074776f604482015264206275797360d81b6064820152608401610a40565b6024546119a190600160b01b900460ff16426127b4565b6001600160a01b0384166000908152602560205260409020555b6119c58483611c83565b6119cd611cec565b156119da576119da611d3b565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260089091529190912054611a2c918490611622565b6001600160a01b038516600090815260086020908152604080832093909355600c90529081205460ff16151580611a7d57506001600160a01b0384166000908152600c602052604090205460ff1615155b611aa457602354611a9f90869085906001600160a01b03888116911614612140565b611aa6565b825b6001600160a01b038516600090815260086020526040902054909150611acc9082611b63565b6001600160a01b03808616600081815260086020526040908190209390935591519087169060008051602061288483398151915290611b0e9085815260200190565b60405180910390a3506001949350505050565b6000610edb83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611622565b600080611b7083856127b4565b905083811015610edb5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610a40565b600082611bd157506000610ad1565b6000611bdd83856127ee565b905082611bea85836127cc565b14610edb5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610a40565b6000610edb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506122c5565b60065481111580611cac57506001600160a01b0382166000908152600d602052604090205460ff165b6112ad5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610a40565b6023546000906001600160a01b03163314801590611d0d575060285460ff16155b8015611d1b575060265460ff165b8015610f2f57505060275430600090815260086020526040902054101590565b6028805460ff19166001179055602054602154600091611d5a91610ad7565b611d6657601154611d69565b60005b90506000611d8d600261138e60165461138e86602754611bc290919063ffffffff16565b90506000611da682602754611b2190919063ffffffff16565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110611de057611de0612855565b6001600160a01b039283166020918202929092010152600254825191169082906001908110611e1157611e11612855565b6001600160a01b03928316602091820292909201015260225460405163791ac94760e01b81524792919091169063791ac94790611e5b908690600090879030904290600401612743565b600060405180830381600087803b158015611e7557600080fd5b505af1158015611e89573d6000803e3d6000fd5b505050506000611ea28247611b2190919063ffffffff16565b90506000611ebd611eb4886002611c41565b60165490611b21565b90506000611ed2600261138e8481878d611bc2565b90506000611eef8361138e60125487611bc290919063ffffffff16565b90506000611f0c8461138e60145488611bc290919063ffffffff16565b90506000611f298561138e60135489611bc290919063ffffffff16565b601c546040519192506000916001600160a01b039091169061753090869084818181858888f193505050503d8060008114611f80576040519150601f19603f3d011682016040523d82523d6000602084013e611f85565b606091505b5050601d546040519192506001600160a01b0316906175309084906000818181858888f193505050503d8060008114611fda576040519150601f19603f3d011682016040523d82523d6000602084013e611fdf565b606091505b5050601e546040519192506001600160a01b0316906175309085906000818181858888f193505050503d8060008114612034576040519150601f19603f3d011682016040523d82523d6000602084013e612039565b606091505b5060009250508b15905061212857602254601b5460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c4016060604051808303818588803b1580156120b257600080fd5b505af11580156120c6573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906120eb9190612638565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506028805460ff1916905550505050505050505050565b6000808261214f576064612153565b601a545b90506000612182601754606461216991906127ee565b61138e846113816016548a611bc290919063ffffffff16565b9050831580156121a057504360185460195461219e91906127b4565b115b156121b8576121b56063611381876064611c41565b90505b60006121d560165461138e60155485611bc290919063ffffffff16565b905060006121e38383611b21565b306000908152600860205260409020549091506122009082611b63565b3060009081526008602052604080822092909255601f546001600160a01b03168152205461222e9083611b63565b601f546001600160a01b0390811660009081526008602090815260409182902093909355518381523092918b1691600080516020612884833981519152910160405180910390a381156122af57601f546040518381526001600160a01b03918216918a16906000805160206128848339815191529060200160405180910390a35b6122b98784611b21565b98975050505050505050565b600081836122e65760405162461bcd60e51b8152600401610a4091906126a9565b50600061165384866127cc565b60008083601f84011261230557600080fd5b50813567ffffffffffffffff81111561231d57600080fd5b6020830191508360208260051b850101111561233857600080fd5b9250929050565b8035801515811461234f57600080fd5b919050565b60006020828403121561236657600080fd5b8135610edb8161286b565b6000806040838503121561238457600080fd5b823561238f8161286b565b9150602083013561239f8161286b565b809150509250929050565b600080600080600060a086880312156123c257600080fd5b85356123cd8161286b565b945060208601356123dd8161286b565b935060408601356123ed8161286b565b925060608601356123fd8161286b565b9150608086013561240d8161286b565b809150509295509295909350565b60008060006060848603121561243057600080fd5b833561243b8161286b565b9250602084013561244b8161286b565b929592945050506040919091013590565b60008060008060006060868803121561247457600080fd5b853561247f8161286b565b9450602086013567ffffffffffffffff8082111561249c57600080fd5b6124a889838a016122f3565b909650945060408801359150808211156124c157600080fd5b506124ce888289016122f3565b969995985093965092949392505050565b600080604083850312156124f257600080fd5b82356124fd8161286b565b915061250b6020840161233f565b90509250929050565b6000806040838503121561252757600080fd5b82356125328161286b565b946020939093013593505050565b60008060006040848603121561255557600080fd5b833567ffffffffffffffff81111561256c57600080fd5b612578868287016122f3565b909450925061258b90506020850161233f565b90509250925092565b6000602082840312156125a657600080fd5b610edb8261233f565b600080604083850312156125c257600080fd5b6125328361233f565b600080604083850312156125de57600080fd5b6125e78361233f565b9150602083013560ff8116811461239f57600080fd5b60006020828403121561260f57600080fd5b5035919050565b6000806040838503121561262957600080fd5b50508035926020909101359150565b60008060006060848603121561264d57600080fd5b8351925060208401519150604084015190509250925092565b60008060008060008060c0878903121561267f57600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b600060208083528351808285015260005b818110156126d6578581018301518582016040015282016126ba565b818111156126e8576000604083870101525b50601f01601f1916929092016040019392505050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156127935784516001600160a01b03168352938301939183019160010161276e565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156127c7576127c761283f565b500190565b6000826127e957634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156128085761280861283f565b500290565b60008282101561281f5761281f61283f565b500390565b60006000198214156128385761283861283f565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b038116811461288057600080fd5b5056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212206a88f7622cef32f78688f5cde8838f761bf86981e7ee639599d4b35cc221837b64736f6c63430008050033
Deployed Bytecode
0x6080604052600436106103035760003560e01c8063722b62ad11610190578063bf56b371116100dc578063f0b37c0411610095578063f887ea401161006f578063f887ea4014610990578063fabb0b4f146109b0578063fe575a87146109c6578063fe9fbb80146109f657600080fd5b8063f0b37c0414610930578063f2fde38b14610950578063f84ba65d1461097057600080fd5b8063bf56b37114610853578063c072030b14610869578063d51ed1c81461088a578063dd62ed3e146108aa578063df20fd49146108f0578063ec72d65f1461091057600080fd5b806395d89b4111610149578063a9059cbb11610123578063a9059cbb146107d3578063b1e7a63c146107f3578063b6a5d7de14610813578063bd9ab5371461083357600080fd5b806395d89b41146107655780639ba1fc4c14610793578063a8aa1b31146107b357600080fd5b8063722b62ad146106ba57806378109e54146106db5780637d1db4a5146106f157806386f6c3c114610707578063893d20e8146107275780638e2eee841461074557600080fd5b80632d5945671161024f5780635c85974f11610208578063658d4b7f116101e2578063658d4b7f146106305780636ddd171314610650578063701d09921461066a57806370a082311461068457600080fd5b80635c85974f146105cf5780635e562f3b146105ef578063617fe0ed1461060f57600080fd5b80632d594567146104e65780632f54bf6e14610506578063313ce567146105355780634d709adf1461055757806350db71fb1461058f578063571ac8b0146105af57600080fd5b806318abb635116102bc578063201e799111610296578063201e79911461046157806323b872dd14610481578063249db09f146104a15780632b112e49146104d157600080fd5b806318abb635146104015780631ca0a28d146104215780631da1db5e1461044157600080fd5b80630445b6671461030f57806306fdde031461033857806309302dc61461037a578063095ea7b31461039c5780631161ae39146103cc57806318160ddd146103ec57600080fd5b3661030a57005b600080fd5b34801561031b57600080fd5b5061032560275481565b6040519081526020015b60405180910390f35b34801561034457600080fd5b5060408051808201909152601081526f343230204275726e696e672048617a6560801b60208201525b60405161032f91906126a9565b34801561038657600080fd5b5061039a6103953660046125fd565b610a16565b005b3480156103a857600080fd5b506103bc6103b7366004612514565b610a6a565b604051901515815260200161032f565b3480156103d857600080fd5b506103bc6103e7366004612616565b610ad7565b3480156103f857600080fd5b50600554610325565b34801561040d57600080fd5b5061039a61041c3660046123aa565b610aeb565b34801561042d57600080fd5b5061039a61043c36600461245c565b610b6f565b34801561044d57600080fd5b5061039a61045c3660046125fd565b610d83565b34801561046d57600080fd5b5061039a61047c366004612616565b610df0565b34801561048d57600080fd5b506103bc61049c36600461241b565b610e20565b3480156104ad57600080fd5b506103bc6104bc366004612354565b600b6020526000908152604090205460ff1681565b3480156104dd57600080fd5b50610325610ee2565b3480156104f257600080fd5b5061039a6105013660046125cb565b610f34565b34801561051257600080fd5b506103bc610521366004612354565b6000546001600160a01b0391821691161490565b34801561054157600080fd5b5060095b60405160ff909116815260200161032f565b34801561056357600080fd5b50602454610577906001600160a01b031681565b6040516001600160a01b03909116815260200161032f565b34801561059b57600080fd5b5061039a6105aa3660046124df565b610f95565b3480156105bb57600080fd5b506103bc6105ca366004612354565b610fe5565b3480156105db57600080fd5b5061039a6105ea3660046125fd565b610ff3565b3480156105fb57600080fd5b5061039a61060a366004612594565b61101d565b34801561061b57600080fd5b506024546103bc90600160a81b900460ff1681565b34801561063c57600080fd5b5061039a61064b3660046124df565b61105a565b34801561065c57600080fd5b506026546103bc9060ff1681565b34801561067657600080fd5b50600a546103bc9060ff1681565b34801561069057600080fd5b5061032561069f366004612354565b6001600160a01b031660009081526008602052604090205490565b3480156106c657600080fd5b5060245461054590600160b01b900460ff1681565b3480156106e757600080fd5b5061032560075481565b3480156106fd57600080fd5b5061032560065481565b34801561071357600080fd5b5061039a610722366004612666565b6110aa565b34801561073357600080fd5b506000546001600160a01b0316610577565b34801561075157600080fd5b5061039a610760366004612540565b61116b565b34801561077157600080fd5b50604080518082019091526005815264068646084960db1b602082015261036d565b34801561079f57600080fd5b5061039a6107ae3660046125fd565b61120a565b3480156107bf57600080fd5b50602354610577906001600160a01b031681565b3480156107df57600080fd5b506103bc6107ee366004612514565b611239565b3480156107ff57600080fd5b5061039a61080e3660046125af565b611246565b34801561081f57600080fd5b5061039a61082e366004612354565b6112b1565b34801561083f57600080fd5b5061039a61084e3660046125fd565b611302565b34801561085f57600080fd5b5061032560195481565b34801561087557600080fd5b506024546103bc90600160a01b900460ff1681565b34801561089657600080fd5b506103256108a53660046125fd565b61134d565b3480156108b657600080fd5b506103256108c5366004612371565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b3480156108fc57600080fd5b5061039a61090b3660046125af565b611394565b34801561091c57600080fd5b5061039a61092b3660046125fd565b6113d0565b34801561093c57600080fd5b5061039a61094b366004612354565b6113ff565b34801561095c57600080fd5b5061039a61096b366004612354565b61144a565b34801561097c57600080fd5b5061039a61098b3660046124df565b6114e0565b34801561099c57600080fd5b50602254610577906001600160a01b031681565b3480156109bc57600080fd5b5061032560185481565b3480156109d257600080fd5b506103bc6109e1366004612354565b60106020526000908152604090205460ff1681565b348015610a0257600080fd5b506103bc610a11366004612354565b611530565b6000546001600160a01b03163314610a495760405162461bcd60e51b8152600401610a40906126fe565b60405180910390fd5b6103e881600554610a5a91906127ee565b610a6491906127cc565b60075550565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610ac59086815260200190565b60405180910390a35060015b92915050565b600082610ae38361134d565b119392505050565b610af433611530565b610b105760405162461bcd60e51b8152600401610a409061271e565b601b80546001600160a01b03199081166001600160a01b0397881617909155601c8054821695871695909517909455601d8054851693861693909317909255601f80548416918516919091179055601e80549092169216919091179055565b6000546001600160a01b03163314610b995760405162461bcd60e51b8152600401610a40906126fe565b6101f58310610c005760405162461bcd60e51b815260206004820152602d60248201527f474153204572726f723a206d61782061697264726f70206c696d69742069732060448201526c3530302061646472657373657360981b6064820152608401610a40565b828114610c605760405162461bcd60e51b815260206004820152602860248201527f4d69736d61746368206265747765656e204164647265737320616e6420746f6b604482015267195b8818dbdd5b9d60c21b6064820152608401610a40565b6000805b84811015610ca457838382818110610c7e57610c7e612855565b9050602002013582610c9091906127b4565b915080610c9c81612824565b915050610c64565b5080610cc5876001600160a01b031660009081526008602052604090205490565b1015610d135760405162461bcd60e51b815260206004820152601b60248201527f4e6f7420656e6f75676820746f6b656e7320696e2077616c6c657400000000006044820152606401610a40565b60005b84811015610d7a57610d6787878784818110610d3457610d34612855565b9050602002016020810190610d499190612354565b868685818110610d5b57610d5b612855565b9050602002013561154e565b5080610d7281612824565b915050610d16565b50505050505050565b610d8c33611530565b610da85760405162461bcd60e51b8152600401610a409061271e565b47336108fc6064610db985856127ee565b610dc391906127cc565b6040518115909202916000818181858888f19350505050158015610deb573d6000803e3d6000fd5b505050565b610df933611530565b610e155760405162461bcd60e51b8152600401610a409061271e565b602091909155602155565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914610ecd576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600982528381203382529091529190912054610ea8918490611622565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b610ed884848461165c565b90505b9392505050565b6004546001600160a01b0316600090815260086020526040812054610f2f906003546001600160a01b0316600090815260086020526040902054610f299060055490611b21565b90611b21565b905090565b6000546001600160a01b03163314610f5e5760405162461bcd60e51b8152600401610a40906126fe565b6024805461ffff60a81b1916600160a81b9315159390930260ff60b01b191692909217600160b01b60ff9290921691909102179055565b610f9e33611530565b610fba5760405162461bcd60e51b8152600401610a409061271e565b6001600160a01b03919091166000908152600e60205260409020805460ff1916911515919091179055565b6000610ad182600019610a6a565b610ffc33611530565b6110185760405162461bcd60e51b8152600401610a409061271e565b600655565b6000546001600160a01b031633146110475760405162461bcd60e51b8152600401610a40906126fe565b600a805460ff1916911515919091179055565b61106333611530565b61107f5760405162461bcd60e51b8152600401610a409061271e565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b6110b333611530565b6110cf5760405162461bcd60e51b8152600401610a409061271e565b60118690556014859055601284905560138390556015829055611100826110fa858188818c8c611b63565b90611b63565b60165560178190556111136002826127cc565b601654106111635760405162461bcd60e51b815260206004820152601c60248201527f466565732063616e6e6f74206265206d6f7265207468616e20353025000000006044820152606401610a40565b505050505050565b6000546001600160a01b031633146111955760405162461bcd60e51b8152600401610a40906126fe565b60005b828110156112045781600b60008686858181106111b7576111b7612855565b90506020020160208101906111cc9190612354565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790556111fd81612824565b9050611198565b50505050565b6000546001600160a01b031633146112345760405162461bcd60e51b8152600401610a40906126fe565b601955565b6000610edb33848461165c565b6000546001600160a01b031633146112705760405162461bcd60e51b8152600401610a40906126fe565b6024805460ff60a01b1916600160a01b8415158102919091179182905560ff910416801561129e5750601954155b156112ad574360195560188190555b5050565b6000546001600160a01b031633146112db5760405162461bcd60e51b8152600401610a40906126fe565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6000546001600160a01b0316331461132c5760405162461bcd60e51b8152600401610a40906126fe565b6103e88160055461133d91906127ee565b61134791906127cc565b60065550565b6000610ad161135a610ee2565b6023546001600160a01b031660009081526008602052604090205461138e90611387906002905b90611bc2565b8590611bc2565b90611c41565b61139d33611530565b6113b95760405162461bcd60e51b8152600401610a409061271e565b6026805460ff191692151592909217909155602755565b6000546001600160a01b031633146113fa5760405162461bcd60e51b8152600401610a40906126fe565b601a55565b6000546001600160a01b031633146114295760405162461bcd60e51b8152600401610a40906126fe565b6001600160a01b03166000908152600160205260409020805460ff19169055565b6000546001600160a01b031633146114745760405162461bcd60e51b8152600401610a40906126fe565b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff191690921790915591519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163910160405180910390a150565b6114e933611530565b6115055760405162461bcd60e51b8152600401610a409061271e565b6001600160a01b03919091166000908152600d60205260409020805460ff1916911515919091179055565b6001600160a01b031660009081526001602052604090205460ff1690565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260089091529182205461159f918490611622565b6001600160a01b0380861660009081526008602052604080822093909355908516815220546115ce9083611b63565b6001600160a01b038085166000818152600860205260409081902093909355915190861690600080516020612884833981519152906116109086815260200190565b60405180910390a35060019392505050565b600081848411156116465760405162461bcd60e51b8152600401610a4091906126a9565b506000611653848661280d565b95945050505050565b60285460009060ff161561167c5761167584848461154e565b9050610edb565b6001600160a01b03841660009081526001602052604090205460ff161580156116be57506001600160a01b03831660009081526001602052604090205460ff16155b1561171457602454600160a01b900460ff166117145760405162461bcd60e51b815260206004820152601560248201527410d85b9d08141b185e48141bdad95b5bdb8816595d605a1b6044820152606401610a40565b600a5460ff16156117a4576001600160a01b0384166000908152600b602052604090205460ff1615801561176157506001600160a01b0383166000908152600b602052604090205460ff16155b6117a45760405162461bcd60e51b815260206004820152601460248201527310d85c1d1d5c9959081a5b88141bdad958985b1b60621b6044820152606401610a40565b6001600160a01b03841660009081526001602052604090205460ff161580156117d657506001600160a01b0383163014155b80156117f057506003546001600160a01b03848116911614155b801561180a57506023546001600160a01b03848116911614155b80156118245750601f546001600160a01b03848116911614155b156118c5576001600160a01b03831660009081526008602052604090205460075461184f84836127b4565b11156118c35760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e00006064820152608401610a40565b505b6023546001600160a01b0385811691161480156118eb5750602454600160a81b900460ff165b801561191057506001600160a01b0383166000908152600e602052604090205460ff16155b156119bb576001600160a01b038316600090815260256020526040902054421161198a5760405162461bcd60e51b815260206004820152602560248201527f506c65617365207761697420666f7220316d696e206265747765656e2074776f604482015264206275797360d81b6064820152608401610a40565b6024546119a190600160b01b900460ff16426127b4565b6001600160a01b0384166000908152602560205260409020555b6119c58483611c83565b6119cd611cec565b156119da576119da611d3b565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260089091529190912054611a2c918490611622565b6001600160a01b038516600090815260086020908152604080832093909355600c90529081205460ff16151580611a7d57506001600160a01b0384166000908152600c602052604090205460ff1615155b611aa457602354611a9f90869085906001600160a01b03888116911614612140565b611aa6565b825b6001600160a01b038516600090815260086020526040902054909150611acc9082611b63565b6001600160a01b03808616600081815260086020526040908190209390935591519087169060008051602061288483398151915290611b0e9085815260200190565b60405180910390a3506001949350505050565b6000610edb83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611622565b600080611b7083856127b4565b905083811015610edb5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610a40565b600082611bd157506000610ad1565b6000611bdd83856127ee565b905082611bea85836127cc565b14610edb5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610a40565b6000610edb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506122c5565b60065481111580611cac57506001600160a01b0382166000908152600d602052604090205460ff165b6112ad5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610a40565b6023546000906001600160a01b03163314801590611d0d575060285460ff16155b8015611d1b575060265460ff165b8015610f2f57505060275430600090815260086020526040902054101590565b6028805460ff19166001179055602054602154600091611d5a91610ad7565b611d6657601154611d69565b60005b90506000611d8d600261138e60165461138e86602754611bc290919063ffffffff16565b90506000611da682602754611b2190919063ffffffff16565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110611de057611de0612855565b6001600160a01b039283166020918202929092010152600254825191169082906001908110611e1157611e11612855565b6001600160a01b03928316602091820292909201015260225460405163791ac94760e01b81524792919091169063791ac94790611e5b908690600090879030904290600401612743565b600060405180830381600087803b158015611e7557600080fd5b505af1158015611e89573d6000803e3d6000fd5b505050506000611ea28247611b2190919063ffffffff16565b90506000611ebd611eb4886002611c41565b60165490611b21565b90506000611ed2600261138e8481878d611bc2565b90506000611eef8361138e60125487611bc290919063ffffffff16565b90506000611f0c8461138e60145488611bc290919063ffffffff16565b90506000611f298561138e60135489611bc290919063ffffffff16565b601c546040519192506000916001600160a01b039091169061753090869084818181858888f193505050503d8060008114611f80576040519150601f19603f3d011682016040523d82523d6000602084013e611f85565b606091505b5050601d546040519192506001600160a01b0316906175309084906000818181858888f193505050503d8060008114611fda576040519150601f19603f3d011682016040523d82523d6000602084013e611fdf565b606091505b5050601e546040519192506001600160a01b0316906175309085906000818181858888f193505050503d8060008114612034576040519150601f19603f3d011682016040523d82523d6000602084013e612039565b606091505b5060009250508b15905061212857602254601b5460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c4016060604051808303818588803b1580156120b257600080fd5b505af11580156120c6573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906120eb9190612638565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506028805460ff1916905550505050505050505050565b6000808261214f576064612153565b601a545b90506000612182601754606461216991906127ee565b61138e846113816016548a611bc290919063ffffffff16565b9050831580156121a057504360185460195461219e91906127b4565b115b156121b8576121b56063611381876064611c41565b90505b60006121d560165461138e60155485611bc290919063ffffffff16565b905060006121e38383611b21565b306000908152600860205260409020549091506122009082611b63565b3060009081526008602052604080822092909255601f546001600160a01b03168152205461222e9083611b63565b601f546001600160a01b0390811660009081526008602090815260409182902093909355518381523092918b1691600080516020612884833981519152910160405180910390a381156122af57601f546040518381526001600160a01b03918216918a16906000805160206128848339815191529060200160405180910390a35b6122b98784611b21565b98975050505050505050565b600081836122e65760405162461bcd60e51b8152600401610a4091906126a9565b50600061165384866127cc565b60008083601f84011261230557600080fd5b50813567ffffffffffffffff81111561231d57600080fd5b6020830191508360208260051b850101111561233857600080fd5b9250929050565b8035801515811461234f57600080fd5b919050565b60006020828403121561236657600080fd5b8135610edb8161286b565b6000806040838503121561238457600080fd5b823561238f8161286b565b9150602083013561239f8161286b565b809150509250929050565b600080600080600060a086880312156123c257600080fd5b85356123cd8161286b565b945060208601356123dd8161286b565b935060408601356123ed8161286b565b925060608601356123fd8161286b565b9150608086013561240d8161286b565b809150509295509295909350565b60008060006060848603121561243057600080fd5b833561243b8161286b565b9250602084013561244b8161286b565b929592945050506040919091013590565b60008060008060006060868803121561247457600080fd5b853561247f8161286b565b9450602086013567ffffffffffffffff8082111561249c57600080fd5b6124a889838a016122f3565b909650945060408801359150808211156124c157600080fd5b506124ce888289016122f3565b969995985093965092949392505050565b600080604083850312156124f257600080fd5b82356124fd8161286b565b915061250b6020840161233f565b90509250929050565b6000806040838503121561252757600080fd5b82356125328161286b565b946020939093013593505050565b60008060006040848603121561255557600080fd5b833567ffffffffffffffff81111561256c57600080fd5b612578868287016122f3565b909450925061258b90506020850161233f565b90509250925092565b6000602082840312156125a657600080fd5b610edb8261233f565b600080604083850312156125c257600080fd5b6125328361233f565b600080604083850312156125de57600080fd5b6125e78361233f565b9150602083013560ff8116811461239f57600080fd5b60006020828403121561260f57600080fd5b5035919050565b6000806040838503121561262957600080fd5b50508035926020909101359150565b60008060006060848603121561264d57600080fd5b8351925060208401519150604084015190509250925092565b60008060008060008060c0878903121561267f57600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b600060208083528351808285015260005b818110156126d6578581018301518582016040015282016126ba565b818111156126e8576000604083870101525b50601f01601f1916929092016040019392505050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156127935784516001600160a01b03168352938301939183019160010161276e565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156127c7576127c761283f565b500190565b6000826127e957634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156128085761280861283f565b500290565b60008282101561281f5761281f61283f565b500390565b60006000198214156128385761283861283f565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b038116811461288057600080fd5b5056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212206a88f7622cef32f78688f5cde8838f761bf86981e7ee639599d4b35cc221837b64736f6c63430008050033
Deployed ByteCode Sourcemap
5322:15144:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7471:56;;;;;;;;;;;;;;;;;;;14344:25:1;;;14332:2;14317:18;7471:56:0;;;;;;;;9046:80;;;;;;;;;;-1:-1:-1;9118:5:0;;;;;;;;;;;;-1:-1:-1;;;9118:5:0;;;;9046:80;;;;;;;:::i;10364:177::-;;;;;;;;;;-1:-1:-1;10364:177:0;;;;;:::i;:::-;;:::i;:::-;;9468:216;;;;;;;;;;-1:-1:-1;9468:216:0;;;;;:::i;:::-;;:::i;:::-;;;8266:14:1;;8259:22;8241:41;;8229:2;8214:18;9468:216:0;8196:92:1;19624:150:0;;;;;;;;;;-1:-1:-1;19624:150:0;;;;;:::i;:::-;;:::i;8776:88::-;;;;;;;;;;-1:-1:-1;8849:12:0;;8776:88;;18482:450;;;;;;;;;;-1:-1:-1;18482:450:0;;;;;:::i;:::-;;:::i;19804:594::-;;;;;;;;;;-1:-1:-1;19804:594:0;;;;;:::i;:::-;;:::i;14303:208::-;;;;;;;;;;-1:-1:-1;14303:208:0;;;;;:::i;:::-;;:::i;19104:183::-;;;;;;;;;;-1:-1:-1;19104:183:0;;;;;:::i;:::-;;:::i;9986:370::-;;;;;;;;;;-1:-1:-1;9986:370:0;;;;;:::i;:::-;;:::i;6084:45::-;;;;;;;;;;-1:-1:-1;6084:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;19299:142;;;;;;;;;;;;;:::i;15085:164::-;;;;;;;;;;-1:-1:-1;15085:164:0;;;;;:::i;:::-;;:::i;3330:103::-;;;;;;;;;;-1:-1:-1;3330:103:0;;;;;:::i;:::-;3385:4;3420:5;-1:-1:-1;;;;;3409:16:0;;;3420:5;;3409:16;;3330:103;8870:80;;;;;;;;;;-1:-1:-1;5721:1:0;8870:80;;;15790:4:1;15778:17;;;15760:36;;15748:2;15733:18;8870:80:0;15715:87:1;7204:31:0;;;;;;;;;;-1:-1:-1;7204:31:0;;;;-1:-1:-1;;;;;7204:31:0;;;;;;-1:-1:-1;;;;;7229:32:1;;;7211:51;;7199:2;7184:18;7204:31:0;7166:102:1;17771:130:0;;;;;;;;;;-1:-1:-1;17771:130:0;;;;;:::i;:::-;;:::i;9692:122::-;;;;;;;;;;-1:-1:-1;9692:122:0;;;;;:::i;:::-;;:::i;10727:96::-;;;;;;;;;;-1:-1:-1;10727:96:0;;;;;:::i;:::-;;:::i;17178:104::-;;;;;;;;;;-1:-1:-1;17178:104:0;;;;;:::i;:::-;;:::i;7287:38::-;;;;;;;;;;-1:-1:-1;7287:38:0;;;;-1:-1:-1;;;7287:38:0;;;;;;17507:120;;;;;;;;;;-1:-1:-1;17507:120:0;;;;;:::i;:::-;;:::i;7434:30::-;;;;;;;;;;-1:-1:-1;7434:30:0;;;;;;;;6040:37;;;;;;;;;;-1:-1:-1;6040:37:0;;;;;;;;9216:105;;;;;;;;;;-1:-1:-1;9216:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;9300:18:0;9282:7;9300:18;;;:9;:18;;;;;;;9216:105;7332:39;;;;;;;;;;-1:-1:-1;7332:39:0;;;;-1:-1:-1;;;7332:39:0;;;;;;5855:59;;;;;;;;;;;;;;;;5790:56;;;;;;;;;;;;;;;;17909:565;;;;;;;;;;-1:-1:-1;17909:565:0;;;;;:::i;:::-;;:::i;9132:78::-;;;;;;;;;;-1:-1:-1;9184:7:0;9202:5;-1:-1:-1;;;;;9202:5:0;9132:78;;17290:209;;;;;;;;;;-1:-1:-1;17290:209:0;;;;;:::i;:::-;;:::i;8956:84::-;;;;;;;;;;-1:-1:-1;9030:7:0;;;;;;;;;;;;-1:-1:-1;;;9030:7:0;;;;8956:84;;14933:105;;;;;;;;;;-1:-1:-1;14933:105:0;;;;;:::i;:::-;;:::i;7178:19::-;;;;;;;;;;-1:-1:-1;7178:19:0;;;;-1:-1:-1;;;;;7178:19:0;;;9822:156;;;;;;;;;;-1:-1:-1;9822:156:0;;;;;:::i;:::-;;:::i;14671:254::-;;;;;;;;;;-1:-1:-1;14671:254:0;;;;;:::i;:::-;;:::i;3123:94::-;;;;;;;;;;-1:-1:-1;3123:94:0;;;;;:::i;:::-;;:::i;10547:172::-;;;;;;;;;;-1:-1:-1;10547:172:0;;;;;:::i;:::-;;:::i;6776:29::-;;;;;;;;;;;;;;;;7244:34;;;;;;;;;;-1:-1:-1;7244:34:0;;;;-1:-1:-1;;;7244:34:0;;;;;;19449:167;;;;;;;;;;-1:-1:-1;19449:167:0;;;;;:::i;:::-;;:::i;9327:133::-;;;;;;;;;;-1:-1:-1;9327:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;9429:19:0;;;9411:7;9429:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;9327:133;18940:156;;;;;;;;;;-1:-1:-1;18940:156:0;;;;;:::i;:::-;;:::i;14519:121::-;;;;;;;;;;-1:-1:-1;14519:121:0;;;;;:::i;:::-;;:::i;3225:97::-;;;;;;;;;;-1:-1:-1;3225:97:0;;;;;:::i;:::-;;:::i;3556:173::-;;;;;;;;;;-1:-1:-1;3556:173:0;;;;;:::i;:::-;;:::i;17635:128::-;;;;;;;;;;-1:-1:-1;17635:128:0;;;;;:::i;:::-;;:::i;7147:24::-;;;;;;;;;;-1:-1:-1;7147:24:0;;;;-1:-1:-1;;;;;7147:24:0;;;6740:29;;;;;;;;;;;;;;;;6328:46;;;;;;;;;;-1:-1:-1;6328:46:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;3441:107;;;;;;;;;;-1:-1:-1;3441:107:0;;;;;:::i;:::-;;:::i;10364:177::-;3385:4;3420:5;-1:-1:-1;;;;;3420:5:0;2982:10;3409:16;2966:38;;;;-1:-1:-1;;;2966:38:0;;;;;;;:::i;:::-;;;;;;;;;10529:4:::1;10501:23;10486:12;;:38;;;;:::i;:::-;10485:48;;;;:::i;:::-;10467:15;:66:::0;-1:-1:-1;10364:177:0:o;9468:216::-;9572:10;9543:4;9560:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;9560:32:0;;;;;;;;;;:41;;;9617:37;9543:4;;9560:32;;9617:37;;;;9595:6;14344:25:1;;14332:2;14317:18;;14299:76;9617:37:0;;;;;;;;-1:-1:-1;9672:4:0;9468:216;;;;;:::o;19624:150::-;19704:4;19760:6;19728:29;19748:8;19728:19;:29::i;:::-;:38;;19624:150;-1:-1:-1;;;19624:150:0:o;18482:450::-;3064:24;3077:10;3064:12;:24::i;:::-;3056:48;;;;-1:-1:-1;;;3056:48:0;;;;;;;:::i;:::-;18682:21:::1;:46:::0;;-1:-1:-1;;;;;;18682:46:0;;::::1;-1:-1:-1::0;;;;;18682:46:0;;::::1;;::::0;;;18739:20:::1;:44:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;18794:19:::1;:42:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;18847:15:::1;:34:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;18892:14:::1;:32:::0;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;18482:450::o;19804:594::-;3385:4;3420:5;-1:-1:-1;;;;;3420:5:0;2982:10;3409:16;2966:38;;;;-1:-1:-1;;;2966:38:0;;;;;;;:::i;:::-;19953:3:::1;19934:22:::0;::::1;19926:79;;;::::0;-1:-1:-1;;;19926:79:0;;12963:2:1;19926:79:0::1;::::0;::::1;12945:21:1::0;13002:2;12982:18;;;12975:30;13041:34;13021:18;;;13014:62;-1:-1:-1;;;13092:18:1;;;13085:43;13145:19;;19926:79:0::1;12935:235:1::0;19926:79:0::1;20020:33:::0;;::::1;20012:85;;;::::0;-1:-1:-1;;;20012:85:0;;9550:2:1;20012:85:0::1;::::0;::::1;9532:21:1::0;9589:2;9569:18;;;9562:30;9628:34;9608:18;;;9601:62;-1:-1:-1;;;9679:18:1;;;9672:38;9727:19;;20012:85:0::1;9522:230:1::0;20012:85:0::1;20106:12;20135:6:::0;20131:82:::1;20145:20:::0;;::::1;20131:82;;;20196:6;;20203:1;20196:9;;;;;;;:::i;:::-;;;;;;;20189:4;:16;;;;:::i;:::-;20182:23:::0;-1:-1:-1;20167:3:0;::::1;::::0;::::1;:::i;:::-;;;;20131:82;;;;20248:4;20229:15;20239:4;-1:-1:-1::0;;;;;9300:18:0;9282:7;9300:18;;;:9;:18;;;;;;;9216:105;20229:15:::1;:23;;20221:63;;;::::0;-1:-1:-1;;;20221:63:0;;11774:2:1;20221:63:0::1;::::0;::::1;11756:21:1::0;11813:2;11793:18;;;11786:30;11852:29;11832:18;;;11825:57;11899:18;;20221:63:0::1;11746:177:1::0;20221:63:0::1;20297:6;20293:102;20307:20:::0;;::::1;20293:102;;;20344:43;20359:4;20364:9;;20374:1;20364:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;20377:6;;20384:1;20377:9;;;;;;;:::i;:::-;;;;;;;20344:14;:43::i;:::-;-1:-1:-1::0;20329:3:0;::::1;::::0;::::1;:::i;:::-;;;;20293:102;;;;19917:481;19804:594:::0;;;;;:::o;14303:208::-;3064:24;3077:10;3064:12;:24::i;:::-;3056:48;;;;-1:-1:-1;;;3056:48:0;;;;;;;:::i;:::-;14407:21:::1;14447:10;14439:64;14499:3;14468:28;14480:16:::0;14407:21;14468:28:::1;:::i;:::-;:34;;;;:::i;:::-;14439:64;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;14376:135;14303:208:::0;:::o;19104:183::-;3064:24;3077:10;3064:12;:24::i;:::-;3056:48;;;;-1:-1:-1;;;3056:48:0;;;;;;;:::i;:::-;19202:15:::1;:25:::0;;;;19238:26:::1;:41:::0;19104:183::o;9986:370::-;-1:-1:-1;;;;;10106:19:0;;10086:4;10106:19;;;:11;:19;;;;;;;;10126:10;10106:31;;;;;;;;-1:-1:-1;;10106:52:0;10103:186;;10208:69;;;;;;;;;;;-1:-1:-1;;;10208:69:0;;;;;;;;-1:-1:-1;;;;;10208:19:0;;-1:-1:-1;10208:19:0;;;:11;:19;;;;;10228:10;10208:31;;;;;;;;;;:69;;10244:6;;10208:35;:69::i;:::-;-1:-1:-1;;;;;10174:19:0;;;;;;:11;:19;;;;;;;;10194:10;10174:31;;;;;;;:103;10103:186;10308:40;10322:6;10330:9;10341:6;10308:13;:40::i;:::-;10301:47;;9986:370;;;;;;:::o;19299:142::-;19427:4;;-1:-1:-1;;;;;19427:4:0;19352:7;9300:18;;;:9;:18;;;;;;19379:54;;19406:4;;-1:-1:-1;;;;;19406:4:0;9282:7;9300:18;;;:9;:18;;;;;;19379:33;;:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;19372:61;;19299:142;:::o;15085:164::-;3385:4;3420:5;-1:-1:-1;;;;;3420:5:0;2982:10;3409:16;2966:38;;;;-1:-1:-1;;;2966:38:0;;;;;;;:::i;:::-;15169:18:::1;:28:::0;;-1:-1:-1;;;;15208:33:0;-1:-1:-1;;;15169:28:0;::::1;;::::0;;;::::1;-1:-1:-1::0;;;;15208:33:0;;;;;-1:-1:-1;;;15169:28:0::1;15208:33:::0;;;::::1;::::0;;;::::1;;::::0;;15085:164::o;17771:130::-;3064:24;3077:10;3064:12;:24::i;:::-;3056:48;;;;-1:-1:-1;;;3056:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17860:24:0;;;::::1;;::::0;;;:16:::1;:24;::::0;;;;:33;;-1:-1:-1;;17860:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17771:130::o;9692:122::-;9747:4;9771:35;9779:7;-1:-1:-1;;9771:7:0;:35::i;10727:96::-;3064:24;3077:10;3064:12;:24::i;:::-;3056:48;;;;-1:-1:-1;;;3056:48:0;;;;;;;:::i;:::-;10794:12:::1;:21:::0;10727:96::o;17178:104::-;3385:4;3420:5;-1:-1:-1;;;;;3420:5:0;2982:10;3409:16;2966:38;;;;-1:-1:-1;;;2966:38:0;;;;;;;:::i;:::-;17246:18:::1;:28:::0;;-1:-1:-1;;17246:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17178:104::o;17507:120::-;3064:24;3077:10;3064:12;:24::i;:::-;3056:48;;;;-1:-1:-1;;;3056:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17591:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;17591:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17507:120::o;17909:565::-;3064:24;3077:10;3064:12;:24::i;:::-;3056:48;;;;-1:-1:-1;;;3056:48:0;;;;;;;:::i;:::-;18085:12:::1;:28:::0;;;18124:6:::1;:16:::0;;;18151:12:::1;:28:::0;;;18190:11:::1;:26:::0;;;18227:7:::1;:18:::0;;;18267:77:::1;18237:8:::0;18267:63:::1;18204:12:::0;18267:63;18166:13;18267:63;18100:13;18133:7;18267:17:::1;:26::i;:::-;:30:::0;::::1;:45::i;:77::-;18256:8;:88:::0;18355:14:::1;:32:::0;;;18417:16:::1;18432:1;18372:15:::0;18417:16:::1;:::i;:::-;18406:8;;:27;18398:68;;;::::0;-1:-1:-1;;;18398:68:0;;10305:2:1;18398:68:0::1;::::0;::::1;10287:21:1::0;10344:2;10324:18;;;10317:30;10383;10363:18;;;10356:58;10431:18;;18398:68:0::1;10277:178:1::0;18398:68:0::1;17909:565:::0;;;;;;:::o;17290:209::-;3385:4;3420:5;-1:-1:-1;;;;;3420:5:0;2982:10;3409:16;2966:38;;;;-1:-1:-1;;;2966:38:0;;;;;;;:::i;:::-;17392:9:::1;17387:105;17403:20:::0;;::::1;17387:105;;;17474:6;17445:12;:26;17458:9;;17468:1;17458:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17445:26:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;17445:26:0;:35;;-1:-1:-1;;17445:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17425:3:::1;::::0;::::1;:::i;:::-;;;17387:105;;;;17290:209:::0;;;:::o;14933:105::-;3385:4;3420:5;-1:-1:-1;;;;;3420:5:0;2982:10;3409:16;2966:38;;;;-1:-1:-1;;;2966:38:0;;;;;;;:::i;:::-;15005:10:::1;:25:::0;14933:105::o;9822:156::-;9902:4;9926:44;9940:10;9952:9;9963:6;9926:13;:44::i;14671:254::-;3385:4;3420:5;-1:-1:-1;;;;;3420:5:0;2982:10;3409:16;2966:38;;;;-1:-1:-1;;;2966:38:0;;;;;;;:::i;:::-;14755:14:::1;:24:::0;;-1:-1:-1;;;;14755:24:0::1;-1:-1:-1::0;;;14755:24:0;::::1;;::::0;::::1;::::0;;;::::1;::::0;;;;::::1;14793:14:::0;::::1;;:33:::0;::::1;;;-1:-1:-1::0;14811:10:0::1;::::0;:15;14793:33:::1;14790:128;;;14855:12;14842:10;:25:::0;14882:10:::1;:24:::0;;;14790:128:::1;14671:254:::0;;:::o;3123:94::-;3385:4;3420:5;-1:-1:-1;;;;;3420:5:0;2982:10;3409:16;2966:38;;;;-1:-1:-1;;;2966:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3183:19:0::1;;::::0;;;3205:4:::1;3183:19;::::0;;;;;;;:26;;-1:-1:-1;;3183:26:0::1;::::0;;::::1;::::0;;3123:94::o;10547:172::-;3385:4;3420:5;-1:-1:-1;;;;;3420:5:0;2982:10;3409:16;2966:38;;;;-1:-1:-1;;;2966:38:0;;;;;;;:::i;:::-;10707:4:::1;10678:24;10663:12;;:39;;;;:::i;:::-;10662:49;;;;:::i;:::-;10647:12;:64:::0;-1:-1:-1;10547:172:0:o;19449:167::-;19517:7;19544:64;19585:22;:20;:22::i;:::-;19567:4;;-1:-1:-1;;;;;19567:4:0;9282:7;9300:18;;;:9;:18;;;;;;19544:36;;19557:22;;19577:1;;19557:15;:19;;:22::i;:::-;19544:8;;:12;:36::i;:::-;:40;;:64::i;18940:156::-;3064:24;3077:10;3064:12;:24::i;:::-;3056:48;;;;-1:-1:-1;;;3056:48:0;;;;;;;:::i;:::-;19032:11:::1;:22:::0;;-1:-1:-1;;19032:22:0::1;::::0;::::1;;::::0;;;::::1;::::0;;;19065:13:::1;:23:::0;18940:156::o;14519:121::-;3385:4;3420:5;-1:-1:-1;;;;;3420:5:0;2982:10;3409:16;2966:38;;;;-1:-1:-1;;;2966:38:0;;;;;;;:::i;:::-;14597:14:::1;:27:::0;14519:121::o;3225:97::-;3385:4;3420:5;-1:-1:-1;;;;;3420:5:0;2982:10;3409:16;2966:38;;;;-1:-1:-1;;;2966:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3287:19:0::1;3309:5;3287:19:::0;;;:14:::1;:19;::::0;;;;:27;;-1:-1:-1;;3287:27:0::1;::::0;;3225:97::o;3556:173::-;3385:4;3420:5;-1:-1:-1;;;;;3420:5:0;2982:10;3409:16;2966:38;;;;-1:-1:-1;;;2966:38:0;;;;;;;:::i;:::-;3632:5:::1;:11:::0;;-1:-1:-1;;;;;;3632:11:0::1;-1:-1:-1::0;;;;;3632:11:0;::::1;::::0;;::::1;::::0;;3654:19;;;-1:-1:-1;3654:19:0::1;::::0;;;;;;;;:26;;-1:-1:-1;;3654:26:0::1;::::0;;::::1;::::0;;;3696:25;;7211:51:1;;;3696:25:0::1;::::0;7184:18:1;3696:25:0::1;;;;;;;3556:173:::0;:::o;17635:128::-;3064:24;3077:10;3064:12;:24::i;:::-;3056:48;;;;-1:-1:-1;;;3056:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17723:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;17723:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17635:128::o;3441:107::-;-1:-1:-1;;;;;3521:19:0;3497:4;3521:19;;;:14;:19;;;;;;;;;3441:107::o;12546:330::-;12676:53;;;;;;;;;;;-1:-1:-1;;;12676:53:0;;;;;;;;-1:-1:-1;;;;;12676:17:0;;12639:4;12676:17;;;:9;:17;;;;;;;:53;;12698:6;;12676:21;:53::i;:::-;-1:-1:-1;;;;;12656:17:0;;;;;;;:9;:17;;;;;;:73;;;;12763:20;;;;;;;:32;;12788:6;12763:24;:32::i;:::-;-1:-1:-1;;;;;12740:20:0;;;;;;;:9;:20;;;;;;;:55;;;;12811:35;;;;;;-1:-1:-1;;;;;;;;;;;12811:35:0;;;12839:6;14344:25:1;;14332:2;14317:18;;14299:76;12811:35:0;;;;;;;;-1:-1:-1;12864:4:0;12546:330;;;;;:::o;1006:192::-;1092:7;1128:12;1120:6;;;;1112:29;;;;-1:-1:-1;;;1112:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1152:9:0;1164:5;1168:1;1164;:5;:::i;:::-;1152:17;1006:192;-1:-1:-1;;;;;1006:192:0:o;10831:1703::-;10943:6;;10923:4;;10943:6;;10940:63;;;10959:41;10974:6;10982:9;10993:6;10959:14;:41::i;:::-;10952:48;;;;10940:63;-1:-1:-1;;;;;11019:22:0;;;;;;:14;:22;;;;;;;;11018:23;:53;;;;-1:-1:-1;;;;;;11046:25:0;;;;;;:14;:25;;;;;;;;11045:26;11018:53;11015:131;;;11095:14;;-1:-1:-1;;;11095:14:0;;;;11087:47;;;;-1:-1:-1;;;11087:47:0;;11424:2:1;11087:47:0;;;11406:21:1;11463:2;11443:18;;;11436:30;-1:-1:-1;;;11482:18:1;;;11475:51;11543:18;;11087:47:0;11396:171:1;11087:47:0;11189:18;;;;11186:134;;;-1:-1:-1;;;;;11232:20:0;;;;;;:12;:20;;;;;;;;11231:21;:49;;;;-1:-1:-1;;;;;;11257:23:0;;;;;;:12;:23;;;;;;;;11256:24;11231:49;11223:81;;;;-1:-1:-1;;;11223:81:0;;14051:2:1;11223:81:0;;;14033:21:1;14090:2;14070:18;;;14063:30;-1:-1:-1;;;14109:18:1;;;14102:50;14169:18;;11223:81:0;14023:170:1;11223:81:0;-1:-1:-1;;;;;11339:22:0;;;;;;:14;:22;;;;;;;;11338:23;:53;;;;-1:-1:-1;;;;;;11365:26:0;;11386:4;11365:26;;11338:53;:84;;;;-1:-1:-1;11417:4:0;;-1:-1:-1;;;;;11396:26:0;;;11417:4;;11396:26;;11338:84;:105;;;;-1:-1:-1;11439:4:0;;-1:-1:-1;;;;;11426:17:0;;;11439:4;;11426:17;;11338:105;:137;;;;-1:-1:-1;11460:15:0;;-1:-1:-1;;;;;11447:28:0;;;11460:15;;11447:28;;11338:137;11334:329;;;-1:-1:-1;;;;;9300:18:0;;11491;9300;;;:9;:18;;;;;;11580:15;;11556:19;11569:6;9300:18;11556:19;:::i;:::-;11555:40;;11547:114;;;;-1:-1:-1;;;11547:114:0;;12532:2:1;11547:114:0;;;12514:21:1;12571:2;12551:18;;;12544:30;12610:34;12590:18;;;12583:62;12681:32;12661:18;;;12654:60;12731:19;;11547:114:0;12504:252:1;11547:114:0;11476:187;11334:329;11697:4;;-1:-1:-1;;;;;11687:14:0;;;11697:4;;11687:14;:49;;;;-1:-1:-1;11718:18:0;;-1:-1:-1;;;11718:18:0;;;;11687:49;:94;;;;-1:-1:-1;;;;;;11754:27:0;;;;;;:16;:27;;;;;;;;11753:28;11687:94;11683:299;;;-1:-1:-1;;;;;11806:24:0;;;;;;:13;:24;;;;;;11833:15;-1:-1:-1;11798:91:0;;;;-1:-1:-1;;;11798:91:0;;11018:2:1;11798:91:0;;;11000:21:1;11057:2;11037:18;;;11030:30;11096:34;11076:18;;;11069:62;-1:-1:-1;;;11147:18:1;;;11140:35;11192:19;;11798:91:0;10990:227:1;11798:91:0;11949:21;;11931:39;;-1:-1:-1;;;11949:21:0;;;;11931:15;:39;:::i;:::-;-1:-1:-1;;;;;11904:24:0;;;;;;:13;:24;;;;;:66;11683:299;12035:28;12048:6;12056;12035:12;:28::i;:::-;12079:16;:14;:16::i;:::-;12076:35;;;12098:10;:8;:10::i;:::-;12170:53;;;;;;;;;;;-1:-1:-1;;;12170:53:0;;;;;;;;-1:-1:-1;;;;;12170:17:0;;-1:-1:-1;12170:17:0;;;:9;:17;;;;;;;;:53;;12192:6;;12170:21;:53::i;:::-;-1:-1:-1;;;;;12150:17:0;;;;;;:9;:17;;;;;;;;:73;;;;13145:11;:19;;;;;;;;13144:20;12262:22;:51;;;-1:-1:-1;;;;;;13145:19:0;;13120:4;13145:19;;;:11;:19;;;;;;;;13144:20;12288:25;12262:51;12261:108;;12363:4;;12326:43;;12334:6;;12342;;-1:-1:-1;;;;;12350:17:0;;;12363:4;;12350:17;12326:7;:43::i;:::-;12261:108;;;12317:6;12261:108;-1:-1:-1;;;;;12403:20:0;;;;;;:9;:20;;;;;;12236:133;;-1:-1:-1;12403:40:0;;12236:133;12403:24;:40::i;:::-;-1:-1:-1;;;;;12380:20:0;;;;;;;:9;:20;;;;;;;:63;;;;12461:43;;;;;;-1:-1:-1;;;;;;;;;;;12461:43:0;;;12489:14;14344:25:1;;14332:2;14317:18;;14299:76;12461:43:0;;;;;;;;-1:-1:-1;12522:4:0;;10831:1703;-1:-1:-1;;;;10831:1703:0:o;864:136::-;922:7;949:43;953:1;956;949:43;;;;;;;;;;;;;;;;;:3;:43::i;677:181::-;735:7;;767:5;771:1;767;:5;:::i;:::-;755:17;;796:1;791;:6;;783:46;;;;-1:-1:-1;;;783:46:0;;10662:2:1;783:46:0;;;10644:21:1;10701:2;10681:18;;;10674:30;10740:29;10720:18;;;10713:57;10787:18;;783:46:0;10634:177:1;1204:250:0;1262:7;1286:6;1282:47;;-1:-1:-1;1316:1:0;1309:8;;1282:47;1341:9;1353:5;1357:1;1353;:5;:::i;:::-;1341:17;-1:-1:-1;1386:1:0;1377:5;1381:1;1341:17;1377:5;:::i;:::-;:10;1369:56;;;;-1:-1:-1;;;1369:56:0;;12130:2:1;1369:56:0;;;12112:21:1;12169:2;12149:18;;;12142:30;12208:34;12188:18;;;12181:62;-1:-1:-1;;;12259:18:1;;;12252:31;12300:19;;1369:56:0;12102:223:1;1460:132:0;1518:7;1545:39;1549:1;1552;1545:39;;;;;;;;;;;;;;;;;:3;:39::i;12884:166::-;12981:12;;12971:6;:22;;:49;;;-1:-1:-1;;;;;;12997:23:0;;;;;;:15;:23;;;;;;;;12971:49;12963:79;;;;-1:-1:-1;;;12963:79:0;;9959:2:1;12963:79:0;;;9941:21:1;9998:2;9978:18;;;9971:30;-1:-1:-1;;;10017:18:1;;;10010:47;10074:18;;12963:79:0;9931:167:1;14098:197:0;14185:4;;14147;;-1:-1:-1;;;;;14185:4:0;14171:10;:18;;;;:38;;-1:-1:-1;14203:6:0;;;;14202:7;14171:38;:62;;;;-1:-1:-1;14222:11:0;;;;14171:62;:116;;;;-1:-1:-1;;14274:13:0;;14264:4;14246:24;;;;:9;:24;;;;;;:41;;;14098:197::o;15257:1913::-;7574:6;:13;;-1:-1:-1;;7574:13:0;7583:4;7574:13;;;15352:15:::1;::::0;15369:26:::1;::::0;7574:6;;15336:60:::1;::::0;:15:::1;:60::i;:::-;:79;;15403:12;;15336:79;;;15399:1;15336:79;15306:109;;15426:23;15452:59;15509:1;15452:52;15495:8;;15452:38;15470:19;15452:13;;:17;;:38;;;;:::i;:59::-;15426:85;;15522:20;15545:34;15563:15;15545:13;;:17;;:34;;;;:::i;:::-;15616:16;::::0;;15630:1:::1;15616:16:::0;;;;;::::1;::::0;;15522:57;;-1:-1:-1;15592:21:0::1;::::0;15616:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;15616:16:0::1;15592:40;;15661:4;15643;15648:1;15643:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15643:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;15687:4:::1;::::0;15677:7;;15687:4;::::1;::::0;15677;;15687;;15677:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;15677:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;15762:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;15762:188:0;;15728:21:::1;::::0;15762:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;15834:12;;15704:21:::1;::::0;15877:4;;15904::::1;::::0;15924:15:::1;::::0;15762:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15963:17;15983:40;16009:13;15983:21;:25;;:40;;;;:::i;:::-;15963:60:::0;-1:-1:-1;16036:19:0::1;16058:40;16071:26;:19:::0;16095:1:::1;16071:23;:26::i;:::-;16058:8;::::0;;:12:::1;:40::i;:::-;16036:62:::0;-1:-1:-1;16119:26:0::1;16148:58;16204:1;16148:51;16036:62:::0;16148:51;:9;16162:19;16148:13:::1;:34::i;:58::-;16119:87;;16217:26;16246:44;16278:11;16246:27;16260:12;;16246:9;:13;;:27;;;;:::i;:44::-;16217:73;;16301:20;16324:38;16350:11;16324:21;16338:6;;16324:9;:13;;:21;;;;:::i;:38::-;16301:61;;16373:25;16401:43;16432:11;16401:26;16415:11;;16401:9;:13;;:26;;;;:::i;:43::-;16486:20;::::0;16478:77:::1;::::0;16373:71;;-1:-1:-1;16458:15:0::1;::::0;-1:-1:-1;;;;;16486:20:0;;::::1;::::0;16545:5:::1;::::0;16520:18;;16458:15;16478:77;16458:15;16478:77;16520:18;16486:20;16545:5;16478:77:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;16590:19:0::1;::::0;16582:75:::1;::::0;16457:98;;-1:-1:-1;;;;;;16590:19:0::1;::::0;16647:5:::1;::::0;16623:17;;16582:75:::1;::::0;;;16623:17;16590:19;16647:5;16582:75:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;16692:14:0::1;::::0;16684:65:::1;::::0;16566:91;;-1:-1:-1;;;;;;16692:14:0::1;::::0;16739:5:::1;::::0;16720:12;;16684:65:::1;::::0;;;16720:12;16692:14;16739:5;16684:65:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;16783:5:0::1;::::0;-1:-1:-1;;16804:19:0;;;-1:-1:-1;16801:362:0::1;;16839:6;::::0;17013:21:::1;::::0;16839:244:::1;::::0;-1:-1:-1;;;16839:244:0;;16915:4:::1;16839:244;::::0;::::1;7830:34:1::0;7880:18;;;7873:34;;;16839:6:0::1;7923:18:1::0;;;7916:34;;;7966:18;;;7959:34;-1:-1:-1;;;;;17013:21:0;;::::1;8009:19:1::0;;;8002:44;17053:15:0::1;8062:19:1::0;;;8055:35;16839:6:0;::::1;::::0;:22:::1;::::0;16869:18;;7764:19:1;;16839:244:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;17103:48:0::1;::::0;;15539:25:1;;;15595:2;15580:18;;15573:34;;;17103:48:0::1;::::0;-1:-1:-1;15512:18:1;17103:48:0::1;;;;;;;16801:362;-1:-1:-1::0;;7592:6:0;:14;;-1:-1:-1;;7592:14:0;;;-1:-1:-1;;;;;;;;;;15257:1913:0:o;13180:910::-;13260:7;13290:18;13311:6;:29;;13337:3;13311:29;;;13320:14;;13311:29;13290:50;;13351:17;13371:62;13412:14;;13429:3;13412:20;;;;:::i;:::-;13371:36;13396:10;13371:20;13382:8;;13371:6;:10;;:20;;;;:::i;:62::-;13351:82;;13450:6;13449:7;:51;;;;;13488:12;13474:10;;13461;;:23;;;;:::i;:::-;13460:40;13449:51;13446:117;;;13528:23;13548:2;13528:15;:6;13539:3;13528:10;:15::i;:23::-;13516:35;;13446:117;13575:18;13596:36;13623:8;;13596:22;13610:7;;13596:9;:13;;:22;;;;:::i;:36::-;13575:57;-1:-1:-1;13643:22:0;13668:25;:9;13575:57;13668:13;:25::i;:::-;13751:4;13733:24;;;;:9;:24;;;;;;13643:50;;-1:-1:-1;13733:44:0;;13643:50;13733:28;:44::i;:::-;13724:4;13706:24;;;;:9;:24;;;;;;:71;;;;13827:15;;-1:-1:-1;;;;;13827:15:0;13817:26;;;;:42;;13848:10;13817:30;:42::i;:::-;13798:15;;-1:-1:-1;;;;;13798:15:0;;;13788:26;;;;:9;:26;;;;;;;;;:71;;;;13875:47;14344:25:1;;;13900:4:0;;13875:47;;;;-1:-1:-1;;;;;;;;;;;13875:47:0;14317:18:1;13875:47:0;;;;;;;13946:14;;13943:99;;13998:15;;13981:45;;14344:25:1;;;-1:-1:-1;;;;;13998:15:0;;;;13981:45;;;-1:-1:-1;;;;;;;;;;;13981:45:0;14332:2:1;14317:18;13981:45:0;;;;;;;13943:99;14061:21;:6;14072:9;14061:10;:21::i;:::-;14054:28;13180:910;-1:-1:-1;;;;;;;;13180:910:0:o;1598:189::-;1684:7;1719:12;1712:5;1704:28;;;;-1:-1:-1;;;1704:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1743:9:0;1755:5;1759:1;1755;:5;:::i;14:367:1:-;77:8;87:6;141:3;134:4;126:6;122:17;118:27;108:2;;159:1;156;149:12;108:2;-1:-1:-1;182:20:1;;225:18;214:30;;211:2;;;257:1;254;247:12;211:2;294:4;286:6;282:17;270:29;;354:3;347:4;337:6;334:1;330:14;322:6;318:27;314:38;311:47;308:2;;;371:1;368;361:12;308:2;98:283;;;;;:::o;386:160::-;451:20;;507:13;;500:21;490:32;;480:2;;536:1;533;526:12;480:2;432:114;;;:::o;551:247::-;610:6;663:2;651:9;642:7;638:23;634:32;631:2;;;679:1;676;669:12;631:2;718:9;705:23;737:31;762:5;737:31;:::i;1063:388::-;1131:6;1139;1192:2;1180:9;1171:7;1167:23;1163:32;1160:2;;;1208:1;1205;1198:12;1160:2;1247:9;1234:23;1266:31;1291:5;1266:31;:::i;:::-;1316:5;-1:-1:-1;1373:2:1;1358:18;;1345:32;1386:33;1345:32;1386:33;:::i;:::-;1438:7;1428:17;;;1150:301;;;;;:::o;1456:813::-;1551:6;1559;1567;1575;1583;1636:3;1624:9;1615:7;1611:23;1607:33;1604:2;;;1653:1;1650;1643:12;1604:2;1692:9;1679:23;1711:31;1736:5;1711:31;:::i;:::-;1761:5;-1:-1:-1;1818:2:1;1803:18;;1790:32;1831:33;1790:32;1831:33;:::i;:::-;1883:7;-1:-1:-1;1942:2:1;1927:18;;1914:32;1955:33;1914:32;1955:33;:::i;:::-;2007:7;-1:-1:-1;2066:2:1;2051:18;;2038:32;2079:33;2038:32;2079:33;:::i;:::-;2131:7;-1:-1:-1;2190:3:1;2175:19;;2162:33;2204;2162;2204;:::i;:::-;2256:7;2246:17;;;1594:675;;;;;;;;:::o;2274:456::-;2351:6;2359;2367;2420:2;2408:9;2399:7;2395:23;2391:32;2388:2;;;2436:1;2433;2426:12;2388:2;2475:9;2462:23;2494:31;2519:5;2494:31;:::i;:::-;2544:5;-1:-1:-1;2601:2:1;2586:18;;2573:32;2614:33;2573:32;2614:33;:::i;:::-;2378:352;;2666:7;;-1:-1:-1;;;2720:2:1;2705:18;;;;2692:32;;2378:352::o;2735:908::-;2866:6;2874;2882;2890;2898;2951:2;2939:9;2930:7;2926:23;2922:32;2919:2;;;2967:1;2964;2957:12;2919:2;3006:9;2993:23;3025:31;3050:5;3025:31;:::i;:::-;3075:5;-1:-1:-1;3131:2:1;3116:18;;3103:32;3154:18;3184:14;;;3181:2;;;3211:1;3208;3201:12;3181:2;3250:70;3312:7;3303:6;3292:9;3288:22;3250:70;:::i;:::-;3339:8;;-1:-1:-1;3224:96:1;-1:-1:-1;3427:2:1;3412:18;;3399:32;;-1:-1:-1;3443:16:1;;;3440:2;;;3472:1;3469;3462:12;3440:2;;3511:72;3575:7;3564:8;3553:9;3549:24;3511:72;:::i;:::-;2909:734;;;;-1:-1:-1;2909:734:1;;-1:-1:-1;3602:8:1;;3485:98;2909:734;-1:-1:-1;;;2909:734:1:o;3648:315::-;3713:6;3721;3774:2;3762:9;3753:7;3749:23;3745:32;3742:2;;;3790:1;3787;3780:12;3742:2;3829:9;3816:23;3848:31;3873:5;3848:31;:::i;:::-;3898:5;-1:-1:-1;3922:35:1;3953:2;3938:18;;3922:35;:::i;:::-;3912:45;;3732:231;;;;;:::o;3968:315::-;4036:6;4044;4097:2;4085:9;4076:7;4072:23;4068:32;4065:2;;;4113:1;4110;4103:12;4065:2;4152:9;4139:23;4171:31;4196:5;4171:31;:::i;:::-;4221:5;4273:2;4258:18;;;;4245:32;;-1:-1:-1;;;4055:228:1:o;4288:505::-;4380:6;4388;4396;4449:2;4437:9;4428:7;4424:23;4420:32;4417:2;;;4465:1;4462;4455:12;4417:2;4505:9;4492:23;4538:18;4530:6;4527:30;4524:2;;;4570:1;4567;4560:12;4524:2;4609:70;4671:7;4662:6;4651:9;4647:22;4609:70;:::i;:::-;4698:8;;-1:-1:-1;4583:96:1;-1:-1:-1;4752:35:1;;-1:-1:-1;4783:2:1;4768:18;;4752:35;:::i;:::-;4742:45;;4407:386;;;;;:::o;4798:180::-;4854:6;4907:2;4895:9;4886:7;4882:23;4878:32;4875:2;;;4923:1;4920;4913:12;4875:2;4946:26;4962:9;4946:26;:::i;4983:248::-;5048:6;5056;5109:2;5097:9;5088:7;5084:23;5080:32;5077:2;;;5125:1;5122;5115:12;5077:2;5148:26;5164:9;5148:26;:::i;5236:337::-;5299:6;5307;5360:2;5348:9;5339:7;5335:23;5331:32;5328:2;;;5376:1;5373;5366:12;5328:2;5399:26;5415:9;5399:26;:::i;:::-;5389:36;;5475:2;5464:9;5460:18;5447:32;5519:4;5512:5;5508:16;5501:5;5498:27;5488:2;;5539:1;5536;5529:12;5578:180;5637:6;5690:2;5678:9;5669:7;5665:23;5661:32;5658:2;;;5706:1;5703;5696:12;5658:2;-1:-1:-1;5729:23:1;;5648:110;-1:-1:-1;5648:110:1:o;5763:248::-;5831:6;5839;5892:2;5880:9;5871:7;5867:23;5863:32;5860:2;;;5908:1;5905;5898:12;5860:2;-1:-1:-1;;5931:23:1;;;6001:2;5986:18;;;5973:32;;-1:-1:-1;5850:161:1:o;6016:306::-;6104:6;6112;6120;6173:2;6161:9;6152:7;6148:23;6144:32;6141:2;;;6189:1;6186;6179:12;6141:2;6218:9;6212:16;6202:26;;6268:2;6257:9;6253:18;6247:25;6237:35;;6312:2;6301:9;6297:18;6291:25;6281:35;;6131:191;;;;;:::o;6327:523::-;6431:6;6439;6447;6455;6463;6471;6524:3;6512:9;6503:7;6499:23;6495:33;6492:2;;;6541:1;6538;6531:12;6492:2;-1:-1:-1;;6564:23:1;;;6634:2;6619:18;;6606:32;;-1:-1:-1;6685:2:1;6670:18;;6657:32;;6736:2;6721:18;;6708:32;;-1:-1:-1;6787:3:1;6772:19;;6759:33;;-1:-1:-1;6839:3:1;6824:19;6811:33;;-1:-1:-1;6482:368:1;-1:-1:-1;6482:368:1:o;8746:597::-;8858:4;8887:2;8916;8905:9;8898:21;8948:6;8942:13;8991:6;8986:2;8975:9;8971:18;8964:34;9016:1;9026:140;9040:6;9037:1;9034:13;9026:140;;;9135:14;;;9131:23;;9125:30;9101:17;;;9120:2;9097:26;9090:66;9055:10;;9026:140;;;9184:6;9181:1;9178:13;9175:2;;;9254:1;9249:2;9240:6;9229:9;9225:22;9221:31;9214:42;9175:2;-1:-1:-1;9327:2:1;9306:15;-1:-1:-1;;9302:29:1;9287:45;;;;9334:2;9283:54;;8867:476;-1:-1:-1;;;8867:476:1:o;13175:329::-;13377:2;13359:21;;;13416:1;13396:18;;;13389:29;-1:-1:-1;;;13449:2:1;13434:18;;13427:36;13495:2;13480:18;;13349:155::o;13509:335::-;13711:2;13693:21;;;13750:2;13730:18;;;13723:30;-1:-1:-1;;;13784:2:1;13769:18;;13762:41;13835:2;13820:18;;13683:161::o;14380:980::-;14642:4;14690:3;14679:9;14675:19;14721:6;14710:9;14703:25;14747:2;14785:6;14780:2;14769:9;14765:18;14758:34;14828:3;14823:2;14812:9;14808:18;14801:31;14852:6;14887;14881:13;14918:6;14910;14903:22;14956:3;14945:9;14941:19;14934:26;;14995:2;14987:6;14983:15;14969:29;;15016:1;15026:195;15040:6;15037:1;15034:13;15026:195;;;15105:13;;-1:-1:-1;;;;;15101:39:1;15089:52;;15196:15;;;;15161:12;;;;15137:1;15055:9;15026:195;;;-1:-1:-1;;;;;;;15277:32:1;;;;15272:2;15257:18;;15250:60;-1:-1:-1;;;15341:3:1;15326:19;15319:35;15238:3;14651:709;-1:-1:-1;;;14651:709:1:o;15807:128::-;15847:3;15878:1;15874:6;15871:1;15868:13;15865:2;;;15884:18;;:::i;:::-;-1:-1:-1;15920:9:1;;15855:80::o;15940:217::-;15980:1;16006;15996:2;;16050:10;16045:3;16041:20;16038:1;16031:31;16085:4;16082:1;16075:15;16113:4;16110:1;16103:15;15996:2;-1:-1:-1;16142:9:1;;15986:171::o;16162:168::-;16202:7;16268:1;16264;16260:6;16256:14;16253:1;16250:21;16245:1;16238:9;16231:17;16227:45;16224:2;;;16275:18;;:::i;:::-;-1:-1:-1;16315:9:1;;16214:116::o;16335:125::-;16375:4;16403:1;16400;16397:8;16394:2;;;16408:18;;:::i;:::-;-1:-1:-1;16445:9:1;;16384:76::o;16465:135::-;16504:3;-1:-1:-1;;16525:17:1;;16522:2;;;16545:18;;:::i;:::-;-1:-1:-1;16592:1:1;16581:13;;16512:88::o;16605:127::-;16666:10;16661:3;16657:20;16654:1;16647:31;16697:4;16694:1;16687:15;16721:4;16718:1;16711:15;16737:127;16798:10;16793:3;16789:20;16786:1;16779:31;16829:4;16826:1;16819:15;16853:4;16850:1;16843:15;17001:131;-1:-1:-1;;;;;17076:31:1;;17066:42;;17056:2;;17122:1;17119;17112:12;17056:2;17046:86;:::o
Swarm Source
ipfs://6a88f7622cef32f78688f5cde8838f761bf86981e7ee639599d4b35cc221837b