Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 480 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Approve | 21291496 | 40 hrs ago | IN | 0 ETH | 0.00033422 | ||||
Approve | 21291440 | 40 hrs ago | IN | 0 ETH | 0.00030618 | ||||
Transfer | 21291439 | 40 hrs ago | IN | 0 ETH | 0.00037662 | ||||
Approve | 21272913 | 4 days ago | IN | 0 ETH | 0.0008941 | ||||
Approve | 21206501 | 13 days ago | IN | 0 ETH | 0.00051107 | ||||
Approve | 21206087 | 13 days ago | IN | 0 ETH | 0.00045677 | ||||
Approve | 21189973 | 15 days ago | IN | 0 ETH | 0.0007961 | ||||
Approve | 21152724 | 21 days ago | IN | 0 ETH | 0.00057385 | ||||
Approve | 21150919 | 21 days ago | IN | 0 ETH | 0.0006877 | ||||
Approve | 21150792 | 21 days ago | IN | 0 ETH | 0.00090781 | ||||
Approve | 21150766 | 21 days ago | IN | 0 ETH | 0.00091701 | ||||
Approve | 21148694 | 21 days ago | IN | 0 ETH | 0.00054191 | ||||
Approve | 21140220 | 22 days ago | IN | 0 ETH | 0.00027729 | ||||
Approve | 21122095 | 25 days ago | IN | 0 ETH | 0.00078302 | ||||
Approve | 21114640 | 26 days ago | IN | 0 ETH | 0.00026492 | ||||
Approve | 21102638 | 28 days ago | IN | 0 ETH | 0.00020988 | ||||
Approve | 21085058 | 30 days ago | IN | 0 ETH | 0.00043235 | ||||
Approve | 21079671 | 31 days ago | IN | 0 ETH | 0.0004995 | ||||
Approve | 21070920 | 32 days ago | IN | 0 ETH | 0.00047144 | ||||
Approve | 21040077 | 36 days ago | IN | 0 ETH | 0.00023701 | ||||
Approve | 21035324 | 37 days ago | IN | 0 ETH | 0.0005994 | ||||
Approve | 21013450 | 40 days ago | IN | 0 ETH | 0.00039242 | ||||
Approve | 21011771 | 40 days ago | IN | 0 ETH | 0.00051932 | ||||
Approve | 21004658 | 41 days ago | IN | 0 ETH | 0.00034715 | ||||
Approve | 21004639 | 41 days ago | IN | 0 ETH | 0.00035643 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
19733689 | 219 days ago | 0.00827102 ETH | ||||
19733689 | 219 days ago | 0.00827102 ETH | ||||
19733688 | 219 days ago | 0.08812787 ETH | ||||
19733688 | 219 days ago | 0.08812787 ETH | ||||
19733688 | 219 days ago | 0.11661466 ETH | ||||
19733688 | 219 days ago | 0.11661466 ETH | ||||
19733686 | 219 days ago | 0.05093382 ETH | ||||
19733686 | 219 days ago | 0.05093382 ETH | ||||
19733677 | 219 days ago | 0.04369601 ETH | ||||
19733677 | 219 days ago | 0.04369601 ETH | ||||
19733675 | 219 days ago | 0.0629173 ETH | ||||
19733675 | 219 days ago | 0.0629173 ETH | ||||
19733668 | 219 days ago | 0.12066895 ETH | ||||
19733668 | 219 days ago | 0.12066895 ETH | ||||
19733663 | 219 days ago | 0.12510211 ETH | ||||
19733663 | 219 days ago | 0.12510211 ETH | ||||
19733652 | 219 days ago | 0.04019254 ETH | ||||
19733652 | 219 days ago | 0.04019254 ETH | ||||
19733648 | 219 days ago | 0.06461462 ETH | ||||
19733648 | 219 days ago | 0.06461462 ETH | ||||
19733647 | 219 days ago | 0.02417914 ETH | ||||
19733647 | 219 days ago | 0.02417914 ETH | ||||
19733645 | 219 days ago | 0.04249543 ETH | ||||
19733645 | 219 days ago | 0.04249543 ETH | ||||
19733644 | 219 days ago | 0.04540898 ETH |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
BOOD
Compiler Version
v0.8.25+commit.b61c2a91
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-04-25 */ // SPDX-License-Identifier: MIT /* Dogecoin was introduced on December 6, 2013 - 0x2013126 Dogecoin (/ˈdoʊ(d)ʒkɔɪn/ DOHJ-koyn or DOHZH-koyn, Abbreviation: DOGE; sign: Ð) is a cryptocurrency created by software engineers Billy Markus and Jackson Palmer, who decided to create a payment system as a joke, making fun of the wild speculation in cryptocurrencies at the time. It is considered both the first "meme coin", and more specifically the first "dog coin". Despite its satirical nature, some consider it a legitimate investment prospect. Dogecoin features the face of the Shiba Inu dog from the "doge" meme as its logo and namesake. It was introduced on December 6, 2013, and quickly developed its own online community, reaching a peak market capitalization of over US$85 billion on May 5, 2021. As of 2021, it is the sleeve sponsor of Watford Football Club. * Twitter: https://twitter.com/RattyERC * Telegram: https://t.me/bookofdoge0x2013126 */ pragma solidity 0.8.25; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); } contract BOOD is Context, IERC20, Ownable { using SafeMath for uint256; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private isExcludedFromFee; mapping (address => bool) public marketPair; address payable private _taxWallet; uint256 firstBlock; uint256 private _initialBuyTax=250; uint256 private _midBuyTax=250; uint256 private _initialSellTax=250; uint256 private _midSellTax=250; uint256 private _finalBuyTax=0; uint256 private _finalSellTax=0; uint256 private _midBuyTaxAt=40; uint256 private _reduceBuyTaxAt=40; uint256 private _midSellTaxAt=40; uint256 private _reduceSellTaxAt=40; uint256 private _preventSwapBefore=40; uint256 private _buyCount=0; uint256 private sellCount = 0; uint256 private lastSellBlock = 0; uint8 private constant _decimals = 9; uint256 private constant _tTotal = 2023126000000 * 10**_decimals; string private constant _name = unicode"Book of Ðoge"; string private constant _symbol = unicode"BOOD"; uint256 public _maxTxAmount = (_tTotal * 15) / 1000; uint256 public _maxWalletSize = (_tTotal * 15) / 1000; uint256 public _taxSwapThreshold= (_tTotal * 5) / 10000; uint256 public _maxTaxSwap= (_tTotal * 300) / 10000; IUniswapV2Router02 private uniswapV2Router; address public uniswapV2Pair; bool public rescueSwitch = false; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = false; bool public caButton = true; event MaxTxAmountUpdated(uint _maxTxAmount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor () { _taxWallet = payable(0xbD701f34Fa34D0E96b8Cfb0C68c8064CF7787AED); _balances[_msgSender()] = _tTotal; isExcludedFromFee[owner()] = true; isExcludedFromFee[address(this)] = true; isExcludedFromFee[address(uniswapV2Pair)] = true; isExcludedFromFee[_taxWallet] = true; emit Transfer(address(0), _msgSender(), _tTotal); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public pure override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function setMarketPair(address addr) public onlyOwner { marketPair[addr] = true; } function _transfer(address from, address to, uint256 amount) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); uint256 taxAmount=0; if (from != owner() && to != owner()) { taxAmount = amount.mul((_buyCount> _reduceBuyTaxAt)? _finalBuyTax: ((_buyCount> _midBuyTaxAt)? _midBuyTax: _initialBuyTax)).div(1000); if (marketPair[from] && to != address(uniswapV2Router) && ! isExcludedFromFee[to] ) { require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount."); require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize."); if (firstBlock + 1 > block.number) { require(!isContract(to)); } _buyCount++; } if (!marketPair[to] && ! isExcludedFromFee[to]) { require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize."); } if(marketPair[to] && from!= address(this) ){ taxAmount = amount.mul((_buyCount> _reduceSellTaxAt)? _finalSellTax: ((_buyCount> _midSellTaxAt)? _midSellTax: _initialSellTax)).div(1000); } if (!marketPair[from] && !marketPair[to] && from!= address(this) ) { taxAmount = 0; } uint256 contractTokenBalance = balanceOf(address(this)); if (caButton && !inSwap && marketPair[to] && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore) { if (block.number > lastSellBlock) { sellCount = 0; } require(sellCount <2, "Only 2 CA balance sell"); swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap))); uint256 contractETHBalance = address(this).balance; if(contractETHBalance > 0) { sendETHToFee(address(this).balance); } sellCount++; lastSellBlock = block.number; } else if(!inSwap && marketPair[to] && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore) { swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap))); uint256 contractETHBalance = address(this).balance; if(contractETHBalance > 0) { sendETHToFee(address(this).balance); } } } if(taxAmount>0){ _balances[address(this)]=_balances[address(this)].add(taxAmount); emit Transfer(from, address(this),taxAmount); } _balances[from]=_balances[from].sub(amount); _balances[to]=_balances[to].add(amount.sub(taxAmount)); emit Transfer(from, to, amount.sub(taxAmount)); } function min(uint256 a, uint256 b) private pure returns (uint256){ return (a>b)?b:a; } function isContract(address account) private view returns (bool) { uint256 size; assembly { size := extcodesize(account) } return size > 0; } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function enablestatusSAVE(bool _status) external onlyOwner { rescueSwitch = _status; } function exemptyourADDRESS(address addr, bool exempt) external onlyOwner { isExcludedFromFee[addr] = exempt; } function buttonStatus(bool _status) external onlyOwner { caButton = _status; } function saveyourETH() public { require(rescueSwitch || tradingOpen); payable(_taxWallet).transfer(address(this).balance); } function saveyourTOKEN(address _tokenAddr, uint _amount) public { require(rescueSwitch || tradingOpen); IERC20(_tokenAddr).transfer(_taxWallet, _amount); } function manualSELL() external { require(_msgSender()==_taxWallet); uint256 tokenBalance=balanceOf(address(this)); if(tokenBalance>0){ swapTokensForEth(tokenBalance); } uint256 ethBalance=address(this).balance; if(ethBalance>0){ sendETHToFee(ethBalance); } } function removeLIMITS() external onlyOwner{ _maxTxAmount = _tTotal; _maxWalletSize=_tTotal; emit MaxTxAmountUpdated(_tTotal); } function sendETHToFee(uint256 amount) private { _taxWallet.transfer(amount); } function enableTrading() external onlyOwner() { require(!tradingOpen,"trading is already open"); uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); _approve(address(this), address(uniswapV2Router), _tTotal); uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH()); marketPair[address(uniswapV2Pair)] = true; isExcludedFromFee[address(uniswapV2Pair)] = true; uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp); IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max); swapEnabled = true; tradingOpen = true; firstBlock = block.number; } receive() external payable {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"buttonStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"caButton","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enablestatusSAVE","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"exemptyourADDRESS","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSELL","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"marketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"removeLIMITS","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueSwitch","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"saveyourETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddr","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"saveyourTOKEN","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"setMarketPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"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":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405260fa60075560fa60085560fa60095560fa600a555f600b555f600c556028600d556028600e556028600f55602860105560286011555f6012555f6013555f6014556103e8600f6009600a61005891906106ea565b6501d70bb4e1806100699190610734565b6100739190610734565b61007d91906107a2565b6015556103e8600f6009600a61009391906106ea565b6501d70bb4e1806100a49190610734565b6100ae9190610734565b6100b891906107a2565b60165561271060056009600a6100ce91906106ea565b6501d70bb4e1806100df9190610734565b6100e99190610734565b6100f391906107a2565b60175561271061012c6009600a61010a91906106ea565b6501d70bb4e18061011b9190610734565b6101259190610734565b61012f91906107a2565b6018555f601a60146101000a81548160ff0219169083151502179055505f601a60166101000a81548160ff0219169083151502179055505f601a60176101000a81548160ff0219169083151502179055506001601a60186101000a81548160ff0219169083151502179055503480156101a6575f80fd5b505f6101b661054b60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35073bd701f34fa34d0e96b8cfb0c68c8064cf7787aed60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a6102b491906106ea565b6501d70bb4e1806102c59190610734565b60015f6102d661054b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f61032661055260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506104c461054b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a61052091906106ea565b6501d70bb4e1806105319190610734565b60405161053e91906107e1565b60405180910390a36107fa565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156105fb578086048111156105d7576105d6610579565b5b60018516156105e65780820291505b80810290506105f4856105a6565b94506105bb565b94509492505050565b5f8261061357600190506106ce565b81610620575f90506106ce565b816001811461063657600281146106405761066f565b60019150506106ce565b60ff84111561065257610651610579565b5b8360020a91508482111561066957610668610579565b5b506106ce565b5060208310610133831016604e8410600b84101617156106a45782820a90508381111561069f5761069e610579565b5b6106ce565b6106b184848460016105b2565b925090508184048111156106c8576106c7610579565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6106f4826106d5565b91506106ff836106de565b925061072c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484610604565b905092915050565b5f61073e826106d5565b9150610749836106d5565b9250828202610757816106d5565b9150828204841483151761076e5761076d610579565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6107ac826106d5565b91506107b7836106d5565b9250826107c7576107c6610775565b5b828204905092915050565b6107db816106d5565b82525050565b5f6020820190506107f45f8301846107d2565b92915050565b613c53806108075f395ff3fe6080604052600436106101c5575f3560e01c806372ccce24116100f6578063a6611ba811610094578063daacb20611610063578063daacb206146105c6578063dd62ed3e146105ee578063f2fde38b1461062a578063f5b3c3bf14610652576101cc565b8063a6611ba814610520578063a9059cbb14610536578063bf474bed14610572578063c7a4bdf71461059c576101cc565b80638c77ac92116100d05780638c77ac921461047a5780638da5cb5b146104a25780638f9a55c0146104cc57806395d89b41146104f6576101cc565b806372ccce24146104105780637d1db4a51461043a5780638a8c523c14610464576101cc565b8063340ec3151161016357806353bc13dc1161013d57806353bc13dc1461036e57806368bfcd551461039657806370a08231146103be578063715018a6146103fa576101cc565b8063340ec315146103065780634477e54c1461032e57806349bd5a5e14610344576101cc565b8063174120c21161019f578063174120c21461026057806318160ddd1461027657806323b872dd146102a0578063313ce567146102dc576101cc565b806306fdde03146101d0578063095ea7b3146101fa5780630faee56f14610236576101cc565b366101cc57005b5f80fd5b3480156101db575f80fd5b506101e461068e565b6040516101f19190612c0d565b60405180910390f35b348015610205575f80fd5b50610220600480360381019061021b9190612cbe565b6106cb565b60405161022d9190612d16565b60405180910390f35b348015610241575f80fd5b5061024a6106e8565b6040516102579190612d3e565b60405180910390f35b34801561026b575f80fd5b506102746106ee565b005b348015610281575f80fd5b5061028a610785565b6040516102979190612d3e565b60405180910390f35b3480156102ab575f80fd5b506102c660048036038101906102c19190612d57565b6107aa565b6040516102d39190612d16565b60405180910390f35b3480156102e7575f80fd5b506102f061087e565b6040516102fd9190612dc2565b60405180910390f35b348015610311575f80fd5b5061032c60048036038101906103279190612e05565b610886565b005b348015610339575f80fd5b50610342610937565b005b34801561034f575f80fd5b506103586109cd565b6040516103659190612e3f565b60405180910390f35b348015610379575f80fd5b50610394600480360381019061038f9190612e58565b6109f2565b005b3480156103a1575f80fd5b506103bc60048036038101906103b79190612e05565b610ade565b005b3480156103c9575f80fd5b506103e460048036038101906103df9190612e58565b610b8f565b6040516103f19190612d3e565b60405180910390f35b348015610405575f80fd5b5061040e610bd5565b005b34801561041b575f80fd5b50610424610d23565b6040516104319190612d16565b60405180910390f35b348015610445575f80fd5b5061044e610d36565b60405161045b9190612d3e565b60405180910390f35b34801561046f575f80fd5b50610478610d3c565b005b348015610485575f80fd5b506104a0600480360381019061049b9190612e83565b611353565b005b3480156104ad575f80fd5b506104b661143f565b6040516104c39190612e3f565b60405180910390f35b3480156104d7575f80fd5b506104e0611466565b6040516104ed9190612d3e565b60405180910390f35b348015610501575f80fd5b5061050a61146c565b6040516105179190612c0d565b60405180910390f35b34801561052b575f80fd5b506105346114a9565b005b348015610541575f80fd5b5061055c60048036038101906105579190612cbe565b6115de565b6040516105699190612d16565b60405180910390f35b34801561057d575f80fd5b506105866115fb565b6040516105939190612d3e565b60405180910390f35b3480156105a7575f80fd5b506105b0611601565b6040516105bd9190612d16565b60405180910390f35b3480156105d1575f80fd5b506105ec60048036038101906105e79190612cbe565b611614565b005b3480156105f9575f80fd5b50610614600480360381019061060f9190612ec1565b6116e4565b6040516106219190612d3e565b60405180910390f35b348015610635575f80fd5b50610650600480360381019061064b9190612e58565b611766565b005b34801561065d575f80fd5b5061067860048036038101906106739190612e58565b611923565b6040516106859190612d16565b60405180910390f35b60606040518060400160405280600d81526020017f426f6f6b206f6620c3906f676500000000000000000000000000000000000000815250905090565b5f6106de6106d7611940565b8484611947565b6001905092915050565b60185481565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661072e611940565b73ffffffffffffffffffffffffffffffffffffffff161461074d575f80fd5b5f61075730610b8f565b90505f81111561076b5761076a81611b0a565b5b5f4790505f8111156107815761078081611d75565b5b5050565b5f6009600a610794919061305b565b6501d70bb4e1806107a591906130a5565b905090565b5f6107b6848484611ddd565b610873846107c2611940565b61086e85604051806060016040528060288152602001613bf66028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610825611940565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461294b9092919063ffffffff16565b611947565b600190509392505050565b5f6009905090565b61088e611940565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461091a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091190613130565b60405180910390fd5b80601a60146101000a81548160ff02191690831515021790555050565b601a60149054906101000a900460ff168061095e5750601a60159054906101000a900460ff165b610966575f80fd5b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f193505050501580156109ca573d5f803e3d5ffd5b50565b601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6109fa611940565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7d90613130565b60405180910390fd5b600160045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b610ae6611940565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6990613130565b60405180910390fd5b80601a60186101000a81548160ff02191690831515021790555050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610bdd611940565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6090613130565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b601a60189054906101000a900460ff1681565b60155481565b610d44611940565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc790613130565b60405180910390fd5b601a60159054906101000a900460ff1615610e20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1790613198565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60195f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610ebe3060195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610ea8919061305b565b6501d70bb4e180610eb991906130a5565b611947565b60195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f28573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f4c91906131ca565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fd2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ff691906131ca565b6040518363ffffffff1660e01b81526004016110139291906131f5565b6020604051808303815f875af115801561102f573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061105391906131ca565b601a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160045f601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555060195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306111c630610b8f565b5f806111d061143f565b426040518863ffffffff1660e01b81526004016111f29695949392919061325e565b60606040518083038185885af115801561120e573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061123391906132d1565b505050601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016112d3929190613321565b6020604051808303815f875af11580156112ef573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611313919061335c565b506001601a60176101000a81548160ff0219169083151502179055506001601a60156101000a81548160ff02191690831515021790555043600681905550565b61135b611940565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113de90613130565b60405180910390fd5b8060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60165481565b60606040518060400160405280600481526020017f424f4f4400000000000000000000000000000000000000000000000000000000815250905090565b6114b1611940565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461153d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153490613130565b60405180910390fd5b6009600a61154b919061305b565b6501d70bb4e18061155c91906130a5565b6015819055506009600a611570919061305b565b6501d70bb4e18061158191906130a5565b6016819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a6115b6919061305b565b6501d70bb4e1806115c791906130a5565b6040516115d49190612d3e565b60405180910390a1565b5f6115f16115ea611940565b8484611ddd565b6001905092915050565b60175481565b601a60149054906101000a900460ff1681565b601a60149054906101000a900460ff168061163b5750601a60159054906101000a900460ff165b611643575f80fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b815260040161169f9291906133d9565b6020604051808303815f875af11580156116bb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116df919061335c565b505050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61176e611940565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f190613130565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611868576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185f90613470565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6004602052805f5260405f205f915054906101000a900460ff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036119b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ac906134fe565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1a9061358c565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611afd9190612d3e565b60405180910390a3505050565b6001601a60166101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611b4157611b406135aa565b5b604051908082528060200260200182016040528015611b6f5781602001602082028036833780820191505090505b50905030815f81518110611b8657611b856135d7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c2a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c4e91906131ca565b81600181518110611c6257611c616135d7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611cc83060195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611947565b60195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611d2a9594939291906136bb565b5f604051808303815f87803b158015611d41575f80fd5b505af1158015611d53573d5f803e3d5ffd5b50505050505f601a60166101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611dd9573d5f803e3d5ffd5b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611e4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4290613783565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611eb9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb090613811565b60405180910390fd5b5f8111611efb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ef29061389f565b60405180910390fd5b5f611f0461143f565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611f725750611f4261143f565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561269b57611fc86103e8611fba600e5460125411611fa757600d5460125411611f9e57600754611fa2565b6008545b611fab565b600b545b856129ad90919063ffffffff16565b612a2490919063ffffffff16565b905060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16801561206d575060195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156120c0575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156121a35760155482111561210a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210190613907565b60405180910390fd5b6016548261211785610b8f565b6121219190613925565b1115612162576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612159906139a2565b60405180910390fd5b4360016006546121729190613925565b111561218b5761218183612a6d565b1561218a575f80fd5b5b60125f81548092919061219d906139c0565b91905055505b60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015612241575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561229f576016548261225385610b8f565b61225d9190613925565b111561229e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612295906139a2565b60405180910390fd5b5b60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16801561232157503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561237a576123776103e86123696010546012541161235657600f546012541161234d57600954612351565b600a545b61235a565b600c545b856129ad90919063ffffffff16565b612a2490919063ffffffff16565b90505b60045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015612418575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561245057503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15612459575f90505b5f61246330610b8f565b9050601a60189054906101000a900460ff16801561248e5750601a60169054906101000a900460ff16155b80156124e0575060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80156124f85750601a60179054906101000a900460ff165b8015612505575060175481115b80156125145750601154601254115b156125c75760145443111561252b575f6013819055505b600260135410612570576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161256790613a51565b60405180910390fd5b61258d6125888461258384601854612a7e565b612a7e565b611b0a565b5f4790505f8111156125a3576125a247611d75565b5b60135f8154809291906125b5906139c0565b91905055504360148190555050612699565b601a60169054906101000a900460ff1615801561262a575060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80156126425750601a60179054906101000a900460ff165b801561264f575060175481115b801561265e5750601154601254115b156126985761268061267b8461267684601854612a7e565b612a7e565b611b0a565b5f4790505f8111156126965761269547611d75565b5b505b5b505b5f81111561279a576126f38160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612a9690919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516127919190612d3e565b60405180910390a35b6127ea8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612af390919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061288d6128418284612af390919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612a9690919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6129308486612af390919063ffffffff16565b60405161293d9190612d3e565b60405180910390a350505050565b5f838311158290612992576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129899190612c0d565b60405180910390fd5b505f83856129a09190613a6f565b9050809150509392505050565b5f8083036129bd575f9050612a1e565b5f82846129ca91906130a5565b90508284826129d99190613acf565b14612a19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a1090613b6f565b60405180910390fd5b809150505b92915050565b5f612a6583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612b3c565b905092915050565b5f80823b90505f8111915050919050565b5f818311612a8c5782612a8e565b815b905092915050565b5f808284612aa49190613925565b905083811015612ae9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ae090613bd7565b60405180910390fd5b8091505092915050565b5f612b3483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061294b565b905092915050565b5f8083118290612b82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b799190612c0d565b60405180910390fd5b505f8385612b909190613acf565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f612bdf82612b9d565b612be98185612ba7565b9350612bf9818560208601612bb7565b612c0281612bc5565b840191505092915050565b5f6020820190508181035f830152612c258184612bd5565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612c5a82612c31565b9050919050565b612c6a81612c50565b8114612c74575f80fd5b50565b5f81359050612c8581612c61565b92915050565b5f819050919050565b612c9d81612c8b565b8114612ca7575f80fd5b50565b5f81359050612cb881612c94565b92915050565b5f8060408385031215612cd457612cd3612c2d565b5b5f612ce185828601612c77565b9250506020612cf285828601612caa565b9150509250929050565b5f8115159050919050565b612d1081612cfc565b82525050565b5f602082019050612d295f830184612d07565b92915050565b612d3881612c8b565b82525050565b5f602082019050612d515f830184612d2f565b92915050565b5f805f60608486031215612d6e57612d6d612c2d565b5b5f612d7b86828701612c77565b9350506020612d8c86828701612c77565b9250506040612d9d86828701612caa565b9150509250925092565b5f60ff82169050919050565b612dbc81612da7565b82525050565b5f602082019050612dd55f830184612db3565b92915050565b612de481612cfc565b8114612dee575f80fd5b50565b5f81359050612dff81612ddb565b92915050565b5f60208284031215612e1a57612e19612c2d565b5b5f612e2784828501612df1565b91505092915050565b612e3981612c50565b82525050565b5f602082019050612e525f830184612e30565b92915050565b5f60208284031215612e6d57612e6c612c2d565b5b5f612e7a84828501612c77565b91505092915050565b5f8060408385031215612e9957612e98612c2d565b5b5f612ea685828601612c77565b9250506020612eb785828601612df1565b9150509250929050565b5f8060408385031215612ed757612ed6612c2d565b5b5f612ee485828601612c77565b9250506020612ef585828601612c77565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612f8157808604811115612f5d57612f5c612eff565b5b6001851615612f6c5780820291505b8081029050612f7a85612f2c565b9450612f41565b94509492505050565b5f82612f995760019050613054565b81612fa6575f9050613054565b8160018114612fbc5760028114612fc657612ff5565b6001915050613054565b60ff841115612fd857612fd7612eff565b5b8360020a915084821115612fef57612fee612eff565b5b50613054565b5060208310610133831016604e8410600b841016171561302a5782820a90508381111561302557613024612eff565b5b613054565b6130378484846001612f38565b9250905081840481111561304e5761304d612eff565b5b81810290505b9392505050565b5f61306582612c8b565b915061307083612da7565b925061309d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612f8a565b905092915050565b5f6130af82612c8b565b91506130ba83612c8b565b92508282026130c881612c8b565b915082820484148315176130df576130de612eff565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61311a602083612ba7565b9150613125826130e6565b602082019050919050565b5f6020820190508181035f8301526131478161310e565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f613182601783612ba7565b915061318d8261314e565b602082019050919050565b5f6020820190508181035f8301526131af81613176565b9050919050565b5f815190506131c481612c61565b92915050565b5f602082840312156131df576131de612c2d565b5b5f6131ec848285016131b6565b91505092915050565b5f6040820190506132085f830185612e30565b6132156020830184612e30565b9392505050565b5f819050919050565b5f819050919050565b5f61324861324361323e8461321c565b613225565b612c8b565b9050919050565b6132588161322e565b82525050565b5f60c0820190506132715f830189612e30565b61327e6020830188612d2f565b61328b604083018761324f565b613298606083018661324f565b6132a56080830185612e30565b6132b260a0830184612d2f565b979650505050505050565b5f815190506132cb81612c94565b92915050565b5f805f606084860312156132e8576132e7612c2d565b5b5f6132f5868287016132bd565b9350506020613306868287016132bd565b9250506040613317868287016132bd565b9150509250925092565b5f6040820190506133345f830185612e30565b6133416020830184612d2f565b9392505050565b5f8151905061335681612ddb565b92915050565b5f6020828403121561337157613370612c2d565b5b5f61337e84828501613348565b91505092915050565b5f6133a161339c61339784612c31565b613225565b612c31565b9050919050565b5f6133b282613387565b9050919050565b5f6133c3826133a8565b9050919050565b6133d3816133b9565b82525050565b5f6040820190506133ec5f8301856133ca565b6133f96020830184612d2f565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61345a602683612ba7565b915061346582613400565b604082019050919050565b5f6020820190508181035f8301526134878161344e565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6134e8602483612ba7565b91506134f38261348e565b604082019050919050565b5f6020820190508181035f830152613515816134dc565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613576602283612ba7565b91506135818261351c565b604082019050919050565b5f6020820190508181035f8301526135a38161356a565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61363681612c50565b82525050565b5f613647838361362d565b60208301905092915050565b5f602082019050919050565b5f61366982613604565b613673818561360e565b935061367e8361361e565b805f5b838110156136ae578151613695888261363c565b97506136a083613653565b925050600181019050613681565b5085935050505092915050565b5f60a0820190506136ce5f830188612d2f565b6136db602083018761324f565b81810360408301526136ed818661365f565b90506136fc6060830185612e30565b6137096080830184612d2f565b9695505050505050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61376d602583612ba7565b915061377882613713565b604082019050919050565b5f6020820190508181035f83015261379a81613761565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6137fb602383612ba7565b9150613806826137a1565b604082019050919050565b5f6020820190508181035f830152613828816137ef565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f613889602983612ba7565b91506138948261382f565b604082019050919050565b5f6020820190508181035f8301526138b68161387d565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f6138f1601983612ba7565b91506138fc826138bd565b602082019050919050565b5f6020820190508181035f83015261391e816138e5565b9050919050565b5f61392f82612c8b565b915061393a83612c8b565b925082820190508082111561395257613951612eff565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f61398c601a83612ba7565b915061399782613958565b602082019050919050565b5f6020820190508181035f8301526139b981613980565b9050919050565b5f6139ca82612c8b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036139fc576139fb612eff565b5b600182019050919050565b7f4f6e6c7920322043412062616c616e63652073656c6c000000000000000000005f82015250565b5f613a3b601683612ba7565b9150613a4682613a07565b602082019050919050565b5f6020820190508181035f830152613a6881613a2f565b9050919050565b5f613a7982612c8b565b9150613a8483612c8b565b9250828203905081811115613a9c57613a9b612eff565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613ad982612c8b565b9150613ae483612c8b565b925082613af457613af3613aa2565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613b59602183612ba7565b9150613b6482613aff565b604082019050919050565b5f6020820190508181035f830152613b8681613b4d565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613bc1601b83612ba7565b9150613bcc82613b8d565b602082019050919050565b5f6020820190508181035f830152613bee81613bb5565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220dad94b36c1e356e8a1e6dd5f7c5b11e4736dcc0352fdb57c91340631edddc13764736f6c63430008190033
Deployed Bytecode
0x6080604052600436106101c5575f3560e01c806372ccce24116100f6578063a6611ba811610094578063daacb20611610063578063daacb206146105c6578063dd62ed3e146105ee578063f2fde38b1461062a578063f5b3c3bf14610652576101cc565b8063a6611ba814610520578063a9059cbb14610536578063bf474bed14610572578063c7a4bdf71461059c576101cc565b80638c77ac92116100d05780638c77ac921461047a5780638da5cb5b146104a25780638f9a55c0146104cc57806395d89b41146104f6576101cc565b806372ccce24146104105780637d1db4a51461043a5780638a8c523c14610464576101cc565b8063340ec3151161016357806353bc13dc1161013d57806353bc13dc1461036e57806368bfcd551461039657806370a08231146103be578063715018a6146103fa576101cc565b8063340ec315146103065780634477e54c1461032e57806349bd5a5e14610344576101cc565b8063174120c21161019f578063174120c21461026057806318160ddd1461027657806323b872dd146102a0578063313ce567146102dc576101cc565b806306fdde03146101d0578063095ea7b3146101fa5780630faee56f14610236576101cc565b366101cc57005b5f80fd5b3480156101db575f80fd5b506101e461068e565b6040516101f19190612c0d565b60405180910390f35b348015610205575f80fd5b50610220600480360381019061021b9190612cbe565b6106cb565b60405161022d9190612d16565b60405180910390f35b348015610241575f80fd5b5061024a6106e8565b6040516102579190612d3e565b60405180910390f35b34801561026b575f80fd5b506102746106ee565b005b348015610281575f80fd5b5061028a610785565b6040516102979190612d3e565b60405180910390f35b3480156102ab575f80fd5b506102c660048036038101906102c19190612d57565b6107aa565b6040516102d39190612d16565b60405180910390f35b3480156102e7575f80fd5b506102f061087e565b6040516102fd9190612dc2565b60405180910390f35b348015610311575f80fd5b5061032c60048036038101906103279190612e05565b610886565b005b348015610339575f80fd5b50610342610937565b005b34801561034f575f80fd5b506103586109cd565b6040516103659190612e3f565b60405180910390f35b348015610379575f80fd5b50610394600480360381019061038f9190612e58565b6109f2565b005b3480156103a1575f80fd5b506103bc60048036038101906103b79190612e05565b610ade565b005b3480156103c9575f80fd5b506103e460048036038101906103df9190612e58565b610b8f565b6040516103f19190612d3e565b60405180910390f35b348015610405575f80fd5b5061040e610bd5565b005b34801561041b575f80fd5b50610424610d23565b6040516104319190612d16565b60405180910390f35b348015610445575f80fd5b5061044e610d36565b60405161045b9190612d3e565b60405180910390f35b34801561046f575f80fd5b50610478610d3c565b005b348015610485575f80fd5b506104a0600480360381019061049b9190612e83565b611353565b005b3480156104ad575f80fd5b506104b661143f565b6040516104c39190612e3f565b60405180910390f35b3480156104d7575f80fd5b506104e0611466565b6040516104ed9190612d3e565b60405180910390f35b348015610501575f80fd5b5061050a61146c565b6040516105179190612c0d565b60405180910390f35b34801561052b575f80fd5b506105346114a9565b005b348015610541575f80fd5b5061055c60048036038101906105579190612cbe565b6115de565b6040516105699190612d16565b60405180910390f35b34801561057d575f80fd5b506105866115fb565b6040516105939190612d3e565b60405180910390f35b3480156105a7575f80fd5b506105b0611601565b6040516105bd9190612d16565b60405180910390f35b3480156105d1575f80fd5b506105ec60048036038101906105e79190612cbe565b611614565b005b3480156105f9575f80fd5b50610614600480360381019061060f9190612ec1565b6116e4565b6040516106219190612d3e565b60405180910390f35b348015610635575f80fd5b50610650600480360381019061064b9190612e58565b611766565b005b34801561065d575f80fd5b5061067860048036038101906106739190612e58565b611923565b6040516106859190612d16565b60405180910390f35b60606040518060400160405280600d81526020017f426f6f6b206f6620c3906f676500000000000000000000000000000000000000815250905090565b5f6106de6106d7611940565b8484611947565b6001905092915050565b60185481565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661072e611940565b73ffffffffffffffffffffffffffffffffffffffff161461074d575f80fd5b5f61075730610b8f565b90505f81111561076b5761076a81611b0a565b5b5f4790505f8111156107815761078081611d75565b5b5050565b5f6009600a610794919061305b565b6501d70bb4e1806107a591906130a5565b905090565b5f6107b6848484611ddd565b610873846107c2611940565b61086e85604051806060016040528060288152602001613bf66028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610825611940565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461294b9092919063ffffffff16565b611947565b600190509392505050565b5f6009905090565b61088e611940565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461091a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091190613130565b60405180910390fd5b80601a60146101000a81548160ff02191690831515021790555050565b601a60149054906101000a900460ff168061095e5750601a60159054906101000a900460ff165b610966575f80fd5b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f193505050501580156109ca573d5f803e3d5ffd5b50565b601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6109fa611940565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7d90613130565b60405180910390fd5b600160045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b610ae6611940565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6990613130565b60405180910390fd5b80601a60186101000a81548160ff02191690831515021790555050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610bdd611940565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6090613130565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b601a60189054906101000a900460ff1681565b60155481565b610d44611940565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc790613130565b60405180910390fd5b601a60159054906101000a900460ff1615610e20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1790613198565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60195f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610ebe3060195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610ea8919061305b565b6501d70bb4e180610eb991906130a5565b611947565b60195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f28573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f4c91906131ca565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fd2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ff691906131ca565b6040518363ffffffff1660e01b81526004016110139291906131f5565b6020604051808303815f875af115801561102f573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061105391906131ca565b601a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160045f601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555060195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306111c630610b8f565b5f806111d061143f565b426040518863ffffffff1660e01b81526004016111f29695949392919061325e565b60606040518083038185885af115801561120e573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061123391906132d1565b505050601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016112d3929190613321565b6020604051808303815f875af11580156112ef573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611313919061335c565b506001601a60176101000a81548160ff0219169083151502179055506001601a60156101000a81548160ff02191690831515021790555043600681905550565b61135b611940565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113de90613130565b60405180910390fd5b8060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60165481565b60606040518060400160405280600481526020017f424f4f4400000000000000000000000000000000000000000000000000000000815250905090565b6114b1611940565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461153d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153490613130565b60405180910390fd5b6009600a61154b919061305b565b6501d70bb4e18061155c91906130a5565b6015819055506009600a611570919061305b565b6501d70bb4e18061158191906130a5565b6016819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a6115b6919061305b565b6501d70bb4e1806115c791906130a5565b6040516115d49190612d3e565b60405180910390a1565b5f6115f16115ea611940565b8484611ddd565b6001905092915050565b60175481565b601a60149054906101000a900460ff1681565b601a60149054906101000a900460ff168061163b5750601a60159054906101000a900460ff165b611643575f80fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b815260040161169f9291906133d9565b6020604051808303815f875af11580156116bb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116df919061335c565b505050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61176e611940565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f190613130565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611868576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185f90613470565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6004602052805f5260405f205f915054906101000a900460ff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036119b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ac906134fe565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1a9061358c565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611afd9190612d3e565b60405180910390a3505050565b6001601a60166101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611b4157611b406135aa565b5b604051908082528060200260200182016040528015611b6f5781602001602082028036833780820191505090505b50905030815f81518110611b8657611b856135d7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c2a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c4e91906131ca565b81600181518110611c6257611c616135d7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611cc83060195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611947565b60195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611d2a9594939291906136bb565b5f604051808303815f87803b158015611d41575f80fd5b505af1158015611d53573d5f803e3d5ffd5b50505050505f601a60166101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611dd9573d5f803e3d5ffd5b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611e4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4290613783565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611eb9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb090613811565b60405180910390fd5b5f8111611efb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ef29061389f565b60405180910390fd5b5f611f0461143f565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611f725750611f4261143f565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561269b57611fc86103e8611fba600e5460125411611fa757600d5460125411611f9e57600754611fa2565b6008545b611fab565b600b545b856129ad90919063ffffffff16565b612a2490919063ffffffff16565b905060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16801561206d575060195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156120c0575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156121a35760155482111561210a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210190613907565b60405180910390fd5b6016548261211785610b8f565b6121219190613925565b1115612162576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612159906139a2565b60405180910390fd5b4360016006546121729190613925565b111561218b5761218183612a6d565b1561218a575f80fd5b5b60125f81548092919061219d906139c0565b91905055505b60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015612241575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561229f576016548261225385610b8f565b61225d9190613925565b111561229e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612295906139a2565b60405180910390fd5b5b60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16801561232157503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561237a576123776103e86123696010546012541161235657600f546012541161234d57600954612351565b600a545b61235a565b600c545b856129ad90919063ffffffff16565b612a2490919063ffffffff16565b90505b60045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015612418575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561245057503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15612459575f90505b5f61246330610b8f565b9050601a60189054906101000a900460ff16801561248e5750601a60169054906101000a900460ff16155b80156124e0575060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80156124f85750601a60179054906101000a900460ff165b8015612505575060175481115b80156125145750601154601254115b156125c75760145443111561252b575f6013819055505b600260135410612570576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161256790613a51565b60405180910390fd5b61258d6125888461258384601854612a7e565b612a7e565b611b0a565b5f4790505f8111156125a3576125a247611d75565b5b60135f8154809291906125b5906139c0565b91905055504360148190555050612699565b601a60169054906101000a900460ff1615801561262a575060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80156126425750601a60179054906101000a900460ff165b801561264f575060175481115b801561265e5750601154601254115b156126985761268061267b8461267684601854612a7e565b612a7e565b611b0a565b5f4790505f8111156126965761269547611d75565b5b505b5b505b5f81111561279a576126f38160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612a9690919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516127919190612d3e565b60405180910390a35b6127ea8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612af390919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061288d6128418284612af390919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612a9690919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6129308486612af390919063ffffffff16565b60405161293d9190612d3e565b60405180910390a350505050565b5f838311158290612992576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129899190612c0d565b60405180910390fd5b505f83856129a09190613a6f565b9050809150509392505050565b5f8083036129bd575f9050612a1e565b5f82846129ca91906130a5565b90508284826129d99190613acf565b14612a19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a1090613b6f565b60405180910390fd5b809150505b92915050565b5f612a6583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612b3c565b905092915050565b5f80823b90505f8111915050919050565b5f818311612a8c5782612a8e565b815b905092915050565b5f808284612aa49190613925565b905083811015612ae9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ae090613bd7565b60405180910390fd5b8091505092915050565b5f612b3483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061294b565b905092915050565b5f8083118290612b82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b799190612c0d565b60405180910390fd5b505f8385612b909190613acf565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f612bdf82612b9d565b612be98185612ba7565b9350612bf9818560208601612bb7565b612c0281612bc5565b840191505092915050565b5f6020820190508181035f830152612c258184612bd5565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612c5a82612c31565b9050919050565b612c6a81612c50565b8114612c74575f80fd5b50565b5f81359050612c8581612c61565b92915050565b5f819050919050565b612c9d81612c8b565b8114612ca7575f80fd5b50565b5f81359050612cb881612c94565b92915050565b5f8060408385031215612cd457612cd3612c2d565b5b5f612ce185828601612c77565b9250506020612cf285828601612caa565b9150509250929050565b5f8115159050919050565b612d1081612cfc565b82525050565b5f602082019050612d295f830184612d07565b92915050565b612d3881612c8b565b82525050565b5f602082019050612d515f830184612d2f565b92915050565b5f805f60608486031215612d6e57612d6d612c2d565b5b5f612d7b86828701612c77565b9350506020612d8c86828701612c77565b9250506040612d9d86828701612caa565b9150509250925092565b5f60ff82169050919050565b612dbc81612da7565b82525050565b5f602082019050612dd55f830184612db3565b92915050565b612de481612cfc565b8114612dee575f80fd5b50565b5f81359050612dff81612ddb565b92915050565b5f60208284031215612e1a57612e19612c2d565b5b5f612e2784828501612df1565b91505092915050565b612e3981612c50565b82525050565b5f602082019050612e525f830184612e30565b92915050565b5f60208284031215612e6d57612e6c612c2d565b5b5f612e7a84828501612c77565b91505092915050565b5f8060408385031215612e9957612e98612c2d565b5b5f612ea685828601612c77565b9250506020612eb785828601612df1565b9150509250929050565b5f8060408385031215612ed757612ed6612c2d565b5b5f612ee485828601612c77565b9250506020612ef585828601612c77565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612f8157808604811115612f5d57612f5c612eff565b5b6001851615612f6c5780820291505b8081029050612f7a85612f2c565b9450612f41565b94509492505050565b5f82612f995760019050613054565b81612fa6575f9050613054565b8160018114612fbc5760028114612fc657612ff5565b6001915050613054565b60ff841115612fd857612fd7612eff565b5b8360020a915084821115612fef57612fee612eff565b5b50613054565b5060208310610133831016604e8410600b841016171561302a5782820a90508381111561302557613024612eff565b5b613054565b6130378484846001612f38565b9250905081840481111561304e5761304d612eff565b5b81810290505b9392505050565b5f61306582612c8b565b915061307083612da7565b925061309d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612f8a565b905092915050565b5f6130af82612c8b565b91506130ba83612c8b565b92508282026130c881612c8b565b915082820484148315176130df576130de612eff565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61311a602083612ba7565b9150613125826130e6565b602082019050919050565b5f6020820190508181035f8301526131478161310e565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f613182601783612ba7565b915061318d8261314e565b602082019050919050565b5f6020820190508181035f8301526131af81613176565b9050919050565b5f815190506131c481612c61565b92915050565b5f602082840312156131df576131de612c2d565b5b5f6131ec848285016131b6565b91505092915050565b5f6040820190506132085f830185612e30565b6132156020830184612e30565b9392505050565b5f819050919050565b5f819050919050565b5f61324861324361323e8461321c565b613225565b612c8b565b9050919050565b6132588161322e565b82525050565b5f60c0820190506132715f830189612e30565b61327e6020830188612d2f565b61328b604083018761324f565b613298606083018661324f565b6132a56080830185612e30565b6132b260a0830184612d2f565b979650505050505050565b5f815190506132cb81612c94565b92915050565b5f805f606084860312156132e8576132e7612c2d565b5b5f6132f5868287016132bd565b9350506020613306868287016132bd565b9250506040613317868287016132bd565b9150509250925092565b5f6040820190506133345f830185612e30565b6133416020830184612d2f565b9392505050565b5f8151905061335681612ddb565b92915050565b5f6020828403121561337157613370612c2d565b5b5f61337e84828501613348565b91505092915050565b5f6133a161339c61339784612c31565b613225565b612c31565b9050919050565b5f6133b282613387565b9050919050565b5f6133c3826133a8565b9050919050565b6133d3816133b9565b82525050565b5f6040820190506133ec5f8301856133ca565b6133f96020830184612d2f565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61345a602683612ba7565b915061346582613400565b604082019050919050565b5f6020820190508181035f8301526134878161344e565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6134e8602483612ba7565b91506134f38261348e565b604082019050919050565b5f6020820190508181035f830152613515816134dc565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613576602283612ba7565b91506135818261351c565b604082019050919050565b5f6020820190508181035f8301526135a38161356a565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61363681612c50565b82525050565b5f613647838361362d565b60208301905092915050565b5f602082019050919050565b5f61366982613604565b613673818561360e565b935061367e8361361e565b805f5b838110156136ae578151613695888261363c565b97506136a083613653565b925050600181019050613681565b5085935050505092915050565b5f60a0820190506136ce5f830188612d2f565b6136db602083018761324f565b81810360408301526136ed818661365f565b90506136fc6060830185612e30565b6137096080830184612d2f565b9695505050505050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61376d602583612ba7565b915061377882613713565b604082019050919050565b5f6020820190508181035f83015261379a81613761565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6137fb602383612ba7565b9150613806826137a1565b604082019050919050565b5f6020820190508181035f830152613828816137ef565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f613889602983612ba7565b91506138948261382f565b604082019050919050565b5f6020820190508181035f8301526138b68161387d565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f6138f1601983612ba7565b91506138fc826138bd565b602082019050919050565b5f6020820190508181035f83015261391e816138e5565b9050919050565b5f61392f82612c8b565b915061393a83612c8b565b925082820190508082111561395257613951612eff565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f61398c601a83612ba7565b915061399782613958565b602082019050919050565b5f6020820190508181035f8301526139b981613980565b9050919050565b5f6139ca82612c8b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036139fc576139fb612eff565b5b600182019050919050565b7f4f6e6c7920322043412062616c616e63652073656c6c000000000000000000005f82015250565b5f613a3b601683612ba7565b9150613a4682613a07565b602082019050919050565b5f6020820190508181035f830152613a6881613a2f565b9050919050565b5f613a7982612c8b565b9150613a8483612c8b565b9250828203905081811115613a9c57613a9b612eff565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613ad982612c8b565b9150613ae483612c8b565b925082613af457613af3613aa2565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613b59602183612ba7565b9150613b6482613aff565b604082019050919050565b5f6020820190508181035f830152613b8681613b4d565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613bc1601b83612ba7565b9150613bcc82613b8d565b602082019050919050565b5f6020820190508181035f830152613bee81613bb5565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220dad94b36c1e356e8a1e6dd5f7c5b11e4736dcc0352fdb57c91340631edddc13764736f6c63430008190033
Deployed Bytecode Sourcemap
4672:10060:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6915:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7748:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6023:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13249:348;;;;;;;;;;;;;:::i;:::-;;7192:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7917:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7101:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12567:100;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12907:147;;;;;;;;;;;;;:::i;:::-;;6132:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8581:96;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12807:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7295:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3503:148;;;;;;;;;;;;;:::i;:::-;;6310:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5841:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13872:820;;;;;;;;;;;;;:::i;:::-;;12675:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3289:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5901:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7006:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13605:159;;;;;;;;;;;;;:::i;:::-;;7422:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5961:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6167:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13062:178;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7597:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3659:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4941:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6915:83;6952:13;6985:5;;;;;;;;;;;;;;;;;6978:12;;6915:83;:::o;7748:161::-;7823:4;7840:39;7849:12;:10;:12::i;:::-;7863:7;7872:6;7840:8;:39::i;:::-;7897:4;7890:11;;7748:161;;;;:::o;6023:51::-;;;;:::o;13249:348::-;13313:10;;;;;;;;;;;13299:24;;:12;:10;:12::i;:::-;:24;;;13291:33;;;;;;13335:20;13356:24;13374:4;13356:9;:24::i;:::-;13335:45;;13407:1;13394:12;:14;13391:73;;;13422:30;13439:12;13422:16;:30::i;:::-;13391:73;13474:18;13493:21;13474:40;;13539:1;13528:10;:12;13525:65;;;13554:24;13567:10;13554:12;:24::i;:::-;13525:65;13280:317;;13249:348::o;7192:95::-;7245:7;5647:1;5706:2;:13;;;;:::i;:::-;5690;:29;;;;:::i;:::-;7265:14;;7192:95;:::o;7917:313::-;8015:4;8032:36;8042:6;8050:9;8061:6;8032:9;:36::i;:::-;8079:121;8088:6;8096:12;:10;:12::i;:::-;8110:89;8148:6;8110:89;;;;;;;;;;;;;;;;;:11;:19;8122:6;8110:19;;;;;;;;;;;;;;;:33;8130:12;:10;:12::i;:::-;8110:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;8079:8;:121::i;:::-;8218:4;8211:11;;7917:313;;;;;:::o;7101:83::-;7142:5;5647:1;7160:16;;7101:83;:::o;12567:100::-;3426:12;:10;:12::i;:::-;3416:22;;:6;;;;;;;;;;:22;;;3408:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12652:7:::1;12637:12;;:22;;;;;;;;;;;;;;;;;;12567:100:::0;:::o;12907:147::-;12956:12;;;;;;;;;;;:27;;;;12972:11;;;;;;;;;;;12956:27;12948:36;;;;;;13003:10;;;;;;;;;;;12995:28;;:51;13024:21;12995:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12907:147::o;6132:28::-;;;;;;;;;;;;;:::o;8581:96::-;3426:12;:10;:12::i;:::-;3416:22;;:6;;;;;;;;;;:22;;;3408:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8665:4:::1;8646:10;:16;8657:4;8646:16;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;8581:96:::0;:::o;12807:92::-;3426:12;:10;:12::i;:::-;3416:22;;:6;;;;;;;;;;:22;;;3408:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12884:7:::1;12873:8;;:18;;;;;;;;;;;;;;;;;;12807:92:::0;:::o;7295:119::-;7361:7;7388:9;:18;7398:7;7388:18;;;;;;;;;;;;;;;;7381:25;;7295:119;;;:::o;3503:148::-;3426:12;:10;:12::i;:::-;3416:22;;:6;;;;;;;;;;:22;;;3408:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3610:1:::1;3573:40;;3594:6;::::0;::::1;;;;;;;;3573:40;;;;;;;;;;;;3641:1;3624:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3503:148::o:0;6310:27::-;;;;;;;;;;;;;:::o;5841:53::-;;;;:::o;13872:820::-;3426:12;:10;:12::i;:::-;3416:22;;:6;;;;;;;;;;:22;;;3408:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13938:11:::1;;;;;;;;;;;13937:12;13929:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;14024:42;13987:15;;:80;;;;;;;;;;;;;;;;;;14078:58;14095:4;14110:15;;;;;;;;;;;5647:1;5706:2;:13;;;;:::i;:::-;5690;:29;;;;:::i;:::-;14078:8;:58::i;:::-;14181:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14163:55;;;14227:4;14234:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14163:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14147:13;;:110;;;;;;;;;;;;;;;;;;14305:4;14268:10;:34;14287:13;;;;;;;;;;;14268:34;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;14364:4;14320:17;:41;14346:13;;;;;;;;;;;14320:41;;;;;;;;;;;;;;;;:48;;;;;;;;;;;;;;;;;;14379:15;;;;;;;;;;;:31;;;14418:21;14449:4;14455:24;14473:4;14455:9;:24::i;:::-;14480:1;14482::::0;14484:7:::1;:5;:7::i;:::-;14492:15;14379:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;14526:13;;;;;;;;;;;14519:29;;;14557:15;;;;;;;;;;;14575:14;14519:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14615:4;14601:11;;:18;;;;;;;;;;;;;;;;;;14644:4;14630:11;;:18;;;;;;;;;;;;;;;;;;14672:12;14659:10;:25;;;;13872:820::o:0;12675:124::-;3426:12;:10;:12::i;:::-;3416:22;;:6;;;;;;;;;;:22;;;3408:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12785:6:::1;12759:17;:23;12777:4;12759:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;12675:124:::0;;:::o;3289:79::-;3327:7;3354:6;;;;;;;;;;;3347:13;;3289:79;:::o;5901:53::-;;;;:::o;7006:87::-;7045:13;7078:7;;;;;;;;;;;;;;;;;7071:14;;7006:87;:::o;13605:159::-;3426:12;:10;:12::i;:::-;3416:22;;:6;;;;;;;;;;:22;;;3408:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5647:1:::1;5706:2;:13;;;;:::i;:::-;5690;:29;;;;:::i;:::-;13658:12;:22;;;;5647:1;5706:2;:13;;;;:::i;:::-;5690;:29;;;;:::i;:::-;13691:14;:22;;;;13729:27;5647:1;5706:2;:13;;;;:::i;:::-;5690;:29;;;;:::i;:::-;13729:27;;;;;;:::i;:::-;;;;;;;;13605:159::o:0;7422:167::-;7500:4;7517:42;7527:12;:10;:12::i;:::-;7541:9;7552:6;7517:9;:42::i;:::-;7577:4;7570:11;;7422:167;;;;:::o;5961:55::-;;;;:::o;6167:32::-;;;;;;;;;;;;;:::o;13062:178::-;13145:12;;;;;;;;;;;:27;;;;13161:11;;;;;;;;;;;13145:27;13137:36;;;;;;13191:10;13184:27;;;13212:10;;;;;;;;;;;13224:7;13184:48;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13062:178;;:::o;7597:143::-;7678:7;7705:11;:18;7717:5;7705:18;;;;;;;;;;;;;;;:27;7724:7;7705:27;;;;;;;;;;;;;;;;7698:34;;7597:143;;;;:::o;3659:244::-;3426:12;:10;:12::i;:::-;3416:22;;:6;;;;;;;;;;:22;;;3408:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3768:1:::1;3748:22;;:8;:22;;::::0;3740:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3858:8;3829:38;;3850:6;::::0;::::1;;;;;;;;3829:38;;;;;;;;;;;;3887:8;3878:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;3659:244:::0;:::o;4941:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;1044:98::-;1097:7;1124:10;1117:17;;1044:98;:::o;8238:335::-;8348:1;8331:19;;:5;:19;;;8323:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8429:1;8410:21;;:7;:21;;;8402:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8511:6;8481:11;:18;8493:5;8481:18;;;;;;;;;;;;;;;:27;8500:7;8481:27;;;;;;;;;;;;;;;:36;;;;8549:7;8533:32;;8542:5;8533:32;;;8558:6;8533:32;;;;;;:::i;:::-;;;;;;;;8238:335;;;:::o;12076:483::-;6437:4;6428:6;;:13;;;;;;;;;;;;;;;;;;12154:21:::1;12192:1;12178:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12154:40;;12223:4;12205;12210:1;12205:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12249:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12239:4;12244:1;12239:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;12282:62;12299:4;12314:15;;;;;;;;;;;12332:11;12282:8;:62::i;:::-;12355:15;;;;;;;;;;;:66;;;12436:11;12462:1;12478:4;12505;12525:15;12355:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12143:416;6473:5:::0;6464:6;;:14;;;;;;;;;;;;;;;;;;12076:483;:::o;13772:92::-;13829:10;;;;;;;;;;;:19;;:27;13849:6;13829:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13772:92;:::o;8685:3072::-;8789:1;8773:18;;:4;:18;;;8765:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8866:1;8852:16;;:2;:16;;;8844:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8936:1;8927:6;:10;8919:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8994:17;9038:7;:5;:7::i;:::-;9030:15;;:4;:15;;;;:32;;;;;9055:7;:5;:7::i;:::-;9049:13;;:2;:13;;;;9030:32;9026:2375;;;9091:121;9207:4;9091:111;9114:15;;9103:9;;:26;9102:99;;9159:12;;9148:9;;:23;9147:53;;9186:14;;9147:53;;;9174:10;;9147:53;9102:99;;;9132:12;;9102:99;9091:6;:10;;:111;;;;:::i;:::-;:115;;:121;;;;:::i;:::-;9079:133;;9233:10;:16;9244:4;9233:16;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;;9267:15;;;;;;;;;;;9253:30;;:2;:30;;;;9233:50;:77;;;;;9289:17;:21;9307:2;9289:21;;;;;;;;;;;;;;;;;;;;;;;;;9287:23;9233:77;9229:430;;;9350:12;;9340:6;:22;;9332:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;9445:14;;9435:6;9419:13;9429:2;9419:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;9411:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;9533:12;9528:1;9515:10;;:14;;;;:::i;:::-;:30;9511:103;;;9579:14;9590:2;9579:10;:14::i;:::-;9578:15;9570:24;;;;;;9511:103;9632:9;;:11;;;;;;;;;:::i;:::-;;;;;;9229:430;9680:10;:14;9691:2;9680:14;;;;;;;;;;;;;;;;;;;;;;;;;9679:15;:42;;;;;9700:17;:21;9718:2;9700:21;;;;;;;;;;;;;;;;;;;;;;;;;9698:23;9679:42;9675:162;;;9776:14;;9766:6;9750:13;9760:2;9750:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;9742:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;9675:162;9856:10;:14;9867:2;9856:14;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;;;9889:4;9874:20;;:4;:20;;;;9856:38;9853:216;;;9927:126;10048:4;9927:116;9950:16;;9939:9;;:27;9938:104;;9997:13;;9986:9;;:24;9985:56;;10026:15;;9985:56;;;10013:11;;9985:56;9938:104;;;9969:13;;9938:104;9927:6;:10;;:116;;;;:::i;:::-;:120;;:126;;;;:::i;:::-;9915:138;;9853:216;10083:10;:16;10094:4;10083:16;;;;;;;;;;;;;;;;;;;;;;;;;10082:17;:36;;;;;10104:10;:14;10115:2;10104:14;;;;;;;;;;;;;;;;;;;;;;;;;10103:15;10082:36;:60;;;;;10137:4;10122:20;;:4;:20;;;;10082:60;10078:115;;;10176:1;10164:13;;10078:115;10209:28;10240:24;10258:4;10240:9;:24::i;:::-;10209:55;;10283:8;;;;;;;;;;;:19;;;;;10296:6;;;;;;;;;;;10295:7;10283:19;:37;;;;;10306:10;:14;10317:2;10306:14;;;;;;;;;;;;;;;;;;;;;;;;;10283:37;:52;;;;;10324:11;;;;;;;;;;;10283:52;:94;;;;;10360:17;;10339:20;:38;10283:94;:126;;;;;10391:18;;10381:9;;:28;10283:126;10279:1111;;;10449:13;;10434:12;:28;10430:90;;;10499:1;10487:9;:13;;;;10430:90;10557:1;10546:9;;:12;10538:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;10604:67;10621:49;10625:6;10632:37;10636:20;10657:11;;10632:3;:37::i;:::-;10621:3;:49::i;:::-;10604:16;:67::i;:::-;10690:26;10719:21;10690:50;;10783:1;10762:18;:22;10759:105;;;10809:35;10822:21;10809:12;:35::i;:::-;10759:105;10882:9;;:11;;;;;;;;;:::i;:::-;;;;;;10928:12;10912:13;:28;;;;10411:545;10279:1111;;;10981:6;;;;;;;;;;;10980:7;:25;;;;;10991:10;:14;11002:2;10991:14;;;;;;;;;;;;;;;;;;;;;;;;;10980:25;:40;;;;;11009:11;;;;;;;;;;;10980:40;:82;;;;;11045:17;;11024:20;:38;10980:82;:114;;;;;11076:18;;11066:9;;:28;10980:114;10977:413;;;11115:67;11132:49;11136:6;11143:37;11147:20;11168:11;;11143:3;:37::i;:::-;11132:3;:49::i;:::-;11115:16;:67::i;:::-;11201:26;11230:21;11201:50;;11294:1;11273:18;:22;11270:105;;;11320:35;11333:21;11320:12;:35::i;:::-;11270:105;11096:294;10977:413;10279:1111;9064:2337;9026:2375;11426:1;11416:9;:11;11413:161;;;11466:39;11495:9;11466;:24;11484:4;11466:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;11441:9;:24;11459:4;11441:24;;;;;;;;;;;;;;;:64;;;;11546:4;11523:39;;11532:4;11523:39;;;11552:9;11523:39;;;;;;:::i;:::-;;;;;;;;11413:161;11600:27;11620:6;11600:9;:15;11610:4;11600:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;11584:9;:15;11594:4;11584:15;;;;;;;;;;;;;;;:43;;;;11652:40;11670:21;11681:9;11670:6;:10;;:21;;;;:::i;:::-;11652:9;:13;11662:2;11652:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;11638:9;:13;11648:2;11638:13;;;;;;;;;;;;;;;:54;;;;11723:2;11708:41;;11717:4;11708:41;;;11727:21;11738:9;11727:6;:10;;:21;;;;:::i;:::-;11708:41;;;;;;:::i;:::-;;;;;;;;8754:3003;8685:3072;;;:::o;2181:190::-;2267:7;2300:1;2295;:6;;2303:12;2287:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2327:9;2343:1;2339;:5;;;;:::i;:::-;2327:17;;2362:1;2355:8;;;2181:190;;;;;:::o;2379:246::-;2437:7;2466:1;2461;:6;2457:47;;2491:1;2484:8;;;;2457:47;2514:9;2530:1;2526;:5;;;;:::i;:::-;2514:17;;2559:1;2554;2550;:5;;;;:::i;:::-;:10;2542:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2616:1;2609:8;;;2379:246;;;;;:::o;2633:132::-;2691:7;2718:39;2722:1;2725;2718:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2711:46;;2633:132;;;;:::o;11873:195::-;11932:4;11949:12;12016:7;12004:20;11996:28;;12059:1;12052:4;:8;12045:15;;;11873:195;;;:::o;11767:98::-;11824:7;11851:1;11849;:3;11848:9;;11856:1;11848:9;;;11854:1;11848:9;11841:16;;11767:98;;;;:::o;1850:179::-;1908:7;1928:9;1944:1;1940;:5;;;;:::i;:::-;1928:17;;1969:1;1964;:6;;1956:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2020:1;2013:8;;;1850:179;;;;:::o;2037:136::-;2095:7;2122:43;2126:1;2129;2122:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2115:50;;2037:136;;;;:::o;2773:189::-;2859:7;2891:1;2887;:5;2894:12;2879:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2918:9;2934:1;2930;:5;;;;:::i;:::-;2918:17;;2953:1;2946:8;;;2773:189;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1323:117::-;1432:1;1429;1422:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:118::-;3426:24;3444:5;3426:24;:::i;:::-;3421:3;3414:37;3339:118;;:::o;3463:222::-;3556:4;3594:2;3583:9;3579:18;3571:26;;3607:71;3675:1;3664:9;3660:17;3651:6;3607:71;:::i;:::-;3463:222;;;;:::o;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;;:::i;:::-;3801:119;3959:1;3984:53;4029:7;4020:6;4009:9;4005:22;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4316:86::-;4351:7;4391:4;4384:5;4380:16;4369:27;;4316:86;;;:::o;4408:112::-;4491:22;4507:5;4491:22;:::i;:::-;4486:3;4479:35;4408:112;;:::o;4526:214::-;4615:4;4653:2;4642:9;4638:18;4630:26;;4666:67;4730:1;4719:9;4715:17;4706:6;4666:67;:::i;:::-;4526:214;;;;:::o;4746:116::-;4816:21;4831:5;4816:21;:::i;:::-;4809:5;4806:32;4796:60;;4852:1;4849;4842:12;4796:60;4746:116;:::o;4868:133::-;4911:5;4949:6;4936:20;4927:29;;4965:30;4989:5;4965:30;:::i;:::-;4868:133;;;;:::o;5007:323::-;5063:6;5112:2;5100:9;5091:7;5087:23;5083:32;5080:119;;;5118:79;;:::i;:::-;5080:119;5238:1;5263:50;5305:7;5296:6;5285:9;5281:22;5263:50;:::i;:::-;5253:60;;5209:114;5007:323;;;;:::o;5336:118::-;5423:24;5441:5;5423:24;:::i;:::-;5418:3;5411:37;5336:118;;:::o;5460:222::-;5553:4;5591:2;5580:9;5576:18;5568:26;;5604:71;5672:1;5661:9;5657:17;5648:6;5604:71;:::i;:::-;5460:222;;;;:::o;5688:329::-;5747:6;5796:2;5784:9;5775:7;5771:23;5767:32;5764:119;;;5802:79;;:::i;:::-;5764:119;5922:1;5947:53;5992:7;5983:6;5972:9;5968:22;5947:53;:::i;:::-;5937:63;;5893:117;5688:329;;;;:::o;6023:468::-;6088:6;6096;6145:2;6133:9;6124:7;6120:23;6116:32;6113:119;;;6151:79;;:::i;:::-;6113:119;6271:1;6296:53;6341:7;6332:6;6321:9;6317:22;6296:53;:::i;:::-;6286:63;;6242:117;6398:2;6424:50;6466:7;6457:6;6446:9;6442:22;6424:50;:::i;:::-;6414:60;;6369:115;6023:468;;;;;:::o;6497:474::-;6565:6;6573;6622:2;6610:9;6601:7;6597:23;6593:32;6590:119;;;6628:79;;:::i;:::-;6590:119;6748:1;6773:53;6818:7;6809:6;6798:9;6794:22;6773:53;:::i;:::-;6763:63;;6719:117;6875:2;6901:53;6946:7;6937:6;6926:9;6922:22;6901:53;:::i;:::-;6891:63;;6846:118;6497:474;;;;;:::o;6977:180::-;7025:77;7022:1;7015:88;7122:4;7119:1;7112:15;7146:4;7143:1;7136:15;7163:102;7205:8;7252:5;7249:1;7245:13;7224:34;;7163:102;;;:::o;7271:848::-;7332:5;7339:4;7363:6;7354:15;;7387:5;7378:14;;7401:712;7422:1;7412:8;7409:15;7401:712;;;7517:4;7512:3;7508:14;7502:4;7499:24;7496:50;;;7526:18;;:::i;:::-;7496:50;7576:1;7566:8;7562:16;7559:451;;;7991:4;7984:5;7980:16;7971:25;;7559:451;8041:4;8035;8031:15;8023:23;;8071:32;8094:8;8071:32;:::i;:::-;8059:44;;7401:712;;;7271:848;;;;;;;:::o;8125:1073::-;8179:5;8370:8;8360:40;;8391:1;8382:10;;8393:5;;8360:40;8419:4;8409:36;;8436:1;8427:10;;8438:5;;8409:36;8505:4;8553:1;8548:27;;;;8589:1;8584:191;;;;8498:277;;8548:27;8566:1;8557:10;;8568:5;;;8584:191;8629:3;8619:8;8616:17;8613:43;;;8636:18;;:::i;:::-;8613:43;8685:8;8682:1;8678:16;8669:25;;8720:3;8713:5;8710:14;8707:40;;;8727:18;;:::i;:::-;8707:40;8760:5;;;8498:277;;8884:2;8874:8;8871:16;8865:3;8859:4;8856:13;8852:36;8834:2;8824:8;8821:16;8816:2;8810:4;8807:12;8803:35;8787:111;8784:246;;;8940:8;8934:4;8930:19;8921:28;;8975:3;8968:5;8965:14;8962:40;;;8982:18;;:::i;:::-;8962:40;9015:5;;8784:246;9055:42;9093:3;9083:8;9077:4;9074:1;9055:42;:::i;:::-;9040:57;;;;9129:4;9124:3;9120:14;9113:5;9110:25;9107:51;;;9138:18;;:::i;:::-;9107:51;9187:4;9180:5;9176:16;9167:25;;8125:1073;;;;;;:::o;9204:281::-;9262:5;9286:23;9304:4;9286:23;:::i;:::-;9278:31;;9330:25;9346:8;9330:25;:::i;:::-;9318:37;;9374:104;9411:66;9401:8;9395:4;9374:104;:::i;:::-;9365:113;;9204:281;;;;:::o;9491:410::-;9531:7;9554:20;9572:1;9554:20;:::i;:::-;9549:25;;9588:20;9606:1;9588:20;:::i;:::-;9583:25;;9643:1;9640;9636:9;9665:30;9683:11;9665:30;:::i;:::-;9654:41;;9844:1;9835:7;9831:15;9828:1;9825:22;9805:1;9798:9;9778:83;9755:139;;9874:18;;:::i;:::-;9755:139;9539:362;9491:410;;;;:::o;9907:182::-;10047:34;10043:1;10035:6;10031:14;10024:58;9907:182;:::o;10095:366::-;10237:3;10258:67;10322:2;10317:3;10258:67;:::i;:::-;10251:74;;10334:93;10423:3;10334:93;:::i;:::-;10452:2;10447:3;10443:12;10436:19;;10095:366;;;:::o;10467:419::-;10633:4;10671:2;10660:9;10656:18;10648:26;;10720:9;10714:4;10710:20;10706:1;10695:9;10691:17;10684:47;10748:131;10874:4;10748:131;:::i;:::-;10740:139;;10467:419;;;:::o;10892:173::-;11032:25;11028:1;11020:6;11016:14;11009:49;10892:173;:::o;11071:366::-;11213:3;11234:67;11298:2;11293:3;11234:67;:::i;:::-;11227:74;;11310:93;11399:3;11310:93;:::i;:::-;11428:2;11423:3;11419:12;11412:19;;11071:366;;;:::o;11443:419::-;11609:4;11647:2;11636:9;11632:18;11624:26;;11696:9;11690:4;11686:20;11682:1;11671:9;11667:17;11660:47;11724:131;11850:4;11724:131;:::i;:::-;11716:139;;11443:419;;;:::o;11868:143::-;11925:5;11956:6;11950:13;11941:22;;11972:33;11999:5;11972:33;:::i;:::-;11868:143;;;;:::o;12017:351::-;12087:6;12136:2;12124:9;12115:7;12111:23;12107:32;12104:119;;;12142:79;;:::i;:::-;12104:119;12262:1;12287:64;12343:7;12334:6;12323:9;12319:22;12287:64;:::i;:::-;12277:74;;12233:128;12017:351;;;;:::o;12374:332::-;12495:4;12533:2;12522:9;12518:18;12510:26;;12546:71;12614:1;12603:9;12599:17;12590:6;12546:71;:::i;:::-;12627:72;12695:2;12684:9;12680:18;12671:6;12627:72;:::i;:::-;12374:332;;;;;:::o;12712:85::-;12757:7;12786:5;12775:16;;12712:85;;;:::o;12803:60::-;12831:3;12852:5;12845:12;;12803:60;;;:::o;12869:158::-;12927:9;12960:61;12978:42;12987:32;13013:5;12987:32;:::i;:::-;12978:42;:::i;:::-;12960:61;:::i;:::-;12947:74;;12869:158;;;:::o;13033:147::-;13128:45;13167:5;13128:45;:::i;:::-;13123:3;13116:58;13033:147;;:::o;13186:807::-;13435:4;13473:3;13462:9;13458:19;13450:27;;13487:71;13555:1;13544:9;13540:17;13531:6;13487:71;:::i;:::-;13568:72;13636:2;13625:9;13621:18;13612:6;13568:72;:::i;:::-;13650:80;13726:2;13715:9;13711:18;13702:6;13650:80;:::i;:::-;13740;13816:2;13805:9;13801:18;13792:6;13740:80;:::i;:::-;13830:73;13898:3;13887:9;13883:19;13874:6;13830:73;:::i;:::-;13913;13981:3;13970:9;13966:19;13957:6;13913:73;:::i;:::-;13186:807;;;;;;;;;:::o;13999:143::-;14056:5;14087:6;14081:13;14072:22;;14103:33;14130:5;14103:33;:::i;:::-;13999:143;;;;:::o;14148:663::-;14236:6;14244;14252;14301:2;14289:9;14280:7;14276:23;14272:32;14269:119;;;14307:79;;:::i;:::-;14269:119;14427:1;14452:64;14508:7;14499:6;14488:9;14484:22;14452:64;:::i;:::-;14442:74;;14398:128;14565:2;14591:64;14647:7;14638:6;14627:9;14623:22;14591:64;:::i;:::-;14581:74;;14536:129;14704:2;14730:64;14786:7;14777:6;14766:9;14762:22;14730:64;:::i;:::-;14720:74;;14675:129;14148:663;;;;;:::o;14817:332::-;14938:4;14976:2;14965:9;14961:18;14953:26;;14989:71;15057:1;15046:9;15042:17;15033:6;14989:71;:::i;:::-;15070:72;15138:2;15127:9;15123:18;15114:6;15070:72;:::i;:::-;14817:332;;;;;:::o;15155:137::-;15209:5;15240:6;15234:13;15225:22;;15256:30;15280:5;15256:30;:::i;:::-;15155:137;;;;:::o;15298:345::-;15365:6;15414:2;15402:9;15393:7;15389:23;15385:32;15382:119;;;15420:79;;:::i;:::-;15382:119;15540:1;15565:61;15618:7;15609:6;15598:9;15594:22;15565:61;:::i;:::-;15555:71;;15511:125;15298:345;;;;:::o;15649:142::-;15699:9;15732:53;15750:34;15759:24;15777:5;15759:24;:::i;:::-;15750:34;:::i;:::-;15732:53;:::i;:::-;15719:66;;15649:142;;;:::o;15797:126::-;15847:9;15880:37;15911:5;15880:37;:::i;:::-;15867:50;;15797:126;;;:::o;15929:134::-;15987:9;16020:37;16051:5;16020:37;:::i;:::-;16007:50;;15929:134;;;:::o;16069:147::-;16164:45;16203:5;16164:45;:::i;:::-;16159:3;16152:58;16069:147;;:::o;16222:348::-;16351:4;16389:2;16378:9;16374:18;16366:26;;16402:79;16478:1;16467:9;16463:17;16454:6;16402:79;:::i;:::-;16491:72;16559:2;16548:9;16544:18;16535:6;16491:72;:::i;:::-;16222:348;;;;;:::o;16576:225::-;16716:34;16712:1;16704:6;16700:14;16693:58;16785:8;16780:2;16772:6;16768:15;16761:33;16576:225;:::o;16807:366::-;16949:3;16970:67;17034:2;17029:3;16970:67;:::i;:::-;16963:74;;17046:93;17135:3;17046:93;:::i;:::-;17164:2;17159:3;17155:12;17148:19;;16807:366;;;:::o;17179:419::-;17345:4;17383:2;17372:9;17368:18;17360:26;;17432:9;17426:4;17422:20;17418:1;17407:9;17403:17;17396:47;17460:131;17586:4;17460:131;:::i;:::-;17452:139;;17179:419;;;:::o;17604:223::-;17744:34;17740:1;17732:6;17728:14;17721:58;17813:6;17808:2;17800:6;17796:15;17789:31;17604:223;:::o;17833:366::-;17975:3;17996:67;18060:2;18055:3;17996:67;:::i;:::-;17989:74;;18072:93;18161:3;18072:93;:::i;:::-;18190:2;18185:3;18181:12;18174:19;;17833:366;;;:::o;18205:419::-;18371:4;18409:2;18398:9;18394:18;18386:26;;18458:9;18452:4;18448:20;18444:1;18433:9;18429:17;18422:47;18486:131;18612:4;18486:131;:::i;:::-;18478:139;;18205:419;;;:::o;18630:221::-;18770:34;18766:1;18758:6;18754:14;18747:58;18839:4;18834:2;18826:6;18822:15;18815:29;18630:221;:::o;18857:366::-;18999:3;19020:67;19084:2;19079:3;19020:67;:::i;:::-;19013:74;;19096:93;19185:3;19096:93;:::i;:::-;19214:2;19209:3;19205:12;19198:19;;18857:366;;;:::o;19229:419::-;19395:4;19433:2;19422:9;19418:18;19410:26;;19482:9;19476:4;19472:20;19468:1;19457:9;19453:17;19446:47;19510:131;19636:4;19510:131;:::i;:::-;19502:139;;19229:419;;;:::o;19654:180::-;19702:77;19699:1;19692:88;19799:4;19796:1;19789:15;19823:4;19820:1;19813:15;19840:180;19888:77;19885:1;19878:88;19985:4;19982:1;19975:15;20009:4;20006:1;19999:15;20026:114;20093:6;20127:5;20121:12;20111:22;;20026:114;;;:::o;20146:184::-;20245:11;20279:6;20274:3;20267:19;20319:4;20314:3;20310:14;20295:29;;20146:184;;;;:::o;20336:132::-;20403:4;20426:3;20418:11;;20456:4;20451:3;20447:14;20439:22;;20336:132;;;:::o;20474:108::-;20551:24;20569:5;20551:24;:::i;:::-;20546:3;20539:37;20474:108;;:::o;20588:179::-;20657:10;20678:46;20720:3;20712:6;20678:46;:::i;:::-;20756:4;20751:3;20747:14;20733:28;;20588:179;;;;:::o;20773:113::-;20843:4;20875;20870:3;20866:14;20858:22;;20773:113;;;:::o;20922:732::-;21041:3;21070:54;21118:5;21070:54;:::i;:::-;21140:86;21219:6;21214:3;21140:86;:::i;:::-;21133:93;;21250:56;21300:5;21250:56;:::i;:::-;21329:7;21360:1;21345:284;21370:6;21367:1;21364:13;21345:284;;;21446:6;21440:13;21473:63;21532:3;21517:13;21473:63;:::i;:::-;21466:70;;21559:60;21612:6;21559:60;:::i;:::-;21549:70;;21405:224;21392:1;21389;21385:9;21380:14;;21345:284;;;21349:14;21645:3;21638:10;;21046:608;;;20922:732;;;;:::o;21660:831::-;21923:4;21961:3;21950:9;21946:19;21938:27;;21975:71;22043:1;22032:9;22028:17;22019:6;21975:71;:::i;:::-;22056:80;22132:2;22121:9;22117:18;22108:6;22056:80;:::i;:::-;22183:9;22177:4;22173:20;22168:2;22157:9;22153:18;22146:48;22211:108;22314:4;22305:6;22211:108;:::i;:::-;22203:116;;22329:72;22397:2;22386:9;22382:18;22373:6;22329:72;:::i;:::-;22411:73;22479:3;22468:9;22464:19;22455:6;22411:73;:::i;:::-;21660:831;;;;;;;;:::o;22497:224::-;22637:34;22633:1;22625:6;22621:14;22614:58;22706:7;22701:2;22693:6;22689:15;22682:32;22497:224;:::o;22727:366::-;22869:3;22890:67;22954:2;22949:3;22890:67;:::i;:::-;22883:74;;22966:93;23055:3;22966:93;:::i;:::-;23084:2;23079:3;23075:12;23068:19;;22727:366;;;:::o;23099:419::-;23265:4;23303:2;23292:9;23288:18;23280:26;;23352:9;23346:4;23342:20;23338:1;23327:9;23323:17;23316:47;23380:131;23506:4;23380:131;:::i;:::-;23372:139;;23099:419;;;:::o;23524:222::-;23664:34;23660:1;23652:6;23648:14;23641:58;23733:5;23728:2;23720:6;23716:15;23709:30;23524:222;:::o;23752:366::-;23894:3;23915:67;23979:2;23974:3;23915:67;:::i;:::-;23908:74;;23991:93;24080:3;23991:93;:::i;:::-;24109:2;24104:3;24100:12;24093:19;;23752:366;;;:::o;24124:419::-;24290:4;24328:2;24317:9;24313:18;24305:26;;24377:9;24371:4;24367:20;24363:1;24352:9;24348:17;24341:47;24405:131;24531:4;24405:131;:::i;:::-;24397:139;;24124:419;;;:::o;24549:228::-;24689:34;24685:1;24677:6;24673:14;24666:58;24758:11;24753:2;24745:6;24741:15;24734:36;24549:228;:::o;24783:366::-;24925:3;24946:67;25010:2;25005:3;24946:67;:::i;:::-;24939:74;;25022:93;25111:3;25022:93;:::i;:::-;25140:2;25135:3;25131:12;25124:19;;24783:366;;;:::o;25155:419::-;25321:4;25359:2;25348:9;25344:18;25336:26;;25408:9;25402:4;25398:20;25394:1;25383:9;25379:17;25372:47;25436:131;25562:4;25436:131;:::i;:::-;25428:139;;25155:419;;;:::o;25580:175::-;25720:27;25716:1;25708:6;25704:14;25697:51;25580:175;:::o;25761:366::-;25903:3;25924:67;25988:2;25983:3;25924:67;:::i;:::-;25917:74;;26000:93;26089:3;26000:93;:::i;:::-;26118:2;26113:3;26109:12;26102:19;;25761:366;;;:::o;26133:419::-;26299:4;26337:2;26326:9;26322:18;26314:26;;26386:9;26380:4;26376:20;26372:1;26361:9;26357:17;26350:47;26414:131;26540:4;26414:131;:::i;:::-;26406:139;;26133:419;;;:::o;26558:191::-;26598:3;26617:20;26635:1;26617:20;:::i;:::-;26612:25;;26651:20;26669:1;26651:20;:::i;:::-;26646:25;;26694:1;26691;26687:9;26680:16;;26715:3;26712:1;26709:10;26706:36;;;26722:18;;:::i;:::-;26706:36;26558:191;;;;:::o;26755:176::-;26895:28;26891:1;26883:6;26879:14;26872:52;26755:176;:::o;26937:366::-;27079:3;27100:67;27164:2;27159:3;27100:67;:::i;:::-;27093:74;;27176:93;27265:3;27176:93;:::i;:::-;27294:2;27289:3;27285:12;27278:19;;26937:366;;;:::o;27309:419::-;27475:4;27513:2;27502:9;27498:18;27490:26;;27562:9;27556:4;27552:20;27548:1;27537:9;27533:17;27526:47;27590:131;27716:4;27590:131;:::i;:::-;27582:139;;27309:419;;;:::o;27734:233::-;27773:3;27796:24;27814:5;27796:24;:::i;:::-;27787:33;;27842:66;27835:5;27832:77;27829:103;;27912:18;;:::i;:::-;27829:103;27959:1;27952:5;27948:13;27941:20;;27734:233;;;:::o;27973:172::-;28113:24;28109:1;28101:6;28097:14;28090:48;27973:172;:::o;28151:366::-;28293:3;28314:67;28378:2;28373:3;28314:67;:::i;:::-;28307:74;;28390:93;28479:3;28390:93;:::i;:::-;28508:2;28503:3;28499:12;28492:19;;28151:366;;;:::o;28523:419::-;28689:4;28727:2;28716:9;28712:18;28704:26;;28776:9;28770:4;28766:20;28762:1;28751:9;28747:17;28740:47;28804:131;28930:4;28804:131;:::i;:::-;28796:139;;28523:419;;;:::o;28948:194::-;28988:4;29008:20;29026:1;29008:20;:::i;:::-;29003:25;;29042:20;29060:1;29042:20;:::i;:::-;29037:25;;29086:1;29083;29079:9;29071:17;;29110:1;29104:4;29101:11;29098:37;;;29115:18;;:::i;:::-;29098:37;28948:194;;;;:::o;29148:180::-;29196:77;29193:1;29186:88;29293:4;29290:1;29283:15;29317:4;29314:1;29307:15;29334:185;29374:1;29391:20;29409:1;29391:20;:::i;:::-;29386:25;;29425:20;29443:1;29425:20;:::i;:::-;29420:25;;29464:1;29454:35;;29469:18;;:::i;:::-;29454:35;29511:1;29508;29504:9;29499:14;;29334:185;;;;:::o;29525:220::-;29665:34;29661:1;29653:6;29649:14;29642:58;29734:3;29729:2;29721:6;29717:15;29710:28;29525:220;:::o;29751:366::-;29893:3;29914:67;29978:2;29973:3;29914:67;:::i;:::-;29907:74;;29990:93;30079:3;29990:93;:::i;:::-;30108:2;30103:3;30099:12;30092:19;;29751:366;;;:::o;30123:419::-;30289:4;30327:2;30316:9;30312:18;30304:26;;30376:9;30370:4;30366:20;30362:1;30351:9;30347:17;30340:47;30404:131;30530:4;30404:131;:::i;:::-;30396:139;;30123:419;;;:::o;30548:177::-;30688:29;30684:1;30676:6;30672:14;30665:53;30548:177;:::o;30731:366::-;30873:3;30894:67;30958:2;30953:3;30894:67;:::i;:::-;30887:74;;30970:93;31059:3;30970:93;:::i;:::-;31088:2;31083:3;31079:12;31072:19;;30731:366;;;:::o;31103:419::-;31269:4;31307:2;31296:9;31292:18;31284:26;;31356:9;31350:4;31346:20;31342:1;31331:9;31327:17;31320:47;31384:131;31510:4;31384:131;:::i;:::-;31376:139;;31103:419;;;:::o
Swarm Source
ipfs://dad94b36c1e356e8a1e6dd5f7c5b11e4736dcc0352fdb57c91340631edddc137
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.