ERC-20
Overview
Max Total Supply
100,000,000,000 SYNC
Holders
41
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
782,000,000 SYNCValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
SyncAI
Compiler Version
v0.8.28+commit.7893614a
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: UNLICENSE // ░▒▓█████████▓▒░ SYNCAI PROTOCOL - DECENTRALIZED INFRASTRUCTURE ░▒▓█████████▓▒░ // // *–<>––––––––––––––––––––––––––––––––\/–––––––––––––––––––––––––––––––––<>–* // // SYNC: https://sync-ai.net // COMM: https://t.me/SYNC_PORTAL // INFO: https://x.com/ETH_SYNC // DOCS: https://hackmd.io/@SyncAI/SyncAI // // *–<>––––––––––––––––––––––––––––––––/\–––––––––––––––––––––––––––––––––<>–* // // ABSTRACT: SyncAI Protocol redefines Web3 infrastructure, eliminating centralized // hosting dependencies through IPFS integration, tokenized incentives, and // community governance. A comprehensive solution ensuring DeFi protocols remain // truly decentralized - from smart contracts to frontend interfaces. // // NO SINGLE POINT OF FAILURE * NO DNS ATTACKS * NO DOMAIN EXPIRY * 4EVER UPTIME pragma solidity 0.8.28; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); } contract SyncAI is Context, IERC20, Ownable { using SafeMath for uint256; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _isExcludedFromFee; mapping (address => bool) private bots; mapping(address => string) private _contentHashes; mapping(address => bool) private _verifiedPublishers; mapping(string => uint256) private _contentPinningScores; mapping(address => uint256) private _hostingCredits; address payable private _syncWallet; string private constant _name = unicode"SyncAI"; string private constant _symbol = unicode"SYNC"; uint256 private _initialBuyTax=15; uint256 private _initialSellTax=15; uint256 private _finalBuyTax=0; uint256 private _finalSellTax=0; uint256 private _reduceBuyTaxAt=20; uint256 private _reduceSellTaxAt=25; uint256 private _preventSwapBefore=15; uint256 private _transferTax=50; uint256 private _buyCount=0; uint8 private constant _decimals = 9; uint256 private constant _tTotal = 100000000000 * 10**_decimals; uint256 public _maxTxAmount = 920000000 * 10**_decimals; uint256 public _maxWalletSize = 920000000 * 10**_decimals; uint256 public _taxSwapThreshold= 320000000 * 10**_decimals; uint256 public _maxTaxSwap= 920000000 * 10**_decimals; event ContentPublished(address indexed publisher, string contentHash); event PublisherVerified(address indexed publisher); event PinningScoreUpdated(string contentHash, uint256 newScore); event HostingCreditsAdded(address indexed user, uint256 amount); IUniswapV2Router02 private uniswapV2Router; address private uniswapV2Pair; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = false; uint256 private sellCount = 0; uint256 private lastSellBlock = 0; event MaxTxAmountUpdated(uint _maxTxAmount); event TransferTaxUpdated(uint _tax); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor () { _syncWallet = payable(_msgSender()); _balances[_msgSender()] = _tTotal; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[address(0xD152f549545093347A162Dce210e7293f1452150)] = true; _isExcludedFromFee[_syncWallet] = true; emit Transfer(address(0), _msgSender(), _tTotal); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public pure override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer(address from, address to, uint256 amount) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); uint256 taxAmount=0; if (from != owner() && to != owner()) { require(!bots[from] && !bots[to]); if(_buyCount==0){ taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100); } if(_buyCount>0){ taxAmount = amount.mul(_transferTax).div(100); } if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) { require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount."); require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize."); taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100); _buyCount++; } if(to == uniswapV2Pair && from!= address(this) ){ taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100); } uint256 contractTokenBalance = balanceOf(address(this)); if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxSwapThreshold && _buyCount > _preventSwapBefore) { if (block.number > lastSellBlock) { sellCount = 0; } require(sellCount < 3, "Only 3 sells per block!"); swapTokensForEth(min(amount, min(contractTokenBalance, _maxTaxSwap))); uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) { sendETHToFee(address(this).balance); } sellCount++; lastSellBlock = block.number; } } if(taxAmount>0){ _balances[address(this)]=_balances[address(this)].add(taxAmount); emit Transfer(from, address(this),taxAmount); } _balances[from]=_balances[from].sub(amount); _balances[to]=_balances[to].add(amount.sub(taxAmount)); emit Transfer(from, to, amount.sub(taxAmount)); } function registerContent(string memory ipfsHash) external { require(bytes(ipfsHash).length > 0, "Invalid IPFS hash"); _contentHashes[msg.sender] = ipfsHash; emit ContentPublished(msg.sender, ipfsHash); } function verifyPublisher(address publisher) external onlyOwner { require(!_verifiedPublishers[publisher], "Already verified"); _verifiedPublishers[publisher] = true; emit PublisherVerified(publisher); } function isVerifiedPublisher(address publisher) external view returns (bool) { return _verifiedPublishers[publisher]; } function updatePinningScore(string memory contentHash, uint256 score) external { require(_verifiedPublishers[msg.sender], "Not verified publisher"); require(score <= 100, "Score must be <= 100"); _contentPinningScores[contentHash] = score; emit PinningScoreUpdated(contentHash, score); } function getPinningScore(string memory contentHash) external view returns (uint256) { return _contentPinningScores[contentHash]; } function addHostingCredits(address user, uint256 amount) external onlyOwner { _hostingCredits[user] = _hostingCredits[user].add(amount); emit HostingCreditsAdded(user, amount); } function getHostingCredits(address user) external view returns (uint256) { return _hostingCredits[user]; } function getContentHash(address publisher) external view returns (string memory) { return _contentHashes[publisher]; } function min(uint256 a, uint256 b) private pure returns (uint256){ return (a>b)?b:a; } 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 removeLimits() external onlyOwner{ _maxTxAmount = _tTotal; _maxWalletSize=_tTotal; emit MaxTxAmountUpdated(_tTotal); } function removeTransferTax() external onlyOwner{ _transferTax = 0; emit TransferTaxUpdated(0); } function sendETHToFee(uint256 amount) private { _syncWallet.transfer(amount); } function openTrading() external onlyOwner() { require(!tradingOpen,"trading is already open"); uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); _approve(address(this), address(uniswapV2Router), _tTotal); uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH()); uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp); IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max); swapEnabled = true; tradingOpen = true; } function reduceFee(uint256 _newFee) external{ require(_msgSender()==_syncWallet); require(_newFee<=_finalBuyTax && _newFee<=_finalSellTax); _finalBuyTax=_newFee; _finalSellTax=_newFee; } receive() external payable {} function manualSwap() external { require(_msgSender()==_syncWallet); uint256 tokenBalance=balanceOf(address(this)); if(tokenBalance>0){ swapTokensForEth(tokenBalance); } uint256 ethBalance=address(this).balance; if(ethBalance>0){ sendETHToFee(ethBalance); } } function manualsend() external { require(_msgSender()==_syncWallet); uint256 contractETHBalance = address(this).balance; sendETHToFee(contractETHBalance); } }
{ "optimizer": { "enabled": false, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "remappings": [] }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"publisher","type":"address"},{"indexed":false,"internalType":"string","name":"contentHash","type":"string"}],"name":"ContentPublished","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"HostingCreditsAdded","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":false,"internalType":"string","name":"contentHash","type":"string"},{"indexed":false,"internalType":"uint256","name":"newScore","type":"uint256"}],"name":"PinningScoreUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"publisher","type":"address"}],"name":"PublisherVerified","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_tax","type":"uint256"}],"name":"TransferTaxUpdated","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"addHostingCredits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"publisher","type":"address"}],"name":"getContentHash","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getHostingCredits","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"contentHash","type":"string"}],"name":"getPinningScore","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"publisher","type":"address"}],"name":"isVerifiedPublisher","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","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":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newFee","type":"uint256"}],"name":"reduceFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"ipfsHash","type":"string"}],"name":"registerContent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeTransferTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"contentHash","type":"string"},{"internalType":"uint256","name":"score","type":"uint256"}],"name":"updatePinningScore","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"publisher","type":"address"}],"name":"verifyPublisher","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052600f600a55600f600b555f600c555f600d556014600e556019600f55600f60105560326011555f6012556009600a61003c9190610623565b6336d6160061004b919061066d565b6013556009600a61005c9190610623565b6336d6160061006b919061066d565b6014556009600a61007c9190610623565b631312d00061008b919061066d565b6015556009600a61009c9190610623565b6336d616006100ab919061066d565b6016555f601860156101000a81548160ff0219169083151502179055505f601860166101000a81548160ff0219169083151502179055505f6019555f601a553480156100f5575f5ffd5b505f61010561048460201b60201c565b9050805f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506101af61048460201b60201c565b60095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a6101fc9190610623565b64174876e80061020c919061066d565b60015f61021d61048460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f61026d61048b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f73d152f549545093347a162dce210e7293f145215073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506103fe61048460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a61045a9190610623565b64174876e80061046a919061066d565b60405161047791906106bd565b60405180910390a36106d6565b5f33905090565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f5f8291508390505b6001851115610534578086048111156105105761050f6104b2565b5b600185161561051f5780820291505b808102905061052d856104df565b94506104f4565b94509492505050565b5f8261054c5760019050610607565b81610559575f9050610607565b816001811461056f5760028114610579576105a8565b6001915050610607565b60ff84111561058b5761058a6104b2565b5b8360020a9150848211156105a2576105a16104b2565b5b50610607565b5060208310610133831016604e8410600b84101617156105dd5782820a9050838111156105d8576105d76104b2565b5b610607565b6105ea84848460016104eb565b92509050818404811115610601576106006104b2565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f61062d8261060e565b915061063883610617565b92506106657fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461053d565b905092915050565b5f6106778261060e565b91506106828361060e565b92508282026106908161060e565b915082820484148315176106a7576106a66104b2565b5b5092915050565b6106b78161060e565b82525050565b5f6020820190506106d05f8301846106ae565b92915050565b6140b1806106e35f395ff3fe6080604052600436106101c5575f3560e01c8063751039fc116100f6578063a9059cbb11610094578063c9567bf911610063578063c9567bf9146105fc578063dd62ed3e14610612578063ec1f3f631461064e578063ef30c76614610676576101cc565b8063a9059cbb14610546578063ac4d9cb214610582578063b49e5f94146105aa578063bf474bed146105d2576101cc565b80638da5cb5b116100d05780638da5cb5b1461048c5780638f9a55c0146104b657806395d89b41146104e0578063a721e6631461050a576101cc565b8063751039fc146104245780637d1db4a51461043a5780638cf1771414610464576101cc565b8063313ce5671161016357806351bc3c851161013d57806351bc3c85146103a65780636fc3eaec146103bc57806370a08231146103d2578063715018a61461040e576101cc565b8063313ce5671461031857806336ef12d5146103425780633c4a03581461036a576101cc565b8063109daa991161019f578063109daa991461026057806318160ddd1461027657806323b872dd146102a057806327ec2638146102dc576101cc565b806306fdde03146101d0578063095ea7b3146101fa5780630faee56f14610236576101cc565b366101cc57005b5f5ffd5b3480156101db575f5ffd5b506101e46106b2565b6040516101f19190612b1d565b60405180910390f35b348015610205575f5ffd5b50610220600480360381019061021b9190612bdb565b6106ef565b60405161022d9190612c33565b60405180910390f35b348015610241575f5ffd5b5061024a61070c565b6040516102579190612c5b565b60405180910390f35b34801561026b575f5ffd5b50610274610712565b005b348015610281575f5ffd5b5061028a6107e7565b6040516102979190612c5b565b60405180910390f35b3480156102ab575f5ffd5b506102c660048036038101906102c19190612c74565b61080b565b6040516102d39190612c33565b60405180910390f35b3480156102e7575f5ffd5b5061030260048036038101906102fd9190612cc4565b6108df565b60405161030f9190612c5b565b60405180910390f35b348015610323575f5ffd5b5061032c610925565b6040516103399190612d0a565b60405180910390f35b34801561034d575f5ffd5b5061036860048036038101906103639190612cc4565b61092d565b005b348015610375575f5ffd5b50610390600480360381019061038b9190612cc4565b610ae7565b60405161039d9190612c33565b60405180910390f35b3480156103b1575f5ffd5b506103ba610b39565b005b3480156103c7575f5ffd5b506103d0610bd0565b005b3480156103dd575f5ffd5b506103f860048036038101906103f39190612cc4565b610c3f565b6040516104059190612c5b565b60405180910390f35b348015610419575f5ffd5b50610422610c85565b005b34801561042f575f5ffd5b50610438610dd5565b005b348015610445575f5ffd5b5061044e610f08565b60405161045b9190612c5b565b60405180910390f35b34801561046f575f5ffd5b5061048a60048036038101906104859190612bdb565b610f0e565b005b348015610497575f5ffd5b506104a0611086565b6040516104ad9190612d32565b60405180910390f35b3480156104c1575f5ffd5b506104ca6110ad565b6040516104d79190612c5b565b60405180910390f35b3480156104eb575f5ffd5b506104f46110b3565b6040516105019190612b1d565b60405180910390f35b348015610515575f5ffd5b50610530600480360381019061052b9190612cc4565b6110f0565b60405161053d9190612b1d565b60405180910390f35b348015610551575f5ffd5b5061056c60048036038101906105679190612bdb565b6111bd565b6040516105799190612c33565b60405180910390f35b34801561058d575f5ffd5b506105a860048036038101906105a39190612e77565b6111da565b005b3480156105b5575f5ffd5b506105d060048036038101906105cb9190612ebe565b6112b9565b005b3480156105dd575f5ffd5b506105e66113e6565b6040516105f39190612c5b565b60405180910390f35b348015610607575f5ffd5b506106106113ec565b005b34801561061d575f5ffd5b5061063860048036038101906106339190612f18565b611910565b6040516106459190612c5b565b60405180910390f35b348015610659575f5ffd5b50610674600480360381019061066f9190612f56565b611992565b005b348015610681575f5ffd5b5061069c60048036038101906106979190612e77565b611a1e565b6040516106a99190612c5b565b60405180910390f35b60606040518060400160405280600681526020017f53796e6341490000000000000000000000000000000000000000000000000000815250905090565b5f6107026106fb611a45565b8484611a4c565b6001905092915050565b60165481565b61071a611a45565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079e90612fcb565b60405180910390fd5b5f6011819055507fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de35f6040516107dd919061302b565b60405180910390a1565b5f6009600a6107f691906131a0565b64174876e80061080691906131ea565b905090565b5f610817848484611c0f565b6108d484610823611a45565b6108cf856040518060600160405280602881526020016140546028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610886611a45565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546125999092919063ffffffff16565b611a4c565b600190509392505050565b5f60085f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f6009905090565b610935611a45565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b990612fcb565b60405180910390fd5b60065f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615610a4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4390613275565b60405180910390fd5b600160065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167fd9d37de68946e8069e3dad02349aa8632b4ff20ea29ab5fcf849801fe86c9cb360405160405180910390a250565b5f60065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b79611a45565b73ffffffffffffffffffffffffffffffffffffffff1614610b98575f5ffd5b5f610ba230610c3f565b90505f811115610bb657610bb5816125fb565b5b5f4790505f811115610bcc57610bcb81612866565b5b5050565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c10611a45565b73ffffffffffffffffffffffffffffffffffffffff1614610c2f575f5ffd5b5f479050610c3c81612866565b50565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610c8d611a45565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1190612fcb565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f5f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610ddd611a45565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6190612fcb565b60405180910390fd5b6009600a610e7891906131a0565b64174876e800610e8891906131ea565b6013819055506009600a610e9c91906131a0565b64174876e800610eac91906131ea565b6014819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610ee191906131a0565b64174876e800610ef191906131ea565b604051610efe9190612c5b565b60405180910390a1565b60135481565b610f16611a45565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fa3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9a90612fcb565b60405180910390fd5b610ff38160085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546128ce90919063ffffffff16565b60085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff167f287f8d41f2feb9a36b1e1ad6fdc110129a5e4d65e34f348b0caabc50df6a0b398260405161107a9190612c5b565b60405180910390a25050565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60145481565b60606040518060400160405280600481526020017f53594e4300000000000000000000000000000000000000000000000000000000815250905090565b606060055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20805461113a906132c0565b80601f0160208091040260200160405190810160405280929190818152602001828054611166906132c0565b80156111b15780601f10611188576101008083540402835291602001916111b1565b820191905f5260205f20905b81548152906001019060200180831161119457829003601f168201915b50505050509050919050565b5f6111d06111c9611a45565b8484611c0f565b6001905092915050565b5f81511161121d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112149061333a565b60405180910390fd5b8060055f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20908161126791906134ef565b503373ffffffffffffffffffffffffffffffffffffffff167fc8c3a0a983e3fc29e3fd652fe567c6dcb7953589345c5c0f71f7ce5f3e27c235826040516112ae9190612b1d565b60405180910390a250565b60065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16611342576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133990613608565b60405180910390fd5b6064811115611386576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137d90613670565b60405180910390fd5b8060078360405161139791906136c8565b9081526020016040518091039020819055507f89a044634b1f876acc370afda4c32a57d9d8f32d1dc14977f9fb57137adbbef382826040516113da9291906136de565b60405180910390a15050565b60155481565b6113f4611a45565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611481576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147890612fcb565b60405180910390fd5b601860149054906101000a900460ff16156114d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c890613756565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60175f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061156e3060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a61155991906131a0565b64174876e80061156991906131ea565b611a4c565b60175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115d8573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115fc9190613788565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611682573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116a69190613788565b6040518363ffffffff1660e01b81526004016116c39291906137b3565b6020604051808303815f875af11580156116df573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117039190613788565b60185f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061178a30610c3f565b5f5f611794611086565b426040518863ffffffff1660e01b81526004016117b6969594939291906137da565b60606040518083038185885af11580156117d2573d5f5f3e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906117f7919061384d565b50505060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161189792919061389d565b6020604051808303815f875af11580156118b3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118d791906138ee565b506001601860166101000a81548160ff0219169083151502179055506001601860146101000a81548160ff021916908315150217905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166119d2611a45565b73ffffffffffffffffffffffffffffffffffffffff16146119f1575f5ffd5b600c548111158015611a055750600d548111155b611a0d575f5ffd5b80600c8190555080600d8190555050565b5f600782604051611a2f91906136c8565b9081526020016040518091039020549050919050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611aba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab190613989565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1f90613a17565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611c029190612c5b565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611c7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7490613aa5565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ceb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ce290613b33565b60405180910390fd5b5f8111611d2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2490613bc1565b60405180910390fd5b5f5f9050611d39611086565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611da75750611d77611086565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156122e95760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611e4a575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611e52575f5ffd5b5f60125403611e9a57611e976064611e89600e5460125411611e7657600a54611e7a565b600c545b8561292b90919063ffffffff16565b6129a290919063ffffffff16565b90505b5f6012541115611ecf57611ecc6064611ebe6011548561292b90919063ffffffff16565b6129a290919063ffffffff16565b90505b60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611f78575060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611fcb575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156120c357601354821115612015576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200c90613c29565b60405180910390fd5b6014548261202285610c3f565b61202c9190613c47565b111561206d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161206490613cc4565b60405180910390fd5b6120a9606461209b600e546012541161208857600a5461208c565b600c545b8561292b90919063ffffffff16565b6129a290919063ffffffff16565b905060125f8154809291906120bd90613ce2565b91905055505b60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561214b57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561218f5761218c606461217e600f546012541161216b57600b5461216f565b600d545b8561292b90919063ffffffff16565b6129a290919063ffffffff16565b90505b5f61219930610c3f565b9050601860159054906101000a900460ff16158015612204575060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b801561221c5750601860169054906101000a900460ff165b8015612229575060155481115b80156122385750601054601254115b156122e757601a5443111561224f575f6019819055505b600360195410612294576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161228b90613d73565b60405180910390fd5b6122b16122ac846122a7846016546129eb565b6129eb565b6125fb565b5f4790505f8111156122c7576122c647612866565b5b60195f8154809291906122d990613ce2565b919050555043601a81905550505b505b5f8111156123e8576123418160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546128ce90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516123df9190612c5b565b60405180910390a35b6124388260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612a0390919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506124db61248f8284612a0390919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546128ce90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61257e8486612a0390919063ffffffff16565b60405161258b9190612c5b565b60405180910390a350505050565b5f8383111582906125e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125d79190612b1d565b60405180910390fd5b505f83856125ee9190613d91565b9050809150509392505050565b6001601860156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561263257612631612d53565b5b6040519080825280602002602001820160405280156126605781602001602082028036833780820191505090505b50905030815f8151811061267757612676613dc4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561271b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061273f9190613788565b8160018151811061275357612752613dc4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506127b93060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611a4c565b60175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161281b959493929190613ea8565b5f604051808303815f87803b158015612832575f5ffd5b505af1158015612844573d5f5f3e3d5ffd5b50505050505f601860156101000a81548160ff02191690831515021790555050565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156128ca573d5f5f3e3d5ffd5b5050565b5f5f82846128dc9190613c47565b905083811015612921576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161291890613f4a565b60405180910390fd5b8091505092915050565b5f5f830361293b575f905061299c565b5f828461294891906131ea565b90508284826129579190613f95565b14612997576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161298e90614035565b60405180910390fd5b809150505b92915050565b5f6129e383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612a4c565b905092915050565b5f8183116129f957826129fb565b815b905092915050565b5f612a4483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612599565b905092915050565b5f5f83118290612a92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a899190612b1d565b60405180910390fd5b505f8385612aa09190613f95565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f612aef82612aad565b612af98185612ab7565b9350612b09818560208601612ac7565b612b1281612ad5565b840191505092915050565b5f6020820190508181035f830152612b358184612ae5565b905092915050565b5f604051905090565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612b7782612b4e565b9050919050565b612b8781612b6d565b8114612b91575f5ffd5b50565b5f81359050612ba281612b7e565b92915050565b5f819050919050565b612bba81612ba8565b8114612bc4575f5ffd5b50565b5f81359050612bd581612bb1565b92915050565b5f5f60408385031215612bf157612bf0612b46565b5b5f612bfe85828601612b94565b9250506020612c0f85828601612bc7565b9150509250929050565b5f8115159050919050565b612c2d81612c19565b82525050565b5f602082019050612c465f830184612c24565b92915050565b612c5581612ba8565b82525050565b5f602082019050612c6e5f830184612c4c565b92915050565b5f5f5f60608486031215612c8b57612c8a612b46565b5b5f612c9886828701612b94565b9350506020612ca986828701612b94565b9250506040612cba86828701612bc7565b9150509250925092565b5f60208284031215612cd957612cd8612b46565b5b5f612ce684828501612b94565b91505092915050565b5f60ff82169050919050565b612d0481612cef565b82525050565b5f602082019050612d1d5f830184612cfb565b92915050565b612d2c81612b6d565b82525050565b5f602082019050612d455f830184612d23565b92915050565b5f5ffd5b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612d8982612ad5565b810181811067ffffffffffffffff82111715612da857612da7612d53565b5b80604052505050565b5f612dba612b3d565b9050612dc68282612d80565b919050565b5f67ffffffffffffffff821115612de557612de4612d53565b5b612dee82612ad5565b9050602081019050919050565b828183375f83830152505050565b5f612e1b612e1684612dcb565b612db1565b905082815260208101848484011115612e3757612e36612d4f565b5b612e42848285612dfb565b509392505050565b5f82601f830112612e5e57612e5d612d4b565b5b8135612e6e848260208601612e09565b91505092915050565b5f60208284031215612e8c57612e8b612b46565b5b5f82013567ffffffffffffffff811115612ea957612ea8612b4a565b5b612eb584828501612e4a565b91505092915050565b5f5f60408385031215612ed457612ed3612b46565b5b5f83013567ffffffffffffffff811115612ef157612ef0612b4a565b5b612efd85828601612e4a565b9250506020612f0e85828601612bc7565b9150509250929050565b5f5f60408385031215612f2e57612f2d612b46565b5b5f612f3b85828601612b94565b9250506020612f4c85828601612b94565b9150509250929050565b5f60208284031215612f6b57612f6a612b46565b5b5f612f7884828501612bc7565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612fb5602083612ab7565b9150612fc082612f81565b602082019050919050565b5f6020820190508181035f830152612fe281612fa9565b9050919050565b5f819050919050565b5f819050919050565b5f61301561301061300b84612fe9565b612ff2565b612ba8565b9050919050565b61302581612ffb565b82525050565b5f60208201905061303e5f83018461301c565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f5f8291508390505b60018511156130c6578086048111156130a2576130a1613044565b5b60018516156130b15780820291505b80810290506130bf85613071565b9450613086565b94509492505050565b5f826130de5760019050613199565b816130eb575f9050613199565b8160018114613101576002811461310b5761313a565b6001915050613199565b60ff84111561311d5761311c613044565b5b8360020a91508482111561313457613133613044565b5b50613199565b5060208310610133831016604e8410600b841016171561316f5782820a90508381111561316a57613169613044565b5b613199565b61317c848484600161307d565b9250905081840481111561319357613192613044565b5b81810290505b9392505050565b5f6131aa82612ba8565b91506131b583612cef565b92506131e27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846130cf565b905092915050565b5f6131f482612ba8565b91506131ff83612ba8565b925082820261320d81612ba8565b9150828204841483151761322457613223613044565b5b5092915050565b7f416c7265616479207665726966696564000000000000000000000000000000005f82015250565b5f61325f601083612ab7565b915061326a8261322b565b602082019050919050565b5f6020820190508181035f83015261328c81613253565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806132d757607f821691505b6020821081036132ea576132e9613293565b5b50919050565b7f496e76616c6964204950465320686173680000000000000000000000000000005f82015250565b5f613324601183612ab7565b915061332f826132f0565b602082019050919050565b5f6020820190508181035f83015261335181613318565b9050919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026133b47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82613379565b6133be8683613379565b95508019841693508086168417925050509392505050565b5f6133f06133eb6133e684612ba8565b612ff2565b612ba8565b9050919050565b5f819050919050565b613409836133d6565b61341d613415826133f7565b848454613385565b825550505050565b5f5f905090565b613434613425565b61343f818484613400565b505050565b5b81811015613462576134575f8261342c565b600181019050613445565b5050565b601f8211156134a75761347881613358565b6134818461336a565b81016020851015613490578190505b6134a461349c8561336a565b830182613444565b50505b505050565b5f82821c905092915050565b5f6134c75f19846008026134ac565b1980831691505092915050565b5f6134df83836134b8565b9150826002028217905092915050565b6134f882612aad565b67ffffffffffffffff81111561351157613510612d53565b5b61351b82546132c0565b613526828285613466565b5f60209050601f831160018114613557575f8415613545578287015190505b61354f85826134d4565b8655506135b6565b601f19841661356586613358565b5f5b8281101561358c57848901518255600182019150602085019450602081019050613567565b868310156135a957848901516135a5601f8916826134b8565b8355505b6001600288020188555050505b505050505050565b7f4e6f74207665726966696564207075626c6973686572000000000000000000005f82015250565b5f6135f2601683612ab7565b91506135fd826135be565b602082019050919050565b5f6020820190508181035f83015261361f816135e6565b9050919050565b7f53636f7265206d757374206265203c3d203130300000000000000000000000005f82015250565b5f61365a601483612ab7565b915061366582613626565b602082019050919050565b5f6020820190508181035f8301526136878161364e565b9050919050565b5f81905092915050565b5f6136a282612aad565b6136ac818561368e565b93506136bc818560208601612ac7565b80840191505092915050565b5f6136d38284613698565b915081905092915050565b5f6040820190508181035f8301526136f68185612ae5565b90506137056020830184612c4c565b9392505050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f613740601783612ab7565b915061374b8261370c565b602082019050919050565b5f6020820190508181035f83015261376d81613734565b9050919050565b5f8151905061378281612b7e565b92915050565b5f6020828403121561379d5761379c612b46565b5b5f6137aa84828501613774565b91505092915050565b5f6040820190506137c65f830185612d23565b6137d36020830184612d23565b9392505050565b5f60c0820190506137ed5f830189612d23565b6137fa6020830188612c4c565b613807604083018761301c565b613814606083018661301c565b6138216080830185612d23565b61382e60a0830184612c4c565b979650505050505050565b5f8151905061384781612bb1565b92915050565b5f5f5f6060848603121561386457613863612b46565b5b5f61387186828701613839565b935050602061388286828701613839565b925050604061389386828701613839565b9150509250925092565b5f6040820190506138b05f830185612d23565b6138bd6020830184612c4c565b9392505050565b6138cd81612c19565b81146138d7575f5ffd5b50565b5f815190506138e8816138c4565b92915050565b5f6020828403121561390357613902612b46565b5b5f613910848285016138da565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613973602483612ab7565b915061397e82613919565b604082019050919050565b5f6020820190508181035f8301526139a081613967565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613a01602283612ab7565b9150613a0c826139a7565b604082019050919050565b5f6020820190508181035f830152613a2e816139f5565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613a8f602583612ab7565b9150613a9a82613a35565b604082019050919050565b5f6020820190508181035f830152613abc81613a83565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613b1d602383612ab7565b9150613b2882613ac3565b604082019050919050565b5f6020820190508181035f830152613b4a81613b11565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f613bab602983612ab7565b9150613bb682613b51565b604082019050919050565b5f6020820190508181035f830152613bd881613b9f565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f613c13601983612ab7565b9150613c1e82613bdf565b602082019050919050565b5f6020820190508181035f830152613c4081613c07565b9050919050565b5f613c5182612ba8565b9150613c5c83612ba8565b9250828201905080821115613c7457613c73613044565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f613cae601a83612ab7565b9150613cb982613c7a565b602082019050919050565b5f6020820190508181035f830152613cdb81613ca2565b9050919050565b5f613cec82612ba8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613d1e57613d1d613044565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f613d5d601783612ab7565b9150613d6882613d29565b602082019050919050565b5f6020820190508181035f830152613d8a81613d51565b9050919050565b5f613d9b82612ba8565b9150613da683612ba8565b9250828203905081811115613dbe57613dbd613044565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613e2381612b6d565b82525050565b5f613e348383613e1a565b60208301905092915050565b5f602082019050919050565b5f613e5682613df1565b613e608185613dfb565b9350613e6b83613e0b565b805f5b83811015613e9b578151613e828882613e29565b9750613e8d83613e40565b925050600181019050613e6e565b5085935050505092915050565b5f60a082019050613ebb5f830188612c4c565b613ec8602083018761301c565b8181036040830152613eda8186613e4c565b9050613ee96060830185612d23565b613ef66080830184612c4c565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613f34601b83612ab7565b9150613f3f82613f00565b602082019050919050565b5f6020820190508181035f830152613f6181613f28565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613f9f82612ba8565b9150613faa83612ba8565b925082613fba57613fb9613f68565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61401f602183612ab7565b915061402a82613fc5565b604082019050919050565b5f6020820190508181035f83015261404c81614013565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220549a132213a4bb2b5a37fabaad21aa19b346bec07e1fd5a78cc74890a0c3559c64736f6c634300081c0033
Deployed Bytecode
0x6080604052600436106101c5575f3560e01c8063751039fc116100f6578063a9059cbb11610094578063c9567bf911610063578063c9567bf9146105fc578063dd62ed3e14610612578063ec1f3f631461064e578063ef30c76614610676576101cc565b8063a9059cbb14610546578063ac4d9cb214610582578063b49e5f94146105aa578063bf474bed146105d2576101cc565b80638da5cb5b116100d05780638da5cb5b1461048c5780638f9a55c0146104b657806395d89b41146104e0578063a721e6631461050a576101cc565b8063751039fc146104245780637d1db4a51461043a5780638cf1771414610464576101cc565b8063313ce5671161016357806351bc3c851161013d57806351bc3c85146103a65780636fc3eaec146103bc57806370a08231146103d2578063715018a61461040e576101cc565b8063313ce5671461031857806336ef12d5146103425780633c4a03581461036a576101cc565b8063109daa991161019f578063109daa991461026057806318160ddd1461027657806323b872dd146102a057806327ec2638146102dc576101cc565b806306fdde03146101d0578063095ea7b3146101fa5780630faee56f14610236576101cc565b366101cc57005b5f5ffd5b3480156101db575f5ffd5b506101e46106b2565b6040516101f19190612b1d565b60405180910390f35b348015610205575f5ffd5b50610220600480360381019061021b9190612bdb565b6106ef565b60405161022d9190612c33565b60405180910390f35b348015610241575f5ffd5b5061024a61070c565b6040516102579190612c5b565b60405180910390f35b34801561026b575f5ffd5b50610274610712565b005b348015610281575f5ffd5b5061028a6107e7565b6040516102979190612c5b565b60405180910390f35b3480156102ab575f5ffd5b506102c660048036038101906102c19190612c74565b61080b565b6040516102d39190612c33565b60405180910390f35b3480156102e7575f5ffd5b5061030260048036038101906102fd9190612cc4565b6108df565b60405161030f9190612c5b565b60405180910390f35b348015610323575f5ffd5b5061032c610925565b6040516103399190612d0a565b60405180910390f35b34801561034d575f5ffd5b5061036860048036038101906103639190612cc4565b61092d565b005b348015610375575f5ffd5b50610390600480360381019061038b9190612cc4565b610ae7565b60405161039d9190612c33565b60405180910390f35b3480156103b1575f5ffd5b506103ba610b39565b005b3480156103c7575f5ffd5b506103d0610bd0565b005b3480156103dd575f5ffd5b506103f860048036038101906103f39190612cc4565b610c3f565b6040516104059190612c5b565b60405180910390f35b348015610419575f5ffd5b50610422610c85565b005b34801561042f575f5ffd5b50610438610dd5565b005b348015610445575f5ffd5b5061044e610f08565b60405161045b9190612c5b565b60405180910390f35b34801561046f575f5ffd5b5061048a60048036038101906104859190612bdb565b610f0e565b005b348015610497575f5ffd5b506104a0611086565b6040516104ad9190612d32565b60405180910390f35b3480156104c1575f5ffd5b506104ca6110ad565b6040516104d79190612c5b565b60405180910390f35b3480156104eb575f5ffd5b506104f46110b3565b6040516105019190612b1d565b60405180910390f35b348015610515575f5ffd5b50610530600480360381019061052b9190612cc4565b6110f0565b60405161053d9190612b1d565b60405180910390f35b348015610551575f5ffd5b5061056c60048036038101906105679190612bdb565b6111bd565b6040516105799190612c33565b60405180910390f35b34801561058d575f5ffd5b506105a860048036038101906105a39190612e77565b6111da565b005b3480156105b5575f5ffd5b506105d060048036038101906105cb9190612ebe565b6112b9565b005b3480156105dd575f5ffd5b506105e66113e6565b6040516105f39190612c5b565b60405180910390f35b348015610607575f5ffd5b506106106113ec565b005b34801561061d575f5ffd5b5061063860048036038101906106339190612f18565b611910565b6040516106459190612c5b565b60405180910390f35b348015610659575f5ffd5b50610674600480360381019061066f9190612f56565b611992565b005b348015610681575f5ffd5b5061069c60048036038101906106979190612e77565b611a1e565b6040516106a99190612c5b565b60405180910390f35b60606040518060400160405280600681526020017f53796e6341490000000000000000000000000000000000000000000000000000815250905090565b5f6107026106fb611a45565b8484611a4c565b6001905092915050565b60165481565b61071a611a45565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079e90612fcb565b60405180910390fd5b5f6011819055507fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de35f6040516107dd919061302b565b60405180910390a1565b5f6009600a6107f691906131a0565b64174876e80061080691906131ea565b905090565b5f610817848484611c0f565b6108d484610823611a45565b6108cf856040518060600160405280602881526020016140546028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610886611a45565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546125999092919063ffffffff16565b611a4c565b600190509392505050565b5f60085f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f6009905090565b610935611a45565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b990612fcb565b60405180910390fd5b60065f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615610a4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4390613275565b60405180910390fd5b600160065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167fd9d37de68946e8069e3dad02349aa8632b4ff20ea29ab5fcf849801fe86c9cb360405160405180910390a250565b5f60065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b79611a45565b73ffffffffffffffffffffffffffffffffffffffff1614610b98575f5ffd5b5f610ba230610c3f565b90505f811115610bb657610bb5816125fb565b5b5f4790505f811115610bcc57610bcb81612866565b5b5050565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c10611a45565b73ffffffffffffffffffffffffffffffffffffffff1614610c2f575f5ffd5b5f479050610c3c81612866565b50565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610c8d611a45565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1190612fcb565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f5f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610ddd611a45565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6190612fcb565b60405180910390fd5b6009600a610e7891906131a0565b64174876e800610e8891906131ea565b6013819055506009600a610e9c91906131a0565b64174876e800610eac91906131ea565b6014819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610ee191906131a0565b64174876e800610ef191906131ea565b604051610efe9190612c5b565b60405180910390a1565b60135481565b610f16611a45565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fa3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9a90612fcb565b60405180910390fd5b610ff38160085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546128ce90919063ffffffff16565b60085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff167f287f8d41f2feb9a36b1e1ad6fdc110129a5e4d65e34f348b0caabc50df6a0b398260405161107a9190612c5b565b60405180910390a25050565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60145481565b60606040518060400160405280600481526020017f53594e4300000000000000000000000000000000000000000000000000000000815250905090565b606060055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20805461113a906132c0565b80601f0160208091040260200160405190810160405280929190818152602001828054611166906132c0565b80156111b15780601f10611188576101008083540402835291602001916111b1565b820191905f5260205f20905b81548152906001019060200180831161119457829003601f168201915b50505050509050919050565b5f6111d06111c9611a45565b8484611c0f565b6001905092915050565b5f81511161121d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112149061333a565b60405180910390fd5b8060055f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20908161126791906134ef565b503373ffffffffffffffffffffffffffffffffffffffff167fc8c3a0a983e3fc29e3fd652fe567c6dcb7953589345c5c0f71f7ce5f3e27c235826040516112ae9190612b1d565b60405180910390a250565b60065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16611342576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133990613608565b60405180910390fd5b6064811115611386576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137d90613670565b60405180910390fd5b8060078360405161139791906136c8565b9081526020016040518091039020819055507f89a044634b1f876acc370afda4c32a57d9d8f32d1dc14977f9fb57137adbbef382826040516113da9291906136de565b60405180910390a15050565b60155481565b6113f4611a45565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611481576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147890612fcb565b60405180910390fd5b601860149054906101000a900460ff16156114d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c890613756565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60175f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061156e3060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a61155991906131a0565b64174876e80061156991906131ea565b611a4c565b60175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115d8573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115fc9190613788565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611682573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116a69190613788565b6040518363ffffffff1660e01b81526004016116c39291906137b3565b6020604051808303815f875af11580156116df573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117039190613788565b60185f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061178a30610c3f565b5f5f611794611086565b426040518863ffffffff1660e01b81526004016117b6969594939291906137da565b60606040518083038185885af11580156117d2573d5f5f3e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906117f7919061384d565b50505060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161189792919061389d565b6020604051808303815f875af11580156118b3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118d791906138ee565b506001601860166101000a81548160ff0219169083151502179055506001601860146101000a81548160ff021916908315150217905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166119d2611a45565b73ffffffffffffffffffffffffffffffffffffffff16146119f1575f5ffd5b600c548111158015611a055750600d548111155b611a0d575f5ffd5b80600c8190555080600d8190555050565b5f600782604051611a2f91906136c8565b9081526020016040518091039020549050919050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611aba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab190613989565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1f90613a17565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611c029190612c5b565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611c7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7490613aa5565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ceb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ce290613b33565b60405180910390fd5b5f8111611d2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2490613bc1565b60405180910390fd5b5f5f9050611d39611086565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611da75750611d77611086565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156122e95760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611e4a575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611e52575f5ffd5b5f60125403611e9a57611e976064611e89600e5460125411611e7657600a54611e7a565b600c545b8561292b90919063ffffffff16565b6129a290919063ffffffff16565b90505b5f6012541115611ecf57611ecc6064611ebe6011548561292b90919063ffffffff16565b6129a290919063ffffffff16565b90505b60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611f78575060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611fcb575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156120c357601354821115612015576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200c90613c29565b60405180910390fd5b6014548261202285610c3f565b61202c9190613c47565b111561206d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161206490613cc4565b60405180910390fd5b6120a9606461209b600e546012541161208857600a5461208c565b600c545b8561292b90919063ffffffff16565b6129a290919063ffffffff16565b905060125f8154809291906120bd90613ce2565b91905055505b60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561214b57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561218f5761218c606461217e600f546012541161216b57600b5461216f565b600d545b8561292b90919063ffffffff16565b6129a290919063ffffffff16565b90505b5f61219930610c3f565b9050601860159054906101000a900460ff16158015612204575060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b801561221c5750601860169054906101000a900460ff165b8015612229575060155481115b80156122385750601054601254115b156122e757601a5443111561224f575f6019819055505b600360195410612294576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161228b90613d73565b60405180910390fd5b6122b16122ac846122a7846016546129eb565b6129eb565b6125fb565b5f4790505f8111156122c7576122c647612866565b5b60195f8154809291906122d990613ce2565b919050555043601a81905550505b505b5f8111156123e8576123418160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546128ce90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516123df9190612c5b565b60405180910390a35b6124388260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612a0390919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506124db61248f8284612a0390919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546128ce90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61257e8486612a0390919063ffffffff16565b60405161258b9190612c5b565b60405180910390a350505050565b5f8383111582906125e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125d79190612b1d565b60405180910390fd5b505f83856125ee9190613d91565b9050809150509392505050565b6001601860156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561263257612631612d53565b5b6040519080825280602002602001820160405280156126605781602001602082028036833780820191505090505b50905030815f8151811061267757612676613dc4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561271b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061273f9190613788565b8160018151811061275357612752613dc4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506127b93060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611a4c565b60175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161281b959493929190613ea8565b5f604051808303815f87803b158015612832575f5ffd5b505af1158015612844573d5f5f3e3d5ffd5b50505050505f601860156101000a81548160ff02191690831515021790555050565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156128ca573d5f5f3e3d5ffd5b5050565b5f5f82846128dc9190613c47565b905083811015612921576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161291890613f4a565b60405180910390fd5b8091505092915050565b5f5f830361293b575f905061299c565b5f828461294891906131ea565b90508284826129579190613f95565b14612997576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161298e90614035565b60405180910390fd5b809150505b92915050565b5f6129e383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612a4c565b905092915050565b5f8183116129f957826129fb565b815b905092915050565b5f612a4483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612599565b905092915050565b5f5f83118290612a92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a899190612b1d565b60405180910390fd5b505f8385612aa09190613f95565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f612aef82612aad565b612af98185612ab7565b9350612b09818560208601612ac7565b612b1281612ad5565b840191505092915050565b5f6020820190508181035f830152612b358184612ae5565b905092915050565b5f604051905090565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612b7782612b4e565b9050919050565b612b8781612b6d565b8114612b91575f5ffd5b50565b5f81359050612ba281612b7e565b92915050565b5f819050919050565b612bba81612ba8565b8114612bc4575f5ffd5b50565b5f81359050612bd581612bb1565b92915050565b5f5f60408385031215612bf157612bf0612b46565b5b5f612bfe85828601612b94565b9250506020612c0f85828601612bc7565b9150509250929050565b5f8115159050919050565b612c2d81612c19565b82525050565b5f602082019050612c465f830184612c24565b92915050565b612c5581612ba8565b82525050565b5f602082019050612c6e5f830184612c4c565b92915050565b5f5f5f60608486031215612c8b57612c8a612b46565b5b5f612c9886828701612b94565b9350506020612ca986828701612b94565b9250506040612cba86828701612bc7565b9150509250925092565b5f60208284031215612cd957612cd8612b46565b5b5f612ce684828501612b94565b91505092915050565b5f60ff82169050919050565b612d0481612cef565b82525050565b5f602082019050612d1d5f830184612cfb565b92915050565b612d2c81612b6d565b82525050565b5f602082019050612d455f830184612d23565b92915050565b5f5ffd5b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612d8982612ad5565b810181811067ffffffffffffffff82111715612da857612da7612d53565b5b80604052505050565b5f612dba612b3d565b9050612dc68282612d80565b919050565b5f67ffffffffffffffff821115612de557612de4612d53565b5b612dee82612ad5565b9050602081019050919050565b828183375f83830152505050565b5f612e1b612e1684612dcb565b612db1565b905082815260208101848484011115612e3757612e36612d4f565b5b612e42848285612dfb565b509392505050565b5f82601f830112612e5e57612e5d612d4b565b5b8135612e6e848260208601612e09565b91505092915050565b5f60208284031215612e8c57612e8b612b46565b5b5f82013567ffffffffffffffff811115612ea957612ea8612b4a565b5b612eb584828501612e4a565b91505092915050565b5f5f60408385031215612ed457612ed3612b46565b5b5f83013567ffffffffffffffff811115612ef157612ef0612b4a565b5b612efd85828601612e4a565b9250506020612f0e85828601612bc7565b9150509250929050565b5f5f60408385031215612f2e57612f2d612b46565b5b5f612f3b85828601612b94565b9250506020612f4c85828601612b94565b9150509250929050565b5f60208284031215612f6b57612f6a612b46565b5b5f612f7884828501612bc7565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612fb5602083612ab7565b9150612fc082612f81565b602082019050919050565b5f6020820190508181035f830152612fe281612fa9565b9050919050565b5f819050919050565b5f819050919050565b5f61301561301061300b84612fe9565b612ff2565b612ba8565b9050919050565b61302581612ffb565b82525050565b5f60208201905061303e5f83018461301c565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f5f8291508390505b60018511156130c6578086048111156130a2576130a1613044565b5b60018516156130b15780820291505b80810290506130bf85613071565b9450613086565b94509492505050565b5f826130de5760019050613199565b816130eb575f9050613199565b8160018114613101576002811461310b5761313a565b6001915050613199565b60ff84111561311d5761311c613044565b5b8360020a91508482111561313457613133613044565b5b50613199565b5060208310610133831016604e8410600b841016171561316f5782820a90508381111561316a57613169613044565b5b613199565b61317c848484600161307d565b9250905081840481111561319357613192613044565b5b81810290505b9392505050565b5f6131aa82612ba8565b91506131b583612cef565b92506131e27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846130cf565b905092915050565b5f6131f482612ba8565b91506131ff83612ba8565b925082820261320d81612ba8565b9150828204841483151761322457613223613044565b5b5092915050565b7f416c7265616479207665726966696564000000000000000000000000000000005f82015250565b5f61325f601083612ab7565b915061326a8261322b565b602082019050919050565b5f6020820190508181035f83015261328c81613253565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806132d757607f821691505b6020821081036132ea576132e9613293565b5b50919050565b7f496e76616c6964204950465320686173680000000000000000000000000000005f82015250565b5f613324601183612ab7565b915061332f826132f0565b602082019050919050565b5f6020820190508181035f83015261335181613318565b9050919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026133b47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82613379565b6133be8683613379565b95508019841693508086168417925050509392505050565b5f6133f06133eb6133e684612ba8565b612ff2565b612ba8565b9050919050565b5f819050919050565b613409836133d6565b61341d613415826133f7565b848454613385565b825550505050565b5f5f905090565b613434613425565b61343f818484613400565b505050565b5b81811015613462576134575f8261342c565b600181019050613445565b5050565b601f8211156134a75761347881613358565b6134818461336a565b81016020851015613490578190505b6134a461349c8561336a565b830182613444565b50505b505050565b5f82821c905092915050565b5f6134c75f19846008026134ac565b1980831691505092915050565b5f6134df83836134b8565b9150826002028217905092915050565b6134f882612aad565b67ffffffffffffffff81111561351157613510612d53565b5b61351b82546132c0565b613526828285613466565b5f60209050601f831160018114613557575f8415613545578287015190505b61354f85826134d4565b8655506135b6565b601f19841661356586613358565b5f5b8281101561358c57848901518255600182019150602085019450602081019050613567565b868310156135a957848901516135a5601f8916826134b8565b8355505b6001600288020188555050505b505050505050565b7f4e6f74207665726966696564207075626c6973686572000000000000000000005f82015250565b5f6135f2601683612ab7565b91506135fd826135be565b602082019050919050565b5f6020820190508181035f83015261361f816135e6565b9050919050565b7f53636f7265206d757374206265203c3d203130300000000000000000000000005f82015250565b5f61365a601483612ab7565b915061366582613626565b602082019050919050565b5f6020820190508181035f8301526136878161364e565b9050919050565b5f81905092915050565b5f6136a282612aad565b6136ac818561368e565b93506136bc818560208601612ac7565b80840191505092915050565b5f6136d38284613698565b915081905092915050565b5f6040820190508181035f8301526136f68185612ae5565b90506137056020830184612c4c565b9392505050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f613740601783612ab7565b915061374b8261370c565b602082019050919050565b5f6020820190508181035f83015261376d81613734565b9050919050565b5f8151905061378281612b7e565b92915050565b5f6020828403121561379d5761379c612b46565b5b5f6137aa84828501613774565b91505092915050565b5f6040820190506137c65f830185612d23565b6137d36020830184612d23565b9392505050565b5f60c0820190506137ed5f830189612d23565b6137fa6020830188612c4c565b613807604083018761301c565b613814606083018661301c565b6138216080830185612d23565b61382e60a0830184612c4c565b979650505050505050565b5f8151905061384781612bb1565b92915050565b5f5f5f6060848603121561386457613863612b46565b5b5f61387186828701613839565b935050602061388286828701613839565b925050604061389386828701613839565b9150509250925092565b5f6040820190506138b05f830185612d23565b6138bd6020830184612c4c565b9392505050565b6138cd81612c19565b81146138d7575f5ffd5b50565b5f815190506138e8816138c4565b92915050565b5f6020828403121561390357613902612b46565b5b5f613910848285016138da565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613973602483612ab7565b915061397e82613919565b604082019050919050565b5f6020820190508181035f8301526139a081613967565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613a01602283612ab7565b9150613a0c826139a7565b604082019050919050565b5f6020820190508181035f830152613a2e816139f5565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613a8f602583612ab7565b9150613a9a82613a35565b604082019050919050565b5f6020820190508181035f830152613abc81613a83565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613b1d602383612ab7565b9150613b2882613ac3565b604082019050919050565b5f6020820190508181035f830152613b4a81613b11565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f613bab602983612ab7565b9150613bb682613b51565b604082019050919050565b5f6020820190508181035f830152613bd881613b9f565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f613c13601983612ab7565b9150613c1e82613bdf565b602082019050919050565b5f6020820190508181035f830152613c4081613c07565b9050919050565b5f613c5182612ba8565b9150613c5c83612ba8565b9250828201905080821115613c7457613c73613044565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f613cae601a83612ab7565b9150613cb982613c7a565b602082019050919050565b5f6020820190508181035f830152613cdb81613ca2565b9050919050565b5f613cec82612ba8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613d1e57613d1d613044565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f613d5d601783612ab7565b9150613d6882613d29565b602082019050919050565b5f6020820190508181035f830152613d8a81613d51565b9050919050565b5f613d9b82612ba8565b9150613da683612ba8565b9250828203905081811115613dbe57613dbd613044565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613e2381612b6d565b82525050565b5f613e348383613e1a565b60208301905092915050565b5f602082019050919050565b5f613e5682613df1565b613e608185613dfb565b9350613e6b83613e0b565b805f5b83811015613e9b578151613e828882613e29565b9750613e8d83613e40565b925050600181019050613e6e565b5085935050505092915050565b5f60a082019050613ebb5f830188612c4c565b613ec8602083018761301c565b8181036040830152613eda8186613e4c565b9050613ee96060830185612d23565b613ef66080830184612c4c565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613f34601b83612ab7565b9150613f3f82613f00565b602082019050919050565b5f6020820190508181035f830152613f6181613f28565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613f9f82612ba8565b9150613faa83612ba8565b925082613fba57613fb9613f68565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61401f602183612ab7565b915061402a82613fc5565b604082019050919050565b5f6020820190508181035f83015261404c81614013565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220549a132213a4bb2b5a37fabaad21aa19b346bec07e1fd5a78cc74890a0c3559c64736f6c634300081c0033
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.