ERC-20
Overview
Max Total Supply
16,300,000,000 NSA
Holders
114
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
6,820,629.92129475 NSAValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
NorthStarAlliance
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-10-27 */ // SPDX-License-Identifier: UNLICENSED // ALL RIGHTS RESERVED // Contract created by https://5thweb.io pragma solidity =0.8.17; interface IERC20 { function totalSupply() external view returns (uint256); function decimals() external view returns (uint8); function symbol() external view returns (string memory); function name() external view returns (string memory); function getOwner() external view returns (address); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address _owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } interface IDexFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IDexRouter { 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; function factory() external pure returns (address); function WETH() external pure returns (address); } interface IDexPair { event Sync(uint112 reserve0, uint112 reserve1); function sync() external; } abstract contract Ownable { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = msg.sender; _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(owner() == msg.sender, "Ownable: caller is not the owner"); _; } function renounceOwnership() external onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } contract NorthStarAlliance is IERC20, Ownable { mapping (address => uint) private _balances; mapping (address => mapping (address => uint)) private _allowances; mapping(address => bool) private excludedFromLimits; mapping(address => bool) public excludedFromFees; mapping(address=>bool) public isAMM; mapping (address => bool) public isBlacklisted; string private constant _name = 'North Star Alliance'; string private constant _symbol = 'NSA'; uint8 private constant _decimals=18; uint private constant InitialSupply=16300000000 * 10**_decimals; uint public buyTax = 20; //10=1% uint public sellTax = 20; uint public transferTax = 20; uint public projectTax=1000; uint public swapTreshold=10; //Dynamic Swap Threshold based on price impact. 1=0.1% max 10 uint public LaunchTimestamp; uint public burnRate =50; uint constant TAX_DENOMINATOR=1000; uint constant MAXTAXDENOMINATOR=10; uint256 public maxWalletBalance; bool private _isSwappingContractModifier; bool public manualSwap; bool public lpBurnEnabled = true; bool public restrictMode = true; IDexRouter private _DexRouter; address private _PairAddress; address public devWallet; address public constant burnWallet = address(0xdead); address private constant DexRouter=0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; event BlacklistStatusChange(bool status); event MaxWalletBalanceUpdated(uint256 percent); event OnSetTaxes(uint buy, uint sell, uint transfer_, uint project); event ExcludeAccount(address account, bool exclude); event OnEnableTrading(); event ExcludeFromLimits(address account, bool exclude); event DevWalletChange(address newWallet); event AMMadded(address AMM); event ManualSwapOn(bool manual); event ManualSwapPerformed(); event SwapThresholdChange(uint newSwapTresholdPermille); event BlacklistUpdated(); modifier lockTheSwap { _isSwappingContractModifier = true; _; _isSwappingContractModifier = false; } constructor () { uint ownerBalance=InitialSupply; _balances[msg.sender] = ownerBalance; emit Transfer(address(0), msg.sender, ownerBalance); _DexRouter = IDexRouter(DexRouter); _PairAddress = IDexFactory(_DexRouter.factory()).createPair(address(this), _DexRouter.WETH()); isAMM[_PairAddress]=true; devWallet=0x702C1a008860A5163eaD923026dbE4D0E0f5bbcb; excludedFromFees[msg.sender]=true; excludedFromFees[DexRouter]=true; excludedFromFees[address(this)]=true; excludedFromLimits[burnWallet] = true; excludedFromLimits[address(this)] = true; } function autoRestrict(address sender) private { isBlacklisted[sender] = true; } function ManageBlacklist(address[] calldata addresses, bool status) external onlyOwner { for (uint256 i; i < addresses.length; ++i) { isBlacklisted[addresses[i]] = status; } emit BlacklistUpdated(); } function ChangeDevWallet(address newWallet) external onlyOwner{ devWallet=newWallet; emit DevWalletChange(newWallet); } function setMaxWalletBalancePercent(uint256 percent) external onlyOwner { require(percent >= 10, "min 1%"); require(percent <= 1000, "max 100%"); maxWalletBalance = InitialSupply * percent / 1000; emit MaxWalletBalanceUpdated(percent); } function TogglerestrictMode(bool onOff) external onlyOwner { restrictMode=onOff; } function _transfer(address sender, address recipient, uint amount) private{ require(sender != address(0), "Transfer from zero"); require(recipient != address(0), "Transfer to zero"); if(excludedFromFees[sender] || excludedFromFees[recipient]) _feelessTransfer(sender, recipient, amount); else { require(LaunchTimestamp>0,"trading not yet enabled"); _taxedTransfer(sender,recipient,amount); } } function _taxedTransfer(address sender, address recipient, uint amount) private{ uint senderBalance = _balances[sender]; require(senderBalance >= amount, "Transfer exceeds balance"); bool excludedAccount = excludedFromLimits[sender] || excludedFromLimits[recipient]; if (isAMM[sender] && !excludedAccount) { uint256 contractBalanceRecepient = balanceOf(recipient); require( contractBalanceRecepient + amount <= maxWalletBalance, "Exceeds maximum wallet token amount." ); } bool isBuy=isAMM[sender]; bool isSell=isAMM[recipient]; uint tax; if(isSell){ require(!isBlacklisted[sender],"Blacklisted"); uint amountToBurn = amount*burnRate/1000; if(lpBurnEnabled && amountToBurn > 0){ _balances[_PairAddress]-=amountToBurn; _balances[burnWallet]+=amountToBurn; emit Transfer(_PairAddress,burnWallet,amountToBurn); IDexPair pair = IDexPair(_PairAddress); pair.sync(); } if(restrictMode){ autoRestrict(sender); } tax=sellTax;} else if(isBuy){ tax=buyTax; }else{ uint256 contractBalanceRecepient = balanceOf(recipient); require( contractBalanceRecepient + amount <= maxWalletBalance, "Exceeds maximum wallet token amount." ); tax=transferTax; } if((sender!=_PairAddress)&&(!manualSwap)&&(!_isSwappingContractModifier)){ _swapContractToken(false); } uint contractToken=_calculateFee(amount, tax, projectTax); uint taxedAmount=amount-contractToken; _balances[sender]-=amount; _balances[address(this)] += contractToken; _balances[recipient]+=taxedAmount; emit Transfer(sender,recipient,taxedAmount); } function _calculateFee(uint amount, uint tax, uint taxPercent) private pure returns (uint) { return (amount*tax*taxPercent) / (TAX_DENOMINATOR*TAX_DENOMINATOR); } function _feelessTransfer(address sender, address recipient, uint amount) private{ uint senderBalance = _balances[sender]; require(senderBalance >= amount, "Transfer exceeds balance"); _balances[sender]-=amount; _balances[recipient]+=amount; emit Transfer(sender,recipient,amount); } function setSwapTreshold(uint newSwapTresholdPermille) external onlyOwner{ require(newSwapTresholdPermille<=10);//MaxTreshold= 1% swapTreshold=newSwapTresholdPermille; emit SwapThresholdChange(newSwapTresholdPermille); } function SetTaxes(uint buy, uint sell, uint transfer_, uint project, uint burnrate) external onlyOwner{ uint maxTax=TAX_DENOMINATOR/MAXTAXDENOMINATOR; require(buy<=maxTax&&sell<=maxTax&&transfer_<=maxTax,"Tax exceeds maxTax"); require(project==TAX_DENOMINATOR,"Taxes don't add up to denominator"); buyTax=buy; sellTax=sell; transferTax=transfer_; projectTax=project; burnRate=burnrate; emit OnSetTaxes(buy, sell, transfer_, project); } function _swapContractToken(bool ignoreLimits) private lockTheSwap{ uint contractBalance=_balances[address(this)]; uint totalTax=projectTax; uint tokenToSwap=_balances[_PairAddress]*swapTreshold/1000; if(totalTax==0)return; if(ignoreLimits) tokenToSwap=_balances[address(this)]; else if(contractBalance<tokenToSwap) return; uint swapToken=tokenToSwap; uint initialETHBalance=address(this).balance; _swapTokenForETH(swapToken); uint newETH=(address(this).balance - initialETHBalance); uint devbalance=newETH; if(devbalance>0){ (bool dev,)=devWallet.call{value:devbalance}(""); dev=true; } } function _swapTokenForETH(uint amount) private { _approve(address(this), address(_DexRouter), amount); address[] memory path = new address[](2); path[0] = address(this); path[1] = _DexRouter.WETH(); try _DexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens( amount, 0, path, address(this), block.timestamp ){} catch{} } function getBurnedTokens() external view returns(uint){ return _balances[address(0xdead)]; } function getCirculatingSupply() public view returns(uint){ return InitialSupply-_balances[address(0xdead)]; } function SetAMM(address AMM, bool Add) external onlyOwner{ require(AMM!=_PairAddress,"can't change pancake"); isAMM[AMM]=Add; emit AMMadded(AMM); } function SwitchManualSwap(bool manual) external onlyOwner{ manualSwap=manual; emit ManualSwapOn(manual); } function SwapContractToken() external onlyOwner{ _swapContractToken(true); emit ManualSwapPerformed(); } function ExcludeAccountFromFees(address account, bool exclude) external onlyOwner{ require(account!=address(this),"can't Include the contract"); excludedFromFees[account]=exclude; emit ExcludeAccount(account,exclude); } function setExcludedAccountFromLimits(address account, bool exclude) external onlyOwner{ excludedFromLimits[account]=exclude; emit ExcludeFromLimits(account,exclude); } function isExcludedFromLimits(address account) external view returns(bool) { return excludedFromLimits[account]; } function EnableTrading() external onlyOwner{ require(LaunchTimestamp==0,"AlreadyLaunched"); LaunchTimestamp=block.timestamp; maxWalletBalance = InitialSupply * 15 / 1000; emit OnEnableTrading(); } function setLPBurnSettings(bool _Enabled) external onlyOwner { lpBurnEnabled = _Enabled; } 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 pure override returns (uint8) {return _decimals;} function totalSupply() external pure override returns (uint) {return InitialSupply;} function balanceOf(address account) public view override returns (uint) {return _balances[account];} function allowance(address _owner, address spender) external view override returns (uint) {return _allowances[_owner][spender];} function transfer(address recipient, uint amount) external override returns (bool) { _transfer(msg.sender, recipient, amount); return true; } 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 { require(owner != address(0), "Approve from zero"); require(spender != address(0), "Approve to zero"); _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]; require(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]; require(currentAllowance >= subtractedValue, "<0 allowance"); _approve(msg.sender, spender, currentAllowance - subtractedValue); return true; } receive() external payable {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"AMM","type":"address"}],"name":"AMMadded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"status","type":"bool"}],"name":"BlacklistStatusChange","type":"event"},{"anonymous":false,"inputs":[],"name":"BlacklistUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newWallet","type":"address"}],"name":"DevWalletChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"exclude","type":"bool"}],"name":"ExcludeAccount","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"exclude","type":"bool"}],"name":"ExcludeFromLimits","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"manual","type":"bool"}],"name":"ManualSwapOn","type":"event"},{"anonymous":false,"inputs":[],"name":"ManualSwapPerformed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"percent","type":"uint256"}],"name":"MaxWalletBalanceUpdated","type":"event"},{"anonymous":false,"inputs":[],"name":"OnEnableTrading","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"buy","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"sell","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"transfer_","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"project","type":"uint256"}],"name":"OnSetTaxes","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newSwapTresholdPermille","type":"uint256"}],"name":"SwapThresholdChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"ChangeDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"EnableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"exclude","type":"bool"}],"name":"ExcludeAccountFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"LaunchTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"ManageBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"AMM","type":"address"},{"internalType":"bool","name":"Add","type":"bool"}],"name":"SetAMM","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buy","type":"uint256"},{"internalType":"uint256","name":"sell","type":"uint256"},{"internalType":"uint256","name":"transfer_","type":"uint256"},{"internalType":"uint256","name":"project","type":"uint256"},{"internalType":"uint256","name":"burnrate","type":"uint256"}],"name":"SetTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"SwapContractToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"manual","type":"bool"}],"name":"SwitchManualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onOff","type":"bool"}],"name":"TogglerestrictMode","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"excludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBurnedTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","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":"","type":"address"}],"name":"isAMM","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpBurnEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"projectTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"restrictMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"exclude","type":"bool"}],"name":"setExcludedAccountFromLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_Enabled","type":"bool"}],"name":"setLPBurnSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"setMaxWalletBalancePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newSwapTresholdPermille","type":"uint256"}],"name":"setSwapTreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapTreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526014600755601460085560146009556103e8600a55600a600b556032600d556001600f60026101000a81548160ff0219169083151502179055506001600f60036101000a81548160ff0219169083151502179055503480156200006657600080fd5b506000339050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060006012600a6200011a919062000856565b6403cb8e43006200012c9190620008a7565b905080600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620001d2919062000903565b60405180910390a3737a250d5630b4cf539739df2c5dacb4c659f2488d600f60046101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f60049054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200029d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002c391906200098a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600f60049054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200034d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200037391906200098a565b6040518363ffffffff1660e01b815260040162000392929190620009cd565b6020604051808303816000875af1158015620003b2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003d891906200098a565b601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160056000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555073702c1a008860a5163ead923026dbe4d0e0f5bbcb601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016003600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050620009fa565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200074a57808604811115620007225762000721620006bc565b5b6001851615620007325780820291505b80810290506200074285620006eb565b945062000702565b94509492505050565b60008262000765576001905062000838565b8162000775576000905062000838565b81600181146200078e57600281146200079957620007cf565b600191505062000838565b60ff841115620007ae57620007ad620006bc565b5b8360020a915084821115620007c857620007c7620006bc565b5b5062000838565b5060208310610133831016604e8410600b8410161715620008095782820a905083811115620008035762000802620006bc565b5b62000838565b620008188484846001620006f8565b92509050818404811115620008325762000831620006bc565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000863826200083f565b9150620008708362000849565b92506200089f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000753565b905092915050565b6000620008b4826200083f565b9150620008c1836200083f565b9250828202620008d1816200083f565b91508282048414831517620008eb57620008ea620006bc565b5b5092915050565b620008fd816200083f565b82525050565b60006020820190506200091a6000830184620008f2565b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620009528262000925565b9050919050565b620009648162000945565b81146200097057600080fd5b50565b600081519050620009848162000959565b92915050565b600060208284031215620009a357620009a262000920565b5b6000620009b38482850162000973565b91505092915050565b620009c78162000945565b82525050565b6000604082019050620009e46000830185620009bc565b620009f36020830184620009bc565b9392505050565b6147d18062000a0a6000396000f3fe60806040526004361061028c5760003560e01c80638da5cb5b1161015a578063cfd1940e116100c1578063e0d2f9eb1161007a578063e0d2f9eb146109e3578063e52fb9ec14610a0c578063f2fde38b14610a37578063f7942b6314610a60578063fe575a8714610a89578063ff90061214610ac657610293565b8063cfd1940e146108af578063d22ed302146108d8578063d24cd3ec14610901578063d46b6a301461092c578063dbe66ca014610969578063dd62ed3e146109a657610293565b8063baa88ea911610113578063baa88ea9146107b1578063bbde77c1146107da578063bed9985014610805578063c3f4f54f14610830578063cc1776d31461085b578063ccbe3d421461088657610293565b80638da5cb5b1461068b5780638ea5220f146106b657806395d89b41146106e1578063a457c2d71461070c578063a9059cbb14610749578063b40d09e21461078657610293565b806341aec357116101fe578063715018a6116101b7578063715018a6146105a157806375d07670146105b85780638124f7ac146105e3578063868b01411461060e578063893d20e81461063757806389ce89f91461066257610293565b806341aec357146104915780634f7041a5146104a85780635149f984146104d357806351bc3c85146104fc5780635cce86cd1461052757806370a082311461056457610293565b806323b872dd1161025057806323b872dd1461036d5780632b112e49146103aa5780632c92293c146103d55780632e82f1a0146103fe578063313ce56714610429578063395093511461045457610293565b8063062287491461029857806306fdde03146102c3578063095ea7b3146102ee57806318160ddd1461032b5780631d97b7cd1461035657610293565b3661029357005b600080fd5b3480156102a457600080fd5b506102ad610aef565b6040516102ba919061349f565b60405180910390f35b3480156102cf57600080fd5b506102d8610af5565b6040516102e5919061354a565b60405180910390f35b3480156102fa57600080fd5b50610315600480360381019061031091906135d8565b610b32565b6040516103229190613633565b60405180910390f35b34801561033757600080fd5b50610340610b49565b60405161034d919061365d565b60405180910390f35b34801561036257600080fd5b5061036b610b6e565b005b34801561037957600080fd5b50610394600480360381019061038f9190613678565b610c9a565b6040516103a19190613633565b60405180910390f35b3480156103b657600080fd5b506103bf610d8d565b6040516103cc919061365d565b60405180910390f35b3480156103e157600080fd5b506103fc60048036038101906103f791906136cb565b610dfe565b005b34801561040a57600080fd5b50610413610f72565b6040516104209190613633565b60405180910390f35b34801561043557600080fd5b5061043e610f85565b60405161044b9190613714565b60405180910390f35b34801561046057600080fd5b5061047b600480360381019061047691906135d8565b610f8e565b6040516104889190613633565b60405180910390f35b34801561049d57600080fd5b506104a661102c565b005b3480156104b457600080fd5b506104bd6110d9565b6040516104ca919061365d565b60405180910390f35b3480156104df57600080fd5b506104fa60048036038101906104f5919061375b565b6110df565b005b34801561050857600080fd5b50610511611276565b60405161051e9190613633565b60405180910390f35b34801561053357600080fd5b5061054e6004803603810190610549919061379b565b611289565b60405161055b9190613633565b60405180910390f35b34801561057057600080fd5b5061058b6004803603810190610586919061379b565b6112df565b604051610598919061365d565b60405180910390f35b3480156105ad57600080fd5b506105b6611328565b005b3480156105c457600080fd5b506105cd61145b565b6040516105da9190613633565b60405180910390f35b3480156105ef57600080fd5b506105f861146e565b604051610605919061365d565b60405180910390f35b34801561061a57600080fd5b50610635600480360381019061063091906137c8565b611474565b005b34801561064357600080fd5b5061064c61153d565b604051610659919061349f565b60405180910390f35b34801561066e57600080fd5b506106896004803603810190610684919061385a565b61154c565b005b34801561069757600080fd5b506106a0611690565b6040516106ad919061349f565b60405180910390f35b3480156106c257600080fd5b506106cb6116b9565b6040516106d8919061349f565b60405180910390f35b3480156106ed57600080fd5b506106f66116df565b604051610703919061354a565b60405180910390f35b34801561071857600080fd5b50610733600480360381019061072e91906135d8565b61171c565b6040516107409190613633565b60405180910390f35b34801561075557600080fd5b50610770600480360381019061076b91906135d8565b611802565b60405161077d9190613633565b60405180910390f35b34801561079257600080fd5b5061079b611819565b6040516107a8919061365d565b60405180910390f35b3480156107bd57600080fd5b506107d860048036038101906107d391906138ba565b61181f565b005b3480156107e657600080fd5b506107ef6119ae565b6040516107fc919061365d565b60405180910390f35b34801561081157600080fd5b5061081a6119b4565b604051610827919061365d565b60405180910390f35b34801561083c57600080fd5b506108456119ba565b604051610852919061365d565b60405180910390f35b34801561086757600080fd5b50610870611a03565b60405161087d919061365d565b60405180910390f35b34801561089257600080fd5b506108ad60048036038101906108a891906137c8565b611a09565b005b3480156108bb57600080fd5b506108d660048036038101906108d191906136cb565b611a9b565b005b3480156108e457600080fd5b506108ff60048036038101906108fa91906137c8565b611b5f565b005b34801561090d57600080fd5b50610916611bf1565b604051610923919061365d565b60405180910390f35b34801561093857600080fd5b50610953600480360381019061094e919061379b565b611bf7565b6040516109609190613633565b60405180910390f35b34801561097557600080fd5b50610990600480360381019061098b919061379b565b611c17565b60405161099d9190613633565b60405180910390f35b3480156109b257600080fd5b506109cd60048036038101906109c89190613935565b611c37565b6040516109da919061365d565b60405180910390f35b3480156109ef57600080fd5b50610a0a6004803603810190610a05919061375b565b611cbe565b005b348015610a1857600080fd5b50610a21611e35565b604051610a2e919061365d565b60405180910390f35b348015610a4357600080fd5b50610a5e6004803603810190610a59919061379b565b611e3b565b005b348015610a6c57600080fd5b50610a876004803603810190610a82919061375b565b611fdc565b005b348015610a9557600080fd5b50610ab06004803603810190610aab919061379b565b6120e5565b604051610abd9190613633565b60405180910390f35b348015610ad257600080fd5b50610aed6004803603810190610ae8919061379b565b612105565b005b61dead81565b60606040518060400160405280601381526020017f4e6f727468205374617220416c6c69616e636500000000000000000000000000815250905090565b6000610b3f3384846121f5565b6001905092915050565b60006012600a610b599190613ad7565b6403cb8e4300610b699190613b22565b905090565b3373ffffffffffffffffffffffffffffffffffffffff16610b8d611690565b73ffffffffffffffffffffffffffffffffffffffff1614610be3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bda90613bb0565b60405180910390fd5b6000600c5414610c28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1f90613c1c565b60405180910390fd5b42600c819055506103e8600f6012600a610c429190613ad7565b6403cb8e4300610c529190613b22565b610c5c9190613b22565b610c669190613c6b565b600e819055507f2cb945e0498987ef06dbd68025b0bc276116c63345296379c28a8e8f09b47dc160405160405180910390a1565b6000610ca78484846123be565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610d6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6290613ce8565b60405180910390fd5b610d8185338584610d7c9190613d08565b6121f5565b60019150509392505050565b60006001600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546012600a610ddf9190613ad7565b6403cb8e4300610def9190613b22565b610df99190613d08565b905090565b3373ffffffffffffffffffffffffffffffffffffffff16610e1d611690565b73ffffffffffffffffffffffffffffffffffffffff1614610e73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6a90613bb0565b60405180910390fd5b600a811015610eb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eae90613d88565b60405180910390fd5b6103e8811115610efc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef390613df4565b60405180910390fd5b6103e8816012600a610f0e9190613ad7565b6403cb8e4300610f1e9190613b22565b610f289190613b22565b610f329190613c6b565b600e819055507f9cbd2e55e2abf49d29273c1b9fb343c2828844b2aec156cfe2aec98ae1b72a9981604051610f67919061365d565b60405180910390a150565b600f60029054906101000a900460ff1681565b60006012905090565b6000611022338484600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461101d9190613e14565b6121f5565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff1661104b611690565b73ffffffffffffffffffffffffffffffffffffffff16146110a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109890613bb0565b60405180910390fd5b6110ab60016125a8565b7f50d9f00a1465121b958cf0aef21a53ed0bbe36c5a415abb27350d22b247a258f60405160405180910390a1565b60075481565b3373ffffffffffffffffffffffffffffffffffffffff166110fe611690565b73ffffffffffffffffffffffffffffffffffffffff1614611154576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114b90613bb0565b60405180910390fd5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111db90613e94565b60405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fa5d0a2d9a2487cd749dbfa34962704a9f4ed5ff3fd9c6586c86d954070b552f08260405161126a919061349f565b60405180910390a15050565b600f60019054906101000a900460ff1681565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff16611347611690565b73ffffffffffffffffffffffffffffffffffffffff161461139d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139490613bb0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600f60039054906101000a900460ff1681565b60095481565b3373ffffffffffffffffffffffffffffffffffffffff16611493611690565b73ffffffffffffffffffffffffffffffffffffffff16146114e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e090613bb0565b60405180910390fd5b80600f60016101000a81548160ff0219169083151502179055507faffc63374f6f6c07a9f4b158efd5668a3684e1711b1c8e9ed9b848e115070821816040516115329190613633565b60405180910390a150565b6000611547611690565b905090565b3373ffffffffffffffffffffffffffffffffffffffff1661156b611690565b73ffffffffffffffffffffffffffffffffffffffff16146115c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b890613bb0565b60405180910390fd5b60005b8383905081101561165e5781600660008686858181106115e7576115e6613eb4565b5b90506020020160208101906115fc919061379b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508061165790613ee3565b90506115c4565b507f890e6981f892b367aea9f0b31589753714df5ee88d6dde2c0ddaffce7b9915d960405160405180910390a1505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606040518060400160405280600381526020017f4e53410000000000000000000000000000000000000000000000000000000000815250905090565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156117e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d890613f77565b60405180910390fd5b6117f7338585846117f29190613d08565b6121f5565b600191505092915050565b600061180f3384846123be565b6001905092915050565b600c5481565b3373ffffffffffffffffffffffffffffffffffffffff1661183e611690565b73ffffffffffffffffffffffffffffffffffffffff1614611894576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188b90613bb0565b60405180910390fd5b6000600a6103e86118a59190613c6b565b90508086111580156118b75750808511155b80156118c35750808411155b611902576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f990613fe3565b60405180910390fd5b6103e88314611946576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193d90614075565b60405180910390fd5b85600781905550846008819055508360098190555082600a8190555081600d819055507f10f7ddc260e3556fb48c6bf9d2f04292ed44b6c3baa1bacb35df2795335e84c88686868660405161199e9493929190614095565b60405180910390a1505050505050565b600e5481565b600d5481565b60006001600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905090565b60085481565b3373ffffffffffffffffffffffffffffffffffffffff16611a28611690565b73ffffffffffffffffffffffffffffffffffffffff1614611a7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7590613bb0565b60405180910390fd5b80600f60036101000a81548160ff02191690831515021790555050565b3373ffffffffffffffffffffffffffffffffffffffff16611aba611690565b73ffffffffffffffffffffffffffffffffffffffff1614611b10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0790613bb0565b60405180910390fd5b600a811115611b1e57600080fd5b80600b819055507fc075380b8410207b8cc14f0d254ab8c8a6766469631275e4500db835a1ba02cc81604051611b54919061365d565b60405180910390a150565b3373ffffffffffffffffffffffffffffffffffffffff16611b7e611690565b73ffffffffffffffffffffffffffffffffffffffff1614611bd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bcb90613bb0565b60405180910390fd5b80600f60026101000a81548160ff02191690831515021790555050565b600a5481565b60056020528060005260406000206000915054906101000a900460ff1681565b60046020528060005260406000206000915054906101000a900460ff1681565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff16611cdd611690565b73ffffffffffffffffffffffffffffffffffffffff1614611d33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2a90613bb0565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611da1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9890614126565b60405180910390fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fa22b25479919d4ac678f064a05daa1ee9c0adc3b8198942ea45255e364e04ed48282604051611e29929190614146565b60405180910390a15050565b600b5481565b3373ffffffffffffffffffffffffffffffffffffffff16611e5a611690565b73ffffffffffffffffffffffffffffffffffffffff1614611eb0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ea790613bb0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611f1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f16906141e1565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b3373ffffffffffffffffffffffffffffffffffffffff16611ffb611690565b73ffffffffffffffffffffffffffffffffffffffff1614612051576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204890613bb0565b60405180910390fd5b80600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f4b89c347592b1d537e066cb4ed98d87696ae35164745d7e370e4add16941dc9282826040516120d9929190614146565b60405180910390a15050565b60066020528060005260406000206000915054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff16612124611690565b73ffffffffffffffffffffffffffffffffffffffff161461217a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161217190613bb0565b60405180910390fd5b80601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f1a806adf87d2b694e80e69bda66ee145c65fb0ef3615fec509da7adc260316af816040516121ea919061349f565b60405180910390a150565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612264576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161225b9061424d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036122d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ca906142b9565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516123b1919061365d565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361242d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161242490614325565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361249c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161249390614391565b60405180910390fd5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061253d5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156125525761254d8383836127e7565b6125a3565b6000600c5411612597576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161258e906143fd565b60405180910390fd5b6125a2838383612985565b5b505050565b6001600f60006101000a81548160ff0219169083151502179055506000600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600a54905060006103e8600b5460016000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126829190613b22565b61268c9190613c6b565b90506000820361269e575050506127c9565b83156126eb57600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506126fc565b808310156126fb575050506127c9565b5b6000819050600047905061270f8261318c565b6000814761271d9190613d08565b9050600081905060008111156127c1576000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826040516127759061444e565b60006040518083038185875af1925050503d80600081146127b2576040519150601f19603f3d011682016040523d82523d6000602084013e6127b7565b606091505b5050905060019050505b505050505050505b6000600f60006101000a81548160ff02191690831515021790555050565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561286e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612865906144af565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546128bd9190613d08565b9250508190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546129139190613e14565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612977919061365d565b60405180910390a350505050565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612a0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a03906144af565b60405180910390fd5b6000600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612aaf5750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b9050600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612b08575080155b15612b6c576000612b18856112df565b9050600e548482612b299190613e14565b1115612b6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b6190614541565b60405180910390fd5b505b6000600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690506000600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905060008115612eef57600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612ca3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c9a906145ad565b60405180910390fd5b60006103e8600d5488612cb69190613b22565b612cc09190613c6b565b9050600f60029054906101000a900460ff168015612cde5750600081115b15612ec5578060016000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612d549190613d08565b92505081905550806001600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612dac9190613e14565b9250508190555061dead73ffffffffffffffffffffffffffffffffffffffff16601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612e34919061365d565b60405180910390a36000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff1663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b158015612eab57600080fd5b505af1158015612ebf573d6000803e3d6000fd5b50505050505b600f60039054906101000a900460ff1615612ee457612ee3896133c9565b5b600854915050612f64565b8215612eff576007549050612f63565b6000612f0a886112df565b9050600e548782612f1b9190613e14565b1115612f5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f5390614541565b60405180910390fd5b6009549150505b5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614158015612fcf5750600f60019054906101000a900460ff16155b8015612fe85750600f60009054906101000a900460ff16155b15612ff857612ff760006125a8565b5b60006130078783600a54613424565b9050600081886130179190613d08565b905087600160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546130689190613d08565b9250508190555081600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546130be9190613e14565b9250508190555080600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546131149190613e14565b925050819055508873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613178919061365d565b60405180910390a350505050505050505050565b6131b930600f60049054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836121f5565b6000600267ffffffffffffffff8111156131d6576131d56145cd565b5b6040519080825280602002602001820160405280156132045781602001602082028036833780820191505090505b509050308160008151811061321c5761321b613eb4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60049054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156132c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132e79190614611565b816001815181106132fb576132fa613eb4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60049054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613399959493929190614741565b600060405180830381600087803b1580156133b357600080fd5b505af19250505080156133c4575060015b505050565b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006103e8806134349190613b22565b8284866134419190613b22565b61344b9190613b22565b6134559190613c6b565b90509392505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006134898261345e565b9050919050565b6134998161347e565b82525050565b60006020820190506134b46000830184613490565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156134f45780820151818401526020810190506134d9565b60008484015250505050565b6000601f19601f8301169050919050565b600061351c826134ba565b61352681856134c5565b93506135368185602086016134d6565b61353f81613500565b840191505092915050565b600060208201905081810360008301526135648184613511565b905092915050565b600080fd5b600080fd5b61357f8161347e565b811461358a57600080fd5b50565b60008135905061359c81613576565b92915050565b6000819050919050565b6135b5816135a2565b81146135c057600080fd5b50565b6000813590506135d2816135ac565b92915050565b600080604083850312156135ef576135ee61356c565b5b60006135fd8582860161358d565b925050602061360e858286016135c3565b9150509250929050565b60008115159050919050565b61362d81613618565b82525050565b60006020820190506136486000830184613624565b92915050565b613657816135a2565b82525050565b6000602082019050613672600083018461364e565b92915050565b6000806000606084860312156136915761369061356c565b5b600061369f8682870161358d565b93505060206136b08682870161358d565b92505060406136c1868287016135c3565b9150509250925092565b6000602082840312156136e1576136e061356c565b5b60006136ef848285016135c3565b91505092915050565b600060ff82169050919050565b61370e816136f8565b82525050565b60006020820190506137296000830184613705565b92915050565b61373881613618565b811461374357600080fd5b50565b6000813590506137558161372f565b92915050565b600080604083850312156137725761377161356c565b5b60006137808582860161358d565b925050602061379185828601613746565b9150509250929050565b6000602082840312156137b1576137b061356c565b5b60006137bf8482850161358d565b91505092915050565b6000602082840312156137de576137dd61356c565b5b60006137ec84828501613746565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261381a576138196137f5565b5b8235905067ffffffffffffffff811115613837576138366137fa565b5b602083019150836020820283011115613853576138526137ff565b5b9250929050565b6000806000604084860312156138735761387261356c565b5b600084013567ffffffffffffffff81111561389157613890613571565b5b61389d86828701613804565b935093505060206138b086828701613746565b9150509250925092565b600080600080600060a086880312156138d6576138d561356c565b5b60006138e4888289016135c3565b95505060206138f5888289016135c3565b9450506040613906888289016135c3565b9350506060613917888289016135c3565b9250506080613928888289016135c3565b9150509295509295909350565b6000806040838503121561394c5761394b61356c565b5b600061395a8582860161358d565b925050602061396b8582860161358d565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156139fb578086048111156139d7576139d6613975565b5b60018516156139e65780820291505b80810290506139f4856139a4565b94506139bb565b94509492505050565b600082613a145760019050613ad0565b81613a225760009050613ad0565b8160018114613a385760028114613a4257613a71565b6001915050613ad0565b60ff841115613a5457613a53613975565b5b8360020a915084821115613a6b57613a6a613975565b5b50613ad0565b5060208310610133831016604e8410600b8410161715613aa65782820a905083811115613aa157613aa0613975565b5b613ad0565b613ab384848460016139b1565b92509050818404811115613aca57613ac9613975565b5b81810290505b9392505050565b6000613ae2826135a2565b9150613aed836136f8565b9250613b1a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613a04565b905092915050565b6000613b2d826135a2565b9150613b38836135a2565b9250828202613b46816135a2565b91508282048414831517613b5d57613b5c613975565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613b9a6020836134c5565b9150613ba582613b64565b602082019050919050565b60006020820190508181036000830152613bc981613b8d565b9050919050565b7f416c72656164794c61756e636865640000000000000000000000000000000000600082015250565b6000613c06600f836134c5565b9150613c1182613bd0565b602082019050919050565b60006020820190508181036000830152613c3581613bf9565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613c76826135a2565b9150613c81836135a2565b925082613c9157613c90613c3c565b5b828204905092915050565b7f5472616e73666572203e20616c6c6f77616e6365000000000000000000000000600082015250565b6000613cd26014836134c5565b9150613cdd82613c9c565b602082019050919050565b60006020820190508181036000830152613d0181613cc5565b9050919050565b6000613d13826135a2565b9150613d1e836135a2565b9250828203905081811115613d3657613d35613975565b5b92915050565b7f6d696e2031250000000000000000000000000000000000000000000000000000600082015250565b6000613d726006836134c5565b9150613d7d82613d3c565b602082019050919050565b60006020820190508181036000830152613da181613d65565b9050919050565b7f6d61782031303025000000000000000000000000000000000000000000000000600082015250565b6000613dde6008836134c5565b9150613de982613da8565b602082019050919050565b60006020820190508181036000830152613e0d81613dd1565b9050919050565b6000613e1f826135a2565b9150613e2a836135a2565b9250828201905080821115613e4257613e41613975565b5b92915050565b7f63616e2774206368616e67652070616e63616b65000000000000000000000000600082015250565b6000613e7e6014836134c5565b9150613e8982613e48565b602082019050919050565b60006020820190508181036000830152613ead81613e71565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000613eee826135a2565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613f2057613f1f613975565b5b600182019050919050565b7f3c3020616c6c6f77616e63650000000000000000000000000000000000000000600082015250565b6000613f61600c836134c5565b9150613f6c82613f2b565b602082019050919050565b60006020820190508181036000830152613f9081613f54565b9050919050565b7f5461782065786365656473206d61785461780000000000000000000000000000600082015250565b6000613fcd6012836134c5565b9150613fd882613f97565b602082019050919050565b60006020820190508181036000830152613ffc81613fc0565b9050919050565b7f546178657320646f6e27742061646420757020746f2064656e6f6d696e61746f60008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b600061405f6021836134c5565b915061406a82614003565b604082019050919050565b6000602082019050818103600083015261408e81614052565b9050919050565b60006080820190506140aa600083018761364e565b6140b7602083018661364e565b6140c4604083018561364e565b6140d1606083018461364e565b95945050505050565b7f63616e277420496e636c7564652074686520636f6e7472616374000000000000600082015250565b6000614110601a836134c5565b915061411b826140da565b602082019050919050565b6000602082019050818103600083015261413f81614103565b9050919050565b600060408201905061415b6000830185613490565b6141686020830184613624565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006141cb6026836134c5565b91506141d68261416f565b604082019050919050565b600060208201905081810360008301526141fa816141be565b9050919050565b7f417070726f76652066726f6d207a65726f000000000000000000000000000000600082015250565b60006142376011836134c5565b915061424282614201565b602082019050919050565b600060208201905081810360008301526142668161422a565b9050919050565b7f417070726f766520746f207a65726f0000000000000000000000000000000000600082015250565b60006142a3600f836134c5565b91506142ae8261426d565b602082019050919050565b600060208201905081810360008301526142d281614296565b9050919050565b7f5472616e736665722066726f6d207a65726f0000000000000000000000000000600082015250565b600061430f6012836134c5565b915061431a826142d9565b602082019050919050565b6000602082019050818103600083015261433e81614302565b9050919050565b7f5472616e7366657220746f207a65726f00000000000000000000000000000000600082015250565b600061437b6010836134c5565b915061438682614345565b602082019050919050565b600060208201905081810360008301526143aa8161436e565b9050919050565b7f74726164696e67206e6f742079657420656e61626c6564000000000000000000600082015250565b60006143e76017836134c5565b91506143f2826143b1565b602082019050919050565b60006020820190508181036000830152614416816143da565b9050919050565b600081905092915050565b50565b600061443860008361441d565b915061444382614428565b600082019050919050565b60006144598261442b565b9150819050919050565b7f5472616e7366657220657863656564732062616c616e63650000000000000000600082015250565b60006144996018836134c5565b91506144a482614463565b602082019050919050565b600060208201905081810360008301526144c88161448c565b9050919050565b7f45786365656473206d6178696d756d2077616c6c657420746f6b656e20616d6f60008201527f756e742e00000000000000000000000000000000000000000000000000000000602082015250565b600061452b6024836134c5565b9150614536826144cf565b604082019050919050565b6000602082019050818103600083015261455a8161451e565b9050919050565b7f426c61636b6c6973746564000000000000000000000000000000000000000000600082015250565b6000614597600b836134c5565b91506145a282614561565b602082019050919050565b600060208201905081810360008301526145c68161458a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008151905061460b81613576565b92915050565b6000602082840312156146275761462661356c565b5b6000614635848285016145fc565b91505092915050565b6000819050919050565b6000819050919050565b600061466d6146686146638461463e565b614648565b6135a2565b9050919050565b61467d81614652565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6146b88161347e565b82525050565b60006146ca83836146af565b60208301905092915050565b6000602082019050919050565b60006146ee82614683565b6146f8818561468e565b93506147038361469f565b8060005b8381101561473457815161471b88826146be565b9750614726836146d6565b925050600181019050614707565b5085935050505092915050565b600060a082019050614756600083018861364e565b6147636020830187614674565b818103604083015261477581866146e3565b90506147846060830185613490565b614791608083018461364e565b969550505050505056fea2646970667358221220975fb248f6465ab8d5d29140a161ba22c3605d75e7965dcb8c36201d8217aad864736f6c63430008110033
Deployed Bytecode
0x60806040526004361061028c5760003560e01c80638da5cb5b1161015a578063cfd1940e116100c1578063e0d2f9eb1161007a578063e0d2f9eb146109e3578063e52fb9ec14610a0c578063f2fde38b14610a37578063f7942b6314610a60578063fe575a8714610a89578063ff90061214610ac657610293565b8063cfd1940e146108af578063d22ed302146108d8578063d24cd3ec14610901578063d46b6a301461092c578063dbe66ca014610969578063dd62ed3e146109a657610293565b8063baa88ea911610113578063baa88ea9146107b1578063bbde77c1146107da578063bed9985014610805578063c3f4f54f14610830578063cc1776d31461085b578063ccbe3d421461088657610293565b80638da5cb5b1461068b5780638ea5220f146106b657806395d89b41146106e1578063a457c2d71461070c578063a9059cbb14610749578063b40d09e21461078657610293565b806341aec357116101fe578063715018a6116101b7578063715018a6146105a157806375d07670146105b85780638124f7ac146105e3578063868b01411461060e578063893d20e81461063757806389ce89f91461066257610293565b806341aec357146104915780634f7041a5146104a85780635149f984146104d357806351bc3c85146104fc5780635cce86cd1461052757806370a082311461056457610293565b806323b872dd1161025057806323b872dd1461036d5780632b112e49146103aa5780632c92293c146103d55780632e82f1a0146103fe578063313ce56714610429578063395093511461045457610293565b8063062287491461029857806306fdde03146102c3578063095ea7b3146102ee57806318160ddd1461032b5780631d97b7cd1461035657610293565b3661029357005b600080fd5b3480156102a457600080fd5b506102ad610aef565b6040516102ba919061349f565b60405180910390f35b3480156102cf57600080fd5b506102d8610af5565b6040516102e5919061354a565b60405180910390f35b3480156102fa57600080fd5b50610315600480360381019061031091906135d8565b610b32565b6040516103229190613633565b60405180910390f35b34801561033757600080fd5b50610340610b49565b60405161034d919061365d565b60405180910390f35b34801561036257600080fd5b5061036b610b6e565b005b34801561037957600080fd5b50610394600480360381019061038f9190613678565b610c9a565b6040516103a19190613633565b60405180910390f35b3480156103b657600080fd5b506103bf610d8d565b6040516103cc919061365d565b60405180910390f35b3480156103e157600080fd5b506103fc60048036038101906103f791906136cb565b610dfe565b005b34801561040a57600080fd5b50610413610f72565b6040516104209190613633565b60405180910390f35b34801561043557600080fd5b5061043e610f85565b60405161044b9190613714565b60405180910390f35b34801561046057600080fd5b5061047b600480360381019061047691906135d8565b610f8e565b6040516104889190613633565b60405180910390f35b34801561049d57600080fd5b506104a661102c565b005b3480156104b457600080fd5b506104bd6110d9565b6040516104ca919061365d565b60405180910390f35b3480156104df57600080fd5b506104fa60048036038101906104f5919061375b565b6110df565b005b34801561050857600080fd5b50610511611276565b60405161051e9190613633565b60405180910390f35b34801561053357600080fd5b5061054e6004803603810190610549919061379b565b611289565b60405161055b9190613633565b60405180910390f35b34801561057057600080fd5b5061058b6004803603810190610586919061379b565b6112df565b604051610598919061365d565b60405180910390f35b3480156105ad57600080fd5b506105b6611328565b005b3480156105c457600080fd5b506105cd61145b565b6040516105da9190613633565b60405180910390f35b3480156105ef57600080fd5b506105f861146e565b604051610605919061365d565b60405180910390f35b34801561061a57600080fd5b50610635600480360381019061063091906137c8565b611474565b005b34801561064357600080fd5b5061064c61153d565b604051610659919061349f565b60405180910390f35b34801561066e57600080fd5b506106896004803603810190610684919061385a565b61154c565b005b34801561069757600080fd5b506106a0611690565b6040516106ad919061349f565b60405180910390f35b3480156106c257600080fd5b506106cb6116b9565b6040516106d8919061349f565b60405180910390f35b3480156106ed57600080fd5b506106f66116df565b604051610703919061354a565b60405180910390f35b34801561071857600080fd5b50610733600480360381019061072e91906135d8565b61171c565b6040516107409190613633565b60405180910390f35b34801561075557600080fd5b50610770600480360381019061076b91906135d8565b611802565b60405161077d9190613633565b60405180910390f35b34801561079257600080fd5b5061079b611819565b6040516107a8919061365d565b60405180910390f35b3480156107bd57600080fd5b506107d860048036038101906107d391906138ba565b61181f565b005b3480156107e657600080fd5b506107ef6119ae565b6040516107fc919061365d565b60405180910390f35b34801561081157600080fd5b5061081a6119b4565b604051610827919061365d565b60405180910390f35b34801561083c57600080fd5b506108456119ba565b604051610852919061365d565b60405180910390f35b34801561086757600080fd5b50610870611a03565b60405161087d919061365d565b60405180910390f35b34801561089257600080fd5b506108ad60048036038101906108a891906137c8565b611a09565b005b3480156108bb57600080fd5b506108d660048036038101906108d191906136cb565b611a9b565b005b3480156108e457600080fd5b506108ff60048036038101906108fa91906137c8565b611b5f565b005b34801561090d57600080fd5b50610916611bf1565b604051610923919061365d565b60405180910390f35b34801561093857600080fd5b50610953600480360381019061094e919061379b565b611bf7565b6040516109609190613633565b60405180910390f35b34801561097557600080fd5b50610990600480360381019061098b919061379b565b611c17565b60405161099d9190613633565b60405180910390f35b3480156109b257600080fd5b506109cd60048036038101906109c89190613935565b611c37565b6040516109da919061365d565b60405180910390f35b3480156109ef57600080fd5b50610a0a6004803603810190610a05919061375b565b611cbe565b005b348015610a1857600080fd5b50610a21611e35565b604051610a2e919061365d565b60405180910390f35b348015610a4357600080fd5b50610a5e6004803603810190610a59919061379b565b611e3b565b005b348015610a6c57600080fd5b50610a876004803603810190610a82919061375b565b611fdc565b005b348015610a9557600080fd5b50610ab06004803603810190610aab919061379b565b6120e5565b604051610abd9190613633565b60405180910390f35b348015610ad257600080fd5b50610aed6004803603810190610ae8919061379b565b612105565b005b61dead81565b60606040518060400160405280601381526020017f4e6f727468205374617220416c6c69616e636500000000000000000000000000815250905090565b6000610b3f3384846121f5565b6001905092915050565b60006012600a610b599190613ad7565b6403cb8e4300610b699190613b22565b905090565b3373ffffffffffffffffffffffffffffffffffffffff16610b8d611690565b73ffffffffffffffffffffffffffffffffffffffff1614610be3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bda90613bb0565b60405180910390fd5b6000600c5414610c28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1f90613c1c565b60405180910390fd5b42600c819055506103e8600f6012600a610c429190613ad7565b6403cb8e4300610c529190613b22565b610c5c9190613b22565b610c669190613c6b565b600e819055507f2cb945e0498987ef06dbd68025b0bc276116c63345296379c28a8e8f09b47dc160405160405180910390a1565b6000610ca78484846123be565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610d6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6290613ce8565b60405180910390fd5b610d8185338584610d7c9190613d08565b6121f5565b60019150509392505050565b60006001600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546012600a610ddf9190613ad7565b6403cb8e4300610def9190613b22565b610df99190613d08565b905090565b3373ffffffffffffffffffffffffffffffffffffffff16610e1d611690565b73ffffffffffffffffffffffffffffffffffffffff1614610e73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6a90613bb0565b60405180910390fd5b600a811015610eb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eae90613d88565b60405180910390fd5b6103e8811115610efc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef390613df4565b60405180910390fd5b6103e8816012600a610f0e9190613ad7565b6403cb8e4300610f1e9190613b22565b610f289190613b22565b610f329190613c6b565b600e819055507f9cbd2e55e2abf49d29273c1b9fb343c2828844b2aec156cfe2aec98ae1b72a9981604051610f67919061365d565b60405180910390a150565b600f60029054906101000a900460ff1681565b60006012905090565b6000611022338484600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461101d9190613e14565b6121f5565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff1661104b611690565b73ffffffffffffffffffffffffffffffffffffffff16146110a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109890613bb0565b60405180910390fd5b6110ab60016125a8565b7f50d9f00a1465121b958cf0aef21a53ed0bbe36c5a415abb27350d22b247a258f60405160405180910390a1565b60075481565b3373ffffffffffffffffffffffffffffffffffffffff166110fe611690565b73ffffffffffffffffffffffffffffffffffffffff1614611154576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114b90613bb0565b60405180910390fd5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111db90613e94565b60405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fa5d0a2d9a2487cd749dbfa34962704a9f4ed5ff3fd9c6586c86d954070b552f08260405161126a919061349f565b60405180910390a15050565b600f60019054906101000a900460ff1681565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff16611347611690565b73ffffffffffffffffffffffffffffffffffffffff161461139d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139490613bb0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600f60039054906101000a900460ff1681565b60095481565b3373ffffffffffffffffffffffffffffffffffffffff16611493611690565b73ffffffffffffffffffffffffffffffffffffffff16146114e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e090613bb0565b60405180910390fd5b80600f60016101000a81548160ff0219169083151502179055507faffc63374f6f6c07a9f4b158efd5668a3684e1711b1c8e9ed9b848e115070821816040516115329190613633565b60405180910390a150565b6000611547611690565b905090565b3373ffffffffffffffffffffffffffffffffffffffff1661156b611690565b73ffffffffffffffffffffffffffffffffffffffff16146115c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b890613bb0565b60405180910390fd5b60005b8383905081101561165e5781600660008686858181106115e7576115e6613eb4565b5b90506020020160208101906115fc919061379b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508061165790613ee3565b90506115c4565b507f890e6981f892b367aea9f0b31589753714df5ee88d6dde2c0ddaffce7b9915d960405160405180910390a1505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606040518060400160405280600381526020017f4e53410000000000000000000000000000000000000000000000000000000000815250905090565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156117e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d890613f77565b60405180910390fd5b6117f7338585846117f29190613d08565b6121f5565b600191505092915050565b600061180f3384846123be565b6001905092915050565b600c5481565b3373ffffffffffffffffffffffffffffffffffffffff1661183e611690565b73ffffffffffffffffffffffffffffffffffffffff1614611894576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188b90613bb0565b60405180910390fd5b6000600a6103e86118a59190613c6b565b90508086111580156118b75750808511155b80156118c35750808411155b611902576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f990613fe3565b60405180910390fd5b6103e88314611946576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193d90614075565b60405180910390fd5b85600781905550846008819055508360098190555082600a8190555081600d819055507f10f7ddc260e3556fb48c6bf9d2f04292ed44b6c3baa1bacb35df2795335e84c88686868660405161199e9493929190614095565b60405180910390a1505050505050565b600e5481565b600d5481565b60006001600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905090565b60085481565b3373ffffffffffffffffffffffffffffffffffffffff16611a28611690565b73ffffffffffffffffffffffffffffffffffffffff1614611a7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7590613bb0565b60405180910390fd5b80600f60036101000a81548160ff02191690831515021790555050565b3373ffffffffffffffffffffffffffffffffffffffff16611aba611690565b73ffffffffffffffffffffffffffffffffffffffff1614611b10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0790613bb0565b60405180910390fd5b600a811115611b1e57600080fd5b80600b819055507fc075380b8410207b8cc14f0d254ab8c8a6766469631275e4500db835a1ba02cc81604051611b54919061365d565b60405180910390a150565b3373ffffffffffffffffffffffffffffffffffffffff16611b7e611690565b73ffffffffffffffffffffffffffffffffffffffff1614611bd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bcb90613bb0565b60405180910390fd5b80600f60026101000a81548160ff02191690831515021790555050565b600a5481565b60056020528060005260406000206000915054906101000a900460ff1681565b60046020528060005260406000206000915054906101000a900460ff1681565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff16611cdd611690565b73ffffffffffffffffffffffffffffffffffffffff1614611d33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2a90613bb0565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611da1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9890614126565b60405180910390fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fa22b25479919d4ac678f064a05daa1ee9c0adc3b8198942ea45255e364e04ed48282604051611e29929190614146565b60405180910390a15050565b600b5481565b3373ffffffffffffffffffffffffffffffffffffffff16611e5a611690565b73ffffffffffffffffffffffffffffffffffffffff1614611eb0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ea790613bb0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611f1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f16906141e1565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b3373ffffffffffffffffffffffffffffffffffffffff16611ffb611690565b73ffffffffffffffffffffffffffffffffffffffff1614612051576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204890613bb0565b60405180910390fd5b80600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f4b89c347592b1d537e066cb4ed98d87696ae35164745d7e370e4add16941dc9282826040516120d9929190614146565b60405180910390a15050565b60066020528060005260406000206000915054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff16612124611690565b73ffffffffffffffffffffffffffffffffffffffff161461217a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161217190613bb0565b60405180910390fd5b80601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f1a806adf87d2b694e80e69bda66ee145c65fb0ef3615fec509da7adc260316af816040516121ea919061349f565b60405180910390a150565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612264576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161225b9061424d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036122d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ca906142b9565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516123b1919061365d565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361242d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161242490614325565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361249c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161249390614391565b60405180910390fd5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061253d5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156125525761254d8383836127e7565b6125a3565b6000600c5411612597576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161258e906143fd565b60405180910390fd5b6125a2838383612985565b5b505050565b6001600f60006101000a81548160ff0219169083151502179055506000600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600a54905060006103e8600b5460016000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126829190613b22565b61268c9190613c6b565b90506000820361269e575050506127c9565b83156126eb57600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506126fc565b808310156126fb575050506127c9565b5b6000819050600047905061270f8261318c565b6000814761271d9190613d08565b9050600081905060008111156127c1576000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826040516127759061444e565b60006040518083038185875af1925050503d80600081146127b2576040519150601f19603f3d011682016040523d82523d6000602084013e6127b7565b606091505b5050905060019050505b505050505050505b6000600f60006101000a81548160ff02191690831515021790555050565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561286e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612865906144af565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546128bd9190613d08565b9250508190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546129139190613e14565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612977919061365d565b60405180910390a350505050565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612a0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a03906144af565b60405180910390fd5b6000600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612aaf5750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b9050600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612b08575080155b15612b6c576000612b18856112df565b9050600e548482612b299190613e14565b1115612b6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b6190614541565b60405180910390fd5b505b6000600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690506000600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905060008115612eef57600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612ca3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c9a906145ad565b60405180910390fd5b60006103e8600d5488612cb69190613b22565b612cc09190613c6b565b9050600f60029054906101000a900460ff168015612cde5750600081115b15612ec5578060016000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612d549190613d08565b92505081905550806001600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612dac9190613e14565b9250508190555061dead73ffffffffffffffffffffffffffffffffffffffff16601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612e34919061365d565b60405180910390a36000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff1663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b158015612eab57600080fd5b505af1158015612ebf573d6000803e3d6000fd5b50505050505b600f60039054906101000a900460ff1615612ee457612ee3896133c9565b5b600854915050612f64565b8215612eff576007549050612f63565b6000612f0a886112df565b9050600e548782612f1b9190613e14565b1115612f5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f5390614541565b60405180910390fd5b6009549150505b5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614158015612fcf5750600f60019054906101000a900460ff16155b8015612fe85750600f60009054906101000a900460ff16155b15612ff857612ff760006125a8565b5b60006130078783600a54613424565b9050600081886130179190613d08565b905087600160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546130689190613d08565b9250508190555081600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546130be9190613e14565b9250508190555080600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546131149190613e14565b925050819055508873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613178919061365d565b60405180910390a350505050505050505050565b6131b930600f60049054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836121f5565b6000600267ffffffffffffffff8111156131d6576131d56145cd565b5b6040519080825280602002602001820160405280156132045781602001602082028036833780820191505090505b509050308160008151811061321c5761321b613eb4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60049054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156132c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132e79190614611565b816001815181106132fb576132fa613eb4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60049054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613399959493929190614741565b600060405180830381600087803b1580156133b357600080fd5b505af19250505080156133c4575060015b505050565b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006103e8806134349190613b22565b8284866134419190613b22565b61344b9190613b22565b6134559190613c6b565b90509392505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006134898261345e565b9050919050565b6134998161347e565b82525050565b60006020820190506134b46000830184613490565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156134f45780820151818401526020810190506134d9565b60008484015250505050565b6000601f19601f8301169050919050565b600061351c826134ba565b61352681856134c5565b93506135368185602086016134d6565b61353f81613500565b840191505092915050565b600060208201905081810360008301526135648184613511565b905092915050565b600080fd5b600080fd5b61357f8161347e565b811461358a57600080fd5b50565b60008135905061359c81613576565b92915050565b6000819050919050565b6135b5816135a2565b81146135c057600080fd5b50565b6000813590506135d2816135ac565b92915050565b600080604083850312156135ef576135ee61356c565b5b60006135fd8582860161358d565b925050602061360e858286016135c3565b9150509250929050565b60008115159050919050565b61362d81613618565b82525050565b60006020820190506136486000830184613624565b92915050565b613657816135a2565b82525050565b6000602082019050613672600083018461364e565b92915050565b6000806000606084860312156136915761369061356c565b5b600061369f8682870161358d565b93505060206136b08682870161358d565b92505060406136c1868287016135c3565b9150509250925092565b6000602082840312156136e1576136e061356c565b5b60006136ef848285016135c3565b91505092915050565b600060ff82169050919050565b61370e816136f8565b82525050565b60006020820190506137296000830184613705565b92915050565b61373881613618565b811461374357600080fd5b50565b6000813590506137558161372f565b92915050565b600080604083850312156137725761377161356c565b5b60006137808582860161358d565b925050602061379185828601613746565b9150509250929050565b6000602082840312156137b1576137b061356c565b5b60006137bf8482850161358d565b91505092915050565b6000602082840312156137de576137dd61356c565b5b60006137ec84828501613746565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261381a576138196137f5565b5b8235905067ffffffffffffffff811115613837576138366137fa565b5b602083019150836020820283011115613853576138526137ff565b5b9250929050565b6000806000604084860312156138735761387261356c565b5b600084013567ffffffffffffffff81111561389157613890613571565b5b61389d86828701613804565b935093505060206138b086828701613746565b9150509250925092565b600080600080600060a086880312156138d6576138d561356c565b5b60006138e4888289016135c3565b95505060206138f5888289016135c3565b9450506040613906888289016135c3565b9350506060613917888289016135c3565b9250506080613928888289016135c3565b9150509295509295909350565b6000806040838503121561394c5761394b61356c565b5b600061395a8582860161358d565b925050602061396b8582860161358d565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156139fb578086048111156139d7576139d6613975565b5b60018516156139e65780820291505b80810290506139f4856139a4565b94506139bb565b94509492505050565b600082613a145760019050613ad0565b81613a225760009050613ad0565b8160018114613a385760028114613a4257613a71565b6001915050613ad0565b60ff841115613a5457613a53613975565b5b8360020a915084821115613a6b57613a6a613975565b5b50613ad0565b5060208310610133831016604e8410600b8410161715613aa65782820a905083811115613aa157613aa0613975565b5b613ad0565b613ab384848460016139b1565b92509050818404811115613aca57613ac9613975565b5b81810290505b9392505050565b6000613ae2826135a2565b9150613aed836136f8565b9250613b1a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613a04565b905092915050565b6000613b2d826135a2565b9150613b38836135a2565b9250828202613b46816135a2565b91508282048414831517613b5d57613b5c613975565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613b9a6020836134c5565b9150613ba582613b64565b602082019050919050565b60006020820190508181036000830152613bc981613b8d565b9050919050565b7f416c72656164794c61756e636865640000000000000000000000000000000000600082015250565b6000613c06600f836134c5565b9150613c1182613bd0565b602082019050919050565b60006020820190508181036000830152613c3581613bf9565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613c76826135a2565b9150613c81836135a2565b925082613c9157613c90613c3c565b5b828204905092915050565b7f5472616e73666572203e20616c6c6f77616e6365000000000000000000000000600082015250565b6000613cd26014836134c5565b9150613cdd82613c9c565b602082019050919050565b60006020820190508181036000830152613d0181613cc5565b9050919050565b6000613d13826135a2565b9150613d1e836135a2565b9250828203905081811115613d3657613d35613975565b5b92915050565b7f6d696e2031250000000000000000000000000000000000000000000000000000600082015250565b6000613d726006836134c5565b9150613d7d82613d3c565b602082019050919050565b60006020820190508181036000830152613da181613d65565b9050919050565b7f6d61782031303025000000000000000000000000000000000000000000000000600082015250565b6000613dde6008836134c5565b9150613de982613da8565b602082019050919050565b60006020820190508181036000830152613e0d81613dd1565b9050919050565b6000613e1f826135a2565b9150613e2a836135a2565b9250828201905080821115613e4257613e41613975565b5b92915050565b7f63616e2774206368616e67652070616e63616b65000000000000000000000000600082015250565b6000613e7e6014836134c5565b9150613e8982613e48565b602082019050919050565b60006020820190508181036000830152613ead81613e71565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000613eee826135a2565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613f2057613f1f613975565b5b600182019050919050565b7f3c3020616c6c6f77616e63650000000000000000000000000000000000000000600082015250565b6000613f61600c836134c5565b9150613f6c82613f2b565b602082019050919050565b60006020820190508181036000830152613f9081613f54565b9050919050565b7f5461782065786365656473206d61785461780000000000000000000000000000600082015250565b6000613fcd6012836134c5565b9150613fd882613f97565b602082019050919050565b60006020820190508181036000830152613ffc81613fc0565b9050919050565b7f546178657320646f6e27742061646420757020746f2064656e6f6d696e61746f60008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b600061405f6021836134c5565b915061406a82614003565b604082019050919050565b6000602082019050818103600083015261408e81614052565b9050919050565b60006080820190506140aa600083018761364e565b6140b7602083018661364e565b6140c4604083018561364e565b6140d1606083018461364e565b95945050505050565b7f63616e277420496e636c7564652074686520636f6e7472616374000000000000600082015250565b6000614110601a836134c5565b915061411b826140da565b602082019050919050565b6000602082019050818103600083015261413f81614103565b9050919050565b600060408201905061415b6000830185613490565b6141686020830184613624565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006141cb6026836134c5565b91506141d68261416f565b604082019050919050565b600060208201905081810360008301526141fa816141be565b9050919050565b7f417070726f76652066726f6d207a65726f000000000000000000000000000000600082015250565b60006142376011836134c5565b915061424282614201565b602082019050919050565b600060208201905081810360008301526142668161422a565b9050919050565b7f417070726f766520746f207a65726f0000000000000000000000000000000000600082015250565b60006142a3600f836134c5565b91506142ae8261426d565b602082019050919050565b600060208201905081810360008301526142d281614296565b9050919050565b7f5472616e736665722066726f6d207a65726f0000000000000000000000000000600082015250565b600061430f6012836134c5565b915061431a826142d9565b602082019050919050565b6000602082019050818103600083015261433e81614302565b9050919050565b7f5472616e7366657220746f207a65726f00000000000000000000000000000000600082015250565b600061437b6010836134c5565b915061438682614345565b602082019050919050565b600060208201905081810360008301526143aa8161436e565b9050919050565b7f74726164696e67206e6f742079657420656e61626c6564000000000000000000600082015250565b60006143e76017836134c5565b91506143f2826143b1565b602082019050919050565b60006020820190508181036000830152614416816143da565b9050919050565b600081905092915050565b50565b600061443860008361441d565b915061444382614428565b600082019050919050565b60006144598261442b565b9150819050919050565b7f5472616e7366657220657863656564732062616c616e63650000000000000000600082015250565b60006144996018836134c5565b91506144a482614463565b602082019050919050565b600060208201905081810360008301526144c88161448c565b9050919050565b7f45786365656473206d6178696d756d2077616c6c657420746f6b656e20616d6f60008201527f756e742e00000000000000000000000000000000000000000000000000000000602082015250565b600061452b6024836134c5565b9150614536826144cf565b604082019050919050565b6000602082019050818103600083015261455a8161451e565b9050919050565b7f426c61636b6c6973746564000000000000000000000000000000000000000000600082015250565b6000614597600b836134c5565b91506145a282614561565b602082019050919050565b600060208201905081810360008301526145c68161458a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008151905061460b81613576565b92915050565b6000602082840312156146275761462661356c565b5b6000614635848285016145fc565b91505092915050565b6000819050919050565b6000819050919050565b600061466d6146686146638461463e565b614648565b6135a2565b9050919050565b61467d81614652565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6146b88161347e565b82525050565b60006146ca83836146af565b60208301905092915050565b6000602082019050919050565b60006146ee82614683565b6146f8818561468e565b93506147038361469f565b8060005b8381101561473457815161471b88826146be565b9750614726836146d6565b925050600181019050614707565b5085935050505092915050565b600060a082019050614756600083018861364e565b6147636020830187614674565b818103604083015261477581866146e3565b90506147846060830185613490565b614791608083018461364e565b969550505050505056fea2646970667358221220975fb248f6465ab8d5d29140a161ba22c3605d75e7965dcb8c36201d8217aad864736f6c63430008110033
Deployed Bytecode Sourcemap
2717:12754:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4014:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13281:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14037:158;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13537:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12842:237;;;;;;;;;;;;;:::i;:::-;;14501:382;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11672:123;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6036:278;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3830:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13453:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14889:202;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12121:127;;;;;;;;;;;;;:::i;:::-;;3330:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11801:179;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3801:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12708:128;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13627:100;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2328:142;;;;;;;;;;;;;:::i;:::-;;3869:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3400:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11986:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13197:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5637:245;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2119:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3983:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13365:82;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15097:334;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13867:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3565:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9802:521;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3714:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3599:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11560:106;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3369:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6320:96;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9544:252;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13085:104;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3435:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3007:35;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2952:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13733:128;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12254:251;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3469:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2476:236;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12511:191;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3049:46;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5888:142;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4014:52;4059:6;4014:52;:::o;13281:78::-;13329:13;13352:5;;;;;;;;;;;;;;;;;13345:12;;13281:78;:::o;14037:158::-;14111:4;14128:37;14137:10;14149:7;14158:6;14128:8;:37::i;:::-;14183:4;14176:11;;14037:158;;;;:::o;13537:84::-;13592:4;3249:2;3310;:13;;;;:::i;:::-;3296:11;:27;;;;:::i;:::-;13599:20;;13537:84;:::o;12842:237::-;2255:10;2244:21;;:7;:5;:7::i;:::-;:21;;;2236:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;12921:1:::1;12904:15;;:18;12896:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;12968:15;12952;:31;;;;13034:4;13029:2;3249;3310;:13;;;;:::i;:::-;3296:11;:27;;;;:::i;:::-;13013:18;;;;:::i;:::-;:25;;;;:::i;:::-;12994:16;:44;;;;13054:17;;;;;;;;;;12842:237::o:0;14501:382::-;14598:4;14615:36;14625:6;14633:9;14644:6;14615:9;:36::i;:::-;14662:21;14686:11;:19;14698:6;14686:19;;;;;;;;;;;;;;;:31;14706:10;14686:31;;;;;;;;;;;;;;;;14662:55;;14756:6;14736:16;:26;;14728:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;14798:55;14807:6;14815:10;14846:6;14827:16;:25;;;;:::i;:::-;14798:8;:55::i;:::-;14871:4;14864:11;;;14501:382;;;;;:::o;11672:123::-;11724:4;11761:9;:26;11779:6;11761:26;;;;;;;;;;;;;;;;3249:2;3310;:13;;;;:::i;:::-;3296:11;:27;;;;:::i;:::-;11747:40;;;;:::i;:::-;11740:47;;11672:123;:::o;6036:278::-;2255:10;2244:21;;:7;:5;:7::i;:::-;:21;;;2236:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;6138:2:::1;6127:7;:13;;6119:32;;;;;;;;;;;;:::i;:::-;;;;;;;;;6181:4;6170:7;:15;;6162:36;;;;;;;;;;;;:::i;:::-;;;;;;;;;6254:4;6244:7;3249:2;3310;:13;;;;:::i;:::-;3296:11;:27;;;;:::i;:::-;6228:23;;;;:::i;:::-;:30;;;;:::i;:::-;6209:16;:49;;;;6274:32;6298:7;6274:32;;;;;;:::i;:::-;;;;;;;;6036:278:::0;:::o;3830:32::-;;;;;;;;;;;;;:::o;13453:78::-;13505:5;3249:2;13513:16;;13453:78;:::o;14889:202::-;14968:4;14985:76;14994:10;15006:7;15050:10;15015:11;:23;15027:10;15015:23;;;;;;;;;;;;;;;:32;15039:7;15015:32;;;;;;;;;;;;;;;;:45;;;;:::i;:::-;14985:8;:76::i;:::-;15079:4;15072:11;;14889:202;;;;:::o;12121:127::-;2255:10;2244:21;;:7;:5;:7::i;:::-;:21;;;2236:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;12179:24:::1;12198:4;12179:18;:24::i;:::-;12219:21;;;;;;;;;;12121:127::o:0;3330:23::-;;;;:::o;11801:179::-;2255:10;2244:21;;:7;:5;:7::i;:::-;:21;;;2236:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;11882:12:::1;;;;;;;;;;;11877:17;;:3;:17;;::::0;11869:49:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;11940:3;11929:5;:10;11935:3;11929:10;;;;;;;;;;;;;;;;:14;;;;;;;;;;;;;;;;;;11959:13;11968:3;11959:13;;;;;;:::i;:::-;;;;;;;;11801:179:::0;;:::o;3801:22::-;;;;;;;;;;;;;:::o;12708:128::-;12777:4;12801:18;:27;12820:7;12801:27;;;;;;;;;;;;;;;;;;;;;;;;;12794:34;;12708:128;;;:::o;13627:100::-;13693:4;13707:9;:18;13717:7;13707:18;;;;;;;;;;;;;;;;13700:25;;13627:100;;;:::o;2328:142::-;2255:10;2244:21;;:7;:5;:7::i;:::-;:21;;;2236:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;2429:1:::1;2392:40;;2413:6;::::0;::::1;;;;;;;;2392:40;;;;;;;;;;;;2460:1;2443:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2328:142::o:0;3869:31::-;;;;;;;;;;;;;:::o;3400:28::-;;;;:::o;11986:129::-;2255:10;2244:21;;:7;:5;:7::i;:::-;:21;;;2236:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;12065:6:::1;12054:10;;:17;;;;;;;;;;;;;;;;;;12087:20;12100:6;12087:20;;;;;;:::i;:::-;;;;;;;;11986:129:::0;:::o;13197:78::-;13249:7;13266;:5;:7::i;:::-;13259:14;;13197:78;:::o;5637:245::-;2255:10;2244:21;;:7;:5;:7::i;:::-;:21;;;2236:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;5740:9:::1;5735:106;5755:9;;:16;;5751:1;:20;5735:106;;;5823:6;5793:13;:27;5807:9;;5817:1;5807:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;5793:27;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;5773:3;;;;:::i;:::-;;;5735:106;;;;5856:18;;;;;;;;;;5637:245:::0;;;:::o;2119:79::-;2157:7;2184:6;;;;;;;;;;;2177:13;;2119:79;:::o;3983:24::-;;;;;;;;;;;;;:::o;13365:82::-;13415:13;13438:7;;;;;;;;;;;;;;;;;13431:14;;13365:82;:::o;15097:334::-;15181:4;15198:21;15222:11;:23;15234:10;15222:23;;;;;;;;;;;;;;;:32;15246:7;15222:32;;;;;;;;;;;;;;;;15198:56;;15293:15;15273:16;:35;;15265:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;15336:65;15345:10;15357:7;15385:15;15366:16;:34;;;;:::i;:::-;15336:8;:65::i;:::-;15419:4;15412:11;;;15097:334;;;;:::o;13867:164::-;13944:4;13961:40;13971:10;13983:9;13994:6;13961:9;:40::i;:::-;14019:4;14012:11;;13867:164;;;;:::o;3565:27::-;;;;:::o;9802:521::-;2255:10;2244:21;;:7;:5;:7::i;:::-;:21;;;2236:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;9915:11:::1;3703:2;3660:4;9927:33;;;;:::i;:::-;9915:45;;9984:6;9979:3;:11;;:25;;;;;9998:6;9992:4;:12;;9979:25;:44;;;;;10017:6;10006:9;:17;;9979:44;9971:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;3660:4;10064:7;:24;10056:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;10143:3;10136:6;:10;;;;10165:4;10157:7;:12;;;;10192:9;10180:11;:21;;;;10223:7;10212:10;:18;;;;10250:8;10241;:17;;;;10274:41;10285:3;10290:4;10296:9;10307:7;10274:41;;;;;;;;;:::i;:::-;;;;;;;;9904:419;9802:521:::0;;;;;:::o;3714:31::-;;;;:::o;3599:24::-;;;;:::o;11560:106::-;11609:4;11632:9;:26;11650:6;11632:26;;;;;;;;;;;;;;;;11625:33;;11560:106;:::o;3369:24::-;;;;:::o;6320:96::-;2255:10;2244:21;;:7;:5;:7::i;:::-;:21;;;2236:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;6403:5:::1;6390:12;;:18;;;;;;;;;;;;;;;;;;6320:96:::0;:::o;9544:252::-;2255:10;2244:21;;:7;:5;:7::i;:::-;:21;;;2236:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;9661:2:::1;9636:23;:27;;9628:36;;;::::0;::::1;;9705:23;9692:12;:36;;;;9744:44;9764:23;9744:44;;;;;;:::i;:::-;;;;;;;;9544:252:::0;:::o;13085:104::-;2255:10;2244:21;;:7;:5;:7::i;:::-;:21;;;2236:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;13173:8:::1;13157:13;;:24;;;;;;;;;;;;;;;;;;13085:104:::0;:::o;3435:27::-;;;;:::o;3007:35::-;;;;;;;;;;;;;;;;;;;;;;:::o;2952:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;13733:128::-;13817:4;13831:11;:19;13843:6;13831:19;;;;;;;;;;;;;;;:28;13851:7;13831:28;;;;;;;;;;;;;;;;13824:35;;13733:128;;;;:::o;12254:251::-;2255:10;2244:21;;:7;:5;:7::i;:::-;:21;;;2236:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;12371:4:::1;12354:22;;:7;:22;;::::0;12346:60:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;12443:7;12417:16;:25;12434:7;12417:25;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;12466:31;12481:7;12489;12466:31;;;;;;;:::i;:::-;;;;;;;;12254:251:::0;;:::o;3469:27::-;;;;:::o;2476:236::-;2255:10;2244:21;;:7;:5;:7::i;:::-;:21;;;2236:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;2577:1:::1;2557:22;;:8;:22;;::::0;2549:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2667:8;2638:38;;2659:6;::::0;::::1;;;;;;;;2638:38;;;;;;;;;;;;2696:8;2687:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2476:236:::0;:::o;12511:191::-;2255:10;2244:21;;:7;:5;:7::i;:::-;:21;;;2236:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;12637:7:::1;12609:18;:27;12628:7;12609:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;12660:34;12678:7;12686;12660:34;;;;;;;:::i;:::-;;;;;;;;12511:191:::0;;:::o;3049:46::-;;;;;;;;;;;;;;;;;;;;;;:::o;5888:142::-;2255:10;2244:21;;:7;:5;:7::i;:::-;:21;;;2236:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;5971:9:::1;5961;;:19;;;;;;;;;;;;;;;;;;5996:26;6012:9;5996:26;;;;;;:::i;:::-;;;;;;;;5888:142:::0;:::o;14201:294::-;14308:1;14291:19;;:5;:19;;;14283:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;14370:1;14351:21;;:7;:21;;;14343:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;14433:6;14403:11;:18;14415:5;14403:18;;;;;;;;;;;;;;;:27;14422:7;14403:27;;;;;;;;;;;;;;;:36;;;;14471:7;14455:32;;14464:5;14455:32;;;14480:6;14455:32;;;;;;:::i;:::-;;;;;;;;14201:294;;;:::o;6422:501::-;6533:1;6515:20;;:6;:20;;;6507:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;6598:1;6577:23;;:9;:23;;;6569:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;6635:16;:24;6652:6;6635:24;;;;;;;;;;;;;;;;;;;;;;;;;:55;;;;6663:16;:27;6680:9;6663:27;;;;;;;;;;;;;;;;;;;;;;;;;6635:55;6632:284;;;6705:43;6722:6;6730:9;6741:6;6705:16;:43::i;:::-;6632:284;;;6804:1;6788:15;;:17;6780:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;6847:39;6862:6;6869:9;6879:6;6847:14;:39::i;:::-;6632:284;6422:501;;;:::o;10329:757::-;4794:4;4764:27;;:34;;;;;;;;;;;;;;;;;;10406:20:::1;10427:9;:24;10445:4;10427:24;;;;;;;;;;;;;;;;10406:45;;10462:13;10476:10;;10462:24;;10497:16;10551:4;10538:12;;10514:9;:23;10524:12;;;;;;;;;;;10514:23;;;;;;;;;;;;;;;;:36;;;;:::i;:::-;:41;;;;:::i;:::-;10497:58;;10579:1;10569:8;:11:::0;10566:22:::1;;10581:7;;;;;10566:22;10601:12;10598:134;;;10640:9;:24;10658:4;10640:24;;;;;;;;;;;;;;;;10628:36;;10598:134;;;10699:11;10683:15;:27;10680:52;;;10725:7;;;;;10680:52;10598:134;10744:14;10759:11;10744:26;;10781:22;10804:21;10781:44;;10836:27;10853:9;10836:16;:27::i;:::-;10874:11;10911:17;10887:21;:41;;;;:::i;:::-;10874:55;;10940:15;10956:6;10940:22;;10987:1;10976:10;:12;10973:106;;;11001:8;11012:9;;;;;;;;;;;:14;;11033:10;11012:36;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11000:48;;;11063:4;11059:8;;10989:90;10973:106;10395:691;;;;;;;4809:1;4851:5:::0;4821:27;;:35;;;;;;;;;;;;;;;;;;10329:757;:::o;9199:339::-;9291:18;9312:9;:17;9322:6;9312:17;;;;;;;;;;;;;;;;9291:38;;9365:6;9348:13;:23;;9340:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;9430:6;9411:9;:17;9421:6;9411:17;;;;;;;;;;;;;;;;:25;;;;;;;:::i;:::-;;;;;;;;9469:6;9447:9;:20;9457:9;9447:20;;;;;;;;;;;;;;;;:28;;;;;;;:::i;:::-;;;;;;;;9513:9;9497:33;;9506:6;9497:33;;;9523:6;9497:33;;;;;;:::i;:::-;;;;;;;;9280:258;9199:339;;;:::o;6935:2076::-;7025:18;7046:9;:17;7056:6;7046:17;;;;;;;;;;;;;;;;7025:38;;7099:6;7082:13;:23;;7074:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;7145:20;7168:18;:26;7187:6;7168:26;;;;;;;;;;;;;;;;;;;;;;;;;:59;;;;7198:18;:29;7217:9;7198:29;;;;;;;;;;;;;;;;;;;;;;;;;7168:59;7145:82;;7242:5;:13;7248:6;7242:13;;;;;;;;;;;;;;;;;;;;;;;;;:46;;;;;7273:15;7272:16;7242:46;7238:300;;;7305:32;7340:20;7350:9;7340;:20::i;:::-;7305:55;;7438:16;;7428:6;7401:24;:33;;;;:::i;:::-;:53;;7375:151;;;;;;;;;;;;:::i;:::-;;;;;;;;;7290:248;7238:300;7550:10;7561:5;:13;7567:6;7561:13;;;;;;;;;;;;;;;;;;;;;;;;;7550:24;;7585:11;7597:5;:16;7603:9;7597:16;;;;;;;;;;;;;;;;;;;;;;;;;7585:28;;7624:8;7646:6;7643:918;;;7677:13;:21;7691:6;7677:21;;;;;;;;;;;;;;;;;;;;;;;;;7676:22;7668:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;7728:17;7764:4;7755:8;;7748:6;:15;;;;:::i;:::-;:20;;;;:::i;:::-;7728:40;;7788:13;;;;;;;;;;;:33;;;;;7820:1;7805:12;:16;7788:33;7785:320;;;7866:12;7841:9;:23;7851:12;;;;;;;;;;;7841:23;;;;;;;;;;;;;;;;:37;;;;;;;:::i;:::-;;;;;;;;7920:12;7897:9;:21;4059:6;7897:21;;;;;;;;;;;;;;;;:35;;;;;;;:::i;:::-;;;;;;;;4059:6;7956:46;;7965:12;;;;;;;;;;;7956:46;;;7989:12;7956:46;;;;;;:::i;:::-;;;;;;;;8021:13;8046:12;;;;;;;;;;;8021:38;;8078:4;:9;;;:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7822:283;7785:320;8122:12;;;;;;;;;;;8119:71;;;8154:20;8167:6;8154:12;:20::i;:::-;8119:71;8208:7;;8204:11;;7653:564;7643:918;;;8235:5;8232:329;;;8260:6;;8256:10;;8232:329;;;8297:32;8332:20;8342:9;8332;:20::i;:::-;8297:55;;8430:16;;8420:6;8393:24;:33;;;;:::i;:::-;:53;;8367:151;;;;;;;;;;;;:::i;:::-;;;;;;;;;8538:11;;8534:15;;8282:279;8232:329;7643:918;8585:12;;;;;;;;;;;8577:20;;:6;:20;;;;8576:37;;;;;8602:10;;;;;;;;;;;8601:11;8576:37;:69;;;;;8617:27;;;;;;;;;;;8616:28;8576:69;8573:125;;;8661:25;8680:5;8661:18;:25::i;:::-;8573:125;8710:18;8729:38;8743:6;8751:3;8756:10;;8729:13;:38::i;:::-;8710:57;;8778:16;8802:13;8795:6;:20;;;;:::i;:::-;8778:37;;8847:6;8828:9;:17;8838:6;8828:17;;;;;;;;;;;;;;;;:25;;;;;;;:::i;:::-;;;;;;;;8892:13;8864:9;:24;8882:4;8864:24;;;;;;;;;;;;;;;;:41;;;;;;;:::i;:::-;;;;;;;;8938:11;8916:9;:20;8926:9;8916:20;;;;;;;;;;;;;;;;:33;;;;;;;:::i;:::-;;;;;;;;8981:9;8965:38;;8974:6;8965:38;;;8991:11;8965:38;;;;;;:::i;:::-;;;;;;;;7014:1997;;;;;;;6935:2076;;;:::o;11092:462::-;11150:52;11167:4;11182:10;;;;;;;;;;;11195:6;11150:8;:52::i;:::-;11213:21;11251:1;11237:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11213:40;;11282:4;11264;11269:1;11264:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;11308:10;;;;;;;;;;;:15;;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11298:4;11303:1;11298:7;;;;;;;;:::i;:::-;;;;;;;:27;;;;;;;;;;;11342:10;;;;;;;;;;;:61;;;11418:6;11439:1;11455:4;11482;11502:15;11342:186;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11338:209;11139:415;11092:462;:::o;5538:93::-;5619:4;5595:13;:21;5609:6;5595:21;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;5538:93;:::o;9017:176::-;9102:4;3660;;9153:31;;;;:::i;:::-;9138:10;9134:3;9127:6;:10;;;;:::i;:::-;:21;;;;:::i;:::-;9126:59;;;;:::i;:::-;9119:66;;9017:176;;;;;:::o;7:126:1:-;44:7;84:42;77:5;73:54;62:65;;7:126;;;:::o;139:96::-;176:7;205:24;223:5;205:24;:::i;:::-;194:35;;139:96;;;:::o;241:118::-;328:24;346:5;328:24;:::i;:::-;323:3;316:37;241:118;;:::o;365:222::-;458:4;496:2;485:9;481:18;473:26;;509:71;577:1;566:9;562:17;553:6;509:71;:::i;:::-;365:222;;;;:::o;593:99::-;645:6;679:5;673:12;663:22;;593:99;;;:::o;698:169::-;782:11;816:6;811:3;804:19;856:4;851:3;847:14;832:29;;698:169;;;;:::o;873:246::-;954:1;964:113;978:6;975:1;972:13;964:113;;;1063:1;1058:3;1054:11;1048:18;1044:1;1039:3;1035:11;1028:39;1000:2;997:1;993:10;988:15;;964:113;;;1111:1;1102:6;1097:3;1093:16;1086:27;935:184;873:246;;;:::o;1125:102::-;1166:6;1217:2;1213:7;1208:2;1201:5;1197:14;1193:28;1183:38;;1125:102;;;:::o;1233:377::-;1321:3;1349:39;1382:5;1349:39;:::i;:::-;1404:71;1468:6;1463:3;1404:71;:::i;:::-;1397:78;;1484:65;1542:6;1537:3;1530:4;1523:5;1519:16;1484:65;:::i;:::-;1574:29;1596:6;1574:29;:::i;:::-;1569:3;1565:39;1558:46;;1325:285;1233:377;;;;:::o;1616:313::-;1729:4;1767:2;1756:9;1752:18;1744:26;;1816:9;1810:4;1806:20;1802:1;1791:9;1787:17;1780:47;1844:78;1917:4;1908:6;1844:78;:::i;:::-;1836:86;;1616:313;;;;:::o;2016:117::-;2125:1;2122;2115:12;2139:117;2248:1;2245;2238:12;2262:122;2335:24;2353:5;2335:24;:::i;:::-;2328:5;2325:35;2315:63;;2374:1;2371;2364:12;2315:63;2262:122;:::o;2390:139::-;2436:5;2474:6;2461:20;2452:29;;2490:33;2517:5;2490:33;:::i;:::-;2390:139;;;;:::o;2535:77::-;2572:7;2601:5;2590:16;;2535:77;;;:::o;2618:122::-;2691:24;2709:5;2691:24;:::i;:::-;2684:5;2681:35;2671:63;;2730:1;2727;2720:12;2671:63;2618:122;:::o;2746:139::-;2792:5;2830:6;2817:20;2808:29;;2846:33;2873:5;2846:33;:::i;:::-;2746:139;;;;:::o;2891:474::-;2959:6;2967;3016:2;3004:9;2995:7;2991:23;2987:32;2984:119;;;3022:79;;:::i;:::-;2984:119;3142:1;3167:53;3212:7;3203:6;3192:9;3188:22;3167:53;:::i;:::-;3157:63;;3113:117;3269:2;3295:53;3340:7;3331:6;3320:9;3316:22;3295:53;:::i;:::-;3285:63;;3240:118;2891:474;;;;;:::o;3371:90::-;3405:7;3448:5;3441:13;3434:21;3423:32;;3371:90;;;:::o;3467:109::-;3548:21;3563:5;3548:21;:::i;:::-;3543:3;3536:34;3467:109;;:::o;3582:210::-;3669:4;3707:2;3696:9;3692:18;3684:26;;3720:65;3782:1;3771:9;3767:17;3758:6;3720:65;:::i;:::-;3582:210;;;;:::o;3798:118::-;3885:24;3903:5;3885:24;:::i;:::-;3880:3;3873:37;3798:118;;:::o;3922:222::-;4015:4;4053:2;4042:9;4038:18;4030:26;;4066:71;4134:1;4123:9;4119:17;4110:6;4066:71;:::i;:::-;3922:222;;;;:::o;4150:619::-;4227:6;4235;4243;4292:2;4280:9;4271:7;4267:23;4263:32;4260:119;;;4298:79;;:::i;:::-;4260:119;4418:1;4443:53;4488:7;4479:6;4468:9;4464:22;4443:53;:::i;:::-;4433:63;;4389:117;4545:2;4571:53;4616:7;4607:6;4596:9;4592:22;4571:53;:::i;:::-;4561:63;;4516:118;4673:2;4699:53;4744:7;4735:6;4724:9;4720:22;4699:53;:::i;:::-;4689:63;;4644:118;4150:619;;;;;:::o;4775:329::-;4834:6;4883:2;4871:9;4862:7;4858:23;4854:32;4851:119;;;4889:79;;:::i;:::-;4851:119;5009:1;5034:53;5079:7;5070:6;5059:9;5055:22;5034:53;:::i;:::-;5024:63;;4980:117;4775:329;;;;:::o;5110:86::-;5145:7;5185:4;5178:5;5174:16;5163:27;;5110:86;;;:::o;5202:112::-;5285:22;5301:5;5285:22;:::i;:::-;5280:3;5273:35;5202:112;;:::o;5320:214::-;5409:4;5447:2;5436:9;5432:18;5424:26;;5460:67;5524:1;5513:9;5509:17;5500:6;5460:67;:::i;:::-;5320:214;;;;:::o;5540:116::-;5610:21;5625:5;5610:21;:::i;:::-;5603:5;5600:32;5590:60;;5646:1;5643;5636:12;5590:60;5540:116;:::o;5662:133::-;5705:5;5743:6;5730:20;5721:29;;5759:30;5783:5;5759:30;:::i;:::-;5662:133;;;;:::o;5801:468::-;5866:6;5874;5923:2;5911:9;5902:7;5898:23;5894:32;5891:119;;;5929:79;;:::i;:::-;5891:119;6049:1;6074:53;6119:7;6110:6;6099:9;6095:22;6074:53;:::i;:::-;6064:63;;6020:117;6176:2;6202:50;6244:7;6235:6;6224:9;6220:22;6202:50;:::i;:::-;6192:60;;6147:115;5801:468;;;;;:::o;6275:329::-;6334:6;6383:2;6371:9;6362:7;6358:23;6354:32;6351:119;;;6389:79;;:::i;:::-;6351:119;6509:1;6534:53;6579:7;6570:6;6559:9;6555:22;6534:53;:::i;:::-;6524:63;;6480:117;6275:329;;;;:::o;6610:323::-;6666:6;6715:2;6703:9;6694:7;6690:23;6686:32;6683:119;;;6721:79;;:::i;:::-;6683:119;6841:1;6866:50;6908:7;6899:6;6888:9;6884:22;6866:50;:::i;:::-;6856:60;;6812:114;6610:323;;;;:::o;6939:117::-;7048:1;7045;7038:12;7062:117;7171:1;7168;7161:12;7185:117;7294:1;7291;7284:12;7325:568;7398:8;7408:6;7458:3;7451:4;7443:6;7439:17;7435:27;7425:122;;7466:79;;:::i;:::-;7425:122;7579:6;7566:20;7556:30;;7609:18;7601:6;7598:30;7595:117;;;7631:79;;:::i;:::-;7595:117;7745:4;7737:6;7733:17;7721:29;;7799:3;7791:4;7783:6;7779:17;7769:8;7765:32;7762:41;7759:128;;;7806:79;;:::i;:::-;7759:128;7325:568;;;;;:::o;7899:698::-;7991:6;7999;8007;8056:2;8044:9;8035:7;8031:23;8027:32;8024:119;;;8062:79;;:::i;:::-;8024:119;8210:1;8199:9;8195:17;8182:31;8240:18;8232:6;8229:30;8226:117;;;8262:79;;:::i;:::-;8226:117;8375:80;8447:7;8438:6;8427:9;8423:22;8375:80;:::i;:::-;8357:98;;;;8153:312;8504:2;8530:50;8572:7;8563:6;8552:9;8548:22;8530:50;:::i;:::-;8520:60;;8475:115;7899:698;;;;;:::o;8603:911::-;8698:6;8706;8714;8722;8730;8779:3;8767:9;8758:7;8754:23;8750:33;8747:120;;;8786:79;;:::i;:::-;8747:120;8906:1;8931:53;8976:7;8967:6;8956:9;8952:22;8931:53;:::i;:::-;8921:63;;8877:117;9033:2;9059:53;9104:7;9095:6;9084:9;9080:22;9059:53;:::i;:::-;9049:63;;9004:118;9161:2;9187:53;9232:7;9223:6;9212:9;9208:22;9187:53;:::i;:::-;9177:63;;9132:118;9289:2;9315:53;9360:7;9351:6;9340:9;9336:22;9315:53;:::i;:::-;9305:63;;9260:118;9417:3;9444:53;9489:7;9480:6;9469:9;9465:22;9444:53;:::i;:::-;9434:63;;9388:119;8603:911;;;;;;;;:::o;9520:474::-;9588:6;9596;9645:2;9633:9;9624:7;9620:23;9616:32;9613:119;;;9651:79;;:::i;:::-;9613:119;9771:1;9796:53;9841:7;9832:6;9821:9;9817:22;9796:53;:::i;:::-;9786:63;;9742:117;9898:2;9924:53;9969:7;9960:6;9949:9;9945:22;9924:53;:::i;:::-;9914:63;;9869:118;9520:474;;;;;:::o;10000:180::-;10048:77;10045:1;10038:88;10145:4;10142:1;10135:15;10169:4;10166:1;10159:15;10186:102;10228:8;10275:5;10272:1;10268:13;10247:34;;10186:102;;;:::o;10294:848::-;10355:5;10362:4;10386:6;10377:15;;10410:5;10401:14;;10424:712;10445:1;10435:8;10432:15;10424:712;;;10540:4;10535:3;10531:14;10525:4;10522:24;10519:50;;;10549:18;;:::i;:::-;10519:50;10599:1;10589:8;10585:16;10582:451;;;11014:4;11007:5;11003:16;10994:25;;10582:451;11064:4;11058;11054:15;11046:23;;11094:32;11117:8;11094:32;:::i;:::-;11082:44;;10424:712;;;10294:848;;;;;;;:::o;11148:1073::-;11202:5;11393:8;11383:40;;11414:1;11405:10;;11416:5;;11383:40;11442:4;11432:36;;11459:1;11450:10;;11461:5;;11432:36;11528:4;11576:1;11571:27;;;;11612:1;11607:191;;;;11521:277;;11571:27;11589:1;11580:10;;11591:5;;;11607:191;11652:3;11642:8;11639:17;11636:43;;;11659:18;;:::i;:::-;11636:43;11708:8;11705:1;11701:16;11692:25;;11743:3;11736:5;11733:14;11730:40;;;11750:18;;:::i;:::-;11730:40;11783:5;;;11521:277;;11907:2;11897:8;11894:16;11888:3;11882:4;11879:13;11875:36;11857:2;11847:8;11844:16;11839:2;11833:4;11830:12;11826:35;11810:111;11807:246;;;11963:8;11957:4;11953:19;11944:28;;11998:3;11991:5;11988:14;11985:40;;;12005:18;;:::i;:::-;11985:40;12038:5;;11807:246;12078:42;12116:3;12106:8;12100:4;12097:1;12078:42;:::i;:::-;12063:57;;;;12152:4;12147:3;12143:14;12136:5;12133:25;12130:51;;;12161:18;;:::i;:::-;12130:51;12210:4;12203:5;12199:16;12190:25;;11148:1073;;;;;;:::o;12227:281::-;12285:5;12309:23;12327:4;12309:23;:::i;:::-;12301:31;;12353:25;12369:8;12353:25;:::i;:::-;12341:37;;12397:104;12434:66;12424:8;12418:4;12397:104;:::i;:::-;12388:113;;12227:281;;;;:::o;12514:410::-;12554:7;12577:20;12595:1;12577:20;:::i;:::-;12572:25;;12611:20;12629:1;12611:20;:::i;:::-;12606:25;;12666:1;12663;12659:9;12688:30;12706:11;12688:30;:::i;:::-;12677:41;;12867:1;12858:7;12854:15;12851:1;12848:22;12828:1;12821:9;12801:83;12778:139;;12897:18;;:::i;:::-;12778:139;12562:362;12514:410;;;;:::o;12930:182::-;13070:34;13066:1;13058:6;13054:14;13047:58;12930:182;:::o;13118:366::-;13260:3;13281:67;13345:2;13340:3;13281:67;:::i;:::-;13274:74;;13357:93;13446:3;13357:93;:::i;:::-;13475:2;13470:3;13466:12;13459:19;;13118:366;;;:::o;13490:419::-;13656:4;13694:2;13683:9;13679:18;13671:26;;13743:9;13737:4;13733:20;13729:1;13718:9;13714:17;13707:47;13771:131;13897:4;13771:131;:::i;:::-;13763:139;;13490:419;;;:::o;13915:165::-;14055:17;14051:1;14043:6;14039:14;14032:41;13915:165;:::o;14086:366::-;14228:3;14249:67;14313:2;14308:3;14249:67;:::i;:::-;14242:74;;14325:93;14414:3;14325:93;:::i;:::-;14443:2;14438:3;14434:12;14427:19;;14086:366;;;:::o;14458:419::-;14624:4;14662:2;14651:9;14647:18;14639:26;;14711:9;14705:4;14701:20;14697:1;14686:9;14682:17;14675:47;14739:131;14865:4;14739:131;:::i;:::-;14731:139;;14458:419;;;:::o;14883:180::-;14931:77;14928:1;14921:88;15028:4;15025:1;15018:15;15052:4;15049:1;15042:15;15069:185;15109:1;15126:20;15144:1;15126:20;:::i;:::-;15121:25;;15160:20;15178:1;15160:20;:::i;:::-;15155:25;;15199:1;15189:35;;15204:18;;:::i;:::-;15189:35;15246:1;15243;15239:9;15234:14;;15069:185;;;;:::o;15260:170::-;15400:22;15396:1;15388:6;15384:14;15377:46;15260:170;:::o;15436:366::-;15578:3;15599:67;15663:2;15658:3;15599:67;:::i;:::-;15592:74;;15675:93;15764:3;15675:93;:::i;:::-;15793:2;15788:3;15784:12;15777:19;;15436:366;;;:::o;15808:419::-;15974:4;16012:2;16001:9;15997:18;15989:26;;16061:9;16055:4;16051:20;16047:1;16036:9;16032:17;16025:47;16089:131;16215:4;16089:131;:::i;:::-;16081:139;;15808:419;;;:::o;16233:194::-;16273:4;16293:20;16311:1;16293:20;:::i;:::-;16288:25;;16327:20;16345:1;16327:20;:::i;:::-;16322:25;;16371:1;16368;16364:9;16356:17;;16395:1;16389:4;16386:11;16383:37;;;16400:18;;:::i;:::-;16383:37;16233:194;;;;:::o;16433:156::-;16573:8;16569:1;16561:6;16557:14;16550:32;16433:156;:::o;16595:365::-;16737:3;16758:66;16822:1;16817:3;16758:66;:::i;:::-;16751:73;;16833:93;16922:3;16833:93;:::i;:::-;16951:2;16946:3;16942:12;16935:19;;16595:365;;;:::o;16966:419::-;17132:4;17170:2;17159:9;17155:18;17147:26;;17219:9;17213:4;17209:20;17205:1;17194:9;17190:17;17183:47;17247:131;17373:4;17247:131;:::i;:::-;17239:139;;16966:419;;;:::o;17391:158::-;17531:10;17527:1;17519:6;17515:14;17508:34;17391:158;:::o;17555:365::-;17697:3;17718:66;17782:1;17777:3;17718:66;:::i;:::-;17711:73;;17793:93;17882:3;17793:93;:::i;:::-;17911:2;17906:3;17902:12;17895:19;;17555:365;;;:::o;17926:419::-;18092:4;18130:2;18119:9;18115:18;18107:26;;18179:9;18173:4;18169:20;18165:1;18154:9;18150:17;18143:47;18207:131;18333:4;18207:131;:::i;:::-;18199:139;;17926:419;;;:::o;18351:191::-;18391:3;18410:20;18428:1;18410:20;:::i;:::-;18405:25;;18444:20;18462:1;18444:20;:::i;:::-;18439:25;;18487:1;18484;18480:9;18473:16;;18508:3;18505:1;18502:10;18499:36;;;18515:18;;:::i;:::-;18499:36;18351:191;;;;:::o;18548:170::-;18688:22;18684:1;18676:6;18672:14;18665:46;18548:170;:::o;18724:366::-;18866:3;18887:67;18951:2;18946:3;18887:67;:::i;:::-;18880:74;;18963:93;19052:3;18963:93;:::i;:::-;19081:2;19076:3;19072:12;19065:19;;18724:366;;;:::o;19096:419::-;19262:4;19300:2;19289:9;19285:18;19277:26;;19349:9;19343:4;19339:20;19335:1;19324:9;19320:17;19313:47;19377:131;19503:4;19377:131;:::i;:::-;19369:139;;19096:419;;;:::o;19521:180::-;19569:77;19566:1;19559:88;19666:4;19663:1;19656:15;19690:4;19687:1;19680:15;19707:233;19746:3;19769:24;19787:5;19769:24;:::i;:::-;19760:33;;19815:66;19808:5;19805:77;19802:103;;19885:18;;:::i;:::-;19802:103;19932:1;19925:5;19921:13;19914:20;;19707:233;;;:::o;19946:162::-;20086:14;20082:1;20074:6;20070:14;20063:38;19946:162;:::o;20114:366::-;20256:3;20277:67;20341:2;20336:3;20277:67;:::i;:::-;20270:74;;20353:93;20442:3;20353:93;:::i;:::-;20471:2;20466:3;20462:12;20455:19;;20114:366;;;:::o;20486:419::-;20652:4;20690:2;20679:9;20675:18;20667:26;;20739:9;20733:4;20729:20;20725:1;20714:9;20710:17;20703:47;20767:131;20893:4;20767:131;:::i;:::-;20759:139;;20486:419;;;:::o;20911:168::-;21051:20;21047:1;21039:6;21035:14;21028:44;20911:168;:::o;21085:366::-;21227:3;21248:67;21312:2;21307:3;21248:67;:::i;:::-;21241:74;;21324:93;21413:3;21324:93;:::i;:::-;21442:2;21437:3;21433:12;21426:19;;21085:366;;;:::o;21457:419::-;21623:4;21661:2;21650:9;21646:18;21638:26;;21710:9;21704:4;21700:20;21696:1;21685:9;21681:17;21674:47;21738:131;21864:4;21738:131;:::i;:::-;21730:139;;21457:419;;;:::o;21882:220::-;22022:34;22018:1;22010:6;22006:14;21999:58;22091:3;22086:2;22078:6;22074:15;22067:28;21882:220;:::o;22108:366::-;22250:3;22271:67;22335:2;22330:3;22271:67;:::i;:::-;22264:74;;22347:93;22436:3;22347:93;:::i;:::-;22465:2;22460:3;22456:12;22449:19;;22108:366;;;:::o;22480:419::-;22646:4;22684:2;22673:9;22669:18;22661:26;;22733:9;22727:4;22723:20;22719:1;22708:9;22704:17;22697:47;22761:131;22887:4;22761:131;:::i;:::-;22753:139;;22480:419;;;:::o;22905:553::-;23082:4;23120:3;23109:9;23105:19;23097:27;;23134:71;23202:1;23191:9;23187:17;23178:6;23134:71;:::i;:::-;23215:72;23283:2;23272:9;23268:18;23259:6;23215:72;:::i;:::-;23297;23365:2;23354:9;23350:18;23341:6;23297:72;:::i;:::-;23379;23447:2;23436:9;23432:18;23423:6;23379:72;:::i;:::-;22905:553;;;;;;;:::o;23464:176::-;23604:28;23600:1;23592:6;23588:14;23581:52;23464:176;:::o;23646:366::-;23788:3;23809:67;23873:2;23868:3;23809:67;:::i;:::-;23802:74;;23885:93;23974:3;23885:93;:::i;:::-;24003:2;23998:3;23994:12;23987:19;;23646:366;;;:::o;24018:419::-;24184:4;24222:2;24211:9;24207:18;24199:26;;24271:9;24265:4;24261:20;24257:1;24246:9;24242:17;24235:47;24299:131;24425:4;24299:131;:::i;:::-;24291:139;;24018:419;;;:::o;24443:320::-;24558:4;24596:2;24585:9;24581:18;24573:26;;24609:71;24677:1;24666:9;24662:17;24653:6;24609:71;:::i;:::-;24690:66;24752:2;24741:9;24737:18;24728:6;24690:66;:::i;:::-;24443:320;;;;;:::o;24769:225::-;24909:34;24905:1;24897:6;24893:14;24886:58;24978:8;24973:2;24965:6;24961:15;24954:33;24769:225;:::o;25000:366::-;25142:3;25163:67;25227:2;25222:3;25163:67;:::i;:::-;25156:74;;25239:93;25328:3;25239:93;:::i;:::-;25357:2;25352:3;25348:12;25341:19;;25000:366;;;:::o;25372:419::-;25538:4;25576:2;25565:9;25561:18;25553:26;;25625:9;25619:4;25615:20;25611:1;25600:9;25596:17;25589:47;25653:131;25779:4;25653:131;:::i;:::-;25645:139;;25372:419;;;:::o;25797:167::-;25937:19;25933:1;25925:6;25921:14;25914:43;25797:167;:::o;25970:366::-;26112:3;26133:67;26197:2;26192:3;26133:67;:::i;:::-;26126:74;;26209:93;26298:3;26209:93;:::i;:::-;26327:2;26322:3;26318:12;26311:19;;25970:366;;;:::o;26342:419::-;26508:4;26546:2;26535:9;26531:18;26523:26;;26595:9;26589:4;26585:20;26581:1;26570:9;26566:17;26559:47;26623:131;26749:4;26623:131;:::i;:::-;26615:139;;26342:419;;;:::o;26767:165::-;26907:17;26903:1;26895:6;26891:14;26884:41;26767:165;:::o;26938:366::-;27080:3;27101:67;27165:2;27160:3;27101:67;:::i;:::-;27094:74;;27177:93;27266:3;27177:93;:::i;:::-;27295:2;27290:3;27286:12;27279:19;;26938:366;;;:::o;27310:419::-;27476:4;27514:2;27503:9;27499:18;27491:26;;27563:9;27557:4;27553:20;27549:1;27538:9;27534:17;27527:47;27591:131;27717:4;27591:131;:::i;:::-;27583:139;;27310:419;;;:::o;27735:168::-;27875:20;27871:1;27863:6;27859:14;27852:44;27735:168;:::o;27909:366::-;28051:3;28072:67;28136:2;28131:3;28072:67;:::i;:::-;28065:74;;28148:93;28237:3;28148:93;:::i;:::-;28266:2;28261:3;28257:12;28250:19;;27909:366;;;:::o;28281:419::-;28447:4;28485:2;28474:9;28470:18;28462:26;;28534:9;28528:4;28524:20;28520:1;28509:9;28505:17;28498:47;28562:131;28688:4;28562:131;:::i;:::-;28554:139;;28281:419;;;:::o;28706:166::-;28846:18;28842:1;28834:6;28830:14;28823:42;28706:166;:::o;28878:366::-;29020:3;29041:67;29105:2;29100:3;29041:67;:::i;:::-;29034:74;;29117:93;29206:3;29117:93;:::i;:::-;29235:2;29230:3;29226:12;29219:19;;28878:366;;;:::o;29250:419::-;29416:4;29454:2;29443:9;29439:18;29431:26;;29503:9;29497:4;29493:20;29489:1;29478:9;29474:17;29467:47;29531:131;29657:4;29531:131;:::i;:::-;29523:139;;29250:419;;;:::o;29675:173::-;29815:25;29811:1;29803:6;29799:14;29792:49;29675:173;:::o;29854:366::-;29996:3;30017:67;30081:2;30076:3;30017:67;:::i;:::-;30010:74;;30093:93;30182:3;30093:93;:::i;:::-;30211:2;30206:3;30202:12;30195:19;;29854:366;;;:::o;30226:419::-;30392:4;30430:2;30419:9;30415:18;30407:26;;30479:9;30473:4;30469:20;30465:1;30454:9;30450:17;30443:47;30507:131;30633:4;30507:131;:::i;:::-;30499:139;;30226:419;;;:::o;30651:147::-;30752:11;30789:3;30774:18;;30651:147;;;;:::o;30804:114::-;;:::o;30924:398::-;31083:3;31104:83;31185:1;31180:3;31104:83;:::i;:::-;31097:90;;31196:93;31285:3;31196:93;:::i;:::-;31314:1;31309:3;31305:11;31298:18;;30924:398;;;:::o;31328:379::-;31512:3;31534:147;31677:3;31534:147;:::i;:::-;31527:154;;31698:3;31691:10;;31328:379;;;:::o;31713:174::-;31853:26;31849:1;31841:6;31837:14;31830:50;31713:174;:::o;31893:366::-;32035:3;32056:67;32120:2;32115:3;32056:67;:::i;:::-;32049:74;;32132:93;32221:3;32132:93;:::i;:::-;32250:2;32245:3;32241:12;32234:19;;31893:366;;;:::o;32265:419::-;32431:4;32469:2;32458:9;32454:18;32446:26;;32518:9;32512:4;32508:20;32504:1;32493:9;32489:17;32482:47;32546:131;32672:4;32546:131;:::i;:::-;32538:139;;32265:419;;;:::o;32690:223::-;32830:34;32826:1;32818:6;32814:14;32807:58;32899:6;32894:2;32886:6;32882:15;32875:31;32690:223;:::o;32919:366::-;33061:3;33082:67;33146:2;33141:3;33082:67;:::i;:::-;33075:74;;33158:93;33247:3;33158:93;:::i;:::-;33276:2;33271:3;33267:12;33260:19;;32919:366;;;:::o;33291:419::-;33457:4;33495:2;33484:9;33480:18;33472:26;;33544:9;33538:4;33534:20;33530:1;33519:9;33515:17;33508:47;33572:131;33698:4;33572:131;:::i;:::-;33564:139;;33291:419;;;:::o;33716:161::-;33856:13;33852:1;33844:6;33840:14;33833:37;33716:161;:::o;33883:366::-;34025:3;34046:67;34110:2;34105:3;34046:67;:::i;:::-;34039:74;;34122:93;34211:3;34122:93;:::i;:::-;34240:2;34235:3;34231:12;34224:19;;33883:366;;;:::o;34255:419::-;34421:4;34459:2;34448:9;34444:18;34436:26;;34508:9;34502:4;34498:20;34494:1;34483:9;34479:17;34472:47;34536:131;34662:4;34536:131;:::i;:::-;34528:139;;34255:419;;;:::o;34680:180::-;34728:77;34725:1;34718:88;34825:4;34822:1;34815:15;34849:4;34846:1;34839:15;34866:143;34923:5;34954:6;34948:13;34939:22;;34970:33;34997:5;34970:33;:::i;:::-;34866:143;;;;:::o;35015:351::-;35085:6;35134:2;35122:9;35113:7;35109:23;35105:32;35102:119;;;35140:79;;:::i;:::-;35102:119;35260:1;35285:64;35341:7;35332:6;35321:9;35317:22;35285:64;:::i;:::-;35275:74;;35231:128;35015:351;;;;:::o;35372:85::-;35417:7;35446:5;35435:16;;35372:85;;;:::o;35463:60::-;35491:3;35512:5;35505:12;;35463:60;;;:::o;35529:158::-;35587:9;35620:61;35638:42;35647:32;35673:5;35647:32;:::i;:::-;35638:42;:::i;:::-;35620:61;:::i;:::-;35607:74;;35529:158;;;:::o;35693:147::-;35788:45;35827:5;35788:45;:::i;:::-;35783:3;35776:58;35693:147;;:::o;35846:114::-;35913:6;35947:5;35941:12;35931:22;;35846:114;;;:::o;35966:184::-;36065:11;36099:6;36094:3;36087:19;36139:4;36134:3;36130:14;36115:29;;35966:184;;;;:::o;36156:132::-;36223:4;36246:3;36238:11;;36276:4;36271:3;36267:14;36259:22;;36156:132;;;:::o;36294:108::-;36371:24;36389:5;36371:24;:::i;:::-;36366:3;36359:37;36294:108;;:::o;36408:179::-;36477:10;36498:46;36540:3;36532:6;36498:46;:::i;:::-;36576:4;36571:3;36567:14;36553:28;;36408:179;;;;:::o;36593:113::-;36663:4;36695;36690:3;36686:14;36678:22;;36593:113;;;:::o;36742:732::-;36861:3;36890:54;36938:5;36890:54;:::i;:::-;36960:86;37039:6;37034:3;36960:86;:::i;:::-;36953:93;;37070:56;37120:5;37070:56;:::i;:::-;37149:7;37180:1;37165:284;37190:6;37187:1;37184:13;37165:284;;;37266:6;37260:13;37293:63;37352:3;37337:13;37293:63;:::i;:::-;37286:70;;37379:60;37432:6;37379:60;:::i;:::-;37369:70;;37225:224;37212:1;37209;37205:9;37200:14;;37165:284;;;37169:14;37465:3;37458:10;;36866:608;;;36742:732;;;;:::o;37480:831::-;37743:4;37781:3;37770:9;37766:19;37758:27;;37795:71;37863:1;37852:9;37848:17;37839:6;37795:71;:::i;:::-;37876:80;37952:2;37941:9;37937:18;37928:6;37876:80;:::i;:::-;38003:9;37997:4;37993:20;37988:2;37977:9;37973:18;37966:48;38031:108;38134:4;38125:6;38031:108;:::i;:::-;38023:116;;38149:72;38217:2;38206:9;38202:18;38193:6;38149:72;:::i;:::-;38231:73;38299:3;38288:9;38284:19;38275:6;38231:73;:::i;:::-;37480:831;;;;;;;;:::o
Swarm Source
ipfs://975fb248f6465ab8d5d29140a161ba22c3605d75e7965dcb8c36201d8217aad8
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.