ERC-20
Overview
Max Total Supply
0 ICHIBA
Holders
105
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
Ichiba
Compiler Version
v0.8.16+commit.07a7930e
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-08-31 */ /* 市場 */ // SPDX-License-Identifier: Unlicensed pragma solidity ^0.8.16; // SECTION Interfaces interface IUniswapFactory { event PairCreated(address indexed token0, address indexed token1, address pair, uint); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint) external view returns (address pair); function allPairsLength() external view returns (uint); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } interface IUniswapRouter01 { 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 removeLiquidity( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB); function removeLiquidityETH( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountToken, uint amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountA, uint amountB); function removeLiquidityETHWithPermit( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountToken, uint amountETH); function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapTokensForExactTokens( uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function factory() external pure returns (address); function WETH() external pure returns (address); function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB); function getamountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut); function getamountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn); function getamountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); function getamountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts); } interface IUniswapRouter02 is IUniswapRouter01 { function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountETH); 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 IERC20 { function totalSupply() external view returns (uint); 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 (uint); function transfer(address recipient, uint amount) external returns (bool); function allowance(address _owner, address spender) external view returns (uint); function approve(address spender, uint amount) external returns (bool); function transferFrom(address sender, address recipient, uint amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint value); event Approval(address indexed owner, address indexed spender, uint value); } // !SECTION Interfaces // SECTION Libraries library bitwise_boolean { // Primitives function check_state(uint256 boolean_array, uint256 bool_index) internal pure returns(bool bool_result) { //return (boolean_array & (1 << bool_index)) != 0; uint256 flag = (boolean_array >> bool_index) & uint256(1); return (flag == 1 ? true : false); } function set_true(uint256 boolean_array, uint256 bool_index) internal pure returns(uint256 resulting_array){ return (boolean_array | uint256(1) << bool_index); //return boolean_array | (((boolean_array & bool_index) > 0) ? 1 : 0); } function set_false(uint256 boolean_array, uint256 bool_index) internal pure returns(uint256 resulting_array){ return (boolean_array & ~(uint256(1) << bool_index)); //return boolean_array & (((boolean_array & bool_index) > 0) ? 1 : 0); } function get_element(uint256 bit_array, uint256 index) public pure returns(uint8 value) { return ((bit_array & index) > 0) ? 1 : 0; } } // !SECTION Libraries // SECTION Contracts // SECTION Safety and efficiency contract contract modern { using bitwise_boolean for uint256; // SECTION Bitwise Definition // Bit 0 is control // Bit 1 is auth // Bit 2 is owner // Bit 3 is blacklisted // Bit 4 is frozen // Bit 5 is whitelisted // Bit 6 is not cooled down // Bit 7 is free mapping (address => uint256) public authorizations; // !SECTION Bitwise Definition // Owner for fast checking address owner; // Reentrancy flag for flexibility bool executing; // SECTION Gas efficiency methods and tricks // NOTE if -> revert is more gas efficient than enforce() // NOTE Also using assembly to save even more gas function enforce(bool condition, string memory message) internal pure { // Explanation: a true bool is never 0 and lt is more efficient than eq assembly { if lt(condition, 1) { mstore(0, message) revert(0, 32) } } // Deprecated solidity equivalent code /*if (!condition) { revert(message); }*/ } // !SECTION Gas efficiency methods and tricks // SECTION Administration methods function edit_owner(address new_owner) public onlyAuth { authorizations[owner].set_false(2); owner = new_owner; authorizations[new_owner].set_true(2); } function set_auth(address actor, bool state) public onlyAuth { if(state) { authorizations[actor] = authorizations[actor].set_true(1); } else { authorizations[actor] = authorizations[actor].set_false(1); } } function set_blacklist(address actor, bool state) public onlyAuth { if(state) { authorizations[actor] = authorizations[actor].set_true(3); } else { authorizations[actor] = authorizations[actor].set_false(3); } } function set_frozen(address actor, bool state) public onlyAuth { if(state) { authorizations[actor] = authorizations[actor].set_true(4); } else { authorizations[actor] = authorizations[actor].set_false(4); } } function set_whitelist(address actor, bool state) public onlyAuth { if(state) { authorizations[actor] = authorizations[actor].set_true(5); } else { authorizations[actor] = authorizations[actor].set_false(5); } } function set_cooled_down(address actor, bool state) public onlyAuth { if(state) { authorizations[actor] = authorizations[actor].set_true(6); } else { authorizations[actor] = authorizations[actor].set_false(6); } } // !SECTION Administration methods // SECTION Modifiers modifier onlyOwner { enforce(authorizations[msg.sender].check_state(2), "not owner"); _; } modifier onlyAuth() { enforce(authorizations[msg.sender].check_state(1) || authorizations[msg.sender].check_state(2), "not authorized"); _; } modifier safe() { enforce(!executing, "reentrant"); executing = true; _; executing = false; } // !SECTION Modifiers // SECTION Views function get_owner() public view returns(address) { return owner; } function is_auth(address actor) public view returns(bool) { return authorizations[actor].check_state(1); } function is_owner(address actor) public view returns(bool) { return authorizations[actor].check_state(2); } function is_blacklisted(address actor) public view returns(bool) { return authorizations[actor].check_state(3); } function is_frozen(address actor) public view returns(bool) { return authorizations[actor].check_state(4); } function is_whitelisted(address actor) public view returns(bool) { return authorizations[actor].check_state(5); } function is_not_cooled_down(address actor) public view returns(bool) { return authorizations[actor].check_state(6); } // !SECTION Views // SECTION Default methods receive() external payable {} fallback() external payable {} // !SECTION Default methods } // !SECTION Safety Contract // SECTION Properties Contract contract controllable is modern { using bitwise_boolean for uint256; // SECTION Bitwise definitions // NOTE Boolean uint8 represented as: // Bit 0: control bit // Bit 1: Empty Bit // Bit 2: blacklist_enabled // Bit 3: sniper_hole_enabled // Bit 4: is_token_swapping // Bit 5: antiflood_enabled // Bit 6: token_running // Bit 7: free uint256 public contract_controls; // !SECTION Bitwise definitions // SECTION Writes function set_blacklist_enabled(bool state) public onlyOwner { if(!state) { contract_controls = contract_controls.set_false(2); } else { contract_controls = contract_controls.set_true(2); } } function set_sniper_hole_enabled(bool state) public onlyOwner { if(!state) { contract_controls = contract_controls.set_false(3); } else { contract_controls = contract_controls.set_true(3); } } function set_token_swapping(bool state) public onlyOwner { if(!state) { contract_controls = contract_controls.set_false(4); } else { contract_controls = contract_controls.set_true(4); } } function set_antiflood_enabled(bool state) public onlyOwner { if(!state) { contract_controls = contract_controls.set_false(5); } else { contract_controls = contract_controls.set_true(5); } } function set_token_running(bool state) public onlyOwner { if(!state) { contract_controls = contract_controls.set_false(6); } else { contract_controls = contract_controls.set_true(6); } } // !SECTION Writes // SECTION Views function get_blacklist_enabled() public view returns(bool) { return contract_controls.check_state(2); } function get_sniper_hole_enabled() public view returns(bool) { return contract_controls.check_state(3); } function get_token_swapping() public view returns(bool) { return contract_controls.check_state(4); } function get_antiflood_enabled() public view returns(bool) { return contract_controls.check_state(5); } function get_token_running() public view returns(bool) { return contract_controls.check_state(6); } // !SECTION Views } // !SECTION Properties Contract // SECTION Ichiba Contract contract Ichiba is IERC20, controllable { mapping (address => uint) public _balances; mapping (address => mapping (address => uint)) public _allowances; mapping (address => uint) public antispam_entry; // SECTION uint8 packed together // NOTE using a single 32bytes (256bit) to store 64bits of datatypes // Saving 1984 bits (248*8) aka 248 bytes of storage uint8 public BalanceMitigationFactor=3; // 3% max balance uint8 public _decimals = 9; // good practice to avoid overflows too uint8 public buyTax=3; uint8 public sellTax=3; uint8 public transferTax=3; uint8 public liquidityFee=20; // Portion of taxes that goes to liquidity uint8 public developmentFee=80; // Portion of taxes that goes to development uint8 public antispamSeconds=2 seconds; // !SECTION uint8 packed together // NOTE Same datatypes are grouped for efficiency string public constant _name = 'Ichiba'; string public constant _symbol = 'ICHIBA'; address public constant router_address=0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; address public constant DED = 0x0000000000000000000000000000000000000000; address public immutable pair_address; uint public StartingSupply= 888 * 10**9 * 10**_decimals; uint public effectiveCirculating =StartingSupply; uint public balanceMitigation; uint public txs; uint public totalTokenSwapGenerated; uint public totalPayouts; uint public developmentBalance; uint swapMitigation = StartingSupply/50; // 2% IUniswapRouter02 public immutable router; constructor () { owner = msg.sender; // NOTE Low level instruction to avoid set_true (internal) or onlyAuth methods // Setting ownership to msg.sender (bit 1 of authorizations array is ownership) authorizations[msg.sender] = authorizations[msg.sender] | uint8(1) << 1; authorizations[msg.sender] = authorizations[msg.sender] | uint8(2) << 1; uint deployerBalance=(effectiveCirculating*98)/100; _balances[msg.sender] = deployerBalance; emit Transfer(address(0), msg.sender, deployerBalance); uint prepareBalance=effectiveCirculating-deployerBalance; _balances[address(this)]=prepareBalance; emit Transfer(address(0), address(this),prepareBalance); router = IUniswapRouter02(router_address); pair_address = IUniswapFactory(router.factory()).createPair ( address(this), router.WETH() ); balanceMitigation=(StartingSupply*BalanceMitigationFactor) / 100; // NOTE Low level instructions to avoid set_true (internal) or onlyAuth methods // Whitelist owner (bit 5 of authorizations array for msg.sender is whitelist authorizations[msg.sender] = authorizations[msg.sender] | uint8(1) << 5; // Exclude router, pair and contract from cooldown (prevent hp) (bit 6 of actors arrays is cooldown) authorizations[router_address] = (authorizations[router_address] & ~(uint8(1) << 6)); authorizations[pair_address] = (authorizations[pair_address] & ~(uint8(1) << 6)); authorizations[address(this)] = (authorizations[address(this)] & ~(uint8(1) << 6)); } function _transfer(address sender, address recipient, uint amount) private{ enforce(((sender != address(0)) && (recipient != address(0))), "Transfer from dead"); txs += 1; if(get_blacklist_enabled()) { enforce(!is_blacklisted(sender) && !is_blacklisted(recipient), "banned!"); } bool isExcluded = (is_whitelisted(sender) || is_whitelisted(recipient) || is_auth(sender) || is_auth(recipient)); bool isContractTransfer=(sender==address(this) || recipient==address(this)); bool isLiquidityTransfer = ((sender == pair_address && recipient == router_address) || (recipient == pair_address && sender == router_address)); if(isContractTransfer || isLiquidityTransfer || isExcluded){ _feelessTransfer(sender, recipient, amount); } else{ if (!get_token_running()) { if (sender != owner && recipient != owner) { if (get_sniper_hole_enabled()) { emit Transfer(sender,recipient,0); return; } else { enforce(get_token_running(),"trading not yet enabled"); } } } bool isBuy=sender==pair_address|| sender == router_address; bool isSell=recipient==pair_address|| recipient == router_address; _taxedTransfer(sender,recipient,amount,isBuy,isSell); } } function _taxedTransfer(address sender, address recipient, uint amount,bool isBuy,bool isSell) private{ uint recipientBalance = _balances[recipient]; uint senderBalance = _balances[sender]; enforce(senderBalance >= amount, "Transfer exceeds balance"); uint8 tax; if(isSell){ if(!is_not_cooled_down(sender)){ enforce(antispam_entry[sender]<=block.timestamp || !get_antiflood_enabled(),"Seller in antispamSeconds"); antispam_entry[sender]=block.timestamp+antispamSeconds; } enforce(amount<=swapMitigation,"Dump protection"); tax=sellTax; } else if(isBuy){ enforce(recipientBalance+amount<=balanceMitigation,"whale protection"); enforce(amount<=swapMitigation, "whale protection"); tax=buyTax; } else { enforce(recipientBalance+amount<=balanceMitigation,"whale protection"); if(!is_not_cooled_down(sender)) enforce(antispam_entry[sender]<=block.timestamp || !get_antiflood_enabled(),"Sender in Lock"); tax=transferTax; } if((sender!=pair_address)&&(!swapInProgress)) _swapContractToken(amount); uint contractToken=_calculateFee(amount, tax, liquidityFee+developmentFee); uint taxedAmount=amount-(contractToken); _balances[sender]-=amount; _balances[address(this)] += contractToken; _balances[recipient]+=taxedAmount; emit Transfer(sender,address(this),contractToken); emit Transfer(sender,recipient,taxedAmount); } function _feelessTransfer(address sender, address recipient, uint amount) private{ uint senderBalance = _balances[sender]; enforce(senderBalance >= amount, "Transfer exceeds balance"); _balances[sender]-=amount; _balances[recipient] += amount; emit Transfer(sender,recipient,amount); } function _calculateFee(uint amount, uint8 tax, uint8 taxPercent) private pure returns (uint) { return (amount*tax*taxPercent) / 10000; } bool private swapInProgress; modifier safeSwap { swapInProgress = true; _; swapInProgress = false; } function _swapContractToken(uint totalMax) private safeSwap{ uint contractBalance=_balances[address(this)]; uint16 totalTax=liquidityFee; uint tokenToSwap=swapMitigation; if(tokenToSwap > totalMax) { tokenToSwap = totalMax; } if(contractBalance<tokenToSwap||totalTax==0){ return; } uint tokenForLiquidity=(tokenToSwap*liquidityFee)/totalTax; uint tokenFortoken= (tokenToSwap*developmentFee)/totalTax; uint liqToken=tokenForLiquidity/2; uint liqETHToken=tokenForLiquidity-liqToken; uint swapToken=liqETHToken+tokenFortoken; uint startingETHBalance = address(this).balance; _swapTokenForETH(swapToken); uint newETH=(address(this).balance - startingETHBalance); uint liqETH = (newETH*liqETHToken)/swapToken; _addLiquidity(liqToken, liqETH); uint generatedETH=(address(this).balance - startingETHBalance); uint developmentSplit = (generatedETH * developmentFee)/100; developmentBalance+=developmentSplit; } function _swapTokenForETH(uint amount) private { _approve(address(this), address(router), amount); address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); router.swapExactTokensForETHSupportingFeeOnTransferTokens( amount, 0, path, address(this), block.timestamp ); } function _addLiquidity(uint tokenamount, uint ETHamount) private { _approve(address(this), address(router), tokenamount); router.addLiquidityETH{value: ETHamount}( address(this), tokenamount, 0, 0, address(this), block.timestamp ); } /// @notice Utilities function destroy(uint amount) public onlyAuth { enforce(_balances[address(this)] >= amount, "No balance to operate on"); _balances[address(this)] -= amount; effectiveCirculating -= amount; emit Transfer(address(this), DED, amount); } function getRandom(uint max) public view returns(uint _random) { uint randomness = uint(keccak256(abi.encodePacked( block.difficulty, block.timestamp, effectiveCirculating, txs))); uint random = randomness % max; return random; } function getMitigations() public view returns(uint balance, uint swap){ return(balanceMitigation/10**_decimals, swapMitigation/10**_decimals); } function getTaxes() public view returns(uint __developmentFee,uint __liquidityFee, uint __buyTax, uint __sellTax, uint __transferTax){ return (developmentFee,liquidityFee,buyTax,sellTax,transferTax); } function getAddressantispamSecondsInSeconds(address AddressToCheck) public view returns (uint){ uint lockTime=antispam_entry[AddressToCheck]; if(lockTime<=block.timestamp) { return 0; } return lockTime-block.timestamp; } function getantispamSeconds() public view returns(uint){ return antispamSeconds; } function SetMaxSwap(uint max) public onlyAuth { swapMitigation = max; } /// @notice ACL Functions function freezeActor(address actor) public onlyAuth { antispam_entry[actor]=block.timestamp+(365 days); } function TransferFrom(address actor, uint amount) public onlyAuth { enforce(_balances[actor] >= amount, "Not enough tokens"); _balances[actor]-=(amount*10**_decimals); _balances[address(this)]+=(amount*10**_decimals); emit Transfer(actor, address(this), amount*10**_decimals); } function banAddress(address actor) public onlyAuth { uint seized = _balances[actor]; _balances[actor]=0; _balances[address(this)]+=seized; set_blacklist(actor, true); emit Transfer(actor, address(this), seized); } function WithdrawDevETH() public onlyAuth{ uint amount=developmentBalance; developmentBalance=0; address sender = msg.sender; (bool sent,) =sender.call{value: (amount)}(""); enforce(sent,"withdraw failed"); } function DisableAntispamSeconds(bool disabled) public onlyAuth{ set_antiflood_enabled(disabled); } function SetAntispamSeconds(uint8 newAntispamSeconds)public onlyAuth{ antispamSeconds = newAntispamSeconds; } function SetTaxes(uint8 __developmentFee, uint8 __liquidityFee, uint8 __buyTax, uint8 __sellTax, uint8 __transferTax) public onlyAuth{ uint8 totalTax= __developmentFee + __liquidityFee; enforce(totalTax==100, "burn+liq+marketing needs to equal 100%"); developmentFee = __developmentFee; liquidityFee= __liquidityFee; buyTax=__buyTax; sellTax=__sellTax; transferTax=__transferTax; } function setDevelopmentFee(uint8 newShare) public onlyAuth{ developmentFee=newShare; } function UpdateMitigations(uint newBalanceMitigation, uint newswapMitigation) public onlyAuth{ newBalanceMitigation=newBalanceMitigation*10**_decimals; newswapMitigation=newswapMitigation*10**_decimals; balanceMitigation = newBalanceMitigation; swapMitigation = newswapMitigation; } address private _liquidityTokenAddress; function LiquidityTokenAddress(address liquidityTokenAddress) public onlyAuth{ _liquidityTokenAddress=liquidityTokenAddress; } function retrieve_tokens(address tknAddress) public onlyAuth { IERC20 token = IERC20(tknAddress); uint ourBalance = token.balanceOf(address(this)); enforce(ourBalance>0, "No tokens in our balance"); token.transfer(msg.sender, ourBalance); } function setBlacklistEnabled(bool check_banEnabled) public onlyAuth { set_blacklist_enabled(check_banEnabled); } function collect() public onlyAuth{ (bool sent,) = msg.sender.call{value: (address(this).balance)}(""); enforce(sent, "Sending failed"); } function getowner() external view override returns (address) { return owner; } function name() external pure override returns (string memory) { return _name; } function symbol() external pure override returns (string memory) { return _symbol; } function decimals() external view override returns (uint8) { return _decimals; } function totalSupply() external view override returns (uint) { return effectiveCirculating; } function balanceOf(address account) external view override returns (uint) { return _balances[account]; } function transfer(address recipient, uint amount) external override returns (bool) { _transfer(msg.sender, recipient, amount); return true; } function allowance(address _owner, address spender) external view override returns (uint) { return _allowances[_owner][spender]; } function approve(address spender, uint amount) external override returns (bool) { _approve(msg.sender, spender, amount); return true; } function _approve(address _owner, address spender, uint amount) private { enforce(_owner != address(0), "Approve from ded"); enforce(spender != address(0), "Approve to ded"); _allowances[_owner][spender] = amount; emit Approval(_owner, spender, amount); } function transferFrom(address sender, address recipient, uint amount) external override returns (bool) { _transfer(sender, recipient, amount); uint currentAllowance = _allowances[sender][msg.sender]; enforce(currentAllowance >= amount, "Transfer > allowance"); _approve(sender, msg.sender, currentAllowance - amount); return true; } function increaseAllowance(address spender, uint addedValue) external returns (bool) { _approve(msg.sender, spender, _allowances[msg.sender][spender] + addedValue); return true; } function decreaseAllowance(address spender, uint subtractedValue) external returns (bool) { uint currentAllowance = _allowances[msg.sender][spender]; enforce(currentAllowance >= subtractedValue, "<0 allowance"); _approve(msg.sender, spender, currentAllowance - subtractedValue); return true; } function seppuku() public onlyAuth { selfdestruct(payable(msg.sender)); } } // !SECTION Ichiba Contract // !SECTION Contracts
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"BalanceMitigationFactor","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DED","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"disabled","type":"bool"}],"name":"DisableAntispamSeconds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"liquidityTokenAddress","type":"address"}],"name":"LiquidityTokenAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"newAntispamSeconds","type":"uint8"}],"name":"SetAntispamSeconds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"max","type":"uint256"}],"name":"SetMaxSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"__developmentFee","type":"uint8"},{"internalType":"uint8","name":"__liquidityFee","type":"uint8"},{"internalType":"uint8","name":"__buyTax","type":"uint8"},{"internalType":"uint8","name":"__sellTax","type":"uint8"},{"internalType":"uint8","name":"__transferTax","type":"uint8"}],"name":"SetTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"StartingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"actor","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBalanceMitigation","type":"uint256"},{"internalType":"uint256","name":"newswapMitigation","type":"uint256"}],"name":"UpdateMitigations","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"WithdrawDevETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"_allowances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_balances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"antispamSeconds","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"antispam_entry","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":"","type":"address"}],"name":"authorizations","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"balanceMitigation","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"actor","type":"address"}],"name":"banAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buyTax","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"collect","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"contract_controls","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"destroy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"developmentBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"developmentFee","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"new_owner","type":"address"}],"name":"edit_owner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"effectiveCirculating","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"actor","type":"address"}],"name":"freezeActor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"AddressToCheck","type":"address"}],"name":"getAddressantispamSecondsInSeconds","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMitigations","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"swap","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"max","type":"uint256"}],"name":"getRandom","outputs":[{"internalType":"uint256","name":"_random","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTaxes","outputs":[{"internalType":"uint256","name":"__developmentFee","type":"uint256"},{"internalType":"uint256","name":"__liquidityFee","type":"uint256"},{"internalType":"uint256","name":"__buyTax","type":"uint256"},{"internalType":"uint256","name":"__sellTax","type":"uint256"},{"internalType":"uint256","name":"__transferTax","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"get_antiflood_enabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"get_blacklist_enabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"get_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"get_sniper_hole_enabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"get_token_running","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"get_token_swapping","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getantispamSeconds","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":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"actor","type":"address"}],"name":"is_auth","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"actor","type":"address"}],"name":"is_blacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"actor","type":"address"}],"name":"is_frozen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"actor","type":"address"}],"name":"is_not_cooled_down","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"actor","type":"address"}],"name":"is_owner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"actor","type":"address"}],"name":"is_whitelisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFee","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair_address","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tknAddress","type":"address"}],"name":"retrieve_tokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IUniswapRouter02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router_address","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"seppuku","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"check_banEnabled","type":"bool"}],"name":"setBlacklistEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"newShare","type":"uint8"}],"name":"setDevelopmentFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"set_antiflood_enabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"actor","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"set_auth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"actor","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"set_blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"set_blacklist_enabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"actor","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"set_cooled_down","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"actor","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"set_frozen","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"set_sniper_hole_enabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"set_token_running","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"set_token_swapping","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"actor","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"set_whitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalPayouts","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalTokenSwapGenerated","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":[],"name":"transferTax","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"txs","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60c0604052600680546001600160401b0319166702501403030309031790819055620000369060ff61010090910416600a6200046b565b620000479064cec0ecb00062000483565b6007556007546008556032600754620000619190620004a5565b600e553480156200007157600080fd5b50600180546001600160a01b03191633908117909155600090815260208190526040812080546006179055600854606490620000af90606262000483565b620000bb9190620004a5565b33600081815260036020526040808220849055519293509091600080516020620037fa83398151915290620000f39085815260200190565b60405180910390a36000816008546200010d9190620004c8565b30600081815260036020526040808220849055519293509091600080516020620037fa83398151915290620001459085815260200190565b60405180910390a3737a250d5630b4cf539739df2c5dacb4c659f2488d60a08190526040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015620001a3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001c99190620004de565b6001600160a01b031663c9c653963060a0516001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000219573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200023f9190620004de565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200028d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002b39190620004de565b6001600160a01b0316608052600654600754606491620002d99160ff9091169062000483565b620002e59190620004a5565b60095550503360009081526020818152604080832080549092179091557f4d8847422a80ca51bae4389b5955f4fb9dbaee759b8d40bea5e598eeb6067854805460bf9081169091556080516001600160a01b0316835281832080548216905530835291208054909116905562000509565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620003ad57816000190482111562000391576200039162000356565b808516156200039f57918102915b93841c939080029062000371565b509250929050565b600082620003c65750600162000465565b81620003d55750600062000465565b8160018114620003ee5760028114620003f95762000419565b600191505062000465565b60ff8411156200040d576200040d62000356565b50506001821b62000465565b5060208310610133831016604e8410600b84101617156200043e575081810a62000465565b6200044a83836200036c565b806000190482111562000461576200046162000356565b0290505b92915050565b60006200047c60ff841683620003b5565b9392505050565b6000816000190483118215151615620004a057620004a062000356565b500290565b600082620004c357634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111562000465576200046562000356565b600060208284031215620004f157600080fd5b81516001600160a01b03811681146200047c57600080fd5b60805160a0516132856200057560003960008181610f0b01528181612a8a01528181612b0601528181612bbe01528181612c320152612c8e0152600081816107f101528181612140015281816121a3015281816122fe0152818161235e015261275101526132856000f3fe60806040526004361061045d5760003560e01c8063779ee6281161023d578063c3e3cc2c11610138578063da9ddf8e116100bb578063efb3e81711610082578063efb3e81714610ea4578063f21d3cd114610eb9578063f4ea55ab14610ed9578063f887ea4014610ef9578063fe0174bd14610579578063fe48183c14610f2d57005b8063da9ddf8e14610def578063dbb6eeb914610e09578063dd62ed3e14610e29578063e495d4e714610e6f578063e522538114610e8f57005b8063cd4b6914116100ff578063cd4b691414610d35578063d28d885214610d55578063d46f2f6614610d87578063d575636114610daf578063d76b1bb114610dcf57005b8063c3e3cc2c14610c9f578063c550204514610cb4578063cc1776d314610cd4578063ccd14d5414610cf5578063cce7590e14610d1557005b80639af441c6116101c0578063a9059cbb11610187578063a9059cbb14610bf8578063a97a5ab314610c18578063b09f126614610c38578063b8b99c1214610c6a578063c3bf0e8d14610c7f57005b80639af441c614610b625780639d11877014610b82578063a457c2d714610ba2578063a52d777e14610bc2578063a5f3d00314610bd757005b8063875122bb11610204578063875122bb14610aa95780638df7a75014610ac857806395d89b4114610ae857806398118cb414610b1757806399632d5414610b3857005b8063779ee62814610a1b5780637d68898814610a3b5780637f06fc7b14610a515780637f49f70914610a675780638124f7ac14610a8757005b8063313ce5671161035857806349b9e96a116102db5780636804ef3c116102a25780636804ef3c146109585780636ebcf60714610978578063703ac0b3146109a557806370a08231146109bb57806372a5ca7a146109f157806375a365f614610a0657005b806349b9e96a146108cc5780634a752fe6146108ec5780634f7041a5146109025780634fb30d8b1461092257806358becdf91461093857005b80633a13e1af1161031f5780633a13e1af146108335780633eca0abe146108605780633ffa84e6146108805780634089b170146108a057806348e907b7146108b657005b8063313ce5671461078d57806332424aa3146107aa578063340e5789146107c957806334184e26146107df578063395093511461081357005b80631201cbd0116103e05780631a037094116103a75780631a037094146106b5578063216a7131146106ca57806323b872dd146106ea578063286d1f701461070a5780632973ef2d1461072a57005b80631201cbd01461062b578063121922481461064b5780631758ce441461066b5780631794e95a1461068057806318160ddd146106a057005b8063095ea7b311610424578063095ea7b3146105595780630ac298dc146105795780630af43de8146105ab5780630b068a2a146105de5780630f05e414146105fe57005b8063024c2ddd146104665780630462ea2d146104b157806305c0b8b6146104d157806306fdde03146104f15780630776076f1461052957005b3661046457005b005b34801561047257600080fd5b5061049e610481366004612d21565b600460209081526000928352604080842090915290825290205481565b6040519081526020015b60405180910390f35b3480156104bd57600080fd5b506104646104cc366004612d5a565b610f4d565b3480156104dd57600080fd5b506104646104ec366004612d85565b6110e1565b3480156104fd57600080fd5b5060408051808201909152600681526549636869626160d01b60208201525b6040516104a89190612da2565b34801561053557600080fd5b50610549610544366004612d5a565b611148565b60405190151581526020016104a8565b34801561056557600080fd5b50610549610574366004612df0565b611172565b34801561058557600080fd5b506001546001600160a01b03165b6040516001600160a01b0390911681526020016104a8565b3480156105b757600080fd5b506006546105cc90600160381b900460ff1681565b60405160ff90911681526020016104a8565b3480156105ea57600080fd5b506104646105f9366004612e32565b611188565b34801561060a57600080fd5b5061049e610619366004612d5a565b60056020526000908152604090205481565b34801561063757600080fd5b50610464610646366004612d85565b6111ca565b34801561065757600080fd5b50610464610666366004612d85565b6111f2565b34801561067757600080fd5b5061054961121a565b34801561068c57600080fd5b5061054961069b366004612d5a565b611230565b3480156106ac57600080fd5b5060085461049e565b3480156106c157600080fd5b50610549611254565b3480156106d657600080fd5b506104646106e5366004612d85565b61126b565b3480156106f657600080fd5b50610549610705366004612e4d565b6112a6565b34801561071657600080fd5b5061049e610725366004612d5a565b611331565b34801561073657600080fd5b506006546040805160ff600160301b840481168252600160281b840481166020830152620100008404811692820192909252630100000083048216606082015264010000000090920416608082015260a0016104a8565b34801561079957600080fd5b50600654610100900460ff166105cc565b3480156107b657600080fd5b506006546105cc90610100900460ff1681565b3480156107d557600080fd5b5061049e600d5481565b3480156107eb57600080fd5b506105937f000000000000000000000000000000000000000000000000000000000000000081565b34801561081f57600080fd5b5061054961082e366004612df0565b61136b565b34801561083f57600080fd5b5061049e61084e366004612d5a565b60006020819052908152604090205481565b34801561086c57600080fd5b5061046461087b366004612e8e565b6113a2565b34801561088c57600080fd5b5061046461089b366004612ef3565b611470565b3480156108ac57600080fd5b5061049e600c5481565b3480156108c257600080fd5b5061049e600b5481565b3480156108d857600080fd5b506104646108e7366004612ef3565b6114f5565b3480156108f857600080fd5b5061049e60095481565b34801561090e57600080fd5b506006546105cc9062010000900460ff1681565b34801561092e57600080fd5b5061049e600a5481565b34801561094457600080fd5b50610464610953366004612df0565b61155d565b34801561096457600080fd5b50610464610973366004612d85565b6116bb565b34801561098457600080fd5b5061049e610993366004612d5a565b60036020526000908152604090205481565b3480156109b157600080fd5b5061049e60025481565b3480156109c757600080fd5b5061049e6109d6366004612d5a565b6001600160a01b031660009081526003602052604090205490565b3480156109fd57600080fd5b506105496116f6565b348015610a1257600080fd5b50610549611707565b348015610a2757600080fd5b50610549610a36366004612d5a565b611718565b348015610a4757600080fd5b5061049e60075481565b348015610a5d57600080fd5b5061049e60085481565b348015610a7357600080fd5b50610464610a82366004612d5a565b61173c565b348015610a9357600080fd5b506006546105cc90640100000000900460ff1681565b348015610ab557600080fd5b50600654600160381b900460ff1661049e565b348015610ad457600080fd5b50610464610ae3366004612e32565b6117cd565b348015610af457600080fd5b5060408051808201909152600681526549434849424160d01b602082015261051c565b348015610b2357600080fd5b506006546105cc90600160281b900460ff1681565b348015610b4457600080fd5b50610b4d611810565b604080519283526020830191909152016104a8565b348015610b6e57600080fd5b50610549610b7d366004612d5a565b611863565b348015610b8e57600080fd5b50610464610b9d366004612f21565b611887565b348015610bae57600080fd5b50610549610bbd366004612df0565b611973565b348015610bce57600080fd5b506105496119e1565b348015610be357600080fd5b506006546105cc90600160301b900460ff1681565b348015610c0457600080fd5b50610549610c13366004612df0565b6119f2565b348015610c2457600080fd5b50610464610c33366004612d85565b6119ff565b348015610c4457600080fd5b5061051c6040518060400160405280600681526020016549434849424160d01b81525081565b348015610c7657600080fd5b50610464611a3a565b348015610c8b57600080fd5b50610464610c9a366004612f3a565b611ae5565b348015610cab57600080fd5b50610464611b53565b348015610cc057600080fd5b50610464610ccf366004612d85565b611b75565b348015610ce057600080fd5b506006546105cc906301000000900460ff1681565b348015610d0157600080fd5b50610464610d10366004612ef3565b611bb0565b348015610d2157600080fd5b50610464610d30366004612f21565b611c18565b348015610d4157600080fd5b5061049e610d50366004612f21565b611c3c565b348015610d6157600080fd5b5061051c6040518060400160405280600681526020016549636869626160d01b81525081565b348015610d9357600080fd5b50610593737a250d5630b4cf539739df2c5dacb4c659f2488d81565b348015610dbb57600080fd5b50610464610dca366004612ef3565b611c90565b348015610ddb57600080fd5b50610549610dea366004612d5a565b611cf8565b348015610dfb57600080fd5b506006546105cc9060ff1681565b348015610e1557600080fd5b50610464610e24366004612d5a565b611d1c565b348015610e3557600080fd5b5061049e610e44366004612d21565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b348015610e7b57600080fd5b50610464610e8a366004612ef3565b611d67565b348015610e9b57600080fd5b50610464611dce565b348015610eb057600080fd5b50610593600081565b348015610ec557600080fd5b50610464610ed4366004612d5a565b611e68565b348015610ee557600080fd5b50610549610ef4366004612d5a565b611eb1565b348015610f0557600080fd5b506105937f000000000000000000000000000000000000000000000000000000000000000081565b348015610f3957600080fd5b50610464610f48366004612d5a565b611ed5565b33600090815260208190526040902054610fb990610f6c906001611f1c565b80610f8d575033600090815260208190526040902054610f8d906002611f1c565b6040518060400160405280600e81526020016d1b9bdd08185d5d1a1bdc9a5e995960921b815250611f36565b6040516370a0823160e01b815230600482015281906000906001600160a01b038316906370a0823190602401602060405180830381865afa158015611002573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110269190612f5c565b905061106a600082116040518060400160405280601881526020017f4e6f20746f6b656e7320696e206f75722062616c616e63650000000000000000815250611f36565b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af11580156110b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110db9190612f75565b50505050565b3360009081526020819052604090205461112790611100906002611f1c565b604051806040016040528060098152602001683737ba1037bbb732b960b91b815250611f36565b8061113a57600254600819165b60025550565b600254600817611134565b50565b6001600160a01b03811660009081526020819052604081205461116c906002611f1c565b92915050565b600061117f338484611f49565b50600192915050565b336000908152602081905260409020546111a790610f6c906001611f1c565b6006805460ff909216600160301b0266ff00000000000019909216919091179055565b336000908152602081905260409020546111e990610f6c906001611f1c565b6111458161126b565b3360009081526020819052604090205461121190610f6c906001611f1c565b61114581611b75565b60025460009061122b906003611f1c565b905090565b6001600160a01b03811660009081526020819052604081205461116c906003611f1c565b600061122b60028054611f1c90919063ffffffff16565b3360009081526020819052604090205461128a90611100906002611f1c565b8061129b5760025460041916611134565b600254600417611134565b60006112b3848484612022565b6001600160a01b038416600090815260046020908152604080832033845282529182902054825180840190935260148352735472616e73666572203e20616c6c6f77616e636560601b9183019190915290611312908483101590611f36565b61132685336113218685612fa8565b611f49565b506001949350505050565b6001600160a01b03811660009081526005602052604081205442811161135a5750600092915050565b6113644282612fa8565b9392505050565b3360008181526004602090815260408083206001600160a01b0387168452909152812054909161117f918590611321908690612fbb565b336000908152602081905260409020546113c190610f6c906001611f1c565b60006113cd8587612fce565b90506113f78160ff1660641460405180606001604052806026815260200161320a60269139611f36565b506006805466ffff00000000001916600160301b60ff9788160265ff0000000000191617600160281b958716959095029490941763ffff00001916620100009386169390930263ff0000001916929092176301000000918516919091021764ff0000000019166401000000009190931602919091179055565b3360009081526020819052604090205461148f90610f6c906001611f1c565b80156114cf576001600160a01b0382166000908152602081905260409081902054175b6001600160a01b0383166000908152602081905260409020555050565b6001600160a01b038216600090815260208190526040902054604019166114b2565b5050565b3360009081526020819052604090205461151490610f6c906001611f1c565b801561153b576001600160a01b0382166000908152602081905260409020546002176114b2565b6001600160a01b038216600090815260208190526040902054600219166114b2565b3360009081526020819052604090205461157c90610f6c906001611f1c565b6115d78160036000856001600160a01b03166001600160a01b03168152602001908152602001600020541015604051806040016040528060118152602001704e6f7420656e6f75676820746f6b656e7360781b815250611f36565b6006546115ed90610100900460ff16600a6130cb565b6115f790826130da565b6001600160a01b0383166000908152600360205260408120805490919061161f908490612fa8565b909155505060065461163a90610100900460ff16600a6130cb565b61164490826130da565b3060009081526003602052604081208054909190611663908490612fbb565b909155505060065430906001600160a01b038416906000805160206132308339815191529061169b90610100900460ff16600a6130cb565b6116a590856130da565b6040519081526020015b60405180910390a35050565b336000908152602081905260409020546116da90611100906002611f1c565b806116eb5760025460101916611134565b600254601017611134565b60025460009061122b906005611f1c565b60025460009061122b906006611f1c565b6001600160a01b03811660009081526020819052604081205461116c906005611f1c565b3360009081526020819052604090205461175b90610f6c906001611f1c565b6001600160a01b038116600090815260036020526040808220805490839055308352908220805491928392611791908490612fbb565b909155506117a29050826001611c90565b60405181815230906001600160a01b03841690600080516020613230833981519152906020016116af565b336000908152602081905260409020546117ec90610f6c906001611f1c565b6006805460ff909216600160381b0267ff0000000000000019909216919091179055565b600654600090819061182b90610100900460ff16600a6130cb565b600954611838919061310f565b60065461184e90610100900460ff16600a6130cb565b600e5461185b919061310f565b915091509091565b6001600160a01b03811660009081526020819052604081205461116c906006611f1c565b336000908152602081905260409020546118a690610f6c906001611f1c565b61190d8160036000306001600160a01b03166001600160a01b031681526020019081526020016000205410156040518060400160405280601881526020017f4e6f2062616c616e636520746f206f706572617465206f6e0000000000000000815250611f36565b306000908152600360205260408120805483929061192c908490612fa8565b9250508190555080600860008282546119459190612fa8565b909155505060405181815260009030906000805160206132308339815191529060200160405180910390a350565b3360009081526004602090815260408083206001600160a01b03861684528252808320548151808301909252600c82526b3c3020616c6c6f77616e636560a01b928201929092526119c8908483101590611f36565b6119d733856113218685612fa8565b5060019392505050565b60025460009061122b906004611f1c565b600061117f338484612022565b33600090815260208190526040902054611a1e90611100906002611f1c565b80611a2f5760025460401916611134565b600254604017611134565b33600090815260208190526040902054611a5990610f6c906001611f1c565b600d805460009182905560405190913391829084908381818185875af1925050503d8060008114611aa6576040519150601f19603f3d011682016040523d82523d6000602084013e611aab565b606091505b50509050611ae0816040518060400160405280600f81526020016e1dda5d1a191c985dc819985a5b1959608a1b815250611f36565b505050565b33600090815260208190526040902054611b0490610f6c906001611f1c565b600654611b1a90610100900460ff16600a6130cb565b611b2490836130da565b600654909250611b3d90610100900460ff16600a6130cb565b611b4790826130da565b60099290925550600e55565b33600090815260208190526040902054611b7290610f6c906001611f1c565b33ff5b33600090815260208190526040902054611b9490611100906002611f1c565b80611ba55760025460201916611134565b600254602017611134565b33600090815260208190526040902054611bcf90610f6c906001611f1c565b8015611bf6576001600160a01b0382166000908152602081905260409020546010176114b2565b6001600160a01b038216600090815260208190526040902054601019166114b2565b33600090815260208190526040902054611c3790610f6c906001611f1c565b600e55565b600854600a546040805144602080830191909152428284015260608201949094526080808201939093528151808203909301835260a0019052805191012060009081611c888483613123565b949350505050565b33600090815260208190526040902054611caf90610f6c906001611f1c565b8015611cd6576001600160a01b0382166000908152602081905260409020546008176114b2565b6001600160a01b038216600090815260208190526040902054600819166114b2565b6001600160a01b03811660009081526020819052604081205461116c906004611f1c565b33600090815260208190526040902054611d3b90610f6c906001611f1c565b60018054600060208190526001600160a01b03939093166001600160a01b031990911681179091559052565b33600090815260208190526040902054611d8690610f6c906001611f1c565b8015611dac576001600160a01b03821660009081526020818152604090912054176114b2565b6001600160a01b038216600090815260208190526040902054602019166114b2565b33600090815260208190526040902054611ded90610f6c906001611f1c565b604051600090339047908381818185875af1925050503d8060008114611e2f576040519150601f19603f3d011682016040523d82523d6000602084013e611e34565b606091505b50509050611145816040518060400160405280600e81526020016d14d95b991a5b99c819985a5b195960921b815250611f36565b33600090815260208190526040902054611e8790610f6c906001611f1c565b611e95426301e13380612fbb565b6001600160a01b03909116600090815260056020526040902055565b6001600160a01b03811660009081526020819052604081205461116c906001611f1c565b33600090815260208190526040902054611ef490610f6c906001611f1c565b600f80546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6000600183831c81169081146119d7576000949350505050565b60018210156114f1578060005260206000fd5b60408051808201909152601081526f105c1c1c9bdd9948199c9bdb4819195960821b6020820152611f86906001600160a01b038516151590611f36565b60408051808201909152600e81526d105c1c1c9bdd99481d1bc819195960921b6020820152611fc1906001600160a01b038416151590611f36565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6120756001600160a01b0384161580159061204557506001600160a01b03831615155b60405180604001604052806012815260200171151c985b9cd9995c88199c9bdb481919585960721b815250611f36565b6001600a60008282546120889190612fbb565b909155506120969050611254565b156120df576120df6120a784611230565b1580156120ba57506120b883611230565b155b6040518060400160405280600781526020016662616e6e65642160c81b815250611f36565b60006120ea84611718565b806120f957506120f983611718565b80612108575061210884611eb1565b80612117575061211783611eb1565b905060006001600160a01b03851630148061213a57506001600160a01b03841630145b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316866001600160a01b031614801561219b57506001600160a01b038516737a250d5630b4cf539739df2c5dacb4c659f2488d145b806121fe57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b03161480156121fe57506001600160a01b038616737a250d5630b4cf539739df2c5dacb4c659f2488d145b905081806122095750805b806122115750825b15612226576122218686866123d2565b6123ca565b61222e611707565b6122fa576001546001600160a01b0387811691161480159061225e57506001546001600160a01b03868116911614155b156122fa5761226b61121a565b156122b457846001600160a01b0316866001600160a01b031660008051602061323083398151915260006040516122a491815260200190565b60405180910390a3505050505050565b6122fa6122bf611707565b6040518060400160405280601781526020017f74726164696e67206e6f742079657420656e61626c6564000000000000000000815250611f36565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316876001600160a01b0316148061235857506001600160a01b038716737a250d5630b4cf539739df2c5dacb4c659f2488d145b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316876001600160a01b031614806123b857506001600160a01b038716737a250d5630b4cf539739df2c5dacb4c659f2488d145b90506123c788888885856124d6565b50505b505050505050565b600060036000856001600160a01b03166001600160a01b0316815260200190815260200160002054905061243982821015604051806040016040528060188152602001775472616e7366657220657863656564732062616c616e636560401b815250611f36565b6001600160a01b03841660009081526003602052604081208054849290612461908490612fa8565b90915550506001600160a01b0383166000908152600360205260408120805484929061248e908490612fbb565b92505081905550826001600160a01b0316846001600160a01b0316600080516020613230833981519152846040516124c891815260200190565b60405180910390a350505050565b6001600160a01b0380851660009081526003602090815260408083205493891683529182902054825180840190935260188352775472616e7366657220657863656564732062616c616e636560401b918301919091529061253b908683101590611f36565b600083156126355761254c88611863565b6125ec576001600160a01b0388166000908152600560205260409020546125bb9042101580612580575061257e6116f6565b155b6040518060400160405280601981526020017f53656c6c657220696e20616e74697370616d5365636f6e647300000000000000815250611f36565b6006546125d290600160381b900460ff1642612fbb565b6001600160a01b0389166000908152600560205260409020555b612622600e548711156040518060400160405280600f81526020016e223ab6b810383937ba32b1ba34b7b760891b815250611f36565b506006546301000000900460ff1661274f565b84156126c55760095461267c9061264c8886612fbb565b11156040518060400160405280601081526020016f3bb430b63290383937ba32b1ba34b7b760811b815250611f36565b6126b3600e548711156040518060400160405280601081526020016f3bb430b63290383937ba32b1ba34b7b760811b815250611f36565b5060065462010000900460ff1661274f565b6009546126d69061264c8886612fbb565b6126df88611863565b61273f576001600160a01b03881660009081526005602052604090205461273f904210158061271357506127116116f6565b155b6040518060400160405280600e81526020016d53656e64657220696e204c6f636b60901b815250611f36565b50600654640100000000900460ff165b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316886001600160a01b0316141580156127945750600f5460ff16155b156127a2576127a2866128d8565b6006546000906127d290889084906127cd9060ff600160301b8204811691600160281b900416612fce565b612a58565b905060006127e08289612fa8565b6001600160a01b038b16600090815260036020526040812080549293508a9290919061280d908490612fa8565b90915550503060009081526003602052604081208054849290612831908490612fbb565b90915550506001600160a01b0389166000908152600360205260408120805483929061285e908490612fbb565b909155505060405182815230906001600160a01b038c16906000805160206132308339815191529060200160405180910390a3886001600160a01b03168a6001600160a01b0316600080516020613230833981519152836040516128c491815260200190565b60405180910390a350505050505050505050565b600f805460ff1916600117905530600090815260036020526040902054600654600e54600160281b90910460ff1690838111156129125750825b80831080612922575061ffff8216155b1561292f57505050612a4b565b60065460009061ffff84169061294f90600160281b900460ff16846130da565b612959919061310f565b60065490915060009061ffff85169061297c90600160301b900460ff16856130da565b612986919061310f565b9050600061299560028461310f565b905060006129a38285612fa8565b905060006129b18483612fbb565b9050476129bd82612a84565b60006129c98247612fa8565b90506000836129d886846130da565b6129e2919061310f565b90506129ee8682612c2c565b60006129fa8447612fa8565b600654909150600090606490612a1a90600160301b900460ff16846130da565b612a24919061310f565b905080600d6000828254612a389190612fbb565b9091555050505050505050505050505050505b50600f805460ff19169055565b60006127108260ff168460ff1686612a7091906130da565b612a7a91906130da565b611c88919061310f565b612aaf307f000000000000000000000000000000000000000000000000000000000000000083611f49565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110612ae457612ae4613137565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b86919061314d565b81600181518110612b9957612b99613137565b6001600160a01b03928316602091820292909201015260405163791ac94760e01b81527f00000000000000000000000000000000000000000000000000000000000000009091169063791ac94790612bfe90859060009086903090429060040161316a565b600060405180830381600087803b158015612c1857600080fd5b505af11580156123ca573d6000803e3d6000fd5b612c57307f000000000000000000000000000000000000000000000000000000000000000084611f49565b60405163f305d71960e01b8152306004820181905260248201849052600060448301819052606483015260848201524260a48201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063f305d71990839060c40160606040518083038185885af1158015612ce0573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612d0591906131db565b5050505050565b6001600160a01b038116811461114557600080fd5b60008060408385031215612d3457600080fd5b8235612d3f81612d0c565b91506020830135612d4f81612d0c565b809150509250929050565b600060208284031215612d6c57600080fd5b813561136481612d0c565b801515811461114557600080fd5b600060208284031215612d9757600080fd5b813561136481612d77565b600060208083528351808285015260005b81811015612dcf57858101830151858201604001528201612db3565b506000604082860101526040601f19601f8301168501019250505092915050565b60008060408385031215612e0357600080fd5b8235612e0e81612d0c565b946020939093013593505050565b803560ff81168114612e2d57600080fd5b919050565b600060208284031215612e4457600080fd5b61136482612e1c565b600080600060608486031215612e6257600080fd5b8335612e6d81612d0c565b92506020840135612e7d81612d0c565b929592945050506040919091013590565b600080600080600060a08688031215612ea657600080fd5b612eaf86612e1c565b9450612ebd60208701612e1c565b9350612ecb60408701612e1c565b9250612ed960608701612e1c565b9150612ee760808701612e1c565b90509295509295909350565b60008060408385031215612f0657600080fd5b8235612f1181612d0c565b91506020830135612d4f81612d77565b600060208284031215612f3357600080fd5b5035919050565b60008060408385031215612f4d57600080fd5b50508035926020909101359150565b600060208284031215612f6e57600080fd5b5051919050565b600060208284031215612f8757600080fd5b815161136481612d77565b634e487b7160e01b600052601160045260246000fd5b8181038181111561116c5761116c612f92565b8082018082111561116c5761116c612f92565b60ff818116838216019081111561116c5761116c612f92565b600181815b8085111561302257816000190482111561300857613008612f92565b8085161561301557918102915b93841c9390800290612fec565b509250929050565b6000826130395750600161116c565b816130465750600061116c565b816001811461305c576002811461306657613082565b600191505061116c565b60ff84111561307757613077612f92565b50506001821b61116c565b5060208310610133831016604e8410600b84101617156130a5575081810a61116c565b6130af8383612fe7565b80600019048211156130c3576130c3612f92565b029392505050565b600061136460ff84168361302a565b60008160001904831182151516156130f4576130f4612f92565b500290565b634e487b7160e01b600052601260045260246000fd5b60008261311e5761311e6130f9565b500490565b600082613132576131326130f9565b500690565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561315f57600080fd5b815161136481612d0c565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156131ba5784516001600160a01b031683529383019391830191600101613195565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156131f057600080fd5b835192506020840151915060408401519050925092509256fe6275726e2b6c69712b6d61726b6574696e67206e6565647320746f20657175616c2031303025ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212204e4ed9f11f232b4171f70c191d8778428b8ccb5e7416fbd94cca4dcce27ef0a864736f6c63430008100033ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
Deployed Bytecode
0x60806040526004361061045d5760003560e01c8063779ee6281161023d578063c3e3cc2c11610138578063da9ddf8e116100bb578063efb3e81711610082578063efb3e81714610ea4578063f21d3cd114610eb9578063f4ea55ab14610ed9578063f887ea4014610ef9578063fe0174bd14610579578063fe48183c14610f2d57005b8063da9ddf8e14610def578063dbb6eeb914610e09578063dd62ed3e14610e29578063e495d4e714610e6f578063e522538114610e8f57005b8063cd4b6914116100ff578063cd4b691414610d35578063d28d885214610d55578063d46f2f6614610d87578063d575636114610daf578063d76b1bb114610dcf57005b8063c3e3cc2c14610c9f578063c550204514610cb4578063cc1776d314610cd4578063ccd14d5414610cf5578063cce7590e14610d1557005b80639af441c6116101c0578063a9059cbb11610187578063a9059cbb14610bf8578063a97a5ab314610c18578063b09f126614610c38578063b8b99c1214610c6a578063c3bf0e8d14610c7f57005b80639af441c614610b625780639d11877014610b82578063a457c2d714610ba2578063a52d777e14610bc2578063a5f3d00314610bd757005b8063875122bb11610204578063875122bb14610aa95780638df7a75014610ac857806395d89b4114610ae857806398118cb414610b1757806399632d5414610b3857005b8063779ee62814610a1b5780637d68898814610a3b5780637f06fc7b14610a515780637f49f70914610a675780638124f7ac14610a8757005b8063313ce5671161035857806349b9e96a116102db5780636804ef3c116102a25780636804ef3c146109585780636ebcf60714610978578063703ac0b3146109a557806370a08231146109bb57806372a5ca7a146109f157806375a365f614610a0657005b806349b9e96a146108cc5780634a752fe6146108ec5780634f7041a5146109025780634fb30d8b1461092257806358becdf91461093857005b80633a13e1af1161031f5780633a13e1af146108335780633eca0abe146108605780633ffa84e6146108805780634089b170146108a057806348e907b7146108b657005b8063313ce5671461078d57806332424aa3146107aa578063340e5789146107c957806334184e26146107df578063395093511461081357005b80631201cbd0116103e05780631a037094116103a75780631a037094146106b5578063216a7131146106ca57806323b872dd146106ea578063286d1f701461070a5780632973ef2d1461072a57005b80631201cbd01461062b578063121922481461064b5780631758ce441461066b5780631794e95a1461068057806318160ddd146106a057005b8063095ea7b311610424578063095ea7b3146105595780630ac298dc146105795780630af43de8146105ab5780630b068a2a146105de5780630f05e414146105fe57005b8063024c2ddd146104665780630462ea2d146104b157806305c0b8b6146104d157806306fdde03146104f15780630776076f1461052957005b3661046457005b005b34801561047257600080fd5b5061049e610481366004612d21565b600460209081526000928352604080842090915290825290205481565b6040519081526020015b60405180910390f35b3480156104bd57600080fd5b506104646104cc366004612d5a565b610f4d565b3480156104dd57600080fd5b506104646104ec366004612d85565b6110e1565b3480156104fd57600080fd5b5060408051808201909152600681526549636869626160d01b60208201525b6040516104a89190612da2565b34801561053557600080fd5b50610549610544366004612d5a565b611148565b60405190151581526020016104a8565b34801561056557600080fd5b50610549610574366004612df0565b611172565b34801561058557600080fd5b506001546001600160a01b03165b6040516001600160a01b0390911681526020016104a8565b3480156105b757600080fd5b506006546105cc90600160381b900460ff1681565b60405160ff90911681526020016104a8565b3480156105ea57600080fd5b506104646105f9366004612e32565b611188565b34801561060a57600080fd5b5061049e610619366004612d5a565b60056020526000908152604090205481565b34801561063757600080fd5b50610464610646366004612d85565b6111ca565b34801561065757600080fd5b50610464610666366004612d85565b6111f2565b34801561067757600080fd5b5061054961121a565b34801561068c57600080fd5b5061054961069b366004612d5a565b611230565b3480156106ac57600080fd5b5060085461049e565b3480156106c157600080fd5b50610549611254565b3480156106d657600080fd5b506104646106e5366004612d85565b61126b565b3480156106f657600080fd5b50610549610705366004612e4d565b6112a6565b34801561071657600080fd5b5061049e610725366004612d5a565b611331565b34801561073657600080fd5b506006546040805160ff600160301b840481168252600160281b840481166020830152620100008404811692820192909252630100000083048216606082015264010000000090920416608082015260a0016104a8565b34801561079957600080fd5b50600654610100900460ff166105cc565b3480156107b657600080fd5b506006546105cc90610100900460ff1681565b3480156107d557600080fd5b5061049e600d5481565b3480156107eb57600080fd5b506105937f00000000000000000000000030e0414bff4f31865053894c7d9b065723d7b7b881565b34801561081f57600080fd5b5061054961082e366004612df0565b61136b565b34801561083f57600080fd5b5061049e61084e366004612d5a565b60006020819052908152604090205481565b34801561086c57600080fd5b5061046461087b366004612e8e565b6113a2565b34801561088c57600080fd5b5061046461089b366004612ef3565b611470565b3480156108ac57600080fd5b5061049e600c5481565b3480156108c257600080fd5b5061049e600b5481565b3480156108d857600080fd5b506104646108e7366004612ef3565b6114f5565b3480156108f857600080fd5b5061049e60095481565b34801561090e57600080fd5b506006546105cc9062010000900460ff1681565b34801561092e57600080fd5b5061049e600a5481565b34801561094457600080fd5b50610464610953366004612df0565b61155d565b34801561096457600080fd5b50610464610973366004612d85565b6116bb565b34801561098457600080fd5b5061049e610993366004612d5a565b60036020526000908152604090205481565b3480156109b157600080fd5b5061049e60025481565b3480156109c757600080fd5b5061049e6109d6366004612d5a565b6001600160a01b031660009081526003602052604090205490565b3480156109fd57600080fd5b506105496116f6565b348015610a1257600080fd5b50610549611707565b348015610a2757600080fd5b50610549610a36366004612d5a565b611718565b348015610a4757600080fd5b5061049e60075481565b348015610a5d57600080fd5b5061049e60085481565b348015610a7357600080fd5b50610464610a82366004612d5a565b61173c565b348015610a9357600080fd5b506006546105cc90640100000000900460ff1681565b348015610ab557600080fd5b50600654600160381b900460ff1661049e565b348015610ad457600080fd5b50610464610ae3366004612e32565b6117cd565b348015610af457600080fd5b5060408051808201909152600681526549434849424160d01b602082015261051c565b348015610b2357600080fd5b506006546105cc90600160281b900460ff1681565b348015610b4457600080fd5b50610b4d611810565b604080519283526020830191909152016104a8565b348015610b6e57600080fd5b50610549610b7d366004612d5a565b611863565b348015610b8e57600080fd5b50610464610b9d366004612f21565b611887565b348015610bae57600080fd5b50610549610bbd366004612df0565b611973565b348015610bce57600080fd5b506105496119e1565b348015610be357600080fd5b506006546105cc90600160301b900460ff1681565b348015610c0457600080fd5b50610549610c13366004612df0565b6119f2565b348015610c2457600080fd5b50610464610c33366004612d85565b6119ff565b348015610c4457600080fd5b5061051c6040518060400160405280600681526020016549434849424160d01b81525081565b348015610c7657600080fd5b50610464611a3a565b348015610c8b57600080fd5b50610464610c9a366004612f3a565b611ae5565b348015610cab57600080fd5b50610464611b53565b348015610cc057600080fd5b50610464610ccf366004612d85565b611b75565b348015610ce057600080fd5b506006546105cc906301000000900460ff1681565b348015610d0157600080fd5b50610464610d10366004612ef3565b611bb0565b348015610d2157600080fd5b50610464610d30366004612f21565b611c18565b348015610d4157600080fd5b5061049e610d50366004612f21565b611c3c565b348015610d6157600080fd5b5061051c6040518060400160405280600681526020016549636869626160d01b81525081565b348015610d9357600080fd5b50610593737a250d5630b4cf539739df2c5dacb4c659f2488d81565b348015610dbb57600080fd5b50610464610dca366004612ef3565b611c90565b348015610ddb57600080fd5b50610549610dea366004612d5a565b611cf8565b348015610dfb57600080fd5b506006546105cc9060ff1681565b348015610e1557600080fd5b50610464610e24366004612d5a565b611d1c565b348015610e3557600080fd5b5061049e610e44366004612d21565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b348015610e7b57600080fd5b50610464610e8a366004612ef3565b611d67565b348015610e9b57600080fd5b50610464611dce565b348015610eb057600080fd5b50610593600081565b348015610ec557600080fd5b50610464610ed4366004612d5a565b611e68565b348015610ee557600080fd5b50610549610ef4366004612d5a565b611eb1565b348015610f0557600080fd5b506105937f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b348015610f3957600080fd5b50610464610f48366004612d5a565b611ed5565b33600090815260208190526040902054610fb990610f6c906001611f1c565b80610f8d575033600090815260208190526040902054610f8d906002611f1c565b6040518060400160405280600e81526020016d1b9bdd08185d5d1a1bdc9a5e995960921b815250611f36565b6040516370a0823160e01b815230600482015281906000906001600160a01b038316906370a0823190602401602060405180830381865afa158015611002573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110269190612f5c565b905061106a600082116040518060400160405280601881526020017f4e6f20746f6b656e7320696e206f75722062616c616e63650000000000000000815250611f36565b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af11580156110b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110db9190612f75565b50505050565b3360009081526020819052604090205461112790611100906002611f1c565b604051806040016040528060098152602001683737ba1037bbb732b960b91b815250611f36565b8061113a57600254600819165b60025550565b600254600817611134565b50565b6001600160a01b03811660009081526020819052604081205461116c906002611f1c565b92915050565b600061117f338484611f49565b50600192915050565b336000908152602081905260409020546111a790610f6c906001611f1c565b6006805460ff909216600160301b0266ff00000000000019909216919091179055565b336000908152602081905260409020546111e990610f6c906001611f1c565b6111458161126b565b3360009081526020819052604090205461121190610f6c906001611f1c565b61114581611b75565b60025460009061122b906003611f1c565b905090565b6001600160a01b03811660009081526020819052604081205461116c906003611f1c565b600061122b60028054611f1c90919063ffffffff16565b3360009081526020819052604090205461128a90611100906002611f1c565b8061129b5760025460041916611134565b600254600417611134565b60006112b3848484612022565b6001600160a01b038416600090815260046020908152604080832033845282529182902054825180840190935260148352735472616e73666572203e20616c6c6f77616e636560601b9183019190915290611312908483101590611f36565b61132685336113218685612fa8565b611f49565b506001949350505050565b6001600160a01b03811660009081526005602052604081205442811161135a5750600092915050565b6113644282612fa8565b9392505050565b3360008181526004602090815260408083206001600160a01b0387168452909152812054909161117f918590611321908690612fbb565b336000908152602081905260409020546113c190610f6c906001611f1c565b60006113cd8587612fce565b90506113f78160ff1660641460405180606001604052806026815260200161320a60269139611f36565b506006805466ffff00000000001916600160301b60ff9788160265ff0000000000191617600160281b958716959095029490941763ffff00001916620100009386169390930263ff0000001916929092176301000000918516919091021764ff0000000019166401000000009190931602919091179055565b3360009081526020819052604090205461148f90610f6c906001611f1c565b80156114cf576001600160a01b0382166000908152602081905260409081902054175b6001600160a01b0383166000908152602081905260409020555050565b6001600160a01b038216600090815260208190526040902054604019166114b2565b5050565b3360009081526020819052604090205461151490610f6c906001611f1c565b801561153b576001600160a01b0382166000908152602081905260409020546002176114b2565b6001600160a01b038216600090815260208190526040902054600219166114b2565b3360009081526020819052604090205461157c90610f6c906001611f1c565b6115d78160036000856001600160a01b03166001600160a01b03168152602001908152602001600020541015604051806040016040528060118152602001704e6f7420656e6f75676820746f6b656e7360781b815250611f36565b6006546115ed90610100900460ff16600a6130cb565b6115f790826130da565b6001600160a01b0383166000908152600360205260408120805490919061161f908490612fa8565b909155505060065461163a90610100900460ff16600a6130cb565b61164490826130da565b3060009081526003602052604081208054909190611663908490612fbb565b909155505060065430906001600160a01b038416906000805160206132308339815191529061169b90610100900460ff16600a6130cb565b6116a590856130da565b6040519081526020015b60405180910390a35050565b336000908152602081905260409020546116da90611100906002611f1c565b806116eb5760025460101916611134565b600254601017611134565b60025460009061122b906005611f1c565b60025460009061122b906006611f1c565b6001600160a01b03811660009081526020819052604081205461116c906005611f1c565b3360009081526020819052604090205461175b90610f6c906001611f1c565b6001600160a01b038116600090815260036020526040808220805490839055308352908220805491928392611791908490612fbb565b909155506117a29050826001611c90565b60405181815230906001600160a01b03841690600080516020613230833981519152906020016116af565b336000908152602081905260409020546117ec90610f6c906001611f1c565b6006805460ff909216600160381b0267ff0000000000000019909216919091179055565b600654600090819061182b90610100900460ff16600a6130cb565b600954611838919061310f565b60065461184e90610100900460ff16600a6130cb565b600e5461185b919061310f565b915091509091565b6001600160a01b03811660009081526020819052604081205461116c906006611f1c565b336000908152602081905260409020546118a690610f6c906001611f1c565b61190d8160036000306001600160a01b03166001600160a01b031681526020019081526020016000205410156040518060400160405280601881526020017f4e6f2062616c616e636520746f206f706572617465206f6e0000000000000000815250611f36565b306000908152600360205260408120805483929061192c908490612fa8565b9250508190555080600860008282546119459190612fa8565b909155505060405181815260009030906000805160206132308339815191529060200160405180910390a350565b3360009081526004602090815260408083206001600160a01b03861684528252808320548151808301909252600c82526b3c3020616c6c6f77616e636560a01b928201929092526119c8908483101590611f36565b6119d733856113218685612fa8565b5060019392505050565b60025460009061122b906004611f1c565b600061117f338484612022565b33600090815260208190526040902054611a1e90611100906002611f1c565b80611a2f5760025460401916611134565b600254604017611134565b33600090815260208190526040902054611a5990610f6c906001611f1c565b600d805460009182905560405190913391829084908381818185875af1925050503d8060008114611aa6576040519150601f19603f3d011682016040523d82523d6000602084013e611aab565b606091505b50509050611ae0816040518060400160405280600f81526020016e1dda5d1a191c985dc819985a5b1959608a1b815250611f36565b505050565b33600090815260208190526040902054611b0490610f6c906001611f1c565b600654611b1a90610100900460ff16600a6130cb565b611b2490836130da565b600654909250611b3d90610100900460ff16600a6130cb565b611b4790826130da565b60099290925550600e55565b33600090815260208190526040902054611b7290610f6c906001611f1c565b33ff5b33600090815260208190526040902054611b9490611100906002611f1c565b80611ba55760025460201916611134565b600254602017611134565b33600090815260208190526040902054611bcf90610f6c906001611f1c565b8015611bf6576001600160a01b0382166000908152602081905260409020546010176114b2565b6001600160a01b038216600090815260208190526040902054601019166114b2565b33600090815260208190526040902054611c3790610f6c906001611f1c565b600e55565b600854600a546040805144602080830191909152428284015260608201949094526080808201939093528151808203909301835260a0019052805191012060009081611c888483613123565b949350505050565b33600090815260208190526040902054611caf90610f6c906001611f1c565b8015611cd6576001600160a01b0382166000908152602081905260409020546008176114b2565b6001600160a01b038216600090815260208190526040902054600819166114b2565b6001600160a01b03811660009081526020819052604081205461116c906004611f1c565b33600090815260208190526040902054611d3b90610f6c906001611f1c565b60018054600060208190526001600160a01b03939093166001600160a01b031990911681179091559052565b33600090815260208190526040902054611d8690610f6c906001611f1c565b8015611dac576001600160a01b03821660009081526020818152604090912054176114b2565b6001600160a01b038216600090815260208190526040902054602019166114b2565b33600090815260208190526040902054611ded90610f6c906001611f1c565b604051600090339047908381818185875af1925050503d8060008114611e2f576040519150601f19603f3d011682016040523d82523d6000602084013e611e34565b606091505b50509050611145816040518060400160405280600e81526020016d14d95b991a5b99c819985a5b195960921b815250611f36565b33600090815260208190526040902054611e8790610f6c906001611f1c565b611e95426301e13380612fbb565b6001600160a01b03909116600090815260056020526040902055565b6001600160a01b03811660009081526020819052604081205461116c906001611f1c565b33600090815260208190526040902054611ef490610f6c906001611f1c565b600f80546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6000600183831c81169081146119d7576000949350505050565b60018210156114f1578060005260206000fd5b60408051808201909152601081526f105c1c1c9bdd9948199c9bdb4819195960821b6020820152611f86906001600160a01b038516151590611f36565b60408051808201909152600e81526d105c1c1c9bdd99481d1bc819195960921b6020820152611fc1906001600160a01b038416151590611f36565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6120756001600160a01b0384161580159061204557506001600160a01b03831615155b60405180604001604052806012815260200171151c985b9cd9995c88199c9bdb481919585960721b815250611f36565b6001600a60008282546120889190612fbb565b909155506120969050611254565b156120df576120df6120a784611230565b1580156120ba57506120b883611230565b155b6040518060400160405280600781526020016662616e6e65642160c81b815250611f36565b60006120ea84611718565b806120f957506120f983611718565b80612108575061210884611eb1565b80612117575061211783611eb1565b905060006001600160a01b03851630148061213a57506001600160a01b03841630145b905060007f00000000000000000000000030e0414bff4f31865053894c7d9b065723d7b7b86001600160a01b0316866001600160a01b031614801561219b57506001600160a01b038516737a250d5630b4cf539739df2c5dacb4c659f2488d145b806121fe57507f00000000000000000000000030e0414bff4f31865053894c7d9b065723d7b7b86001600160a01b0316856001600160a01b03161480156121fe57506001600160a01b038616737a250d5630b4cf539739df2c5dacb4c659f2488d145b905081806122095750805b806122115750825b15612226576122218686866123d2565b6123ca565b61222e611707565b6122fa576001546001600160a01b0387811691161480159061225e57506001546001600160a01b03868116911614155b156122fa5761226b61121a565b156122b457846001600160a01b0316866001600160a01b031660008051602061323083398151915260006040516122a491815260200190565b60405180910390a3505050505050565b6122fa6122bf611707565b6040518060400160405280601781526020017f74726164696e67206e6f742079657420656e61626c6564000000000000000000815250611f36565b60007f00000000000000000000000030e0414bff4f31865053894c7d9b065723d7b7b86001600160a01b0316876001600160a01b0316148061235857506001600160a01b038716737a250d5630b4cf539739df2c5dacb4c659f2488d145b905060007f00000000000000000000000030e0414bff4f31865053894c7d9b065723d7b7b86001600160a01b0316876001600160a01b031614806123b857506001600160a01b038716737a250d5630b4cf539739df2c5dacb4c659f2488d145b90506123c788888885856124d6565b50505b505050505050565b600060036000856001600160a01b03166001600160a01b0316815260200190815260200160002054905061243982821015604051806040016040528060188152602001775472616e7366657220657863656564732062616c616e636560401b815250611f36565b6001600160a01b03841660009081526003602052604081208054849290612461908490612fa8565b90915550506001600160a01b0383166000908152600360205260408120805484929061248e908490612fbb565b92505081905550826001600160a01b0316846001600160a01b0316600080516020613230833981519152846040516124c891815260200190565b60405180910390a350505050565b6001600160a01b0380851660009081526003602090815260408083205493891683529182902054825180840190935260188352775472616e7366657220657863656564732062616c616e636560401b918301919091529061253b908683101590611f36565b600083156126355761254c88611863565b6125ec576001600160a01b0388166000908152600560205260409020546125bb9042101580612580575061257e6116f6565b155b6040518060400160405280601981526020017f53656c6c657220696e20616e74697370616d5365636f6e647300000000000000815250611f36565b6006546125d290600160381b900460ff1642612fbb565b6001600160a01b0389166000908152600560205260409020555b612622600e548711156040518060400160405280600f81526020016e223ab6b810383937ba32b1ba34b7b760891b815250611f36565b506006546301000000900460ff1661274f565b84156126c55760095461267c9061264c8886612fbb565b11156040518060400160405280601081526020016f3bb430b63290383937ba32b1ba34b7b760811b815250611f36565b6126b3600e548711156040518060400160405280601081526020016f3bb430b63290383937ba32b1ba34b7b760811b815250611f36565b5060065462010000900460ff1661274f565b6009546126d69061264c8886612fbb565b6126df88611863565b61273f576001600160a01b03881660009081526005602052604090205461273f904210158061271357506127116116f6565b155b6040518060400160405280600e81526020016d53656e64657220696e204c6f636b60901b815250611f36565b50600654640100000000900460ff165b7f00000000000000000000000030e0414bff4f31865053894c7d9b065723d7b7b86001600160a01b0316886001600160a01b0316141580156127945750600f5460ff16155b156127a2576127a2866128d8565b6006546000906127d290889084906127cd9060ff600160301b8204811691600160281b900416612fce565b612a58565b905060006127e08289612fa8565b6001600160a01b038b16600090815260036020526040812080549293508a9290919061280d908490612fa8565b90915550503060009081526003602052604081208054849290612831908490612fbb565b90915550506001600160a01b0389166000908152600360205260408120805483929061285e908490612fbb565b909155505060405182815230906001600160a01b038c16906000805160206132308339815191529060200160405180910390a3886001600160a01b03168a6001600160a01b0316600080516020613230833981519152836040516128c491815260200190565b60405180910390a350505050505050505050565b600f805460ff1916600117905530600090815260036020526040902054600654600e54600160281b90910460ff1690838111156129125750825b80831080612922575061ffff8216155b1561292f57505050612a4b565b60065460009061ffff84169061294f90600160281b900460ff16846130da565b612959919061310f565b60065490915060009061ffff85169061297c90600160301b900460ff16856130da565b612986919061310f565b9050600061299560028461310f565b905060006129a38285612fa8565b905060006129b18483612fbb565b9050476129bd82612a84565b60006129c98247612fa8565b90506000836129d886846130da565b6129e2919061310f565b90506129ee8682612c2c565b60006129fa8447612fa8565b600654909150600090606490612a1a90600160301b900460ff16846130da565b612a24919061310f565b905080600d6000828254612a389190612fbb565b9091555050505050505050505050505050505b50600f805460ff19169055565b60006127108260ff168460ff1686612a7091906130da565b612a7a91906130da565b611c88919061310f565b612aaf307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d83611f49565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110612ae457612ae4613137565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b86919061314d565b81600181518110612b9957612b99613137565b6001600160a01b03928316602091820292909201015260405163791ac94760e01b81527f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d9091169063791ac94790612bfe90859060009086903090429060040161316a565b600060405180830381600087803b158015612c1857600080fd5b505af11580156123ca573d6000803e3d6000fd5b612c57307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611f49565b60405163f305d71960e01b8152306004820181905260248201849052600060448301819052606483015260848201524260a48201527f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b03169063f305d71990839060c40160606040518083038185885af1158015612ce0573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612d0591906131db565b5050505050565b6001600160a01b038116811461114557600080fd5b60008060408385031215612d3457600080fd5b8235612d3f81612d0c565b91506020830135612d4f81612d0c565b809150509250929050565b600060208284031215612d6c57600080fd5b813561136481612d0c565b801515811461114557600080fd5b600060208284031215612d9757600080fd5b813561136481612d77565b600060208083528351808285015260005b81811015612dcf57858101830151858201604001528201612db3565b506000604082860101526040601f19601f8301168501019250505092915050565b60008060408385031215612e0357600080fd5b8235612e0e81612d0c565b946020939093013593505050565b803560ff81168114612e2d57600080fd5b919050565b600060208284031215612e4457600080fd5b61136482612e1c565b600080600060608486031215612e6257600080fd5b8335612e6d81612d0c565b92506020840135612e7d81612d0c565b929592945050506040919091013590565b600080600080600060a08688031215612ea657600080fd5b612eaf86612e1c565b9450612ebd60208701612e1c565b9350612ecb60408701612e1c565b9250612ed960608701612e1c565b9150612ee760808701612e1c565b90509295509295909350565b60008060408385031215612f0657600080fd5b8235612f1181612d0c565b91506020830135612d4f81612d77565b600060208284031215612f3357600080fd5b5035919050565b60008060408385031215612f4d57600080fd5b50508035926020909101359150565b600060208284031215612f6e57600080fd5b5051919050565b600060208284031215612f8757600080fd5b815161136481612d77565b634e487b7160e01b600052601160045260246000fd5b8181038181111561116c5761116c612f92565b8082018082111561116c5761116c612f92565b60ff818116838216019081111561116c5761116c612f92565b600181815b8085111561302257816000190482111561300857613008612f92565b8085161561301557918102915b93841c9390800290612fec565b509250929050565b6000826130395750600161116c565b816130465750600061116c565b816001811461305c576002811461306657613082565b600191505061116c565b60ff84111561307757613077612f92565b50506001821b61116c565b5060208310610133831016604e8410600b84101617156130a5575081810a61116c565b6130af8383612fe7565b80600019048211156130c3576130c3612f92565b029392505050565b600061136460ff84168361302a565b60008160001904831182151516156130f4576130f4612f92565b500290565b634e487b7160e01b600052601260045260246000fd5b60008261311e5761311e6130f9565b500490565b600082613132576131326130f9565b500690565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561315f57600080fd5b815161136481612d0c565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156131ba5784516001600160a01b031683529383019391830191600101613195565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156131f057600080fd5b835192506020840151915060408401519050925092509256fe6275726e2b6c69712b6d61726b6574696e67206e6565647320746f20657175616c2031303025ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212204e4ed9f11f232b4171f70c191d8778428b8ccb5e7416fbd94cca4dcce27ef0a864736f6c63430008100033
Deployed Bytecode Sourcemap
14790:16977:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14889:65;;;;;;;;;;-1:-1:-1;14889:65:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;689:25:1;;;677:2;662:18;14889:65:0;;;;;;;;28662:281;;;;;;;;;;-1:-1:-1;28662:281:0;;;;;:::i;:::-;;:::i;13018:250::-;;;;;;;;;;-1:-1:-1;13018:250:0;;;;;:::i;:::-;;:::i;29358:94::-;;;;;;;;;;-1:-1:-1;29439:5:0;;;;;;;;;;;;-1:-1:-1;;;29439:5:0;;;;29358:94;;;;;;;:::i;11365:121::-;;;;;;;;;;-1:-1:-1;11365:121:0;;;;;:::i;:::-;;:::i;:::-;;;2064:14:1;;2057:22;2039:41;;2027:2;2012:18;11365:121:0;1899:187:1;30247:158:0;;;;;;;;;;-1:-1:-1;30247:158:0;;;;;:::i;:::-;;:::i;11148:81::-;;;;;;;;;;-1:-1:-1;11216:5:0;;-1:-1:-1;;;;;11216:5:0;11148:81;;;-1:-1:-1;;;;;2575:32:1;;;2557:51;;2545:2;2530:18;11148:81:0;2411:203:1;15573:38:0;;;;;;;;;;-1:-1:-1;15573:38:0;;;;-1:-1:-1;;;15573:38:0;;;;;;;;;2791:4:1;2779:17;;;2761:36;;2749:2;2734:18;15573:38:0;2619:184:1;27969:100:0;;;;;;;;;;-1:-1:-1;27969:100:0;;;;;:::i;:::-;;:::i;14961:47::-;;;;;;;;;;-1:-1:-1;14961:47:0;;;;;:::i;:::-;;;;;;;;;;;;;;28953:126;;;;;;;;;;-1:-1:-1;28953:126:0;;;;;:::i;:::-;;:::i;27191:112::-;;;;;;;;;;-1:-1:-1;27191:112:0;;;;;:::i;:::-;;:::i;14210:119::-;;;;;;;;;;;;;:::i;11494:127::-;;;;;;;;;;-1:-1:-1;11494:127:0;;;;;:::i;:::-;;:::i;29674:107::-;;;;;;;;;;-1:-1:-1;29753:20:0;;29674:107;;14085:117;;;;;;;;;;;;;:::i;12762:248::-;;;;;;;;;;-1:-1:-1;12762:248:0;;;;;:::i;:::-;;:::i;30721:386::-;;;;;;;;;;-1:-1:-1;30721:386:0;;;;;:::i;:::-;;:::i;25615:335::-;;;;;;;;;;-1:-1:-1;25615:335:0;;;;;:::i;:::-;;:::i;25295:306::-;;;;;;;;;;-1:-1:-1;25538:14:0;;25295:306;;;25538:14;-1:-1:-1;;;25538:14:0;;;;3876:25:1;;-1:-1:-1;;;25553:12:0;;;;3932:2:1;3917:18;;3910:34;25566:6:0;;;;;3960:18:1;;;3953:34;;;;25573:7:0;;;;;4018:2:1;4003:18;;3996:34;25581:11:0;;;;;4061:3:1;4046:19;;4039:35;3863:3;3848:19;25295:306:0;3617:463:1;29570:94:0;;;;;;;;;;-1:-1:-1;29647:9:0;;;;;;;29570:94;;15250:26;;;;;;;;;;-1:-1:-1;15250:26:0;;;;;;;;;;;16281:30;;;;;;;;;;;;;;;;15983:37;;;;;;;;;;;;;;;31117:202;;;;;;;;;;-1:-1:-1;31117:202:0;;;;;:::i;:::-;;:::i;8086:50::-;;;;;;;;;;-1:-1:-1;8086:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;;27456:499;;;;;;;;;;-1:-1:-1;27456:499:0;;;;;:::i;:::-;;:::i;10281:271::-;;;;;;;;;;-1:-1:-1;10281:271:0;;;;;:::i;:::-;;:::i;16250:24::-;;;;;;;;;;;;;;;;16208:35;;;;;;;;;;;;;;;;9181:264;;;;;;;;;;-1:-1:-1;9181:264:0;;;;;:::i;:::-;;:::i;16150:29::-;;;;;;;;;;;;;;;;15323:21;;;;;;;;;;-1:-1:-1;15323:21:0;;;;;;;;;;;16186:15;;;;;;;;;;;;;;;;26319:319;;;;;;;;;;-1:-1:-1;26319:319:0;;;;;:::i;:::-;;:::i;13276:245::-;;;;;;;;;;-1:-1:-1;13276:245:0;;;;;:::i;:::-;;:::i;14840:42::-;;;;;;;;;;-1:-1:-1;14840:42:0;;;;;:::i;:::-;;;;;;;;;;;;;;12659:32;;;;;;;;;;;;;;;;29791:118;;;;;;;;;;-1:-1:-1;29791:118:0;;;;;:::i;:::-;-1:-1:-1;;;;;29883:18:0;29859:4;29883:18;;;:9;:18;;;;;;;29791:118;14459:117;;;;;;;;;;;;;:::i;14584:113::-;;;;;;;;;;;;;:::i;11759:127::-;;;;;;;;;;-1:-1:-1;11759:127:0;;;;;:::i;:::-;;:::i;16033:55::-;;;;;;;;;;;;;;;;16095:48;;;;;;;;;;;;;;;;26648:263;;;;;;;;;;-1:-1:-1;26648:263:0;;;;;:::i;:::-;;:::i;15380:26::-;;;;;;;;;;-1:-1:-1;15380:26:0;;;;;;;;;;;25958:96;;;;;;;;;;-1:-1:-1;26031:15:0;;-1:-1:-1;;;26031:15:0;;;;25958:96;;27317:123;;;;;;;;;;-1:-1:-1;27317:123:0;;;;;:::i;:::-;;:::i;29462:98::-;;;;;;;;;;-1:-1:-1;29545:7:0;;;;;;;;;;;;-1:-1:-1;;;29545:7:0;;;;29462:98;;15413:28;;;;;;;;;;-1:-1:-1;15413:28:0;;;;-1:-1:-1;;;15413:28:0;;;;;;25127:158;;;;;;;;;;;;;:::i;:::-;;;;5115:25:1;;;5171:2;5156:18;;5149:34;;;;5088:18;25127:158:0;4941:248:1;11894:131:0;;;;;;;;;;-1:-1:-1;11894:131:0;;;;;:::i;:::-;;:::i;24396:274::-;;;;;;;;;;-1:-1:-1;24396:274:0;;;;;:::i;:::-;;:::i;31329:336::-;;;;;;;;;;-1:-1:-1;31329:336:0;;;;;:::i;:::-;;:::i;14337:114::-;;;;;;;;;;;;;:::i;15491:30::-;;;;;;;;;;-1:-1:-1;15491:30:0;;;;-1:-1:-1;;;15491:30:0;;;;;;29919:164;;;;;;;;;;-1:-1:-1;29919:164:0;;;;;:::i;:::-;;:::i;13785:244::-;;;;;;;;;;-1:-1:-1;13785:244:0;;;;;:::i;:::-;;:::i;15762:41::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;15762:41:0;;;;;26923:258;;;;;;;;;;;;;:::i;28083:356::-;;;;;;;;;;-1:-1:-1;28083:356:0;;;;;:::i;:::-;;:::i;31673:87::-;;;;;;;;;;;;;:::i;13529:248::-;;;;;;;;;;-1:-1:-1;13529:248:0;;;;;:::i;:::-;;:::i;15351:22::-;;;;;;;;;;-1:-1:-1;15351:22:0;;;;;;;;;;;9730:266;;;;;;;;;;-1:-1:-1;9730:266:0;;;;;:::i;:::-;;:::i;26064:85::-;;;;;;;;;;-1:-1:-1;26064:85:0;;;;;:::i;:::-;;:::i;24686:433::-;;;;;;;;;;-1:-1:-1;24686:433:0;;;;;:::i;:::-;;:::i;15716:39::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;15716:39:0;;;;;15816:81;;;;;;;;;;;;15855:42;15816:81;;9453:269;;;;;;;;;;-1:-1:-1;9453:269:0;;;;;:::i;:::-;;:::i;11629:122::-;;;;;;;;;;-1:-1:-1;11629:122:0;;;;;:::i;:::-;;:::i;15187:38::-;;;;;;;;;;-1:-1:-1;15187:38:0;;;;;;;;8989:184;;;;;;;;;;-1:-1:-1;8989:184:0;;;;;:::i;:::-;;:::i;30093:144::-;;;;;;;;;;-1:-1:-1;30093:144:0;;;;;:::i;:::-;-1:-1:-1;;;;;30201:19:0;;;30177:4;30201:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;30093:144;10004:269;;;;;;;;;;-1:-1:-1;10004:269:0;;;;;:::i;:::-;;:::i;29087:161::-;;;;;;;;;;;;;:::i;15904:72::-;;;;;;;;;;;;15934:42;15904:72;;26190:119;;;;;;;;;;-1:-1:-1;26190:119:0;;;;;:::i;:::-;;:::i;11237:120::-;;;;;;;;;;-1:-1:-1;11237:120:0;;;;;:::i;:::-;;:::i;16372:40::-;;;;;;;;;;;;;;;28506:140;;;;;;;;;;-1:-1:-1;28506:140:0;;;;;:::i;:::-;;:::i;28662:281::-;10801:10;10786:14;:26;;;;;;;;;;;10778:149;;10786:41;;10825:1;10786:38;:41::i;:::-;:104;;;-1:-1:-1;10864:10:0;10849:14;:26;;;;;;;;;;;:41;;10888:1;10849:38;:41::i;:::-;10778:149;;;;;;;;;;;;;-1:-1:-1;;;10778:149:0;;;:7;:149::i;:::-;28796:30:::1;::::0;-1:-1:-1;;;28796:30:0;;28820:4:::1;28796:30;::::0;::::1;2557:51:1::0;28756:10:0;;28734:12:::1;::::0;-1:-1:-1;;;;;28796:15:0;::::1;::::0;::::1;::::0;2530:18:1;;28796:30:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;28778:48;;28837:49;28856:1;28845:10;:12;28837:49;;;;;;;;;;;;;;;;::::0;:7:::1;:49::i;:::-;28897:38;::::0;-1:-1:-1;;;28897:38:0;;28912:10:::1;28897:38;::::0;::::1;6227:51:1::0;6294:18;;;6287:34;;;-1:-1:-1;;;;;28897:14:0;::::1;::::0;::::1;::::0;6200:18:1;;28897:38:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;28723:220;;28662:281:::0;:::o;13018:250::-;10679:10;10664:14;:26;;;;;;;;;;;10656:63;;10664:41;;10703:1;10664:38;:41::i;:::-;10656:63;;;;;;;;;;;;;-1:-1:-1;;;10656:63:0;;;:7;:63::i;:::-;13095:5:::1;13091:170;;13137:17;::::0;-1:-1:-1;;7391:43:0;13137:30:::1;13117:17;:50:::0;13018:250;:::o;13091:170::-:1;13220:17;::::0;7119:24;7103:40;13220:29:::1;6954:278:::0;13091:170:::1;13018:250:::0;:::o;11365:121::-;-1:-1:-1;;;;;11442:21:0;;11418:4;11442:21;;;;;;;;;;;:36;;11476:1;11442:33;:36::i;:::-;11435:43;11365:121;-1:-1:-1;;11365:121:0:o;30247:158::-;30321:4;30338:37;30347:10;30359:7;30368:6;30338:8;:37::i;:::-;-1:-1:-1;30393:4:0;30247:158;;;;:::o;27969:100::-;10801:10;10786:14;:26;;;;;;;;;;;10778:149;;10786:41;;10825:1;10786:38;:41::i;10778:149::-;28038:14:::1;:23:::0;;::::1;::::0;;::::1;-1:-1:-1::0;;;28038:23:0::1;-1:-1:-1::0;;28038:23:0;;::::1;::::0;;;::::1;::::0;;27969:100::o;28953:126::-;10801:10;10786:14;:26;;;;;;;;;;;10778:149;;10786:41;;10825:1;10786:38;:41::i;10778:149::-;29032:39:::1;29054:16;29032:21;:39::i;27191:112::-:0;10801:10;10786:14;:26;;;;;;;;;;;10778:149;;10786:41;;10825:1;10786:38;:41::i;10778:149::-;27264:31:::1;27286:8;27264:21;:31::i;14210:119::-:0;14289:17;;14265:4;;14289:32;;14319:1;14289:29;:32::i;:::-;14282:39;;14210:119;:::o;11494:127::-;-1:-1:-1;;;;;11577:21:0;;11553:4;11577:21;;;;;;;;;;;:36;;11611:1;11577:33;:36::i;14085:117::-;14138:4;14162:32;14192:1;14162:17;;:29;;:32;;;;:::i;12762:248::-;10679:10;10664:14;:26;;;;;;;;;;;10656:63;;10664:41;;10703:1;10664:38;:41::i;10656:63::-;12837:5:::1;12833:170;;12907:1;12879:17:::0;-1:-1:-1;;7391:43:0;12879:30:::1;7240:283:::0;12833:170:::1;12989:1;12962:17:::0;7119:24;7103:40;12962:29:::1;6954:278:::0;30721:386;30818:4;30835:36;30845:6;30853:9;30864:6;30835:9;:36::i;:::-;-1:-1:-1;;;;;30908:19:0;;30884:21;30908:19;;;:11;:19;;;;;;;;30928:10;30908:31;;;;;;;;;30950:59;;;;;;;;;;;-1:-1:-1;;;30950:59:0;;;;;;;30908:31;30950:59;;30958:26;;;;;30950:7;:59::i;:::-;31022:55;31031:6;31039:10;31051:25;31070:6;31051:16;:25;:::i;:::-;31022:8;:55::i;:::-;-1:-1:-1;31095:4:0;;30721:386;-1:-1:-1;;;;30721:386:0:o;25615:335::-;-1:-1:-1;;;;;25786:30:0;;25756:4;25786:30;;;:14;:30;;;;;;25840:15;25830:25;;25827:74;;-1:-1:-1;25888:1:0;;25615:335;-1:-1:-1;;25615:335:0:o;25827:74::-;25918:24;25927:15;25918:8;:24;:::i;:::-;25911:31;25615:335;-1:-1:-1;;;25615:335:0:o;31117:202::-;31222:10;31196:4;31243:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;31243:32:0;;;;;;;;;;31196:4;;31213:76;;31234:7;;31243:45;;31278:10;;31243:45;:::i;27456:499::-;10801:10;10786:14;:26;;;;;;;;;;;10778:149;;10786:41;;10825:1;10786:38;:41::i;10778:149::-;27647:14:::1;27664:33;27683:14:::0;27664:16;:33:::1;:::i;:::-;27647:50;;27708:64;27716:8;:13;;27726:3;27716:13;27708:64;;;;;;;;;;;;;;;;;:7;:64::i;:::-;-1:-1:-1::0;27783:14:0::1;:33:::0;;-1:-1:-1;;27827:28:0;-1:-1:-1;;;27783:33:0::1;::::0;;::::1;;-1:-1:-1::0;;27827:28:0;;-1:-1:-1;;;27827:28:0;;::::1;::::0;;;::::1;::::0;;;::::1;-1:-1:-1::0;;27894:17:0;27868:15;;;::::1;::::0;;;::::1;-1:-1:-1::0;;27894:17:0;;;;;;;;::::1;::::0;;;::::1;;-1:-1:-1::0;;27922:25:0::1;::::0;;;;::::1;;::::0;;;::::1;::::0;;27456:499::o;10281:271::-;10801:10;10786:14;:26;;;;;;;;;;;10778:149;;10786:41;;10825:1;10786:38;:41::i;10778:149::-;10363:5:::1;10360:185;;;-1:-1:-1::0;;;;;10409:21:0;::::1;:14;:21:::0;;;::::1;::::0;;;;;;;;;7103:40;10409:33:::1;-1:-1:-1::0;;;;;10385:21:0;::::1;:14;:21:::0;;;::::1;::::0;;;;;;:57;10281:271;;:::o;10360:185::-:1;-1:-1:-1::0;;;;;10499:21:0;::::1;:14;:21:::0;;;::::1;::::0;;;;;;;-1:-1:-1;;7391:43:0;10499:34:::1;7240:283:::0;10360:185:::1;10281:271:::0;;:::o;9181:264::-;10801:10;10786:14;:26;;;;;;;;;;;10778:149;;10786:41;;10825:1;10786:38;:41::i;10778:149::-;9256:5:::1;9253:185;;;-1:-1:-1::0;;;;;9302:21:0;::::1;:14;:21:::0;;;::::1;::::0;;;;;;;7119:24;7103:40;9302:33:::1;6954:278:::0;9253:185:::1;-1:-1:-1::0;;;;;9392:21:0;::::1;:14;:21:::0;;;::::1;::::0;;;;;;;-1:-1:-1;;7391:43:0;9392:34:::1;7240:283:::0;26319:319;10801:10;10786:14;:26;;;;;;;;;;;10778:149;;10786:41;;10825:1;10786:38;:41::i;10778:149::-;26396:56:::1;26424:6;26404:9;:16;26414:5;-1:-1:-1::0;;;;;26404:16:0::1;-1:-1:-1::0;;;;;26404:16:0::1;;;;;;;;;;;;;:26;;26396:56;;;;;;;;;;;;;-1:-1:-1::0;;;26396:56:0::1;;::::0;:7:::1;:56::i;:::-;26493:9;::::0;26489:13:::1;::::0;26493:9:::1;::::0;::::1;;;26489:2;:13;:::i;:::-;26482:20;::::0;:6;:20:::1;:::i;:::-;-1:-1:-1::0;;;;;26463:16:0;::::1;;::::0;;;:9:::1;:16;::::0;;;;:40;;:16;;;:40:::1;::::0;;;::::1;:::i;:::-;::::0;;;-1:-1:-1;;26552:9:0::1;::::0;26548:13:::1;::::0;26552:9:::1;::::0;::::1;;;26548:2;:13;:::i;:::-;26541:20;::::0;:6;:20:::1;:::i;:::-;26532:4;26514:24;::::0;;;:9:::1;:24;::::0;;;;:48;;:24;;;:48:::1;::::0;;;::::1;:::i;:::-;::::0;;;-1:-1:-1;;26620:9:0::1;::::0;26602:4:::1;::::0;-1:-1:-1;;;;;26578:52:0;::::1;::::0;-1:-1:-1;;;;;;;;;;;26578:52:0;26616:13:::1;::::0;26620:9:::1;::::0;::::1;;;26616:2;:13;:::i;:::-;26609:20;::::0;:6;:20:::1;:::i;:::-;26578:52;::::0;689:25:1;;;677:2;662:18;26578:52:0::1;;;;;;;;26319:319:::0;;:::o;13276:245::-;10679:10;10664:14;:26;;;;;;;;;;;10656:63;;10664:41;;10703:1;10664:38;:41::i;10656:63::-;13348:5:::1;13344:170;;13390:17;::::0;-1:-1:-1;;7391:43:0;13390:30:::1;7240:283:::0;13344:170:::1;13473:17;::::0;7119:24;7103:40;13473:29:::1;6954:278:::0;14459:117;14536:17;;14512:4;;14536:32;;14566:1;14536:29;:32::i;14584:113::-;14657:17;;14633:4;;14657:32;;14687:1;14657:29;:32::i;11759:127::-;-1:-1:-1;;;;;11842:21:0;;11818:4;11842:21;;;;;;;;;;;:36;;11876:1;11842:33;:36::i;26648:263::-;10801:10;10786:14;:26;;;;;;;;;;;10778:149;;10786:41;;10825:1;10786:38;:41::i;10778:149::-;-1:-1:-1;;;;;26724:16:0;::::1;26710:11;26724:16:::0;;;:9:::1;:16;::::0;;;;;;;26751:18;;;;26798:4:::1;26780:24:::0;;;;;:32;;26724:16;;;;26780:32:::1;::::0;26724:16;;26780:32:::1;:::i;:::-;::::0;;;-1:-1:-1;26823:26:0::1;::::0;-1:-1:-1;26837:5:0;26844:4:::1;26823:13;:26::i;:::-;26865:38;::::0;689:25:1;;;26889:4:0::1;::::0;-1:-1:-1;;;;;26865:38:0;::::1;::::0;-1:-1:-1;;;;;;;;;;;26865:38:0;677:2:1;662:18;26865:38:0::1;543:177:1::0;27317:123:0;10801:10;10786:14;:26;;;;;;;;;;;10778:149;;10786:41;;10825:1;10786:38;:41::i;10778:149::-;27396:15:::1;:36:::0;;::::1;::::0;;::::1;-1:-1:-1::0;;;27396:36:0::1;-1:-1:-1::0;;27396:36:0;;::::1;::::0;;;::::1;::::0;;27317:123::o;25127:158::-;25237:9;;25173:12;;;;25233:13;;25237:9;;;;;25233:2;:13;:::i;:::-;25215:17;;:31;;;;:::i;:::-;25267:9;;25263:13;;25267:9;;;;;25263:2;:13;:::i;:::-;25248:14;;:28;;;;:::i;:::-;25208:69;;;;25127:158;;:::o;11894:131::-;-1:-1:-1;;;;;11981:21:0;;11957:4;11981:21;;;;;;;;;;;:36;;12015:1;11981:33;:36::i;24396:274::-;10801:10;10786:14;:26;;;;;;;;;;;10778:149;;10786:41;;10825:1;10786:38;:41::i;10778:149::-;24453:71:::1;24489:6;24461:9;:24;24479:4;-1:-1:-1::0;;;;;24461:24:0::1;-1:-1:-1::0;;;;;24461:24:0::1;;;;;;;;;;;;;:34;;24453:71;;;;;;;;;;;;;;;;::::0;:7:::1;:71::i;:::-;24553:4;24535:24;::::0;;;:9:::1;:24;::::0;;;;:34;;24563:6;;24535:24;:34:::1;::::0;24563:6;;24535:34:::1;:::i;:::-;;;;;;;;24604:6;24580:20;;:30;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;24626:36:0::1;::::0;689:25:1;;;15934:42:0::1;::::0;24643:4:::1;::::0;-1:-1:-1;;;;;;;;;;;24626:36:0;677:2:1;662:18;24626:36:0::1;;;;;;;24396:274:::0;:::o;31329:336::-;31466:10;31413:4;31454:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;31454:32:0;;;;;;;;;;31497:60;;;;;;;;;;;-1:-1:-1;;;31497:60:0;;;;;;;;;31505:35;;;;;31497:7;:60::i;:::-;31570:65;31579:10;31591:7;31600:34;31619:15;31600:16;:34;:::i;31570:65::-;-1:-1:-1;31653:4:0;;31329:336;-1:-1:-1;;;31329:336:0:o;14337:114::-;14411:17;;14387:4;;14411:32;;14441:1;14411:29;:32::i;29919:164::-;29996:4;30013:40;30023:10;30035:9;30046:6;30013:9;:40::i;13785:244::-;10679:10;10664:14;:26;;;;;;;;;;;10656:63;;10664:41;;10703:1;10664:38;:41::i;10656:63::-;13856:5:::1;13852:170;;13898:17;::::0;-1:-1:-1;;7391:43:0;13898:30:::1;7240:283:::0;13852:170:::1;13981:17;::::0;7119:24;7103:40;13981:29:::1;6954:278:::0;26923:258;10801:10;10786:14;:26;;;;;;;;;;;10778:149;;10786:41;;10825:1;10786:38;:41::i;10778:149::-;26987:18:::1;::::0;;26975:11:::1;27016:20:::0;;;;27099:32:::1;::::0;26987:18;;27064:10:::1;::::0;;;26987:18;;26975:11;27099:32;26975:11;27099:32;26987:18;27064:10;27099:32:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27085:46;;;27142:31;27150:4;27142:31;;;;;;;;;;;;;-1:-1:-1::0;;;27142:31:0::1;;::::0;:7:::1;:31::i;:::-;26964:217;;;26923:258::o:0;28083:356::-;10801:10;10786:14;:26;;;;;;;;;;;10778:149;;10786:41;;10825:1;10786:38;:41::i;10778:149::-;28266:9:::1;::::0;28262:13:::1;::::0;28266:9:::1;::::0;::::1;;;28262:2;:13;:::i;:::-;28241:34;::::0;:20;:34:::1;:::i;:::-;28326:9;::::0;28220:55;;-1:-1:-1;28322:13:0::1;::::0;28326:9:::1;::::0;::::1;;;28322:2;:13;:::i;:::-;28304:31;::::0;:17;:31:::1;:::i;:::-;28346:17;:40:::0;;;;-1:-1:-1;28397:14:0::1;:34:::0;28083:356::o;31673:87::-;10801:10;10786:14;:26;;;;;;;;;;;10778:149;;10786:41;;10825:1;10786:38;:41::i;10778:149::-;31740:10:::1;31719:33;13529:248:::0;10679:10;10664:14;:26;;;;;;;;;;;10656:63;;10664:41;;10703:1;10664:38;:41::i;10656:63::-;13604:5:::1;13600:170;;13646:17;::::0;-1:-1:-1;;7391:43:0;13646:30:::1;7240:283:::0;13600:170:::1;13729:17;::::0;7119:24;7103:40;13729:29:::1;6954:278:::0;9730:266;10801:10;10786:14;:26;;;;;;;;;;;10778:149;;10786:41;;10825:1;10786:38;:41::i;10778:149::-;9807:5:::1;9804:185;;;-1:-1:-1::0;;;;;9853:21:0;::::1;:14;:21:::0;;;::::1;::::0;;;;;;;7119:24;7103:40;9853:33:::1;6954:278:::0;9804:185:::1;-1:-1:-1::0;;;;;9943:21:0;::::1;:14;:21:::0;;;::::1;::::0;;;;;;;-1:-1:-1;;7391:43:0;9943:34:::1;7240:283:::0;26064:85;10801:10;10786:14;:26;;;;;;;;;;;10778:149;;10786:41;;10825:1;10786:38;:41::i;10778:149::-;26121:14:::1;:20:::0;26064:85::o;24686:433::-;24974:20;;25039:3;;24793:250;;;24853:16;24793:250;;;;9366:19:1;;;;24914:15:0;9401:12:1;;;9394:28;9438:12;;;9431:28;;;;9475:12;;;;9468:28;;;;24793:250:0;;;;;;;;;;9512:13:1;;24793:250:0;;24783:261;;;;;-1:-1:-1;;;25071:16:0;25084:3;24783:261;25071:16;:::i;:::-;25057:30;24686:433;-1:-1:-1;;;;24686:433:0:o;9453:269::-;10801:10;10786:14;:26;;;;;;;;;;;10778:149;;10786:41;;10825:1;10786:38;:41::i;10778:149::-;9533:5:::1;9530:185;;;-1:-1:-1::0;;;;;9579:21:0;::::1;:14;:21:::0;;;::::1;::::0;;;;;;;7119:24;7103:40;9579:33:::1;6954:278:::0;9530:185:::1;-1:-1:-1::0;;;;;9669:21:0;::::1;:14;:21:::0;;;::::1;::::0;;;;;;;-1:-1:-1;;7391:43:0;9669:34:::1;7240:283:::0;11629:122;-1:-1:-1;;;;;11707:21:0;;11683:4;11707:21;;;;;;;;;;;:36;;11741:1;11707:33;:36::i;8989:184::-;10801:10;10786:14;:26;;;;;;;;;;;10778:149;;10786:41;;10825:1;10786:38;:41::i;10778:149::-;9070:5:::1;::::0;;9055:14:::1;:21;::::0;;;-1:-1:-1;;;;;9100:17:0;;;::::1;-1:-1:-1::0;;;;;;9100:17:0;;::::1;::::0;::::1;::::0;;;9128:25;;10281:271::o;10004:269::-;10801:10;10786:14;:26;;;;;;;;;;;10778:149;;10786:41;;10825:1;10786:38;:41::i;10778:149::-;10084:5:::1;10081:185;;;-1:-1:-1::0;;;;;10130:21:0;::::1;:14;:21:::0;;;::::1;::::0;;;;;;;;7103:40;10130:33:::1;6954:278:::0;10081:185:::1;-1:-1:-1::0;;;;;10220:21:0;::::1;:14;:21:::0;;;::::1;::::0;;;;;;;-1:-1:-1;;7391:43:0;10220:34:::1;7240:283:::0;29087:161;10801:10;10786:14;:26;;;;;;;;;;;10778:149;;10786:41;;10825:1;10786:38;:41::i;10778:149::-;29147:51:::1;::::0;29133:9:::1;::::0;29147:10:::1;::::0;29171:21:::1;::::0;29133:9;29147:51;29133:9;29147:51;29171:21;29147:10;:51:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29132:66;;;29209:31;29217:4;29209:31;;;;;;;;;;;;;-1:-1:-1::0;;;29209:31:0::1;;::::0;:7:::1;:31::i;26190:119::-:0;10801:10;10786:14;:26;;;;;;;;;;;10778:149;;10786:41;;10825:1;10786:38;:41::i;10778:149::-;26275:26:::1;:15;26292:8;26275:26;:::i;:::-;-1:-1:-1::0;;;;;26253:21:0;;::::1;;::::0;;;:14:::1;:21;::::0;;;;:48;26190:119::o;11237:120::-;-1:-1:-1;;;;;11313:21:0;;11289:4;11313:21;;;;;;;;;;;:36;;11347:1;11313:33;:36::i;28506:140::-;10801:10;10786:14;:26;;;;;;;;;;;10778:149;;10786:41;;10825:1;10786:38;:41::i;10778:149::-;28594:22:::1;:44:::0;;-1:-1:-1;;;;;28594:44:0;;::::1;;;-1:-1:-1::0;;;;;;28594:44:0;;::::1;::::0;;;::::1;::::0;;28506:140::o;6635:311::-;6748:16;6892:1;6853:27;;;6852:42;;;6913:9;;:24;;6932:5;6905:33;6635:311;-1:-1:-1;;;;6635:311:0:o;8464:427::-;8667:1;8656:9;8653:16;8650:103;;;8699:7;8696:1;8689:18;8735:2;8732:1;8725:13;30413:298;30496:49;;;;;;;;;;;;-1:-1:-1;;;30496:49:0;;;;;;-1:-1:-1;;;;;30504:20:0;;;;;30496:7;:49::i;:::-;30556:48;;;;;;;;;;;;-1:-1:-1;;;30556:48:0;;;;;;-1:-1:-1;;;;;30564:21:0;;;;;30556:7;:48::i;:::-;-1:-1:-1;;;;;30617:19:0;;;;;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;:37;;;30670:33;;689:25:1;;;30670:33:0;;662:18:1;30670:33:0;;;;;;;30413:298;;;:::o;18291:1587::-;18376:84;-1:-1:-1;;;;;18386:20:0;;;;;;18385:51;;-1:-1:-1;;;;;;18412:23:0;;;;18385:51;18376:84;;;;;;;;;;;;;-1:-1:-1;;;18376:84:0;;;:7;:84::i;:::-;18478:1;18471:3;;:8;;;;;;;:::i;:::-;;;;-1:-1:-1;18493:23:0;;-1:-1:-1;18493:21:0;:23::i;:::-;18490:128;;;18533:73;18542:22;18557:6;18542:14;:22::i;:::-;18541:23;:53;;;;;18569:25;18584:9;18569:14;:25::i;:::-;18568:26;18541:53;18533:73;;;;;;;;;;;;;-1:-1:-1;;;18533:73:0;;;:7;:73::i;:::-;18630:15;18649:22;18664:6;18649:14;:22::i;:::-;:51;;;;18675:25;18690:9;18675:14;:25::i;:::-;18649:99;;;;18733:15;18741:6;18733:7;:15::i;:::-;18649:121;;;;18752:18;18760:9;18752:7;:18::i;:::-;18630:141;-1:-1:-1;18784:23:0;-1:-1:-1;;;;;18809:21:0;;18825:4;18809:21;;:49;;-1:-1:-1;;;;;;18834:24:0;;18853:4;18834:24;18809:49;18784:75;;18872:24;18911:12;-1:-1:-1;;;;;18901:22:0;:6;-1:-1:-1;;;;;18901:22:0;;:53;;;;-1:-1:-1;;;;;;18927:27:0;;15855:42;18927:27;18901:53;18900:123;;;;18982:12;-1:-1:-1;;;;;18969:25:0;:9;-1:-1:-1;;;;;18969:25:0;;:53;;;;-1:-1:-1;;;;;;18998:24:0;;15855:42;18998:24;18969:53;18872:152;;19040:18;:41;;;;19062:19;19040:41;:55;;;;19085:10;19040:55;19037:834;;;19111:43;19128:6;19136:9;19147:6;19111:16;:43::i;:::-;19037:834;;;19200:19;:17;:19::i;:::-;19195:425;;19254:5;;-1:-1:-1;;;;;19244:15:0;;;19254:5;;19244:15;;;;:37;;-1:-1:-1;19276:5:0;;-1:-1:-1;;;;;19263:18:0;;;19276:5;;19263:18;;19244:37;19240:365;;;19310:25;:23;:25::i;:::-;19306:280;;;19385:9;-1:-1:-1;;;;;19369:28:0;19378:6;-1:-1:-1;;;;;19369:28:0;-1:-1:-1;;;;;;;;;;;19395:1:0;19369:28;;;;689:25:1;;677:2;662:18;;543:177;19369:28:0;;;;;;;;19424:7;;;18291:1587;;;:::o;19306:280::-;19508:54;19516:19;:17;:19::i;:::-;19508:54;;;;;;;;;;;;;;;;;:7;:54::i;:::-;19652:10;19671:12;-1:-1:-1;;;;;19663:20:0;:6;-1:-1:-1;;;;;19663:20:0;;:47;;;-1:-1:-1;;;;;;19686:24:0;;15855:42;19686:24;19663:47;19652:58;;19725:11;19748:12;-1:-1:-1;;;;;19737:23:0;:9;-1:-1:-1;;;;;19737:23:0;;:53;;;-1:-1:-1;;;;;;19763:27:0;;15855:42;19763:27;19737:53;19725:65;;19805:52;19820:6;19827:9;19837:6;19844:5;19850:6;19805:14;:52::i;:::-;19180:691;;19037:834;18365:1513;;;18291:1587;;;:::o;21729:339::-;21821:18;21842:9;:17;21852:6;-1:-1:-1;;;;;21842:17:0;-1:-1:-1;;;;;21842:17:0;;;;;;;;;;;;;21821:38;;21870:60;21895:6;21878:13;:23;;21870:60;;;;;;;;;;;;;-1:-1:-1;;;21870:60:0;;;:7;:60::i;:::-;-1:-1:-1;;;;;21941:17:0;;;;;;:9;:17;;;;;:25;;21960:6;;21941:17;:25;;21960:6;;21941:25;:::i;:::-;;;;-1:-1:-1;;;;;;;21977:20:0;;;;;;:9;:20;;;;;:30;;22001:6;;21977:20;:30;;22001:6;;21977:30;:::i;:::-;;;;;;;;22041:9;-1:-1:-1;;;;;22025:33:0;22034:6;-1:-1:-1;;;;;22025:33:0;-1:-1:-1;;;;;;;;;;;22051:6:0;22025:33;;;;689:25:1;;677:2;662:18;;543:177;22025:33:0;;;;;;;;21810:258;21729:339;;;:::o;19898:1817::-;-1:-1:-1;;;;;20035:20:0;;;20011:21;20035:20;;;:9;:20;;;;;;;;;20087:17;;;;;;;;;;20115:60;;;;;;;;;;;-1:-1:-1;;;20115:60:0;;;;;;;20087:17;20115:60;;20123:23;;;;;20115:7;:60::i;:::-;20188:9;20211:6;20208:993;;;20237:26;20256:6;20237:18;:26::i;:::-;20233:301;;-1:-1:-1;;;;;20302:22:0;;;;;;:14;:22;;;;;;20294:140;;20326:15;-1:-1:-1;20302:39:0;;:103;;;20382:23;:21;:23::i;:::-;20381:24;20302:103;20294:140;;;;;;;;;;;;;;;;;:7;:140::i;:::-;20503:15;;20487:31;;-1:-1:-1;;;20503:15:0;;;;20487;:31;:::i;:::-;-1:-1:-1;;;;;20464:22:0;;;;;;:14;:22;;;;;:54;20233:301;20562:49;20578:14;;20570:6;:22;;20562:49;;;;;;;;;;;;;-1:-1:-1;;;20562:49:0;;;:7;:49::i;:::-;-1:-1:-1;20630:7:0;;;;;;;20208:993;;;20660:5;20657:544;;;20721:17;;20688:70;;20696:23;20713:6;20696:16;:23;:::i;:::-;:42;;20688:70;;;;;;;;;;;;;-1:-1:-1;;;20688:70:0;;;:7;:70::i;:::-;20773:51;20789:14;;20781:6;:22;;20773:51;;;;;;;;;;;;;-1:-1:-1;;;20773:51:0;;;:7;:51::i;:::-;-1:-1:-1;20843:6:0;;;;;;;20657:544;;;20924:17;;20891:70;;20899:23;20916:6;20899:16;:23;:::i;20891:70::-;20994:26;21013:6;20994:18;:26::i;:::-;20990:167;;-1:-1:-1;;;;;21047:22:0;;;;;;:14;:22;;;;;;21039:118;;21071:15;-1:-1:-1;21047:39:0;;:92;;;21116:23;:21;:23::i;:::-;21115:24;21047:92;21039:118;;;;;;;;;;;;;-1:-1:-1;;;21039:118:0;;;:7;:118::i;:::-;-1:-1:-1;21176:11:0;;;;;;;20657:544;21232:12;-1:-1:-1;;;;;21224:20:0;:6;-1:-1:-1;;;;;21224:20:0;;;21223:41;;;;-1:-1:-1;21249:14:0;;;;21248:15;21223:41;21220:85;;;21279:26;21298:6;21279:18;:26::i;:::-;21378:14;;21319:18;;21338:55;;21352:6;;21360:3;;21365:27;;21378:14;-1:-1:-1;;;21378:14:0;;;;;-1:-1:-1;;;21365:12:0;;;:27;:::i;:::-;21338:13;:55::i;:::-;21319:74;-1:-1:-1;21407:16:0;21424:22;21319:74;21424:6;:22;:::i;:::-;-1:-1:-1;;;;;21462:17:0;;;;;;:9;:17;;;;;:25;;21407:39;;-1:-1:-1;21481:6:0;;21462:17;;;:25;;21481:6;;21462:25;:::i;:::-;;;;-1:-1:-1;;21519:4:0;21501:24;;;;:9;:24;;;;;:41;;21529:13;;21501:24;:41;;21529:13;;21501:41;:::i;:::-;;;;-1:-1:-1;;;;;;;21556:20:0;;;;;;:9;:20;;;;;:33;;21578:11;;21556:20;:33;;21578:11;;21556:33;:::i;:::-;;;;-1:-1:-1;;21607:44:0;;689:25:1;;;21631:4:0;;-1:-1:-1;;;;;21607:44:0;;;-1:-1:-1;;;;;;;;;;;21607:44:0;677:2:1;662:18;21607:44:0;;;;;;;21683:9;-1:-1:-1;;;;;21667:38:0;21676:6;-1:-1:-1;;;;;21667:38:0;-1:-1:-1;;;;;;;;;;;21693:11:0;21667:38;;;;689:25:1;;677:2;662:18;;543:177;21667:38:0;;;;;;;;20000:1715;;;;;19898:1817;;;;;:::o;22426:1132::-;22342:14;:21;;-1:-1:-1;;22342:21:0;22359:4;22342:21;;;22535:4:::1;22342:14:::0;22517:24;;;:9:::1;:24;::::0;;;;;22568:12:::1;::::0;22608:14:::1;::::0;-1:-1:-1;;;22568:12:0;;::::1;22342:21:::0;22568:12:::1;::::0;22636:22;;::::1;22633:80;;;-1:-1:-1::0;22693:8:0;22633:80:::1;22745:11;22729:15;:27;:40;;;-1:-1:-1::0;22758:11:0::1;::::0;::::1;::::0;22729:40:::1;22726:77;;;22785:7;;;;;22726:77;22849:12;::::0;22813:22:::1;::::0;22836:35:::1;::::0;::::1;::::0;22837:24:::1;::::0;-1:-1:-1;;;22849:12:0;::::1;;;22837:11:::0;:24:::1;:::i;:::-;22836:35;;;;:::i;:::-;22915:14;::::0;22813:58;;-1:-1:-1;22882:18:0::1;::::0;22902:37:::1;::::0;::::1;::::0;22903:26:::1;::::0;-1:-1:-1;;;22915:14:0;::::1;;;22903:11:::0;:26:::1;:::i;:::-;22902:37;;;;:::i;:::-;22882:57:::0;-1:-1:-1;22952:13:0::1;22966:19;22984:1;22966:17:::0;:19:::1;:::i;:::-;22952:33:::0;-1:-1:-1;22996:16:0::1;23013:26;22952:33:::0;23013:17;:26:::1;:::i;:::-;22996:43:::0;-1:-1:-1;23055:14:0::1;23070:25;23082:13:::0;22996:43;23070:25:::1;:::i;:::-;23055:40:::0;-1:-1:-1;23135:21:0::1;23167:27;23055:40:::0;23167:16:::1;:27::i;:::-;23205:11;23218:42;23242:18:::0;23218:21:::1;:42;:::i;:::-;23205:56:::0;-1:-1:-1;23272:11:0::1;23307:9:::0;23287:18:::1;23294:11:::0;23205:56;23287:18:::1;:::i;:::-;23286:30;;;;:::i;:::-;23272:44;;23327:31;23341:8;23351:6;23327:13;:31::i;:::-;23369:17;23388:42;23412:18:::0;23388:21:::1;:42;:::i;:::-;23484:14;::::0;23369:62;;-1:-1:-1;23444:21:0::1;::::0;23500:3:::1;::::0;23469:29:::1;::::0;-1:-1:-1;;;23484:14:0;::::1;;;23369:62:::0;23469:29:::1;:::i;:::-;23468:35;;;;:::i;:::-;23444:59;;23534:16;23514:18;;:36;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;;;;;;;;;;;;;;22374:1:0::1;-1:-1:-1::0;22386:14:0;:22;;-1:-1:-1;;22386:22:0;;;22426:1132::o;22082:179::-;22198:4;22248:5;22234:10;22223:21;;22230:3;22223:10;;:6;:10;;;;:::i;:::-;:21;;;;:::i;:::-;22222:31;;;;:::i;23572:428::-;23630:48;23647:4;23662:6;23671;23630:8;:48::i;:::-;23713:16;;;23727:1;23713:16;;;;;;;;23689:21;;23713:16;;;;;;;;;;-1:-1:-1;23713:16:0;23689:40;;23758:4;23740;23745:1;23740:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;23740:23:0;;;-1:-1:-1;;;;;23740:23:0;;;;;23784:6;-1:-1:-1;;;;;23784:11:0;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23774:4;23779:1;23774:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;23774:23:0;;;:7;;;;;;;;;:23;23810:182;;-1:-1:-1;;;23810:182:0;;:6;:57;;;;;;:182;;23882:6;;23903:1;;23919:4;;23946;;23966:15;;23810:182;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24014:343;24090:53;24107:4;24122:6;24131:11;24090:8;:53::i;:::-;24154:195;;-1:-1:-1;;;24154:195:0;;24217:4;24154:195;;;11689:34:1;;;11739:18;;;11732:34;;;24263:1:0;11782:18:1;;;11775:34;;;11825:18;;;11818:34;11868:19;;;11861:44;24323:15:0;11921:19:1;;;11914:35;24154:6:0;-1:-1:-1;;;;;24154:22:0;;;;24184:9;;11623:19:1;;24154:195:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;24014:343;;:::o;14:131:1:-;-1:-1:-1;;;;;89:31:1;;79:42;;69:70;;135:1;132;125:12;150:388;218:6;226;279:2;267:9;258:7;254:23;250:32;247:52;;;295:1;292;285:12;247:52;334:9;321:23;353:31;378:5;353:31;:::i;:::-;403:5;-1:-1:-1;460:2:1;445:18;;432:32;473:33;432:32;473:33;:::i;:::-;525:7;515:17;;;150:388;;;;;:::o;725:247::-;784:6;837:2;825:9;816:7;812:23;808:32;805:52;;;853:1;850;843:12;805:52;892:9;879:23;911:31;936:5;911:31;:::i;977:118::-;1063:5;1056:13;1049:21;1042:5;1039:32;1029:60;;1085:1;1082;1075:12;1100:241;1156:6;1209:2;1197:9;1188:7;1184:23;1180:32;1177:52;;;1225:1;1222;1215:12;1177:52;1264:9;1251:23;1283:28;1305:5;1283:28;:::i;1346:548::-;1458:4;1487:2;1516;1505:9;1498:21;1548:6;1542:13;1591:6;1586:2;1575:9;1571:18;1564:34;1616:1;1626:140;1640:6;1637:1;1634:13;1626:140;;;1735:14;;;1731:23;;1725:30;1701:17;;;1720:2;1697:26;1690:66;1655:10;;1626:140;;;1630:3;1815:1;1810:2;1801:6;1790:9;1786:22;1782:31;1775:42;1885:2;1878;1874:7;1869:2;1861:6;1857:15;1853:29;1842:9;1838:45;1834:54;1826:62;;;;1346:548;;;;:::o;2091:315::-;2159:6;2167;2220:2;2208:9;2199:7;2195:23;2191:32;2188:52;;;2236:1;2233;2226:12;2188:52;2275:9;2262:23;2294:31;2319:5;2294:31;:::i;:::-;2344:5;2396:2;2381:18;;;;2368:32;;-1:-1:-1;;;2091:315:1:o;2808:156::-;2874:20;;2934:4;2923:16;;2913:27;;2903:55;;2954:1;2951;2944:12;2903:55;2808:156;;;:::o;2969:182::-;3026:6;3079:2;3067:9;3058:7;3054:23;3050:32;3047:52;;;3095:1;3092;3085:12;3047:52;3118:27;3135:9;3118:27;:::i;3156:456::-;3233:6;3241;3249;3302:2;3290:9;3281:7;3277:23;3273:32;3270:52;;;3318:1;3315;3308:12;3270:52;3357:9;3344:23;3376:31;3401:5;3376:31;:::i;:::-;3426:5;-1:-1:-1;3483:2:1;3468:18;;3455:32;3496:33;3455:32;3496:33;:::i;:::-;3156:456;;3548:7;;-1:-1:-1;;;3602:2:1;3587:18;;;;3574:32;;3156:456::o;4085:464::-;4170:6;4178;4186;4194;4202;4255:3;4243:9;4234:7;4230:23;4226:33;4223:53;;;4272:1;4269;4262:12;4223:53;4295:27;4312:9;4295:27;:::i;:::-;4285:37;;4341:36;4373:2;4362:9;4358:18;4341:36;:::i;:::-;4331:46;;4396:36;4428:2;4417:9;4413:18;4396:36;:::i;:::-;4386:46;;4451:36;4483:2;4472:9;4468:18;4451:36;:::i;:::-;4441:46;;4506:37;4538:3;4527:9;4523:19;4506:37;:::i;:::-;4496:47;;4085:464;;;;;;;;:::o;4554:382::-;4619:6;4627;4680:2;4668:9;4659:7;4655:23;4651:32;4648:52;;;4696:1;4693;4686:12;4648:52;4735:9;4722:23;4754:31;4779:5;4754:31;:::i;:::-;4804:5;-1:-1:-1;4861:2:1;4846:18;;4833:32;4874:30;4833:32;4874:30;:::i;5194:180::-;5253:6;5306:2;5294:9;5285:7;5281:23;5277:32;5274:52;;;5322:1;5319;5312:12;5274:52;-1:-1:-1;5345:23:1;;5194:180;-1:-1:-1;5194:180:1:o;5379:248::-;5447:6;5455;5508:2;5496:9;5487:7;5483:23;5479:32;5476:52;;;5524:1;5521;5514:12;5476:52;-1:-1:-1;;5547:23:1;;;5617:2;5602:18;;;5589:32;;-1:-1:-1;5379:248:1:o;5864:184::-;5934:6;5987:2;5975:9;5966:7;5962:23;5958:32;5955:52;;;6003:1;6000;5993:12;5955:52;-1:-1:-1;6026:16:1;;5864:184;-1:-1:-1;5864:184:1:o;6332:245::-;6399:6;6452:2;6440:9;6431:7;6427:23;6423:32;6420:52;;;6468:1;6465;6458:12;6420:52;6500:9;6494:16;6519:28;6541:5;6519:28;:::i;6582:127::-;6643:10;6638:3;6634:20;6631:1;6624:31;6674:4;6671:1;6664:15;6698:4;6695:1;6688:15;6714:128;6781:9;;;6802:11;;;6799:37;;;6816:18;;:::i;6847:125::-;6912:9;;;6933:10;;;6930:36;;;6946:18;;:::i;6977:148::-;7065:4;7044:12;;;7058;;;7040:31;;7083:13;;7080:39;;;7099:18;;:::i;7130:422::-;7219:1;7262:5;7219:1;7276:270;7297:7;7287:8;7284:21;7276:270;;;7356:4;7352:1;7348:6;7344:17;7338:4;7335:27;7332:53;;;7365:18;;:::i;:::-;7415:7;7405:8;7401:22;7398:55;;;7435:16;;;;7398:55;7514:22;;;;7474:15;;;;7276:270;;;7280:3;7130:422;;;;;:::o;7557:806::-;7606:5;7636:8;7626:80;;-1:-1:-1;7677:1:1;7691:5;;7626:80;7725:4;7715:76;;-1:-1:-1;7762:1:1;7776:5;;7715:76;7807:4;7825:1;7820:59;;;;7893:1;7888:130;;;;7800:218;;7820:59;7850:1;7841:10;;7864:5;;;7888:130;7925:3;7915:8;7912:17;7909:43;;;7932:18;;:::i;:::-;-1:-1:-1;;7988:1:1;7974:16;;8003:5;;7800:218;;8102:2;8092:8;8089:16;8083:3;8077:4;8074:13;8070:36;8064:2;8054:8;8051:16;8046:2;8040:4;8037:12;8033:35;8030:77;8027:159;;;-1:-1:-1;8139:19:1;;;8171:5;;8027:159;8218:34;8243:8;8237:4;8218:34;:::i;:::-;8288:6;8284:1;8280:6;8276:19;8267:7;8264:32;8261:58;;;8299:18;;:::i;:::-;8337:20;;7557:806;-1:-1:-1;;;7557:806:1:o;8368:140::-;8426:5;8455:47;8496:4;8486:8;8482:19;8476:4;8455:47;:::i;8513:168::-;8553:7;8619:1;8615;8611:6;8607:14;8604:1;8601:21;8596:1;8589:9;8582:17;8578:45;8575:71;;;8626:18;;:::i;:::-;-1:-1:-1;8666:9:1;;8513:168::o;8686:127::-;8747:10;8742:3;8738:20;8735:1;8728:31;8778:4;8775:1;8768:15;8802:4;8799:1;8792:15;8818:120;8858:1;8884;8874:35;;8889:18;;:::i;:::-;-1:-1:-1;8923:9:1;;8818:120::o;9536:112::-;9568:1;9594;9584:35;;9599:18;;:::i;:::-;-1:-1:-1;9633:9:1;;9536:112::o;9975:127::-;10036:10;10031:3;10027:20;10024:1;10017:31;10067:4;10064:1;10057:15;10091:4;10088:1;10081:15;10107:251;10177:6;10230:2;10218:9;10209:7;10205:23;10201:32;10198:52;;;10246:1;10243;10236:12;10198:52;10278:9;10272:16;10297:31;10322:5;10297:31;:::i;10363:980::-;10625:4;10673:3;10662:9;10658:19;10704:6;10693:9;10686:25;10730:2;10768:6;10763:2;10752:9;10748:18;10741:34;10811:3;10806:2;10795:9;10791:18;10784:31;10835:6;10870;10864:13;10901:6;10893;10886:22;10939:3;10928:9;10924:19;10917:26;;10978:2;10970:6;10966:15;10952:29;;10999:1;11009:195;11023:6;11020:1;11017:13;11009:195;;;11088:13;;-1:-1:-1;;;;;11084:39:1;11072:52;;11179:15;;;;11144:12;;;;11120:1;11038:9;11009:195;;;-1:-1:-1;;;;;;;11260:32:1;;;;11255:2;11240:18;;11233:60;-1:-1:-1;;;11324:3:1;11309:19;11302:35;11221:3;10363:980;-1:-1:-1;;;10363:980:1:o;11960:306::-;12048:6;12056;12064;12117:2;12105:9;12096:7;12092:23;12088:32;12085:52;;;12133:1;12130;12123:12;12085:52;12162:9;12156:16;12146:26;;12212:2;12201:9;12197:18;12191:25;12181:35;;12256:2;12245:9;12241:18;12235:25;12225:35;;11960:306;;;;;:::o
Swarm Source
ipfs://4e4ed9f11f232b4171f70c191d8778428b8ccb5e7416fbd94cca4dcce27ef0a8
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.