Token migration announcement. VIDT Datalink token contract has migrated to a new address.
ERC-20
Overview
Max Total Supply
56,103,239 VIDT
Holders
4,473 (0.00%)
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
0 VIDTValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.
Contract Name:
VIDT
Compiler Version
v0.6.8+commit.0bbfe453
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-10-04 */ // SPDX-License-Identifier: UNLICENSED pragma solidity 0.6.8; interface ERC20 { function totalSupply() external view returns (uint256); function decimals() external view returns (uint8); function symbol() external view returns (string memory); function name() external view returns (string memory); function getOwner() external view returns (address); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address account, 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); function decreaseApproval(address spender, uint256 amount) external returns (bool success); function increaseApproval(address spender, uint256 amount) external returns (bool success); event Transfer(address indexed _from, address indexed _to, uint256 _value); event Approval(address indexed _owner, address indexed _spender, uint256 _value); } contract Context { constructor () internal { } function _msgSender() internal view returns (address) { return msg.sender; } } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a && c >= b, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { uint256 c = a - b; require(b <= a && c <= a, errorMessage); return c; } } contract Ownable is Context { address private _owner; address private mainWallet; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () internal { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender() || mainWallet == _msgSender(), "Ownable: caller is not the owner"); _; } function transferOwnership(address newOwner) public onlyOwner { _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } contract Pausable is Ownable { event Pause(); event Unpause(); bool public paused = false; modifier whenNotPaused() { require(!paused); _; } modifier whenPaused() { require(paused); _; } function pause() public onlyOwner whenNotPaused { paused = true; emit Pause(); } function unpause() public onlyOwner whenPaused { paused = false; emit Unpause(); } } library SafeERC20 { function safeTransfer(ERC20 _token, address _to, uint256 _value) internal { require(_token.transfer(_to, _value)); } } contract VIDT is ERC20, Pausable { using SafeMath for uint256; using SafeERC20 for ERC20; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private frozenAccounts; mapping (address => bool) private verifiedPublishers; mapping (address => bool) private verifiedWallets; mapping (uint256 => string) private verifiedNFTs; bool private publicNFT = false; struct fStruct { uint256 index; uint256 nft; } mapping(string => fStruct) private fileHashes; string[] private fileIndex; string private _name; string private _symbol; uint8 private _decimals; uint256 private _totalSupply; uint256 public unused = 0; uint256 public token_number = 1; uint256 private _validationPrice = 1; uint256 private _validationFee = 1; address private _validationWallet = address(0); address private mainWallet = address(0x57E6B79FC6b5A02Cb7bA9f1Bb24e4379Bdb9CAc5); address private oldContract = address(0x445f51299Ef3307dBD75036dd896565F5B4BF7A5); address private _nftContract = address(0); address private _nftdContract = address(0); uint256 public constant initialSupply = 100000000; constructor() public { _name = 'VIDT Datalink'; _symbol = 'VIDT'; _decimals = 18; _totalSupply = 57386799 * 10**18; _validationWallet = msg.sender; verifiedWallets[msg.sender] = true; verifiedPublishers[msg.sender] = true; _balances[msg.sender] = _totalSupply; } function getOwner() external view virtual override returns (address) { return owner(); } function decimals() external view virtual override returns (uint8) { return _decimals; } function symbol() external view virtual override returns (string memory) { return _symbol; } function name() external view virtual override returns (string memory) { return _name; } function nameChange(string memory newName) public onlyOwner { _name = newName; } function totalSupply() external view virtual override returns (uint256) { return _totalSupply; } function balanceOf(address account) external view virtual override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) external whenNotPaused override returns (bool) { require(!frozenAccounts[msg.sender] || recipient == owner(),"T1 - The wallet of sender is frozen"); require(!frozenAccounts[recipient],"T2 - The wallet of recipient is frozen"); _transfer(_msgSender(), recipient, amount); return true; } function transferToken(address tokenAddress, uint256 tokens) external onlyOwner { ERC20(tokenAddress).transfer(owner(),tokens); } function allowance(address owner, address spender) external view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) external whenNotPaused override returns (bool) { require((amount == 0) || (_allowances[msg.sender][spender] == 0),"A1- Reset allowance to 0 first"); _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) external whenNotPaused override returns (bool) { require(!frozenAccounts[sender],"TF1 - The wallet of sender is frozen"); require(!frozenAccounts[recipient] || recipient == owner(),"TF2 - The wallet of recipient is frozen"); _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "TF1 - Transfer amount exceeds allowance")); return true; } function increaseAllowance(address spender, uint256 addedValue) public whenNotPaused returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue)); return true; } function increaseApproval(address spender, uint256 addedValue) public whenNotPaused override returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue)); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public whenNotPaused returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "DA1 - Decreased allowance below zero")); return true; } function decreaseApproval(address spender, uint256 subtractedValue) public whenNotPaused override returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "DA1 - Decreased allowance below zero")); return true; } function burn(uint256 amount) public { _burn(_msgSender(), amount); } function freeze(address _address, bool _state) public onlyOwner returns (bool) { frozenAccounts[_address] = _state; emit Freeze(_address, _state); return true; } function burnFrom(address account, uint256 amount) public { uint256 decreasedAllowance = _allowances[account][_msgSender()].sub(amount, "BF1 - Burn amount exceeds allowance"); _approve(account, _msgSender(), decreasedAllowance); _burn(account, amount); } function _transfer(address sender, address recipient, uint256 amount) internal { require(sender != address(0), "T1 - Transfer from the zero address"); require(recipient != address(0) || frozenAccounts[sender], "T3 - Transfer to the zero address"); _balances[sender] = _balances[sender].sub(amount, "T4 - Transfer amount exceeds balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); } function _burn(address account, uint256 amount) internal { require(account != address(0), "B1 - Burn from the zero address"); _balances[account] = _balances[account].sub(amount, "B2 - Burn amount exceeds balance"); _totalSupply = _totalSupply.sub(amount); emit Transfer(account, address(0), amount); } function _approve(address owner, address spender, uint256 amount) internal { require(owner != address(0), "A1 - Approve from the zero address"); require(spender != address(0), "A2 - Approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function transferByOwner(address _to, uint256 _value) public onlyOwner returns (bool success) { _balances[msg.sender] = _balances[msg.sender].sub(_value); _balances[_to] = _balances[_to].add(_value); emit Transfer(msg.sender, _to, _value); return true; } function batchTransferByOwner(address[] memory _addresses, uint256[] memory _amounts) public onlyOwner returns (bool success) { require(_addresses.length == _amounts.length, "BT1 - Addresses length must be equal to amounts length"); uint256 i = 0; for (i = 0; i < _addresses.length; i++) { _balances[msg.sender] = _balances[msg.sender].sub(_amounts[i]); _balances[_addresses[i]] = _balances[_addresses[i]].add(_amounts[i]); emit Transfer(msg.sender, _addresses[i], _amounts[i]); } return true; } function validatePublisher(address Address, bool State, string memory Publisher) public onlyOwner returns (bool) { verifiedPublishers[Address] = State; emit ValidatePublisher(Address,State,Publisher); return true; } function validateWallet(address Address, bool State, string memory Wallet) public onlyOwner returns (bool) { verifiedWallets[Address] = State; emit ValidateWallet(Address,State,Wallet); return true; } function bytesToBytes32(bytes memory b, uint offset) private pure returns (bytes32) { bytes32 out; for (uint i = 0; i < 32; i++) { out |= bytes32(b[offset + i] & 0xFF) >> (i * 8); } return out; } function validateFile(address To, uint256 Payment, bytes calldata Data, bool cStore, bool eLog, bool NFT) external payable returns (bool) { require(Payment >= _validationPrice || msg.value >= _validationFee,"V1 - Insufficient payment provided"); require(verifiedPublishers[msg.sender],"V2 - Unverified publisher address"); require(Data.length == 64,"V3 - Invalid hash provided"); if (!verifiedWallets[To]) { To = _validationWallet; } uint256 index = 0; string memory fileHash = string(Data); if (cStore) { if (fileIndex.length > 0) { require(fileHashes[fileHash].index == 0,"V4 - This hash was previously validated"); } fileIndex.push(fileHash); fileHashes[fileHash].index = fileIndex.length-1; index = fileHashes[fileHash].index; } bool nft_created = false; uint256 nftID = 0; if (NFT) { bytes memory nft_data = ""; require(fileHashes[fileHash].nft == 0,"V5 - NFT exists already"); (nft_created, nft_data) = _nftContract.delegatecall(abi.encodeWithSignature("createNFT(bytes)", Data)); require(nft_created,"V6 - NFT contract call failed"); nftID = uint256(bytesToBytes32(nft_data,0)); verifiedNFTs[nftID] = fileHash; fileHashes[fileHash].nft = nftID; } if (_allowances[To][msg.sender] >= Payment) { _allowances[To][msg.sender] = _allowances[To][msg.sender].sub(Payment); } else { _balances[msg.sender] = _balances[msg.sender].sub(Payment); _balances[To] = _balances[To].add(Payment); } if (eLog) { emit ValidateFile(index,fileHash,nftID); } emit Transfer(msg.sender, To, Payment); return true; } function memoryValidateFile(uint256 Payment, bytes calldata Data) external payable whenNotPaused returns (bool) { require(Payment >= _validationPrice || msg.value >= _validationFee,"V1 - Insufficient payment provided"); require(verifiedPublishers[msg.sender],"V2 - Unverified publisher address"); require(Data.length == 64,"V3 - Invalid hash provided"); uint256 index = 0; string memory fileHash = string(Data); if (fileIndex.length > 0) { require(fileHashes[fileHash].index == 0,"V4 - This hash was previously validated"); } fileIndex.push(fileHash); fileHashes[fileHash].index = fileIndex.length-1; index = fileHashes[fileHash].index; _balances[msg.sender] = _balances[msg.sender].sub(Payment); _balances[_validationWallet] = _balances[_validationWallet].add(Payment); emit Transfer(msg.sender, _validationWallet, Payment); return true; } function validateNFT(uint256 Payment, bytes calldata Data, bool divisable) external payable whenNotPaused returns (bool) { require(Payment >= _validationPrice || msg.value >= _validationFee,"V1 - Insufficient payment provided"); require(publicNFT || verifiedPublishers[msg.sender],"V2 - Unverified publisher address"); require(Data.length == 64,"V3 - Invalid hash provided"); uint256 index = 0; string memory fileHash = string(Data); bool nft_created = false; uint256 nftID = 0; bytes memory nft_data = ""; require(fileHashes[fileHash].nft == 0,"V5 - NFT exists already"); if (divisable) { (nft_created, nft_data) = _nftdContract.delegatecall(abi.encodeWithSignature("createNFT(bytes)", Data)); } else { (nft_created, nft_data) = _nftContract.delegatecall(abi.encodeWithSignature("createNFT(bytes)", Data)); } require(nft_created,"V6 - NFT contract call failed"); nftID = uint256(bytesToBytes32(nft_data,0)); verifiedNFTs[nftID] = fileHash; fileHashes[fileHash].nft = nftID; _balances[msg.sender] = _balances[msg.sender].sub(Payment); _balances[_validationWallet] = _balances[_validationWallet].add(Payment); emit Transfer(msg.sender, _validationWallet, Payment); emit ValidateFile(index,fileHash,nftID); return true; } function simpleValidateFile(uint256 Payment) external payable whenNotPaused returns (bool) { require(Payment >= _validationPrice || msg.value >= _validationFee,"V1 - Insufficient payment provided"); require(verifiedPublishers[msg.sender],"V2 - Unverified publisher address"); _balances[msg.sender] = _balances[msg.sender].sub(Payment); _balances[_validationWallet] = _balances[_validationWallet].add(Payment); emit Transfer(msg.sender, _validationWallet, Payment); return true; } function covertValidateFile(uint256 Payment) external payable whenNotPaused returns (bool) { require(Payment >= _validationPrice || msg.value >= _validationFee,"V1 - Insufficient payment provided"); require(verifiedPublishers[msg.sender],"V2 - Unverified publisher address"); _balances[msg.sender] = _balances[msg.sender].sub(Payment); _balances[_validationWallet] = _balances[_validationWallet].add(Payment); return true; } function verifyFile(string memory fileHash) public view returns (bool verified) { verified = true; if (fileIndex.length == 0) { verified = false; } bytes memory a = bytes(fileIndex[fileHashes[fileHash].index]); bytes memory b = bytes(fileHash); if (a.length != b.length) { verified = false; } if (verified) { for (uint256 i = 0; i < a.length; i ++) { if (a[i] != b[i]) { verified = false; } } } if (!verified) { bool heritage_call = false; bytes memory heritage_data = ""; (heritage_call, heritage_data) = oldContract.staticcall(abi.encodeWithSignature("verifyFile(string)", fileHash)); require(heritage_call,"V0 - Old contract call failed"); assembly {verified := mload(add(heritage_data, 32))} } } function verifyPublisher(address _publisher) public view returns (bool verified) { verified = verifiedPublishers[_publisher]; } function verifyWallet(address _wallet) public view returns (bool verified) { verified = verifiedWallets[_wallet]; } function frozenAccount(address _account) public view returns (bool frozen) { frozen = frozenAccounts[_account]; } function verify(string memory fileHash) public view returns (bool) { if (fileIndex.length == 0) { return false; } bytes memory a = bytes(fileIndex[fileHashes[fileHash].index]); bytes memory b = bytes(fileHash); if (a.length != b.length) { return false; } for (uint256 i = 0; i < a.length; i ++) { if (a[i] != b[i]) { return false; } } return true; } function verifyFileNFT(string memory fileHash) public view returns (uint256) { if (fileIndex.length == 0) { return 0; } bytes memory a = bytes(fileIndex[fileHashes[fileHash].index]); bytes memory b = bytes(fileHash); if (a.length != b.length) { return 0; } for (uint256 i = 0; i < a.length; i ++) { if (a[i] != b[i]) { return 0; } } return fileHashes[fileHash].nft; } function verifyNFT(uint256 nftID) public view returns (string memory hash) { hash = verifiedNFTs[nftID]; } function setPrice(uint256 newPrice) public onlyOwner { _validationPrice = newPrice; } function setFee(uint256 newFee) public onlyOwner { _validationFee = newFee; } function setWallet(address newWallet) public onlyOwner { _validationWallet = newWallet; } function setContracts(address nftContract, address nftdContract) public onlyOwner { _nftContract = nftContract; _nftdContract = nftdContract; } function setPublic(bool _public) public onlyOwner { publicNFT = _public; } function listFiles(uint256 startAt, uint256 stopAt) onlyOwner public returns (bool) { if (fileIndex.length == 0) { return false; } require(startAt <= fileIndex.length-1,"L1 - Please select a valid start"); if (stopAt > 0) { require(stopAt > startAt && stopAt <= fileIndex.length-1,"L2 - Please select a valid stop"); } else { stopAt = fileIndex.length-1; } for (uint256 i = startAt; i <= stopAt; i++) { emit ListFile(i,fileIndex[i],fileHashes[fileIndex[i]].nft); } return true; } function withdraw(address payable _ownerAddress) onlyOwner external { _ownerAddress.transfer(address(this).balance); } function validationPrice() public view returns (uint256) { return _validationPrice; } function validationFee() public view returns (uint256) { return _validationFee; } function validationWallet() public view returns (address) { return _validationWallet; } function nftContract() public view returns (address) { return _nftContract; } function nftdContract() public view returns (address) { return _nftdContract; } event Freeze(address indexed target, bool indexed frozen); event ValidateFile(uint256 indexed index, string indexed data, uint256 indexed nftID); event ValidatePublisher(address indexed publisherAddress, bool indexed state, string indexed publisherName); event ValidateWallet(address indexed walletAddress, bool indexed state, string indexed walletName); event ListFile(uint256 indexed index, string indexed data, uint256 indexed nft) anonymous; }
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":"target","type":"address"},{"indexed":true,"internalType":"bool","name":"frozen","type":"bool"}],"name":"Freeze","type":"event"},{"anonymous":true,"inputs":[{"indexed":true,"internalType":"uint256","name":"index","type":"uint256"},{"indexed":true,"internalType":"string","name":"data","type":"string"},{"indexed":true,"internalType":"uint256","name":"nft","type":"uint256"}],"name":"ListFile","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":[],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":true,"internalType":"address","name":"_to","type":"address"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpause","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"index","type":"uint256"},{"indexed":true,"internalType":"string","name":"data","type":"string"},{"indexed":true,"internalType":"uint256","name":"nftID","type":"uint256"}],"name":"ValidateFile","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"publisherAddress","type":"address"},{"indexed":true,"internalType":"bool","name":"state","type":"bool"},{"indexed":true,"internalType":"string","name":"publisherName","type":"string"}],"name":"ValidatePublisher","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"walletAddress","type":"address"},{"indexed":true,"internalType":"bool","name":"state","type":"bool"},{"indexed":true,"internalType":"string","name":"walletName","type":"string"}],"name":"ValidateWallet","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addresses","type":"address[]"},{"internalType":"uint256[]","name":"_amounts","type":"uint256[]"}],"name":"batchTransferByOwner","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"Payment","type":"uint256"}],"name":"covertValidateFile","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"payable","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":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseApproval","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_state","type":"bool"}],"name":"freeze","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"frozenAccount","outputs":[{"internalType":"bool","name":"frozen","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseApproval","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initialSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"startAt","type":"uint256"},{"internalType":"uint256","name":"stopAt","type":"uint256"}],"name":"listFiles","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"Payment","type":"uint256"},{"internalType":"bytes","name":"Data","type":"bytes"}],"name":"memoryValidateFile","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"newName","type":"string"}],"name":"nameChange","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"nftContract","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nftdContract","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"nftContract","type":"address"},{"internalType":"address","name":"nftdContract","type":"address"}],"name":"setContracts","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newFee","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newPrice","type":"uint256"}],"name":"setPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_public","type":"bool"}],"name":"setPublic","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"setWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"Payment","type":"uint256"}],"name":"simpleValidateFile","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token_number","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transferByOwner","outputs":[{"internalType":"bool","name":"success","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":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"transferToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unused","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"To","type":"address"},{"internalType":"uint256","name":"Payment","type":"uint256"},{"internalType":"bytes","name":"Data","type":"bytes"},{"internalType":"bool","name":"cStore","type":"bool"},{"internalType":"bool","name":"eLog","type":"bool"},{"internalType":"bool","name":"NFT","type":"bool"}],"name":"validateFile","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"Payment","type":"uint256"},{"internalType":"bytes","name":"Data","type":"bytes"},{"internalType":"bool","name":"divisable","type":"bool"}],"name":"validateNFT","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"Address","type":"address"},{"internalType":"bool","name":"State","type":"bool"},{"internalType":"string","name":"Publisher","type":"string"}],"name":"validatePublisher","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"Address","type":"address"},{"internalType":"bool","name":"State","type":"bool"},{"internalType":"string","name":"Wallet","type":"string"}],"name":"validateWallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"validationFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"validationPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"validationWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"fileHash","type":"string"}],"name":"verify","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"fileHash","type":"string"}],"name":"verifyFile","outputs":[{"internalType":"bool","name":"verified","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"fileHash","type":"string"}],"name":"verifyFileNFT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"nftID","type":"uint256"}],"name":"verifyNFT","outputs":[{"internalType":"string","name":"hash","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_publisher","type":"address"}],"name":"verifyPublisher","outputs":[{"internalType":"bool","name":"verified","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_wallet","type":"address"}],"name":"verifyWallet","outputs":[{"internalType":"bool","name":"verified","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"_ownerAddress","type":"address"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040526001805460ff60a01b191681556008805460ff191690556000600f5560108190556011819055601255601380546001600160a01b03199081169091556014805482167357e6b79fc6b5a02cb7ba9f1bb24e4379bdb9cac517905560158054821673445f51299ef3307dbd75036dd896565f5b4bf7a517905560168054821690556017805490911690553480156200009a57600080fd5b506000620000b06001600160e01b03620001d416565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060408051808201909152600d8082526c5649445420446174616c696e6b60981b60209092019182526200013091600b91620001d9565b50604080518082019091526004808252631592511560e21b60209092019182526200015e91600c91620001d9565b50600d805460ff199081166012179091556a2f78209b7ddff9f75c0000600e908155601380546001600160a01b031916339081179091556000908152600660209081526040808320805486166001908117909155600583528184208054909616179094559154600290925291909120556200027b565b335b90565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200021c57805160ff19168380011785556200024c565b828001600101855582156200024c579182015b828111156200024c5782518255916020019190600101906200022f565b506200025a9291506200025e565b5090565b620001d691905b808211156200025a576000815560010162000265565b614d59806200028b6000396000f3fe6080604052600436106103505760003560e01c806367bf853d116101c6578063b7c6fe36116100f7578063dd62ed3e11610095578063f2fde38b1161006f578063f2fde38b14611071578063f8bbf27e146110a4578063fc399c79146110b9578063fe8312c1146110ec57610350565b8063dd62ed3e14610f6e578063deaa59df14610fa9578063f1be9dda14610fdc57610350565b8063d22e7b69116100d1578063d22e7b6914610e56578063d56d229d14610f1e578063d73dd623146105d7578063d8952a4914610f3357610350565b8063b7c6fe3614610d40578063bb9c6c3e14610d6a578063bf120ae514610e1b57610350565b806391b7f5ed11610164578063a9059cbb1161013e578063a9059cbb14610c0e578063ae7d00f314610c47578063b027102314610c5c578063b414d4b614610d0d57610350565b806391b7f5ed14610bcf57806395d89b4114610bf9578063a457c2d714610a1057610350565b806379cc6790116101a057806379cc679014610b575780638456cb5914610b90578063893d20e814610ba55780638da5cb5b14610bba57610350565b806367bf853d14610a4957806369fe0e2d14610afa57806370a0823114610b2457610350565b80633f4ba83a116102a05780634e83977a1161023e5780635c975abb116102185780635c975abb146109b25780635cbcec4e146109c75780636613c59a146109f35780636618846314610a1057610350565b80634e83977a146108b957806351b6ba5b146108ce57806351cff8d91461097f57610350565b806342966c681161027a57806342966c68146106cb57806344a70439146106f5578063464337d4146108255780634beab06a1461089c57610350565b80633f4ba83a146106105780634039f745146106255780634138ab4a1461069a57610350565b806321e92d491161030d578063313ce567116102e7578063313ce5671461056457806336ef12d51461058f578063378dc3dc146105c257806339509351146105d757610350565b806321e92d49146104d357806323b872dd1461050c5780632a4fcb1d1461054f57610350565b806306fdde0314610355578063095ea7b3146103df5780630a72fb861461042c5780631072cbea1461045357806318160ddd1461048e5780631927a8ea146104a3575b600080fd5b34801561036157600080fd5b5061036a6111b4565b6040805160208082528351818301528351919283929083019185019080838360005b838110156103a457818101518382015260200161038c565b50505050905090810190601f1680156103d15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103eb57600080fd5b506104186004803603604081101561040257600080fd5b506001600160a01b03813516906020013561124b565b604080519115158252519081900360200190f35b34801561043857600080fd5b50610441611300565b60408051918252519081900360200190f35b34801561045f57600080fd5b5061048c6004803603604081101561047657600080fd5b506001600160a01b038135169060200135611306565b005b34801561049a57600080fd5b50610441611415565b3480156104af57600080fd5b50610418600480360360408110156104c657600080fd5b508035906020013561141b565b3480156104df57600080fd5b50610418600480360360408110156104f657600080fd5b506001600160a01b0381351690602001356116a6565b34801561051857600080fd5b506104186004803603606081101561052f57600080fd5b506001600160a01b038135811691602081013590911690604001356117be565b34801561055b57600080fd5b5061044161192c565b34801561057057600080fd5b50610579611932565b6040805160ff9092168252519081900360200190f35b34801561059b57600080fd5b50610418600480360360208110156105b257600080fd5b50356001600160a01b031661193b565b3480156105ce57600080fd5b50610441611959565b3480156105e357600080fd5b50610418600480360360408110156105fa57600080fd5b506001600160a01b038135169060200135611961565b34801561061c57600080fd5b5061048c6119cd565b6104186004803603604081101561063b57600080fd5b81359190810190604081016020820135600160201b81111561065c57600080fd5b82018360208201111561066e57600080fd5b803590602001918460018302840111600160201b8311171561068f57600080fd5b509092509050611a93565b3480156106a657600080fd5b506106af611e3d565b604080516001600160a01b039092168252519081900360200190f35b3480156106d757600080fd5b5061048c600480360360208110156106ee57600080fd5b5035611e4c565b34801561070157600080fd5b506104186004803603604081101561071857600080fd5b810190602081018135600160201b81111561073257600080fd5b82018360208201111561074457600080fd5b803590602001918460208302840111600160201b8311171561076557600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b8111156107b457600080fd5b8201836020820111156107c657600080fd5b803590602001918460208302840111600160201b831117156107e757600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550611e60945050505050565b6104186004803603606081101561083b57600080fd5b81359190810190604081016020820135600160201b81111561085c57600080fd5b82018360208201111561086e57600080fd5b803590602001918460018302840111600160201b8311171561088f57600080fd5b9193509150351515612072565b610418600480360360208110156108b257600080fd5b50356126cc565b3480156108c557600080fd5b506106af6127fa565b3480156108da57600080fd5b5061048c600480360360208110156108f157600080fd5b810190602081018135600160201b81111561090b57600080fd5b82018360208201111561091d57600080fd5b803590602001918460018302840111600160201b8311171561093e57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550612809945050505050565b34801561098b57600080fd5b5061048c600480360360208110156109a257600080fd5b50356001600160a01b0316612898565b3480156109be57600080fd5b50610418612945565b3480156109d357600080fd5b5061048c600480360360208110156109ea57600080fd5b50351515612955565b61041860048036036020811015610a0957600080fd5b50356129e0565b348015610a1c57600080fd5b5061041860048036036040811015610a3357600080fd5b506001600160a01b038135169060200135612b3e565b348015610a5557600080fd5b5061044160048036036020811015610a6c57600080fd5b810190602081018135600160201b811115610a8657600080fd5b820183602082011115610a9857600080fd5b803590602001918460018302840111600160201b83111715610ab957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550612bc4945050505050565b348015610b0657600080fd5b5061048c60048036036020811015610b1d57600080fd5b5035612dc2565b348015610b3057600080fd5b5061044160048036036020811015610b4757600080fd5b50356001600160a01b0316612e3f565b348015610b6357600080fd5b5061048c60048036036040811015610b7a57600080fd5b506001600160a01b038135169060200135612e5a565b348015610b9c57600080fd5b5061048c612ebd565b348015610bb157600080fd5b506106af612f8a565b348015610bc657600080fd5b506106af612f99565b348015610bdb57600080fd5b5061048c60048036036020811015610bf257600080fd5b5035612fa8565b348015610c0557600080fd5b5061036a613025565b348015610c1a57600080fd5b5061041860048036036040811015610c3157600080fd5b506001600160a01b038135169060200135613086565b348015610c5357600080fd5b5061044161317c565b348015610c6857600080fd5b5061041860048036036020811015610c7f57600080fd5b810190602081018135600160201b811115610c9957600080fd5b820183602082011115610cab57600080fd5b803590602001918460018302840111600160201b83111715610ccc57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550613182945050505050565b348015610d1957600080fd5b5061041860048036036020811015610d3057600080fd5b50356001600160a01b03166134c1565b348015610d4c57600080fd5b5061036a60048036036020811015610d6357600080fd5b50356134df565b348015610d7657600080fd5b5061041860048036036020811015610d8d57600080fd5b810190602081018135600160201b811115610da757600080fd5b820183602082011115610db957600080fd5b803590602001918460018302840111600160201b83111715610dda57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550613580945050505050565b348015610e2757600080fd5b5061041860048036036040811015610e3e57600080fd5b506001600160a01b038135169060200135151561371d565b348015610e6257600080fd5b5061041860048036036060811015610e7957600080fd5b6001600160a01b03823516916020810135151591810190606081016040820135600160201b811115610eaa57600080fd5b820183602082011115610ebc57600080fd5b803590602001918460018302840111600160201b83111715610edd57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506137f0945050505050565b348015610f2a57600080fd5b506106af61392c565b348015610f3f57600080fd5b5061048c60048036036040811015610f5657600080fd5b506001600160a01b038135811691602001351661393b565b348015610f7a57600080fd5b5061044160048036036040811015610f9157600080fd5b506001600160a01b03813581169160200135166139e1565b348015610fb557600080fd5b5061048c60048036036020811015610fcc57600080fd5b50356001600160a01b0316613a0c565b610418600480360360c0811015610ff257600080fd5b6001600160a01b0382351691602081013591810190606081016040820135600160201b81111561102157600080fd5b82018360208201111561103357600080fd5b803590602001918460018302840111600160201b8311171561105457600080fd5b919350915080351515906020810135151590604001351515613aa6565b34801561107d57600080fd5b5061048c6004803603602081101561109457600080fd5b50356001600160a01b031661424a565b3480156110b057600080fd5b506104416142cb565b3480156110c557600080fd5b50610418600480360360208110156110dc57600080fd5b50356001600160a01b03166142d1565b3480156110f857600080fd5b506104186004803603606081101561110f57600080fd5b6001600160a01b03823516916020810135151591810190606081016040820135600160201b81111561114057600080fd5b82018360208201111561115257600080fd5b803590602001918460018302840111600160201b8311171561117357600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506142ef945050505050565b600b8054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156112405780601f1061121557610100808354040283529160200191611240565b820191906000526020600020905b81548152906001019060200180831161122357829003601f168201915b505050505090505b90565b600154600090600160a01b900460ff161561126557600080fd5b81158061129357503360009081526003602090815260408083206001600160a01b0387168452909152902054155b6112e4576040805162461bcd60e51b815260206004820152601e60248201527f41312d20526573657420616c6c6f77616e636520746f20302066697273740000604482015290519081900360640190fd5b6112f66112ef61442b565b848461442f565b5060015b92915050565b60105481565b61130e61442b565b6000546001600160a01b039081169116148061133f575061132d61442b565b6001546001600160a01b039081169116145b61137e576040805162461bcd60e51b81526020600482018190526024820152600080516020614c04833981519152604482015290519081900360640190fd5b816001600160a01b031663a9059cbb611395612f99565b836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b1580156113e557600080fd5b505af11580156113f9573d6000803e3d6000fd5b505050506040513d602081101561140f57600080fd5b50505050565b600e5490565b600061142561442b565b6000546001600160a01b0390811691161480611456575061144461442b565b6001546001600160a01b039081169116145b611495576040805162461bcd60e51b81526020600482018190526024820152600080516020614c04833981519152604482015290519081900360640190fd5b600a546114a4575060006112fa565b600a54600019018311156114ff576040805162461bcd60e51b815260206004820181905260248201527f4c31202d20506c656173652073656c65637420612076616c6964207374617274604482015290519081900360640190fd5b811561157057828211801561151a5750600a54600019018211155b61156b576040805162461bcd60e51b815260206004820152601f60248201527f4c32202d20506c656173652073656c65637420612076616c69642073746f7000604482015290519081900360640190fd5b61157a565b600a546000190191505b825b82811161169c576009600a828154811061159257fe5b9060005260206000200160405180828054600181600116156101000203166002900480156115f75780601f106115d55761010080835404028352918201916115f7565b820191906000526020600020905b8154815290600101906020018083116115e3575b5050915050908152602001604051809103902060010154600a828154811061161b57fe5b9060005260206000200160405180828054600181600116156101000203166002900480156116805780601f1061165e576101008083540402835291820191611680565b820191906000526020600020905b81548152906001019060200180831161166c575b50506040519081900381209250849150600090a360010161157c565b5060019392505050565b60006116b061442b565b6000546001600160a01b03908116911614806116e157506116cf61442b565b6001546001600160a01b039081169116145b611720576040805162461bcd60e51b81526020600482018190526024820152600080516020614c04833981519152604482015290519081900360640190fd5b33600090815260026020526040902054611740908363ffffffff61453116565b33600090815260026020526040808220929092556001600160a01b03851681522054611772908363ffffffff61457a16565b6001600160a01b038416600081815260026020908152604091829020939093558051858152905191923392600080516020614c698339815191529281900390910190a350600192915050565b600154600090600160a01b900460ff16156117d857600080fd5b6001600160a01b03841660009081526004602052604090205460ff16156118305760405162461bcd60e51b8152600401808060200182810382526024815260200180614c246024913960400191505060405180910390fd5b6001600160a01b03831660009081526004602052604090205460ff161580611870575061185b612f99565b6001600160a01b0316836001600160a01b0316145b6118ab5760405162461bcd60e51b8152600401808060200182810382526027815260200180614c896027913960400191505060405180910390fd5b6118b68484846145e0565b61169c846118c261442b565b61192785604051806060016040528060278152602001614cfd602791396001600160a01b038a1660009081526003602052604081209061190061442b565b6001600160a01b03168152602081019190915260400160002054919063ffffffff61475116565b61442f565b600f5481565b600d5460ff1690565b6001600160a01b031660009081526005602052604090205460ff1690565b6305f5e10081565b600154600090600160a01b900460ff161561197b57600080fd5b6112f661198661442b565b84611927856003600061199761442b565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff61457a16565b6119d561442b565b6000546001600160a01b0390811691161480611a0657506119f461442b565b6001546001600160a01b039081169116145b611a45576040805162461bcd60e51b81526020600482018190526024820152600080516020614c04833981519152604482015290519081900360640190fd5b600154600160a01b900460ff16611a5b57600080fd5b6001805460ff60a01b191690556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3390600090a1565b600154600090600160a01b900460ff1615611aad57600080fd5b60115484101580611ac057506012543410155b611afb5760405162461bcd60e51b8152600401808060200182810382526022815260200180614a926022913960400191505060405180910390fd5b3360009081526005602052604090205460ff16611b495760405162461bcd60e51b8152600401808060200182810382526021815260200180614c486021913960400191505060405180910390fd5b60408214611b9b576040805162461bcd60e51b815260206004820152601a602482015279158cc80b48125b9d985b1a59081a185cda081c1c9bdd9a59195960321b604482015290519081900360640190fd5b6000809050606084848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050600a549293505090159050611c83576009816040518082805190602001908083835b60208310611c175780518252601f199092019160209182019101611bf8565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922054159150611c8390505760405162461bcd60e51b8152600401808060200182810382526027815260200180614cb06027913960400191505060405180910390fd5b600a80546001810182556000919091528151611cc6917fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a8019060208401906149f9565b506001600a80549050036009826040518082805190602001908083835b60208310611d025780518252601f199092019160209182019101611ce3565b51815160209384036101000a60001901801990921691161790529201948552506040519384900381018420949094555050825160099284929182918401908083835b60208310611d635780518252601f199092019160209182019101611d44565b51815160209384036101000a60001901801990921691161790529201948552506040805194859003820190942054336000908152600290925293902054929450611db1929150889050614531565b33600090815260026020526040808220929092556013546001600160a01b031681522054611de5908763ffffffff61457a16565b601380546001600160a01b0390811660009081526002602090815260409182902094909455915482518a815292519116923392600080516020614c69833981519152929081900390910190a350600195945050505050565b6017546001600160a01b031690565b611e5d611e5761442b565b826147f9565b50565b6000611e6a61442b565b6000546001600160a01b0390811691161480611e9b5750611e8961442b565b6001546001600160a01b039081169116145b611eda576040805162461bcd60e51b81526020600482018190526024820152600080516020614c04833981519152604482015290519081900360640190fd5b8151835114611f1a5760405162461bcd60e51b8152600401808060200182810382526036815260200180614afe6036913960400191505060405180910390fd5b60005b835181101561169c57611f5e838281518110611f3557fe5b60209081029190910181015133600090815260029092526040909120549063ffffffff61453116565b336000908152600260205260409020558251611fcf90849083908110611f8057fe5b602002602001015160026000878581518110611f9857fe5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000205461457a90919063ffffffff16565b60026000868481518110611fdf57fe5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000208190555083818151811061201757fe5b60200260200101516001600160a01b0316336001600160a01b0316600080516020614c6983398151915285848151811061204d57fe5b60200260200101516040518082815260200191505060405180910390a3600101611f1d565b600154600090600160a01b900460ff161561208c57600080fd5b6011548510158061209f57506012543410155b6120da5760405162461bcd60e51b8152600401808060200182810382526022815260200180614a926022913960400191505060405180910390fd5b60085460ff16806120fa57503360009081526005602052604090205460ff165b6121355760405162461bcd60e51b8152600401808060200182810382526021815260200180614c486021913960400191505060405180910390fd5b60408314612187576040805162461bcd60e51b815260206004820152601a602482015279158cc80b48125b9d985b1a59081a185cda081c1c9bdd9a59195960321b604482015290519081900360640190fd5b6000809050606085858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506040805160208082018352838252915187519798509296879650909450600993508792918291908401908083835b6020831061220d5780518252601f1990920191602091820191016121ee565b51815160209384036101000a600019018019909216911617905292019485525060405193849003019092206001015415915061228c9050576040805162461bcd60e51b81526020600482015260176024820152765635202d204e46542065786973747320616c726561647960481b604482015290519081900360640190fd5b86156123a557601754604051602060248201908152604482018b90526001600160a01b03909216918b918b9190819060640184848082843760008382015260408051601f909201601f1990811690940182810390940182529283526020810180516001600160e01b031663d4a338b560e01b17815292518151919750955085945091925081905083835b602083106123355780518252601f199092019160209182019101612316565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114612395576040519150601f19603f3d011682016040523d82523d6000602084013e61239a565b606091505b5090935090506124b4565b601654604051602060248201908152604482018b90526001600160a01b03909216918b918b9190819060640184848082843760008382015260408051601f909201601f1990811690940182810390940182529283526020810180516001600160e01b031663d4a338b560e01b17815292518151919750955085945091925081905083835b602083106124485780518252601f199092019160209182019101612429565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d80600081146124a8576040519150601f19603f3d011682016040523d82523d6000602084013e6124ad565b606091505b5090935090505b82612506576040805162461bcd60e51b815260206004820152601d60248201527f5636202d204e465420636f6e74726163742063616c6c206661696c6564000000604482015290519081900360640190fd5b612511816000614913565b600081815260076020908152604090912086519294506125359290918701906149f9565b50816009856040518082805190602001908083835b602083106125695780518252601f19909201916020918201910161254a565b51815160209384036101000a60001901801990921691161790529201948552506040805194859003820190942060010194909455505033600090815260029092529020546125b7908b614531565b33600090815260026020526040808220929092556013546001600160a01b0316815220546125eb908b63ffffffff61457a16565b601380546001600160a01b0390811660009081526002602090815260409182902094909455915482518e815292519116923392600080516020614c69833981519152929081900390910190a381846040518082805190602001908083835b602083106126685780518252601f199092019160209182019101612649565b5181516020939093036101000a60001901801990911692169190911790526040519201829003822093508992507fafcd25da59deba8131d6e132d195aafbec08dedb8ae14c9e30bfe0b563047a219160009150a45060019998505050505050505050565b600154600090600160a01b900460ff16156126e657600080fd5b601154821015806126f957506012543410155b6127345760405162461bcd60e51b8152600401808060200182810382526022815260200180614a926022913960400191505060405180910390fd5b3360009081526005602052604090205460ff166127825760405162461bcd60e51b8152600401808060200182810382526021815260200180614c486021913960400191505060405180910390fd5b336000908152600260205260409020546127a2908363ffffffff61453116565b33600090815260026020526040808220929092556013546001600160a01b0316815220546127d6908363ffffffff61457a16565b6013546001600160a01b03166000908152600260205260409020555060015b919050565b6013546001600160a01b031690565b61281161442b565b6000546001600160a01b0390811691161480612842575061283061442b565b6001546001600160a01b039081169116145b612881576040805162461bcd60e51b81526020600482018190526024820152600080516020614c04833981519152604482015290519081900360640190fd5b805161289490600b9060208401906149f9565b5050565b6128a061442b565b6000546001600160a01b03908116911614806128d157506128bf61442b565b6001546001600160a01b039081169116145b612910576040805162461bcd60e51b81526020600482018190526024820152600080516020614c04833981519152604482015290519081900360640190fd5b6040516001600160a01b038216904780156108fc02916000818181858888f19350505050158015612894573d6000803e3d6000fd5b600154600160a01b900460ff1681565b61295d61442b565b6000546001600160a01b039081169116148061298e575061297c61442b565b6001546001600160a01b039081169116145b6129cd576040805162461bcd60e51b81526020600482018190526024820152600080516020614c04833981519152604482015290519081900360640190fd5b6008805460ff1916911515919091179055565b600154600090600160a01b900460ff16156129fa57600080fd5b60115482101580612a0d57506012543410155b612a485760405162461bcd60e51b8152600401808060200182810382526022815260200180614a926022913960400191505060405180910390fd5b3360009081526005602052604090205460ff16612a965760405162461bcd60e51b8152600401808060200182810382526021815260200180614c486021913960400191505060405180910390fd5b33600090815260026020526040902054612ab6908363ffffffff61453116565b33600090815260026020526040808220929092556013546001600160a01b031681522054612aea908363ffffffff61457a16565b601380546001600160a01b03908116600090815260026020908152604091829020949094559154825186815292519116923392600080516020614c69833981519152929081900390910190a3506001919050565b600154600090600160a01b900460ff1615612b5857600080fd5b6112f6612b6361442b565b8461192785604051806060016040528060248152602001614b9a6024913960036000612b8d61442b565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff61475116565b600a54600090612bd6575060006127f5565b6060600a6009846040518082805190602001908083835b60208310612c0c5780518252601f199092019160209182019101612bed565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922054835490925082109050612c4757fe5b600091825260209182902001805460408051601f6002600019610100600187161502019094169390930492830185900485028101850190915281815292830182828015612cd55780601f10612caa57610100808354040283529160200191612cd5565b820191906000526020600020905b815481529060010190602001808311612cb857829003601f168201915b5050505050905060608390508051825114612cf5576000925050506127f5565b60005b8251811015612d5657818181518110612d0d57fe5b602001015160f81c60f81b6001600160f81b031916838281518110612d2e57fe5b01602001516001600160f81b03191614612d4e57600093505050506127f5565b600101612cf8565b506009846040518082805190602001908083835b60208310612d895780518252601f199092019160209182019101612d6a565b51815160209384036101000a60001901801990921691161790529201948552506040519384900301909220600101549695505050505050565b612dca61442b565b6000546001600160a01b0390811691161480612dfb5750612de961442b565b6001546001600160a01b039081169116145b612e3a576040805162461bcd60e51b81526020600482018190526024820152600080516020614c04833981519152604482015290519081900360640190fd5b601255565b6001600160a01b031660009081526002602052604090205490565b6000612e9a82604051806060016040528060238152602001614be1602391396001600160a01b03861660009081526003602052604081209061190061442b565b9050612eae83612ea861442b565b8361442f565b612eb883836147f9565b505050565b612ec561442b565b6000546001600160a01b0390811691161480612ef65750612ee461442b565b6001546001600160a01b039081169116145b612f35576040805162461bcd60e51b81526020600482018190526024820152600080516020614c04833981519152604482015290519081900360640190fd5b600154600160a01b900460ff1615612f4c57600080fd5b6001805460ff60a01b1916600160a01b1790556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62590600090a1565b6000612f94612f99565b905090565b6000546001600160a01b031690565b612fb061442b565b6000546001600160a01b0390811691161480612fe15750612fcf61442b565b6001546001600160a01b039081169116145b613020576040805162461bcd60e51b81526020600482018190526024820152600080516020614c04833981519152604482015290519081900360640190fd5b601155565b600c8054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156112405780601f1061121557610100808354040283529160200191611240565b600154600090600160a01b900460ff16156130a057600080fd5b3360009081526004602052604090205460ff1615806130d757506130c2612f99565b6001600160a01b0316836001600160a01b0316145b6131125760405162461bcd60e51b8152600401808060200182810382526023815260200180614b776023913960400191505060405180910390fd5b6001600160a01b03831660009081526004602052604090205460ff161561316a5760405162461bcd60e51b8152600401808060200182810382526026815260200180614cd76026913960400191505060405180910390fd5b6112f661317561442b565b84846145e0565b60115490565b600a54600190613190575060005b6060600a6009846040518082805190602001908083835b602083106131c65780518252601f1990920191602091820191016131a7565b51815160209384036101000a600019018019909216911617905292019485525060405193849003019092205483549092508210905061320157fe5b600091825260209182902001805460408051601f600260001961010060018716150201909416939093049283018590048502810185019091528181529283018282801561328f5780601f106132645761010080835404028352916020019161328f565b820191906000526020600020905b81548152906001019060200180831161327257829003601f168201915b50505050509050606083905080518251146132a957600092505b821561330b5760005b8251811015613309578181815181106132c757fe5b602001015160f81c60f81b6001600160f81b0319168382815181106132e857fe5b01602001516001600160f81b0319161461330157600093505b6001016132b2565b505b826134ba576040805160208082018352600080835260155493516024810183815289516044830152895192956001600160a01b0316938a93919283926064909101918501908083838b5b8381101561336d578181015183820152602001613355565b50505050905090810190601f16801561339a5780820380516001836020036101000a031916815260200191505b5060408051601f198184030181529181526020820180516001600160e01b031663b027102360e01b178152905182519295509350839250908083835b602083106133f55780518252601f1990920191602091820191016133d6565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d8060008114613455576040519150601f19603f3d011682016040523d82523d6000602084013e61345a565b606091505b509092509050816134b2576040805162461bcd60e51b815260206004820152601d60248201527f5630202d204f6c6420636f6e74726163742063616c6c206661696c6564000000604482015290519081900360640190fd5b602001519350505b5050919050565b6001600160a01b031660009081526004602052604090205460ff1690565b60008181526007602090815260409182902080548351601f60026000196101006001861615020190931692909204918201849004840281018401909452808452606093928301828280156135745780601f1061354957610100808354040283529160200191613574565b820191906000526020600020905b81548152906001019060200180831161355757829003601f168201915b50505050509050919050565b600a54600090613592575060006127f5565b6060600a6009846040518082805190602001908083835b602083106135c85780518252601f1990920191602091820191016135a9565b51815160209384036101000a600019018019909216911617905292019485525060405193849003019092205483549092508210905061360357fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156136915780601f1061366657610100808354040283529160200191613691565b820191906000526020600020905b81548152906001019060200180831161367457829003601f168201915b50505050509050606083905080518251146136b1576000925050506127f5565b60005b8251811015613712578181815181106136c957fe5b602001015160f81c60f81b6001600160f81b0319168382815181106136ea57fe5b01602001516001600160f81b0319161461370a57600093505050506127f5565b6001016136b4565b506001949350505050565b600061372761442b565b6000546001600160a01b0390811691161480613758575061374661442b565b6001546001600160a01b039081169116145b613797576040805162461bcd60e51b81526020600482018190526024820152600080516020614c04833981519152604482015290519081900360640190fd5b6001600160a01b038316600081815260046020526040808220805460ff191686151590811790915590519092917ff022c1fbc00daf4d2e6cdc62e0338b967bd3be38ccc3d7f8e0168bd668c7bcfe91a350600192915050565b60006137fa61442b565b6000546001600160a01b039081169116148061382b575061381961442b565b6001546001600160a01b039081169116145b61386a576040805162461bcd60e51b81526020600482018190526024820152600080516020614c04833981519152604482015290519081900360640190fd5b6001600160a01b038416600090815260056020908152604091829020805460ff19168615151790559051835184928291908401908083835b602083106138c15780518252601f1990920191602091820191016138a2565b5181516020939093036101000a60001901801990911692169190911790526040519201829003822093505085151591506001600160a01b038716907f292123b68099c6aa2b5d37989544acbb7000794b52d1f629067b3f3ee1ce79fa90600090a45060019392505050565b6016546001600160a01b031690565b61394361442b565b6000546001600160a01b0390811691161480613974575061396261442b565b6001546001600160a01b039081169116145b6139b3576040805162461bcd60e51b81526020600482018190526024820152600080516020614c04833981519152604482015290519081900360640190fd5b601680546001600160a01b039384166001600160a01b03199182161790915560178054929093169116179055565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b613a1461442b565b6000546001600160a01b0390811691161480613a455750613a3361442b565b6001546001600160a01b039081169116145b613a84576040805162461bcd60e51b81526020600482018190526024820152600080516020614c04833981519152604482015290519081900360640190fd5b601380546001600160a01b0319166001600160a01b0392909216919091179055565b600060115487101580613abb57506012543410155b613af65760405162461bcd60e51b8152600401808060200182810382526022815260200180614a926022913960400191505060405180910390fd5b3360009081526005602052604090205460ff16613b445760405162461bcd60e51b8152600401808060200182810382526021815260200180614c486021913960400191505060405180910390fd5b60408514613b96576040805162461bcd60e51b815260206004820152601a602482015279158cc80b48125b9d985b1a59081a185cda081c1c9bdd9a59195960321b604482015290519081900360640190fd5b6001600160a01b03881660009081526006602052604090205460ff16613bc5576013546001600160a01b031697505b6000809050606087878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293505087159150613dc4905057600a5415613cb3576009816040518082805190602001908083835b60208310613c475780518252601f199092019160209182019101613c28565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922054159150613cb390505760405162461bcd60e51b8152600401808060200182810382526027815260200180614cb06027913960400191505060405180910390fd5b600a80546001810182556000919091528151613cf6917fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a8019060208401906149f9565b506001600a80549050036009826040518082805190602001908083835b60208310613d325780518252601f199092019160209182019101613d13565b51815160209384036101000a60001901801990921691161790529201948552506040519384900381018420949094555050825160099284929182918401908083835b60208310613d935780518252601f199092019160209182019101613d74565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922054935050505b600080851561408b5760606040518060200160405280600081525090506009846040518082805190602001908083835b60208310613e135780518252601f199092019160209182019101613df4565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922060010154159150613e929050576040805162461bcd60e51b81526020600482015260176024820152765635202d204e46542065786973747320616c726561647960481b604482015290519081900360640190fd5b601654604051602060248201908152604482018d90526001600160a01b03909216918d918d9190819060640184848082843760008382015260408051601f909201601f1990811690940182810390940182529283526020810180516001600160e01b031663d4a338b560e01b17815292518151919750955085945091925081905083835b60208310613f355780518252601f199092019160209182019101613f16565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114613f95576040519150601f19603f3d011682016040523d82523d6000602084013e613f9a565b606091505b50909350905082613ff2576040805162461bcd60e51b815260206004820152601d60248201527f5636202d204e465420636f6e74726163742063616c6c206661696c6564000000604482015290519081900360640190fd5b613ffd816000614913565b600081815260076020908152604090912086519294506140219290918701906149f9565b50816009856040518082805190602001908083835b602083106140555780518252601f199092019160209182019101614036565b51815160209384036101000a60001901801990921691161790529201948552506040519384900301909220600101929092555050505b6001600160a01b038c1660009081526003602090815260408083203384529091529020548b11614112576001600160a01b038c1660009081526003602090815260408083203384529091529020546140e9908c63ffffffff61453116565b6001600160a01b038d16600090815260036020908152604080832033845290915290205561417e565b33600090815260026020526040902054614132908c63ffffffff61453116565b33600090815260026020526040808220929092556001600160a01b038e1681522054614164908c63ffffffff61457a16565b6001600160a01b038d166000908152600260205260409020555b861561420a5780836040518082805190602001908083835b602083106141b55780518252601f199092019160209182019101614196565b5181516020939093036101000a60001901801990911692169190911790526040519201829003822093508892507fafcd25da59deba8131d6e132d195aafbec08dedb8ae14c9e30bfe0b563047a219160009150a45b604080518c815290516001600160a01b038e16913391600080516020614c698339815191529181900360200190a35060019b9a5050505050505050505050565b61425261442b565b6000546001600160a01b0390811691161480614283575061427161442b565b6001546001600160a01b039081169116145b6142c2576040805162461bcd60e51b81526020600482018190526024820152600080516020614c04833981519152604482015290519081900360640190fd5b611e5d81614959565b60125490565b6001600160a01b031660009081526006602052604090205460ff1690565b60006142f961442b565b6000546001600160a01b039081169116148061432a575061431861442b565b6001546001600160a01b039081169116145b614369576040805162461bcd60e51b81526020600482018190526024820152600080516020614c04833981519152604482015290519081900360640190fd5b6001600160a01b038416600090815260066020908152604091829020805460ff19168615151790559051835184928291908401908083835b602083106143c05780518252601f1990920191602091820191016143a1565b5181516020939093036101000a60001901801990911692169190911790526040519201829003822093505085151591506001600160a01b038716907f3d08b6e3d62b04396eca9fe996bd52ef13d33affdfb79e470ed9fdbe4910452390600090a45060019392505050565b3390565b6001600160a01b0383166144745760405162461bcd60e51b8152600401808060200182810382526022815260200180614b556022913960400191505060405180910390fd5b6001600160a01b0382166144cf576040805162461bcd60e51b815260206004820181905260248201527f4132202d20417070726f766520746f20746865207a65726f2061646472657373604482015290519081900360640190fd5b6001600160a01b03808416600081815260036020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b600061457383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250614751565b9392505050565b600082820183811080159061458f5750828110155b614573576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6001600160a01b0383166146255760405162461bcd60e51b8152600401808060200182810382526023815260200180614bbe6023913960400191505060405180910390fd5b6001600160a01b03821615158061465457506001600160a01b03831660009081526004602052604090205460ff165b61468f5760405162461bcd60e51b8152600401808060200182810382526021815260200180614b346021913960400191505060405180910390fd5b6146d281604051806060016040528060248152602001614ada602491396001600160a01b038616600090815260026020526040902054919063ffffffff61475116565b6001600160a01b038085166000908152600260205260408082209390935590841681522054614707908263ffffffff61457a16565b6001600160a01b038084166000818152600260209081526040918290209490945580518581529051919392871692600080516020614c6983398151915292918290030190a3505050565b60008284038484118015906147665750848111155b83906147f05760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156147b557818101518382015260200161479d565b50505050905090810190601f1680156147e25780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50949350505050565b6001600160a01b038216614854576040805162461bcd60e51b815260206004820152601f60248201527f4231202d204275726e2066726f6d20746865207a65726f206164647265737300604482015290519081900360640190fd5b60408051808201825260208082527f4232202d204275726e20616d6f756e7420657863656564732062616c616e6365818301526001600160a01b0385166000908152600290915291909120546148b191839063ffffffff61475116565b6001600160a01b038316600090815260026020526040902055600e546148dd908263ffffffff61453116565b600e556040805182815290516000916001600160a01b03851691600080516020614c698339815191529181900360200190a35050565b600080805b60208110156149515780600802858286018151811061493357fe5b01602001516001600160f81b031916901c9190911790600101614918565b509392505050565b6001600160a01b03811661499e5760405162461bcd60e51b8152600401808060200182810382526026815260200180614ab46026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10614a3a57805160ff1916838001178555614a67565b82800160010185558215614a67579182015b82811115614a67578251825591602001919060010190614a4c565b50614a73929150614a77565b5090565b61124891905b80821115614a735760008155600101614a7d56fe5631202d20496e73756666696369656e74207061796d656e742070726f76696465644f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573735434202d205472616e7366657220616d6f756e7420657863656564732062616c616e6365425431202d20416464726573736573206c656e677468206d75737420626520657175616c20746f20616d6f756e7473206c656e6774685433202d205472616e7366657220746f20746865207a65726f20616464726573734131202d20417070726f76652066726f6d20746865207a65726f20616464726573735431202d205468652077616c6c6574206f662073656e6465722069732066726f7a656e444131202d2044656372656173656420616c6c6f77616e63652062656c6f77207a65726f5431202d205472616e736665722066726f6d20746865207a65726f2061646472657373424631202d204275726e20616d6f756e74206578636565647320616c6c6f77616e63654f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572544631202d205468652077616c6c6574206f662073656e6465722069732066726f7a656e5632202d20556e7665726966696564207075626c69736865722061646472657373ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef544632202d205468652077616c6c6574206f6620726563697069656e742069732066726f7a656e5634202d20546869732068617368207761732070726576696f75736c792076616c6964617465645432202d205468652077616c6c6574206f6620726563697069656e742069732066726f7a656e544631202d205472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212205404b3648b54b7cf04ce404dc872785212b61414d23211326deb9d0f7761466564736f6c63430006080033
Deployed Bytecode
0x6080604052600436106103505760003560e01c806367bf853d116101c6578063b7c6fe36116100f7578063dd62ed3e11610095578063f2fde38b1161006f578063f2fde38b14611071578063f8bbf27e146110a4578063fc399c79146110b9578063fe8312c1146110ec57610350565b8063dd62ed3e14610f6e578063deaa59df14610fa9578063f1be9dda14610fdc57610350565b8063d22e7b69116100d1578063d22e7b6914610e56578063d56d229d14610f1e578063d73dd623146105d7578063d8952a4914610f3357610350565b8063b7c6fe3614610d40578063bb9c6c3e14610d6a578063bf120ae514610e1b57610350565b806391b7f5ed11610164578063a9059cbb1161013e578063a9059cbb14610c0e578063ae7d00f314610c47578063b027102314610c5c578063b414d4b614610d0d57610350565b806391b7f5ed14610bcf57806395d89b4114610bf9578063a457c2d714610a1057610350565b806379cc6790116101a057806379cc679014610b575780638456cb5914610b90578063893d20e814610ba55780638da5cb5b14610bba57610350565b806367bf853d14610a4957806369fe0e2d14610afa57806370a0823114610b2457610350565b80633f4ba83a116102a05780634e83977a1161023e5780635c975abb116102185780635c975abb146109b25780635cbcec4e146109c75780636613c59a146109f35780636618846314610a1057610350565b80634e83977a146108b957806351b6ba5b146108ce57806351cff8d91461097f57610350565b806342966c681161027a57806342966c68146106cb57806344a70439146106f5578063464337d4146108255780634beab06a1461089c57610350565b80633f4ba83a146106105780634039f745146106255780634138ab4a1461069a57610350565b806321e92d491161030d578063313ce567116102e7578063313ce5671461056457806336ef12d51461058f578063378dc3dc146105c257806339509351146105d757610350565b806321e92d49146104d357806323b872dd1461050c5780632a4fcb1d1461054f57610350565b806306fdde0314610355578063095ea7b3146103df5780630a72fb861461042c5780631072cbea1461045357806318160ddd1461048e5780631927a8ea146104a3575b600080fd5b34801561036157600080fd5b5061036a6111b4565b6040805160208082528351818301528351919283929083019185019080838360005b838110156103a457818101518382015260200161038c565b50505050905090810190601f1680156103d15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103eb57600080fd5b506104186004803603604081101561040257600080fd5b506001600160a01b03813516906020013561124b565b604080519115158252519081900360200190f35b34801561043857600080fd5b50610441611300565b60408051918252519081900360200190f35b34801561045f57600080fd5b5061048c6004803603604081101561047657600080fd5b506001600160a01b038135169060200135611306565b005b34801561049a57600080fd5b50610441611415565b3480156104af57600080fd5b50610418600480360360408110156104c657600080fd5b508035906020013561141b565b3480156104df57600080fd5b50610418600480360360408110156104f657600080fd5b506001600160a01b0381351690602001356116a6565b34801561051857600080fd5b506104186004803603606081101561052f57600080fd5b506001600160a01b038135811691602081013590911690604001356117be565b34801561055b57600080fd5b5061044161192c565b34801561057057600080fd5b50610579611932565b6040805160ff9092168252519081900360200190f35b34801561059b57600080fd5b50610418600480360360208110156105b257600080fd5b50356001600160a01b031661193b565b3480156105ce57600080fd5b50610441611959565b3480156105e357600080fd5b50610418600480360360408110156105fa57600080fd5b506001600160a01b038135169060200135611961565b34801561061c57600080fd5b5061048c6119cd565b6104186004803603604081101561063b57600080fd5b81359190810190604081016020820135600160201b81111561065c57600080fd5b82018360208201111561066e57600080fd5b803590602001918460018302840111600160201b8311171561068f57600080fd5b509092509050611a93565b3480156106a657600080fd5b506106af611e3d565b604080516001600160a01b039092168252519081900360200190f35b3480156106d757600080fd5b5061048c600480360360208110156106ee57600080fd5b5035611e4c565b34801561070157600080fd5b506104186004803603604081101561071857600080fd5b810190602081018135600160201b81111561073257600080fd5b82018360208201111561074457600080fd5b803590602001918460208302840111600160201b8311171561076557600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b8111156107b457600080fd5b8201836020820111156107c657600080fd5b803590602001918460208302840111600160201b831117156107e757600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550611e60945050505050565b6104186004803603606081101561083b57600080fd5b81359190810190604081016020820135600160201b81111561085c57600080fd5b82018360208201111561086e57600080fd5b803590602001918460018302840111600160201b8311171561088f57600080fd5b9193509150351515612072565b610418600480360360208110156108b257600080fd5b50356126cc565b3480156108c557600080fd5b506106af6127fa565b3480156108da57600080fd5b5061048c600480360360208110156108f157600080fd5b810190602081018135600160201b81111561090b57600080fd5b82018360208201111561091d57600080fd5b803590602001918460018302840111600160201b8311171561093e57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550612809945050505050565b34801561098b57600080fd5b5061048c600480360360208110156109a257600080fd5b50356001600160a01b0316612898565b3480156109be57600080fd5b50610418612945565b3480156109d357600080fd5b5061048c600480360360208110156109ea57600080fd5b50351515612955565b61041860048036036020811015610a0957600080fd5b50356129e0565b348015610a1c57600080fd5b5061041860048036036040811015610a3357600080fd5b506001600160a01b038135169060200135612b3e565b348015610a5557600080fd5b5061044160048036036020811015610a6c57600080fd5b810190602081018135600160201b811115610a8657600080fd5b820183602082011115610a9857600080fd5b803590602001918460018302840111600160201b83111715610ab957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550612bc4945050505050565b348015610b0657600080fd5b5061048c60048036036020811015610b1d57600080fd5b5035612dc2565b348015610b3057600080fd5b5061044160048036036020811015610b4757600080fd5b50356001600160a01b0316612e3f565b348015610b6357600080fd5b5061048c60048036036040811015610b7a57600080fd5b506001600160a01b038135169060200135612e5a565b348015610b9c57600080fd5b5061048c612ebd565b348015610bb157600080fd5b506106af612f8a565b348015610bc657600080fd5b506106af612f99565b348015610bdb57600080fd5b5061048c60048036036020811015610bf257600080fd5b5035612fa8565b348015610c0557600080fd5b5061036a613025565b348015610c1a57600080fd5b5061041860048036036040811015610c3157600080fd5b506001600160a01b038135169060200135613086565b348015610c5357600080fd5b5061044161317c565b348015610c6857600080fd5b5061041860048036036020811015610c7f57600080fd5b810190602081018135600160201b811115610c9957600080fd5b820183602082011115610cab57600080fd5b803590602001918460018302840111600160201b83111715610ccc57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550613182945050505050565b348015610d1957600080fd5b5061041860048036036020811015610d3057600080fd5b50356001600160a01b03166134c1565b348015610d4c57600080fd5b5061036a60048036036020811015610d6357600080fd5b50356134df565b348015610d7657600080fd5b5061041860048036036020811015610d8d57600080fd5b810190602081018135600160201b811115610da757600080fd5b820183602082011115610db957600080fd5b803590602001918460018302840111600160201b83111715610dda57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550613580945050505050565b348015610e2757600080fd5b5061041860048036036040811015610e3e57600080fd5b506001600160a01b038135169060200135151561371d565b348015610e6257600080fd5b5061041860048036036060811015610e7957600080fd5b6001600160a01b03823516916020810135151591810190606081016040820135600160201b811115610eaa57600080fd5b820183602082011115610ebc57600080fd5b803590602001918460018302840111600160201b83111715610edd57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506137f0945050505050565b348015610f2a57600080fd5b506106af61392c565b348015610f3f57600080fd5b5061048c60048036036040811015610f5657600080fd5b506001600160a01b038135811691602001351661393b565b348015610f7a57600080fd5b5061044160048036036040811015610f9157600080fd5b506001600160a01b03813581169160200135166139e1565b348015610fb557600080fd5b5061048c60048036036020811015610fcc57600080fd5b50356001600160a01b0316613a0c565b610418600480360360c0811015610ff257600080fd5b6001600160a01b0382351691602081013591810190606081016040820135600160201b81111561102157600080fd5b82018360208201111561103357600080fd5b803590602001918460018302840111600160201b8311171561105457600080fd5b919350915080351515906020810135151590604001351515613aa6565b34801561107d57600080fd5b5061048c6004803603602081101561109457600080fd5b50356001600160a01b031661424a565b3480156110b057600080fd5b506104416142cb565b3480156110c557600080fd5b50610418600480360360208110156110dc57600080fd5b50356001600160a01b03166142d1565b3480156110f857600080fd5b506104186004803603606081101561110f57600080fd5b6001600160a01b03823516916020810135151591810190606081016040820135600160201b81111561114057600080fd5b82018360208201111561115257600080fd5b803590602001918460018302840111600160201b8311171561117357600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506142ef945050505050565b600b8054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156112405780601f1061121557610100808354040283529160200191611240565b820191906000526020600020905b81548152906001019060200180831161122357829003601f168201915b505050505090505b90565b600154600090600160a01b900460ff161561126557600080fd5b81158061129357503360009081526003602090815260408083206001600160a01b0387168452909152902054155b6112e4576040805162461bcd60e51b815260206004820152601e60248201527f41312d20526573657420616c6c6f77616e636520746f20302066697273740000604482015290519081900360640190fd5b6112f66112ef61442b565b848461442f565b5060015b92915050565b60105481565b61130e61442b565b6000546001600160a01b039081169116148061133f575061132d61442b565b6001546001600160a01b039081169116145b61137e576040805162461bcd60e51b81526020600482018190526024820152600080516020614c04833981519152604482015290519081900360640190fd5b816001600160a01b031663a9059cbb611395612f99565b836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b1580156113e557600080fd5b505af11580156113f9573d6000803e3d6000fd5b505050506040513d602081101561140f57600080fd5b50505050565b600e5490565b600061142561442b565b6000546001600160a01b0390811691161480611456575061144461442b565b6001546001600160a01b039081169116145b611495576040805162461bcd60e51b81526020600482018190526024820152600080516020614c04833981519152604482015290519081900360640190fd5b600a546114a4575060006112fa565b600a54600019018311156114ff576040805162461bcd60e51b815260206004820181905260248201527f4c31202d20506c656173652073656c65637420612076616c6964207374617274604482015290519081900360640190fd5b811561157057828211801561151a5750600a54600019018211155b61156b576040805162461bcd60e51b815260206004820152601f60248201527f4c32202d20506c656173652073656c65637420612076616c69642073746f7000604482015290519081900360640190fd5b61157a565b600a546000190191505b825b82811161169c576009600a828154811061159257fe5b9060005260206000200160405180828054600181600116156101000203166002900480156115f75780601f106115d55761010080835404028352918201916115f7565b820191906000526020600020905b8154815290600101906020018083116115e3575b5050915050908152602001604051809103902060010154600a828154811061161b57fe5b9060005260206000200160405180828054600181600116156101000203166002900480156116805780601f1061165e576101008083540402835291820191611680565b820191906000526020600020905b81548152906001019060200180831161166c575b50506040519081900381209250849150600090a360010161157c565b5060019392505050565b60006116b061442b565b6000546001600160a01b03908116911614806116e157506116cf61442b565b6001546001600160a01b039081169116145b611720576040805162461bcd60e51b81526020600482018190526024820152600080516020614c04833981519152604482015290519081900360640190fd5b33600090815260026020526040902054611740908363ffffffff61453116565b33600090815260026020526040808220929092556001600160a01b03851681522054611772908363ffffffff61457a16565b6001600160a01b038416600081815260026020908152604091829020939093558051858152905191923392600080516020614c698339815191529281900390910190a350600192915050565b600154600090600160a01b900460ff16156117d857600080fd5b6001600160a01b03841660009081526004602052604090205460ff16156118305760405162461bcd60e51b8152600401808060200182810382526024815260200180614c246024913960400191505060405180910390fd5b6001600160a01b03831660009081526004602052604090205460ff161580611870575061185b612f99565b6001600160a01b0316836001600160a01b0316145b6118ab5760405162461bcd60e51b8152600401808060200182810382526027815260200180614c896027913960400191505060405180910390fd5b6118b68484846145e0565b61169c846118c261442b565b61192785604051806060016040528060278152602001614cfd602791396001600160a01b038a1660009081526003602052604081209061190061442b565b6001600160a01b03168152602081019190915260400160002054919063ffffffff61475116565b61442f565b600f5481565b600d5460ff1690565b6001600160a01b031660009081526005602052604090205460ff1690565b6305f5e10081565b600154600090600160a01b900460ff161561197b57600080fd5b6112f661198661442b565b84611927856003600061199761442b565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff61457a16565b6119d561442b565b6000546001600160a01b0390811691161480611a0657506119f461442b565b6001546001600160a01b039081169116145b611a45576040805162461bcd60e51b81526020600482018190526024820152600080516020614c04833981519152604482015290519081900360640190fd5b600154600160a01b900460ff16611a5b57600080fd5b6001805460ff60a01b191690556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3390600090a1565b600154600090600160a01b900460ff1615611aad57600080fd5b60115484101580611ac057506012543410155b611afb5760405162461bcd60e51b8152600401808060200182810382526022815260200180614a926022913960400191505060405180910390fd5b3360009081526005602052604090205460ff16611b495760405162461bcd60e51b8152600401808060200182810382526021815260200180614c486021913960400191505060405180910390fd5b60408214611b9b576040805162461bcd60e51b815260206004820152601a602482015279158cc80b48125b9d985b1a59081a185cda081c1c9bdd9a59195960321b604482015290519081900360640190fd5b6000809050606084848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050600a549293505090159050611c83576009816040518082805190602001908083835b60208310611c175780518252601f199092019160209182019101611bf8565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922054159150611c8390505760405162461bcd60e51b8152600401808060200182810382526027815260200180614cb06027913960400191505060405180910390fd5b600a80546001810182556000919091528151611cc6917fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a8019060208401906149f9565b506001600a80549050036009826040518082805190602001908083835b60208310611d025780518252601f199092019160209182019101611ce3565b51815160209384036101000a60001901801990921691161790529201948552506040519384900381018420949094555050825160099284929182918401908083835b60208310611d635780518252601f199092019160209182019101611d44565b51815160209384036101000a60001901801990921691161790529201948552506040805194859003820190942054336000908152600290925293902054929450611db1929150889050614531565b33600090815260026020526040808220929092556013546001600160a01b031681522054611de5908763ffffffff61457a16565b601380546001600160a01b0390811660009081526002602090815260409182902094909455915482518a815292519116923392600080516020614c69833981519152929081900390910190a350600195945050505050565b6017546001600160a01b031690565b611e5d611e5761442b565b826147f9565b50565b6000611e6a61442b565b6000546001600160a01b0390811691161480611e9b5750611e8961442b565b6001546001600160a01b039081169116145b611eda576040805162461bcd60e51b81526020600482018190526024820152600080516020614c04833981519152604482015290519081900360640190fd5b8151835114611f1a5760405162461bcd60e51b8152600401808060200182810382526036815260200180614afe6036913960400191505060405180910390fd5b60005b835181101561169c57611f5e838281518110611f3557fe5b60209081029190910181015133600090815260029092526040909120549063ffffffff61453116565b336000908152600260205260409020558251611fcf90849083908110611f8057fe5b602002602001015160026000878581518110611f9857fe5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000205461457a90919063ffffffff16565b60026000868481518110611fdf57fe5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000208190555083818151811061201757fe5b60200260200101516001600160a01b0316336001600160a01b0316600080516020614c6983398151915285848151811061204d57fe5b60200260200101516040518082815260200191505060405180910390a3600101611f1d565b600154600090600160a01b900460ff161561208c57600080fd5b6011548510158061209f57506012543410155b6120da5760405162461bcd60e51b8152600401808060200182810382526022815260200180614a926022913960400191505060405180910390fd5b60085460ff16806120fa57503360009081526005602052604090205460ff165b6121355760405162461bcd60e51b8152600401808060200182810382526021815260200180614c486021913960400191505060405180910390fd5b60408314612187576040805162461bcd60e51b815260206004820152601a602482015279158cc80b48125b9d985b1a59081a185cda081c1c9bdd9a59195960321b604482015290519081900360640190fd5b6000809050606085858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506040805160208082018352838252915187519798509296879650909450600993508792918291908401908083835b6020831061220d5780518252601f1990920191602091820191016121ee565b51815160209384036101000a600019018019909216911617905292019485525060405193849003019092206001015415915061228c9050576040805162461bcd60e51b81526020600482015260176024820152765635202d204e46542065786973747320616c726561647960481b604482015290519081900360640190fd5b86156123a557601754604051602060248201908152604482018b90526001600160a01b03909216918b918b9190819060640184848082843760008382015260408051601f909201601f1990811690940182810390940182529283526020810180516001600160e01b031663d4a338b560e01b17815292518151919750955085945091925081905083835b602083106123355780518252601f199092019160209182019101612316565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114612395576040519150601f19603f3d011682016040523d82523d6000602084013e61239a565b606091505b5090935090506124b4565b601654604051602060248201908152604482018b90526001600160a01b03909216918b918b9190819060640184848082843760008382015260408051601f909201601f1990811690940182810390940182529283526020810180516001600160e01b031663d4a338b560e01b17815292518151919750955085945091925081905083835b602083106124485780518252601f199092019160209182019101612429565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d80600081146124a8576040519150601f19603f3d011682016040523d82523d6000602084013e6124ad565b606091505b5090935090505b82612506576040805162461bcd60e51b815260206004820152601d60248201527f5636202d204e465420636f6e74726163742063616c6c206661696c6564000000604482015290519081900360640190fd5b612511816000614913565b600081815260076020908152604090912086519294506125359290918701906149f9565b50816009856040518082805190602001908083835b602083106125695780518252601f19909201916020918201910161254a565b51815160209384036101000a60001901801990921691161790529201948552506040805194859003820190942060010194909455505033600090815260029092529020546125b7908b614531565b33600090815260026020526040808220929092556013546001600160a01b0316815220546125eb908b63ffffffff61457a16565b601380546001600160a01b0390811660009081526002602090815260409182902094909455915482518e815292519116923392600080516020614c69833981519152929081900390910190a381846040518082805190602001908083835b602083106126685780518252601f199092019160209182019101612649565b5181516020939093036101000a60001901801990911692169190911790526040519201829003822093508992507fafcd25da59deba8131d6e132d195aafbec08dedb8ae14c9e30bfe0b563047a219160009150a45060019998505050505050505050565b600154600090600160a01b900460ff16156126e657600080fd5b601154821015806126f957506012543410155b6127345760405162461bcd60e51b8152600401808060200182810382526022815260200180614a926022913960400191505060405180910390fd5b3360009081526005602052604090205460ff166127825760405162461bcd60e51b8152600401808060200182810382526021815260200180614c486021913960400191505060405180910390fd5b336000908152600260205260409020546127a2908363ffffffff61453116565b33600090815260026020526040808220929092556013546001600160a01b0316815220546127d6908363ffffffff61457a16565b6013546001600160a01b03166000908152600260205260409020555060015b919050565b6013546001600160a01b031690565b61281161442b565b6000546001600160a01b0390811691161480612842575061283061442b565b6001546001600160a01b039081169116145b612881576040805162461bcd60e51b81526020600482018190526024820152600080516020614c04833981519152604482015290519081900360640190fd5b805161289490600b9060208401906149f9565b5050565b6128a061442b565b6000546001600160a01b03908116911614806128d157506128bf61442b565b6001546001600160a01b039081169116145b612910576040805162461bcd60e51b81526020600482018190526024820152600080516020614c04833981519152604482015290519081900360640190fd5b6040516001600160a01b038216904780156108fc02916000818181858888f19350505050158015612894573d6000803e3d6000fd5b600154600160a01b900460ff1681565b61295d61442b565b6000546001600160a01b039081169116148061298e575061297c61442b565b6001546001600160a01b039081169116145b6129cd576040805162461bcd60e51b81526020600482018190526024820152600080516020614c04833981519152604482015290519081900360640190fd5b6008805460ff1916911515919091179055565b600154600090600160a01b900460ff16156129fa57600080fd5b60115482101580612a0d57506012543410155b612a485760405162461bcd60e51b8152600401808060200182810382526022815260200180614a926022913960400191505060405180910390fd5b3360009081526005602052604090205460ff16612a965760405162461bcd60e51b8152600401808060200182810382526021815260200180614c486021913960400191505060405180910390fd5b33600090815260026020526040902054612ab6908363ffffffff61453116565b33600090815260026020526040808220929092556013546001600160a01b031681522054612aea908363ffffffff61457a16565b601380546001600160a01b03908116600090815260026020908152604091829020949094559154825186815292519116923392600080516020614c69833981519152929081900390910190a3506001919050565b600154600090600160a01b900460ff1615612b5857600080fd5b6112f6612b6361442b565b8461192785604051806060016040528060248152602001614b9a6024913960036000612b8d61442b565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff61475116565b600a54600090612bd6575060006127f5565b6060600a6009846040518082805190602001908083835b60208310612c0c5780518252601f199092019160209182019101612bed565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922054835490925082109050612c4757fe5b600091825260209182902001805460408051601f6002600019610100600187161502019094169390930492830185900485028101850190915281815292830182828015612cd55780601f10612caa57610100808354040283529160200191612cd5565b820191906000526020600020905b815481529060010190602001808311612cb857829003601f168201915b5050505050905060608390508051825114612cf5576000925050506127f5565b60005b8251811015612d5657818181518110612d0d57fe5b602001015160f81c60f81b6001600160f81b031916838281518110612d2e57fe5b01602001516001600160f81b03191614612d4e57600093505050506127f5565b600101612cf8565b506009846040518082805190602001908083835b60208310612d895780518252601f199092019160209182019101612d6a565b51815160209384036101000a60001901801990921691161790529201948552506040519384900301909220600101549695505050505050565b612dca61442b565b6000546001600160a01b0390811691161480612dfb5750612de961442b565b6001546001600160a01b039081169116145b612e3a576040805162461bcd60e51b81526020600482018190526024820152600080516020614c04833981519152604482015290519081900360640190fd5b601255565b6001600160a01b031660009081526002602052604090205490565b6000612e9a82604051806060016040528060238152602001614be1602391396001600160a01b03861660009081526003602052604081209061190061442b565b9050612eae83612ea861442b565b8361442f565b612eb883836147f9565b505050565b612ec561442b565b6000546001600160a01b0390811691161480612ef65750612ee461442b565b6001546001600160a01b039081169116145b612f35576040805162461bcd60e51b81526020600482018190526024820152600080516020614c04833981519152604482015290519081900360640190fd5b600154600160a01b900460ff1615612f4c57600080fd5b6001805460ff60a01b1916600160a01b1790556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62590600090a1565b6000612f94612f99565b905090565b6000546001600160a01b031690565b612fb061442b565b6000546001600160a01b0390811691161480612fe15750612fcf61442b565b6001546001600160a01b039081169116145b613020576040805162461bcd60e51b81526020600482018190526024820152600080516020614c04833981519152604482015290519081900360640190fd5b601155565b600c8054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156112405780601f1061121557610100808354040283529160200191611240565b600154600090600160a01b900460ff16156130a057600080fd5b3360009081526004602052604090205460ff1615806130d757506130c2612f99565b6001600160a01b0316836001600160a01b0316145b6131125760405162461bcd60e51b8152600401808060200182810382526023815260200180614b776023913960400191505060405180910390fd5b6001600160a01b03831660009081526004602052604090205460ff161561316a5760405162461bcd60e51b8152600401808060200182810382526026815260200180614cd76026913960400191505060405180910390fd5b6112f661317561442b565b84846145e0565b60115490565b600a54600190613190575060005b6060600a6009846040518082805190602001908083835b602083106131c65780518252601f1990920191602091820191016131a7565b51815160209384036101000a600019018019909216911617905292019485525060405193849003019092205483549092508210905061320157fe5b600091825260209182902001805460408051601f600260001961010060018716150201909416939093049283018590048502810185019091528181529283018282801561328f5780601f106132645761010080835404028352916020019161328f565b820191906000526020600020905b81548152906001019060200180831161327257829003601f168201915b50505050509050606083905080518251146132a957600092505b821561330b5760005b8251811015613309578181815181106132c757fe5b602001015160f81c60f81b6001600160f81b0319168382815181106132e857fe5b01602001516001600160f81b0319161461330157600093505b6001016132b2565b505b826134ba576040805160208082018352600080835260155493516024810183815289516044830152895192956001600160a01b0316938a93919283926064909101918501908083838b5b8381101561336d578181015183820152602001613355565b50505050905090810190601f16801561339a5780820380516001836020036101000a031916815260200191505b5060408051601f198184030181529181526020820180516001600160e01b031663b027102360e01b178152905182519295509350839250908083835b602083106133f55780518252601f1990920191602091820191016133d6565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d8060008114613455576040519150601f19603f3d011682016040523d82523d6000602084013e61345a565b606091505b509092509050816134b2576040805162461bcd60e51b815260206004820152601d60248201527f5630202d204f6c6420636f6e74726163742063616c6c206661696c6564000000604482015290519081900360640190fd5b602001519350505b5050919050565b6001600160a01b031660009081526004602052604090205460ff1690565b60008181526007602090815260409182902080548351601f60026000196101006001861615020190931692909204918201849004840281018401909452808452606093928301828280156135745780601f1061354957610100808354040283529160200191613574565b820191906000526020600020905b81548152906001019060200180831161355757829003601f168201915b50505050509050919050565b600a54600090613592575060006127f5565b6060600a6009846040518082805190602001908083835b602083106135c85780518252601f1990920191602091820191016135a9565b51815160209384036101000a600019018019909216911617905292019485525060405193849003019092205483549092508210905061360357fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156136915780601f1061366657610100808354040283529160200191613691565b820191906000526020600020905b81548152906001019060200180831161367457829003601f168201915b50505050509050606083905080518251146136b1576000925050506127f5565b60005b8251811015613712578181815181106136c957fe5b602001015160f81c60f81b6001600160f81b0319168382815181106136ea57fe5b01602001516001600160f81b0319161461370a57600093505050506127f5565b6001016136b4565b506001949350505050565b600061372761442b565b6000546001600160a01b0390811691161480613758575061374661442b565b6001546001600160a01b039081169116145b613797576040805162461bcd60e51b81526020600482018190526024820152600080516020614c04833981519152604482015290519081900360640190fd5b6001600160a01b038316600081815260046020526040808220805460ff191686151590811790915590519092917ff022c1fbc00daf4d2e6cdc62e0338b967bd3be38ccc3d7f8e0168bd668c7bcfe91a350600192915050565b60006137fa61442b565b6000546001600160a01b039081169116148061382b575061381961442b565b6001546001600160a01b039081169116145b61386a576040805162461bcd60e51b81526020600482018190526024820152600080516020614c04833981519152604482015290519081900360640190fd5b6001600160a01b038416600090815260056020908152604091829020805460ff19168615151790559051835184928291908401908083835b602083106138c15780518252601f1990920191602091820191016138a2565b5181516020939093036101000a60001901801990911692169190911790526040519201829003822093505085151591506001600160a01b038716907f292123b68099c6aa2b5d37989544acbb7000794b52d1f629067b3f3ee1ce79fa90600090a45060019392505050565b6016546001600160a01b031690565b61394361442b565b6000546001600160a01b0390811691161480613974575061396261442b565b6001546001600160a01b039081169116145b6139b3576040805162461bcd60e51b81526020600482018190526024820152600080516020614c04833981519152604482015290519081900360640190fd5b601680546001600160a01b039384166001600160a01b03199182161790915560178054929093169116179055565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b613a1461442b565b6000546001600160a01b0390811691161480613a455750613a3361442b565b6001546001600160a01b039081169116145b613a84576040805162461bcd60e51b81526020600482018190526024820152600080516020614c04833981519152604482015290519081900360640190fd5b601380546001600160a01b0319166001600160a01b0392909216919091179055565b600060115487101580613abb57506012543410155b613af65760405162461bcd60e51b8152600401808060200182810382526022815260200180614a926022913960400191505060405180910390fd5b3360009081526005602052604090205460ff16613b445760405162461bcd60e51b8152600401808060200182810382526021815260200180614c486021913960400191505060405180910390fd5b60408514613b96576040805162461bcd60e51b815260206004820152601a602482015279158cc80b48125b9d985b1a59081a185cda081c1c9bdd9a59195960321b604482015290519081900360640190fd5b6001600160a01b03881660009081526006602052604090205460ff16613bc5576013546001600160a01b031697505b6000809050606087878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293505087159150613dc4905057600a5415613cb3576009816040518082805190602001908083835b60208310613c475780518252601f199092019160209182019101613c28565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922054159150613cb390505760405162461bcd60e51b8152600401808060200182810382526027815260200180614cb06027913960400191505060405180910390fd5b600a80546001810182556000919091528151613cf6917fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a8019060208401906149f9565b506001600a80549050036009826040518082805190602001908083835b60208310613d325780518252601f199092019160209182019101613d13565b51815160209384036101000a60001901801990921691161790529201948552506040519384900381018420949094555050825160099284929182918401908083835b60208310613d935780518252601f199092019160209182019101613d74565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922054935050505b600080851561408b5760606040518060200160405280600081525090506009846040518082805190602001908083835b60208310613e135780518252601f199092019160209182019101613df4565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922060010154159150613e929050576040805162461bcd60e51b81526020600482015260176024820152765635202d204e46542065786973747320616c726561647960481b604482015290519081900360640190fd5b601654604051602060248201908152604482018d90526001600160a01b03909216918d918d9190819060640184848082843760008382015260408051601f909201601f1990811690940182810390940182529283526020810180516001600160e01b031663d4a338b560e01b17815292518151919750955085945091925081905083835b60208310613f355780518252601f199092019160209182019101613f16565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114613f95576040519150601f19603f3d011682016040523d82523d6000602084013e613f9a565b606091505b50909350905082613ff2576040805162461bcd60e51b815260206004820152601d60248201527f5636202d204e465420636f6e74726163742063616c6c206661696c6564000000604482015290519081900360640190fd5b613ffd816000614913565b600081815260076020908152604090912086519294506140219290918701906149f9565b50816009856040518082805190602001908083835b602083106140555780518252601f199092019160209182019101614036565b51815160209384036101000a60001901801990921691161790529201948552506040519384900301909220600101929092555050505b6001600160a01b038c1660009081526003602090815260408083203384529091529020548b11614112576001600160a01b038c1660009081526003602090815260408083203384529091529020546140e9908c63ffffffff61453116565b6001600160a01b038d16600090815260036020908152604080832033845290915290205561417e565b33600090815260026020526040902054614132908c63ffffffff61453116565b33600090815260026020526040808220929092556001600160a01b038e1681522054614164908c63ffffffff61457a16565b6001600160a01b038d166000908152600260205260409020555b861561420a5780836040518082805190602001908083835b602083106141b55780518252601f199092019160209182019101614196565b5181516020939093036101000a60001901801990911692169190911790526040519201829003822093508892507fafcd25da59deba8131d6e132d195aafbec08dedb8ae14c9e30bfe0b563047a219160009150a45b604080518c815290516001600160a01b038e16913391600080516020614c698339815191529181900360200190a35060019b9a5050505050505050505050565b61425261442b565b6000546001600160a01b0390811691161480614283575061427161442b565b6001546001600160a01b039081169116145b6142c2576040805162461bcd60e51b81526020600482018190526024820152600080516020614c04833981519152604482015290519081900360640190fd5b611e5d81614959565b60125490565b6001600160a01b031660009081526006602052604090205460ff1690565b60006142f961442b565b6000546001600160a01b039081169116148061432a575061431861442b565b6001546001600160a01b039081169116145b614369576040805162461bcd60e51b81526020600482018190526024820152600080516020614c04833981519152604482015290519081900360640190fd5b6001600160a01b038416600090815260066020908152604091829020805460ff19168615151790559051835184928291908401908083835b602083106143c05780518252601f1990920191602091820191016143a1565b5181516020939093036101000a60001901801990911692169190911790526040519201829003822093505085151591506001600160a01b038716907f3d08b6e3d62b04396eca9fe996bd52ef13d33affdfb79e470ed9fdbe4910452390600090a45060019392505050565b3390565b6001600160a01b0383166144745760405162461bcd60e51b8152600401808060200182810382526022815260200180614b556022913960400191505060405180910390fd5b6001600160a01b0382166144cf576040805162461bcd60e51b815260206004820181905260248201527f4132202d20417070726f766520746f20746865207a65726f2061646472657373604482015290519081900360640190fd5b6001600160a01b03808416600081815260036020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b600061457383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250614751565b9392505050565b600082820183811080159061458f5750828110155b614573576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6001600160a01b0383166146255760405162461bcd60e51b8152600401808060200182810382526023815260200180614bbe6023913960400191505060405180910390fd5b6001600160a01b03821615158061465457506001600160a01b03831660009081526004602052604090205460ff165b61468f5760405162461bcd60e51b8152600401808060200182810382526021815260200180614b346021913960400191505060405180910390fd5b6146d281604051806060016040528060248152602001614ada602491396001600160a01b038616600090815260026020526040902054919063ffffffff61475116565b6001600160a01b038085166000908152600260205260408082209390935590841681522054614707908263ffffffff61457a16565b6001600160a01b038084166000818152600260209081526040918290209490945580518581529051919392871692600080516020614c6983398151915292918290030190a3505050565b60008284038484118015906147665750848111155b83906147f05760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156147b557818101518382015260200161479d565b50505050905090810190601f1680156147e25780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50949350505050565b6001600160a01b038216614854576040805162461bcd60e51b815260206004820152601f60248201527f4231202d204275726e2066726f6d20746865207a65726f206164647265737300604482015290519081900360640190fd5b60408051808201825260208082527f4232202d204275726e20616d6f756e7420657863656564732062616c616e6365818301526001600160a01b0385166000908152600290915291909120546148b191839063ffffffff61475116565b6001600160a01b038316600090815260026020526040902055600e546148dd908263ffffffff61453116565b600e556040805182815290516000916001600160a01b03851691600080516020614c698339815191529181900360200190a35050565b600080805b60208110156149515780600802858286018151811061493357fe5b01602001516001600160f81b031916901c9190911790600101614918565b509392505050565b6001600160a01b03811661499e5760405162461bcd60e51b8152600401808060200182810382526026815260200180614ab46026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10614a3a57805160ff1916838001178555614a67565b82800160010185558215614a67579182015b82811115614a67578251825591602001919060010190614a4c565b50614a73929150614a77565b5090565b61124891905b80821115614a735760008155600101614a7d56fe5631202d20496e73756666696369656e74207061796d656e742070726f76696465644f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573735434202d205472616e7366657220616d6f756e7420657863656564732062616c616e6365425431202d20416464726573736573206c656e677468206d75737420626520657175616c20746f20616d6f756e7473206c656e6774685433202d205472616e7366657220746f20746865207a65726f20616464726573734131202d20417070726f76652066726f6d20746865207a65726f20616464726573735431202d205468652077616c6c6574206f662073656e6465722069732066726f7a656e444131202d2044656372656173656420616c6c6f77616e63652062656c6f77207a65726f5431202d205472616e736665722066726f6d20746865207a65726f2061646472657373424631202d204275726e20616d6f756e74206578636565647320616c6c6f77616e63654f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572544631202d205468652077616c6c6574206f662073656e6465722069732066726f7a656e5632202d20556e7665726966696564207075626c69736865722061646472657373ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef544632202d205468652077616c6c6574206f6620726563697069656e742069732066726f7a656e5634202d20546869732068617368207761732070726576696f75736c792076616c6964617465645432202d205468652077616c6c6574206f6620726563697069656e742069732066726f7a656e544631202d205472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212205404b3648b54b7cf04ce404dc872785212b61414d23211326deb9d0f7761466564736f6c63430006080033
Deployed Bytecode Sourcemap
3220:16754:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;5037:93:0;;5:9:-1;2:2;;;27:1;24;17:12;2:2;5037:93:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;5037:93:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6095:267;;5:9:-1;2:2;;;27:1;24;17:12;2:2;6095:267:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;6095:267:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;3960:31;;5:9:-1;2:2;;;27:1;24;17:12;2:2;3960:31:0;;;:::i;:::-;;;;;;;;;;;;;;;;5815:134;;5:9:-1;2:2;;;27:1;24;17:12;2:2;5815:134:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;5815:134:0;;;;;;;;:::i;:::-;;5225:101;;5:9:-1;2:2;;;27:1;24;17:12;2:2;5225:101:0;;;:::i;18400:524::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;18400:524:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;18400:524:0;;;;;;;:::i;9462:272::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;9462:272:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;9462:272:0;;;;;;;;:::i;6367:491::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;6367:491:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;6367:491:0;;;;;;;;;;;;;;;;;:::i;3931:25::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;3931:25:0;;;:::i;4837:93::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;4837:93:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16552:132;;5:9:-1;2:2;;;27:1;24;17:12;2:2;16552:132:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;16552:132:0;-1:-1:-1;;;;;16552:132:0;;:::i;4387:49::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;4387:49:0;;;:::i;6863:209::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;6863:209:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;6863:209:0;;;;;;;;:::i;2973:90::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2973:90:0;;;:::i;12599:898::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;12599:898:0;;;;;;;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;12599:898:0;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;12599:898:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;-1:-1;12599:898:0;;-1:-1:-1;12599:898:0;-1:-1:-1;12599:898:0;:::i;19428:84::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;19428:84:0;;;:::i;:::-;;;;-1:-1:-1;;;;;19428:84:0;;;;;;;;;;;;;;7835:74;;5:9:-1;2:2;;;27:1;24;17:12;2:2;7835:74:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;7835:74:0;;:::i;9739:532::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;9739:532:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;9739:532:0;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;9739:532:0;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;9739:532:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;9739:532:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;9739:532:0;;;;;;;;-1:-1:-1;9739:532:0;;-1:-1:-1;;;;;11:28;;8:2;;;52:1;49;42:12;8:2;9739:532:0;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;9739:532:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;9739:532:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;9739:532:0;;-1:-1:-1;9739:532:0;;-1:-1:-1;;;;;9739:532:0:i;13502:1306::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;13502:1306:0;;;;;;;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;13502:1306:0;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;13502:1306:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;13502:1306:0;;-1:-1:-1;13502:1306:0;-1:-1:-1;13502:1306:0;;;;:::i;15321:443::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;15321:443:0;;:::i;19244:92::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;19244:92:0;;;:::i;5135:85::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;5135:85:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;5135:85:0;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;5135:85:0;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;5135:85:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;5135:85:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;5135:85:0;;-1:-1:-1;5135:85:0;;-1:-1:-1;;;;;5135:85:0:i;18929:123::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;18929:123:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;18929:123:0;-1:-1:-1;;;;;18929:123:0;;:::i;2728:26::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2728:26:0;;;:::i;18316:79::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;18316:79:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;18316:79:0;;;;:::i;14813:503::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;14813:503:0;;:::i;7563:267::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;7563:267:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;7563:267:0;;;;;;;;:::i;17341:417::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;17341:417:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;17341:417:0;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;17341:417:0;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;17341:417:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;17341:417:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;17341:417:0;;-1:-1:-1;17341:417:0;;-1:-1:-1;;;;;17341:417:0:i;17974:82::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;17974:82:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;17974:82:0;;:::i;5331:120::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;5331:120:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;5331:120:0;-1:-1:-1;;;;;5331:120:0;;:::i;8091:265::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;8091:265:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;8091:265:0;;;;;;;;:::i;2880:88::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2880:88:0;;;:::i;4739:93::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;4739:93:0;;;:::i;2123:70::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2123:70:0;;;:::i;17879:90::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;17879:90:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;17879:90:0;;:::i;4935:97::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;4935:97:0;;;:::i;5456:354::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;5456:354:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;5456:354:0;;;;;;;;:::i;19057:90::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;19057:90:0;;;:::i;15769:778::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;15769:778:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;15769:778:0;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;15769:778:0;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;15769:778:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;15769:778:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;15769:778:0;;-1:-1:-1;15769:778:0;;-1:-1:-1;;;;;15769:778:0:i;16814:118::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;16814:118:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;16814:118:0;-1:-1:-1;;;;;16814:118:0;;:::i;17763:111::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;17763:111:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;17763:111:0;;:::i;16937:399::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;16937:399:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;16937:399:0;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;16937:399:0;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;16937:399:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;16937:399:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;16937:399:0;;-1:-1:-1;16937:399:0;;-1:-1:-1;;;;;16937:399:0:i;7914:172::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;7914:172:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;7914:172:0;;;;;;;;;;:::i;10276:226::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;10276:226:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;10276:226:0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;10276:226:0;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;10276:226:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;10276:226:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;10276:226:0;;-1:-1:-1;10276:226:0;;-1:-1:-1;;;;;10276:226:0:i;19341:82::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;19341:82:0;;;:::i;18160:151::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;18160:151:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;18160:151:0;;;;;;;;;;:::i;5954:136::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;5954:136:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;5954:136:0;;;;;;;;;;:::i;18061:94::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;18061:94:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;18061:94:0;-1:-1:-1;;;;;18061:94:0;;:::i;10941:1653::-;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;10941:1653:0;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;10941:1653:0;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;10941:1653:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;10941:1653:0;;-1:-1:-1;10941:1653:0;-1:-1:-1;10941:1653:0;;;;;;;;;;;;;;;;;;:::i;2337:100::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2337:100:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;2337:100:0;-1:-1:-1;;;;;2337:100:0;;:::i;19152:86::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;19152:86:0;;;:::i;16689:120::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;16689:120:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;16689:120:0;-1:-1:-1;;;;;16689:120:0;;:::i;10507:211::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;10507:211:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;10507:211:0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;10507:211:0;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;10507:211:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;10507:211:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;10507:211:0;;-1:-1:-1;10507:211:0;;-1:-1:-1;;;;;10507:211:0:i;5037:93::-;5120:5;5113:12;;;;;;;;-1:-1:-1;;5113:12:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5093:13;;5113:12;;5120:5;;5113:12;;5120:5;5113:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5037:93;;:::o;6095:267::-;2799:6;;6186:4;;-1:-1:-1;;;2799:6:0;;;;2798:7;2790:16;;12:1:-1;9;2:12;2790:16:0;6206:11;;;6205:56:::1;;-1:-1:-1::0;6235:10:0::1;6223:23;::::0;;;:11:::1;:23;::::0;;;;;;;-1:-1:-1;;;;;6223:32:0;::::1;::::0;;;;;;;;:37;6205:56:::1;6197:98;;;::::0;;-1:-1:-1;;;6197:98:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;6302:39;6311:12;:10;:12::i;:::-;6325:7;6334:6;6302:8;:39::i;:::-;-1:-1:-1::0;6353:4:0::1;2811:1;6095:267:::0;;;;:::o;3960:31::-;;;;:::o;5815:134::-;2242:12;:10;:12::i;:::-;2232:6;;-1:-1:-1;;;;;2232:6:0;;;:22;;;;:52;;;2272:12;:10;:12::i;:::-;2258:10;;-1:-1:-1;;;;;2258:10:0;;;:26;;;2232:52;2224:97;;;;;-1:-1:-1;;;2224:97:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2224:97:0;;;;;;;;;;;;;;;5906:12:::1;-1:-1:-1::0;;;;;5900:28:0::1;;5929:7;:5;:7::i;:::-;5937:6;5900:44;;;;;;;;;;;;;-1:-1:-1::0;;;;;5900:44:0::1;-1:-1:-1::0;;;;;5900:44:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;5900:44:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;5900:44:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;;;;5815:134:0:o;5225:101::-;5309:12;;5225:101;:::o;18400:524::-;18478:4;2242:12;:10;:12::i;:::-;2232:6;;-1:-1:-1;;;;;2232:6:0;;;:22;;;;:52;;;2272:12;:10;:12::i;:::-;2258:10;;-1:-1:-1;;;;;2258:10:0;;;:26;;;2232:52;2224:97;;;;;-1:-1:-1;;;2224:97:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2224:97:0;;;;;;;;;;;;;;;18493:9:::1;:16:::0;18489:51:::1;;-1:-1:-1::0;18529:5:0::1;18522:12;;18489:51;18563:9;:16:::0;-1:-1:-1;;18563:18:0;18552:29;::::1;;18544:73;;;::::0;;-1:-1:-1;;;18544:73:0;;::::1;;::::0;::::1;::::0;;;;;;;::::1;::::0;;;;;;;;;;;;;::::1;;18626:10:::0;;18622:164:::1;;18661:7;18652:6;:16;:48;;;;-1:-1:-1::0;18682:9:0::1;:16:::0;-1:-1:-1;;18682:18:0;18672:28;::::1;;18652:48;18644:91;;;::::0;;-1:-1:-1;;;18644:91:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;18622:164;;;18762:9;:16:::0;-1:-1:-1;;18762:18:0;;-1:-1:-1;18622:164:0::1;18807:7:::0;18790:114:::1;18821:6;18816:1;:11;18790:114;;18869:10;18880:9;18890:1;18880:12;;;;;;;;;;;;;;;18869:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:28;;;18856:9;18866:1;18856:12;;;;;;;;;;;;;;;18845:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;18845:53:0::1;::::0;;;;::::1;::::0;;;-1:-1:-1;18854:1:0;;-1:-1:-1;18845:53:0;;::::1;18829:3;;18790:114;;;-1:-1:-1::0;18915:4:0::1;::::0;18400:524;-1:-1:-1;;;18400:524:0:o;9462:272::-;9542:12;2242;:10;:12::i;:::-;2232:6;;-1:-1:-1;;;;;2232:6:0;;;:22;;;;:52;;;2272:12;:10;:12::i;:::-;2258:10;;-1:-1:-1;;;;;2258:10:0;;;:26;;;2232:52;2224:97;;;;;-1:-1:-1;;;2224:97:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2224:97:0;;;;;;;;;;;;;;;9595:10:::1;9585:21;::::0;;;:9:::1;:21;::::0;;;;;:33:::1;::::0;9611:6;9585:33:::1;:25;:33;:::i;:::-;9571:10;9561:21;::::0;;;:9:::1;:21;::::0;;;;;:57;;;;-1:-1:-1;;;;;9640:14:0;::::1;::::0;;;;:26:::1;::::0;9659:6;9640:26:::1;:18;:26;:::i;:::-;-1:-1:-1::0;;;;;9623:14:0;::::1;;::::0;;;:9:::1;:14;::::0;;;;;;;;:43;;;;9678:33;;;;;;;9623:14;;9687:10:::1;::::0;-1:-1:-1;;;;;;;;;;;9678:33:0;;;;;;;;::::1;-1:-1:-1::0;9725:4:0::1;9462:272:::0;;;;:::o;6367:491::-;2799:6;;6481:4;;-1:-1:-1;;;2799:6:0;;;;2798:7;2790:16;;12:1:-1;9;2:12;2790:16:0;-1:-1:-1;;;;;6501:22:0;::::1;;::::0;;;:14:::1;:22;::::0;;;;;::::1;;6500:23;6492:71;;;;-1:-1:-1::0;;;6492:71:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;6577:25:0;::::1;;::::0;;;:14:::1;:25;::::0;;;;;::::1;;6576:26;::::0;:50:::1;;;6619:7;:5;:7::i;:::-;-1:-1:-1::0;;;;;6606:20:0::1;:9;-1:-1:-1::0;;;;;6606:20:0::1;;6576:50;6568:101;;;;-1:-1:-1::0;;;6568:101:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6676:36;6686:6;6694:9;6705:6;6676:9;:36::i;:::-;6717:120;6726:6;6734:12;:10;:12::i;:::-;6748:88;6786:6;6748:88;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;6748:19:0;::::1;;::::0;;;:11:::1;:19;::::0;;;;;6768:12:::1;:10;:12::i;:::-;-1:-1:-1::0;;;;;6748:33:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;6748:33:0;;;:88;::::1;:37;:88;:::i;:::-;6717:8;:120::i;3931:25::-:0;;;;:::o;4837:93::-;4916:9;;;;4837:93;:::o;16552:132::-;-1:-1:-1;;;;;16649:30:0;16618:13;16649:30;;;:18;:30;;;;;;;;;16552:132::o;4387:49::-;4427:9;4387:49;:::o;6863:209::-;2799:6;;6957:4;;-1:-1:-1;;;2799:6:0;;;;2798:7;2790:16;;12:1:-1;9;2:12;2790:16:0;6968:83:::1;6977:12;:10;:12::i;:::-;6991:7;7000:50;7039:10;7000:11;:25;7012:12;:10;:12::i;:::-;-1:-1:-1::0;;;;;7000:25:0;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;;;;;;-1:-1:-1;7000:25:0;;;:34;;::::1;::::0;;;;;;;;:50:::1;:38;:50;:::i;2973:90::-:0;2242:12;:10;:12::i;:::-;2232:6;;-1:-1:-1;;;;;2232:6:0;;;:22;;;;:52;;;2272:12;:10;:12::i;:::-;2258:10;;-1:-1:-1;;;;;2258:10:0;;;:26;;;2232:52;2224:97;;;;;-1:-1:-1;;;2224:97:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2224:97:0;;;;;;;;;;;;;;;2857:6:::1;::::0;-1:-1:-1;;;2857:6:0;::::1;;;2849:15;;12:1:-1;9::::0;2:12:::1;2849:15:0;3025:6:::2;:14:::0;;-1:-1:-1;;;;3025:14:0::2;::::0;;3049:9:::2;::::0;::::2;::::0;3034:5:::2;::::0;3049:9:::2;2973:90::o:0;12599:898::-;2799:6;;12705:4;;-1:-1:-1;;;2799:6:0;;;;2798:7;2790:16;;12:1:-1;9;2:12;2790:16:0;12735::::1;;12724:7;:27;;:58;;;;12768:14;;12755:9;:27;;12724:58;12716:104;;;;-1:-1:-1::0;;;12716:104:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12852:10;12833:30;::::0;;;:18:::1;:30;::::0;;;;;::::1;;12825:75;;;;-1:-1:-1::0;;;12825:75:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12928:2;12913:17:::0;::::1;12905:55;;;::::0;;-1:-1:-1;;;12905:55:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;12905:55:0;;;;;;;;;;;;;::::1;;12967:13;12983:1:::0;12967:17:::1;;12989:22;13021:4;;12989:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;;13037:9:0::1;:16:::0;12989:37;;-1:-1:-1;;13037:20:0;;;-1:-1:-1;13033:120:0::1;;13073:10;13084:8;13073:20;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10:::0;;164:23;;-1:-1;;139:12;;;;98:2:::1;89:12:::0;;::::1;::::0;114::::1;36:153;;;299:10:::0;344;;263:2:::1;259:12:::0;;::::1;254:3;250:22;-1:-1:::0;;246:30;311:9;::::1;295:26:::0;;::::1;340:21:::0;::::1;377:20;365:33:::0;;13073:20:0;::::1;::::0;;;-1:-1:-1;13073:20:0::1;::::0;;;;;;;;;:26;:31;;-1:-1:-1;13065:82:0::1;::::0;-1:-1:-1;13065:82:0::1;;;-1:-1:-1::0;;;13065:82:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13159:9;27:10:-1::0;;39:1:::1;23:18:::0;::::1;45:23:::0;;-1:-1;13159:24:0;;;;;;::::1;::::0;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;;13234:1;13217:9;:16;;;;:18;13188:10;13199:8;13188:20;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10:::0;;164:23;;-1:-1;;139:12;;;;98:2:::1;89:12:::0;;::::1;::::0;114::::1;36:153;;;299:10:::0;344;;263:2:::1;259:12:::0;;::::1;254:3;250:22;-1:-1:::0;;246:30;311:9;::::1;295:26:::0;;::::1;340:21:::0;::::1;377:20;365:33:::0;;13188:20:0;::::1;::::0;;;-1:-1:-1;13188:20:0::1;::::0;;;;;;;;;:47;;;;-1:-1:-1;;13248:20:0;;:10:::1;::::0;:20;;13188;;;13248;::::1;::::0;;13188;13248;36:153:-1::1;66:2;61:3;58:11;36:153;;176:10:::0;;164:23;;-1:-1;;139:12;;;;98:2:::1;89:12:::0;;::::1;::::0;114::::1;36:153;;;299:10:::0;344;;263:2:::1;259:12:::0;;::::1;254:3;250:22;-1:-1:::0;;246:30;311:9;::::1;295:26:::0;;::::1;340:21:::0;::::1;377:20;365:33:::0;;13248:20:0;::::1;::::0;;;-1:-1:-1;13248:20:0::1;::::0;;;;;;;;;;;:26;13315:10:::1;-1:-1:-1::0;13305:21:0;;;:9:::1;:21:::0;;;;;;;13248:26;;-1:-1:-1;13305:34:0::1;::::0;:21;-1:-1:-1;13331:7:0;;-1:-1:-1;13305:25:0::1;:34::i;:::-;13291:10;13281:21;::::0;;;:9:::1;:21;::::0;;;;;:58;;;;13385:17:::1;::::0;-1:-1:-1;;;;;13385:17:0::1;13375:28:::0;;;;:41:::1;::::0;13408:7;13375:41:::1;:32;:41;:::i;:::-;13354:17;::::0;;-1:-1:-1;;;;;13354:17:0;;::::1;13344:28;::::0;;;:9:::1;:28;::::0;;;;;;;;:72;;;;13449:17;;13428:48;;;;;;;13449:17;::::1;::::0;13437:10:::1;::::0;-1:-1:-1;;;;;;;;;;;13428:48:0;;;;;;;;;::::1;-1:-1:-1::0;13488:4:0::1;::::0;12599:898;-1:-1:-1;;;;;12599:898:0:o;19428:84::-;19494:13;;-1:-1:-1;;;;;19494:13:0;19428:84;:::o;7835:74::-;7877:27;7883:12;:10;:12::i;:::-;7897:6;7877:5;:27::i;:::-;7835:74;:::o;9739:532::-;9851:12;2242;:10;:12::i;:::-;2232:6;;-1:-1:-1;;;;;2232:6:0;;;:22;;;;:52;;;2272:12;:10;:12::i;:::-;2258:10;;-1:-1:-1;;;;;2258:10:0;;;:26;;;2232:52;2224:97;;;;;-1:-1:-1;;;2224:97:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2224:97:0;;;;;;;;;;;;;;;9905:8:::1;:15;9884:10;:17;:36;9876:103;;;;-1:-1:-1::0;;;9876:103:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9986:9;10004:247;10020:10;:17;10016:1;:21;10004:247;;;10074:38;10100:8;10109:1;10100:11;;;;;;;;;::::0;;::::1;::::0;;;;;;;10084:10:::1;10074:21;::::0;;;:9:::1;:21:::0;;;;;;;;;:38:::1;:25;:38;:::i;:::-;10060:10;10050:21;::::0;;;:9:::1;:21;::::0;;;;:62;10174:11;;10145:41:::1;::::0;10174:8;;10183:1;;10174:11;::::1;;;;;;;;;;;10145:9;:24;10155:10;10166:1;10155:13;;;;;;;;;;;;;;-1:-1:-1::0;;;;;10145:24:0::1;-1:-1:-1::0;;;;;10145:24:0::1;;;;;;;;;;;;;:28;;:41;;;;:::i;:::-;10118:9;:24;10128:10;10139:1;10128:13;;;;;;;;;;;;;;-1:-1:-1::0;;;;;10118:24:0::1;-1:-1:-1::0;;;;;10118:24:0::1;;;;;;;;;;;;:68;;;;10218:10;10229:1;10218:13;;;;;;;;;;;;;;-1:-1:-1::0;;;;;10197:48:0::1;10206:10;-1:-1:-1::0;;;;;10197:48:0::1;-1:-1:-1::0;;;;;;;;;;;10233:8:0::1;10242:1;10233:11;;;;;;;;;;;;;;10197:48;;;;;;;;;;;;;;;;;;10039:3;;10004:247;;13502:1306:::0;2799:6;;13617:4;;-1:-1:-1;;;2799:6:0;;;;2798:7;2790:16;;12:1:-1;9;2:12;2790:16:0;13647::::1;;13636:7;:27;;:58;;;;13680:14;;13667:9;:27;;13636:58;13628:104;;;;-1:-1:-1::0;;;13628:104:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13745:9;::::0;::::1;;::::0;:43:::1;;-1:-1:-1::0;13777:10:0::1;13758:30;::::0;;;:18:::1;:30;::::0;;;;;::::1;;13745:43;13737:88;;;;-1:-1:-1::0;;;13737:88:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13853:2;13838:17:::0;::::1;13830:55;;;::::0;;-1:-1:-1;;;13830:55:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;13830:55:0;;;;;;;;;;;;;::::1;;13892:13;13908:1:::0;13892:17:::1;;13914:22;13946:4;;13914:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;-1:-1;14007:26:0::1;::::0;;::::1;::::0;;::::1;::::0;;;;;14048:20;;;;13914:37;;-1:-1:-1;99:1;;;;-1:-1;14007:26:0;;-1:-1:-1;14048:10:0::1;::::0;-1:-1:-1;13914:37:0;;14048:20;;;;;::::1;::::0;;;;36:153:-1::1;66:2;61:3;58:11;36:153;;176:10:::0;;164:23;;-1:-1;;139:12;;;;98:2:::1;89:12:::0;;::::1;::::0;114::::1;36:153;;;299:10:::0;344;;263:2:::1;259:12:::0;;::::1;254:3;250:22;-1:-1:::0;;246:30;311:9;::::1;295:26:::0;;::::1;340:21:::0;::::1;377:20;365:33:::0;;14048:20:0;::::1;::::0;;;-1:-1:-1;14048:20:0::1;::::0;;;;;;;;;274:1:-1::1;14048:24:0;::::0;:29;;-1:-1:-1;14040:64:0::1;::::0;-1:-1:-1;14040:64:0::1;;::::0;;-1:-1:-1;;;14040:64:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;14040:64:0;;;;;;;;;;;;;::::1;;14115:9;14111:250;;;14158:13;::::0;14185:49:::1;::::0;::::1;;::::0;::::1;::::0;;;;;;;;;-1:-1:-1;;;;;14158:13:0;;::::1;::::0;14229:4;;;;14185:49;;;;;14229:4;;;;14185:49;1:33:-1::1;99:1;81:16:::0;;::::1;74:27:::0;14185:49:0::1;::::0;;137:4:-1::1;117:14:::0;;::::1;-1:-1:::0;;113:30;;::::1;157:16:::0;;::::1;26:21:::0;;::::1;22:32:::0;;;6:49;;14185::0;;;49:4:-1::1;25:18:::0;::::1;61:17:::0;;-1:-1;;;;;182:15:::1;-1:-1:::0;;;179:29:::1;160:49:::0;;14158:77:0;;;;14185:49;;-1:-1:-1;14158:77:0;-1:-1:-1;14158:77:0;;-1:-1:-1;25:18;;-1:-1;14158:77:0;;-1:-1:-1;14158:77:0;25:18:-1;36:153:::1;66:2;61:3;58:11;36:153;;176:10:::0;;164:23;;-1:-1;;139:12;;;;98:2:::1;89:12:::0;;::::1;::::0;114::::1;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;14158:77:0;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;-1:-1:::0;14132:103:0;;-1:-1:-1;14132:103:0;-1:-1:-1;14111:250:0::1;;;14279:12;::::0;14305:49:::1;::::0;::::1;;::::0;::::1;::::0;;;;;;;;;-1:-1:-1;;;;;14279:12:0;;::::1;::::0;14349:4;;;;14305:49;;;;;14349:4;;;;14305:49;1:33:-1::1;99:1;81:16:::0;;::::1;74:27:::0;14305:49:0::1;::::0;;137:4:-1::1;117:14:::0;;::::1;-1:-1:::0;;113:30;;::::1;157:16:::0;;::::1;26:21:::0;;::::1;22:32:::0;;;6:49;;14305::0;;;49:4:-1::1;25:18:::0;::::1;61:17:::0;;-1:-1;;;;;182:15:::1;-1:-1:::0;;;179:29:::1;160:49:::0;;14279:76:0;;;;14305:49;;-1:-1:-1;14279:76:0;-1:-1:-1;14279:76:0;;-1:-1:-1;25:18;;-1:-1;14279:76:0;;-1:-1:-1;14279:76:0;25:18:-1;36:153:::1;66:2;61:3;58:11;36:153;;176:10:::0;;164:23;;-1:-1;;139:12;;;;98:2:::1;89:12:::0;;::::1;::::0;114::::1;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;14279:76:0;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;-1:-1:::0;14253:102:0;;-1:-1:-1;14253:102:0;-1:-1:-1;14111:250:0::1;14373:11;14365:52;;;::::0;;-1:-1:-1;;;14365:52:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;14440:26;14455:8;14464:1;14440:14;:26::i;:::-;14432:35;14474:19:::0;;;:12:::1;:19;::::0;;;;;;;:30;;14432:35;;-1:-1:-1;14474:30:0::1;::::0;:19;;:30;::::1;::::0;::::1;:::i;:::-;;14536:5;14509:10;14520:8;14509:20;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10:::0;;164:23;;-1:-1;;139:12;;;;98:2:::1;89:12:::0;;::::1;::::0;114::::1;36:153;;;299:10:::0;344;;263:2:::1;259:12:::0;;::::1;254:3;250:22;-1:-1:::0;;246:30;311:9;::::1;295:26:::0;;::::1;340:21:::0;::::1;377:20;365:33:::0;;14509:20:0;::::1;::::0;;;-1:-1:-1;14509:20:0::1;::::0;;;;;;;;;;;274:1:-1::1;14509:24:0;:32:::0;;;;-1:-1:-1;;14582:10:0::1;-1:-1:-1::0;14572:21:0;;;:9:::1;:21:::0;;;;;;:34:::1;::::0;14598:7;14572:25:::1;:34::i;:::-;14558:10;14548:21;::::0;;;:9:::1;:21;::::0;;;;;:58;;;;14652:17:::1;::::0;-1:-1:-1;;;;;14652:17:0::1;14642:28:::0;;;;:41:::1;::::0;14675:7;14642:41:::1;:32;:41;:::i;:::-;14621:17;::::0;;-1:-1:-1;;;;;14621:17:0;;::::1;14611:28;::::0;;;:9:::1;:28;::::0;;;;;;;;:72;;;;14716:17;;14695:48;;;;;;;14716:17;::::1;::::0;14704:10:::1;::::0;-1:-1:-1;;;;;;;;;;;14695:48:0;;;;;;;;;::::1;14781:5;14772:8;14753:34;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10:::0;;164:23;;-1:-1;;139:12;;;;98:2:::1;89:12:::0;;::::1;::::0;114::::1;36:153;;;299:10:::0;344;;263:2:::1;259:12:::0;;;::::1;254:3;250:22;-1:-1:::0;;246:30;311:9;::::1;295:26:::0;;::::1;340:21:::0;::::1;377:20:::0;;;::::1;365:33:::0;;14753:34:0::1;::::0;;::::1;::::0;;::::1;::::0;;;-1:-1:-1;14766:5:0;;-1:-1:-1;14753:34:0::1;::::0;-1:-1:-1;;;14753:34:0::1;-1:-1:-1::0;14799:4:0::1;::::0;13502:1306;-1:-1:-1;;;;;;;;;13502:1306:0:o;15321:443::-;2799:6;;15406:4;;-1:-1:-1;;;2799:6:0;;;;2798:7;2790:16;;12:1:-1;9;2:12;2790:16:0;15436::::1;;15425:7;:27;;:58;;;;15469:14;;15456:9;:27;;15425:58;15417:104;;;;-1:-1:-1::0;;;15417:104:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15553:10;15534:30;::::0;;;:18:::1;:30;::::0;;;;;::::1;;15526:75;;;;-1:-1:-1::0;;;15526:75:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15642:10;15632:21;::::0;;;:9:::1;:21;::::0;;;;;:34:::1;::::0;15658:7;15632:34:::1;:25;:34;:::i;:::-;15618:10;15608:21;::::0;;;:9:::1;:21;::::0;;;;;:58;;;;15712:17:::1;::::0;-1:-1:-1;;;;;15712:17:0::1;15702:28:::0;;;;:41:::1;::::0;15735:7;15702:41:::1;:32;:41;:::i;:::-;15681:17;::::0;-1:-1:-1;;;;;15681:17:0::1;15671:28;::::0;;;:9:::1;:28;::::0;;;;:72;-1:-1:-1;15681:17:0;2811:1:::1;15321:443:::0;;;:::o;19244:92::-;19314:17;;-1:-1:-1;;;;;19314:17:0;19244:92;:::o;5135:85::-;2242:12;:10;:12::i;:::-;2232:6;;-1:-1:-1;;;;;2232:6:0;;;:22;;;;:52;;;2272:12;:10;:12::i;:::-;2258:10;;-1:-1:-1;;;;;2258:10:0;;;:26;;;2232:52;2224:97;;;;;-1:-1:-1;;;2224:97:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2224:97:0;;;;;;;;;;;;;;;5200:15;;::::1;::::0;:5:::1;::::0;:15:::1;::::0;::::1;::::0;::::1;:::i;:::-;;5135:85:::0;:::o;18929:123::-;2242:12;:10;:12::i;:::-;2232:6;;-1:-1:-1;;;;;2232:6:0;;;:22;;;;:52;;;2272:12;:10;:12::i;:::-;2258:10;;-1:-1:-1;;;;;2258:10:0;;;:26;;;2232:52;2224:97;;;;;-1:-1:-1;;;2224:97:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2224:97:0;;;;;;;;;;;;;;;19002:45:::1;::::0;-1:-1:-1;;;;;19002:22:0;::::1;::::0;19025:21:::1;19002:45:::0;::::1;;;::::0;::::1;::::0;;;19025:21;19002:22;:45;::::1;;;;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;2728:26:0::0;;;-1:-1:-1;;;2728:26:0;;;;;:::o;18316:79::-;2242:12;:10;:12::i;:::-;2232:6;;-1:-1:-1;;;;;2232:6:0;;;:22;;;;:52;;;2272:12;:10;:12::i;:::-;2258:10;;-1:-1:-1;;;;;2258:10:0;;;:26;;;2232:52;2224:97;;;;;-1:-1:-1;;;2224:97:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2224:97:0;;;;;;;;;;;;;;;18371:9:::1;:19:::0;;-1:-1:-1;;18371:19:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18316:79::o;14813:503::-;2799:6;;14898:4;;-1:-1:-1;;;2799:6:0;;;;2798:7;2790:16;;12:1:-1;9;2:12;2790:16:0;14928::::1;;14917:7;:27;;:58;;;;14961:14;;14948:9;:27;;14917:58;14909:104;;;;-1:-1:-1::0;;;14909:104:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15045:10;15026:30;::::0;;;:18:::1;:30;::::0;;;;;::::1;;15018:75;;;;-1:-1:-1::0;;;15018:75:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15134:10;15124:21;::::0;;;:9:::1;:21;::::0;;;;;:34:::1;::::0;15150:7;15124:34:::1;:25;:34;:::i;:::-;15110:10;15100:21;::::0;;;:9:::1;:21;::::0;;;;;:58;;;;15204:17:::1;::::0;-1:-1:-1;;;;;15204:17:0::1;15194:28:::0;;;;:41:::1;::::0;15227:7;15194:41:::1;:32;:41;:::i;:::-;15173:17;::::0;;-1:-1:-1;;;;;15173:17:0;;::::1;15163:28;::::0;;;:9:::1;:28;::::0;;;;;;;;:72;;;;15268:17;;15247:48;;;;;;;15268:17;::::1;::::0;15256:10:::1;::::0;-1:-1:-1;;;;;;;;;;;15247:48:0;;;;;;;;;::::1;-1:-1:-1::0;15307:4:0::1;14813:503:::0;;;:::o;7563:267::-;2799:6;;7670:4;;-1:-1:-1;;;2799:6:0;;;;2798:7;2790:16;;12:1:-1;9;2:12;2790:16:0;7681:128:::1;7690:12;:10;:12::i;:::-;7704:7;7713:95;7752:15;7713:95;;;;;;;;;;;;;;;;;:11;:25;7725:12;:10;:12::i;:::-;-1:-1:-1::0;;;;;7713:25:0;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;;;;;;-1:-1:-1;7713:25:0;;;:34;;::::1;::::0;;;;;;;;:95;::::1;:38;:95;:::i;17341:417::-:0;17427:9;:16;17409:7;;17423:47;;-1:-1:-1;17463:1:0;17456:8;;17423:47;17474:14;17497:9;17507:10;17518:8;17507:20;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;17507:20:0;;;;;-1:-1:-1;17507:20:0;;;;;;;;;;:26;17497:37;;17507:26;;-1:-1:-1;17497:37:0;;;-1:-1:-1;17497:37:0;;;;;;;;;;;;;;17474:61;;;;;;;-1:-1:-1;;17474:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17497:37;17474:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17540:14;17563:8;17540:32;;17593:1;:8;17581:1;:8;:20;17577:46;;17616:1;17609:8;;;;;;17577:46;17632:9;17627:91;17651:1;:8;17647:1;:12;17627:91;;;17685:1;17687;17685:4;;;;;;;;;;;;;;;;-1:-1:-1;;;;;17677:12:0;;:1;17679;17677:4;;;;;;;;;;;;-1:-1:-1;;;;;;17677:4:0;:12;17673:40;;17705:1;17698:8;;;;;;;17673:40;17661:4;;17627:91;;;;17729:10;17740:8;17729:20;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;17729:20:0;;;;;-1:-1:-1;17729:20:0;;;;;;;;;;274:1:-1;17729:24:0;;;17341:417;-1:-1:-1;;;;;;17341:417:0:o;17974:82::-;2242:12;:10;:12::i;:::-;2232:6;;-1:-1:-1;;;;;2232:6:0;;;:22;;;;:52;;;2272:12;:10;:12::i;:::-;2258:10;;-1:-1:-1;;;;;2258:10:0;;;:26;;;2232:52;2224:97;;;;;-1:-1:-1;;;2224:97:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2224:97:0;;;;;;;;;;;;;;;18028:14:::1;:23:::0;17974:82::o;5331:120::-;-1:-1:-1;;;;;5428:18:0;5407:7;5428:18;;;:9;:18;;;;;;;5331:120::o;8091:265::-;8154:26;8183:85;8222:6;8183:85;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8183:20:0;;;;;;:11;:20;;;;;;8204:12;:10;:12::i;8183:85::-;8154:114;;8273:51;8282:7;8291:12;:10;:12::i;:::-;8305:18;8273:8;:51::i;:::-;8329:22;8335:7;8344:6;8329:5;:22::i;:::-;8091:265;;;:::o;2880:88::-;2242:12;:10;:12::i;:::-;2232:6;;-1:-1:-1;;;;;2232:6:0;;;:22;;;;:52;;;2272:12;:10;:12::i;:::-;2258:10;;-1:-1:-1;;;;;2258:10:0;;;:26;;;2232:52;2224:97;;;;;-1:-1:-1;;;2224:97:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2224:97:0;;;;;;;;;;;;;;;2799:6:::1;::::0;-1:-1:-1;;;2799:6:0;::::1;;;2798:7;2790:16;;12:1:-1;9::::0;2:12:::1;2790:16:0;2942:4:::2;2933:13:::0;;-1:-1:-1;;;;2933:13:0::2;-1:-1:-1::0;;;2933:13:0::2;::::0;;2956:7:::2;::::0;::::2;::::0;2933:13;;2956:7:::2;2880:88::o:0;4739:93::-;4799:7;4820;:5;:7::i;:::-;4813:14;;4739:93;:::o;2123:70::-;2161:7;2182:6;-1:-1:-1;;;;;2182:6:0;2123:70;:::o;17879:90::-;2242:12;:10;:12::i;:::-;2232:6;;-1:-1:-1;;;;;2232:6:0;;;:22;;;;:52;;;2272:12;:10;:12::i;:::-;2258:10;;-1:-1:-1;;;;;2258:10:0;;;:26;;;2232:52;2224:97;;;;;-1:-1:-1;;;2224:97:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2224:97:0;;;;;;;;;;;;;;;17937:16:::1;:27:::0;17879:90::o;4935:97::-;5020:7;5013:14;;;;;;;;-1:-1:-1;;5013:14:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4993:13;;5013:14;;5020:7;;5013:14;;5020:7;5013:14;;;;;;;;;;;;;;;;;;;;;;;;5456:354;2799:6;;5550:4;;-1:-1:-1;;;2799:6:0;;;;2798:7;2790:16;;12:1:-1;9;2:12;2790:16:0;5585:10:::1;5570:26;::::0;;;:14:::1;:26;::::0;;;;;::::1;;5569:27;::::0;:51:::1;;;5613:7;:5;:7::i;:::-;-1:-1:-1::0;;;;;5600:20:0::1;:9;-1:-1:-1::0;;;;;5600:20:0::1;;5569:51;5561:98;;;;-1:-1:-1::0;;;5561:98:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;5673:25:0;::::1;;::::0;;;:14:::1;:25;::::0;;;;;::::1;;5672:26;5664:76;;;;-1:-1:-1::0;;;5664:76:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5747:42;5757:12;:10;:12::i;:::-;5771:9;5782:6;5747:9;:42::i;19057:90::-:0;19126:16;;19057:90;:::o;15769:778::-;15878:9;:16;15865:4;;15874:55;;-1:-1:-1;15918:5:0;15874:55;15933:14;15956:9;15966:10;15977:8;15966:20;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;15966:20:0;;;;;-1:-1:-1;15966:20:0;;;;;;;;;;:26;15956:37;;15966:26;;-1:-1:-1;15956:37:0;;;-1:-1:-1;15956:37:0;;;;;;;;;;;;;;15933:61;;;;;;;-1:-1:-1;;15933:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15956:37;15933:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15999:14;16022:8;15999:32;;16052:1;:8;16040:1;:8;:20;16036:54;;16079:5;16068:16;;16036:54;16098:8;16094:120;;;16118:9;16113:99;16137:1;:8;16133:1;:12;16113:99;;;16171:1;16173;16171:4;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16163:12:0;;:1;16165;16163:4;;;;;;;;;;;;-1:-1:-1;;;;;;16163:4:0;:12;16159:48;;16195:5;16184:16;;16159:48;16147:4;;16113:99;;;;16094:120;16223:8;16218:325;;16271:31;;;;;;;;;16239:18;16271:31;;;16341:11;;16364:55;;;;;;;;;;;;;;;;16239:18;;-1:-1:-1;;;;;16341:11:0;;16410:8;;16364:55;;;;;;;;;;;;;;;16239:18;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;16364:55:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16364:55:0;;;-1:-1:-1;;26:21;;;22:32;6:49;;16364:55:0;;;49:4:-1;25:18;;61:17;;-1:-1;;;;;182:15;-1:-1;;;179:29;160:49;;16341:79:0;;;;16364:55;;-1:-1:-1;16341:79:0;-1:-1:-1;16341:79:0;;-1:-1:-1;25:18;16341:79:0;;25:18:-1;36:153;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;16341:79:0;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;-1:-1;16308:112:0;;-1:-1:-1;16308:112:0;-1:-1:-1;16308:112:0;16426:54;;;;;-1:-1:-1;;;16426:54:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;16533:2;16514:22;16508:29;;-1:-1:-1;;16495:43:0;15769:778;;;;;:::o;16814:118::-;-1:-1:-1;;;;;16903:24:0;16876:11;16903:24;;;:14;:24;;;;;;;;;16814:118::o;17763:111::-;17850:19;;;;:12;:19;;;;;;;;;17843:26;;;;;;-1:-1:-1;;17843:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17818:18;;17843:26;;;17850:19;17843:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17763:111;;;:::o;16937:399::-;17013:9;:16;16998:4;;17009:51;;-1:-1:-1;17049:5:0;17042:12;;17009:51;17064:14;17087:9;17097:10;17108:8;17097:20;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;17097:20:0;;;;;-1:-1:-1;17097:20:0;;;;;;;;;;:26;17087:37;;17097:26;;-1:-1:-1;17087:37:0;;;-1:-1:-1;17087:37:0;;;;;;;;;;;;;;17064:61;;;;;;;-1:-1:-1;;17064:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17087:37;17064:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17130:14;17153:8;17130:32;;17183:1;:8;17171:1;:8;:20;17167:50;;17206:5;17199:12;;;;;;17167:50;17226:9;17221:95;17245:1;:8;17241:1;:12;17221:95;;;17279:1;17281;17279:4;;;;;;;;;;;;;;;;-1:-1:-1;;;;;17271:12:0;;:1;17273;17271:4;;;;;;;;;;;;-1:-1:-1;;;;;;17271:4:0;:12;17267:44;;17299:5;17292:12;;;;;;;17267:44;17255:4;;17221:95;;;-1:-1:-1;17327:4:0;;16937:399;-1:-1:-1;;;;16937:399:0:o;7914:172::-;7987:4;2242:12;:10;:12::i;:::-;2232:6;;-1:-1:-1;;;;;2232:6:0;;;:22;;;;:52;;;2272:12;:10;:12::i;:::-;2258:10;;-1:-1:-1;;;;;2258:10:0;;;:26;;;2232:52;2224:97;;;;;-1:-1:-1;;;2224:97:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2224:97:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;7998:24:0;::::1;;::::0;;;:14:::1;:24;::::0;;;;;:33;;-1:-1:-1;;7998:33:0::1;::::0;::::1;;::::0;;::::1;::::0;;;8041:24;;7998:33;;:24;8041::::1;::::0;::::1;-1:-1:-1::0;8077:4:0::1;7914:172:::0;;;;:::o;10276:226::-;10383:4;2242:12;:10;:12::i;:::-;2232:6;;-1:-1:-1;;;;;2232:6:0;;;:22;;;;:52;;;2272:12;:10;:12::i;:::-;2258:10;;-1:-1:-1;;;;;2258:10:0;;;:26;;;2232:52;2224:97;;;;;-1:-1:-1;;;2224:97:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2224:97:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;10394:27:0;::::1;;::::0;;;:18:::1;:27;::::0;;;;;;;;:35;;-1:-1:-1;;10394:35:0::1;::::0;::::1;;;::::0;;10439:42;;;;;;;;;;::::1;::::0;;;;36:153:-1::1;66:2;61:3;58:11;36:153;;176:10:::0;;164:23;;-1:-1;;139:12;;;;98:2:::1;89:12:::0;;::::1;::::0;114::::1;36:153;;;299:10:::0;344;;263:2:::1;259:12:::0;;;::::1;254:3;250:22;-1:-1:::0;;246:30;311:9;::::1;295:26:::0;;::::1;340:21:::0;::::1;377:20:::0;;;::::1;365:33:::0;;10439:42:0::1;::::0;;::::1;::::0;;::::1;::::0;;;-1:-1:-1;;10439:42:0;::::1;;::::0;-1:-1:-1;;;;;;10439:42:0;::::1;::::0;::::1;::::0;-1:-1:-1;;10439:42:0::1;-1:-1:-1::0;10493:4:0::1;10276:226:::0;;;;;:::o;19341:82::-;19406:12;;-1:-1:-1;;;;;19406:12:0;19341:82;:::o;18160:151::-;2242:12;:10;:12::i;:::-;2232:6;;-1:-1:-1;;;;;2232:6:0;;;:22;;;;:52;;;2272:12;:10;:12::i;:::-;2258:10;;-1:-1:-1;;;;;2258:10:0;;;:26;;;2232:52;2224:97;;;;;-1:-1:-1;;;2224:97:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2224:97:0;;;;;;;;;;;;;;;18247:12:::1;:26:::0;;-1:-1:-1;;;;;18247:26:0;;::::1;-1:-1:-1::0;;;;;;18247:26:0;;::::1;;::::0;;;18278:13:::1;:28:::0;;;;;::::1;::::0;::::1;;::::0;;18160:151::o;5954:136::-;-1:-1:-1;;;;;6058:18:0;;;6037:7;6058:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;5954:136::o;18061:94::-;2242:12;:10;:12::i;:::-;2232:6;;-1:-1:-1;;;;;2232:6:0;;;:22;;;;:52;;;2272:12;:10;:12::i;:::-;2258:10;;-1:-1:-1;;;;;2258:10:0;;;:26;;;2232:52;2224:97;;;;;-1:-1:-1;;;2224:97:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2224:97:0;;;;;;;;;;;;;;;18121:17:::1;:29:::0;;-1:-1:-1;;;;;;18121:29:0::1;-1:-1:-1::0;;;;;18121:29:0;;;::::1;::::0;;;::::1;::::0;;18061:94::o;10941:1653::-;11073:4;11103:16;;11092:7;:27;;:58;;;;11136:14;;11123:9;:27;;11092:58;11084:104;;;;-1:-1:-1;;;11084:104:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11220:10;11201:30;;;;:18;:30;;;;;;;;11193:75;;;;-1:-1:-1;;;11193:75:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11296:2;11281:17;;11273:55;;;;;-1:-1:-1;;;11273:55:0;;;;;;;;;;;;-1:-1:-1;;;11273:55:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;11340:19:0;;;;;;:15;:19;;;;;;;;11335:60;;11372:17;;-1:-1:-1;;;;;11372:17:0;;-1:-1:-1;11335:60:0;11401:13;11417:1;11401:17;;11423:22;11455:4;;11423:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;11423:37:0;;-1:-1:-1;;11467:270:0;;;-1:-1:-1;11467:270:0;;-1:-1:-1;11467:270:0;11489:9;:16;:20;11485:122;;11526:10;11537:8;11526:20;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;11526:20:0;;;;;-1:-1:-1;11526:20:0;;;;;;;;;;:26;:31;;-1:-1:-1;11518:82:0;;-1:-1:-1;11518:82:0;;;-1:-1:-1;;;11518:82:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11614:9;27:10:-1;;39:1;23:18;;45:23;;-1:-1;11614:24:0;;;;;;;;;;;;;;;;:::i;:::-;;11690:1;11673:9;:16;;;;:18;11644:10;11655:8;11644:20;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;11644:20:0;;;;;-1:-1:-1;11644:20:0;;;;;;;;;;:47;;;;-1:-1:-1;;11705:20:0;;:10;;:20;;11644;;;11705;;;;11644;11705;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;11705:20:0;;;;;-1:-1:-1;11705:20:0;;;;;;;;;;:26;;-1:-1:-1;;;11467:270:0;11743:16;;11796:410;;;;11811:21;:26;;;;;;;;;;;;;;11851:10;11862:8;11851:20;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;11851:20:0;;;;;-1:-1:-1;11851:20:0;;;;;;;;;;274:1:-1;11851:24:0;;:29;;-1:-1:-1;11843:64:0;;-1:-1:-1;11843:64:0;;;;-1:-1:-1;;;11843:64:0;;;;;;;;;;;;-1:-1:-1;;;11843:64:0;;;;;;;;;;;;;;;11939:12;;11965:49;;;;;;;;;;;;;;;-1:-1:-1;;;;;11939:12:0;;;;12009:4;;;;11965:49;;;;;12009:4;;;;11965:49;1:33:-1;99:1;81:16;;;74:27;11965:49:0;;;137:4:-1;117:14;;;-1:-1;;113:30;;;157:16;;;26:21;;;22:32;;;6:49;;11965::0;;;49:4:-1;25:18;;61:17;;-1:-1;;;;;182:15;-1:-1;;;179:29;160:49;;11939:76:0;;;;11965:49;;-1:-1:-1;11939:76:0;-1:-1:-1;11939:76:0;;-1:-1:-1;25:18;;-1:-1;11939:76:0;;-1:-1:-1;11939:76:0;25:18:-1;36:153;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;11939:76:0;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;-1:-1;11913:102:0;;-1:-1:-1;11913:102:0;-1:-1:-1;11913:102:0;12021:52;;;;;-1:-1:-1;;;12021:52:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;12097:26;12112:8;12121:1;12097:14;:26::i;:::-;12089:35;12132:19;;;:12;:19;;;;;;;;:30;;12089:35;;-1:-1:-1;12132:30:0;;:19;;:30;;;;:::i;:::-;;12195:5;12168:10;12179:8;12168:20;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;12168:20:0;;;;;-1:-1:-1;12168:20:0;;;;;;;;;;274:1:-1;12168:24:0;:32;;;;-1:-1:-1;;;11796:410:0;-1:-1:-1;;;;;12216:15:0;;;;;;:11;:15;;;;;;;;12232:10;12216:27;;;;;;;;:38;-1:-1:-1;12212:250:0;;-1:-1:-1;;;;;12292:15:0;;;;;;:11;:15;;;;;;;;12308:10;12292:27;;;;;;;;:40;;12324:7;12292:40;:31;:40;:::i;:::-;-1:-1:-1;;;;;12262:15:0;;;;;;:11;:15;;;;;;;;12278:10;12262:27;;;;;;;:70;12212:250;;;12384:10;12374:21;;;;:9;:21;;;;;;:34;;12400:7;12374:34;:25;:34;:::i;:::-;12360:10;12350:21;;;;:9;:21;;;;;;:58;;;;-1:-1:-1;;;;;12430:13:0;;;;;;:26;;12448:7;12430:26;:17;:26;:::i;:::-;-1:-1:-1;;;;;12414:13:0;;;;;;:9;:13;;;;;:42;12212:250;12472:4;12468:61;;;12517:5;12508:8;12489:34;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;;;;365:33;;12489:34:0;;;;;;;;;;-1:-1:-1;12502:5:0;;-1:-1:-1;12489:34:0;;-1:-1:-1;;;12489:34:0;12468:61;12540:33;;;;;;;;-1:-1:-1;;;;;12540:33:0;;;12549:10;;-1:-1:-1;;;;;;;;;;;12540:33:0;;;;;;;;-1:-1:-1;12585:4:0;;10941:1653;-1:-1:-1;;;;;;;;;;;10941:1653:0:o;2337:100::-;2242:12;:10;:12::i;:::-;2232:6;;-1:-1:-1;;;;;2232:6:0;;;:22;;;;:52;;;2272:12;:10;:12::i;:::-;2258:10;;-1:-1:-1;;;;;2258:10:0;;;:26;;;2232:52;2224:97;;;;;-1:-1:-1;;;2224:97:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2224:97:0;;;;;;;;;;;;;;;2404:28:::1;2423:8;2404:18;:28::i;19152:86::-:0;19219:14;;19152:86;:::o;16689:120::-;-1:-1:-1;;;;;16780:24:0;16749:13;16780:24;;;:15;:24;;;;;;;;;16689:120::o;10507:211::-;10608:4;2242:12;:10;:12::i;:::-;2232:6;;-1:-1:-1;;;;;2232:6:0;;;:22;;;;:52;;;2272:12;:10;:12::i;:::-;2258:10;;-1:-1:-1;;;;;2258:10:0;;;:26;;;2232:52;2224:97;;;;;-1:-1:-1;;;2224:97:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2224:97:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;10619:24:0;::::1;;::::0;;;:15:::1;:24;::::0;;;;;;;;:32;;-1:-1:-1;;10619:32:0::1;::::0;::::1;;;::::0;;10661:36;;;;;;;;;;::::1;::::0;;;;36:153:-1::1;66:2;61:3;58:11;36:153;;176:10:::0;;164:23;;-1:-1;;139:12;;;;98:2:::1;89:12:::0;;::::1;::::0;114::::1;36:153;;;299:10:::0;344;;263:2:::1;259:12:::0;;;::::1;254:3;250:22;-1:-1:::0;;246:30;311:9;::::1;295:26:::0;;::::1;340:21:::0;::::1;377:20:::0;;;::::1;365:33:::0;;10661:36:0::1;::::0;;::::1;::::0;;::::1;::::0;;;-1:-1:-1;;10661:36:0;::::1;;::::0;-1:-1:-1;;;;;;10661:36:0;::::1;::::0;::::1;::::0;-1:-1:-1;;10661:36:0::1;-1:-1:-1::0;10709:4:0::1;10507:211:::0;;;;;:::o;1197:81::-;1263:10;1197:81;:::o;9150:307::-;-1:-1:-1;;;;;9238:19:0;;9230:66;;;;-1:-1:-1;;;9230:66:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9309:21:0;;9301:66;;;;;-1:-1:-1;;;9301:66:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9374:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9420:32;;;;;;;;;;;;;;;;;9150:307;;;:::o;1479:127::-;1537:7;1558:43;1562:1;1565;1558:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1551:50;1479:127;-1:-1:-1;;;1479:127:0:o;1306:168::-;1364:7;1390:5;;;1408:6;;;;;;:16;;;1423:1;1418;:6;;1408:16;1400:56;;;;;-1:-1:-1;;;1400:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;8361:460;-1:-1:-1;;;;;8453:20:0;;8445:68;;;;-1:-1:-1;;;8445:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8526:23:0;;;;;:49;;-1:-1:-1;;;;;;8553:22:0;;;;;;:14;:22;;;;;;;;8526:49;8518:95;;;;-1:-1:-1;;;8518:95:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8640:69;8662:6;8640:69;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8640:17:0;;;;;;:9;:17;;;;;;;:69;;:21;:69;:::i;:::-;-1:-1:-1;;;;;8620:17:0;;;;;;;:9;:17;;;;;;:89;;;;8737:20;;;;;;;:32;;8762:6;8737:32;:24;:32;:::i;:::-;-1:-1:-1;;;;;8714:20:0;;;;;;;:9;:20;;;;;;;;;:55;;;;8781:35;;;;;;;8714:20;;8781:35;;;;-1:-1:-1;;;;;;;;;;;8781:35:0;;;;;;;;8361:460;;;:::o;1611:179::-;1697:7;1723:5;;;1741:6;;;;;;:16;;;1756:1;1751;:6;;1741:16;1759:12;1733:39;;;;;-1:-1:-1;;;1733:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1733:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1784:1:0;1611:179;-1:-1:-1;;;;1611:179:0:o;8826:319::-;-1:-1:-1;;;;;8896:21:0;;8888:65;;;;;-1:-1:-1;;;8888:65:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;8981:66;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8981:18:0;;-1:-1:-1;8981:18:0;;;:9;:18;;;;;;;;:66;;9004:6;;8981:66;:22;:66;:::i;:::-;-1:-1:-1;;;;;8960:18:0;;;;;;:9;:18;;;;;:87;9067:12;;:24;;9084:6;9067:24;:16;:24;:::i;:::-;9052:12;:39;9103:37;;;;;;;;9129:1;;-1:-1:-1;;;;;9103:37:0;;;-1:-1:-1;;;;;;;;;;;9103:37:0;;;;;;;;8826:319;;:::o;10723:213::-;10798:7;;;10828:89;10849:2;10845:1;:6;10828:89;;;10905:1;10909;10905:5;10879:1;10890;10881:6;:10;10879:13;;;;;;;;;;;;-1:-1:-1;;;;;;10879:13:0;10871:40;;10864:47;;;;;10853:3;;10828:89;;;-1:-1:-1;10928:3:0;10723:213;-1:-1:-1;;;10723:213:0:o;2442:208::-;-1:-1:-1;;;;;2510:22:0;;2502:73;;;;-1:-1:-1;;;2502:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2606:6;;;2585:38;;-1:-1:-1;;;;;2585:38:0;;;;2606:6;;;2585:38;;;2628:6;:17;;-1:-1:-1;;;;;;2628:17:0;-1:-1:-1;;;;;2628:17:0;;;;;;;;;;2442:208::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;
Swarm Source
ipfs://5404b3648b54b7cf04ce404dc872785212b61414d23211326deb9d0f77614665
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.