More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 12 from a total of 12 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Manualsend | 16415621 | 614 days ago | IN | 0 ETH | 0.00044357 | ||||
Set Max Wallet L... | 16415608 | 614 days ago | IN | 0 ETH | 0.00041926 | ||||
Set Buy And Sell... | 16415569 | 614 days ago | IN | 0 ETH | 0.00051557 | ||||
Approve | 16415560 | 614 days ago | IN | 0 ETH | 0.00089602 | ||||
Approve | 16415540 | 614 days ago | IN | 0 ETH | 0.000824 | ||||
Approve | 16415538 | 614 days ago | IN | 0 ETH | 0.00086912 | ||||
Approve | 16415535 | 614 days ago | IN | 0 ETH | 0.00091086 | ||||
Approve | 16415535 | 614 days ago | IN | 0 ETH | 0.00091086 | ||||
Approve | 16415535 | 614 days ago | IN | 0 ETH | 0.00091086 | ||||
Approve | 16415535 | 614 days ago | IN | 0 ETH | 0.00091086 | ||||
Approve | 16415529 | 614 days ago | IN | 0 ETH | 0.00074771 | ||||
0x60806040 | 16415489 | 614 days ago | IN | 0 ETH | 0.10422895 |
Loading...
Loading
Contract Name:
DYOR
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-01-15 */ // SPDX-License-Identifier: Unlicensed pragma solidity ^0.8.9; 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 ); } contract Ownable is Context { address private _owner; address private _previousOwner; 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; } } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); } contract DYOR is Context, IERC20, Ownable { using SafeMath for uint256; string private constant _name = "DO YOUR OWN RESEARCH"; string private constant _symbol = "$DYOR"; uint8 private constant _decimals = 9; mapping(address => uint256) private _rOwned; mapping(address => uint256) private _tOwned; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) private _isExcludedFromFee; uint256 private constant MAX = ~uint256(0); uint256 private constant _tTotal = 1000000000 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; uint256 private _redisFeeOnBuy = 0; uint256 private _taxFeeOnBuy = 15; uint256 private _redisFeeOnSell = 0; uint256 private _taxFeeOnSell = 40; //Original Fee uint256 private _redisFee = _redisFeeOnSell; uint256 private _taxFee = _taxFeeOnSell; uint256 private _previousredisFee = _redisFee; uint256 private _previoustaxFee = _taxFee; address payable private _developmentAddress = payable(0xD2C51fc71Ea4afd26553fb8c0C56838E2A581A53); address payable private _marketingAddress = payable(0xD2C51fc71Ea4afd26553fb8c0C56838E2A581A53); IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool private tradingOpen = true; bool private inSwap = false; bool private swapEnabled = true; uint256 public _maxTxAmount = _tTotal; uint256 public _maxWalletSize = _tTotal*2/100; uint256 public _swapTokensAtAmount = _tTotal*4/1000; event MaxTxAmountUpdated(uint256 _maxTxAmount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor() { _rOwned[_msgSender()] = _rTotal; IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);// uniswapV2Router = _uniswapV2Router; uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_marketingAddress] = 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 tokenFromReflection(_rOwned[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 tokenFromReflection(uint256 rAmount) private view returns (uint256) { require( rAmount <= _rTotal, "Amount must be less than total reflections" ); uint256 currentRate = _getRate(); return rAmount.div(currentRate); } function removeAllFee() private { if (_redisFee == 0 && _taxFee == 0) return; _previousredisFee = _redisFee; _previoustaxFee = _taxFee; _redisFee = 0; _taxFee = 0; } function restoreAllFee() private { _redisFee = _previousredisFee; _taxFee = _previoustaxFee; } function _approve( address owner, address spender, uint256 amount ) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer( address from, address to, uint256 amount ) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); if (from != owner() && to != owner()) { //Trade start check if (!tradingOpen) { require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled"); } require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit"); if(to != uniswapV2Pair) { require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!"); } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= _swapTokensAtAmount; if(contractTokenBalance >= _swapTokensAtAmount*2) { contractTokenBalance = _swapTokensAtAmount*2; } if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) { swapTokensForEth(contractTokenBalance); uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 100000000000000000) { sendETHToFee(contractETHBalance); } } } bool takeFee = true; //Transfer Tokens if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) { takeFee = false; } else { //Set Fee for Buys if(from == uniswapV2Pair && to != address(uniswapV2Router)) { _redisFee = _redisFeeOnBuy; _taxFee = _taxFeeOnBuy; } //Set Fee for Sells if (to == uniswapV2Pair && from != address(uniswapV2Router)) { _redisFee = _redisFeeOnSell; _taxFee = _taxFeeOnSell; } } _tokenTransfer(from, to, amount, takeFee); } 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 sendETHToFee(uint256 amount) private { _marketingAddress.transfer(amount); } function manualsend() external { sendETHToFee(address(this).balance); } function toggleSwap (bool _swapEnabled) external { swapEnabled = _swapEnabled; } function _tokenTransfer( address sender, address recipient, uint256 amount, bool takeFee ) private { if (!takeFee) removeAllFee(); _transferStandard(sender, recipient, amount); if (!takeFee) restoreAllFee(); } function _transferStandard( address sender, address recipient, uint256 tAmount ) private { ( uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam ) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeTeam(tTeam); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _takeTeam(uint256 tTeam) private { uint256 currentRate = _getRate(); uint256 rTeam = tTeam.mul(currentRate); _rOwned[address(this)] = _rOwned[address(this)].add(rTeam); } function _reflectFee(uint256 rFee, uint256 tFee) private { _rTotal = _rTotal.sub(rFee); _tFeeTotal = _tFeeTotal.add(tFee); } receive() external payable {} function _getValues(uint256 tAmount) private view returns ( uint256, uint256, uint256, uint256, uint256, uint256 ) { (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _redisFee, _taxFee); uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate); return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam); } function _getTValues( uint256 tAmount, uint256 redisFee, uint256 taxFee ) private pure returns ( uint256, uint256, uint256 ) { uint256 tFee = tAmount.mul(redisFee).div(100); uint256 tTeam = tAmount.mul(taxFee).div(100); uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam); return (tTransferAmount, tFee, tTeam); } function _getRValues( uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate ) private pure returns ( uint256, uint256, uint256 ) { uint256 rAmount = tAmount.mul(currentRate); uint256 rFee = tFee.mul(currentRate); uint256 rTeam = tTeam.mul(currentRate); uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam); return (rAmount, rTransferAmount, rFee); } function _getRate() private view returns (uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return rSupply.div(tSupply); } function _getCurrentSupply() private view returns (uint256, uint256) { uint256 rSupply = _rTotal; uint256 tSupply = _tTotal; if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal); return (rSupply, tSupply); } function setBuyAndSellFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner { _redisFeeOnBuy = redisFeeOnBuy; _redisFeeOnSell = redisFeeOnSell; _taxFeeOnBuy = taxFeeOnBuy; _taxFeeOnSell = taxFeeOnSell; require (_redisFeeOnBuy+_redisFeeOnSell+_taxFeeOnBuy+_taxFeeOnSell <= 100); } //Set maximum transaction function setMaxTransactionAmount(uint256 maxTxAmount) public onlyOwner { _maxTxAmount = _tTotal*maxTxAmount/100; require (_maxTxAmount >= _tTotal/100); } function setMaxWalletLimit(uint256 maxWalletSize) public onlyOwner { _maxWalletSize = _tTotal*maxWalletSize/100; require (_maxWalletSize >= _tTotal/100); } }
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":"_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":"_swapTokensAtAmount","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":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setBuyAndSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTransactionAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","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"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052670de0b6b3a76400006000196200001c9190620006ed565b6000196200002b919062000754565b6006556000600855600f6009556000600a556028600b55600a54600c55600b54600d55600c54600e55600d54600f5573d2c51fc71ea4afd26553fb8c0c56838e2a581a53601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073d2c51fc71ea4afd26553fb8c0c56838e2a581a53601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601360146101000a81548160ff0219169083151502179055506000601360156101000a81548160ff0219169083151502179055506001601360166101000a81548160ff021916908315150217905550670de0b6b3a764000060145560646002670de0b6b3a76400006200017a91906200078f565b620001869190620007da565b6015556103e86004670de0b6b3a7640000620001a391906200078f565b620001af9190620007da565b601655348015620001bf57600080fd5b506000620001d26200068360201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060065460026000620002876200068360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200036b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200039191906200087c565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003f9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200041f91906200087c565b6040518363ffffffff1660e01b81526004016200043e929190620008bf565b6020604051808303816000875af11580156200045e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200048491906200087c565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160056000620004da6200068b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200060d6200068360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a7640000604051620006749190620008fd565b60405180910390a3506200091a565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620006fa82620006b4565b91506200070783620006b4565b9250826200071a5762000719620006be565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200076182620006b4565b91506200076e83620006b4565b925082820390508181111562000789576200078862000725565b5b92915050565b60006200079c82620006b4565b9150620007a983620006b4565b9250828202620007b981620006b4565b91508282048414831517620007d357620007d262000725565b5b5092915050565b6000620007e782620006b4565b9150620007f483620006b4565b925082620008075762000806620006be565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620008448262000817565b9050919050565b620008568162000837565b81146200086257600080fd5b50565b60008151905062000876816200084b565b92915050565b60006020828403121562000895576200089462000812565b5b6000620008a58482850162000865565b91505092915050565b620008b98162000837565b82525050565b6000604082019050620008d66000830185620008ae565b620008e56020830184620008ae565b9392505050565b620008f781620006b4565b82525050565b6000602082019050620009146000830184620008ec565b92915050565b613170806200092a6000396000f3fe6080604052600436106101395760003560e01c806370a08231116100ab5780638f9a55c01161006f5780638f9a55c0146103fd57806395d89b4114610428578063a9059cbb14610453578063c98c83ff14610490578063dd62ed3e146104b9578063f2fde38b146104f657610140565b806370a082311461032a578063715018a614610367578063728d41c91461037e5780637d1db4a5146103a75780638da5cb5b146103d257610140565b806323b872dd116100fd57806323b872dd1461022c5780632fd689e314610269578063313ce5671461029457806349bd5a5e146102bf5780636d8aa8f8146102ea5780636fc3eaec1461031357610140565b806306fdde0314610145578063095ea7b3146101705780631694505e146101ad57806318160ddd146101d85780631e293c101461020357610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a61051f565b604051610167919061230b565b60405180910390f35b34801561017c57600080fd5b50610197600480360381019061019291906123c6565b61055c565b6040516101a49190612421565b60405180910390f35b3480156101b957600080fd5b506101c261057a565b6040516101cf919061249b565b60405180910390f35b3480156101e457600080fd5b506101ed6105a0565b6040516101fa91906124c5565b60405180910390f35b34801561020f57600080fd5b5061022a600480360381019061022591906124e0565b6105b0565b005b34801561023857600080fd5b50610253600480360381019061024e919061250d565b610691565b6040516102609190612421565b60405180910390f35b34801561027557600080fd5b5061027e61076a565b60405161028b91906124c5565b60405180910390f35b3480156102a057600080fd5b506102a9610770565b6040516102b6919061257c565b60405180910390f35b3480156102cb57600080fd5b506102d4610779565b6040516102e191906125a6565b60405180910390f35b3480156102f657600080fd5b50610311600480360381019061030c91906125ed565b61079f565b005b34801561031f57600080fd5b506103286107bc565b005b34801561033657600080fd5b50610351600480360381019061034c919061261a565b6107c7565b60405161035e91906124c5565b60405180910390f35b34801561037357600080fd5b5061037c610818565b005b34801561038a57600080fd5b506103a560048036038101906103a091906124e0565b61096b565b005b3480156103b357600080fd5b506103bc610a4c565b6040516103c991906124c5565b60405180910390f35b3480156103de57600080fd5b506103e7610a52565b6040516103f491906125a6565b60405180910390f35b34801561040957600080fd5b50610412610a7b565b60405161041f91906124c5565b60405180910390f35b34801561043457600080fd5b5061043d610a81565b60405161044a919061230b565b60405180910390f35b34801561045f57600080fd5b5061047a600480360381019061047591906123c6565b610abe565b6040516104879190612421565b60405180910390f35b34801561049c57600080fd5b506104b760048036038101906104b29190612647565b610adc565b005b3480156104c557600080fd5b506104e060048036038101906104db91906126ae565b610bca565b6040516104ed91906124c5565b60405180910390f35b34801561050257600080fd5b5061051d6004803603810190610518919061261a565b610c51565b005b60606040518060400160405280601481526020017f444f20594f5552204f574e205245534541524348000000000000000000000000815250905090565b6000610570610569610e12565b8484610e1a565b6001905092915050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000670de0b6b3a7640000905090565b6105b8610e12565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610645576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161063c9061273a565b60405180910390fd5b606481670de0b6b3a764000061065b9190612789565b61066591906127fa565b6014819055506064670de0b6b3a764000061068091906127fa565b601454101561068e57600080fd5b50565b600061069e848484610fe3565b61075f846106aa610e12565b61075a8560405180606001604052806028815260200161311360289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610710610e12565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117a49092919063ffffffff16565b610e1a565b600190509392505050565b60165481565b60006009905090565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b80601360166101000a81548160ff02191690831515021790555050565b6107c547611808565b565b6000610811600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611874565b9050919050565b610820610e12565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a49061273a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610973610e12565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a00576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f79061273a565b60405180910390fd5b606481670de0b6b3a7640000610a169190612789565b610a2091906127fa565b6015819055506064670de0b6b3a7640000610a3b91906127fa565b6015541015610a4957600080fd5b50565b60145481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60155481565b60606040518060400160405280600581526020017f2444594f52000000000000000000000000000000000000000000000000000000815250905090565b6000610ad2610acb610e12565b8484610fe3565b6001905092915050565b610ae4610e12565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b689061273a565b60405180910390fd5b8360088190555082600a819055508160098190555080600b819055506064600b54600954600a54600854610ba5919061282b565b610baf919061282b565b610bb9919061282b565b1115610bc457600080fd5b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610c59610e12565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ce6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cdd9061273a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610d55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4c906128d1565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610e89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8090612963565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ef8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eef906129f5565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610fd691906124c5565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611052576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104990612a87565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b890612b19565b60405180910390fd5b60008111611104576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110fb90612bab565b60405180910390fd5b61110c610a52565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561117a575061114a610a52565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156114a357601360149054906101000a900460ff166112095761119b610a52565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611208576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ff90612c3d565b60405180910390fd5b5b60145481111561124e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124590612ca9565b60405180910390fd5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146112fb57601554816112b0846107c7565b6112ba919061282b565b106112fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f190612d3b565b60405180910390fd5b5b6000611306306107c7565b90506000601654821015905060026016546113219190612789565b82106113395760026016546113369190612789565b91505b8080156113535750601360159054906101000a900460ff16155b80156113ad5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156113c55750601360169054906101000a900460ff165b801561141b5750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156114715750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156114a05761147f826118e2565b600047905067016345785d8a000081111561149e5761149d81611808565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061154a5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806115fd5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156115fc5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b1561160b5760009050611792565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156116b65750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156116ce57600854600c81905550600954600d819055505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156117795750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561179157600a54600c81905550600b54600d819055505b5b61179e84848484611b5b565b50505050565b60008383111582906117ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e3919061230b565b60405180910390fd5b50600083856117fb9190612d5b565b9050809150509392505050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611870573d6000803e3d6000fd5b5050565b60006006548211156118bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b290612e01565b60405180910390fd5b60006118c5611b88565b90506118da8184611bb390919063ffffffff16565b915050919050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561191a57611919612e21565b5b6040519080825280602002602001820160405280156119485781602001602082028036833780820191505090505b50905030816000815181106119605761195f612e50565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a07573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a2b9190612e94565b81600181518110611a3f57611a3e612e50565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611aa630601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610e1a565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611b0a959493929190612fba565b600060405180830381600087803b158015611b2457600080fd5b505af1158015611b38573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b80611b6957611b68611bfd565b5b611b74848484611c3a565b80611b8257611b81611e05565b5b50505050565b6000806000611b95611e19565b91509150611bac8183611bb390919063ffffffff16565b9250505090565b6000611bf583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611e78565b905092915050565b6000600c54148015611c1157506000600d54145b611c3857600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b600080600080600080611c4c87611edb565b955095509550955095509550611caa86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f4390919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d3f85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f8d90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d8b81611feb565b611d9584836120a8565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611df291906124c5565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b600080600060065490506000670de0b6b3a76400009050611e4d670de0b6b3a7640000600654611bb390919063ffffffff16565b821015611e6b57600654670de0b6b3a7640000935093505050611e74565b81819350935050505b9091565b60008083118290611ebf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb6919061230b565b60405180910390fd5b5060008385611ece91906127fa565b9050809150509392505050565b6000806000806000806000806000611ef88a600c54600d546120e2565b9250925092506000611f08611b88565b90506000806000611f1b8e878787612178565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000611f8583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506117a4565b905092915050565b6000808284611f9c919061282b565b905083811015611fe1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd890613060565b60405180910390fd5b8091505092915050565b6000611ff5611b88565b9050600061200c828461220190919063ffffffff16565b905061206081600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f8d90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6120bd82600654611f4390919063ffffffff16565b6006819055506120d881600754611f8d90919063ffffffff16565b6007819055505050565b60008060008061210e6064612100888a61220190919063ffffffff16565b611bb390919063ffffffff16565b90506000612138606461212a888b61220190919063ffffffff16565b611bb390919063ffffffff16565b9050600061216182612153858c611f4390919063ffffffff16565b611f4390919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612191858961220190919063ffffffff16565b905060006121a8868961220190919063ffffffff16565b905060006121bf878961220190919063ffffffff16565b905060006121e8826121da8587611f4390919063ffffffff16565b611f4390919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083036122135760009050612275565b600082846122219190612789565b905082848261223091906127fa565b14612270576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612267906130f2565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156122b557808201518184015260208101905061229a565b60008484015250505050565b6000601f19601f8301169050919050565b60006122dd8261227b565b6122e78185612286565b93506122f7818560208601612297565b612300816122c1565b840191505092915050565b6000602082019050818103600083015261232581846122d2565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061235d82612332565b9050919050565b61236d81612352565b811461237857600080fd5b50565b60008135905061238a81612364565b92915050565b6000819050919050565b6123a381612390565b81146123ae57600080fd5b50565b6000813590506123c08161239a565b92915050565b600080604083850312156123dd576123dc61232d565b5b60006123eb8582860161237b565b92505060206123fc858286016123b1565b9150509250929050565b60008115159050919050565b61241b81612406565b82525050565b60006020820190506124366000830184612412565b92915050565b6000819050919050565b600061246161245c61245784612332565b61243c565b612332565b9050919050565b600061247382612446565b9050919050565b600061248582612468565b9050919050565b6124958161247a565b82525050565b60006020820190506124b0600083018461248c565b92915050565b6124bf81612390565b82525050565b60006020820190506124da60008301846124b6565b92915050565b6000602082840312156124f6576124f561232d565b5b6000612504848285016123b1565b91505092915050565b6000806000606084860312156125265761252561232d565b5b60006125348682870161237b565b93505060206125458682870161237b565b9250506040612556868287016123b1565b9150509250925092565b600060ff82169050919050565b61257681612560565b82525050565b6000602082019050612591600083018461256d565b92915050565b6125a081612352565b82525050565b60006020820190506125bb6000830184612597565b92915050565b6125ca81612406565b81146125d557600080fd5b50565b6000813590506125e7816125c1565b92915050565b6000602082840312156126035761260261232d565b5b6000612611848285016125d8565b91505092915050565b6000602082840312156126305761262f61232d565b5b600061263e8482850161237b565b91505092915050565b600080600080608085870312156126615761266061232d565b5b600061266f878288016123b1565b9450506020612680878288016123b1565b9350506040612691878288016123b1565b92505060606126a2878288016123b1565b91505092959194509250565b600080604083850312156126c5576126c461232d565b5b60006126d38582860161237b565b92505060206126e48582860161237b565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612724602083612286565b915061272f826126ee565b602082019050919050565b6000602082019050818103600083015261275381612717565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061279482612390565b915061279f83612390565b92508282026127ad81612390565b915082820484148315176127c4576127c361275a565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061280582612390565b915061281083612390565b9250826128205761281f6127cb565b5b828204905092915050565b600061283682612390565b915061284183612390565b92508282019050808211156128595761285861275a565b5b92915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006128bb602683612286565b91506128c68261285f565b604082019050919050565b600060208201905081810360008301526128ea816128ae565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061294d602483612286565b9150612958826128f1565b604082019050919050565b6000602082019050818103600083015261297c81612940565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006129df602283612286565b91506129ea82612983565b604082019050919050565b60006020820190508181036000830152612a0e816129d2565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612a71602583612286565b9150612a7c82612a15565b604082019050919050565b60006020820190508181036000830152612aa081612a64565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612b03602383612286565b9150612b0e82612aa7565b604082019050919050565b60006020820190508181036000830152612b3281612af6565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612b95602983612286565b9150612ba082612b39565b604082019050919050565b60006020820190508181036000830152612bc481612b88565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000612c27603f83612286565b9150612c3282612bcb565b604082019050919050565b60006020820190508181036000830152612c5681612c1a565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000612c93601c83612286565b9150612c9e82612c5d565b602082019050919050565b60006020820190508181036000830152612cc281612c86565b9050919050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000612d25602383612286565b9150612d3082612cc9565b604082019050919050565b60006020820190508181036000830152612d5481612d18565b9050919050565b6000612d6682612390565b9150612d7183612390565b9250828203905081811115612d8957612d8861275a565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000612deb602a83612286565b9150612df682612d8f565b604082019050919050565b60006020820190508181036000830152612e1a81612dde565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050612e8e81612364565b92915050565b600060208284031215612eaa57612ea961232d565b5b6000612eb884828501612e7f565b91505092915050565b6000819050919050565b6000612ee6612ee1612edc84612ec1565b61243c565b612390565b9050919050565b612ef681612ecb565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612f3181612352565b82525050565b6000612f438383612f28565b60208301905092915050565b6000602082019050919050565b6000612f6782612efc565b612f718185612f07565b9350612f7c83612f18565b8060005b83811015612fad578151612f948882612f37565b9750612f9f83612f4f565b925050600181019050612f80565b5085935050505092915050565b600060a082019050612fcf60008301886124b6565b612fdc6020830187612eed565b8181036040830152612fee8186612f5c565b9050612ffd6060830185612597565b61300a60808301846124b6565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061304a601b83612286565b915061305582613014565b602082019050919050565b600060208201905081810360008301526130798161303d565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006130dc602183612286565b91506130e782613080565b604082019050919050565b6000602082019050818103600083015261310b816130cf565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122057fad344bfc2bb77a1665c0f12536a4a6ec068cd9c0e5891d0a367b04f31785764736f6c63430008110033
Deployed Bytecode
0x6080604052600436106101395760003560e01c806370a08231116100ab5780638f9a55c01161006f5780638f9a55c0146103fd57806395d89b4114610428578063a9059cbb14610453578063c98c83ff14610490578063dd62ed3e146104b9578063f2fde38b146104f657610140565b806370a082311461032a578063715018a614610367578063728d41c91461037e5780637d1db4a5146103a75780638da5cb5b146103d257610140565b806323b872dd116100fd57806323b872dd1461022c5780632fd689e314610269578063313ce5671461029457806349bd5a5e146102bf5780636d8aa8f8146102ea5780636fc3eaec1461031357610140565b806306fdde0314610145578063095ea7b3146101705780631694505e146101ad57806318160ddd146101d85780631e293c101461020357610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a61051f565b604051610167919061230b565b60405180910390f35b34801561017c57600080fd5b50610197600480360381019061019291906123c6565b61055c565b6040516101a49190612421565b60405180910390f35b3480156101b957600080fd5b506101c261057a565b6040516101cf919061249b565b60405180910390f35b3480156101e457600080fd5b506101ed6105a0565b6040516101fa91906124c5565b60405180910390f35b34801561020f57600080fd5b5061022a600480360381019061022591906124e0565b6105b0565b005b34801561023857600080fd5b50610253600480360381019061024e919061250d565b610691565b6040516102609190612421565b60405180910390f35b34801561027557600080fd5b5061027e61076a565b60405161028b91906124c5565b60405180910390f35b3480156102a057600080fd5b506102a9610770565b6040516102b6919061257c565b60405180910390f35b3480156102cb57600080fd5b506102d4610779565b6040516102e191906125a6565b60405180910390f35b3480156102f657600080fd5b50610311600480360381019061030c91906125ed565b61079f565b005b34801561031f57600080fd5b506103286107bc565b005b34801561033657600080fd5b50610351600480360381019061034c919061261a565b6107c7565b60405161035e91906124c5565b60405180910390f35b34801561037357600080fd5b5061037c610818565b005b34801561038a57600080fd5b506103a560048036038101906103a091906124e0565b61096b565b005b3480156103b357600080fd5b506103bc610a4c565b6040516103c991906124c5565b60405180910390f35b3480156103de57600080fd5b506103e7610a52565b6040516103f491906125a6565b60405180910390f35b34801561040957600080fd5b50610412610a7b565b60405161041f91906124c5565b60405180910390f35b34801561043457600080fd5b5061043d610a81565b60405161044a919061230b565b60405180910390f35b34801561045f57600080fd5b5061047a600480360381019061047591906123c6565b610abe565b6040516104879190612421565b60405180910390f35b34801561049c57600080fd5b506104b760048036038101906104b29190612647565b610adc565b005b3480156104c557600080fd5b506104e060048036038101906104db91906126ae565b610bca565b6040516104ed91906124c5565b60405180910390f35b34801561050257600080fd5b5061051d6004803603810190610518919061261a565b610c51565b005b60606040518060400160405280601481526020017f444f20594f5552204f574e205245534541524348000000000000000000000000815250905090565b6000610570610569610e12565b8484610e1a565b6001905092915050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000670de0b6b3a7640000905090565b6105b8610e12565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610645576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161063c9061273a565b60405180910390fd5b606481670de0b6b3a764000061065b9190612789565b61066591906127fa565b6014819055506064670de0b6b3a764000061068091906127fa565b601454101561068e57600080fd5b50565b600061069e848484610fe3565b61075f846106aa610e12565b61075a8560405180606001604052806028815260200161311360289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610710610e12565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117a49092919063ffffffff16565b610e1a565b600190509392505050565b60165481565b60006009905090565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b80601360166101000a81548160ff02191690831515021790555050565b6107c547611808565b565b6000610811600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611874565b9050919050565b610820610e12565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a49061273a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610973610e12565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a00576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f79061273a565b60405180910390fd5b606481670de0b6b3a7640000610a169190612789565b610a2091906127fa565b6015819055506064670de0b6b3a7640000610a3b91906127fa565b6015541015610a4957600080fd5b50565b60145481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60155481565b60606040518060400160405280600581526020017f2444594f52000000000000000000000000000000000000000000000000000000815250905090565b6000610ad2610acb610e12565b8484610fe3565b6001905092915050565b610ae4610e12565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b689061273a565b60405180910390fd5b8360088190555082600a819055508160098190555080600b819055506064600b54600954600a54600854610ba5919061282b565b610baf919061282b565b610bb9919061282b565b1115610bc457600080fd5b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610c59610e12565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ce6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cdd9061273a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610d55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4c906128d1565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610e89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8090612963565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ef8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eef906129f5565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610fd691906124c5565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611052576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104990612a87565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b890612b19565b60405180910390fd5b60008111611104576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110fb90612bab565b60405180910390fd5b61110c610a52565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561117a575061114a610a52565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156114a357601360149054906101000a900460ff166112095761119b610a52565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611208576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ff90612c3d565b60405180910390fd5b5b60145481111561124e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124590612ca9565b60405180910390fd5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146112fb57601554816112b0846107c7565b6112ba919061282b565b106112fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f190612d3b565b60405180910390fd5b5b6000611306306107c7565b90506000601654821015905060026016546113219190612789565b82106113395760026016546113369190612789565b91505b8080156113535750601360159054906101000a900460ff16155b80156113ad5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156113c55750601360169054906101000a900460ff165b801561141b5750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156114715750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156114a05761147f826118e2565b600047905067016345785d8a000081111561149e5761149d81611808565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061154a5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806115fd5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156115fc5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b1561160b5760009050611792565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156116b65750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156116ce57600854600c81905550600954600d819055505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156117795750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561179157600a54600c81905550600b54600d819055505b5b61179e84848484611b5b565b50505050565b60008383111582906117ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e3919061230b565b60405180910390fd5b50600083856117fb9190612d5b565b9050809150509392505050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611870573d6000803e3d6000fd5b5050565b60006006548211156118bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b290612e01565b60405180910390fd5b60006118c5611b88565b90506118da8184611bb390919063ffffffff16565b915050919050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561191a57611919612e21565b5b6040519080825280602002602001820160405280156119485781602001602082028036833780820191505090505b50905030816000815181106119605761195f612e50565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a07573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a2b9190612e94565b81600181518110611a3f57611a3e612e50565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611aa630601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610e1a565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611b0a959493929190612fba565b600060405180830381600087803b158015611b2457600080fd5b505af1158015611b38573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b80611b6957611b68611bfd565b5b611b74848484611c3a565b80611b8257611b81611e05565b5b50505050565b6000806000611b95611e19565b91509150611bac8183611bb390919063ffffffff16565b9250505090565b6000611bf583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611e78565b905092915050565b6000600c54148015611c1157506000600d54145b611c3857600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b600080600080600080611c4c87611edb565b955095509550955095509550611caa86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f4390919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d3f85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f8d90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d8b81611feb565b611d9584836120a8565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611df291906124c5565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b600080600060065490506000670de0b6b3a76400009050611e4d670de0b6b3a7640000600654611bb390919063ffffffff16565b821015611e6b57600654670de0b6b3a7640000935093505050611e74565b81819350935050505b9091565b60008083118290611ebf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb6919061230b565b60405180910390fd5b5060008385611ece91906127fa565b9050809150509392505050565b6000806000806000806000806000611ef88a600c54600d546120e2565b9250925092506000611f08611b88565b90506000806000611f1b8e878787612178565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000611f8583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506117a4565b905092915050565b6000808284611f9c919061282b565b905083811015611fe1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd890613060565b60405180910390fd5b8091505092915050565b6000611ff5611b88565b9050600061200c828461220190919063ffffffff16565b905061206081600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f8d90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6120bd82600654611f4390919063ffffffff16565b6006819055506120d881600754611f8d90919063ffffffff16565b6007819055505050565b60008060008061210e6064612100888a61220190919063ffffffff16565b611bb390919063ffffffff16565b90506000612138606461212a888b61220190919063ffffffff16565b611bb390919063ffffffff16565b9050600061216182612153858c611f4390919063ffffffff16565b611f4390919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612191858961220190919063ffffffff16565b905060006121a8868961220190919063ffffffff16565b905060006121bf878961220190919063ffffffff16565b905060006121e8826121da8587611f4390919063ffffffff16565b611f4390919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083036122135760009050612275565b600082846122219190612789565b905082848261223091906127fa565b14612270576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612267906130f2565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156122b557808201518184015260208101905061229a565b60008484015250505050565b6000601f19601f8301169050919050565b60006122dd8261227b565b6122e78185612286565b93506122f7818560208601612297565b612300816122c1565b840191505092915050565b6000602082019050818103600083015261232581846122d2565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061235d82612332565b9050919050565b61236d81612352565b811461237857600080fd5b50565b60008135905061238a81612364565b92915050565b6000819050919050565b6123a381612390565b81146123ae57600080fd5b50565b6000813590506123c08161239a565b92915050565b600080604083850312156123dd576123dc61232d565b5b60006123eb8582860161237b565b92505060206123fc858286016123b1565b9150509250929050565b60008115159050919050565b61241b81612406565b82525050565b60006020820190506124366000830184612412565b92915050565b6000819050919050565b600061246161245c61245784612332565b61243c565b612332565b9050919050565b600061247382612446565b9050919050565b600061248582612468565b9050919050565b6124958161247a565b82525050565b60006020820190506124b0600083018461248c565b92915050565b6124bf81612390565b82525050565b60006020820190506124da60008301846124b6565b92915050565b6000602082840312156124f6576124f561232d565b5b6000612504848285016123b1565b91505092915050565b6000806000606084860312156125265761252561232d565b5b60006125348682870161237b565b93505060206125458682870161237b565b9250506040612556868287016123b1565b9150509250925092565b600060ff82169050919050565b61257681612560565b82525050565b6000602082019050612591600083018461256d565b92915050565b6125a081612352565b82525050565b60006020820190506125bb6000830184612597565b92915050565b6125ca81612406565b81146125d557600080fd5b50565b6000813590506125e7816125c1565b92915050565b6000602082840312156126035761260261232d565b5b6000612611848285016125d8565b91505092915050565b6000602082840312156126305761262f61232d565b5b600061263e8482850161237b565b91505092915050565b600080600080608085870312156126615761266061232d565b5b600061266f878288016123b1565b9450506020612680878288016123b1565b9350506040612691878288016123b1565b92505060606126a2878288016123b1565b91505092959194509250565b600080604083850312156126c5576126c461232d565b5b60006126d38582860161237b565b92505060206126e48582860161237b565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612724602083612286565b915061272f826126ee565b602082019050919050565b6000602082019050818103600083015261275381612717565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061279482612390565b915061279f83612390565b92508282026127ad81612390565b915082820484148315176127c4576127c361275a565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061280582612390565b915061281083612390565b9250826128205761281f6127cb565b5b828204905092915050565b600061283682612390565b915061284183612390565b92508282019050808211156128595761285861275a565b5b92915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006128bb602683612286565b91506128c68261285f565b604082019050919050565b600060208201905081810360008301526128ea816128ae565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061294d602483612286565b9150612958826128f1565b604082019050919050565b6000602082019050818103600083015261297c81612940565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006129df602283612286565b91506129ea82612983565b604082019050919050565b60006020820190508181036000830152612a0e816129d2565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612a71602583612286565b9150612a7c82612a15565b604082019050919050565b60006020820190508181036000830152612aa081612a64565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612b03602383612286565b9150612b0e82612aa7565b604082019050919050565b60006020820190508181036000830152612b3281612af6565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612b95602983612286565b9150612ba082612b39565b604082019050919050565b60006020820190508181036000830152612bc481612b88565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000612c27603f83612286565b9150612c3282612bcb565b604082019050919050565b60006020820190508181036000830152612c5681612c1a565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000612c93601c83612286565b9150612c9e82612c5d565b602082019050919050565b60006020820190508181036000830152612cc281612c86565b9050919050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000612d25602383612286565b9150612d3082612cc9565b604082019050919050565b60006020820190508181036000830152612d5481612d18565b9050919050565b6000612d6682612390565b9150612d7183612390565b9250828203905081811115612d8957612d8861275a565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000612deb602a83612286565b9150612df682612d8f565b604082019050919050565b60006020820190508181036000830152612e1a81612dde565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050612e8e81612364565b92915050565b600060208284031215612eaa57612ea961232d565b5b6000612eb884828501612e7f565b91505092915050565b6000819050919050565b6000612ee6612ee1612edc84612ec1565b61243c565b612390565b9050919050565b612ef681612ecb565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612f3181612352565b82525050565b6000612f438383612f28565b60208301905092915050565b6000602082019050919050565b6000612f6782612efc565b612f718185612f07565b9350612f7c83612f18565b8060005b83811015612fad578151612f948882612f37565b9750612f9f83612f4f565b925050600181019050612f80565b5085935050505092915050565b600060a082019050612fcf60008301886124b6565b612fdc6020830187612eed565b8181036040830152612fee8186612f5c565b9050612ffd6060830185612597565b61300a60808301846124b6565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061304a601b83612286565b915061305582613014565b602082019050919050565b600060208201905081810360008301526130798161303d565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006130dc602183612286565b91506130e782613080565b604082019050919050565b6000602082019050818103600083015261310b816130cf565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122057fad344bfc2bb77a1665c0f12536a4a6ec068cd9c0e5891d0a367b04f31785764736f6c63430008110033
Deployed Bytecode Sourcemap
4068:12260:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6421:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7346:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5332:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6698:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15960:176;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7547:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5625:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6607:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5380:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12035:94;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11942:85;;;;;;;;;;;;;:::i;:::-;;6801:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1555:148;;;;;;;;;;;;;:::i;:::-;;16144:179;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5529:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1341:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5573:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6512:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6947:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15535:386;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7154:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1711:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6421:83;6458:13;6491:5;;;;;;;;;;;;;;;;;6484:12;;6421:83;:::o;7346:193::-;7448:4;7470:39;7479:12;:10;:12::i;:::-;7493:7;7502:6;7470:8;:39::i;:::-;7527:4;7520:11;;7346:193;;;;:::o;5332:41::-;;;;;;;;;;;;;:::o;6698:95::-;6751:7;4624:18;6771:14;;6698:95;:::o;15960:176::-;1478:12;:10;:12::i;:::-;1468:22;;:6;;;;;;;;;;:22;;;1460:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16077:3:::1;16065:11;4624:18;16057:19;;;;:::i;:::-;:23;;;;:::i;:::-;16042:12;:38;;;;16124:3;4624:18;16116:11;;;;:::i;:::-;16100:12;;:27;;16091:37;;;::::0;::::1;;15960:176:::0;:::o;7547:446::-;7679:4;7696:36;7706:6;7714:9;7725:6;7696:9;:36::i;:::-;7743:220;7766:6;7787:12;:10;:12::i;:::-;7814:138;7870:6;7814:138;;;;;;;;;;;;;;;;;:11;:19;7826:6;7814:19;;;;;;;;;;;;;;;:33;7834:12;:10;:12::i;:::-;7814:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;7743:8;:220::i;:::-;7981:4;7974:11;;7547:446;;;;;:::o;5625:51::-;;;;:::o;6607:83::-;6648:5;4298:1;6666:16;;6607:83;:::o;5380:28::-;;;;;;;;;;;;;:::o;12035:94::-;12109:12;12095:11;;:26;;;;;;;;;;;;;;;;;;12035:94;:::o;11942:85::-;11984:35;11997:21;11984:12;:35::i;:::-;11942:85::o;6801:138::-;6867:7;6894:37;6914:7;:16;6922:7;6914:16;;;;;;;;;;;;;;;;6894:19;:37::i;:::-;6887:44;;6801:138;;;:::o;1555:148::-;1478:12;:10;:12::i;:::-;1468:22;;:6;;;;;;;;;;:22;;;1460:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1662:1:::1;1625:40;;1646:6;::::0;::::1;;;;;;;;1625:40;;;;;;;;;;;;1693:1;1676:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1555:148::o:0;16144:179::-;1478:12;:10;:12::i;:::-;1468:22;;:6;;;;;;;;;;:22;;;1460:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16261:3:::1;16247:13;4624:18;16239:21;;;;:::i;:::-;:25;;;;:::i;:::-;16222:14;:42;;;;16311:3;4624:18;16303:11;;;;:::i;:::-;16285:14;;:29;;16276:39;;;::::0;::::1;;16144:179:::0;:::o;5529:37::-;;;;:::o;1341:79::-;1379:7;1406:6;;;;;;;;;;;1399:13;;1341:79;:::o;5573:45::-;;;;:::o;6512:87::-;6551:13;6584:7;;;;;;;;;;;;;;;;;6577:14;;6512:87;:::o;6947:199::-;7052:4;7074:42;7084:12;:10;:12::i;:::-;7098:9;7109:6;7074:9;:42::i;:::-;7134:4;7127:11;;6947:199;;;;:::o;15535:386::-;1478:12;:10;:12::i;:::-;1468:22;;:6;;;;;;;;;;:22;;;1460:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15696:13:::1;15679:14;:30;;;;15738:14;15720:15;:32;;;;15778:11;15763:12;:26;;;;15816:12;15800:13;:28;;;;15909:3;15892:13;;15879:12;;15863:15;;15848:14;;:30;;;;:::i;:::-;:43;;;;:::i;:::-;:57;;;;:::i;:::-;:64;;15839:74;;;::::0;::::1;;15535:386:::0;;;;:::o;7154:184::-;7271:7;7303:11;:18;7315:5;7303:18;;;;;;;;;;;;;;;:27;7322:7;7303:27;;;;;;;;;;;;;;;;7296:34;;7154:184;;;;:::o;1711:244::-;1478:12;:10;:12::i;:::-;1468:22;;:6;;;;;;;;;;:22;;;1460:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1820:1:::1;1800:22;;:8;:22;;::::0;1792:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1910:8;1881:38;;1902:6;::::0;::::1;;;;;;;;1881:38;;;;;;;;;;;;1939:8;1930:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1711:244:::0;:::o;100:98::-;153:7;180:10;173:17;;100:98;:::o;8684:369::-;8828:1;8811:19;;:5;:19;;;8803:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8909:1;8890:21;;:7;:21;;;8882:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8991:6;8961:11;:18;8973:5;8961:18;;;;;;;;;;;;;;;:27;8980:7;8961:27;;;;;;;;;;;;;;;:36;;;;9029:7;9013:32;;9022:5;9013:32;;;9038:6;9013:32;;;;;;:::i;:::-;;;;;;;;8684:369;;;:::o;9061:2275::-;9199:1;9183:18;;:4;:18;;;9175:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9276:1;9262:16;;:2;:16;;;9254:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9346:1;9337:6;:10;9329:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9418:7;:5;:7::i;:::-;9410:15;;:4;:15;;;;:32;;;;;9435:7;:5;:7::i;:::-;9429:13;;:2;:13;;;;9410:32;9406:1204;;;9499:11;;;;;;;;;;;9494:144;;9547:7;:5;:7::i;:::-;9539:15;;:4;:15;;;9531:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;9494:144;9672:12;;9662:6;:22;;9654:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;9743:13;;;;;;;;;;;9737:19;;:2;:19;;;9734:146;;9810:14;;9801:6;9785:13;9795:2;9785:9;:13::i;:::-;:22;;;;:::i;:::-;:39;9777:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;9734:146;9896:28;9927:24;9945:4;9927:9;:24::i;:::-;9896:55;;9966:12;10005:19;;9981:20;:43;;9966:58;;10088:1;10068:19;;:21;;;;:::i;:::-;10044:20;:45;10041:142;;10166:1;10146:19;;:21;;;;:::i;:::-;10123:44;;10041:142;10203:7;:18;;;;;10215:6;;;;;;;;;;;10214:7;10203:18;:43;;;;;10233:13;;;;;;;;;;;10225:21;;:4;:21;;;;10203:43;:58;;;;;10250:11;;;;;;;;;;;10203:58;:87;;;;;10266:18;:24;10285:4;10266:24;;;;;;;;;;;;;;;;;;;;;;;;;10265:25;10203:87;:114;;;;;10295:18;:22;10314:2;10295:22;;;;;;;;;;;;;;;;;;;;;;;;;10294:23;10203:114;10199:400;;;10338:38;10355:20;10338:16;:38::i;:::-;10395:26;10424:21;10395:50;;10489:18;10468;:39;10464:120;;;10532:32;10545:18;10532:12;:32::i;:::-;10464:120;10319:280;10199:400;9444:1166;;9406:1204;10622:12;10637:4;10622:19;;10686:18;:24;10705:4;10686:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;10714:18;:22;10733:2;10714:22;;;;;;;;;;;;;;;;;;;;;;;;;10686:50;10685:102;;;;10750:13;;;;;;;;;;;10742:21;;:4;:21;;;;:44;;;;;10773:13;;;;;;;;;;;10767:19;;:2;:19;;;;10742:44;10685:102;10681:594;;;10814:5;10804:15;;10681:594;;;10897:13;;;;;;;;;;;10889:21;;:4;:21;;;:55;;;;;10928:15;;;;;;;;;;;10914:30;;:2;:30;;;;10889:55;10886:162;;;10977:14;;10965:9;:26;;;;11020:12;;11010:7;:22;;;;10886:162;11107:13;;;;;;;;;;;11101:19;;:2;:19;;;:55;;;;;11140:15;;;;;;;;;;;11124:32;;:4;:32;;;;11101:55;11097:165;;;11189:15;;11177:9;:27;;;;11233:13;;11223:7;:23;;;;11097:165;10681:594;11287:41;11302:4;11308:2;11312:6;11320:7;11287:14;:41::i;:::-;9164:2172;9061:2275;;;:::o;2319:224::-;2439:7;2472:1;2467;:6;;2475:12;2459:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2499:9;2515:1;2511;:5;;;;:::i;:::-;2499:17;;2534:1;2527:8;;;2319:224;;;;;:::o;11835:99::-;11892:17;;;;;;;;;;;:26;;:34;11919:6;11892:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11835:99;:::o;8001:323::-;8096:7;8154;;8143;:18;;8121:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;8242:19;8264:10;:8;:10::i;:::-;8242:32;;8292:24;8304:11;8292:7;:11;;:24;;;;:::i;:::-;8285:31;;;8001:323;;;:::o;11344:483::-;5779:4;5770:6;;:13;;;;;;;;;;;;;;;;;;11422:21:::1;11460:1;11446:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11422:40;;11491:4;11473;11478:1;11473:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11517:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11507:4;11512:1;11507:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11550:62;11567:4;11582:15;;;;;;;;;;;11600:11;11550:8;:62::i;:::-;11623:15;;;;;;;;;;;:66;;;11704:11;11730:1;11746:4;11773;11793:15;11623:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11411:416;5815:5:::0;5806:6;;:14;;;;;;;;;;;;;;;;;;11344:483;:::o;12137:282::-;12293:7;12288:28;;12302:14;:12;:14::i;:::-;12288:28;12327:44;12345:6;12353:9;12364:6;12327:17;:44::i;:::-;12387:7;12382:29;;12396:15;:13;:15::i;:::-;12382:29;12137:282;;;;:::o;15098:164::-;15140:7;15161:15;15178;15197:19;:17;:19::i;:::-;15160:56;;;;15234:20;15246:7;15234;:11;;:20;;;;:::i;:::-;15227:27;;;;15098:164;:::o;2805:132::-;2863:7;2890:39;2894:1;2897;2890:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2883:46;;2805:132;;;;:::o;8332:219::-;8392:1;8379:9;;:14;:30;;;;;8408:1;8397:7;;:12;8379:30;8411:7;8375:43;8450:9;;8430:17;:29;;;;8488:7;;8470:15;:25;;;;8520:1;8508:9;:13;;;;8542:1;8532:7;:11;;;;8332:219;:::o;12427:610::-;12574:15;12604:23;12642:12;12669:23;12707:12;12734:13;12761:19;12772:7;12761:10;:19::i;:::-;12559:221;;;;;;;;;;;;12809:28;12829:7;12809;:15;12817:6;12809:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;12791:7;:15;12799:6;12791:15;;;;;;;;;;;;;;;:46;;;;12869:39;12892:15;12869:7;:18;12877:9;12869:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;12848:7;:18;12856:9;12848:18;;;;;;;;;;;;;;;:60;;;;12919:16;12929:5;12919:9;:16::i;:::-;12946:23;12958:4;12964;12946:11;:23::i;:::-;13002:9;12985:44;;12994:6;12985:44;;;13013:15;12985:44;;;;;;:::i;:::-;;;;;;;;12548:489;;;;;;12427:610;;;:::o;8559:117::-;8615:17;;8603:9;:29;;;;8653:15;;8643:7;:25;;;;8559:117::o;15270:257::-;15321:7;15330;15350:15;15368:7;;15350:25;;15386:15;4624:18;15386:25;;15436:20;4624:18;15436:7;;:11;;:20;;;;:::i;:::-;15426:7;:30;15422:61;;;15466:7;;4624:18;15458:25;;;;;;;;15422:61;15502:7;15511;15494:25;;;;;;15270:257;;;:::o;2945:223::-;3065:7;3097:1;3093;:5;3100:12;3085:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3124:9;3140:1;3136;:5;;;;:::i;:::-;3124:17;;3159:1;3152:8;;;2945:223;;;;;:::o;13456:615::-;13556:7;13578;13600;13622;13644;13666;13702:23;13727:12;13741:13;13771:40;13783:7;13792:9;;13803:7;;13771:11;:40::i;:::-;13701:110;;;;;;13822:19;13844:10;:8;:10::i;:::-;13822:32;;13866:15;13883:23;13908:12;13937:46;13949:7;13958:4;13964:5;13971:11;13937;:46::i;:::-;13865:118;;;;;;14002:7;14011:15;14028:4;14034:15;14051:4;14057:5;13994:69;;;;;;;;;;;;;;;;;;;13456:615;;;;;;;:::o;2175:136::-;2233:7;2260:43;2264:1;2267;2260:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2253:50;;2175:136;;;;:::o;1988:179::-;2046:7;2066:9;2082:1;2078;:5;;;;:::i;:::-;2066:17;;2107:1;2102;:6;;2094:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2158:1;2151:8;;;1988:179;;;;:::o;13045:211::-;13098:19;13120:10;:8;:10::i;:::-;13098:32;;13141:13;13157:22;13167:11;13157:5;:9;;:22;;;;:::i;:::-;13141:38;;13215:33;13242:5;13215:7;:22;13231:4;13215:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;13190:7;:22;13206:4;13190:22;;;;;;;;;;;;;;;:58;;;;13087:169;;13045:211;:::o;13264:147::-;13342:17;13354:4;13342:7;;:11;;:17;;;;:::i;:::-;13332:7;:27;;;;13383:20;13398:4;13383:10;;:14;;:20;;;;:::i;:::-;13370:10;:33;;;;13264:147;;:::o;14079:469::-;14248:7;14270;14292;14327:12;14342:30;14368:3;14342:21;14354:8;14342:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;14327:45;;14383:13;14399:28;14423:3;14399:19;14411:6;14399:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;14383:44;;14438:23;14464:28;14486:5;14464:17;14476:4;14464:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;14438:54;;14511:15;14528:4;14534:5;14503:37;;;;;;;;;14079:469;;;;;;;:::o;14556:534::-;14750:7;14772;14794;14829:15;14847:24;14859:11;14847:7;:11;;:24;;;;:::i;:::-;14829:42;;14882:12;14897:21;14906:11;14897:4;:8;;:21;;;;:::i;:::-;14882:36;;14929:13;14945:22;14955:11;14945:5;:9;;:22;;;;:::i;:::-;14929:38;;14978:23;15004:28;15026:5;15004:17;15016:4;15004:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;14978:54;;15051:7;15060:15;15077:4;15043:39;;;;;;;;;;14556:534;;;;;;;;:::o;2551:246::-;2609:7;2638:1;2633;:6;2629:47;;2663:1;2656:8;;;;2629:47;2686:9;2702:1;2698;:5;;;;:::i;:::-;2686:17;;2731:1;2726;2722;:5;;;;:::i;:::-;:10;2714:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2788:1;2781:8;;;2551:246;;;;;:::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:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:60::-;3474:3;3495:5;3488:12;;3446:60;;;:::o;3512:142::-;3562:9;3595:53;3613:34;3622:24;3640:5;3622:24;:::i;:::-;3613:34;:::i;:::-;3595:53;:::i;:::-;3582:66;;3512:142;;;:::o;3660:126::-;3710:9;3743:37;3774:5;3743:37;:::i;:::-;3730:50;;3660:126;;;:::o;3792:152::-;3868:9;3901:37;3932:5;3901:37;:::i;:::-;3888:50;;3792:152;;;:::o;3950:183::-;4063:63;4120:5;4063:63;:::i;:::-;4058:3;4051:76;3950:183;;:::o;4139:274::-;4258:4;4296:2;4285:9;4281:18;4273:26;;4309:97;4403:1;4392:9;4388:17;4379:6;4309:97;:::i;:::-;4139:274;;;;:::o;4419:118::-;4506:24;4524:5;4506:24;:::i;:::-;4501:3;4494:37;4419:118;;:::o;4543:222::-;4636:4;4674:2;4663:9;4659:18;4651:26;;4687:71;4755:1;4744:9;4740:17;4731:6;4687:71;:::i;:::-;4543:222;;;;:::o;4771:329::-;4830:6;4879:2;4867:9;4858:7;4854:23;4850:32;4847:119;;;4885:79;;:::i;:::-;4847:119;5005:1;5030:53;5075:7;5066:6;5055:9;5051:22;5030:53;:::i;:::-;5020:63;;4976:117;4771:329;;;;:::o;5106:619::-;5183:6;5191;5199;5248:2;5236:9;5227:7;5223:23;5219:32;5216:119;;;5254:79;;:::i;:::-;5216:119;5374:1;5399:53;5444:7;5435:6;5424:9;5420:22;5399:53;:::i;:::-;5389:63;;5345:117;5501:2;5527:53;5572:7;5563:6;5552:9;5548:22;5527:53;:::i;:::-;5517:63;;5472:118;5629:2;5655:53;5700:7;5691:6;5680:9;5676:22;5655:53;:::i;:::-;5645:63;;5600:118;5106:619;;;;;:::o;5731:86::-;5766:7;5806:4;5799:5;5795:16;5784:27;;5731:86;;;:::o;5823:112::-;5906:22;5922:5;5906:22;:::i;:::-;5901:3;5894:35;5823:112;;:::o;5941:214::-;6030:4;6068:2;6057:9;6053:18;6045:26;;6081:67;6145:1;6134:9;6130:17;6121:6;6081:67;:::i;:::-;5941:214;;;;:::o;6161:118::-;6248:24;6266:5;6248:24;:::i;:::-;6243:3;6236:37;6161:118;;:::o;6285:222::-;6378:4;6416:2;6405:9;6401:18;6393:26;;6429:71;6497:1;6486:9;6482:17;6473:6;6429:71;:::i;:::-;6285:222;;;;:::o;6513:116::-;6583:21;6598:5;6583:21;:::i;:::-;6576:5;6573:32;6563:60;;6619:1;6616;6609:12;6563:60;6513:116;:::o;6635:133::-;6678:5;6716:6;6703:20;6694:29;;6732:30;6756:5;6732:30;:::i;:::-;6635:133;;;;:::o;6774:323::-;6830:6;6879:2;6867:9;6858:7;6854:23;6850:32;6847:119;;;6885:79;;:::i;:::-;6847:119;7005:1;7030:50;7072:7;7063:6;7052:9;7048:22;7030:50;:::i;:::-;7020:60;;6976:114;6774:323;;;;:::o;7103:329::-;7162:6;7211:2;7199:9;7190:7;7186:23;7182:32;7179:119;;;7217:79;;:::i;:::-;7179:119;7337:1;7362:53;7407:7;7398:6;7387:9;7383:22;7362:53;:::i;:::-;7352:63;;7308:117;7103:329;;;;:::o;7438:765::-;7524:6;7532;7540;7548;7597:3;7585:9;7576:7;7572:23;7568:33;7565:120;;;7604:79;;:::i;:::-;7565:120;7724:1;7749:53;7794:7;7785:6;7774:9;7770:22;7749:53;:::i;:::-;7739:63;;7695:117;7851:2;7877:53;7922:7;7913:6;7902:9;7898:22;7877:53;:::i;:::-;7867:63;;7822:118;7979:2;8005:53;8050:7;8041:6;8030:9;8026:22;8005:53;:::i;:::-;7995:63;;7950:118;8107:2;8133:53;8178:7;8169:6;8158:9;8154:22;8133:53;:::i;:::-;8123:63;;8078:118;7438:765;;;;;;;:::o;8209:474::-;8277:6;8285;8334:2;8322:9;8313:7;8309:23;8305:32;8302:119;;;8340:79;;:::i;:::-;8302:119;8460:1;8485:53;8530:7;8521:6;8510:9;8506:22;8485:53;:::i;:::-;8475:63;;8431:117;8587:2;8613:53;8658:7;8649:6;8638:9;8634:22;8613:53;:::i;:::-;8603:63;;8558:118;8209:474;;;;;:::o;8689:182::-;8829:34;8825:1;8817:6;8813:14;8806:58;8689:182;:::o;8877:366::-;9019:3;9040:67;9104:2;9099:3;9040:67;:::i;:::-;9033:74;;9116:93;9205:3;9116:93;:::i;:::-;9234:2;9229:3;9225:12;9218:19;;8877:366;;;:::o;9249:419::-;9415:4;9453:2;9442:9;9438:18;9430:26;;9502:9;9496:4;9492:20;9488:1;9477:9;9473:17;9466:47;9530:131;9656:4;9530:131;:::i;:::-;9522:139;;9249:419;;;:::o;9674:180::-;9722:77;9719:1;9712:88;9819:4;9816:1;9809:15;9843:4;9840:1;9833:15;9860:410;9900:7;9923:20;9941:1;9923:20;:::i;:::-;9918:25;;9957:20;9975:1;9957:20;:::i;:::-;9952:25;;10012:1;10009;10005:9;10034:30;10052:11;10034:30;:::i;:::-;10023:41;;10213:1;10204:7;10200:15;10197:1;10194:22;10174:1;10167:9;10147:83;10124:139;;10243:18;;:::i;:::-;10124:139;9908:362;9860:410;;;;:::o;10276:180::-;10324:77;10321:1;10314:88;10421:4;10418:1;10411:15;10445:4;10442:1;10435:15;10462:185;10502:1;10519:20;10537:1;10519:20;:::i;:::-;10514:25;;10553:20;10571:1;10553:20;:::i;:::-;10548:25;;10592:1;10582:35;;10597:18;;:::i;:::-;10582:35;10639:1;10636;10632:9;10627:14;;10462:185;;;;:::o;10653:191::-;10693:3;10712:20;10730:1;10712:20;:::i;:::-;10707:25;;10746:20;10764:1;10746:20;:::i;:::-;10741:25;;10789:1;10786;10782:9;10775:16;;10810:3;10807:1;10804:10;10801:36;;;10817:18;;:::i;:::-;10801:36;10653:191;;;;:::o;10850:225::-;10990:34;10986:1;10978:6;10974:14;10967:58;11059:8;11054:2;11046:6;11042:15;11035:33;10850:225;:::o;11081:366::-;11223:3;11244:67;11308:2;11303:3;11244:67;:::i;:::-;11237:74;;11320:93;11409:3;11320:93;:::i;:::-;11438:2;11433:3;11429:12;11422:19;;11081:366;;;:::o;11453:419::-;11619:4;11657:2;11646:9;11642:18;11634:26;;11706:9;11700:4;11696:20;11692:1;11681:9;11677:17;11670:47;11734:131;11860:4;11734:131;:::i;:::-;11726:139;;11453:419;;;:::o;11878:223::-;12018:34;12014:1;12006:6;12002:14;11995:58;12087:6;12082:2;12074:6;12070:15;12063:31;11878:223;:::o;12107:366::-;12249:3;12270:67;12334:2;12329:3;12270:67;:::i;:::-;12263:74;;12346:93;12435:3;12346:93;:::i;:::-;12464:2;12459:3;12455:12;12448:19;;12107:366;;;:::o;12479:419::-;12645:4;12683:2;12672:9;12668:18;12660:26;;12732:9;12726:4;12722:20;12718:1;12707:9;12703:17;12696:47;12760:131;12886:4;12760:131;:::i;:::-;12752:139;;12479:419;;;:::o;12904:221::-;13044:34;13040:1;13032:6;13028:14;13021:58;13113:4;13108:2;13100:6;13096:15;13089:29;12904:221;:::o;13131:366::-;13273:3;13294:67;13358:2;13353:3;13294:67;:::i;:::-;13287:74;;13370:93;13459:3;13370:93;:::i;:::-;13488:2;13483:3;13479:12;13472:19;;13131:366;;;:::o;13503:419::-;13669:4;13707:2;13696:9;13692:18;13684:26;;13756:9;13750:4;13746:20;13742:1;13731:9;13727:17;13720:47;13784:131;13910:4;13784:131;:::i;:::-;13776:139;;13503:419;;;:::o;13928:224::-;14068:34;14064:1;14056:6;14052:14;14045:58;14137:7;14132:2;14124:6;14120:15;14113:32;13928:224;:::o;14158:366::-;14300:3;14321:67;14385:2;14380:3;14321:67;:::i;:::-;14314:74;;14397:93;14486:3;14397:93;:::i;:::-;14515:2;14510:3;14506:12;14499:19;;14158:366;;;:::o;14530:419::-;14696:4;14734:2;14723:9;14719:18;14711:26;;14783:9;14777:4;14773:20;14769:1;14758:9;14754:17;14747:47;14811:131;14937:4;14811:131;:::i;:::-;14803:139;;14530:419;;;:::o;14955:222::-;15095:34;15091:1;15083:6;15079:14;15072:58;15164:5;15159:2;15151:6;15147:15;15140:30;14955:222;:::o;15183:366::-;15325:3;15346:67;15410:2;15405:3;15346:67;:::i;:::-;15339:74;;15422:93;15511:3;15422:93;:::i;:::-;15540:2;15535:3;15531:12;15524:19;;15183:366;;;:::o;15555:419::-;15721:4;15759:2;15748:9;15744:18;15736:26;;15808:9;15802:4;15798:20;15794:1;15783:9;15779:17;15772:47;15836:131;15962:4;15836:131;:::i;:::-;15828:139;;15555:419;;;:::o;15980:228::-;16120:34;16116:1;16108:6;16104:14;16097:58;16189:11;16184:2;16176:6;16172:15;16165:36;15980:228;:::o;16214:366::-;16356:3;16377:67;16441:2;16436:3;16377:67;:::i;:::-;16370:74;;16453:93;16542:3;16453:93;:::i;:::-;16571:2;16566:3;16562:12;16555:19;;16214:366;;;:::o;16586:419::-;16752:4;16790:2;16779:9;16775:18;16767:26;;16839:9;16833:4;16829:20;16825:1;16814:9;16810:17;16803:47;16867:131;16993:4;16867:131;:::i;:::-;16859:139;;16586:419;;;:::o;17011:250::-;17151:34;17147:1;17139:6;17135:14;17128:58;17220:33;17215:2;17207:6;17203:15;17196:58;17011:250;:::o;17267:366::-;17409:3;17430:67;17494:2;17489:3;17430:67;:::i;:::-;17423:74;;17506:93;17595:3;17506:93;:::i;:::-;17624:2;17619:3;17615:12;17608:19;;17267:366;;;:::o;17639:419::-;17805:4;17843:2;17832:9;17828:18;17820:26;;17892:9;17886:4;17882:20;17878:1;17867:9;17863:17;17856:47;17920:131;18046:4;17920:131;:::i;:::-;17912:139;;17639:419;;;:::o;18064:178::-;18204:30;18200:1;18192:6;18188:14;18181:54;18064:178;:::o;18248:366::-;18390:3;18411:67;18475:2;18470:3;18411:67;:::i;:::-;18404:74;;18487:93;18576:3;18487:93;:::i;:::-;18605:2;18600:3;18596:12;18589:19;;18248:366;;;:::o;18620:419::-;18786:4;18824:2;18813:9;18809:18;18801:26;;18873:9;18867:4;18863:20;18859:1;18848:9;18844:17;18837:47;18901:131;19027:4;18901:131;:::i;:::-;18893:139;;18620:419;;;:::o;19045:222::-;19185:34;19181:1;19173:6;19169:14;19162:58;19254:5;19249:2;19241:6;19237:15;19230:30;19045:222;:::o;19273:366::-;19415:3;19436:67;19500:2;19495:3;19436:67;:::i;:::-;19429:74;;19512:93;19601:3;19512:93;:::i;:::-;19630:2;19625:3;19621:12;19614:19;;19273:366;;;:::o;19645:419::-;19811:4;19849:2;19838:9;19834:18;19826:26;;19898:9;19892:4;19888:20;19884:1;19873:9;19869:17;19862:47;19926:131;20052:4;19926:131;:::i;:::-;19918:139;;19645:419;;;:::o;20070:194::-;20110:4;20130:20;20148:1;20130:20;:::i;:::-;20125:25;;20164:20;20182:1;20164:20;:::i;:::-;20159:25;;20208:1;20205;20201:9;20193:17;;20232:1;20226:4;20223:11;20220:37;;;20237:18;;:::i;:::-;20220:37;20070:194;;;;:::o;20270:229::-;20410:34;20406:1;20398:6;20394:14;20387:58;20479:12;20474:2;20466:6;20462:15;20455:37;20270:229;:::o;20505:366::-;20647:3;20668:67;20732:2;20727:3;20668:67;:::i;:::-;20661:74;;20744:93;20833:3;20744:93;:::i;:::-;20862:2;20857:3;20853:12;20846:19;;20505:366;;;:::o;20877:419::-;21043:4;21081:2;21070:9;21066:18;21058:26;;21130:9;21124:4;21120:20;21116:1;21105:9;21101:17;21094:47;21158:131;21284:4;21158:131;:::i;:::-;21150:139;;20877:419;;;:::o;21302:180::-;21350:77;21347:1;21340:88;21447:4;21444:1;21437:15;21471:4;21468:1;21461:15;21488:180;21536:77;21533:1;21526:88;21633:4;21630:1;21623:15;21657:4;21654:1;21647:15;21674:143;21731:5;21762:6;21756:13;21747:22;;21778:33;21805:5;21778:33;:::i;:::-;21674:143;;;;:::o;21823:351::-;21893:6;21942:2;21930:9;21921:7;21917:23;21913:32;21910:119;;;21948:79;;:::i;:::-;21910:119;22068:1;22093:64;22149:7;22140:6;22129:9;22125:22;22093:64;:::i;:::-;22083:74;;22039:128;21823:351;;;;:::o;22180:85::-;22225:7;22254:5;22243:16;;22180:85;;;:::o;22271:158::-;22329:9;22362:61;22380:42;22389:32;22415:5;22389:32;:::i;:::-;22380:42;:::i;:::-;22362:61;:::i;:::-;22349:74;;22271:158;;;:::o;22435:147::-;22530:45;22569:5;22530:45;:::i;:::-;22525:3;22518:58;22435:147;;:::o;22588:114::-;22655:6;22689:5;22683:12;22673:22;;22588:114;;;:::o;22708:184::-;22807:11;22841:6;22836:3;22829:19;22881:4;22876:3;22872:14;22857:29;;22708:184;;;;:::o;22898:132::-;22965:4;22988:3;22980:11;;23018:4;23013:3;23009:14;23001:22;;22898:132;;;:::o;23036:108::-;23113:24;23131:5;23113:24;:::i;:::-;23108:3;23101:37;23036:108;;:::o;23150:179::-;23219:10;23240:46;23282:3;23274:6;23240:46;:::i;:::-;23318:4;23313:3;23309:14;23295:28;;23150:179;;;;:::o;23335:113::-;23405:4;23437;23432:3;23428:14;23420:22;;23335:113;;;:::o;23484:732::-;23603:3;23632:54;23680:5;23632:54;:::i;:::-;23702:86;23781:6;23776:3;23702:86;:::i;:::-;23695:93;;23812:56;23862:5;23812:56;:::i;:::-;23891:7;23922:1;23907:284;23932:6;23929:1;23926:13;23907:284;;;24008:6;24002:13;24035:63;24094:3;24079:13;24035:63;:::i;:::-;24028:70;;24121:60;24174:6;24121:60;:::i;:::-;24111:70;;23967:224;23954:1;23951;23947:9;23942:14;;23907:284;;;23911:14;24207:3;24200:10;;23608:608;;;23484:732;;;;:::o;24222:831::-;24485:4;24523:3;24512:9;24508:19;24500:27;;24537:71;24605:1;24594:9;24590:17;24581:6;24537:71;:::i;:::-;24618:80;24694:2;24683:9;24679:18;24670:6;24618:80;:::i;:::-;24745:9;24739:4;24735:20;24730:2;24719:9;24715:18;24708:48;24773:108;24876:4;24867:6;24773:108;:::i;:::-;24765:116;;24891:72;24959:2;24948:9;24944:18;24935:6;24891:72;:::i;:::-;24973:73;25041:3;25030:9;25026:19;25017:6;24973:73;:::i;:::-;24222:831;;;;;;;;:::o;25059:177::-;25199:29;25195:1;25187:6;25183:14;25176:53;25059:177;:::o;25242:366::-;25384:3;25405:67;25469:2;25464:3;25405:67;:::i;:::-;25398:74;;25481:93;25570:3;25481:93;:::i;:::-;25599:2;25594:3;25590:12;25583:19;;25242:366;;;:::o;25614:419::-;25780:4;25818:2;25807:9;25803:18;25795:26;;25867:9;25861:4;25857:20;25853:1;25842:9;25838:17;25831:47;25895:131;26021:4;25895:131;:::i;:::-;25887:139;;25614:419;;;:::o;26039:220::-;26179:34;26175:1;26167:6;26163:14;26156:58;26248:3;26243:2;26235:6;26231:15;26224:28;26039:220;:::o;26265:366::-;26407:3;26428:67;26492:2;26487:3;26428:67;:::i;:::-;26421:74;;26504:93;26593:3;26504:93;:::i;:::-;26622:2;26617:3;26613:12;26606:19;;26265:366;;;:::o;26637:419::-;26803:4;26841:2;26830:9;26826:18;26818:26;;26890:9;26884:4;26880:20;26876:1;26865:9;26861:17;26854:47;26918:131;27044:4;26918:131;:::i;:::-;26910:139;;26637:419;;;:::o
Swarm Source
ipfs://57fad344bfc2bb77a1665c0f12536a4a6ec068cd9c0e5891d0a367b04f317857
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 27 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.