ERC-20
Overview
Max Total Supply
888 YUANNT
Holders
68
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
0.014925373134328358 YUANNTValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
YUANNT
Compiler Version
v0.8.11+commit.d7f03943
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-11-12 */ /* :-:--------------===== :::::------------------------======= :::::::::----------------------------======+ :::::::::::::--=+****#######*****+=-----------==== .::::::::::-=+*##%%%%%%%%%%%%%%%%%%%%%###*+==-------===+ .:::::::::=+##%%%%%###***************##########*+==------==+ .:..:::::=*#%%%%%******************************##*##*++=------== .:.....:-+##%%##*++++*******************************##*##*+==----=== :.......-*#%##*+++++++++**************************************+==----==+ ::......=*#%##:..........:+***********************-::::::-----*##*+========+ :......-*####+++:..........=#*********************=::::::-----*#####*+=======+ ......:+####+==+++:..........+##******************+:::::::----*######**++======+ :......-*###+=====+++-.........:*##*****************::::::::---*#####***#**+======+* ......=####=======++++-.........-###***************-:::::::::-*####****###**+======++ ......=###*=========++++:.........=#%#*************=:::::::::-+**##*****####**+======+ ......=###+---========++++:.........+%%#***********+:::::::::-+***#*****######**+======+ :.....=###+----========+++++:........:*%%**********+:::::-----+####******#######**+======+ :.....-*##*------========++++=:......:::#%%*********-::::-----+####*****##########**+======+ .....:*##*-------========+++++=.....::::=#%#*******=::::-----+#####*****###########**======+ :.....=##*-:-------=======++++++=..:::::::=%%#*****+:::::----=#####****#############*++======* .....:*#*+:::------=======+++++++=:::::::::*%##***+::::::---=#%%###***###############*+======+ :.....=##*=:::------=======++++++++-:::::::::*%##**-:::::---=#%%%#####################*++======+ :.....*#**::--------=======+++++++++-::::::::-###*=:::::----*%%%%######################*+======+ .....:*##+---------=======+++++++++++:::::::::+##+-::::----*%%%%#######################*+======+ :.....-*##=------=========+++++++++++*+::::::::-**---------+%%%%########################*+======+* ::....=###=--===========+++++++++++++++=::::--------------=#####******###################+=-====++ ::....=###============++++++-::::::::::-------------------------------#%#################+=-===+++ ::::::=*##==========++++++++-::::::::---------------------------------#%%%###############+=-==++++ -:::::-*##+=====++++++++++++-:::::-----------------------------------=#%%%##############*+=-==++++ :::::-*##*+++++++++++++++++--::-------------------------------------=#%%%##############*+-==++++ -:::::*###+++++++++++++++*+**********#####+----------+###############%%%%##############*+-=+++++ -:::::=###+++++++++++++*******************+----------+%%%%############################*++-=++++* ---::-*##*++++++++++*****+================----------================#################*+-=++++* ------+###*++++**********+-----------------------------------------=%%%#############*+=-=++++* ------+##***************+-----------------------------------------=%%%%############++:=++++* =-----=*##**************+=---------------------------------========%%%%###########+=--+++++* =-----=*##*************+=------------------------------===========%%%%##########*=--+++++* =-----+*##**************#####%%%######*=---------+%%%%%%%%%%%%%%%%%%##########+==-+++++* ===--=+*##***************############*=-----=--=+%%%%%%%%%%%%###############++=:+++++* =======***#************#############*=-========+%%%%######################++--+++++*# ++======+*##*********###############*==========*%%%%####################*=+:=+++++*# +======+**##******################+==========*%%%%##################*++-:+++++*# ++======+*#######################*==========*%%%%################*++=-=+++++*# *+=======+*#####################*==========*%%%%###############*++:-++++++*# *+======++**#######################%%%%%##################**+=-=++++++*# *+======+++*#########################################***+--=++++++*## *+++=====+++***#################################**++-:=+++++++*# *++++++++++==++****######################****+=--=+++++++**#% #*++++++++++=====+******************++=----=+++++++++*## ##*+++++++++++++=======-----::::--=++++++++++++*#% %#**++++++++++++++++++++++++++++++++++++**#% %#***+++++++++++++++++++++++++***##% %%%##***+++++****###%% */ //SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.8; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } interface IBEP20 { 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); } interface IBEP20Metadata is IBEP20 { /** * @dev Returns the name of the token. */ function name() external view returns (string memory); /** * @dev Returns the symbol of the token. */ function symbol() external view returns (string memory); /** * @dev Returns the decimals places of the token. */ function decimals() external view returns (uint8); } contract BEP20 is Context, IBEP20, IBEP20Metadata { mapping(address => uint256) internal _balances; mapping(address => mapping(address => uint256)) internal _allowances; uint256 private _totalSupply; string private _name; string private _symbol; /** * @dev Sets the values for {name} and {symbol}. * * The defaut value of {decimals} is 18. To select a different value for * {decimals} you should overload it. * * All two of these values are immutable: they can only be set once during * construction. */ constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } /** * @dev Returns the name of the token. */ function name() public view virtual override returns (string memory) { return _name; } /** * @dev Returns the symbol of the token, usually a shorter version of the * name. */ function symbol() public view virtual override returns (string memory) { return _symbol; } /** * @dev Returns the number of decimals used to get its user representation. * For example, if `decimals` equals `2`, a balance of `505` tokens should * be displayed to a user as `5,05` (`505 / 10 ** 2`). * * Tokens usually opt for a value of 18, imitating the relationship between * Ether and Wei. This is the value {BEP20} uses, unless this function is * overridden; * * NOTE: This information is only used for _display_ purposes: it in * no way affects any of the arithmetic of the contract, including * {IBEP20-balanceOf} and {IBEP20-transfer}. */ function decimals() public view virtual override returns (uint8) { return 18; } /** * @dev See {IBEP20-totalSupply}. */ function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } /** * @dev See {IBEP20-balanceOf}. */ function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } /** * @dev See {IBEP20-transfer}. * * Requirements: * * - `recipient` cannot be the zero address. * - the caller must have a balance of at least `amount`. */ function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } /** * @dev See {IBEP20-allowance}. */ function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } /** * @dev See {IBEP20-approve}. * * Requirements: * * - `spender` cannot be the zero address. */ function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } /** * @dev See {IBEP20-transferFrom}. * * Emits an {Approval} event indicating the updated allowance. This is not * required by the EIP. See the note at the beginning of {BEP20}. * * Requirements: * * - `sender` and `recipient` cannot be the zero address. * - `sender` must have a balance of at least `amount`. * - the caller must have allowance for ``sender``'s tokens of at least * `amount`. */ function transferFrom( address sender, address recipient, uint256 amount ) public virtual override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require(currentAllowance >= amount, "BEP20: transfer amount exceeds allowance"); _approve(sender, _msgSender(), currentAllowance - amount); return true; } /** * @dev Atomically increases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IBEP20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. */ function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } /** * @dev Atomically decreases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IBEP20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. * - `spender` must have allowance for the caller of at least * `subtractedValue`. */ function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, "BEP20: decreased allowance below zero"); _approve(_msgSender(), spender, currentAllowance - subtractedValue); return true; } /** * @dev Moves tokens `amount` from `sender` to `recipient`. * * This is internal function is equivalent to {transfer}, and can be used to * e.g. implement automatic token fees, slashing mechanisms, etc. * * Emits a {Transfer} event. * * Requirements: * * - `sender` cannot be the zero address. * - `recipient` cannot be the zero address. * - `sender` must have a balance of at least `amount`. */ function _transfer( address sender, address recipient, uint256 amount ) internal virtual { require(sender != address(0), "BEP20: transfer from the zero address"); require(recipient != address(0), "BEP20: transfer to the zero address"); uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, "BEP20: transfer amount exceeds balance"); _balances[sender] = senderBalance - amount; _balances[recipient] += amount; emit Transfer(sender, recipient, amount); } /** This function will be used to generate the total supply * while deploying the contract * * This function can never be called again after deploying contract */ function _tokengeneration(address account, uint256 amount) internal virtual { _totalSupply = amount; _balances[account] = amount; emit Transfer(address(0), account, amount); } /** * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens. * * This internal function is equivalent to `approve`, and can be used to * e.g. set automatic allowances for certain subsystems, etc. * * Emits an {Approval} event. * * Requirements: * * - `owner` cannot be the zero address. * - `spender` cannot be the zero address. */ function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "BEP20: approve from the zero address"); require(spender != address(0), "BEP20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } } library Address { function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); (bool success, ) = recipient.call{ value: amount }(""); require(success, "Address: unable to send value, recipient may have reverted"); } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _setOwner(_msgSender()); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { _setOwner(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _setOwner(newOwner); } function _setOwner(address newOwner) private { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } interface IFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IRouter { 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 ); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } contract YUANNT is BEP20, Ownable { using Address for address payable; IRouter public router; address public pair; bool private _interlock = false; bool public providingLiquidity = false; bool public tradingEnabled = false; uint256 public tokenLiquidityThreshold = 888 *18; uint256 public genesis_block; uint256 private deadline = 3; uint256 private launchtax = 99; address public marketingWallet = 0x000000000000000000000000000000000000dEaD; address public devWallet = 0x000000000000000000000000000000000000dEaD; address public constant deadWallet = 0x000000000000000000000000000000000000dEaD; struct Taxes { uint256 treasury; uint256 liquidity; uint256 dev; } Taxes public taxes = Taxes(0, 0, 0); Taxes public sellTaxes = Taxes(0, 0, 0); mapping(address => bool) public exemptFee; modifier lockTheSwap() { if (!_interlock) { _interlock = true; _; _interlock = false; } } constructor() BEP20("YUANNT", "YUANNT") { _tokengeneration(msg.sender, 888 *10 **decimals()); exemptFee[msg.sender] = true; IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); // Create a pancake pair for this new token address _pair = IFactory(_router.factory()).createPair(address(this), _router.WETH()); router = _router; pair = _pair; exemptFee[address(this)] = true; } 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); uint256 currentAllowance = _allowances[sender][_msgSender()]; require(currentAllowance >= amount, "BEP20: transfer amount exceeds allowance"); _approve(sender, _msgSender(), currentAllowance - amount); return true; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(msg.sender, recipient, amount); return true; } function _transfer( address sender, address recipient, uint256 amount ) internal override { require(amount > 0, "Transfer amount must be greater than zero"); if (!exemptFee[sender] && !exemptFee[recipient]) { require(tradingEnabled, "Trading not enabled"); } uint256 feeswap; uint256 feesum; uint256 fee; Taxes memory currentTaxes; bool useLaunchFee = !exemptFee[sender] && !exemptFee[recipient] && block.number < genesis_block + deadline; //set fee to zero if fees in contract are handled or exempted if (_interlock || exemptFee[sender] || exemptFee[recipient]) fee = 0; //calculate fee else if (recipient == pair && !useLaunchFee) { feeswap = sellTaxes.liquidity + sellTaxes.treasury + sellTaxes.dev; feesum = feeswap; currentTaxes = sellTaxes; } else if (!useLaunchFee) { feeswap = taxes.liquidity + taxes.treasury + taxes.dev ; feesum = feeswap; currentTaxes = taxes; } else if (useLaunchFee) { feeswap = launchtax; feesum = launchtax; } fee = (amount * feesum) / 100; //rest to recipient super._transfer(sender, recipient, amount - fee); if (fee > 0) { //send the fee to the contract if (feeswap > 0) { uint256 feeAmount = (amount * feeswap) / 100; super._transfer(sender, address(this), feeAmount); } } } function updateLiquidityProvide(bool state) external onlyOwner { //update liquidity providing state providingLiquidity = state; } function EnableTrading() external onlyOwner { require(!tradingEnabled, "Cannot re-enable trading"); tradingEnabled = true; providingLiquidity = true; genesis_block = block.number; } function rescueBNB(uint256 weiAmount) external onlyOwner { payable(owner()).transfer(weiAmount); } function rescueBSC20(address tokenAdd, uint256 amount) external onlyOwner { require(tokenAdd != address(this), "Owner can't claim contract's balance of its own tokens"); IBEP20(tokenAdd).transfer(owner(), amount); } }
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":"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":"EnableTrading","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":"deadWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"exemptFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"genesis_block","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"providingLiquidity","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueBNB","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAdd","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueBSC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTaxes","outputs":[{"internalType":"uint256","name":"treasury","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxes","outputs":[{"internalType":"uint256","name":"treasury","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenLiquidityThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"updateLiquidityProvide","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040526000600760146101000a81548160ff0219169083151502179055506000600760156101000a81548160ff0219169083151502179055506000600760166101000a81548160ff021916908315150217905550613e706008556003600a556063600b5561dead600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604051806060016040528060008152602001600081526020016000815250600e6000820151816000015560208201518160010155604082015181600201555050604051806060016040528060008152602001600081526020016000815250601160008201518160000155602082015181600101556040820151816002015550503480156200017857600080fd5b506040518060400160405280600681526020017f5955414e4e5400000000000000000000000000000000000000000000000000008152506040518060400160405280600681526020017f5955414e4e5400000000000000000000000000000000000000000000000000008152508160039080519060200190620001fd929190620006c0565b50806004908051906020019062000216929190620006c0565b505050620002396200022d6200053360201b60201c565b6200053b60201b60201c565b62000277336200024e6200060160201b60201c565b600a6200025c91906200090a565b6103786200026b91906200095b565b6200060a60201b60201c565b6001601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000336573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200035c919062000a26565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003c4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003ea919062000a26565b6040518363ffffffff1660e01b81526004016200040992919062000a69565b6020604051808303816000875af115801562000429573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200044f919062000a26565b905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505062000b29565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60006012905090565b80600281905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620006b4919062000aa7565b60405180910390a35050565b828054620006ce9062000af3565b90600052602060002090601f016020900481019282620006f257600085556200073e565b82601f106200070d57805160ff19168380011785556200073e565b828001600101855582156200073e579182015b828111156200073d57825182559160200191906001019062000720565b5b5090506200074d919062000751565b5090565b5b808211156200076c57600081600090555060010162000752565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620007fe57808604811115620007d657620007d562000770565b5b6001851615620007e65780820291505b8081029050620007f6856200079f565b9450620007b6565b94509492505050565b600082620008195760019050620008ec565b81620008295760009050620008ec565b81600181146200084257600281146200084d5762000883565b6001915050620008ec565b60ff84111562000862576200086162000770565b5b8360020a9150848211156200087c576200087b62000770565b5b50620008ec565b5060208310610133831016604e8410600b8410161715620008bd5782820a905083811115620008b757620008b662000770565b5b620008ec565b620008cc8484846001620007ac565b92509050818404811115620008e657620008e562000770565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b60006200091782620008f3565b91506200092483620008fd565b9250620009537fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000807565b905092915050565b60006200096882620008f3565b91506200097583620008f3565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620009b157620009b062000770565b5b828202905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620009ee82620009c1565b9050919050565b62000a0081620009e1565b811462000a0c57600080fd5b50565b60008151905062000a2081620009f5565b92915050565b60006020828403121562000a3f5762000a3e620009bc565b5b600062000a4f8482850162000a0f565b91505092915050565b62000a6381620009e1565b82525050565b600060408201905062000a80600083018562000a58565b62000a8f602083018462000a58565b9392505050565b62000aa181620008f3565b82525050565b600060208201905062000abe600083018462000a96565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000b0c57607f821691505b6020821081141562000b235762000b2262000ac4565b5b50919050565b6128b48062000b396000396000f3fe608060405234801561001057600080fd5b50600436106101da5760003560e01c806375f0a87411610104578063a9059cbb116100a2578063f2fde38b11610071578063f2fde38b1461054f578063f66895a31461056b578063f887ea401461058b578063fbe6324e146105a9576101da565b8063a9059cbb146104a3578063c5d32bb2146104d3578063c9300ed514610503578063dd62ed3e1461051f576101da565b80638ea5220f116100de5780638ea5220f1461041957806395d89b4114610437578063a457c2d714610455578063a8aa1b3114610485576101da565b806375f0a874146103bf57806385141a77146103dd5780638da5cb5b146103fb576101da565b8063274a533c1161017c5780634ada218b1161014b5780634ada218b1461034757806370a0823114610365578063715018a614610395578063728f8eea1461039f576101da565b8063274a533c146102bf578063313ce567146102dd57806339509351146102fb578063441b1d301461032b576101da565b80631675d802116101b85780631675d8021461024957806318160ddd146102675780631d97b7cd1461028557806323b872dd1461028f576101da565b806306fdde03146101df578063095ea7b3146101fd5780631340538f1461022d575b600080fd5b6101e76105c7565b6040516101f49190611b94565b60405180910390f35b61021760048036038101906102129190611c4f565b610659565b6040516102249190611caa565b60405180910390f35b61024760048036038101906102429190611cf1565b610677565b005b610251610710565b60405161025e9190611d2d565b60405180910390f35b61026f610716565b60405161027c9190611d2d565b60405180910390f35b61028d610720565b005b6102a960048036038101906102a49190611d48565b61082b565b6040516102b69190611caa565b60405180910390f35b6102c761092c565b6040516102d49190611d2d565b60405180910390f35b6102e5610932565b6040516102f29190611db7565b60405180910390f35b61031560048036038101906103109190611c4f565b61093b565b6040516103229190611caa565b60405180910390f35b61034560048036038101906103409190611dd2565b6109e7565b005b61034f610ab4565b60405161035c9190611caa565b60405180910390f35b61037f600480360381019061037a9190611dff565b610ac7565b60405161038c9190611d2d565b60405180910390f35b61039d610b0f565b005b6103a7610b97565b6040516103b693929190611e2c565b60405180910390f35b6103c7610baf565b6040516103d49190611e72565b60405180910390f35b6103e5610bd5565b6040516103f29190611e72565b60405180910390f35b610403610bdb565b6040516104109190611e72565b60405180910390f35b610421610c05565b60405161042e9190611e72565b60405180910390f35b61043f610c2b565b60405161044c9190611b94565b60405180910390f35b61046f600480360381019061046a9190611c4f565b610cbd565b60405161047c9190611caa565b60405180910390f35b61048d610db1565b60405161049a9190611e72565b60405180910390f35b6104bd60048036038101906104b89190611c4f565b610dd7565b6040516104ca9190611caa565b60405180910390f35b6104ed60048036038101906104e89190611dff565b610dee565b6040516104fa9190611caa565b60405180910390f35b61051d60048036038101906105189190611c4f565b610e0e565b005b61053960048036038101906105349190611e8d565b610f83565b6040516105469190611d2d565b60405180910390f35b61056960048036038101906105649190611dff565b61100a565b005b610573611102565b60405161058293929190611e2c565b60405180910390f35b61059361111a565b6040516105a09190611f2c565b60405180910390f35b6105b1611140565b6040516105be9190611caa565b60405180910390f35b6060600380546105d690611f76565b80601f016020809104026020016040519081016040528092919081815260200182805461060290611f76565b801561064f5780601f106106245761010080835404028352916020019161064f565b820191906000526020600020905b81548152906001019060200180831161063257829003601f168201915b5050505050905090565b600061066d610666611153565b848461115b565b6001905092915050565b61067f611153565b73ffffffffffffffffffffffffffffffffffffffff1661069d610bdb565b73ffffffffffffffffffffffffffffffffffffffff16146106f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ea90611ff4565b60405180910390fd5b80600760156101000a81548160ff02191690831515021790555050565b60085481565b6000600254905090565b610728611153565b73ffffffffffffffffffffffffffffffffffffffff16610746610bdb565b73ffffffffffffffffffffffffffffffffffffffff161461079c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079390611ff4565b60405180910390fd5b600760169054906101000a900460ff16156107ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e390612060565b60405180910390fd5b6001600760166101000a81548160ff0219169083151502179055506001600760156101000a81548160ff02191690831515021790555043600981905550565b6000610838848484611326565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610883611153565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610903576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108fa906120f2565b60405180910390fd5b6109208561090f611153565b858461091b9190612141565b61115b565b60019150509392505050565b60095481565b60006012905090565b60006109dd610948611153565b848460016000610956611153565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546109d89190612175565b61115b565b6001905092915050565b6109ef611153565b73ffffffffffffffffffffffffffffffffffffffff16610a0d610bdb565b73ffffffffffffffffffffffffffffffffffffffff1614610a63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5a90611ff4565b60405180910390fd5b610a6b610bdb565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610ab0573d6000803e3d6000fd5b5050565b600760169054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610b17611153565b73ffffffffffffffffffffffffffffffffffffffff16610b35610bdb565b73ffffffffffffffffffffffffffffffffffffffff1614610b8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8290611ff4565b60405180910390fd5b610b9560006117a0565b565b600e8060000154908060010154908060020154905083565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61dead81565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060048054610c3a90611f76565b80601f0160208091040260200160405190810160405280929190818152602001828054610c6690611f76565b8015610cb35780601f10610c8857610100808354040283529160200191610cb3565b820191906000526020600020905b815481529060010190602001808311610c9657829003601f168201915b5050505050905090565b60008060016000610ccc611153565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610d89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d809061223d565b60405180910390fd5b610da6610d94611153565b858584610da19190612141565b61115b565b600191505092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610de4338484611326565b6001905092915050565b60146020528060005260406000206000915054906101000a900460ff1681565b610e16611153565b73ffffffffffffffffffffffffffffffffffffffff16610e34610bdb565b73ffffffffffffffffffffffffffffffffffffffff1614610e8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8190611ff4565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610ef9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef0906122cf565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb610f1d610bdb565b836040518363ffffffff1660e01b8152600401610f3b9291906122ef565b6020604051808303816000875af1158015610f5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f7e919061232d565b505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611012611153565b73ffffffffffffffffffffffffffffffffffffffff16611030610bdb565b73ffffffffffffffffffffffffffffffffffffffff1614611086576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107d90611ff4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156110f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ed906123cc565b60405180910390fd5b6110ff816117a0565b50565b60118060000154908060010154908060020154905083565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600760159054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156111cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c29061245e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561123b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611232906124f0565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113199190611d2d565b60405180910390a3505050565b60008111611369576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136090612582565b60405180910390fd5b601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561140d5750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561146257600760169054906101000a900460ff16611461576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611458906125ee565b60405180910390fd5b5b600080600061146f611ada565b6000601460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156115155750601460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561152f5750600a5460095461152c9190612175565b43105b9050600760149054906101000a900460ff16806115955750601460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806115e95750601460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156115f7576000925061172a565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16148015611652575080155b156116b4576011600201546011600001546011600101546116739190612175565b61167d9190612175565b9450849350601160405180606001604052908160008201548152602001600182015481526020016002820154815250509150611729565b8061171657600e60020154600e60000154600e600101546116d59190612175565b6116df9190612175565b9450849350600e60405180606001604052908160008201548152602001600182015481526020016002820154815250509150611728565b801561172757600b549450600b5493505b5b5b5b60648487611738919061260e565b6117429190612697565b925061175a888885896117559190612141565b611866565b60008311156117965760008511156117955760006064868861177c919061260e565b6117869190612697565b9050611793893083611866565b505b5b5050505050505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156118d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118cd9061273a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611946576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193d906127cc565b60405180910390fd5b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156119cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c39061285e565b60405180910390fd5b81816119d89190612141565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611a689190612175565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611acc9190611d2d565b60405180910390a350505050565b60405180606001604052806000815260200160008152602001600081525090565b600081519050919050565b600082825260208201905092915050565b60005b83811015611b35578082015181840152602081019050611b1a565b83811115611b44576000848401525b50505050565b6000601f19601f8301169050919050565b6000611b6682611afb565b611b708185611b06565b9350611b80818560208601611b17565b611b8981611b4a565b840191505092915050565b60006020820190508181036000830152611bae8184611b5b565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611be682611bbb565b9050919050565b611bf681611bdb565b8114611c0157600080fd5b50565b600081359050611c1381611bed565b92915050565b6000819050919050565b611c2c81611c19565b8114611c3757600080fd5b50565b600081359050611c4981611c23565b92915050565b60008060408385031215611c6657611c65611bb6565b5b6000611c7485828601611c04565b9250506020611c8585828601611c3a565b9150509250929050565b60008115159050919050565b611ca481611c8f565b82525050565b6000602082019050611cbf6000830184611c9b565b92915050565b611cce81611c8f565b8114611cd957600080fd5b50565b600081359050611ceb81611cc5565b92915050565b600060208284031215611d0757611d06611bb6565b5b6000611d1584828501611cdc565b91505092915050565b611d2781611c19565b82525050565b6000602082019050611d426000830184611d1e565b92915050565b600080600060608486031215611d6157611d60611bb6565b5b6000611d6f86828701611c04565b9350506020611d8086828701611c04565b9250506040611d9186828701611c3a565b9150509250925092565b600060ff82169050919050565b611db181611d9b565b82525050565b6000602082019050611dcc6000830184611da8565b92915050565b600060208284031215611de857611de7611bb6565b5b6000611df684828501611c3a565b91505092915050565b600060208284031215611e1557611e14611bb6565b5b6000611e2384828501611c04565b91505092915050565b6000606082019050611e416000830186611d1e565b611e4e6020830185611d1e565b611e5b6040830184611d1e565b949350505050565b611e6c81611bdb565b82525050565b6000602082019050611e876000830184611e63565b92915050565b60008060408385031215611ea457611ea3611bb6565b5b6000611eb285828601611c04565b9250506020611ec385828601611c04565b9150509250929050565b6000819050919050565b6000611ef2611eed611ee884611bbb565b611ecd565b611bbb565b9050919050565b6000611f0482611ed7565b9050919050565b6000611f1682611ef9565b9050919050565b611f2681611f0b565b82525050565b6000602082019050611f416000830184611f1d565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611f8e57607f821691505b60208210811415611fa257611fa1611f47565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611fde602083611b06565b9150611fe982611fa8565b602082019050919050565b6000602082019050818103600083015261200d81611fd1565b9050919050565b7f43616e6e6f742072652d656e61626c652074726164696e670000000000000000600082015250565b600061204a601883611b06565b915061205582612014565b602082019050919050565b600060208201905081810360008301526120798161203d565b9050919050565b7f42455032303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006120dc602883611b06565b91506120e782612080565b604082019050919050565b6000602082019050818103600083015261210b816120cf565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061214c82611c19565b915061215783611c19565b92508282101561216a57612169612112565b5b828203905092915050565b600061218082611c19565b915061218b83611c19565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156121c0576121bf612112565b5b828201905092915050565b7f42455032303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000612227602583611b06565b9150612232826121cb565b604082019050919050565b600060208201905081810360008301526122568161221a565b9050919050565b7f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c60008201527f616e6365206f6620697473206f776e20746f6b656e7300000000000000000000602082015250565b60006122b9603683611b06565b91506122c48261225d565b604082019050919050565b600060208201905081810360008301526122e8816122ac565b9050919050565b60006040820190506123046000830185611e63565b6123116020830184611d1e565b9392505050565b60008151905061232781611cc5565b92915050565b60006020828403121561234357612342611bb6565b5b600061235184828501612318565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006123b6602683611b06565b91506123c18261235a565b604082019050919050565b600060208201905081810360008301526123e5816123a9565b9050919050565b7f42455032303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612448602483611b06565b9150612453826123ec565b604082019050919050565b600060208201905081810360008301526124778161243b565b9050919050565b7f42455032303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006124da602283611b06565b91506124e58261247e565b604082019050919050565b60006020820190508181036000830152612509816124cd565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061256c602983611b06565b915061257782612510565b604082019050919050565b6000602082019050818103600083015261259b8161255f565b9050919050565b7f54726164696e67206e6f7420656e61626c656400000000000000000000000000600082015250565b60006125d8601383611b06565b91506125e3826125a2565b602082019050919050565b60006020820190508181036000830152612607816125cb565b9050919050565b600061261982611c19565b915061262483611c19565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561265d5761265c612112565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006126a282611c19565b91506126ad83611c19565b9250826126bd576126bc612668565b5b828204905092915050565b7f42455032303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612724602583611b06565b915061272f826126c8565b604082019050919050565b6000602082019050818103600083015261275381612717565b9050919050565b7f42455032303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006127b6602383611b06565b91506127c18261275a565b604082019050919050565b600060208201905081810360008301526127e5816127a9565b9050919050565b7f42455032303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000612848602683611b06565b9150612853826127ec565b604082019050919050565b600060208201905081810360008301526128778161283b565b905091905056fea2646970667358221220d592988ecf05a3f9ae543e92932ad026b40d3b0859bd9000b29d0b493f3f44fa64736f6c634300080b0033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101da5760003560e01c806375f0a87411610104578063a9059cbb116100a2578063f2fde38b11610071578063f2fde38b1461054f578063f66895a31461056b578063f887ea401461058b578063fbe6324e146105a9576101da565b8063a9059cbb146104a3578063c5d32bb2146104d3578063c9300ed514610503578063dd62ed3e1461051f576101da565b80638ea5220f116100de5780638ea5220f1461041957806395d89b4114610437578063a457c2d714610455578063a8aa1b3114610485576101da565b806375f0a874146103bf57806385141a77146103dd5780638da5cb5b146103fb576101da565b8063274a533c1161017c5780634ada218b1161014b5780634ada218b1461034757806370a0823114610365578063715018a614610395578063728f8eea1461039f576101da565b8063274a533c146102bf578063313ce567146102dd57806339509351146102fb578063441b1d301461032b576101da565b80631675d802116101b85780631675d8021461024957806318160ddd146102675780631d97b7cd1461028557806323b872dd1461028f576101da565b806306fdde03146101df578063095ea7b3146101fd5780631340538f1461022d575b600080fd5b6101e76105c7565b6040516101f49190611b94565b60405180910390f35b61021760048036038101906102129190611c4f565b610659565b6040516102249190611caa565b60405180910390f35b61024760048036038101906102429190611cf1565b610677565b005b610251610710565b60405161025e9190611d2d565b60405180910390f35b61026f610716565b60405161027c9190611d2d565b60405180910390f35b61028d610720565b005b6102a960048036038101906102a49190611d48565b61082b565b6040516102b69190611caa565b60405180910390f35b6102c761092c565b6040516102d49190611d2d565b60405180910390f35b6102e5610932565b6040516102f29190611db7565b60405180910390f35b61031560048036038101906103109190611c4f565b61093b565b6040516103229190611caa565b60405180910390f35b61034560048036038101906103409190611dd2565b6109e7565b005b61034f610ab4565b60405161035c9190611caa565b60405180910390f35b61037f600480360381019061037a9190611dff565b610ac7565b60405161038c9190611d2d565b60405180910390f35b61039d610b0f565b005b6103a7610b97565b6040516103b693929190611e2c565b60405180910390f35b6103c7610baf565b6040516103d49190611e72565b60405180910390f35b6103e5610bd5565b6040516103f29190611e72565b60405180910390f35b610403610bdb565b6040516104109190611e72565b60405180910390f35b610421610c05565b60405161042e9190611e72565b60405180910390f35b61043f610c2b565b60405161044c9190611b94565b60405180910390f35b61046f600480360381019061046a9190611c4f565b610cbd565b60405161047c9190611caa565b60405180910390f35b61048d610db1565b60405161049a9190611e72565b60405180910390f35b6104bd60048036038101906104b89190611c4f565b610dd7565b6040516104ca9190611caa565b60405180910390f35b6104ed60048036038101906104e89190611dff565b610dee565b6040516104fa9190611caa565b60405180910390f35b61051d60048036038101906105189190611c4f565b610e0e565b005b61053960048036038101906105349190611e8d565b610f83565b6040516105469190611d2d565b60405180910390f35b61056960048036038101906105649190611dff565b61100a565b005b610573611102565b60405161058293929190611e2c565b60405180910390f35b61059361111a565b6040516105a09190611f2c565b60405180910390f35b6105b1611140565b6040516105be9190611caa565b60405180910390f35b6060600380546105d690611f76565b80601f016020809104026020016040519081016040528092919081815260200182805461060290611f76565b801561064f5780601f106106245761010080835404028352916020019161064f565b820191906000526020600020905b81548152906001019060200180831161063257829003601f168201915b5050505050905090565b600061066d610666611153565b848461115b565b6001905092915050565b61067f611153565b73ffffffffffffffffffffffffffffffffffffffff1661069d610bdb565b73ffffffffffffffffffffffffffffffffffffffff16146106f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ea90611ff4565b60405180910390fd5b80600760156101000a81548160ff02191690831515021790555050565b60085481565b6000600254905090565b610728611153565b73ffffffffffffffffffffffffffffffffffffffff16610746610bdb565b73ffffffffffffffffffffffffffffffffffffffff161461079c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079390611ff4565b60405180910390fd5b600760169054906101000a900460ff16156107ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e390612060565b60405180910390fd5b6001600760166101000a81548160ff0219169083151502179055506001600760156101000a81548160ff02191690831515021790555043600981905550565b6000610838848484611326565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610883611153565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610903576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108fa906120f2565b60405180910390fd5b6109208561090f611153565b858461091b9190612141565b61115b565b60019150509392505050565b60095481565b60006012905090565b60006109dd610948611153565b848460016000610956611153565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546109d89190612175565b61115b565b6001905092915050565b6109ef611153565b73ffffffffffffffffffffffffffffffffffffffff16610a0d610bdb565b73ffffffffffffffffffffffffffffffffffffffff1614610a63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5a90611ff4565b60405180910390fd5b610a6b610bdb565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610ab0573d6000803e3d6000fd5b5050565b600760169054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610b17611153565b73ffffffffffffffffffffffffffffffffffffffff16610b35610bdb565b73ffffffffffffffffffffffffffffffffffffffff1614610b8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8290611ff4565b60405180910390fd5b610b9560006117a0565b565b600e8060000154908060010154908060020154905083565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61dead81565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060048054610c3a90611f76565b80601f0160208091040260200160405190810160405280929190818152602001828054610c6690611f76565b8015610cb35780601f10610c8857610100808354040283529160200191610cb3565b820191906000526020600020905b815481529060010190602001808311610c9657829003601f168201915b5050505050905090565b60008060016000610ccc611153565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610d89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d809061223d565b60405180910390fd5b610da6610d94611153565b858584610da19190612141565b61115b565b600191505092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610de4338484611326565b6001905092915050565b60146020528060005260406000206000915054906101000a900460ff1681565b610e16611153565b73ffffffffffffffffffffffffffffffffffffffff16610e34610bdb565b73ffffffffffffffffffffffffffffffffffffffff1614610e8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8190611ff4565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610ef9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef0906122cf565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb610f1d610bdb565b836040518363ffffffff1660e01b8152600401610f3b9291906122ef565b6020604051808303816000875af1158015610f5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f7e919061232d565b505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611012611153565b73ffffffffffffffffffffffffffffffffffffffff16611030610bdb565b73ffffffffffffffffffffffffffffffffffffffff1614611086576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107d90611ff4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156110f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ed906123cc565b60405180910390fd5b6110ff816117a0565b50565b60118060000154908060010154908060020154905083565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600760159054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156111cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c29061245e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561123b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611232906124f0565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113199190611d2d565b60405180910390a3505050565b60008111611369576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136090612582565b60405180910390fd5b601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561140d5750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561146257600760169054906101000a900460ff16611461576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611458906125ee565b60405180910390fd5b5b600080600061146f611ada565b6000601460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156115155750601460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561152f5750600a5460095461152c9190612175565b43105b9050600760149054906101000a900460ff16806115955750601460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806115e95750601460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156115f7576000925061172a565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16148015611652575080155b156116b4576011600201546011600001546011600101546116739190612175565b61167d9190612175565b9450849350601160405180606001604052908160008201548152602001600182015481526020016002820154815250509150611729565b8061171657600e60020154600e60000154600e600101546116d59190612175565b6116df9190612175565b9450849350600e60405180606001604052908160008201548152602001600182015481526020016002820154815250509150611728565b801561172757600b549450600b5493505b5b5b5b60648487611738919061260e565b6117429190612697565b925061175a888885896117559190612141565b611866565b60008311156117965760008511156117955760006064868861177c919061260e565b6117869190612697565b9050611793893083611866565b505b5b5050505050505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156118d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118cd9061273a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611946576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193d906127cc565b60405180910390fd5b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156119cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c39061285e565b60405180910390fd5b81816119d89190612141565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611a689190612175565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611acc9190611d2d565b60405180910390a350505050565b60405180606001604052806000815260200160008152602001600081525090565b600081519050919050565b600082825260208201905092915050565b60005b83811015611b35578082015181840152602081019050611b1a565b83811115611b44576000848401525b50505050565b6000601f19601f8301169050919050565b6000611b6682611afb565b611b708185611b06565b9350611b80818560208601611b17565b611b8981611b4a565b840191505092915050565b60006020820190508181036000830152611bae8184611b5b565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611be682611bbb565b9050919050565b611bf681611bdb565b8114611c0157600080fd5b50565b600081359050611c1381611bed565b92915050565b6000819050919050565b611c2c81611c19565b8114611c3757600080fd5b50565b600081359050611c4981611c23565b92915050565b60008060408385031215611c6657611c65611bb6565b5b6000611c7485828601611c04565b9250506020611c8585828601611c3a565b9150509250929050565b60008115159050919050565b611ca481611c8f565b82525050565b6000602082019050611cbf6000830184611c9b565b92915050565b611cce81611c8f565b8114611cd957600080fd5b50565b600081359050611ceb81611cc5565b92915050565b600060208284031215611d0757611d06611bb6565b5b6000611d1584828501611cdc565b91505092915050565b611d2781611c19565b82525050565b6000602082019050611d426000830184611d1e565b92915050565b600080600060608486031215611d6157611d60611bb6565b5b6000611d6f86828701611c04565b9350506020611d8086828701611c04565b9250506040611d9186828701611c3a565b9150509250925092565b600060ff82169050919050565b611db181611d9b565b82525050565b6000602082019050611dcc6000830184611da8565b92915050565b600060208284031215611de857611de7611bb6565b5b6000611df684828501611c3a565b91505092915050565b600060208284031215611e1557611e14611bb6565b5b6000611e2384828501611c04565b91505092915050565b6000606082019050611e416000830186611d1e565b611e4e6020830185611d1e565b611e5b6040830184611d1e565b949350505050565b611e6c81611bdb565b82525050565b6000602082019050611e876000830184611e63565b92915050565b60008060408385031215611ea457611ea3611bb6565b5b6000611eb285828601611c04565b9250506020611ec385828601611c04565b9150509250929050565b6000819050919050565b6000611ef2611eed611ee884611bbb565b611ecd565b611bbb565b9050919050565b6000611f0482611ed7565b9050919050565b6000611f1682611ef9565b9050919050565b611f2681611f0b565b82525050565b6000602082019050611f416000830184611f1d565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611f8e57607f821691505b60208210811415611fa257611fa1611f47565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611fde602083611b06565b9150611fe982611fa8565b602082019050919050565b6000602082019050818103600083015261200d81611fd1565b9050919050565b7f43616e6e6f742072652d656e61626c652074726164696e670000000000000000600082015250565b600061204a601883611b06565b915061205582612014565b602082019050919050565b600060208201905081810360008301526120798161203d565b9050919050565b7f42455032303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006120dc602883611b06565b91506120e782612080565b604082019050919050565b6000602082019050818103600083015261210b816120cf565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061214c82611c19565b915061215783611c19565b92508282101561216a57612169612112565b5b828203905092915050565b600061218082611c19565b915061218b83611c19565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156121c0576121bf612112565b5b828201905092915050565b7f42455032303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000612227602583611b06565b9150612232826121cb565b604082019050919050565b600060208201905081810360008301526122568161221a565b9050919050565b7f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c60008201527f616e6365206f6620697473206f776e20746f6b656e7300000000000000000000602082015250565b60006122b9603683611b06565b91506122c48261225d565b604082019050919050565b600060208201905081810360008301526122e8816122ac565b9050919050565b60006040820190506123046000830185611e63565b6123116020830184611d1e565b9392505050565b60008151905061232781611cc5565b92915050565b60006020828403121561234357612342611bb6565b5b600061235184828501612318565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006123b6602683611b06565b91506123c18261235a565b604082019050919050565b600060208201905081810360008301526123e5816123a9565b9050919050565b7f42455032303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612448602483611b06565b9150612453826123ec565b604082019050919050565b600060208201905081810360008301526124778161243b565b9050919050565b7f42455032303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006124da602283611b06565b91506124e58261247e565b604082019050919050565b60006020820190508181036000830152612509816124cd565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061256c602983611b06565b915061257782612510565b604082019050919050565b6000602082019050818103600083015261259b8161255f565b9050919050565b7f54726164696e67206e6f7420656e61626c656400000000000000000000000000600082015250565b60006125d8601383611b06565b91506125e3826125a2565b602082019050919050565b60006020820190508181036000830152612607816125cb565b9050919050565b600061261982611c19565b915061262483611c19565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561265d5761265c612112565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006126a282611c19565b91506126ad83611c19565b9250826126bd576126bc612668565b5b828204905092915050565b7f42455032303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612724602583611b06565b915061272f826126c8565b604082019050919050565b6000602082019050818103600083015261275381612717565b9050919050565b7f42455032303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006127b6602383611b06565b91506127c18261275a565b604082019050919050565b600060208201905081810360008301526127e5816127a9565b9050919050565b7f42455032303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000612848602683611b06565b9150612853826127ec565b604082019050919050565b600060208201905081810360008301526128778161283b565b905091905056fea2646970667358221220d592988ecf05a3f9ae543e92932ad026b40d3b0859bd9000b29d0b493f3f44fa64736f6c634300080b0033
Deployed Bytecode Sourcemap
17268:4972:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7899:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18844:161;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21459:152;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17533:48;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9019:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21625:222;;;:::i;:::-;;19013:448;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17590:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8861:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11673:247;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21877:112;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17490:34;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9190:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15931:94;;;:::i;:::-;;18048:35;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;17699:75;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17854:79;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15708:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17781:69;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8118:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12423:409;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17379:19;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19477:165;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18138:41;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21997:238;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9809:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16033:192;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18090:39;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;17351:21;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17445:38;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7899:100;7953:13;7986:5;7979:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7899:100;:::o;18844:161::-;18919:4;18936:39;18945:12;:10;:12::i;:::-;18959:7;18968:6;18936:8;:39::i;:::-;18993:4;18986:11;;18844:161;;;;:::o;21459:152::-;15854:12;:10;:12::i;:::-;15843:23;;:7;:5;:7::i;:::-;:23;;;15835:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21598:5:::1;21577:18;;:26;;;;;;;;;;;;;;;;;;21459:152:::0;:::o;17533:48::-;;;;:::o;9019:108::-;9080:7;9107:12;;9100:19;;9019:108;:::o;21625:222::-;15854:12;:10;:12::i;:::-;15843:23;;:7;:5;:7::i;:::-;:23;;;15835:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21689:14:::1;;;;;;;;;;;21688:15;21680:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;21760:4;21743:14;;:21;;;;;;;;;;;;;;;;;;21796:4;21775:18;;:25;;;;;;;;;;;;;;;;;;21827:12;21811:13;:28;;;;21625:222::o:0;19013:448::-;19145:4;19162:36;19172:6;19180:9;19191:6;19162:9;:36::i;:::-;19211:24;19238:11;:19;19250:6;19238:19;;;;;;;;;;;;;;;:33;19258:12;:10;:12::i;:::-;19238:33;;;;;;;;;;;;;;;;19211:60;;19310:6;19290:16;:26;;19282:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;19372:57;19381:6;19389:12;:10;:12::i;:::-;19422:6;19403:16;:25;;;;:::i;:::-;19372:8;:57::i;:::-;19449:4;19442:11;;;19013:448;;;;;:::o;17590:28::-;;;;:::o;8861:93::-;8919:5;8944:2;8937:9;;8861:93;:::o;11673:247::-;11788:4;11810:80;11819:12;:10;:12::i;:::-;11833:7;11879:10;11842:11;:25;11854:12;:10;:12::i;:::-;11842:25;;;;;;;;;;;;;;;:34;11868:7;11842:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;11810:8;:80::i;:::-;11908:4;11901:11;;11673:247;;;;:::o;21877:112::-;15854:12;:10;:12::i;:::-;15843:23;;:7;:5;:7::i;:::-;:23;;;15835:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21953:7:::1;:5;:7::i;:::-;21945:25;;:36;21971:9;21945:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;21877:112:::0;:::o;17490:34::-;;;;;;;;;;;;;:::o;9190:127::-;9264:7;9291:9;:18;9301:7;9291:18;;;;;;;;;;;;;;;;9284:25;;9190:127;;;:::o;15931:94::-;15854:12;:10;:12::i;:::-;15843:23;;:7;:5;:7::i;:::-;:23;;;15835:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15996:21:::1;16014:1;15996:9;:21::i;:::-;15931:94::o:0;18048:35::-;;;;;;;;;;;;;;;;;;;:::o;17699:75::-;;;;;;;;;;;;;:::o;17854:79::-;17891:42;17854:79;:::o;15708:87::-;15754:7;15781:6;;;;;;;;;;;15774:13;;15708:87;:::o;17781:69::-;;;;;;;;;;;;;:::o;8118:104::-;8174:13;8207:7;8200:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8118:104;:::o;12423:409::-;12543:4;12565:24;12592:11;:25;12604:12;:10;:12::i;:::-;12592:25;;;;;;;;;;;;;;;:34;12618:7;12592:34;;;;;;;;;;;;;;;;12565:61;;12665:15;12645:16;:35;;12637:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;12733:67;12742:12;:10;:12::i;:::-;12756:7;12784:15;12765:16;:34;;;;:::i;:::-;12733:8;:67::i;:::-;12820:4;12813:11;;;12423:409;;;;:::o;17379:19::-;;;;;;;;;;;;;:::o;19477:165::-;19555:4;19572:40;19582:10;19594:9;19605:6;19572:9;:40::i;:::-;19630:4;19623:11;;19477:165;;;;:::o;18138:41::-;;;;;;;;;;;;;;;;;;;;;;:::o;21997:238::-;15854:12;:10;:12::i;:::-;15843:23;;:7;:5;:7::i;:::-;:23;;;15835:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22110:4:::1;22090:25;;:8;:25;;;;22082:92;;;;;;;;;;;;:::i;:::-;;;;;;;;;22192:8;22185:25;;;22211:7;:5;:7::i;:::-;22220:6;22185:42;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21997:238:::0;;:::o;9809:201::-;9943:7;9975:11;:18;9987:5;9975:18;;;;;;;;;;;;;;;:27;9994:7;9975:27;;;;;;;;;;;;;;;;9968:34;;9809:201;;;;:::o;16033:192::-;15854:12;:10;:12::i;:::-;15843:23;;:7;:5;:7::i;:::-;:23;;;15835:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16142:1:::1;16122:22;;:8;:22;;;;16114:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;16198:19;16208:8;16198:9;:19::i;:::-;16033:192:::0;:::o;18090:39::-;;;;;;;;;;;;;;;;;;;:::o;17351:21::-;;;;;;;;;;;;;:::o;17445:38::-;;;;;;;;;;;;;:::o;5621:98::-;5674:7;5701:10;5694:17;;5621:98;:::o;14741:380::-;14894:1;14877:19;;:5;:19;;;;14869:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14975:1;14956:21;;:7;:21;;;;14948:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15059:6;15029:11;:18;15041:5;15029:18;;;;;;;;;;;;;;;:27;15048:7;15029:27;;;;;;;;;;;;;;;:36;;;;15097:7;15081:32;;15090:5;15081:32;;;15106:6;15081:32;;;;;;:::i;:::-;;;;;;;;14741:380;;;:::o;19650:1794::-;19800:1;19791:6;:10;19783:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;19865:9;:17;19875:6;19865:17;;;;;;;;;;;;;;;;;;;;;;;;;19864:18;:43;;;;;19887:9;:20;19897:9;19887:20;;;;;;;;;;;;;;;;;;;;;;;;;19886:21;19864:43;19860:122;;;19932:14;;;;;;;;;;;19924:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;19860:122;19994:15;20020:14;20045:11;20067:25;;:::i;:::-;20105:17;20126:9;:17;20136:6;20126:17;;;;;;;;;;;;;;;;;;;;;;;;;20125:18;:56;;;;;20161:9;:20;20171:9;20161:20;;;;;;;;;;;;;;;;;;;;;;;;;20160:21;20125:56;:112;;;;;20229:8;;20213:13;;:24;;;;:::i;:::-;20198:12;:39;20125:112;20105:132;;20325:10;;;;;;;;;;;:31;;;;20339:9;:17;20349:6;20339:17;;;;;;;;;;;;;;;;;;;;;;;;;20325:31;:55;;;;20360:9;:20;20370:9;20360:20;;;;;;;;;;;;;;;;;;;;;;;;;20325:55;20321:715;;;20401:1;20395:7;;20321:715;;;20466:4;;;;;;;;;;;20453:17;;:9;:17;;;:34;;;;;20475:12;20474:13;20453:34;20449:587;;;20614:9;:13;;;20570:9;:18;;;20531:9;:19;;;:57;;;;:::i;:::-;:96;;;;:::i;:::-;20504:123;;20651:7;20642:16;;20688:9;20673:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20449:587;;;20720:12;20715:321;;20845:5;:9;;;20811:5;:14;;;20776:5;:15;;;:49;;;;:::i;:::-;:78;;;;:::i;:::-;20749:105;;20879:7;20870:16;;20916:5;20901:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20715:321;;;20943:12;20939:97;;;20982:9;;20972:19;;21015:9;;21006:18;;20939:97;20715:321;20449:587;20321:715;21074:3;21064:6;21055;:15;;;;:::i;:::-;21054:23;;;;:::i;:::-;21048:29;;21129:48;21145:6;21153:9;21173:3;21164:6;:12;;;;:::i;:::-;21129:15;:48::i;:::-;21198:1;21192:3;:7;21188:249;;;21274:1;21264:7;:11;21260:164;;;21296:17;21337:3;21326:7;21317:6;:16;;;;:::i;:::-;21316:24;;;;:::i;:::-;21296:44;;21359:49;21375:6;21391:4;21398:9;21359:15;:49::i;:::-;21277:147;21260:164;21188:249;19772:1672;;;;;19650:1794;;;:::o;16233:173::-;16289:16;16308:6;;;;;;;;;;;16289:25;;16334:8;16325:6;;:17;;;;;;;;;;;;;;;;;;16389:8;16358:40;;16379:8;16358:40;;;;;;;;;;;;16278:128;16233:173;:::o;13322:578::-;13480:1;13462:20;;:6;:20;;;;13454:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;13564:1;13543:23;;:9;:23;;;;13535:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;13619:21;13643:9;:17;13653:6;13643:17;;;;;;;;;;;;;;;;13619:41;;13696:6;13679:13;:23;;13671:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;13792:6;13776:13;:22;;;;:::i;:::-;13756:9;:17;13766:6;13756:17;;;;;;;;;;;;;;;:42;;;;13833:6;13809:9;:20;13819:9;13809:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;13874:9;13857:35;;13866:6;13857:35;;;13885:6;13857:35;;;;;;:::i;:::-;;;;;;;;13443:457;13322:578;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;:::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:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:116::-;3564:21;3579:5;3564:21;:::i;:::-;3557:5;3554:32;3544:60;;3600:1;3597;3590:12;3544:60;3494:116;:::o;3616:133::-;3659:5;3697:6;3684:20;3675:29;;3713:30;3737:5;3713:30;:::i;:::-;3616:133;;;;:::o;3755:323::-;3811:6;3860:2;3848:9;3839:7;3835:23;3831:32;3828:119;;;3866:79;;:::i;:::-;3828:119;3986:1;4011:50;4053:7;4044:6;4033:9;4029:22;4011:50;:::i;:::-;4001:60;;3957:114;3755:323;;;;:::o;4084:118::-;4171:24;4189:5;4171:24;:::i;:::-;4166:3;4159:37;4084:118;;:::o;4208:222::-;4301:4;4339:2;4328:9;4324:18;4316:26;;4352:71;4420:1;4409:9;4405:17;4396:6;4352:71;:::i;:::-;4208:222;;;;:::o;4436:619::-;4513:6;4521;4529;4578:2;4566:9;4557:7;4553:23;4549:32;4546:119;;;4584:79;;:::i;:::-;4546:119;4704:1;4729:53;4774:7;4765:6;4754:9;4750:22;4729:53;:::i;:::-;4719:63;;4675:117;4831:2;4857:53;4902:7;4893:6;4882:9;4878:22;4857:53;:::i;:::-;4847:63;;4802:118;4959:2;4985:53;5030:7;5021:6;5010:9;5006:22;4985:53;:::i;:::-;4975:63;;4930:118;4436:619;;;;;:::o;5061:86::-;5096:7;5136:4;5129:5;5125:16;5114:27;;5061:86;;;:::o;5153:112::-;5236:22;5252:5;5236:22;:::i;:::-;5231:3;5224:35;5153:112;;:::o;5271:214::-;5360:4;5398:2;5387:9;5383:18;5375:26;;5411:67;5475:1;5464:9;5460:17;5451:6;5411:67;:::i;:::-;5271:214;;;;:::o;5491:329::-;5550:6;5599:2;5587:9;5578:7;5574:23;5570:32;5567:119;;;5605:79;;:::i;:::-;5567:119;5725:1;5750:53;5795:7;5786:6;5775:9;5771:22;5750:53;:::i;:::-;5740:63;;5696:117;5491:329;;;;:::o;5826:::-;5885:6;5934:2;5922:9;5913:7;5909:23;5905:32;5902:119;;;5940:79;;:::i;:::-;5902:119;6060:1;6085:53;6130:7;6121:6;6110:9;6106:22;6085:53;:::i;:::-;6075:63;;6031:117;5826:329;;;;:::o;6161:442::-;6310:4;6348:2;6337:9;6333:18;6325:26;;6361:71;6429:1;6418:9;6414:17;6405:6;6361:71;:::i;:::-;6442:72;6510:2;6499:9;6495:18;6486:6;6442:72;:::i;:::-;6524;6592:2;6581:9;6577:18;6568:6;6524:72;:::i;:::-;6161:442;;;;;;:::o;6609:118::-;6696:24;6714:5;6696:24;:::i;:::-;6691:3;6684:37;6609:118;;:::o;6733:222::-;6826:4;6864:2;6853:9;6849:18;6841:26;;6877:71;6945:1;6934:9;6930:17;6921:6;6877:71;:::i;:::-;6733:222;;;;:::o;6961:474::-;7029:6;7037;7086:2;7074:9;7065:7;7061:23;7057:32;7054:119;;;7092:79;;:::i;:::-;7054:119;7212:1;7237:53;7282:7;7273:6;7262:9;7258:22;7237:53;:::i;:::-;7227:63;;7183:117;7339:2;7365:53;7410:7;7401:6;7390:9;7386:22;7365:53;:::i;:::-;7355:63;;7310:118;6961:474;;;;;:::o;7441:60::-;7469:3;7490:5;7483:12;;7441:60;;;:::o;7507:142::-;7557:9;7590:53;7608:34;7617:24;7635:5;7617:24;:::i;:::-;7608:34;:::i;:::-;7590:53;:::i;:::-;7577:66;;7507:142;;;:::o;7655:126::-;7705:9;7738:37;7769:5;7738:37;:::i;:::-;7725:50;;7655:126;;;:::o;7787:141::-;7852:9;7885:37;7916:5;7885:37;:::i;:::-;7872:50;;7787:141;;;:::o;7934:161::-;8036:52;8082:5;8036:52;:::i;:::-;8031:3;8024:65;7934:161;;:::o;8101:252::-;8209:4;8247:2;8236:9;8232:18;8224:26;;8260:86;8343:1;8332:9;8328:17;8319:6;8260:86;:::i;:::-;8101:252;;;;:::o;8359:180::-;8407:77;8404:1;8397:88;8504:4;8501:1;8494:15;8528:4;8525:1;8518:15;8545:320;8589:6;8626:1;8620:4;8616:12;8606:22;;8673:1;8667:4;8663:12;8694:18;8684:81;;8750:4;8742:6;8738:17;8728:27;;8684:81;8812:2;8804:6;8801:14;8781:18;8778:38;8775:84;;;8831:18;;:::i;:::-;8775:84;8596:269;8545:320;;;:::o;8871:182::-;9011:34;9007:1;8999:6;8995:14;8988:58;8871:182;:::o;9059:366::-;9201:3;9222:67;9286:2;9281:3;9222:67;:::i;:::-;9215:74;;9298:93;9387:3;9298:93;:::i;:::-;9416:2;9411:3;9407:12;9400:19;;9059:366;;;:::o;9431:419::-;9597:4;9635:2;9624:9;9620:18;9612:26;;9684:9;9678:4;9674:20;9670:1;9659:9;9655:17;9648:47;9712:131;9838:4;9712:131;:::i;:::-;9704:139;;9431:419;;;:::o;9856:174::-;9996:26;9992:1;9984:6;9980:14;9973:50;9856:174;:::o;10036:366::-;10178:3;10199:67;10263:2;10258:3;10199:67;:::i;:::-;10192:74;;10275:93;10364:3;10275:93;:::i;:::-;10393:2;10388:3;10384:12;10377:19;;10036:366;;;:::o;10408:419::-;10574:4;10612:2;10601:9;10597:18;10589:26;;10661:9;10655:4;10651:20;10647:1;10636:9;10632:17;10625:47;10689:131;10815:4;10689:131;:::i;:::-;10681:139;;10408:419;;;:::o;10833:227::-;10973:34;10969:1;10961:6;10957:14;10950:58;11042:10;11037:2;11029:6;11025:15;11018:35;10833:227;:::o;11066:366::-;11208:3;11229:67;11293:2;11288:3;11229:67;:::i;:::-;11222:74;;11305:93;11394:3;11305:93;:::i;:::-;11423:2;11418:3;11414:12;11407:19;;11066:366;;;:::o;11438:419::-;11604:4;11642:2;11631:9;11627:18;11619:26;;11691:9;11685:4;11681:20;11677:1;11666:9;11662:17;11655:47;11719:131;11845:4;11719:131;:::i;:::-;11711:139;;11438:419;;;:::o;11863:180::-;11911:77;11908:1;11901:88;12008:4;12005:1;11998:15;12032:4;12029:1;12022:15;12049:191;12089:4;12109:20;12127:1;12109:20;:::i;:::-;12104:25;;12143:20;12161:1;12143:20;:::i;:::-;12138:25;;12182:1;12179;12176:8;12173:34;;;12187:18;;:::i;:::-;12173:34;12232:1;12229;12225:9;12217:17;;12049:191;;;;:::o;12246:305::-;12286:3;12305:20;12323:1;12305:20;:::i;:::-;12300:25;;12339:20;12357:1;12339:20;:::i;:::-;12334:25;;12493:1;12425:66;12421:74;12418:1;12415:81;12412:107;;;12499:18;;:::i;:::-;12412:107;12543:1;12540;12536:9;12529:16;;12246:305;;;;:::o;12557:224::-;12697:34;12693:1;12685:6;12681:14;12674:58;12766:7;12761:2;12753:6;12749:15;12742:32;12557:224;:::o;12787:366::-;12929:3;12950:67;13014:2;13009:3;12950:67;:::i;:::-;12943:74;;13026:93;13115:3;13026:93;:::i;:::-;13144:2;13139:3;13135:12;13128:19;;12787:366;;;:::o;13159:419::-;13325:4;13363:2;13352:9;13348:18;13340:26;;13412:9;13406:4;13402:20;13398:1;13387:9;13383:17;13376:47;13440:131;13566:4;13440:131;:::i;:::-;13432:139;;13159:419;;;:::o;13584:241::-;13724:34;13720:1;13712:6;13708:14;13701:58;13793:24;13788:2;13780:6;13776:15;13769:49;13584:241;:::o;13831:366::-;13973:3;13994:67;14058:2;14053:3;13994:67;:::i;:::-;13987:74;;14070:93;14159:3;14070:93;:::i;:::-;14188:2;14183:3;14179:12;14172:19;;13831:366;;;:::o;14203:419::-;14369:4;14407:2;14396:9;14392:18;14384:26;;14456:9;14450:4;14446:20;14442:1;14431:9;14427:17;14420:47;14484:131;14610:4;14484:131;:::i;:::-;14476:139;;14203:419;;;:::o;14628:332::-;14749:4;14787:2;14776:9;14772:18;14764:26;;14800:71;14868:1;14857:9;14853:17;14844:6;14800:71;:::i;:::-;14881:72;14949:2;14938:9;14934:18;14925:6;14881:72;:::i;:::-;14628:332;;;;;:::o;14966:137::-;15020:5;15051:6;15045:13;15036:22;;15067:30;15091:5;15067:30;:::i;:::-;14966:137;;;;:::o;15109:345::-;15176:6;15225:2;15213:9;15204:7;15200:23;15196:32;15193:119;;;15231:79;;:::i;:::-;15193:119;15351:1;15376:61;15429:7;15420:6;15409:9;15405:22;15376:61;:::i;:::-;15366:71;;15322:125;15109:345;;;;:::o;15460:225::-;15600:34;15596:1;15588:6;15584:14;15577:58;15669:8;15664:2;15656:6;15652:15;15645:33;15460:225;:::o;15691:366::-;15833:3;15854:67;15918:2;15913:3;15854:67;:::i;:::-;15847:74;;15930:93;16019:3;15930:93;:::i;:::-;16048:2;16043:3;16039:12;16032:19;;15691:366;;;:::o;16063:419::-;16229:4;16267:2;16256:9;16252:18;16244:26;;16316:9;16310:4;16306:20;16302:1;16291:9;16287:17;16280:47;16344:131;16470:4;16344:131;:::i;:::-;16336:139;;16063:419;;;:::o;16488:223::-;16628:34;16624:1;16616:6;16612:14;16605:58;16697:6;16692:2;16684:6;16680:15;16673:31;16488:223;:::o;16717:366::-;16859:3;16880:67;16944:2;16939:3;16880:67;:::i;:::-;16873:74;;16956:93;17045:3;16956:93;:::i;:::-;17074:2;17069:3;17065:12;17058:19;;16717:366;;;:::o;17089:419::-;17255:4;17293:2;17282:9;17278:18;17270:26;;17342:9;17336:4;17332:20;17328:1;17317:9;17313:17;17306:47;17370:131;17496:4;17370:131;:::i;:::-;17362:139;;17089:419;;;:::o;17514:221::-;17654:34;17650:1;17642:6;17638:14;17631:58;17723:4;17718:2;17710:6;17706:15;17699:29;17514:221;:::o;17741:366::-;17883:3;17904:67;17968:2;17963:3;17904:67;:::i;:::-;17897:74;;17980:93;18069:3;17980:93;:::i;:::-;18098:2;18093:3;18089:12;18082:19;;17741:366;;;:::o;18113:419::-;18279:4;18317:2;18306:9;18302:18;18294:26;;18366:9;18360:4;18356:20;18352:1;18341:9;18337:17;18330:47;18394:131;18520:4;18394:131;:::i;:::-;18386:139;;18113:419;;;:::o;18538:228::-;18678:34;18674:1;18666:6;18662:14;18655:58;18747:11;18742:2;18734:6;18730:15;18723:36;18538:228;:::o;18772:366::-;18914:3;18935:67;18999:2;18994:3;18935:67;:::i;:::-;18928:74;;19011:93;19100:3;19011:93;:::i;:::-;19129:2;19124:3;19120:12;19113:19;;18772:366;;;:::o;19144:419::-;19310:4;19348:2;19337:9;19333:18;19325:26;;19397:9;19391:4;19387:20;19383:1;19372:9;19368:17;19361:47;19425:131;19551:4;19425:131;:::i;:::-;19417:139;;19144:419;;;:::o;19569:169::-;19709:21;19705:1;19697:6;19693:14;19686:45;19569:169;:::o;19744:366::-;19886:3;19907:67;19971:2;19966:3;19907:67;:::i;:::-;19900:74;;19983:93;20072:3;19983:93;:::i;:::-;20101:2;20096:3;20092:12;20085:19;;19744:366;;;:::o;20116:419::-;20282:4;20320:2;20309:9;20305:18;20297:26;;20369:9;20363:4;20359:20;20355:1;20344:9;20340:17;20333:47;20397:131;20523:4;20397:131;:::i;:::-;20389:139;;20116:419;;;:::o;20541:348::-;20581:7;20604:20;20622:1;20604:20;:::i;:::-;20599:25;;20638:20;20656:1;20638:20;:::i;:::-;20633:25;;20826:1;20758:66;20754:74;20751:1;20748:81;20743:1;20736:9;20729:17;20725:105;20722:131;;;20833:18;;:::i;:::-;20722:131;20881:1;20878;20874:9;20863:20;;20541:348;;;;:::o;20895:180::-;20943:77;20940:1;20933:88;21040:4;21037:1;21030:15;21064:4;21061:1;21054:15;21081:185;21121:1;21138:20;21156:1;21138:20;:::i;:::-;21133:25;;21172:20;21190:1;21172:20;:::i;:::-;21167:25;;21211:1;21201:35;;21216:18;;:::i;:::-;21201:35;21258:1;21255;21251:9;21246:14;;21081:185;;;;:::o;21272:224::-;21412:34;21408:1;21400:6;21396:14;21389:58;21481:7;21476:2;21468:6;21464:15;21457:32;21272:224;:::o;21502:366::-;21644:3;21665:67;21729:2;21724:3;21665:67;:::i;:::-;21658:74;;21741:93;21830:3;21741:93;:::i;:::-;21859:2;21854:3;21850:12;21843:19;;21502:366;;;:::o;21874:419::-;22040:4;22078:2;22067:9;22063:18;22055:26;;22127:9;22121:4;22117:20;22113:1;22102:9;22098:17;22091:47;22155:131;22281:4;22155:131;:::i;:::-;22147:139;;21874:419;;;:::o;22299:222::-;22439:34;22435:1;22427:6;22423:14;22416:58;22508:5;22503:2;22495:6;22491:15;22484:30;22299:222;:::o;22527:366::-;22669:3;22690:67;22754:2;22749:3;22690:67;:::i;:::-;22683:74;;22766:93;22855:3;22766:93;:::i;:::-;22884:2;22879:3;22875:12;22868:19;;22527:366;;;:::o;22899:419::-;23065:4;23103:2;23092:9;23088:18;23080:26;;23152:9;23146:4;23142:20;23138:1;23127:9;23123:17;23116:47;23180:131;23306:4;23180:131;:::i;:::-;23172:139;;22899:419;;;:::o;23324:225::-;23464:34;23460:1;23452:6;23448:14;23441:58;23533:8;23528:2;23520:6;23516:15;23509:33;23324:225;:::o;23555:366::-;23697:3;23718:67;23782:2;23777:3;23718:67;:::i;:::-;23711:74;;23794:93;23883:3;23794:93;:::i;:::-;23912:2;23907:3;23903:12;23896:19;;23555:366;;;:::o;23927:419::-;24093:4;24131:2;24120:9;24116:18;24108:26;;24180:9;24174:4;24170:20;24166:1;24155:9;24151:17;24144:47;24208:131;24334:4;24208:131;:::i;:::-;24200:139;;23927:419;;;:::o
Swarm Source
ipfs://d592988ecf05a3f9ae543e92932ad026b40d3b0859bd9000b29d0b493f3f44fa
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.