Contract Overview
Balance:
0 AVAX
AVAX Value:
$0.00
[ Download CSV Export ]
Contract Source Code Verified (Exact Match)
Contract Name:
CryptoBroskis
Compiler Version
v0.8.15+commit.e14f2714
Contract Source Code (Solidity)
/** *Submitted for verification at snowtrace.io on 2022-06-23 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; library Counters { struct Counter { uint256 _value; // default: 0 } function current(Counter storage counter) internal view returns (uint256) { return counter._value; } function increment(Counter storage counter) internal { unchecked { counter._value += 1; } } function decrement(Counter storage counter) internal { uint256 value = counter._value; require(value > 0, "Counter: decrement overflow"); unchecked { counter._value = value - 1; } } function reset(Counter storage counter) internal { counter._value = 0; } } pragma solidity ^0.8.0; library Strings { bytes16 private constant _HEX_SYMBOLS = "0123456789abcdef"; function toString(uint256 value) internal pure returns (string memory) { if (value == 0) { return "0"; } uint256 temp = value; uint256 digits; while (temp != 0) { digits++; temp /= 10; } bytes memory buffer = new bytes(digits); while (value != 0) { digits -= 1; buffer[digits] = bytes1(uint8(48 + uint256(value % 10))); value /= 10; } return string(buffer); } function toHexString(uint256 value) internal pure returns (string memory) { if (value == 0) { return "0x00"; } uint256 temp = value; uint256 length = 0; while (temp != 0) { length++; temp >>= 8; } return toHexString(value, length); } function toHexString(uint256 value, uint256 length) internal pure returns (string memory) { bytes memory buffer = new bytes(2 * length + 2); buffer[0] = "0"; buffer[1] = "x"; for (uint256 i = 2 * length + 1; i > 1; --i) { buffer[i] = _HEX_SYMBOLS[value & 0xf]; value >>= 4; } require(value == 0, "Strings: hex length insufficient"); return string(buffer); } } pragma solidity ^0.8.0; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } pragma solidity ^0.8.0; abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _transferOwnership(_msgSender()); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } pragma solidity ^0.8.1; library Address { function isContract(address account) internal view returns (bool) { return account.code.length > 0; } function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); (bool success, ) = recipient.call{value: amount}(""); require(success, "Address: unable to send value, recipient may have reverted"); } function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } function functionCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { return functionCallWithValue(target, data, 0, errorMessage); } function functionCallWithValue( address target, bytes memory data, uint256 value ) internal returns (bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); } function functionCallWithValue( address target, bytes memory data, uint256 value, string memory errorMessage ) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); require(isContract(target), "Address: call to non-contract"); (bool success, bytes memory returndata) = target.call{value: value}(data); return verifyCallResult(success, returndata, errorMessage); } function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) { return functionStaticCall(target, data, "Address: low-level static call failed"); } function functionStaticCall( address target, bytes memory data, string memory errorMessage ) internal view returns (bytes memory) { require(isContract(target), "Address: static call to non-contract"); (bool success, bytes memory returndata) = target.staticcall(data); return verifyCallResult(success, returndata, errorMessage); } function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) { return functionDelegateCall(target, data, "Address: low-level delegate call failed"); } function functionDelegateCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { require(isContract(target), "Address: delegate call to non-contract"); (bool success, bytes memory returndata) = target.delegatecall(data); return verifyCallResult(success, returndata, errorMessage); } function verifyCallResult( bool success, bytes memory returndata, string memory errorMessage ) internal pure returns (bytes memory) { if (success) { return returndata; } else { if (returndata.length > 0) { assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } pragma solidity ^0.8.0; interface IERC721Receiver { function onERC721Received( address operator, address from, uint256 tokenId, bytes calldata data ) external returns (bytes4); } pragma solidity ^0.8.0; interface IERC165 { function supportsInterface(bytes4 interfaceId) external view returns (bool); } pragma solidity ^0.8.0; abstract contract ERC165 is IERC165 { function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(IERC165).interfaceId; } } pragma solidity ^0.8.0; interface IERC721 is IERC165 { event Transfer(address indexed from, address indexed to, uint256 indexed tokenId); event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId); event ApprovalForAll(address indexed owner, address indexed operator, bool approved); function balanceOf(address owner) external view returns (uint256 balance); function ownerOf(uint256 tokenId) external view returns (address owner); function safeTransferFrom( address from, address to, uint256 tokenId ) external; function transferFrom( address from, address to, uint256 tokenId ) external; function approve(address to, uint256 tokenId) external; function getApproved(uint256 tokenId) external view returns (address operator); function setApprovalForAll(address operator, bool _approved) external; function isApprovedForAll(address owner, address operator) external view returns (bool); function safeTransferFrom( address from, address to, uint256 tokenId, bytes calldata data ) external; } pragma solidity ^0.8.0; interface IERC721Metadata is IERC721 { function name() external view returns (string memory); function symbol() external view returns (string memory); function tokenURI(uint256 tokenId) external view returns (string memory); } pragma solidity ^0.8.0; contract ERC721 is Context, ERC165, IERC721, IERC721Metadata { using Address for address; using Strings for uint256; // Token name string private _name; // Token symbol string private _symbol; // Mapping from token ID to owner address mapping(uint256 => address) private _owners; // Mapping owner address to token count mapping(address => uint256) private _balances; // Mapping from token ID to approved address mapping(uint256 => address) private _tokenApprovals; // Mapping from owner to operator approvals mapping(address => mapping(address => bool)) private _operatorApprovals; /** * @dev Initializes the contract by setting a `name` and a `symbol` to the token collection. */ constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } /** * @dev See {IERC165-supportsInterface}. */ function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) { return interfaceId == type(IERC721).interfaceId || interfaceId == type(IERC721Metadata).interfaceId || super.supportsInterface(interfaceId); } function balanceOf(address owner) public view virtual override returns (uint256) { require(owner != address(0), "ERC721: balance query for the zero address"); return _balances[owner]; } function ownerOf(uint256 tokenId) public view virtual override returns (address) { address owner = _owners[tokenId]; require(owner != address(0), "ERC721: owner query for nonexistent token"); return owner; } function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function tokenURI(uint256 tokenId) public view virtual override returns (string memory) { require(_exists(tokenId), "ERC721Metadata: URI query for nonexistent token"); string memory baseURI = _baseURI(); return bytes(baseURI).length > 0 ? string(abi.encodePacked(baseURI, tokenId.toString())) : ""; } function _baseURI() internal view virtual returns (string memory) { return ""; } function approve(address to, uint256 tokenId) public virtual override { address owner = ERC721.ownerOf(tokenId); require(to != owner, "ERC721: approval to current owner"); require( _msgSender() == owner || isApprovedForAll(owner, _msgSender()), "ERC721: approve caller is not owner nor approved for all" ); _approve(to, tokenId); } function getApproved(uint256 tokenId) public view virtual override returns (address) { require(_exists(tokenId), "ERC721: approved query for nonexistent token"); return _tokenApprovals[tokenId]; } function setApprovalForAll(address operator, bool approved) public virtual override { _setApprovalForAll(_msgSender(), operator, approved); } function isApprovedForAll(address owner, address operator) public view virtual override returns (bool) { return _operatorApprovals[owner][operator]; } function transferFrom( address from, address to, uint256 tokenId ) public virtual override { //solhint-disable-next-line max-line-length require(_isApprovedOrOwner(_msgSender(), tokenId), "ERC721: transfer caller is not owner nor approved"); _transfer(from, to, tokenId); } function safeTransferFrom( address from, address to, uint256 tokenId ) public virtual override { safeTransferFrom(from, to, tokenId, ""); } function safeTransferFrom( address from, address to, uint256 tokenId, bytes memory _data ) public virtual override { require(_isApprovedOrOwner(_msgSender(), tokenId), "ERC721: transfer caller is not owner nor approved"); _safeTransfer(from, to, tokenId, _data); } function _safeTransfer( address from, address to, uint256 tokenId, bytes memory _data ) internal virtual { _transfer(from, to, tokenId); require(_checkOnERC721Received(from, to, tokenId, _data), "ERC721: transfer to non ERC721Receiver implementer"); } function _exists(uint256 tokenId) internal view virtual returns (bool) { return _owners[tokenId] != address(0); } function _isApprovedOrOwner(address spender, uint256 tokenId) internal view virtual returns (bool) { require(_exists(tokenId), "ERC721: operator query for nonexistent token"); address owner = ERC721.ownerOf(tokenId); return (spender == owner || getApproved(tokenId) == spender || isApprovedForAll(owner, spender)); } function _safeMint(address to, uint256 tokenId) internal virtual { _safeMint(to, tokenId, ""); } function _safeMint( address to, uint256 tokenId, bytes memory _data ) internal virtual { _mint(to, tokenId); require( _checkOnERC721Received(address(0), to, tokenId, _data), "ERC721: transfer to non ERC721Receiver implementer" ); } function _mint(address to, uint256 tokenId) internal virtual { require(to != address(0), "ERC721: mint to the zero address"); require(!_exists(tokenId), "ERC721: token already minted"); _beforeTokenTransfer(address(0), to, tokenId); _balances[to] += 1; _owners[tokenId] = to; emit Transfer(address(0), to, tokenId); _afterTokenTransfer(address(0), to, tokenId); } function _burn(uint256 tokenId) internal virtual { address owner = ERC721.ownerOf(tokenId); _beforeTokenTransfer(owner, address(0), tokenId); // Clear approvals _approve(address(0), tokenId); _balances[owner] -= 1; delete _owners[tokenId]; emit Transfer(owner, address(0), tokenId); _afterTokenTransfer(owner, address(0), tokenId); } function _transfer( address from, address to, uint256 tokenId ) internal virtual { require(ERC721.ownerOf(tokenId) == from, "ERC721: transfer from incorrect owner"); require(to != address(0), "ERC721: transfer to the zero address"); _beforeTokenTransfer(from, to, tokenId); // Clear approvals from the previous owner _approve(address(0), tokenId); _balances[from] -= 1; _balances[to] += 1; _owners[tokenId] = to; emit Transfer(from, to, tokenId); _afterTokenTransfer(from, to, tokenId); } function _approve(address to, uint256 tokenId) internal virtual { _tokenApprovals[tokenId] = to; emit Approval(ERC721.ownerOf(tokenId), to, tokenId); } function _setApprovalForAll( address owner, address operator, bool approved ) internal virtual { require(owner != operator, "ERC721: approve to caller"); _operatorApprovals[owner][operator] = approved; emit ApprovalForAll(owner, operator, approved); } function _checkOnERC721Received( address from, address to, uint256 tokenId, bytes memory _data ) private returns (bool) { if (to.isContract()) { try IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, _data) returns (bytes4 retval) { return retval == IERC721Receiver.onERC721Received.selector; } catch (bytes memory reason) { if (reason.length == 0) { revert("ERC721: transfer to non ERC721Receiver implementer"); } else { assembly { revert(add(32, reason), mload(reason)) } } } } else { return true; } } function _beforeTokenTransfer( address from, address to, uint256 tokenId ) internal virtual {} function _afterTokenTransfer( address from, address to, uint256 tokenId ) internal virtual {} } pragma solidity >=0.8.12; contract CryptoBroskis is ERC721, Ownable { using Strings for uint256; using Counters for Counters.Counter; Counters.Counter private supply; string public uriPrefix = "https://cryptobroskis.com/cryptobroskis/metadata/"; string public uriSuffix = ".json"; string public hiddenMetadataUri; uint256 public cost = 1 ether; uint256 public maxSupply = 7777; uint256 public maxMintAmountPerTx = 10; bool public paused = true; bool public revealed = false; constructor() ERC721("Crypto Broskis", "CBSKI") { setHiddenMetadataUri("https://cryptobroskis.com/cryptobroskis/img/hiddenImage.jpg"); } modifier mintCompliance(uint256 _mintAmount) { require(_mintAmount > 0 && _mintAmount <= maxMintAmountPerTx, "Invalid mint amount!"); require(supply.current() + _mintAmount <= maxSupply, "Max supply exceeded!"); _; } function totalSupply() public view returns (uint256) { return supply.current(); } function mint(uint256 _mintAmount) public payable mintCompliance(_mintAmount) { require(!paused, "The contract is paused!"); require(msg.value >= cost * _mintAmount, "Insufficient funds!"); _mintLoop(msg.sender, _mintAmount); } function mintForAddress(uint256 _mintAmount, address _receiver) public mintCompliance(_mintAmount) onlyOwner { _mintLoop(_receiver, _mintAmount); } function walletOfOwner(address _owner) public view returns (uint256[] memory) { uint256 ownerTokenCount = balanceOf(_owner); uint256[] memory ownedTokenIds = new uint256[](ownerTokenCount); uint256 currentTokenId = 1; uint256 ownedTokenIndex = 0; while (ownedTokenIndex < ownerTokenCount && currentTokenId <= maxSupply) { address currentTokenOwner = ownerOf(currentTokenId); if (currentTokenOwner == _owner) { ownedTokenIds[ownedTokenIndex] = currentTokenId; ownedTokenIndex++; } currentTokenId++; } return ownedTokenIds; } function tokenURI(uint256 _tokenId) public view virtual override returns (string memory) { require( _exists(_tokenId), "ERC721Metadata: URI query for nonexistent token" ); if (revealed == false) { return hiddenMetadataUri; } string memory currentBaseURI = _baseURI(); return bytes(currentBaseURI).length > 0 ? string(abi.encodePacked(currentBaseURI, _tokenId.toString(), uriSuffix)) : ""; } function setRevealed(bool _state) public onlyOwner { revealed = _state; } function setCost(uint256 _cost) public onlyOwner { cost = _cost; } function setMaxMintAmountPerTx(uint256 _maxMintAmountPerTx) public onlyOwner { maxMintAmountPerTx = _maxMintAmountPerTx; } function setHiddenMetadataUri(string memory _hiddenMetadataUri) public onlyOwner { hiddenMetadataUri = _hiddenMetadataUri; } function setUriPrefix(string memory _uriPrefix) public onlyOwner { uriPrefix = _uriPrefix; } function setUriSuffix(string memory _uriSuffix) public onlyOwner { uriSuffix = _uriSuffix; } function setPaused(bool _state) public onlyOwner { paused = _state; } function withdraw() public onlyOwner { (bool os, ) = payable(owner()).call{value: address(this).balance}(""); require(os); } function _mintLoop(address _receiver, uint256 _mintAmount) internal { for (uint256 i = 0; i < _mintAmount; i++) { supply.increment(); _safeMint(_receiver, supply.current()); } } function _baseURI() internal view virtual override returns (string memory) { return uriPrefix; } }
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cost","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"hiddenMetadataUri","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxMintAmountPerTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_mintAmount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_mintAmount","type":"uint256"},{"internalType":"address","name":"_receiver","type":"address"}],"name":"mintForAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"revealed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_cost","type":"uint256"}],"name":"setCost","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_hiddenMetadataUri","type":"string"}],"name":"setHiddenMetadataUri","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxMintAmountPerTx","type":"uint256"}],"name":"setMaxMintAmountPerTx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_state","type":"bool"}],"name":"setPaused","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_state","type":"bool"}],"name":"setRevealed","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_uriPrefix","type":"string"}],"name":"setUriPrefix","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_uriSuffix","type":"string"}],"name":"setUriSuffix","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uriPrefix","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uriSuffix","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"walletOfOwner","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405260405180606001604052806031815260200162004ad760319139600890816200002e9190620005c9565b506040518060400160405280600581526020017f2e6a736f6e00000000000000000000000000000000000000000000000000000081525060099081620000759190620005c9565b50670de0b6b3a7640000600b55611e61600c55600a600d556001600e60006101000a81548160ff0219169083151502179055506000600e60016101000a81548160ff021916908315150217905550348015620000d057600080fd5b506040518060400160405280600e81526020017f43727970746f2042726f736b69730000000000000000000000000000000000008152506040518060400160405280600581526020017f4342534b4900000000000000000000000000000000000000000000000000000081525081600090816200014e9190620005c9565b508060019081620001609190620005c9565b5050506200018362000177620001b360201b60201c565b620001bb60201b60201c565b620001ad6040518060600160405280603b815260200162004b08603b91396200028160201b60201c565b62000733565b600033905090565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b62000291620001b360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620002b76200032560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000310576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003079062000711565b60405180910390fd5b80600a9081620003219190620005c9565b5050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620003d157607f821691505b602082108103620003e757620003e662000389565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620004517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000412565b6200045d868362000412565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620004aa620004a46200049e8462000475565b6200047f565b62000475565b9050919050565b6000819050919050565b620004c68362000489565b620004de620004d582620004b1565b8484546200041f565b825550505050565b600090565b620004f5620004e6565b62000502818484620004bb565b505050565b5b818110156200052a576200051e600082620004eb565b60018101905062000508565b5050565b601f82111562000579576200054381620003ed565b6200054e8462000402565b810160208510156200055e578190505b620005766200056d8562000402565b83018262000507565b50505b505050565b600082821c905092915050565b60006200059e600019846008026200057e565b1980831691505092915050565b6000620005b983836200058b565b9150826002028217905092915050565b620005d4826200034f565b67ffffffffffffffff811115620005f057620005ef6200035a565b5b620005fc8254620003b8565b620006098282856200052e565b600060209050601f8311600181146200064157600084156200062c578287015190505b620006388582620005ab565b865550620006a8565b601f1984166200065186620003ed565b60005b828110156200067b5784890151825560018201915060208501945060208101905062000654565b868310156200069b578489015162000697601f8916826200058b565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000620006f9602083620006b0565b91506200070682620006c1565b602082019050919050565b600060208201905081810360008301526200072c81620006ea565b9050919050565b61439480620007436000396000f3fe60806040526004361061020f5760003560e01c80636352211e11610118578063a45ba8e7116100a0578063d5abeb011161006f578063d5abeb0114610768578063e0a8085314610793578063e985e9c5146107bc578063efbd73f4146107f9578063f2fde38b146108225761020f565b8063a45ba8e7146106ae578063b071401b146106d9578063b88d4fde14610702578063c87b56dd1461072b5761020f565b80638da5cb5b116100e75780638da5cb5b146105e857806394354fd01461061357806395d89b411461063e578063a0712d6814610669578063a22cb465146106855761020f565b80636352211e1461052e57806370a082311461056b578063715018a6146105a85780637ec4a659146105bf5761020f565b80633ccfd60b1161019b5780634fdd43cb1161016a5780634fdd43cb1461045957806351830227146104825780635503a0e8146104ad5780635c975abb146104d857806362b99ad4146105035761020f565b80633ccfd60b146103b357806342842e0e146103ca578063438b6300146103f357806344a0d68a146104305761020f565b806313faede6116101e257806313faede6146102e257806316ba10e01461030d57806316c38b3c1461033657806318160ddd1461035f57806323b872dd1461038a5761020f565b806301ffc9a71461021457806306fdde0314610251578063081812fc1461027c578063095ea7b3146102b9575b600080fd5b34801561022057600080fd5b5061023b60048036038101906102369190612a86565b61084b565b6040516102489190612ace565b60405180910390f35b34801561025d57600080fd5b5061026661092d565b6040516102739190612b82565b60405180910390f35b34801561028857600080fd5b506102a3600480360381019061029e9190612bda565b6109bf565b6040516102b09190612c48565b60405180910390f35b3480156102c557600080fd5b506102e060048036038101906102db9190612c8f565b610a44565b005b3480156102ee57600080fd5b506102f7610b5b565b6040516103049190612cde565b60405180910390f35b34801561031957600080fd5b50610334600480360381019061032f9190612e2e565b610b61565b005b34801561034257600080fd5b5061035d60048036038101906103589190612ea3565b610bf0565b005b34801561036b57600080fd5b50610374610c89565b6040516103819190612cde565b60405180910390f35b34801561039657600080fd5b506103b160048036038101906103ac9190612ed0565b610c9a565b005b3480156103bf57600080fd5b506103c8610cfa565b005b3480156103d657600080fd5b506103f160048036038101906103ec9190612ed0565b610df6565b005b3480156103ff57600080fd5b5061041a60048036038101906104159190612f23565b610e16565b604051610427919061300e565b60405180910390f35b34801561043c57600080fd5b5061045760048036038101906104529190612bda565b610f20565b005b34801561046557600080fd5b50610480600480360381019061047b9190612e2e565b610fa6565b005b34801561048e57600080fd5b50610497611035565b6040516104a49190612ace565b60405180910390f35b3480156104b957600080fd5b506104c2611048565b6040516104cf9190612b82565b60405180910390f35b3480156104e457600080fd5b506104ed6110d6565b6040516104fa9190612ace565b60405180910390f35b34801561050f57600080fd5b506105186110e9565b6040516105259190612b82565b60405180910390f35b34801561053a57600080fd5b5061055560048036038101906105509190612bda565b611177565b6040516105629190612c48565b60405180910390f35b34801561057757600080fd5b50610592600480360381019061058d9190612f23565b611228565b60405161059f9190612cde565b60405180910390f35b3480156105b457600080fd5b506105bd6112df565b005b3480156105cb57600080fd5b506105e660048036038101906105e19190612e2e565b611367565b005b3480156105f457600080fd5b506105fd6113f6565b60405161060a9190612c48565b60405180910390f35b34801561061f57600080fd5b50610628611420565b6040516106359190612cde565b60405180910390f35b34801561064a57600080fd5b50610653611426565b6040516106609190612b82565b60405180910390f35b610683600480360381019061067e9190612bda565b6114b8565b005b34801561069157600080fd5b506106ac60048036038101906106a79190613030565b611611565b005b3480156106ba57600080fd5b506106c3611627565b6040516106d09190612b82565b60405180910390f35b3480156106e557600080fd5b5061070060048036038101906106fb9190612bda565b6116b5565b005b34801561070e57600080fd5b5061072960048036038101906107249190613111565b61173b565b005b34801561073757600080fd5b50610752600480360381019061074d9190612bda565b61179d565b60405161075f9190612b82565b60405180910390f35b34801561077457600080fd5b5061077d6118f5565b60405161078a9190612cde565b60405180910390f35b34801561079f57600080fd5b506107ba60048036038101906107b59190612ea3565b6118fb565b005b3480156107c857600080fd5b506107e360048036038101906107de9190613194565b611994565b6040516107f09190612ace565b60405180910390f35b34801561080557600080fd5b50610820600480360381019061081b91906131d4565b611a28565b005b34801561082e57600080fd5b5061084960048036038101906108449190612f23565b611b5e565b005b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061091657507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610926575061092582611c55565b5b9050919050565b60606000805461093c90613243565b80601f016020809104026020016040519081016040528092919081815260200182805461096890613243565b80156109b55780601f1061098a576101008083540402835291602001916109b5565b820191906000526020600020905b81548152906001019060200180831161099857829003601f168201915b5050505050905090565b60006109ca82611cbf565b610a09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a00906132e6565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000610a4f82611177565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610abf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab690613378565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610ade611d2b565b73ffffffffffffffffffffffffffffffffffffffff161480610b0d5750610b0c81610b07611d2b565b611994565b5b610b4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b439061340a565b60405180910390fd5b610b568383611d33565b505050565b600b5481565b610b69611d2b565b73ffffffffffffffffffffffffffffffffffffffff16610b876113f6565b73ffffffffffffffffffffffffffffffffffffffff1614610bdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd490613476565b60405180910390fd5b8060099081610bec9190613642565b5050565b610bf8611d2b565b73ffffffffffffffffffffffffffffffffffffffff16610c166113f6565b73ffffffffffffffffffffffffffffffffffffffff1614610c6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6390613476565b60405180910390fd5b80600e60006101000a81548160ff02191690831515021790555050565b6000610c956007611dec565b905090565b610cab610ca5611d2b565b82611dfa565b610cea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce190613786565b60405180910390fd5b610cf5838383611ed8565b505050565b610d02611d2b565b73ffffffffffffffffffffffffffffffffffffffff16610d206113f6565b73ffffffffffffffffffffffffffffffffffffffff1614610d76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6d90613476565b60405180910390fd5b6000610d806113f6565b73ffffffffffffffffffffffffffffffffffffffff1647604051610da3906137d7565b60006040518083038185875af1925050503d8060008114610de0576040519150601f19603f3d011682016040523d82523d6000602084013e610de5565b606091505b5050905080610df357600080fd5b50565b610e118383836040518060200160405280600081525061173b565b505050565b60606000610e2383611228565b905060008167ffffffffffffffff811115610e4157610e40612d03565b5b604051908082528060200260200182016040528015610e6f5781602001602082028036833780820191505090505b50905060006001905060005b8381108015610e8c5750600c548211155b15610f14576000610e9c83611177565b90508673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610f005782848381518110610ee557610ee46137ec565b5b6020026020010181815250508180610efc9061384a565b9250505b8280610f0b9061384a565b93505050610e7b565b82945050505050919050565b610f28611d2b565b73ffffffffffffffffffffffffffffffffffffffff16610f466113f6565b73ffffffffffffffffffffffffffffffffffffffff1614610f9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9390613476565b60405180910390fd5b80600b8190555050565b610fae611d2b565b73ffffffffffffffffffffffffffffffffffffffff16610fcc6113f6565b73ffffffffffffffffffffffffffffffffffffffff1614611022576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101990613476565b60405180910390fd5b80600a90816110319190613642565b5050565b600e60019054906101000a900460ff1681565b6009805461105590613243565b80601f016020809104026020016040519081016040528092919081815260200182805461108190613243565b80156110ce5780601f106110a3576101008083540402835291602001916110ce565b820191906000526020600020905b8154815290600101906020018083116110b157829003601f168201915b505050505081565b600e60009054906101000a900460ff1681565b600880546110f690613243565b80601f016020809104026020016040519081016040528092919081815260200182805461112290613243565b801561116f5780601f106111445761010080835404028352916020019161116f565b820191906000526020600020905b81548152906001019060200180831161115257829003601f168201915b505050505081565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361121f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121690613904565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611298576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128f90613996565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6112e7611d2b565b73ffffffffffffffffffffffffffffffffffffffff166113056113f6565b73ffffffffffffffffffffffffffffffffffffffff161461135b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135290613476565b60405180910390fd5b611365600061213e565b565b61136f611d2b565b73ffffffffffffffffffffffffffffffffffffffff1661138d6113f6565b73ffffffffffffffffffffffffffffffffffffffff16146113e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113da90613476565b60405180910390fd5b80600890816113f29190613642565b5050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600d5481565b60606001805461143590613243565b80601f016020809104026020016040519081016040528092919081815260200182805461146190613243565b80156114ae5780601f10611483576101008083540402835291602001916114ae565b820191906000526020600020905b81548152906001019060200180831161149157829003601f168201915b5050505050905090565b806000811180156114cb5750600d548111155b61150a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150190613a02565b60405180910390fd5b600c54816115186007611dec565b6115229190613a22565b1115611563576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155a90613ac4565b60405180910390fd5b600e60009054906101000a900460ff16156115b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115aa90613b30565b60405180910390fd5b81600b546115c19190613b50565b341015611603576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115fa90613bf6565b60405180910390fd5b61160d3383612204565b5050565b61162361161c611d2b565b8383612244565b5050565b600a805461163490613243565b80601f016020809104026020016040519081016040528092919081815260200182805461166090613243565b80156116ad5780601f10611682576101008083540402835291602001916116ad565b820191906000526020600020905b81548152906001019060200180831161169057829003601f168201915b505050505081565b6116bd611d2b565b73ffffffffffffffffffffffffffffffffffffffff166116db6113f6565b73ffffffffffffffffffffffffffffffffffffffff1614611731576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172890613476565b60405180910390fd5b80600d8190555050565b61174c611746611d2b565b83611dfa565b61178b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178290613786565b60405180910390fd5b611797848484846123b0565b50505050565b60606117a882611cbf565b6117e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117de90613c88565b60405180910390fd5b60001515600e60019054906101000a900460ff1615150361189457600a805461180f90613243565b80601f016020809104026020016040519081016040528092919081815260200182805461183b90613243565b80156118885780601f1061185d57610100808354040283529160200191611888565b820191906000526020600020905b81548152906001019060200180831161186b57829003601f168201915b505050505090506118f0565b600061189e61240c565b905060008151116118be57604051806020016040528060008152506118ec565b806118c88461249e565b60096040516020016118dc93929190613d67565b6040516020818303038152906040525b9150505b919050565b600c5481565b611903611d2b565b73ffffffffffffffffffffffffffffffffffffffff166119216113f6565b73ffffffffffffffffffffffffffffffffffffffff1614611977576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196e90613476565b60405180910390fd5b80600e60016101000a81548160ff02191690831515021790555050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b81600081118015611a3b5750600d548111155b611a7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7190613a02565b60405180910390fd5b600c5481611a886007611dec565b611a929190613a22565b1115611ad3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aca90613ac4565b60405180910390fd5b611adb611d2b565b73ffffffffffffffffffffffffffffffffffffffff16611af96113f6565b73ffffffffffffffffffffffffffffffffffffffff1614611b4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4690613476565b60405180910390fd5b611b598284612204565b505050565b611b66611d2b565b73ffffffffffffffffffffffffffffffffffffffff16611b846113f6565b73ffffffffffffffffffffffffffffffffffffffff1614611bda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd190613476565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611c49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4090613e0a565b60405180910390fd5b611c528161213e565b50565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16611da683611177565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600081600001549050919050565b6000611e0582611cbf565b611e44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3b90613e9c565b60405180910390fd5b6000611e4f83611177565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611ebe57508373ffffffffffffffffffffffffffffffffffffffff16611ea6846109bf565b73ffffffffffffffffffffffffffffffffffffffff16145b80611ecf5750611ece8185611994565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff16611ef882611177565b73ffffffffffffffffffffffffffffffffffffffff1614611f4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4590613f2e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611fbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb490613fc0565b60405180910390fd5b611fc88383836125fe565b611fd3600082611d33565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546120239190613fe0565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461207a9190613a22565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4612139838383612603565b505050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60005b8181101561223f576122196007612608565b61222c836122276007611dec565b61261e565b80806122379061384a565b915050612207565b505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036122b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a990614060565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516123a39190612ace565b60405180910390a3505050565b6123bb848484611ed8565b6123c78484848461263c565b612406576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123fd906140f2565b60405180910390fd5b50505050565b60606008805461241b90613243565b80601f016020809104026020016040519081016040528092919081815260200182805461244790613243565b80156124945780601f1061246957610100808354040283529160200191612494565b820191906000526020600020905b81548152906001019060200180831161247757829003601f168201915b5050505050905090565b6060600082036124e5576040518060400160405280600181526020017f300000000000000000000000000000000000000000000000000000000000000081525090506125f9565b600082905060005b600082146125175780806125009061384a565b915050600a826125109190614141565b91506124ed565b60008167ffffffffffffffff81111561253357612532612d03565b5b6040519080825280601f01601f1916602001820160405280156125655781602001600182028036833780820191505090505b5090505b600085146125f25760018261257e9190613fe0565b9150600a8561258d9190614172565b60306125999190613a22565b60f81b8183815181106125af576125ae6137ec565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856125eb9190614141565b9450612569565b8093505050505b919050565b505050565b505050565b6001816000016000828254019250508190555050565b6126388282604051806020016040528060008152506127c3565b5050565b600061265d8473ffffffffffffffffffffffffffffffffffffffff1661281e565b156127b6578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02612686611d2b565b8786866040518563ffffffff1660e01b81526004016126a894939291906141f8565b6020604051808303816000875af19250505080156126e457506040513d601f19601f820116820180604052508101906126e19190614259565b60015b612766573d8060008114612714576040519150601f19603f3d011682016040523d82523d6000602084013e612719565b606091505b50600081510361275e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612755906140f2565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150506127bb565b600190505b949350505050565b6127cd8383612841565b6127da600084848461263c565b612819576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612810906140f2565b60405180910390fd5b505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036128b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128a7906142d2565b60405180910390fd5b6128b981611cbf565b156128f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128f09061433e565b60405180910390fd5b612905600083836125fe565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546129559190613a22565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4612a1660008383612603565b5050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612a6381612a2e565b8114612a6e57600080fd5b50565b600081359050612a8081612a5a565b92915050565b600060208284031215612a9c57612a9b612a24565b5b6000612aaa84828501612a71565b91505092915050565b60008115159050919050565b612ac881612ab3565b82525050565b6000602082019050612ae36000830184612abf565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612b23578082015181840152602081019050612b08565b83811115612b32576000848401525b50505050565b6000601f19601f8301169050919050565b6000612b5482612ae9565b612b5e8185612af4565b9350612b6e818560208601612b05565b612b7781612b38565b840191505092915050565b60006020820190508181036000830152612b9c8184612b49565b905092915050565b6000819050919050565b612bb781612ba4565b8114612bc257600080fd5b50565b600081359050612bd481612bae565b92915050565b600060208284031215612bf057612bef612a24565b5b6000612bfe84828501612bc5565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612c3282612c07565b9050919050565b612c4281612c27565b82525050565b6000602082019050612c5d6000830184612c39565b92915050565b612c6c81612c27565b8114612c7757600080fd5b50565b600081359050612c8981612c63565b92915050565b60008060408385031215612ca657612ca5612a24565b5b6000612cb485828601612c7a565b9250506020612cc585828601612bc5565b9150509250929050565b612cd881612ba4565b82525050565b6000602082019050612cf36000830184612ccf565b92915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612d3b82612b38565b810181811067ffffffffffffffff82111715612d5a57612d59612d03565b5b80604052505050565b6000612d6d612a1a565b9050612d798282612d32565b919050565b600067ffffffffffffffff821115612d9957612d98612d03565b5b612da282612b38565b9050602081019050919050565b82818337600083830152505050565b6000612dd1612dcc84612d7e565b612d63565b905082815260208101848484011115612ded57612dec612cfe565b5b612df8848285612daf565b509392505050565b600082601f830112612e1557612e14612cf9565b5b8135612e25848260208601612dbe565b91505092915050565b600060208284031215612e4457612e43612a24565b5b600082013567ffffffffffffffff811115612e6257612e61612a29565b5b612e6e84828501612e00565b91505092915050565b612e8081612ab3565b8114612e8b57600080fd5b50565b600081359050612e9d81612e77565b92915050565b600060208284031215612eb957612eb8612a24565b5b6000612ec784828501612e8e565b91505092915050565b600080600060608486031215612ee957612ee8612a24565b5b6000612ef786828701612c7a565b9350506020612f0886828701612c7a565b9250506040612f1986828701612bc5565b9150509250925092565b600060208284031215612f3957612f38612a24565b5b6000612f4784828501612c7a565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612f8581612ba4565b82525050565b6000612f978383612f7c565b60208301905092915050565b6000602082019050919050565b6000612fbb82612f50565b612fc58185612f5b565b9350612fd083612f6c565b8060005b83811015613001578151612fe88882612f8b565b9750612ff383612fa3565b925050600181019050612fd4565b5085935050505092915050565b600060208201905081810360008301526130288184612fb0565b905092915050565b6000806040838503121561304757613046612a24565b5b600061305585828601612c7a565b925050602061306685828601612e8e565b9150509250929050565b600067ffffffffffffffff82111561308b5761308a612d03565b5b61309482612b38565b9050602081019050919050565b60006130b46130af84613070565b612d63565b9050828152602081018484840111156130d0576130cf612cfe565b5b6130db848285612daf565b509392505050565b600082601f8301126130f8576130f7612cf9565b5b81356131088482602086016130a1565b91505092915050565b6000806000806080858703121561312b5761312a612a24565b5b600061313987828801612c7a565b945050602061314a87828801612c7a565b935050604061315b87828801612bc5565b925050606085013567ffffffffffffffff81111561317c5761317b612a29565b5b613188878288016130e3565b91505092959194509250565b600080604083850312156131ab576131aa612a24565b5b60006131b985828601612c7a565b92505060206131ca85828601612c7a565b9150509250929050565b600080604083850312156131eb576131ea612a24565b5b60006131f985828601612bc5565b925050602061320a85828601612c7a565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061325b57607f821691505b60208210810361326e5761326d613214565b5b50919050565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b60006132d0602c83612af4565b91506132db82613274565b604082019050919050565b600060208201905081810360008301526132ff816132c3565b9050919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b6000613362602183612af4565b915061336d82613306565b604082019050919050565b6000602082019050818103600083015261339181613355565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b60006133f4603883612af4565b91506133ff82613398565b604082019050919050565b60006020820190508181036000830152613423816133e7565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613460602083612af4565b915061346b8261342a565b602082019050919050565b6000602082019050818103600083015261348f81613453565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026134f87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826134bb565b61350286836134bb565b95508019841693508086168417925050509392505050565b6000819050919050565b600061353f61353a61353584612ba4565b61351a565b612ba4565b9050919050565b6000819050919050565b61355983613524565b61356d61356582613546565b8484546134c8565b825550505050565b600090565b613582613575565b61358d818484613550565b505050565b5b818110156135b1576135a660008261357a565b600181019050613593565b5050565b601f8211156135f6576135c781613496565b6135d0846134ab565b810160208510156135df578190505b6135f36135eb856134ab565b830182613592565b50505b505050565b600082821c905092915050565b6000613619600019846008026135fb565b1980831691505092915050565b60006136328383613608565b9150826002028217905092915050565b61364b82612ae9565b67ffffffffffffffff81111561366457613663612d03565b5b61366e8254613243565b6136798282856135b5565b600060209050601f8311600181146136ac576000841561369a578287015190505b6136a48582613626565b86555061370c565b601f1984166136ba86613496565b60005b828110156136e2578489015182556001820191506020850194506020810190506136bd565b868310156136ff57848901516136fb601f891682613608565b8355505b6001600288020188555050505b505050505050565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b6000613770603183612af4565b915061377b82613714565b604082019050919050565b6000602082019050818103600083015261379f81613763565b9050919050565b600081905092915050565b50565b60006137c16000836137a6565b91506137cc826137b1565b600082019050919050565b60006137e2826137b4565b9150819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061385582612ba4565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036138875761388661381b565b5b600182019050919050565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b60006138ee602983612af4565b91506138f982613892565b604082019050919050565b6000602082019050818103600083015261391d816138e1565b9050919050565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b6000613980602a83612af4565b915061398b82613924565b604082019050919050565b600060208201905081810360008301526139af81613973565b9050919050565b7f496e76616c6964206d696e7420616d6f756e7421000000000000000000000000600082015250565b60006139ec601483612af4565b91506139f7826139b6565b602082019050919050565b60006020820190508181036000830152613a1b816139df565b9050919050565b6000613a2d82612ba4565b9150613a3883612ba4565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613a6d57613a6c61381b565b5b828201905092915050565b7f4d617820737570706c7920657863656564656421000000000000000000000000600082015250565b6000613aae601483612af4565b9150613ab982613a78565b602082019050919050565b60006020820190508181036000830152613add81613aa1565b9050919050565b7f54686520636f6e74726163742069732070617573656421000000000000000000600082015250565b6000613b1a601783612af4565b9150613b2582613ae4565b602082019050919050565b60006020820190508181036000830152613b4981613b0d565b9050919050565b6000613b5b82612ba4565b9150613b6683612ba4565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613b9f57613b9e61381b565b5b828202905092915050565b7f496e73756666696369656e742066756e64732100000000000000000000000000600082015250565b6000613be0601383612af4565b9150613beb82613baa565b602082019050919050565b60006020820190508181036000830152613c0f81613bd3565b9050919050565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b6000613c72602f83612af4565b9150613c7d82613c16565b604082019050919050565b60006020820190508181036000830152613ca181613c65565b9050919050565b600081905092915050565b6000613cbe82612ae9565b613cc88185613ca8565b9350613cd8818560208601612b05565b80840191505092915050565b60008154613cf181613243565b613cfb8186613ca8565b94506001821660008114613d165760018114613d2b57613d5e565b60ff1983168652811515820286019350613d5e565b613d3485613496565b60005b83811015613d5657815481890152600182019150602081019050613d37565b838801955050505b50505092915050565b6000613d738286613cb3565b9150613d7f8285613cb3565b9150613d8b8284613ce4565b9150819050949350505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613df4602683612af4565b9150613dff82613d98565b604082019050919050565b60006020820190508181036000830152613e2381613de7565b9050919050565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b6000613e86602c83612af4565b9150613e9182613e2a565b604082019050919050565b60006020820190508181036000830152613eb581613e79565b9050919050565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b6000613f18602583612af4565b9150613f2382613ebc565b604082019050919050565b60006020820190508181036000830152613f4781613f0b565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613faa602483612af4565b9150613fb582613f4e565b604082019050919050565b60006020820190508181036000830152613fd981613f9d565b9050919050565b6000613feb82612ba4565b9150613ff683612ba4565b9250828210156140095761400861381b565b5b828203905092915050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b600061404a601983612af4565b915061405582614014565b602082019050919050565b600060208201905081810360008301526140798161403d565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b60006140dc603283612af4565b91506140e782614080565b604082019050919050565b6000602082019050818103600083015261410b816140cf565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061414c82612ba4565b915061415783612ba4565b92508261416757614166614112565b5b828204905092915050565b600061417d82612ba4565b915061418883612ba4565b92508261419857614197614112565b5b828206905092915050565b600081519050919050565b600082825260208201905092915050565b60006141ca826141a3565b6141d481856141ae565b93506141e4818560208601612b05565b6141ed81612b38565b840191505092915050565b600060808201905061420d6000830187612c39565b61421a6020830186612c39565b6142276040830185612ccf565b818103606083015261423981846141bf565b905095945050505050565b60008151905061425381612a5a565b92915050565b60006020828403121561426f5761426e612a24565b5b600061427d84828501614244565b91505092915050565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b60006142bc602083612af4565b91506142c782614286565b602082019050919050565b600060208201905081810360008301526142eb816142af565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b6000614328601c83612af4565b9150614333826142f2565b602082019050919050565b600060208201905081810360008301526143578161431b565b905091905056fea26469706673582212201d27ce642872ff4fa48b13094209ce47c4e14693615aca8e292e3bbc78d2fab164736f6c634300080f003368747470733a2f2f63727970746f62726f736b69732e636f6d2f63727970746f62726f736b69732f6d657461646174612f68747470733a2f2f63727970746f62726f736b69732e636f6d2f63727970746f62726f736b69732f696d672f68696464656e496d6167652e6a7067
Deployed ByteCode Sourcemap
17714:3735:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10039:305;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10815:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11898:221;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11479:411;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18031:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20800:100;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20906:77;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18601:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12462:339;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20989:137;;;;;;;;;;;;;:::i;:::-;;12809:185;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19112:635;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20340:74;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20556:132;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18176:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17953:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18146:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17871:77;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10568:239;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10352:208;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2970:103;;;;;;;;;;;;;:::i;:::-;;20694:100;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2749:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18101:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10923:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18696:247;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12127:155;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17991:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20420:130;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13002:328;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19753:494;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18065:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20253:81;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12290:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18951:155;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3079:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10039:305;10141:4;10193:25;10178:40;;;:11;:40;;;;:105;;;;10250:33;10235:48;;;:11;:48;;;;10178:105;:158;;;;10300:36;10324:11;10300:23;:36::i;:::-;10178:158;10158:178;;10039:305;;;:::o;10815:100::-;10869:13;10902:5;10895:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10815:100;:::o;11898:221::-;11974:7;12002:16;12010:7;12002;:16::i;:::-;11994:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;12087:15;:24;12103:7;12087:24;;;;;;;;;;;;;;;;;;;;;12080:31;;11898:221;;;:::o;11479:411::-;11560:13;11576:23;11591:7;11576:14;:23::i;:::-;11560:39;;11624:5;11618:11;;:2;:11;;;11610:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;11718:5;11702:21;;:12;:10;:12::i;:::-;:21;;;:62;;;;11727:37;11744:5;11751:12;:10;:12::i;:::-;11727:16;:37::i;:::-;11702:62;11680:168;;;;;;;;;;;;:::i;:::-;;;;;;;;;11861:21;11870:2;11874:7;11861:8;:21::i;:::-;11549:341;11479:411;;:::o;18031:29::-;;;;:::o;20800:100::-;2895:12;:10;:12::i;:::-;2884:23;;:7;:5;:7::i;:::-;:23;;;2876:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20884:10:::1;20872:9;:22;;;;;;:::i;:::-;;20800:100:::0;:::o;20906:77::-;2895:12;:10;:12::i;:::-;2884:23;;:7;:5;:7::i;:::-;:23;;;2876:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20971:6:::1;20962;;:15;;;;;;;;;;;;;;;;;;20906:77:::0;:::o;18601:89::-;18645:7;18668:16;:6;:14;:16::i;:::-;18661:23;;18601:89;:::o;12462:339::-;12657:41;12676:12;:10;:12::i;:::-;12690:7;12657:18;:41::i;:::-;12649:103;;;;;;;;;;;;:::i;:::-;;;;;;;;;12765:28;12775:4;12781:2;12785:7;12765:9;:28::i;:::-;12462:339;;;:::o;20989:137::-;2895:12;:10;:12::i;:::-;2884:23;;:7;:5;:7::i;:::-;:23;;;2876:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21034:7:::1;21055;:5;:7::i;:::-;21047:21;;21076;21047:55;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21033:69;;;21117:2;21109:11;;;::::0;::::1;;21026:100;20989:137::o:0;12809:185::-;12947:39;12964:4;12970:2;12974:7;12947:39;;;;;;;;;;;;:16;:39::i;:::-;12809:185;;;:::o;19112:635::-;19187:16;19215:23;19241:17;19251:6;19241:9;:17::i;:::-;19215:43;;19265:30;19312:15;19298:30;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19265:63;;19335:22;19360:1;19335:26;;19368:23;19404:309;19429:15;19411;:33;:64;;;;;19466:9;;19448:14;:27;;19411:64;19404:309;;;19486:25;19514:23;19522:14;19514:7;:23::i;:::-;19486:51;;19573:6;19552:27;;:17;:27;;;19548:131;;19625:14;19592:13;19606:15;19592:30;;;;;;;;:::i;:::-;;;;;;;:47;;;;;19652:17;;;;;:::i;:::-;;;;19548:131;19689:16;;;;;:::i;:::-;;;;19477:236;19404:309;;;19728:13;19721:20;;;;;;19112:635;;;:::o;20340:74::-;2895:12;:10;:12::i;:::-;2884:23;;:7;:5;:7::i;:::-;:23;;;2876:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20403:5:::1;20396:4;:12;;;;20340:74:::0;:::o;20556:132::-;2895:12;:10;:12::i;:::-;2884:23;;:7;:5;:7::i;:::-;:23;;;2876:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20664:18:::1;20644:17;:38;;;;;;:::i;:::-;;20556:132:::0;:::o;18176:28::-;;;;;;;;;;;;;:::o;17953:33::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;18146:25::-;;;;;;;;;;;;;:::o;17871:77::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;10568:239::-;10640:7;10660:13;10676:7;:16;10684:7;10676:16;;;;;;;;;;;;;;;;;;;;;10660:32;;10728:1;10711:19;;:5;:19;;;10703:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;10794:5;10787:12;;;10568:239;;;:::o;10352:208::-;10424:7;10469:1;10452:19;;:5;:19;;;10444:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;10536:9;:16;10546:5;10536:16;;;;;;;;;;;;;;;;10529:23;;10352:208;;;:::o;2970:103::-;2895:12;:10;:12::i;:::-;2884:23;;:7;:5;:7::i;:::-;:23;;;2876:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3035:30:::1;3062:1;3035:18;:30::i;:::-;2970:103::o:0;20694:100::-;2895:12;:10;:12::i;:::-;2884:23;;:7;:5;:7::i;:::-;:23;;;2876:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20778:10:::1;20766:9;:22;;;;;;:::i;:::-;;20694:100:::0;:::o;2749:87::-;2795:7;2822:6;;;;;;;;;;;2815:13;;2749:87;:::o;18101:38::-;;;;:::o;10923:104::-;10979:13;11012:7;11005:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10923:104;:::o;18696:247::-;18761:11;18435:1;18421:11;:15;:52;;;;;18455:18;;18440:11;:33;;18421:52;18413:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;18547:9;;18532:11;18513:16;:6;:14;:16::i;:::-;:30;;;;:::i;:::-;:43;;18505:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;18790:6:::1;;;;;;;;;;;18789:7;18781:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;18859:11;18852:4;;:18;;;;:::i;:::-;18839:9;:31;;18831:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;18903:34;18913:10;18925:11;18903:9;:34::i;:::-;18696:247:::0;;:::o;12127:155::-;12222:52;12241:12;:10;:12::i;:::-;12255:8;12265;12222:18;:52::i;:::-;12127:155;;:::o;17991:31::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;20420:130::-;2895:12;:10;:12::i;:::-;2884:23;;:7;:5;:7::i;:::-;:23;;;2876:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20525:19:::1;20504:18;:40;;;;20420:130:::0;:::o;13002:328::-;13177:41;13196:12;:10;:12::i;:::-;13210:7;13177:18;:41::i;:::-;13169:103;;;;;;;;;;;;:::i;:::-;;;;;;;;;13283:39;13297:4;13303:2;13307:7;13316:5;13283:13;:39::i;:::-;13002:328;;;;:::o;19753:494::-;19852:13;19893:17;19901:8;19893:7;:17::i;:::-;19877:98;;;;;;;;;;;;:::i;:::-;;;;;;;;;20000:5;19988:17;;:8;;;;;;;;;;;:17;;;19984:64;;20023:17;20016:24;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19984:64;20056:28;20087:10;:8;:10::i;:::-;20056:41;;20142:1;20117:14;20111:28;:32;:130;;;;;;;;;;;;;;;;;20179:14;20195:19;:8;:17;:19::i;:::-;20216:9;20162:64;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;20111:130;20104:137;;;19753:494;;;;:::o;18065:31::-;;;;:::o;20253:81::-;2895:12;:10;:12::i;:::-;2884:23;;:7;:5;:7::i;:::-;:23;;;2876:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20322:6:::1;20311:8;;:17;;;;;;;;;;;;;;;;;;20253:81:::0;:::o;12290:164::-;12387:4;12411:18;:25;12430:5;12411:25;;;;;;;;;;;;;;;:35;12437:8;12411:35;;;;;;;;;;;;;;;;;;;;;;;;;12404:42;;12290:164;;;;:::o;18951:155::-;19037:11;18435:1;18421:11;:15;:52;;;;;18455:18;;18440:11;:33;;18421:52;18413:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;18547:9;;18532:11;18513:16;:6;:14;:16::i;:::-;:30;;;;:::i;:::-;:43;;18505:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;2895:12:::1;:10;:12::i;:::-;2884:23;;:7;:5;:7::i;:::-;:23;;;2876:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19067:33:::2;19077:9;19088:11;19067:9;:33::i;:::-;18951:155:::0;;;:::o;3079:201::-;2895:12;:10;:12::i;:::-;2884:23;;:7;:5;:7::i;:::-;:23;;;2876:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3188:1:::1;3168:22;;:8;:22;;::::0;3160:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3244:28;3263:8;3244:18;:28::i;:::-;3079:201:::0;:::o;7384:157::-;7469:4;7508:25;7493:40;;;:11;:40;;;;7486:47;;7384:157;;;:::o;13661:127::-;13726:4;13778:1;13750:30;;:7;:16;13758:7;13750:16;;;;;;;;;;;;;;;;;;;;;:30;;;;13743:37;;13661:127;;;:::o;2272:98::-;2325:7;2352:10;2345:17;;2272:98;:::o;16107:174::-;16209:2;16182:15;:24;16198:7;16182:24;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;16265:7;16261:2;16227:46;;16236:23;16251:7;16236:14;:23::i;:::-;16227:46;;;;;;;;;;;;16107:174;;:::o;156:114::-;221:7;248;:14;;;241:21;;156:114;;;:::o;13796:348::-;13889:4;13914:16;13922:7;13914;:16::i;:::-;13906:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;13990:13;14006:23;14021:7;14006:14;:23::i;:::-;13990:39;;14059:5;14048:16;;:7;:16;;;:51;;;;14092:7;14068:31;;:20;14080:7;14068:11;:20::i;:::-;:31;;;14048:51;:87;;;;14103:32;14120:5;14127:7;14103:16;:32::i;:::-;14048:87;14040:96;;;13796:348;;;;:::o;15474:625::-;15633:4;15606:31;;:23;15621:7;15606:14;:23::i;:::-;:31;;;15598:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;15712:1;15698:16;;:2;:16;;;15690:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;15768:39;15789:4;15795:2;15799:7;15768:20;:39::i;:::-;15872:29;15889:1;15893:7;15872:8;:29::i;:::-;15933:1;15914:9;:15;15924:4;15914:15;;;;;;;;;;;;;;;;:20;;;;;;;:::i;:::-;;;;;;;;15962:1;15945:9;:13;15955:2;15945:13;;;;;;;;;;;;;;;;:18;;;;;;;:::i;:::-;;;;;;;;15993:2;15974:7;:16;15982:7;15974:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;16032:7;16028:2;16013:27;;16022:4;16013:27;;;;;;;;;;;;16053:38;16073:4;16079:2;16083:7;16053:19;:38::i;:::-;15474:625;;;:::o;3286:191::-;3360:16;3379:6;;;;;;;;;;;3360:25;;3405:8;3396:6;;:17;;;;;;;;;;;;;;;;;;3460:8;3429:40;;3450:8;3429:40;;;;;;;;;;;;3349:128;3286:191;:::o;21132:204::-;21212:9;21207:124;21231:11;21227:1;:15;21207:124;;;21258:18;:6;:16;:18::i;:::-;21285:38;21295:9;21306:16;:6;:14;:16::i;:::-;21285:9;:38::i;:::-;21244:3;;;;;:::i;:::-;;;;21207:124;;;;21132:204;;:::o;16289:315::-;16444:8;16435:17;;:5;:17;;;16427:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;16531:8;16493:18;:25;16512:5;16493:25;;;;;;;;;;;;;;;:35;16519:8;16493:35;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;16577:8;16555:41;;16570:5;16555:41;;;16587:8;16555:41;;;;;;:::i;:::-;;;;;;;;16289:315;;;:::o;13338:::-;13495:28;13505:4;13511:2;13515:7;13495:9;:28::i;:::-;13542:48;13565:4;13571:2;13575:7;13584:5;13542:22;:48::i;:::-;13534:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;13338:315;;;;:::o;21342:104::-;21402:13;21431:9;21424:16;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21342:104;:::o;866:532::-;922:13;961:1;952:5;:10;948:53;;979:10;;;;;;;;;;;;;;;;;;;;;948:53;1011:12;1026:5;1011:20;;1042:14;1067:78;1082:1;1074:4;:9;1067:78;;1100:8;;;;;:::i;:::-;;;;1131:2;1123:10;;;;;:::i;:::-;;;1067:78;;;1155:19;1187:6;1177:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1155:39;;1205:154;1221:1;1212:5;:10;1205:154;;1249:1;1239:11;;;;;:::i;:::-;;;1316:2;1308:5;:10;;;;:::i;:::-;1295:2;:24;;;;:::i;:::-;1282:39;;1265:6;1272;1265:14;;;;;;;;:::i;:::-;;;;;:56;;;;;;;;;;;1345:2;1336:11;;;;;:::i;:::-;;;1205:154;;;1383:6;1369:21;;;;;866:532;;;;:::o;17419:126::-;;;;:::o;17553:125::-;;;;:::o;278:127::-;385:1;367:7;:14;;;:19;;;;;;;;;;;278:127;:::o;14152:110::-;14228:26;14238:2;14242:7;14228:26;;;;;;;;;;;;:9;:26::i;:::-;14152:110;;:::o;16612:799::-;16767:4;16788:15;:2;:13;;;:15::i;:::-;16784:620;;;16840:2;16824:36;;;16861:12;:10;:12::i;:::-;16875:4;16881:7;16890:5;16824:72;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;16820:529;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17083:1;17066:6;:13;:18;17062:272;;17109:60;;;;;;;;;;:::i;:::-;;;;;;;;17062:272;17284:6;17278:13;17269:6;17265:2;17261:15;17254:38;16820:529;16957:41;;;16947:51;;;:6;:51;;;;16940:58;;;;;16784:620;17388:4;17381:11;;16612:799;;;;;;;:::o;14270:321::-;14400:18;14406:2;14410:7;14400:5;:18::i;:::-;14451:54;14482:1;14486:2;14490:7;14499:5;14451:22;:54::i;:::-;14429:154;;;;;;;;;;;;:::i;:::-;;;;;;;;;14270:321;;;:::o;3534:115::-;3594:4;3640:1;3618:7;:19;;;:23;3611:30;;3534:115;;;:::o;14599:439::-;14693:1;14679:16;;:2;:16;;;14671:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;14752:16;14760:7;14752;:16::i;:::-;14751:17;14743:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;14814:45;14843:1;14847:2;14851:7;14814:20;:45::i;:::-;14889:1;14872:9;:13;14882:2;14872:13;;;;;;;;;;;;;;;;:18;;;;;;;:::i;:::-;;;;;;;;14920:2;14901:7;:16;14909:7;14901:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;14965:7;14961:2;14940:33;;14957:1;14940:33;;;;;;;;;;;;14986:44;15014:1;15018:2;15022:7;14986:19;:44::i;:::-;14599:439;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:99::-;1570:6;1604:5;1598:12;1588:22;;1518:99;;;:::o;1623:169::-;1707:11;1741:6;1736:3;1729:19;1781:4;1776:3;1772:14;1757:29;;1623:169;;;;:::o;1798:307::-;1866:1;1876:113;1890:6;1887:1;1884:13;1876:113;;;1975:1;1970:3;1966:11;1960:18;1956:1;1951:3;1947:11;1940:39;1912:2;1909:1;1905:10;1900:15;;1876:113;;;2007:6;2004:1;2001:13;1998:101;;;2087:1;2078:6;2073:3;2069:16;2062:27;1998:101;1847:258;1798:307;;;:::o;2111:102::-;2152:6;2203:2;2199:7;2194:2;2187:5;2183:14;2179:28;2169:38;;2111:102;;;:::o;2219:364::-;2307:3;2335:39;2368:5;2335:39;:::i;:::-;2390:71;2454:6;2449:3;2390:71;:::i;:::-;2383:78;;2470:52;2515:6;2510:3;2503:4;2496:5;2492:16;2470:52;:::i;:::-;2547:29;2569:6;2547:29;:::i;:::-;2542:3;2538:39;2531:46;;2311:272;2219:364;;;;:::o;2589:313::-;2702:4;2740:2;2729:9;2725:18;2717:26;;2789:9;2783:4;2779:20;2775:1;2764:9;2760:17;2753:47;2817:78;2890:4;2881:6;2817:78;:::i;:::-;2809:86;;2589:313;;;;:::o;2908:77::-;2945:7;2974:5;2963:16;;2908:77;;;:::o;2991:122::-;3064:24;3082:5;3064:24;:::i;:::-;3057:5;3054:35;3044:63;;3103:1;3100;3093:12;3044:63;2991:122;:::o;3119:139::-;3165:5;3203:6;3190:20;3181:29;;3219:33;3246:5;3219:33;:::i;:::-;3119:139;;;;:::o;3264:329::-;3323:6;3372:2;3360:9;3351:7;3347:23;3343:32;3340:119;;;3378:79;;:::i;:::-;3340:119;3498:1;3523:53;3568:7;3559:6;3548:9;3544:22;3523:53;:::i;:::-;3513:63;;3469:117;3264:329;;;;:::o;3599:126::-;3636:7;3676:42;3669:5;3665:54;3654:65;;3599:126;;;:::o;3731:96::-;3768:7;3797:24;3815:5;3797:24;:::i;:::-;3786:35;;3731:96;;;:::o;3833:118::-;3920:24;3938:5;3920:24;:::i;:::-;3915:3;3908:37;3833:118;;:::o;3957:222::-;4050:4;4088:2;4077:9;4073:18;4065:26;;4101:71;4169:1;4158:9;4154:17;4145:6;4101:71;:::i;:::-;3957:222;;;;:::o;4185:122::-;4258:24;4276:5;4258:24;:::i;:::-;4251:5;4248:35;4238:63;;4297:1;4294;4287:12;4238:63;4185:122;:::o;4313:139::-;4359:5;4397:6;4384:20;4375:29;;4413:33;4440:5;4413:33;:::i;:::-;4313:139;;;;:::o;4458:474::-;4526:6;4534;4583:2;4571:9;4562:7;4558:23;4554:32;4551:119;;;4589:79;;:::i;:::-;4551:119;4709:1;4734:53;4779:7;4770:6;4759:9;4755:22;4734:53;:::i;:::-;4724:63;;4680:117;4836:2;4862:53;4907:7;4898:6;4887:9;4883:22;4862:53;:::i;:::-;4852:63;;4807:118;4458:474;;;;;:::o;4938:118::-;5025:24;5043:5;5025:24;:::i;:::-;5020:3;5013:37;4938:118;;:::o;5062:222::-;5155:4;5193:2;5182:9;5178:18;5170:26;;5206:71;5274:1;5263:9;5259:17;5250:6;5206:71;:::i;:::-;5062:222;;;;:::o;5290:117::-;5399:1;5396;5389:12;5413:117;5522:1;5519;5512:12;5536:180;5584:77;5581:1;5574:88;5681:4;5678:1;5671:15;5705:4;5702:1;5695:15;5722:281;5805:27;5827:4;5805:27;:::i;:::-;5797:6;5793:40;5935:6;5923:10;5920:22;5899:18;5887:10;5884:34;5881:62;5878:88;;;5946:18;;:::i;:::-;5878:88;5986:10;5982:2;5975:22;5765:238;5722:281;;:::o;6009:129::-;6043:6;6070:20;;:::i;:::-;6060:30;;6099:33;6127:4;6119:6;6099:33;:::i;:::-;6009:129;;;:::o;6144:308::-;6206:4;6296:18;6288:6;6285:30;6282:56;;;6318:18;;:::i;:::-;6282:56;6356:29;6378:6;6356:29;:::i;:::-;6348:37;;6440:4;6434;6430:15;6422:23;;6144:308;;;:::o;6458:154::-;6542:6;6537:3;6532;6519:30;6604:1;6595:6;6590:3;6586:16;6579:27;6458:154;;;:::o;6618:412::-;6696:5;6721:66;6737:49;6779:6;6737:49;:::i;:::-;6721:66;:::i;:::-;6712:75;;6810:6;6803:5;6796:21;6848:4;6841:5;6837:16;6886:3;6877:6;6872:3;6868:16;6865:25;6862:112;;;6893:79;;:::i;:::-;6862:112;6983:41;7017:6;7012:3;7007;6983:41;:::i;:::-;6702:328;6618:412;;;;;:::o;7050:340::-;7106:5;7155:3;7148:4;7140:6;7136:17;7132:27;7122:122;;7163:79;;:::i;:::-;7122:122;7280:6;7267:20;7305:79;7380:3;7372:6;7365:4;7357:6;7353:17;7305:79;:::i;:::-;7296:88;;7112:278;7050:340;;;;:::o;7396:509::-;7465:6;7514:2;7502:9;7493:7;7489:23;7485:32;7482:119;;;7520:79;;:::i;:::-;7482:119;7668:1;7657:9;7653:17;7640:31;7698:18;7690:6;7687:30;7684:117;;;7720:79;;:::i;:::-;7684:117;7825:63;7880:7;7871:6;7860:9;7856:22;7825:63;:::i;:::-;7815:73;;7611:287;7396:509;;;;:::o;7911:116::-;7981:21;7996:5;7981:21;:::i;:::-;7974:5;7971:32;7961:60;;8017:1;8014;8007:12;7961:60;7911:116;:::o;8033:133::-;8076:5;8114:6;8101:20;8092:29;;8130:30;8154:5;8130:30;:::i;:::-;8033:133;;;;:::o;8172:323::-;8228:6;8277:2;8265:9;8256:7;8252:23;8248:32;8245:119;;;8283:79;;:::i;:::-;8245:119;8403:1;8428:50;8470:7;8461:6;8450:9;8446:22;8428:50;:::i;:::-;8418:60;;8374:114;8172:323;;;;:::o;8501:619::-;8578:6;8586;8594;8643:2;8631:9;8622:7;8618:23;8614:32;8611:119;;;8649:79;;:::i;:::-;8611:119;8769:1;8794:53;8839:7;8830:6;8819:9;8815:22;8794:53;:::i;:::-;8784:63;;8740:117;8896:2;8922:53;8967:7;8958:6;8947:9;8943:22;8922:53;:::i;:::-;8912:63;;8867:118;9024:2;9050:53;9095:7;9086:6;9075:9;9071:22;9050:53;:::i;:::-;9040:63;;8995:118;8501:619;;;;;:::o;9126:329::-;9185:6;9234:2;9222:9;9213:7;9209:23;9205:32;9202:119;;;9240:79;;:::i;:::-;9202:119;9360:1;9385:53;9430:7;9421:6;9410:9;9406:22;9385:53;:::i;:::-;9375:63;;9331:117;9126:329;;;;:::o;9461:114::-;9528:6;9562:5;9556:12;9546:22;;9461:114;;;:::o;9581:184::-;9680:11;9714:6;9709:3;9702:19;9754:4;9749:3;9745:14;9730:29;;9581:184;;;;:::o;9771:132::-;9838:4;9861:3;9853:11;;9891:4;9886:3;9882:14;9874:22;;9771:132;;;:::o;9909:108::-;9986:24;10004:5;9986:24;:::i;:::-;9981:3;9974:37;9909:108;;:::o;10023:179::-;10092:10;10113:46;10155:3;10147:6;10113:46;:::i;:::-;10191:4;10186:3;10182:14;10168:28;;10023:179;;;;:::o;10208:113::-;10278:4;10310;10305:3;10301:14;10293:22;;10208:113;;;:::o;10357:732::-;10476:3;10505:54;10553:5;10505:54;:::i;:::-;10575:86;10654:6;10649:3;10575:86;:::i;:::-;10568:93;;10685:56;10735:5;10685:56;:::i;:::-;10764:7;10795:1;10780:284;10805:6;10802:1;10799:13;10780:284;;;10881:6;10875:13;10908:63;10967:3;10952:13;10908:63;:::i;:::-;10901:70;;10994:60;11047:6;10994:60;:::i;:::-;10984:70;;10840:224;10827:1;10824;10820:9;10815:14;;10780:284;;;10784:14;11080:3;11073:10;;10481:608;;;10357:732;;;;:::o;11095:373::-;11238:4;11276:2;11265:9;11261:18;11253:26;;11325:9;11319:4;11315:20;11311:1;11300:9;11296:17;11289:47;11353:108;11456:4;11447:6;11353:108;:::i;:::-;11345:116;;11095:373;;;;:::o;11474:468::-;11539:6;11547;11596:2;11584:9;11575:7;11571:23;11567:32;11564:119;;;11602:79;;:::i;:::-;11564:119;11722:1;11747:53;11792:7;11783:6;11772:9;11768:22;11747:53;:::i;:::-;11737:63;;11693:117;11849:2;11875:50;11917:7;11908:6;11897:9;11893:22;11875:50;:::i;:::-;11865:60;;11820:115;11474:468;;;;;:::o;11948:307::-;12009:4;12099:18;12091:6;12088:30;12085:56;;;12121:18;;:::i;:::-;12085:56;12159:29;12181:6;12159:29;:::i;:::-;12151:37;;12243:4;12237;12233:15;12225:23;;11948:307;;;:::o;12261:410::-;12338:5;12363:65;12379:48;12420:6;12379:48;:::i;:::-;12363:65;:::i;:::-;12354:74;;12451:6;12444:5;12437:21;12489:4;12482:5;12478:16;12527:3;12518:6;12513:3;12509:16;12506:25;12503:112;;;12534:79;;:::i;:::-;12503:112;12624:41;12658:6;12653:3;12648;12624:41;:::i;:::-;12344:327;12261:410;;;;;:::o;12690:338::-;12745:5;12794:3;12787:4;12779:6;12775:17;12771:27;12761:122;;12802:79;;:::i;:::-;12761:122;12919:6;12906:20;12944:78;13018:3;13010:6;13003:4;12995:6;12991:17;12944:78;:::i;:::-;12935:87;;12751:277;12690:338;;;;:::o;13034:943::-;13129:6;13137;13145;13153;13202:3;13190:9;13181:7;13177:23;13173:33;13170:120;;;13209:79;;:::i;:::-;13170:120;13329:1;13354:53;13399:7;13390:6;13379:9;13375:22;13354:53;:::i;:::-;13344:63;;13300:117;13456:2;13482:53;13527:7;13518:6;13507:9;13503:22;13482:53;:::i;:::-;13472:63;;13427:118;13584:2;13610:53;13655:7;13646:6;13635:9;13631:22;13610:53;:::i;:::-;13600:63;;13555:118;13740:2;13729:9;13725:18;13712:32;13771:18;13763:6;13760:30;13757:117;;;13793:79;;:::i;:::-;13757:117;13898:62;13952:7;13943:6;13932:9;13928:22;13898:62;:::i;:::-;13888:72;;13683:287;13034:943;;;;;;;:::o;13983:474::-;14051:6;14059;14108:2;14096:9;14087:7;14083:23;14079:32;14076:119;;;14114:79;;:::i;:::-;14076:119;14234:1;14259:53;14304:7;14295:6;14284:9;14280:22;14259:53;:::i;:::-;14249:63;;14205:117;14361:2;14387:53;14432:7;14423:6;14412:9;14408:22;14387:53;:::i;:::-;14377:63;;14332:118;13983:474;;;;;:::o;14463:::-;14531:6;14539;14588:2;14576:9;14567:7;14563:23;14559:32;14556:119;;;14594:79;;:::i;:::-;14556:119;14714:1;14739:53;14784:7;14775:6;14764:9;14760:22;14739:53;:::i;:::-;14729:63;;14685:117;14841:2;14867:53;14912:7;14903:6;14892:9;14888:22;14867:53;:::i;:::-;14857:63;;14812:118;14463:474;;;;;:::o;14943:180::-;14991:77;14988:1;14981:88;15088:4;15085:1;15078:15;15112:4;15109:1;15102:15;15129:320;15173:6;15210:1;15204:4;15200:12;15190:22;;15257:1;15251:4;15247:12;15278:18;15268:81;;15334:4;15326:6;15322:17;15312:27;;15268:81;15396:2;15388:6;15385:14;15365:18;15362:38;15359:84;;15415:18;;:::i;:::-;15359:84;15180:269;15129:320;;;:::o;15455:231::-;15595:34;15591:1;15583:6;15579:14;15572:58;15664:14;15659:2;15651:6;15647:15;15640:39;15455:231;:::o;15692:366::-;15834:3;15855:67;15919:2;15914:3;15855:67;:::i;:::-;15848:74;;15931:93;16020:3;15931:93;:::i;:::-;16049:2;16044:3;16040:12;16033:19;;15692:366;;;:::o;16064:419::-;16230:4;16268:2;16257:9;16253:18;16245:26;;16317:9;16311:4;16307:20;16303:1;16292:9;16288:17;16281:47;16345:131;16471:4;16345:131;:::i;:::-;16337:139;;16064:419;;;:::o;16489:220::-;16629:34;16625:1;16617:6;16613:14;16606:58;16698:3;16693:2;16685:6;16681:15;16674:28;16489:220;:::o;16715:366::-;16857:3;16878:67;16942:2;16937:3;16878:67;:::i;:::-;16871:74;;16954:93;17043:3;16954:93;:::i;:::-;17072:2;17067:3;17063:12;17056:19;;16715:366;;;:::o;17087:419::-;17253:4;17291:2;17280:9;17276:18;17268:26;;17340:9;17334:4;17330:20;17326:1;17315:9;17311:17;17304:47;17368:131;17494:4;17368:131;:::i;:::-;17360:139;;17087:419;;;:::o;17512:243::-;17652:34;17648:1;17640:6;17636:14;17629:58;17721:26;17716:2;17708:6;17704:15;17697:51;17512:243;:::o;17761:366::-;17903:3;17924:67;17988:2;17983:3;17924:67;:::i;:::-;17917:74;;18000:93;18089:3;18000:93;:::i;:::-;18118:2;18113:3;18109:12;18102:19;;17761:366;;;:::o;18133:419::-;18299:4;18337:2;18326:9;18322:18;18314:26;;18386:9;18380:4;18376:20;18372:1;18361:9;18357:17;18350:47;18414:131;18540:4;18414:131;:::i;:::-;18406:139;;18133:419;;;:::o;18558:182::-;18698:34;18694:1;18686:6;18682:14;18675:58;18558:182;:::o;18746:366::-;18888:3;18909:67;18973:2;18968:3;18909:67;:::i;:::-;18902:74;;18985:93;19074:3;18985:93;:::i;:::-;19103:2;19098:3;19094:12;19087:19;;18746:366;;;:::o;19118:419::-;19284:4;19322:2;19311:9;19307:18;19299:26;;19371:9;19365:4;19361:20;19357:1;19346:9;19342:17;19335:47;19399:131;19525:4;19399:131;:::i;:::-;19391:139;;19118:419;;;:::o;19543:141::-;19592:4;19615:3;19607:11;;19638:3;19635:1;19628:14;19672:4;19669:1;19659:18;19651:26;;19543:141;;;:::o;19690:93::-;19727:6;19774:2;19769;19762:5;19758:14;19754:23;19744:33;;19690:93;;;:::o;19789:107::-;19833:8;19883:5;19877:4;19873:16;19852:37;;19789:107;;;;:::o;19902:393::-;19971:6;20021:1;20009:10;20005:18;20044:97;20074:66;20063:9;20044:97;:::i;:::-;20162:39;20192:8;20181:9;20162:39;:::i;:::-;20150:51;;20234:4;20230:9;20223:5;20219:21;20210:30;;20283:4;20273:8;20269:19;20262:5;20259:30;20249:40;;19978:317;;19902:393;;;;;:::o;20301:60::-;20329:3;20350:5;20343:12;;20301:60;;;:::o;20367:142::-;20417:9;20450:53;20468:34;20477:24;20495:5;20477:24;:::i;:::-;20468:34;:::i;:::-;20450:53;:::i;:::-;20437:66;;20367:142;;;:::o;20515:75::-;20558:3;20579:5;20572:12;;20515:75;;;:::o;20596:269::-;20706:39;20737:7;20706:39;:::i;:::-;20767:91;20816:41;20840:16;20816:41;:::i;:::-;20808:6;20801:4;20795:11;20767:91;:::i;:::-;20761:4;20754:105;20672:193;20596:269;;;:::o;20871:73::-;20916:3;20871:73;:::o;20950:189::-;21027:32;;:::i;:::-;21068:65;21126:6;21118;21112:4;21068:65;:::i;:::-;21003:136;20950:189;;:::o;21145:186::-;21205:120;21222:3;21215:5;21212:14;21205:120;;;21276:39;21313:1;21306:5;21276:39;:::i;:::-;21249:1;21242:5;21238:13;21229:22;;21205:120;;;21145:186;;:::o;21337:543::-;21438:2;21433:3;21430:11;21427:446;;;21472:38;21504:5;21472:38;:::i;:::-;21556:29;21574:10;21556:29;:::i;:::-;21546:8;21542:44;21739:2;21727:10;21724:18;21721:49;;;21760:8;21745:23;;21721:49;21783:80;21839:22;21857:3;21839:22;:::i;:::-;21829:8;21825:37;21812:11;21783:80;:::i;:::-;21442:431;;21427:446;21337:543;;;:::o;21886:117::-;21940:8;21990:5;21984:4;21980:16;21959:37;;21886:117;;;;:::o;22009:169::-;22053:6;22086:51;22134:1;22130:6;22122:5;22119:1;22115:13;22086:51;:::i;:::-;22082:56;22167:4;22161;22157:15;22147:25;;22060:118;22009:169;;;;:::o;22183:295::-;22259:4;22405:29;22430:3;22424:4;22405:29;:::i;:::-;22397:37;;22467:3;22464:1;22460:11;22454:4;22451:21;22443:29;;22183:295;;;;:::o;22483:1395::-;22600:37;22633:3;22600:37;:::i;:::-;22702:18;22694:6;22691:30;22688:56;;;22724:18;;:::i;:::-;22688:56;22768:38;22800:4;22794:11;22768:38;:::i;:::-;22853:67;22913:6;22905;22899:4;22853:67;:::i;:::-;22947:1;22971:4;22958:17;;23003:2;22995:6;22992:14;23020:1;23015:618;;;;23677:1;23694:6;23691:77;;;23743:9;23738:3;23734:19;23728:26;23719:35;;23691:77;23794:67;23854:6;23847:5;23794:67;:::i;:::-;23788:4;23781:81;23650:222;22985:887;;23015:618;23067:4;23063:9;23055:6;23051:22;23101:37;23133:4;23101:37;:::i;:::-;23160:1;23174:208;23188:7;23185:1;23182:14;23174:208;;;23267:9;23262:3;23258:19;23252:26;23244:6;23237:42;23318:1;23310:6;23306:14;23296:24;;23365:2;23354:9;23350:18;23337:31;;23211:4;23208:1;23204:12;23199:17;;23174:208;;;23410:6;23401:7;23398:19;23395:179;;;23468:9;23463:3;23459:19;23453:26;23511:48;23553:4;23545:6;23541:17;23530:9;23511:48;:::i;:::-;23503:6;23496:64;23418:156;23395:179;23620:1;23616;23608:6;23604:14;23600:22;23594:4;23587:36;23022:611;;;22985:887;;22575:1303;;;22483:1395;;:::o;23884:236::-;24024:34;24020:1;24012:6;24008:14;24001:58;24093:19;24088:2;24080:6;24076:15;24069:44;23884:236;:::o;24126:366::-;24268:3;24289:67;24353:2;24348:3;24289:67;:::i;:::-;24282:74;;24365:93;24454:3;24365:93;:::i;:::-;24483:2;24478:3;24474:12;24467:19;;24126:366;;;:::o;24498:419::-;24664:4;24702:2;24691:9;24687:18;24679:26;;24751:9;24745:4;24741:20;24737:1;24726:9;24722:17;24715:47;24779:131;24905:4;24779:131;:::i;:::-;24771:139;;24498:419;;;:::o;24923:147::-;25024:11;25061:3;25046:18;;24923:147;;;;:::o;25076:114::-;;:::o;25196:398::-;25355:3;25376:83;25457:1;25452:3;25376:83;:::i;:::-;25369:90;;25468:93;25557:3;25468:93;:::i;:::-;25586:1;25581:3;25577:11;25570:18;;25196:398;;;:::o;25600:379::-;25784:3;25806:147;25949:3;25806:147;:::i;:::-;25799:154;;25970:3;25963:10;;25600:379;;;:::o;25985:180::-;26033:77;26030:1;26023:88;26130:4;26127:1;26120:15;26154:4;26151:1;26144:15;26171:180;26219:77;26216:1;26209:88;26316:4;26313:1;26306:15;26340:4;26337:1;26330:15;26357:233;26396:3;26419:24;26437:5;26419:24;:::i;:::-;26410:33;;26465:66;26458:5;26455:77;26452:103;;26535:18;;:::i;:::-;26452:103;26582:1;26575:5;26571:13;26564:20;;26357:233;;;:::o;26596:228::-;26736:34;26732:1;26724:6;26720:14;26713:58;26805:11;26800:2;26792:6;26788:15;26781:36;26596:228;:::o;26830:366::-;26972:3;26993:67;27057:2;27052:3;26993:67;:::i;:::-;26986:74;;27069:93;27158:3;27069:93;:::i;:::-;27187:2;27182:3;27178:12;27171:19;;26830:366;;;:::o;27202:419::-;27368:4;27406:2;27395:9;27391:18;27383:26;;27455:9;27449:4;27445:20;27441:1;27430:9;27426:17;27419:47;27483:131;27609:4;27483:131;:::i;:::-;27475:139;;27202:419;;;:::o;27627:229::-;27767:34;27763:1;27755:6;27751:14;27744:58;27836:12;27831:2;27823:6;27819:15;27812:37;27627:229;:::o;27862:366::-;28004:3;28025:67;28089:2;28084:3;28025:67;:::i;:::-;28018:74;;28101:93;28190:3;28101:93;:::i;:::-;28219:2;28214:3;28210:12;28203:19;;27862:366;;;:::o;28234:419::-;28400:4;28438:2;28427:9;28423:18;28415:26;;28487:9;28481:4;28477:20;28473:1;28462:9;28458:17;28451:47;28515:131;28641:4;28515:131;:::i;:::-;28507:139;;28234:419;;;:::o;28659:170::-;28799:22;28795:1;28787:6;28783:14;28776:46;28659:170;:::o;28835:366::-;28977:3;28998:67;29062:2;29057:3;28998:67;:::i;:::-;28991:74;;29074:93;29163:3;29074:93;:::i;:::-;29192:2;29187:3;29183:12;29176:19;;28835:366;;;:::o;29207:419::-;29373:4;29411:2;29400:9;29396:18;29388:26;;29460:9;29454:4;29450:20;29446:1;29435:9;29431:17;29424:47;29488:131;29614:4;29488:131;:::i;:::-;29480:139;;29207:419;;;:::o;29632:305::-;29672:3;29691:20;29709:1;29691:20;:::i;:::-;29686:25;;29725:20;29743:1;29725:20;:::i;:::-;29720:25;;29879:1;29811:66;29807:74;29804:1;29801:81;29798:107;;;29885:18;;:::i;:::-;29798:107;29929:1;29926;29922:9;29915:16;;29632:305;;;;:::o;29943:170::-;30083:22;30079:1;30071:6;30067:14;30060:46;29943:170;:::o;30119:366::-;30261:3;30282:67;30346:2;30341:3;30282:67;:::i;:::-;30275:74;;30358:93;30447:3;30358:93;:::i;:::-;30476:2;30471:3;30467:12;30460:19;;30119:366;;;:::o;30491:419::-;30657:4;30695:2;30684:9;30680:18;30672:26;;30744:9;30738:4;30734:20;30730:1;30719:9;30715:17;30708:47;30772:131;30898:4;30772:131;:::i;:::-;30764:139;;30491:419;;;:::o;30916:173::-;31056:25;31052:1;31044:6;31040:14;31033:49;30916:173;:::o;31095:366::-;31237:3;31258:67;31322:2;31317:3;31258:67;:::i;:::-;31251:74;;31334:93;31423:3;31334:93;:::i;:::-;31452:2;31447:3;31443:12;31436:19;;31095:366;;;:::o;31467:419::-;31633:4;31671:2;31660:9;31656:18;31648:26;;31720:9;31714:4;31710:20;31706:1;31695:9;31691:17;31684:47;31748:131;31874:4;31748:131;:::i;:::-;31740:139;;31467:419;;;:::o;31892:348::-;31932:7;31955:20;31973:1;31955:20;:::i;:::-;31950:25;;31989:20;32007:1;31989:20;:::i;:::-;31984:25;;32177:1;32109:66;32105:74;32102:1;32099:81;32094:1;32087:9;32080:17;32076:105;32073:131;;;32184:18;;:::i;:::-;32073:131;32232:1;32229;32225:9;32214:20;;31892:348;;;;:::o;32246:169::-;32386:21;32382:1;32374:6;32370:14;32363:45;32246:169;:::o;32421:366::-;32563:3;32584:67;32648:2;32643:3;32584:67;:::i;:::-;32577:74;;32660:93;32749:3;32660:93;:::i;:::-;32778:2;32773:3;32769:12;32762:19;;32421:366;;;:::o;32793:419::-;32959:4;32997:2;32986:9;32982:18;32974:26;;33046:9;33040:4;33036:20;33032:1;33021:9;33017:17;33010:47;33074:131;33200:4;33074:131;:::i;:::-;33066:139;;32793:419;;;:::o;33218:234::-;33358:34;33354:1;33346:6;33342:14;33335:58;33427:17;33422:2;33414:6;33410:15;33403:42;33218:234;:::o;33458:366::-;33600:3;33621:67;33685:2;33680:3;33621:67;:::i;:::-;33614:74;;33697:93;33786:3;33697:93;:::i;:::-;33815:2;33810:3;33806:12;33799:19;;33458:366;;;:::o;33830:419::-;33996:4;34034:2;34023:9;34019:18;34011:26;;34083:9;34077:4;34073:20;34069:1;34058:9;34054:17;34047:47;34111:131;34237:4;34111:131;:::i;:::-;34103:139;;33830:419;;;:::o;34255:148::-;34357:11;34394:3;34379:18;;34255:148;;;;:::o;34409:377::-;34515:3;34543:39;34576:5;34543:39;:::i;:::-;34598:89;34680:6;34675:3;34598:89;:::i;:::-;34591:96;;34696:52;34741:6;34736:3;34729:4;34722:5;34718:16;34696:52;:::i;:::-;34773:6;34768:3;34764:16;34757:23;;34519:267;34409:377;;;;:::o;34816:874::-;34919:3;34956:5;34950:12;34985:36;35011:9;34985:36;:::i;:::-;35037:89;35119:6;35114:3;35037:89;:::i;:::-;35030:96;;35157:1;35146:9;35142:17;35173:1;35168:166;;;;35348:1;35343:341;;;;35135:549;;35168:166;35252:4;35248:9;35237;35233:25;35228:3;35221:38;35314:6;35307:14;35300:22;35292:6;35288:35;35283:3;35279:45;35272:52;;35168:166;;35343:341;35410:38;35442:5;35410:38;:::i;:::-;35470:1;35484:154;35498:6;35495:1;35492:13;35484:154;;;35572:7;35566:14;35562:1;35557:3;35553:11;35546:35;35622:1;35613:7;35609:15;35598:26;;35520:4;35517:1;35513:12;35508:17;;35484:154;;;35667:6;35662:3;35658:16;35651:23;;35350:334;;35135:549;;34923:767;;34816:874;;;;:::o;35696:589::-;35921:3;35943:95;36034:3;36025:6;35943:95;:::i;:::-;35936:102;;36055:95;36146:3;36137:6;36055:95;:::i;:::-;36048:102;;36167:92;36255:3;36246:6;36167:92;:::i;:::-;36160:99;;36276:3;36269:10;;35696:589;;;;;;:::o;36291:225::-;36431:34;36427:1;36419:6;36415:14;36408:58;36500:8;36495:2;36487:6;36483:15;36476:33;36291:225;:::o;36522:366::-;36664:3;36685:67;36749:2;36744:3;36685:67;:::i;:::-;36678:74;;36761:93;36850:3;36761:93;:::i;:::-;36879:2;36874:3;36870:12;36863:19;;36522:366;;;:::o;36894:419::-;37060:4;37098:2;37087:9;37083:18;37075:26;;37147:9;37141:4;37137:20;37133:1;37122:9;37118:17;37111:47;37175:131;37301:4;37175:131;:::i;:::-;37167:139;;36894:419;;;:::o;37319:231::-;37459:34;37455:1;37447:6;37443:14;37436:58;37528:14;37523:2;37515:6;37511:15;37504:39;37319:231;:::o;37556:366::-;37698:3;37719:67;37783:2;37778:3;37719:67;:::i;:::-;37712:74;;37795:93;37884:3;37795:93;:::i;:::-;37913:2;37908:3;37904:12;37897:19;;37556:366;;;:::o;37928:419::-;38094:4;38132:2;38121:9;38117:18;38109:26;;38181:9;38175:4;38171:20;38167:1;38156:9;38152:17;38145:47;38209:131;38335:4;38209:131;:::i;:::-;38201:139;;37928:419;;;:::o;38353:224::-;38493:34;38489:1;38481:6;38477:14;38470:58;38562:7;38557:2;38549:6;38545:15;38538:32;38353:224;:::o;38583:366::-;38725:3;38746:67;38810:2;38805:3;38746:67;:::i;:::-;38739:74;;38822:93;38911:3;38822:93;:::i;:::-;38940:2;38935:3;38931:12;38924:19;;38583:366;;;:::o;38955:419::-;39121:4;39159:2;39148:9;39144:18;39136:26;;39208:9;39202:4;39198:20;39194:1;39183:9;39179:17;39172:47;39236:131;39362:4;39236:131;:::i;:::-;39228:139;;38955:419;;;:::o;39380:223::-;39520:34;39516:1;39508:6;39504:14;39497:58;39589:6;39584:2;39576:6;39572:15;39565:31;39380:223;:::o;39609:366::-;39751:3;39772:67;39836:2;39831:3;39772:67;:::i;:::-;39765:74;;39848:93;39937:3;39848:93;:::i;:::-;39966:2;39961:3;39957:12;39950:19;;39609:366;;;:::o;39981:419::-;40147:4;40185:2;40174:9;40170:18;40162:26;;40234:9;40228:4;40224:20;40220:1;40209:9;40205:17;40198:47;40262:131;40388:4;40262:131;:::i;:::-;40254:139;;39981:419;;;:::o;40406:191::-;40446:4;40466:20;40484:1;40466:20;:::i;:::-;40461:25;;40500:20;40518:1;40500:20;:::i;:::-;40495:25;;40539:1;40536;40533:8;40530:34;;;40544:18;;:::i;:::-;40530:34;40589:1;40586;40582:9;40574:17;;40406:191;;;;:::o;40603:175::-;40743:27;40739:1;40731:6;40727:14;40720:51;40603:175;:::o;40784:366::-;40926:3;40947:67;41011:2;41006:3;40947:67;:::i;:::-;40940:74;;41023:93;41112:3;41023:93;:::i;:::-;41141:2;41136:3;41132:12;41125:19;;40784:366;;;:::o;41156:419::-;41322:4;41360:2;41349:9;41345:18;41337:26;;41409:9;41403:4;41399:20;41395:1;41384:9;41380:17;41373:47;41437:131;41563:4;41437:131;:::i;:::-;41429:139;;41156:419;;;:::o;41581:237::-;41721:34;41717:1;41709:6;41705:14;41698:58;41790:20;41785:2;41777:6;41773:15;41766:45;41581:237;:::o;41824:366::-;41966:3;41987:67;42051:2;42046:3;41987:67;:::i;:::-;41980:74;;42063:93;42152:3;42063:93;:::i;:::-;42181:2;42176:3;42172:12;42165:19;;41824:366;;;:::o;42196:419::-;42362:4;42400:2;42389:9;42385:18;42377:26;;42449:9;42443:4;42439:20;42435:1;42424:9;42420:17;42413:47;42477:131;42603:4;42477:131;:::i;:::-;42469:139;;42196:419;;;:::o;42621:180::-;42669:77;42666:1;42659:88;42766:4;42763:1;42756:15;42790:4;42787:1;42780:15;42807:185;42847:1;42864:20;42882:1;42864:20;:::i;:::-;42859:25;;42898:20;42916:1;42898:20;:::i;:::-;42893:25;;42937:1;42927:35;;42942:18;;:::i;:::-;42927:35;42984:1;42981;42977:9;42972:14;;42807:185;;;;:::o;42998:176::-;43030:1;43047:20;43065:1;43047:20;:::i;:::-;43042:25;;43081:20;43099:1;43081:20;:::i;:::-;43076:25;;43120:1;43110:35;;43125:18;;:::i;:::-;43110:35;43166:1;43163;43159:9;43154:14;;42998:176;;;;:::o;43180:98::-;43231:6;43265:5;43259:12;43249:22;;43180:98;;;:::o;43284:168::-;43367:11;43401:6;43396:3;43389:19;43441:4;43436:3;43432:14;43417:29;;43284:168;;;;:::o;43458:360::-;43544:3;43572:38;43604:5;43572:38;:::i;:::-;43626:70;43689:6;43684:3;43626:70;:::i;:::-;43619:77;;43705:52;43750:6;43745:3;43738:4;43731:5;43727:16;43705:52;:::i;:::-;43782:29;43804:6;43782:29;:::i;:::-;43777:3;43773:39;43766:46;;43548:270;43458:360;;;;:::o;43824:640::-;44019:4;44057:3;44046:9;44042:19;44034:27;;44071:71;44139:1;44128:9;44124:17;44115:6;44071:71;:::i;:::-;44152:72;44220:2;44209:9;44205:18;44196:6;44152:72;:::i;:::-;44234;44302:2;44291:9;44287:18;44278:6;44234:72;:::i;:::-;44353:9;44347:4;44343:20;44338:2;44327:9;44323:18;44316:48;44381:76;44452:4;44443:6;44381:76;:::i;:::-;44373:84;;43824:640;;;;;;;:::o;44470:141::-;44526:5;44557:6;44551:13;44542:22;;44573:32;44599:5;44573:32;:::i;:::-;44470:141;;;;:::o;44617:349::-;44686:6;44735:2;44723:9;44714:7;44710:23;44706:32;44703:119;;;44741:79;;:::i;:::-;44703:119;44861:1;44886:63;44941:7;44932:6;44921:9;44917:22;44886:63;:::i;:::-;44876:73;;44832:127;44617:349;;;;:::o;44972:182::-;45112:34;45108:1;45100:6;45096:14;45089:58;44972:182;:::o;45160:366::-;45302:3;45323:67;45387:2;45382:3;45323:67;:::i;:::-;45316:74;;45399:93;45488:3;45399:93;:::i;:::-;45517:2;45512:3;45508:12;45501:19;;45160:366;;;:::o;45532:419::-;45698:4;45736:2;45725:9;45721:18;45713:26;;45785:9;45779:4;45775:20;45771:1;45760:9;45756:17;45749:47;45813:131;45939:4;45813:131;:::i;:::-;45805:139;;45532:419;;;:::o;45957:178::-;46097:30;46093:1;46085:6;46081:14;46074:54;45957:178;:::o;46141:366::-;46283:3;46304:67;46368:2;46363:3;46304:67;:::i;:::-;46297:74;;46380:93;46469:3;46380:93;:::i;:::-;46498:2;46493:3;46489:12;46482:19;;46141:366;;;:::o;46513:419::-;46679:4;46717:2;46706:9;46702:18;46694:26;;46766:9;46760:4;46756:20;46752:1;46741:9;46737:17;46730:47;46794:131;46920:4;46794:131;:::i;:::-;46786:139;;46513:419;;;:::o
Swarm Source
ipfs://1d27ce642872ff4fa48b13094209ce47c4e14693615aca8e292e3bbc78d2fab1
Age | Block | Fee Address | BC Fee Address | Voting Power | Jailed | Incoming |
---|
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.