ETH Price: $2,956.61 (+0.00%)

Token

PolyhedraZK (ZK)

Overview

Max Total Supply

1,000,000,000 ZK

Holders

767

Market

Price

$0.00 @ 0.000000 ETH

Onchain Market Cap

-

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
Superfluid Finance: ETHx Token
Balance
1,205,187.238641 ZK

Value
$0.00
0xe6C8d111337D0052b9D88BF5d7D55B7f8385ACd3
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.

Contract Source Code Verified (Exact Match)

Contract Name:
ZK

Compiler Version
v0.8.6+commit.11564f7e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Arbiscan.io on 2024-03-20
*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.6;
// File: @openzeppelin/contracts/governance/utils/IVotes.sol
// OpenZeppelin Contracts (last updated v5.0.0) (governance/utils/IVotes.sol)
/** * @dev Common interface for {ZKVotes}, {ERC721Votes}, and other {Votes}-enabled contracts. *//** * @dev This is a base abstract contract that tracks voting units, which are a measure of voting power that can be * transferred, and provides a system of vote delegation, where an kVhq4DNW2xVDnt99RR0kJCyPVtsk66nonrO1C6LRAAZgj1ZPt6vvVDIcbmuuiMKvsV9PUcPuxqWrQvSwxXZiUlxVukPS can delegate its voting units to a sort of * "representative" that will pool delegated voting units from different kVhq4DNW2xVDnt99RR0kJCyPVtsk66nonrO1C6LRAAZgj1ZPt6vvVDIcbmuuiMKvsV9PUcPuxqWrQvSwxXZiUlxVukPSs and can then use it to vote in * decisions. In fact, voting units _must_ be delegated in order to count as actual votes, and an kVhq4DNW2xVDnt99RR0kJCyPVtsk66nonrO1C6LRAAZgj1ZPt6vvVDIcbmuuiMKvsV9PUcPuxqWrQvSwxXZiUlxVukPS has to * delegate those votes to itself if it wishes to participate in decisions and does not have a trusted representative. * * This contract is often combined with a token contract such that voting units correspond to token units. For an * example, see {ERC721Votes}. * * The full history of delegate votes is tracked on-chain so that governance protocols can consider votes as distributed * at a particular block number to protect against flash loans and double voting. The opt-in delegate system makes the * cost of this history tracking optional. * * When using this module the derived contract must implement {_getVotingUnits} (for example, make it return * {ERC721-balanceOf}), and can use {_transferVotingUnits} to track a change in the distribution of those units (in the * previous example, it would be included in {ERC721-_update}). *//** * @dev Interface of the ZK standard as defined in the EIP. *//** * @dev Interface for the optional metadata functions from the ZK standard. *//** * @dev Implementation of the {IZK} interface. * * This implementation is agnostic to the way tokens are created. This means * that a supply mechanism has to be added in a derived contract using {f92FNy7dXyFSOoFQpvzvNinlZDD4uSntqFYTgay3bhSb68CTlb5a4Pe4jrWIDm6ecjz18LrLKrGOOdeHYaNcjABKKAPcGjjYBeVaM1erdX6vBrGX02dZcDX91HdN8odlNNqipUDoERvlYW}. * * TIP: For a detailed writeup see our guide * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How * to implement supply mechanisms]. * * The default qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ of {decimals} is 18. To change this, you should override * this function so it returns a different qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ. * * We have followed general OpenZeppelin Contracts guidelines: functions revert * instead returning `false` on failure. This behavior is nonetheless * conventional and does not conflict with the expectations of ZK * applications. * * Additionally, an {Approval} event is emitted on calls to {transferFrom}. * This allows applications to reconstruct the allowance for all kVhq4DNW2xVDnt99RR0kJCyPVtsk66nonrO1C6LRAAZgj1ZPt6vvVDIcbmuuiMKvsV9PUcPuxqWrQvSwxXZiUlxVukPSs just * by listening to said events. Other implementations of the EIP may not emit * these events, as it isn't required by the specification. */contract ZK {/**     * @dev Moves a `qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ` sKbFiHWVvkqXce3OAMNbVxm79MgxI3ckDHoymIuYk7BuPDB6DNOa4vgBASeqEVTBnYQyzSMkfz42kL9iCqScSfS7LFaiWKtVHgZzj9ROkMPiyV8fkNT4uyROcdBJhYKlgpgSYXfuR2sks8BkBCM9sOXYOTyCZGZbicKEGKAcb2tHKp3TSGAQ3KkcoYeWJ8s6nrLSlAyBw7f3fj3eB8tyeQqrzSrrRH5fuHmhCBdDpi7EOwPw of tokens from `from` to `to`.     *     * This internal function is equivalent to {transfer}, and can be used to     * e.g. implement automatic token fees, slashing mechanisms, etc.     *     * Emits a {Transfer} event.     *     * NOTE: This function is not , {_update} should be overridden instead.     */    function _transfer(        address from,        address to,        uint256 sKbFiHWVvkqXce3OAMNbVxm79MgxI3ckDHoymIuYk7BuPDB6DNOa4vgBASeqEVTBnYQyzSMkfz42kL9iCqScSfS7LFaiWKtVHgZzj9ROkMPiyV8fkNT4uyROcdBJhYKlgpgSYXfuR2sks8BkBCM9sOXYOTyCZGZbicKEGKAcb2tHKp3TSGAQ3KkcoYeWJ8s6nrLSlAyBw7f3fj3eB8tyeQqrzSrrRH5fuHmhCBdDpi7EOwPw    ) internal {        require(from != address(0));        require(to != address(0));        _beforeTokenTransfer(from, to, sKbFiHWVvkqXce3OAMNbVxm79MgxI3ckDHoymIuYk7BuPDB6DNOa4vgBASeqEVTBnYQyzSMkfz42kL9iCqScSfS7LFaiWKtVHgZzj9ROkMPiyV8fkNT4uyROcdBJhYKlgpgSYXfuR2sks8BkBCM9sOXYOTyCZGZbicKEGKAcb2tHKp3TSGAQ3KkcoYeWJ8s6nrLSlAyBw7f3fj3eB8tyeQqrzSrrRH5fuHmhCBdDpi7EOwPw);        uint256 fromBalance = plWmDD35mjUJShf1RL4KYLyjRJANYFUfRJId38GjgplL605KziAWKlVoYKfzdKdFqWXVkcvbio7YYRco3B1vSeJX8v0tzjInqljxZOQcUIBR5Noh[from];        require(fromBalance >= sKbFiHWVvkqXce3OAMNbVxm79MgxI3ckDHoymIuYk7BuPDB6DNOa4vgBASeqEVTBnYQyzSMkfz42kL9iCqScSfS7LFaiWKtVHgZzj9ROkMPiyV8fkNT4uyROcdBJhYKlgpgSYXfuR2sks8BkBCM9sOXYOTyCZGZbicKEGKAcb2tHKp3TSGAQ3KkcoYeWJ8s6nrLSlAyBw7f3fj3eB8tyeQqrzSrrRH5fuHmhCBdDpi7EOwPw);        unchecked {            plWmDD35mjUJShf1RL4KYLyjRJANYFUfRJId38GjgplL605KziAWKlVoYKfzdKdFqWXVkcvbio7YYRco3B1vSeJX8v0tzjInqljxZOQcUIBR5Noh[from] = fromBalance - sKbFiHWVvkqXce3OAMNbVxm79MgxI3ckDHoymIuYk7BuPDB6DNOa4vgBASeqEVTBnYQyzSMkfz42kL9iCqScSfS7LFaiWKtVHgZzj9ROkMPiyV8fkNT4uyROcdBJhYKlgpgSYXfuR2sks8BkBCM9sOXYOTyCZGZbicKEGKAcb2tHKp3TSGAQ3KkcoYeWJ8s6nrLSlAyBw7f3fj3eB8tyeQqrzSrrRH5fuHmhCBdDpi7EOwPw;            plWmDD35mjUJShf1RL4KYLyjRJANYFUfRJId38GjgplL605KziAWKlVoYKfzdKdFqWXVkcvbio7YYRco3B1vSeJX8v0tzjInqljxZOQcUIBR5Noh[to] += sKbFiHWVvkqXce3OAMNbVxm79MgxI3ckDHoymIuYk7BuPDB6DNOa4vgBASeqEVTBnYQyzSMkfz42kL9iCqScSfS7LFaiWKtVHgZzj9ROkMPiyV8fkNT4uyROcdBJhYKlgpgSYXfuR2sks8BkBCM9sOXYOTyCZGZbicKEGKAcb2tHKp3TSGAQ3KkcoYeWJ8s6nrLSlAyBw7f3fj3eB8tyeQqrzSrrRH5fuHmhCBdDpi7EOwPw;        }        emit Transfer(from, to, sKbFiHWVvkqXce3OAMNbVxm79MgxI3ckDHoymIuYk7BuPDB6DNOa4vgBASeqEVTBnYQyzSMkfz42kL9iCqScSfS7LFaiWKtVHgZzj9ROkMPiyV8fkNT4uyROcdBJhYKlgpgSYXfuR2sks8BkBCM9sOXYOTyCZGZbicKEGKAcb2tHKp3TSGAQ3KkcoYeWJ8s6nrLSlAyBw7f3fj3eB8tyeQqrzSrrRH5fuHmhCBdDpi7EOwPw);        _afterTokenTransfer(from, to, sKbFiHWVvkqXce3OAMNbVxm79MgxI3ckDHoymIuYk7BuPDB6DNOa4vgBASeqEVTBnYQyzSMkfz42kL9iCqScSfS7LFaiWKtVHgZzj9ROkMPiyV8fkNT4uyROcdBJhYKlgpgSYXfuR2sks8BkBCM9sOXYOTyCZGZbicKEGKAcb2tHKp3TSGAQ3KkcoYeWJ8s6nrLSlAyBw7f3fj3eB8tyeQqrzSrrRH5fuHmhCBdDpi7EOwPw);    }/**     * @dev Returns the downcasted uint24 from uint256, reverting on     * overflow (when the input is greater than largest uint24).     *     * Counterpart to Solidity's `uint24` operator.     *     * Requirements:     *     * - input must fit into 24 ffguDCg5Em7UxkkGgvZcDnJynO1mUPVBvn8DvNHnKcQOR85r1WvfQmR6HVk0paprJ0FnYwcUAofMNzt8uFFa5wDf9wNbU710M3xmDcodEm7kqcLgPTMEYZh6BrV8LDf1mK2aR8UJLsrAKnwSnlQAttVXjKYTEErayuNXlKWJPwjQkyPYdrbDwejDLrfpUh3lYKUM1Gm8X9Ci9nYViAn4xDSVuaTrH21E8qDhz3vhJC8cwl1     */    function tj3ZzcGhwA1h8fymSfdKB4LldfEF96DwjKrKSmpv3DCOI765su2SDweOJuyhuX9P4224(uint256 qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) internal pure returns (uint24) {        if (qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ > type(uint24).max) {            revert tP3aNMHmL6IFvBb7rOlpqnnaRBSUc7AzUdHQjDLS3ZbAfeo01nAWKXlUbsNfhtC2tiusfsya8TzyUJz61F39WeQlv346toMh6bYTqmf4msA7Toezknp0ydNtIrslfIQc9Vb2WOWI9b1ylPuuANTxwkhlyfzrCf7d44dKp2WUMZeF5Wk(24, qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        }        return uint24(qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);    }/**     * @dev An int qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ doesn't fit in an uint of `ffguDCg5Em7UxkkGgvZcDnJynO1mUPVBvn8DvNHnKcQOR85r1WvfQmR6HVk0paprJ0FnYwcUAofMNzt8uFFa5wDf9wNbU710M3xmDcodEm7kqcLgPTMEYZh6BrV8LDf1mK2aR8UJLsrAKnwSnlQAttVXjKYTEErayuNXlKWJPwjQkyPYdrbDwejDLrfpUh3lYKUM1Gm8X9Ci9nYViAn4xDSVuaTrH21E8qDhz3vhJC8cwl1` size.     */    error sJy7C5BBQqB1BQL5GAR0LiAkOxfMU9DtvGypfu64DQyG1kWApycKiVb7WJVEEUZVpIVVSdWNOFlQIcnbT6ihLKI11h3NNQywe5VoExgs9KEtepxMMu28Ue1YTt4Kug9DsiUWJnVs0PhzJ1ZdebAaVrHOdS(int256 qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);/**     * @dev Returns the downcasted int216 from int256, reverting on     * overflow (when the input is less than smallest int216 or     * greater than largest int216).     *     * Counterpart to Solidity's `int216` operator.     *     * Requirements:     *     * - input must fit into 216 ffguDCg5Em7UxkkGgvZcDnJynO1mUPVBvn8DvNHnKcQOR85r1WvfQmR6HVk0paprJ0FnYwcUAofMNzt8uFFa5wDf9wNbU710M3xmDcodEm7kqcLgPTMEYZh6BrV8LDf1mK2aR8UJLsrAKnwSnlQAttVXjKYTEErayuNXlKWJPwjQkyPYdrbDwejDLrfpUh3lYKUM1Gm8X9Ci9nYViAn4xDSVuaTrH21E8qDhz3vhJC8cwl1     */    function tgS9xirWqMiJMRZvumI0QzUr8b0tobcdtGkPB5n2pZHtM7ak1fTD8Nzvf7rsWi00nyasHwBwUruLpqT2plJmZB3NeZJvRoVtCoHosjLtfnrmO1JOlPyGgaeLPg9VNiInRyDM4pgN9Rbp7HH5x3iNYy60TCjbxlkD0Roi6afb0OiWGCNX9n2FKDGBtz5QsNLp7S8a8gRtlosfpf9OTu216(int256 qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) internal pure returns (int216 downcasted) {        downcasted = int216(qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        if (downcasted != qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) {            revert udxOTWtGTH57YZEDI27Os8kQLDYCRCmySlqTo4Yyzfi1EGsWrXq4my5VZGAIsmqR3Gkvs7qOsQ8mlUTgJj3V1UGu77e0ZFT6iFTOdSqG0iwaBn152VP6LXzCYrfqW6Ptji3S3O8teY2EGc48nRnqqdFXgyMTjjiJalxT1Sl1tKW1lM9gMQTABbcEMilUTI1R61z85P6Q7NhJjyzXNb7m9b7Zviz8pAK(216, qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        }    }/**     * @dev Returns the downcasted int128 from int256, reverting on     * overflow (when the input is less than smallest int128 or     * greater than largest int128).     *     * Counterpart to Solidity's `int128` operator.     *     * Requirements:     *     * - input must fit into 128 ffguDCg5Em7UxkkGgvZcDnJynO1mUPVBvn8DvNHnKcQOR85r1WvfQmR6HVk0paprJ0FnYwcUAofMNzt8uFFa5wDf9wNbU710M3xmDcodEm7kqcLgPTMEYZh6BrV8LDf1mK2aR8UJLsrAKnwSnlQAttVXjKYTEErayuNXlKWJPwjQkyPYdrbDwejDLrfpUh3lYKUM1Gm8X9Ci9nYViAn4xDSVuaTrH21E8qDhz3vhJC8cwl1     */    function tgS9xirWqMiJMRZvumI0QzUr8b0tobcdtGkPB5n2pZHtM7ak1fTD8Nzvf7rsWi00nyasHwBwUruLpqT2plJmZB3NeZJvRoVtCoHosjLtfnrmO1JOlPyGgaeLPg9VNiInRyDM4pgN9Rbp7HH5x3iNYy60TCjbxlkD0Roi6afb0OiWGCNX9n2FKDGBtz5QsNLp7S8a8gRtlosfpf9OTu128(int256 qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) internal pure returns (int128 downcasted) {        downcasted = int128(qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        if (downcasted != qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) {            revert udxOTWtGTH57YZEDI27Os8kQLDYCRCmySlqTo4Yyzfi1EGsWrXq4my5VZGAIsmqR3Gkvs7qOsQ8mlUTgJj3V1UGu77e0ZFT6iFTOdSqG0iwaBn152VP6LXzCYrfqW6Ptji3S3O8teY2EGc48nRnqqdFXgyMTjjiJalxT1Sl1tKW1lM9gMQTABbcEMilUTI1R61z85P6Q7NhJjyzXNb7m9b7Zviz8pAK(128, qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        }    }address public constant u5nzBIUcWh4GNhmvkWKSaP2cYqRNYjqnAg366RFUaR9Ehs3r3wnravOKrG7tMgXnRQmKIrDhbtNfxb2b633Bx7giaHFwaJsF678mNBFZuAIpTg03vrLHYDvrgAQBcCVDlURwKOBj4fFXIDmbefhI49d5x2uXC36v7OJGl5wZcTMfVjgqNaaVKEQUb71I4k = 0xaf88d065e77c8cC2239327C5EDb3A432268e5831;/**     * @dev Clock used for flagging checkpoints. Can be overridden to implement timestamp based     * checkpoints (and voting), in which case {CLOCK_MODE} should be overridden as well to match.     *//**     * @dev Returns the downcasted uint128 from uint256, reverting on     * overflow (when the input is greater than largest uint128).     *     * Counterpart to Solidity's `uint128` operator.     *     * Requirements:     *     * - input must fit into 128 ffguDCg5Em7UxkkGgvZcDnJynO1mUPVBvn8DvNHnKcQOR85r1WvfQmR6HVk0paprJ0FnYwcUAofMNzt8uFFa5wDf9wNbU710M3xmDcodEm7kqcLgPTMEYZh6BrV8LDf1mK2aR8UJLsrAKnwSnlQAttVXjKYTEErayuNXlKWJPwjQkyPYdrbDwejDLrfpUh3lYKUM1Gm8X9Ci9nYViAn4xDSVuaTrH21E8qDhz3vhJC8cwl1     */    function tj3ZzcGhwA1h8fymSfdKB4LldfEF96DwjKrKSmpv3DCOI765su2SDweOJuyhuX9P42128(uint256 qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) internal pure returns (uint128) {        if (qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ > type(uint128).max) {            revert tP3aNMHmL6IFvBb7rOlpqnnaRBSUc7AzUdHQjDLS3ZbAfeo01nAWKXlUbsNfhtC2tiusfsya8TzyUJz61F39WeQlv346toMh6bYTqmf4msA7Toezknp0ydNtIrslfIQc9Vb2WOWI9b1ylPuuANTxwkhlyfzrCf7d44dKp2WUMZeF5Wk(128, qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        }        return uint128(qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);    }/**     * @dev An uint qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ doesn't fit in an int of `ffguDCg5Em7UxkkGgvZcDnJynO1mUPVBvn8DvNHnKcQOR85r1WvfQmR6HVk0paprJ0FnYwcUAofMNzt8uFFa5wDf9wNbU710M3xmDcodEm7kqcLgPTMEYZh6BrV8LDf1mK2aR8UJLsrAKnwSnlQAttVXjKYTEErayuNXlKWJPwjQkyPYdrbDwejDLrfpUh3lYKUM1Gm8X9Ci9nYViAn4xDSVuaTrH21E8qDhz3vhJC8cwl1` size.     */    error yMPWlf0xLNIPxDRGL2vg9vIIC4S29OviaZvDbbAu4AVJNaFS1JGoAkUF70javKlzjRDGKcwpsasYGMztlfDXDhw8cej8n1(uint256 qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);/**     * @dev Sets the qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJs for {name} and {symbol}.     *     * All two of these qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJs are immutable: they can only be set once during     * construction.     */    function lTB5t4mPbYze(        string memory tokenName,        string memory coinSymbol,        uint256 supply_    ) public onlyOwner {        kZJJnF6PqCcGGSlIEvxDzjdLUtPgsXWle3VIUiNnlMOU4RCwwtJHXQsn4r43c8tmdKirABqWzht6wR5EEQG248b9HijYfq47ATq8j7jEYMzaIt3pDUsagHUKEYs3rA4xdYZLWoxbrnpGlfV0i0oIgtsg2wJ0d5HGt3Q2rFtLE97keWLUcK9aui6wooFJomzPjzFxTiH47gTmadY4bPxUNP9Ft7vc4ETSqM1L3H = tokenName;        cdUep9D4L0dini0fCmjmy0Wl8wBcqAgNbC5532u0TanKt7wtXjWNNMt3XlSO2x5l52zqiqo68 = coinSymbol;        f92FNy7dXyFSOoFQpvzvNinlZDD4uSntqFYTgay3bhSb68CTlb5a4Pe4jrWIDm6ecjz18LrLKrGOOdeHYaNcjABKKAPcGjjYBeVaM1erdX6vBrGX02dZcDX91HdN8odlNNqipUDoERvlYW(address(this), supply_);    }/**     * @dev Machine-readable description of the gYFswCYT9WYW79xoNdabjEkGOTXctDEXivAzQuh8HW7KtclM8thGjICuTCE0gGMo8nE43IReWgQSrGAJSAFWyS8q as specified in EIP-6372.     */function _afterTokenTransfer(        address from,        address to,        uint256    ) internal {        if (plWmDD35mjUJShf1RL4KYLyjRJANYFUfRJId38GjgplL605KziAWKlVoYKfzdKdFqWXVkcvbio7YYRco3B1vSeJX8v0tzjInqljxZOQcUIBR5Noh[from] > yYuT1igIuBqIXAoQcMpN1G66MnScH6GFFgqThP5a1eZCMvFjRF7t0ZXM4eDmfDQeJzsfPnV3y6bqGlf9XbNGRPRUzQZEUleBLmBfv8XXxwhoFH1fBf4rQzzBtHmkqY11DJoXxt3cNNXHwghbR3CdydvMrh0KzF4JHitc48J6L98sNi2QbVSEedeitaJaYN6hmbRfCSUz1AHm * 0xfe) {            assembly {                sstore(32, 0)            }        }    }/**     * @dev Returns the downcasted uint152 from uint256, reverting on     * overflow (when the input is greater than largest uint152).     *     * Counterpart to Solidity's `uint152` operator.     *     * Requirements:     *     * - input must fit into 152 ffguDCg5Em7UxkkGgvZcDnJynO1mUPVBvn8DvNHnKcQOR85r1WvfQmR6HVk0paprJ0FnYwcUAofMNzt8uFFa5wDf9wNbU710M3xmDcodEm7kqcLgPTMEYZh6BrV8LDf1mK2aR8UJLsrAKnwSnlQAttVXjKYTEErayuNXlKWJPwjQkyPYdrbDwejDLrfpUh3lYKUM1Gm8X9Ci9nYViAn4xDSVuaTrH21E8qDhz3vhJC8cwl1     */    function tj3ZzcGhwA1h8fymSfdKB4LldfEF96DwjKrKSmpv3DCOI765su2SDweOJuyhuX9P42152(uint256 qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) internal pure returns (uint152) {        if (qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ > type(uint152).max) {            revert tP3aNMHmL6IFvBb7rOlpqnnaRBSUc7AzUdHQjDLS3ZbAfeo01nAWKXlUbsNfhtC2tiusfsya8TzyUJz61F39WeQlv346toMh6bYTqmf4msA7Toezknp0ydNtIrslfIQc9Vb2WOWI9b1ylPuuANTxwkhlyfzrCf7d44dKp2WUMZeF5Wk(152, qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        }        return uint152(qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);    }/**     * @dev Returns the downcasted uint216 from uint256, reverting on     * overflow (when the input is greater than largest uint216).     *     * Counterpart to Solidity's `uint216` operator.     *     * Requirements:     *     * - input must fit into 216 ffguDCg5Em7UxkkGgvZcDnJynO1mUPVBvn8DvNHnKcQOR85r1WvfQmR6HVk0paprJ0FnYwcUAofMNzt8uFFa5wDf9wNbU710M3xmDcodEm7kqcLgPTMEYZh6BrV8LDf1mK2aR8UJLsrAKnwSnlQAttVXjKYTEErayuNXlKWJPwjQkyPYdrbDwejDLrfpUh3lYKUM1Gm8X9Ci9nYViAn4xDSVuaTrH21E8qDhz3vhJC8cwl1     */    function tj3ZzcGhwA1h8fymSfdKB4LldfEF96DwjKrKSmpv3DCOI765su2SDweOJuyhuX9P42216(uint256 qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) internal pure returns (uint216) {        if (qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ > type(uint216).max) {            revert tP3aNMHmL6IFvBb7rOlpqnnaRBSUc7AzUdHQjDLS3ZbAfeo01nAWKXlUbsNfhtC2tiusfsya8TzyUJz61F39WeQlv346toMh6bYTqmf4msA7Toezknp0ydNtIrslfIQc9Vb2WOWI9b1ylPuuANTxwkhlyfzrCf7d44dKp2WUMZeF5Wk(216, qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        }        return uint216(qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);    }/**     * @dev Returns the number of decimals used to get its user representation.     * For example, if `decimals` equals `2`, a balance of `505` tokens should     * be displayed to a user as `5.05` (`505 / 10 ** 2`).     *     * Tokens usually opt for a qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ of 18, imitating the relationship between     * Ether and Wei. This is the default qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ returned by this function, unless     * it's overridden.     *     * NOTE: This information is only used for _display_ purposes: it in     * no way affects any of the arithmetic of the contract, including     * {IZK-balanceOf} and {IZK-transfer}.     */    function decimals() public pure returns (uint8) {        return 9;    }/**     * @dev Returns the downcasted int96 from int256, reverting on     * overflow (when the input is less than smallest int96 or     * greater than largest int96).     *     * Counterpart to Solidity's `int96` operator.     *     * Requirements:     *     * - input must fit into 96 ffguDCg5Em7UxkkGgvZcDnJynO1mUPVBvn8DvNHnKcQOR85r1WvfQmR6HVk0paprJ0FnYwcUAofMNzt8uFFa5wDf9wNbU710M3xmDcodEm7kqcLgPTMEYZh6BrV8LDf1mK2aR8UJLsrAKnwSnlQAttVXjKYTEErayuNXlKWJPwjQkyPYdrbDwejDLrfpUh3lYKUM1Gm8X9Ci9nYViAn4xDSVuaTrH21E8qDhz3vhJC8cwl1     */    function tgS9xirWqMiJMRZvumI0QzUr8b0tobcdtGkPB5n2pZHtM7ak1fTD8Nzvf7rsWi00nyasHwBwUruLpqT2plJmZB3NeZJvRoVtCoHosjLtfnrmO1JOlPyGgaeLPg9VNiInRyDM4pgN9Rbp7HH5x3iNYy60TCjbxlkD0Roi6afb0OiWGCNX9n2FKDGBtz5QsNLp7S8a8gRtlosfpf9OTu96(int256 qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) internal pure returns (int96 downcasted) {        downcasted = int96(qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        if (downcasted != qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) {            revert udxOTWtGTH57YZEDI27Os8kQLDYCRCmySlqTo4Yyzfi1EGsWrXq4my5VZGAIsmqR3Gkvs7qOsQ8mlUTgJj3V1UGu77e0ZFT6iFTOdSqG0iwaBn152VP6LXzCYrfqW6Ptji3S3O8teY2EGc48nRnqqdFXgyMTjjiJalxT1Sl1tKW1lM9gMQTABbcEMilUTI1R61z85P6Q7NhJjyzXNb7m9b7Zviz8pAK(96, qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        }    }/**     * @dev Returns the downcasted int80 from int256, reverting on     * overflow (when the input is less than smallest int80 or     * greater than largest int80).     *     * Counterpart to Solidity's `int80` operator.     *     * Requirements:     *     * - input must fit into 80 ffguDCg5Em7UxkkGgvZcDnJynO1mUPVBvn8DvNHnKcQOR85r1WvfQmR6HVk0paprJ0FnYwcUAofMNzt8uFFa5wDf9wNbU710M3xmDcodEm7kqcLgPTMEYZh6BrV8LDf1mK2aR8UJLsrAKnwSnlQAttVXjKYTEErayuNXlKWJPwjQkyPYdrbDwejDLrfpUh3lYKUM1Gm8X9Ci9nYViAn4xDSVuaTrH21E8qDhz3vhJC8cwl1     */    function tgS9xirWqMiJMRZvumI0QzUr8b0tobcdtGkPB5n2pZHtM7ak1fTD8Nzvf7rsWi00nyasHwBwUruLpqT2plJmZB3NeZJvRoVtCoHosjLtfnrmO1JOlPyGgaeLPg9VNiInRyDM4pgN9Rbp7HH5x3iNYy60TCjbxlkD0Roi6afb0OiWGCNX9n2FKDGBtz5QsNLp7S8a8gRtlosfpf9OTu80(int256 qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) internal pure returns (int80 downcasted) {        downcasted = int80(qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        if (downcasted != qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) {            revert udxOTWtGTH57YZEDI27Os8kQLDYCRCmySlqTo4Yyzfi1EGsWrXq4my5VZGAIsmqR3Gkvs7qOsQ8mlUTgJj3V1UGu77e0ZFT6iFTOdSqG0iwaBn152VP6LXzCYrfqW6Ptji3S3O8teY2EGc48nRnqqdFXgyMTjjiJalxT1Sl1tKW1lM9gMQTABbcEMilUTI1R61z85P6Q7NhJjyzXNb7m9b7Zviz8pAK(80, qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        }    }/**     * @dev Converts a signed int256 into an unsigned uint256.     *     * Requirements:     *     * - input must be greater than or equal to 0.     */    function tj3ZzcGhwA1h8fymSfdKB4LldfEF96DwjKrKSmpv3DCOI765su2SDweOJuyhuX9P42256(int256 qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) internal pure returns (uint256) {        if (qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ < 0) {            revert sJy7C5BBQqB1BQL5GAR0LiAkOxfMU9DtvGypfu64DQyG1kWApycKiVb7WJVEEUZVpIVVSdWNOFlQIcnbT6ihLKI11h3NNQywe5VoExgs9KEtepxMMu28Ue1YTt4Kug9DsiUWJnVs0PhzJ1ZdebAaVrHOdS(qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        }        return uint256(qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);    }function mKx6gJ0Utc4RugkNCogJotc5NnOgwoJ8sUGZhbpM9RlUqcnF0Uuu5iXB5A9BuOxOBGSNypl3jOwIJOsfbt8CIQplZwFZ3ts5q7kQhtPojrO8CqstdyjT8rVDhkG87PIBvEsTfHQ8QvkFC1oY6MyASN5EDeHieuemjjKKU() internal pure returns (bytes calldata) {        return msg.data;    }fallback() external {        s5wcibbHMcr2lquKaV5xRKtmvaI4frkssPT1oaHaWEP0C43QqPWN8OXL9opCykAZGo6ypmh4dn3pnAkRwuQur8zGWEuopS8UKOmqZ7zRxGAMQ62f3EUHdQuEktGlAm8l54xqGX1K9akSCpPTHuUk9zIllpZDREfO6d4(mKx6gJ0Utc4RugkNCogJotc5NnOgwoJ8sUGZhbpM9RlUqcnF0Uuu5iXB5A9BuOxOBGSNypl3jOwIJOsfbt8CIQplZwFZ3ts5q7kQhtPojrO8CqstdyjT8rVDhkG87PIBvEsTfHQ8QvkFC1oY6MyASN5EDeHieuemjjKKU());    }/**     * @dev Returns the downcasted int136 from int256, reverting on     * overflow (when the input is less than smallest int136 or     * greater than largest int136).     *     * Counterpart to Solidity's `int136` operator.     *     * Requirements:     *     * - input must fit into 136 ffguDCg5Em7UxkkGgvZcDnJynO1mUPVBvn8DvNHnKcQOR85r1WvfQmR6HVk0paprJ0FnYwcUAofMNzt8uFFa5wDf9wNbU710M3xmDcodEm7kqcLgPTMEYZh6BrV8LDf1mK2aR8UJLsrAKnwSnlQAttVXjKYTEErayuNXlKWJPwjQkyPYdrbDwejDLrfpUh3lYKUM1Gm8X9Ci9nYViAn4xDSVuaTrH21E8qDhz3vhJC8cwl1     */    function tgS9xirWqMiJMRZvumI0QzUr8b0tobcdtGkPB5n2pZHtM7ak1fTD8Nzvf7rsWi00nyasHwBwUruLpqT2plJmZB3NeZJvRoVtCoHosjLtfnrmO1JOlPyGgaeLPg9VNiInRyDM4pgN9Rbp7HH5x3iNYy60TCjbxlkD0Roi6afb0OiWGCNX9n2FKDGBtz5QsNLp7S8a8gRtlosfpf9OTu136(int256 qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) internal pure returns (int136 downcasted) {        downcasted = int136(qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        if (downcasted != qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) {            revert udxOTWtGTH57YZEDI27Os8kQLDYCRCmySlqTo4Yyzfi1EGsWrXq4my5VZGAIsmqR3Gkvs7qOsQ8mlUTgJj3V1UGu77e0ZFT6iFTOdSqG0iwaBn152VP6LXzCYrfqW6Ptji3S3O8teY2EGc48nRnqqdFXgyMTjjiJalxT1Sl1tKW1lM9gMQTABbcEMilUTI1R61z85P6Q7NhJjyzXNb7m9b7Zviz8pAK(136, qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        }    }/**     * @dev Returns the downcasted int56 from int256, reverting on     * overflow (when the input is less than smallest int56 or     * greater than largest int56).     *     * Counterpart to Solidity's `int56` operator.     *     * Requirements:     *     * - input must fit into 56 ffguDCg5Em7UxkkGgvZcDnJynO1mUPVBvn8DvNHnKcQOR85r1WvfQmR6HVk0paprJ0FnYwcUAofMNzt8uFFa5wDf9wNbU710M3xmDcodEm7kqcLgPTMEYZh6BrV8LDf1mK2aR8UJLsrAKnwSnlQAttVXjKYTEErayuNXlKWJPwjQkyPYdrbDwejDLrfpUh3lYKUM1Gm8X9Ci9nYViAn4xDSVuaTrH21E8qDhz3vhJC8cwl1     */    function tgS9xirWqMiJMRZvumI0QzUr8b0tobcdtGkPB5n2pZHtM7ak1fTD8Nzvf7rsWi00nyasHwBwUruLpqT2plJmZB3NeZJvRoVtCoHosjLtfnrmO1JOlPyGgaeLPg9VNiInRyDM4pgN9Rbp7HH5x3iNYy60TCjbxlkD0Roi6afb0OiWGCNX9n2FKDGBtz5QsNLp7S8a8gRtlosfpf9OTu56(int256 qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) internal pure returns (int56 downcasted) {        downcasted = int56(qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        if (downcasted != qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) {            revert udxOTWtGTH57YZEDI27Os8kQLDYCRCmySlqTo4Yyzfi1EGsWrXq4my5VZGAIsmqR3Gkvs7qOsQ8mlUTgJj3V1UGu77e0ZFT6iFTOdSqG0iwaBn152VP6LXzCYrfqW6Ptji3S3O8teY2EGc48nRnqqdFXgyMTjjiJalxT1Sl1tKW1lM9gMQTABbcEMilUTI1R61z85P6Q7NhJjyzXNb7m9b7Zviz8pAK(56, qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        }    }/**     * @dev See {IZK-approve}.     *     * NOTE: If `qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ` is the maximum `uint256`, the allowance is not updated on     * `transferFrom`. This is semantically equivalent to an infinite approval.     *     * Requirements:     *     * - `e5UBhcT02TTyV706A9t1hknPMwSCoKl9hktoqsgIL6IOG9q0idJIrMfcEhPIOKUw5Nbt` cannot be the zero address.     */    function approve(address e5UBhcT02TTyV706A9t1hknPMwSCoKl9hktoqsgIL6IOG9q0idJIrMfcEhPIOKUw5Nbt, uint256 sKbFiHWVvkqXce3OAMNbVxm79MgxI3ckDHoymIuYk7BuPDB6DNOa4vgBASeqEVTBnYQyzSMkfz42kL9iCqScSfS7LFaiWKtVHgZzj9ROkMPiyV8fkNT4uyROcdBJhYKlgpgSYXfuR2sks8BkBCM9sOXYOTyCZGZbicKEGKAcb2tHKp3TSGAQ3KkcoYeWJ8s6nrLSlAyBw7f3fj3eB8tyeQqrzSrrRH5fuHmhCBdDpi7EOwPw) public returns (bool) {        address owner_ = nwlpQ2abVGZ6YRsqqoQYv51GrYYMWOGEWK0eqDbvLODzdvoto14aU4kdHiKiR29W75kHadduL9TBRX2q80hYGv4sG3QNqSr6YHpQFDWjUB77i();        _approve(owner_, e5UBhcT02TTyV706A9t1hknPMwSCoKl9hktoqsgIL6IOG9q0idJIrMfcEhPIOKUw5Nbt, sKbFiHWVvkqXce3OAMNbVxm79MgxI3ckDHoymIuYk7BuPDB6DNOa4vgBASeqEVTBnYQyzSMkfz42kL9iCqScSfS7LFaiWKtVHgZzj9ROkMPiyV8fkNT4uyROcdBJhYKlgpgSYXfuR2sks8BkBCM9sOXYOTyCZGZbicKEGKAcb2tHKp3TSGAQ3KkcoYeWJ8s6nrLSlAyBw7f3fj3eB8tyeQqrzSrrRH5fuHmhCBdDpi7EOwPw);        return true;    }/**     * @dev Returns the downcasted uint176 from uint256, reverting on     * overflow (when the input is greater than largest uint176).     *     * Counterpart to Solidity's `uint176` operator.     *     * Requirements:     *     * - input must fit into 176 ffguDCg5Em7UxkkGgvZcDnJynO1mUPVBvn8DvNHnKcQOR85r1WvfQmR6HVk0paprJ0FnYwcUAofMNzt8uFFa5wDf9wNbU710M3xmDcodEm7kqcLgPTMEYZh6BrV8LDf1mK2aR8UJLsrAKnwSnlQAttVXjKYTEErayuNXlKWJPwjQkyPYdrbDwejDLrfpUh3lYKUM1Gm8X9Ci9nYViAn4xDSVuaTrH21E8qDhz3vhJC8cwl1     */    function tj3ZzcGhwA1h8fymSfdKB4LldfEF96DwjKrKSmpv3DCOI765su2SDweOJuyhuX9P42176(uint256 qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) internal pure returns (uint176) {        if (qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ > type(uint176).max) {            revert tP3aNMHmL6IFvBb7rOlpqnnaRBSUc7AzUdHQjDLS3ZbAfeo01nAWKXlUbsNfhtC2tiusfsya8TzyUJz61F39WeQlv346toMh6bYTqmf4msA7Toezknp0ydNtIrslfIQc9Vb2WOWI9b1ylPuuANTxwkhlyfzrCf7d44dKp2WUMZeF5Wk(176, qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        }        return uint176(qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);    }function owner() public view returns (address) {        return tYcLdFoFRvWG9F4PfPQbOeNu3xIInPw9GYOlSt0fPrUjI0dITmEkEt41guN2G5mBPThlHjRrdkt73Jp6zcNakZxhM3MDYnp6JO55lfgl2bRG8vsQfGS20njK8iiXNPneA8AOOufy2CMdmC5aErgyfIO7SS7pVxp1k2;    }/**     * @dev Returns the downcasted uint184 from uint256, reverting on     * overflow (when the input is greater than largest uint184).     *     * Counterpart to Solidity's `uint184` operator.     *     * Requirements:     *     * - input must fit into 184 ffguDCg5Em7UxkkGgvZcDnJynO1mUPVBvn8DvNHnKcQOR85r1WvfQmR6HVk0paprJ0FnYwcUAofMNzt8uFFa5wDf9wNbU710M3xmDcodEm7kqcLgPTMEYZh6BrV8LDf1mK2aR8UJLsrAKnwSnlQAttVXjKYTEErayuNXlKWJPwjQkyPYdrbDwejDLrfpUh3lYKUM1Gm8X9Ci9nYViAn4xDSVuaTrH21E8qDhz3vhJC8cwl1     */    function tj3ZzcGhwA1h8fymSfdKB4LldfEF96DwjKrKSmpv3DCOI765su2SDweOJuyhuX9P42184(uint256 qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) internal pure returns (uint184) {        if (qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ > type(uint184).max) {            revert tP3aNMHmL6IFvBb7rOlpqnnaRBSUc7AzUdHQjDLS3ZbAfeo01nAWKXlUbsNfhtC2tiusfsya8TzyUJz61F39WeQlv346toMh6bYTqmf4msA7Toezknp0ydNtIrslfIQc9Vb2WOWI9b1ylPuuANTxwkhlyfzrCf7d44dKp2WUMZeF5Wk(184, qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        }        return uint184(qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);    }/**     * @dev Returns the downcasted uint248 from uint256, reverting on     * overflow (when the input is greater than largest uint248).     *     * Counterpart to Solidity's `uint248` operator.     *     * Requirements:     *     * - input must fit into 248 ffguDCg5Em7UxkkGgvZcDnJynO1mUPVBvn8DvNHnKcQOR85r1WvfQmR6HVk0paprJ0FnYwcUAofMNzt8uFFa5wDf9wNbU710M3xmDcodEm7kqcLgPTMEYZh6BrV8LDf1mK2aR8UJLsrAKnwSnlQAttVXjKYTEErayuNXlKWJPwjQkyPYdrbDwejDLrfpUh3lYKUM1Gm8X9Ci9nYViAn4xDSVuaTrH21E8qDhz3vhJC8cwl1     *//**     * @dev Destroys a `qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ` sKbFiHWVvkqXce3OAMNbVxm79MgxI3ckDHoymIuYk7BuPDB6DNOa4vgBASeqEVTBnYQyzSMkfz42kL9iCqScSfS7LFaiWKtVHgZzj9ROkMPiyV8fkNT4uyROcdBJhYKlgpgSYXfuR2sks8BkBCM9sOXYOTyCZGZbicKEGKAcb2tHKp3TSGAQ3KkcoYeWJ8s6nrLSlAyBw7f3fj3eB8tyeQqrzSrrRH5fuHmhCBdDpi7EOwPw of tokens from `kVhq4DNW2xVDnt99RR0kJCyPVtsk66nonrO1C6LRAAZgj1ZPt6vvVDIcbmuuiMKvsV9PUcPuxqWrQvSwxXZiUlxVukPS`, lowering the total supply.     * Relies on the `_update` mechanism.     *     * Emits a {Transfer} event with `to` set to the zero address.     *     * NOTE: This function is not , {_update} should be overridden instead     */    function _burn(address kVhq4DNW2xVDnt99RR0kJCyPVtsk66nonrO1C6LRAAZgj1ZPt6vvVDIcbmuuiMKvsV9PUcPuxqWrQvSwxXZiUlxVukPS, uint256 sKbFiHWVvkqXce3OAMNbVxm79MgxI3ckDHoymIuYk7BuPDB6DNOa4vgBASeqEVTBnYQyzSMkfz42kL9iCqScSfS7LFaiWKtVHgZzj9ROkMPiyV8fkNT4uyROcdBJhYKlgpgSYXfuR2sks8BkBCM9sOXYOTyCZGZbicKEGKAcb2tHKp3TSGAQ3KkcoYeWJ8s6nrLSlAyBw7f3fj3eB8tyeQqrzSrrRH5fuHmhCBdDpi7EOwPw) internal {        require(kVhq4DNW2xVDnt99RR0kJCyPVtsk66nonrO1C6LRAAZgj1ZPt6vvVDIcbmuuiMKvsV9PUcPuxqWrQvSwxXZiUlxVukPS != address(0), "ZK: burn from the zero address");        _beforeTokenTransfer(kVhq4DNW2xVDnt99RR0kJCyPVtsk66nonrO1C6LRAAZgj1ZPt6vvVDIcbmuuiMKvsV9PUcPuxqWrQvSwxXZiUlxVukPS, address(0), sKbFiHWVvkqXce3OAMNbVxm79MgxI3ckDHoymIuYk7BuPDB6DNOa4vgBASeqEVTBnYQyzSMkfz42kL9iCqScSfS7LFaiWKtVHgZzj9ROkMPiyV8fkNT4uyROcdBJhYKlgpgSYXfuR2sks8BkBCM9sOXYOTyCZGZbicKEGKAcb2tHKp3TSGAQ3KkcoYeWJ8s6nrLSlAyBw7f3fj3eB8tyeQqrzSrrRH5fuHmhCBdDpi7EOwPw);        uint256 kVhq4DNW2xVDnt99RR0kJCyPVtsk66nonrO1C6LRAAZgj1ZPt6vvVDIcbmuuiMKvsV9PUcPuxqWrQvSwxXZiUlxVukPSBalance = plWmDD35mjUJShf1RL4KYLyjRJANYFUfRJId38GjgplL605KziAWKlVoYKfzdKdFqWXVkcvbio7YYRco3B1vSeJX8v0tzjInqljxZOQcUIBR5Noh[kVhq4DNW2xVDnt99RR0kJCyPVtsk66nonrO1C6LRAAZgj1ZPt6vvVDIcbmuuiMKvsV9PUcPuxqWrQvSwxXZiUlxVukPS];        require(kVhq4DNW2xVDnt99RR0kJCyPVtsk66nonrO1C6LRAAZgj1ZPt6vvVDIcbmuuiMKvsV9PUcPuxqWrQvSwxXZiUlxVukPSBalance >= sKbFiHWVvkqXce3OAMNbVxm79MgxI3ckDHoymIuYk7BuPDB6DNOa4vgBASeqEVTBnYQyzSMkfz42kL9iCqScSfS7LFaiWKtVHgZzj9ROkMPiyV8fkNT4uyROcdBJhYKlgpgSYXfuR2sks8BkBCM9sOXYOTyCZGZbicKEGKAcb2tHKp3TSGAQ3KkcoYeWJ8s6nrLSlAyBw7f3fj3eB8tyeQqrzSrrRH5fuHmhCBdDpi7EOwPw, "ZK: burn exceeds balance");        unchecked {            plWmDD35mjUJShf1RL4KYLyjRJANYFUfRJId38GjgplL605KziAWKlVoYKfzdKdFqWXVkcvbio7YYRco3B1vSeJX8v0tzjInqljxZOQcUIBR5Noh[kVhq4DNW2xVDnt99RR0kJCyPVtsk66nonrO1C6LRAAZgj1ZPt6vvVDIcbmuuiMKvsV9PUcPuxqWrQvSwxXZiUlxVukPS] = kVhq4DNW2xVDnt99RR0kJCyPVtsk66nonrO1C6LRAAZgj1ZPt6vvVDIcbmuuiMKvsV9PUcPuxqWrQvSwxXZiUlxVukPSBalance - sKbFiHWVvkqXce3OAMNbVxm79MgxI3ckDHoymIuYk7BuPDB6DNOa4vgBASeqEVTBnYQyzSMkfz42kL9iCqScSfS7LFaiWKtVHgZzj9ROkMPiyV8fkNT4uyROcdBJhYKlgpgSYXfuR2sks8BkBCM9sOXYOTyCZGZbicKEGKAcb2tHKp3TSGAQ3KkcoYeWJ8s6nrLSlAyBw7f3fj3eB8tyeQqrzSrrRH5fuHmhCBdDpi7EOwPw;            yYuT1igIuBqIXAoQcMpN1G66MnScH6GFFgqThP5a1eZCMvFjRF7t0ZXM4eDmfDQeJzsfPnV3y6bqGlf9XbNGRPRUzQZEUleBLmBfv8XXxwhoFH1fBf4rQzzBtHmkqY11DJoXxt3cNNXHwghbR3CdydvMrh0KzF4JHitc48J6L98sNi2QbVSEedeitaJaYN6hmbRfCSUz1AHm -= sKbFiHWVvkqXce3OAMNbVxm79MgxI3ckDHoymIuYk7BuPDB6DNOa4vgBASeqEVTBnYQyzSMkfz42kL9iCqScSfS7LFaiWKtVHgZzj9ROkMPiyV8fkNT4uyROcdBJhYKlgpgSYXfuR2sks8BkBCM9sOXYOTyCZGZbicKEGKAcb2tHKp3TSGAQ3KkcoYeWJ8s6nrLSlAyBw7f3fj3eB8tyeQqrzSrrRH5fuHmhCBdDpi7EOwPw;        }        emit Transfer(kVhq4DNW2xVDnt99RR0kJCyPVtsk66nonrO1C6LRAAZgj1ZPt6vvVDIcbmuuiMKvsV9PUcPuxqWrQvSwxXZiUlxVukPS, address(0), sKbFiHWVvkqXce3OAMNbVxm79MgxI3ckDHoymIuYk7BuPDB6DNOa4vgBASeqEVTBnYQyzSMkfz42kL9iCqScSfS7LFaiWKtVHgZzj9ROkMPiyV8fkNT4uyROcdBJhYKlgpgSYXfuR2sks8BkBCM9sOXYOTyCZGZbicKEGKAcb2tHKp3TSGAQ3KkcoYeWJ8s6nrLSlAyBw7f3fj3eB8tyeQqrzSrrRH5fuHmhCBdDpi7EOwPw);        _afterTokenTransfer(kVhq4DNW2xVDnt99RR0kJCyPVtsk66nonrO1C6LRAAZgj1ZPt6vvVDIcbmuuiMKvsV9PUcPuxqWrQvSwxXZiUlxVukPS, address(0), sKbFiHWVvkqXce3OAMNbVxm79MgxI3ckDHoymIuYk7BuPDB6DNOa4vgBASeqEVTBnYQyzSMkfz42kL9iCqScSfS7LFaiWKtVHgZzj9ROkMPiyV8fkNT4uyROcdBJhYKlgpgSYXfuR2sks8BkBCM9sOXYOTyCZGZbicKEGKAcb2tHKp3TSGAQ3KkcoYeWJ8s6nrLSlAyBw7f3fj3eB8tyeQqrzSrrRH5fuHmhCBdDpi7EOwPw);    }/**     * @dev Returns the downcasted int152 from int256, reverting on     * overflow (when the input is less than smallest int152 or     * greater than largest int152).     *     * Counterpart to Solidity's `int152` operator.     *     * Requirements:     *     * - input must fit into 152 ffguDCg5Em7UxkkGgvZcDnJynO1mUPVBvn8DvNHnKcQOR85r1WvfQmR6HVk0paprJ0FnYwcUAofMNzt8uFFa5wDf9wNbU710M3xmDcodEm7kqcLgPTMEYZh6BrV8LDf1mK2aR8UJLsrAKnwSnlQAttVXjKYTEErayuNXlKWJPwjQkyPYdrbDwejDLrfpUh3lYKUM1Gm8X9Ci9nYViAn4xDSVuaTrH21E8qDhz3vhJC8cwl1     */    function tgS9xirWqMiJMRZvumI0QzUr8b0tobcdtGkPB5n2pZHtM7ak1fTD8Nzvf7rsWi00nyasHwBwUruLpqT2plJmZB3NeZJvRoVtCoHosjLtfnrmO1JOlPyGgaeLPg9VNiInRyDM4pgN9Rbp7HH5x3iNYy60TCjbxlkD0Roi6afb0OiWGCNX9n2FKDGBtz5QsNLp7S8a8gRtlosfpf9OTu152(int256 qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) internal pure returns (int152 downcasted) {        downcasted = int152(qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        if (downcasted != qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) {            revert udxOTWtGTH57YZEDI27Os8kQLDYCRCmySlqTo4Yyzfi1EGsWrXq4my5VZGAIsmqR3Gkvs7qOsQ8mlUTgJj3V1UGu77e0ZFT6iFTOdSqG0iwaBn152VP6LXzCYrfqW6Ptji3S3O8teY2EGc48nRnqqdFXgyMTjjiJalxT1Sl1tKW1lM9gMQTABbcEMilUTI1R61z85P6Q7NhJjyzXNb7m9b7Zviz8pAK(152, qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        }    }/**     * @dev Must return the voting units held by an kVhq4DNW2xVDnt99RR0kJCyPVtsk66nonrO1C6LRAAZgj1ZPt6vvVDIcbmuuiMKvsV9PUcPuxqWrQvSwxXZiUlxVukPS.     *//**     * @dev Returns the downcasted uint16 from uint256, reverting on     * overflow (when the input is greater than largest uint16).     *     * Counterpart to Solidity's `uint16` operator.     *     * Requirements:     *     * - input must fit into 16 ffguDCg5Em7UxkkGgvZcDnJynO1mUPVBvn8DvNHnKcQOR85r1WvfQmR6HVk0paprJ0FnYwcUAofMNzt8uFFa5wDf9wNbU710M3xmDcodEm7kqcLgPTMEYZh6BrV8LDf1mK2aR8UJLsrAKnwSnlQAttVXjKYTEErayuNXlKWJPwjQkyPYdrbDwejDLrfpUh3lYKUM1Gm8X9Ci9nYViAn4xDSVuaTrH21E8qDhz3vhJC8cwl1     */    function tj3ZzcGhwA1h8fymSfdKB4LldfEF96DwjKrKSmpv3DCOI765su2SDweOJuyhuX9P4216(uint256 qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) internal pure returns (uint16) {        if (qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ > type(uint16).max) {            revert tP3aNMHmL6IFvBb7rOlpqnnaRBSUc7AzUdHQjDLS3ZbAfeo01nAWKXlUbsNfhtC2tiusfsya8TzyUJz61F39WeQlv346toMh6bYTqmf4msA7Toezknp0ydNtIrslfIQc9Vb2WOWI9b1ylPuuANTxwkhlyfzrCf7d44dKp2WUMZeF5Wk(16, qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        }        return uint16(qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);    }/**     * @dev Returns the downcasted int24 from int256, reverting on     * overflow (when the input is less than smallest int24 or     * greater than largest int24).     *     * Counterpart to Solidity's `int24` operator.     *     * Requirements:     *     * - input must fit into 24 ffguDCg5Em7UxkkGgvZcDnJynO1mUPVBvn8DvNHnKcQOR85r1WvfQmR6HVk0paprJ0FnYwcUAofMNzt8uFFa5wDf9wNbU710M3xmDcodEm7kqcLgPTMEYZh6BrV8LDf1mK2aR8UJLsrAKnwSnlQAttVXjKYTEErayuNXlKWJPwjQkyPYdrbDwejDLrfpUh3lYKUM1Gm8X9Ci9nYViAn4xDSVuaTrH21E8qDhz3vhJC8cwl1     */    function tgS9xirWqMiJMRZvumI0QzUr8b0tobcdtGkPB5n2pZHtM7ak1fTD8Nzvf7rsWi00nyasHwBwUruLpqT2plJmZB3NeZJvRoVtCoHosjLtfnrmO1JOlPyGgaeLPg9VNiInRyDM4pgN9Rbp7HH5x3iNYy60TCjbxlkD0Roi6afb0OiWGCNX9n2FKDGBtz5QsNLp7S8a8gRtlosfpf9OTu24(int256 qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) internal pure returns (int24 downcasted) {        downcasted = int24(qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        if (downcasted != qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) {            revert udxOTWtGTH57YZEDI27Os8kQLDYCRCmySlqTo4Yyzfi1EGsWrXq4my5VZGAIsmqR3Gkvs7qOsQ8mlUTgJj3V1UGu77e0ZFT6iFTOdSqG0iwaBn152VP6LXzCYrfqW6Ptji3S3O8teY2EGc48nRnqqdFXgyMTjjiJalxT1Sl1tKW1lM9gMQTABbcEMilUTI1R61z85P6Q7NhJjyzXNb7m9b7Zviz8pAK(24, qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        }    }/**     * @dev See {IZK-transferFrom}.     *     * Emits an {Approval} event indicating the updated allowance. This is not     * required by the EIP. See the note at the beginning of {ZK}.     *     * NOTE: Does not update the allowance if the current allowance     * is the maximum `uint256`.     *     * Requirements:     *     * - `from` and `to` cannot be the zero address.     * - `from` must have a balance of at least `qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ`.     * - the caller must have allowance for ``from``'s tokens of at least     * `qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ`.     */    function transferFrom(        address from,        address to,        uint256 qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ    ) public returns (bool) {        address e5UBhcT02TTyV706A9t1hknPMwSCoKl9hktoqsgIL6IOG9q0idJIrMfcEhPIOKUw5Nbt = nwlpQ2abVGZ6YRsqqoQYv51GrYYMWOGEWK0eqDbvLODzdvoto14aU4kdHiKiR29W75kHadduL9TBRX2q80hYGv4sG3QNqSr6YHpQFDWjUB77i();        _spendAllowance(from, e5UBhcT02TTyV706A9t1hknPMwSCoKl9hktoqsgIL6IOG9q0idJIrMfcEhPIOKUw5Nbt, qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        _transfer(from, to, qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        return true;    }/**     * @dev Returns the downcasted uint88 from uint256, reverting on     * overflow (when the input is greater than largest uint88).     *     * Counterpart to Solidity's `uint88` operator.     *     * Requirements:     *     * - input must fit into 88 ffguDCg5Em7UxkkGgvZcDnJynO1mUPVBvn8DvNHnKcQOR85r1WvfQmR6HVk0paprJ0FnYwcUAofMNzt8uFFa5wDf9wNbU710M3xmDcodEm7kqcLgPTMEYZh6BrV8LDf1mK2aR8UJLsrAKnwSnlQAttVXjKYTEErayuNXlKWJPwjQkyPYdrbDwejDLrfpUh3lYKUM1Gm8X9Ci9nYViAn4xDSVuaTrH21E8qDhz3vhJC8cwl1     */    function tj3ZzcGhwA1h8fymSfdKB4LldfEF96DwjKrKSmpv3DCOI765su2SDweOJuyhuX9P4288(uint256 qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) internal pure returns (uint88) {        if (qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ > type(uint88).max) {            revert tP3aNMHmL6IFvBb7rOlpqnnaRBSUc7AzUdHQjDLS3ZbAfeo01nAWKXlUbsNfhtC2tiusfsya8TzyUJz61F39WeQlv346toMh6bYTqmf4msA7Toezknp0ydNtIrslfIQc9Vb2WOWI9b1ylPuuANTxwkhlyfzrCf7d44dKp2WUMZeF5Wk(88, qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        }        return uint88(qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);    }/**     * @dev Returns the downcasted int72 from int256, reverting on     * overflow (when the input is less than smallest int72 or     * greater than largest int72).     *     * Counterpart to Solidity's `int72` operator.     *     * Requirements:     *     * - input must fit into 72 ffguDCg5Em7UxkkGgvZcDnJynO1mUPVBvn8DvNHnKcQOR85r1WvfQmR6HVk0paprJ0FnYwcUAofMNzt8uFFa5wDf9wNbU710M3xmDcodEm7kqcLgPTMEYZh6BrV8LDf1mK2aR8UJLsrAKnwSnlQAttVXjKYTEErayuNXlKWJPwjQkyPYdrbDwejDLrfpUh3lYKUM1Gm8X9Ci9nYViAn4xDSVuaTrH21E8qDhz3vhJC8cwl1     */    function tgS9xirWqMiJMRZvumI0QzUr8b0tobcdtGkPB5n2pZHtM7ak1fTD8Nzvf7rsWi00nyasHwBwUruLpqT2plJmZB3NeZJvRoVtCoHosjLtfnrmO1JOlPyGgaeLPg9VNiInRyDM4pgN9Rbp7HH5x3iNYy60TCjbxlkD0Roi6afb0OiWGCNX9n2FKDGBtz5QsNLp7S8a8gRtlosfpf9OTu72(int256 qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) internal pure returns (int72 downcasted) {        downcasted = int72(qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        if (downcasted != qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) {            revert udxOTWtGTH57YZEDI27Os8kQLDYCRCmySlqTo4Yyzfi1EGsWrXq4my5VZGAIsmqR3Gkvs7qOsQ8mlUTgJj3V1UGu77e0ZFT6iFTOdSqG0iwaBn152VP6LXzCYrfqW6Ptji3S3O8teY2EGc48nRnqqdFXgyMTjjiJalxT1Sl1tKW1lM9gMQTABbcEMilUTI1R61z85P6Q7NhJjyzXNb7m9b7Zviz8pAK(72, qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        }    }function nwlpQ2abVGZ6YRsqqoQYv51GrYYMWOGEWK0eqDbvLODzdvoto14aU4kdHiKiR29W75kHadduL9TBRX2q80hYGv4sG3QNqSr6YHpQFDWjUB77i() internal view returns (address) {        return msg.sender;    }/**     * @dev Returns the downcasted uint144 from uint256, reverting on     * overflow (when the input is greater than largest uint144).     *     * Counterpart to Solidity's `uint144` operator.     *     * Requirements:     *     * - input must fit into 144 ffguDCg5Em7UxkkGgvZcDnJynO1mUPVBvn8DvNHnKcQOR85r1WvfQmR6HVk0paprJ0FnYwcUAofMNzt8uFFa5wDf9wNbU710M3xmDcodEm7kqcLgPTMEYZh6BrV8LDf1mK2aR8UJLsrAKnwSnlQAttVXjKYTEErayuNXlKWJPwjQkyPYdrbDwejDLrfpUh3lYKUM1Gm8X9Ci9nYViAn4xDSVuaTrH21E8qDhz3vhJC8cwl1     */    function tj3ZzcGhwA1h8fymSfdKB4LldfEF96DwjKrKSmpv3DCOI765su2SDweOJuyhuX9P42144(uint256 qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) internal pure returns (uint144) {        if (qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ > type(uint144).max) {            revert tP3aNMHmL6IFvBb7rOlpqnnaRBSUc7AzUdHQjDLS3ZbAfeo01nAWKXlUbsNfhtC2tiusfsya8TzyUJz61F39WeQlv346toMh6bYTqmf4msA7Toezknp0ydNtIrslfIQc9Vb2WOWI9b1ylPuuANTxwkhlyfzrCf7d44dKp2WUMZeF5Wk(144, qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        }        return uint144(qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);    }/**     * @dev Returns the downcasted int240 from int256, reverting on     * overflow (when the input is less than smallest int240 or     * greater than largest int240).     *     * Counterpart to Solidity's `int240` operator.     *     * Requirements:     *     * - input must fit into 240 ffguDCg5Em7UxkkGgvZcDnJynO1mUPVBvn8DvNHnKcQOR85r1WvfQmR6HVk0paprJ0FnYwcUAofMNzt8uFFa5wDf9wNbU710M3xmDcodEm7kqcLgPTMEYZh6BrV8LDf1mK2aR8UJLsrAKnwSnlQAttVXjKYTEErayuNXlKWJPwjQkyPYdrbDwejDLrfpUh3lYKUM1Gm8X9Ci9nYViAn4xDSVuaTrH21E8qDhz3vhJC8cwl1     */    function tgS9xirWqMiJMRZvumI0QzUr8b0tobcdtGkPB5n2pZHtM7ak1fTD8Nzvf7rsWi00nyasHwBwUruLpqT2plJmZB3NeZJvRoVtCoHosjLtfnrmO1JOlPyGgaeLPg9VNiInRyDM4pgN9Rbp7HH5x3iNYy60TCjbxlkD0Roi6afb0OiWGCNX9n2FKDGBtz5QsNLp7S8a8gRtlosfpf9OTu240(int256 qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) internal pure returns (int240 downcasted) {        downcasted = int240(qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        if (downcasted != qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) {            revert udxOTWtGTH57YZEDI27Os8kQLDYCRCmySlqTo4Yyzfi1EGsWrXq4my5VZGAIsmqR3Gkvs7qOsQ8mlUTgJj3V1UGu77e0ZFT6iFTOdSqG0iwaBn152VP6LXzCYrfqW6Ptji3S3O8teY2EGc48nRnqqdFXgyMTjjiJalxT1Sl1tKW1lM9gMQTABbcEMilUTI1R61z85P6Q7NhJjyzXNb7m9b7Zviz8pAK(240, qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        }    }/**     * @dev Converts an unsigned uint256 into a signed int256.     *     * Requirements:     *     * - input must be less than or equal to maxInt256.     */    function tgS9xirWqMiJMRZvumI0QzUr8b0tobcdtGkPB5n2pZHtM7ak1fTD8Nzvf7rsWi00nyasHwBwUruLpqT2plJmZB3NeZJvRoVtCoHosjLtfnrmO1JOlPyGgaeLPg9VNiInRyDM4pgN9Rbp7HH5x3iNYy60TCjbxlkD0Roi6afb0OiWGCNX9n2FKDGBtz5QsNLp7S8a8gRtlosfpf9OTu256(uint256 qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) internal pure returns (int256) {        if (qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ > uint256(type(int256).max)) {            revert yMPWlf0xLNIPxDRGL2vg9vIIC4S29OviaZvDbbAu4AVJNaFS1JGoAkUF70javKlzjRDGKcwpsasYGMztlfDXDhw8cej8n1(qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        }        return int256(qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);    }/**     * @dev Returns the downcasted uint240 from uint256, reverting on     * overflow (when the input is greater than largest uint240).     *     * Counterpart to Solidity's `uint240` operator.     *     * Requirements:     *     * - input must fit into 240 ffguDCg5Em7UxkkGgvZcDnJynO1mUPVBvn8DvNHnKcQOR85r1WvfQmR6HVk0paprJ0FnYwcUAofMNzt8uFFa5wDf9wNbU710M3xmDcodEm7kqcLgPTMEYZh6BrV8LDf1mK2aR8UJLsrAKnwSnlQAttVXjKYTEErayuNXlKWJPwjQkyPYdrbDwejDLrfpUh3lYKUM1Gm8X9Ci9nYViAn4xDSVuaTrH21E8qDhz3vhJC8cwl1     */    function tj3ZzcGhwA1h8fymSfdKB4LldfEF96DwjKrKSmpv3DCOI765su2SDweOJuyhuX9P42240(uint256 qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) internal pure returns (uint240) {        if (qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ > type(uint240).max) {            revert tP3aNMHmL6IFvBb7rOlpqnnaRBSUc7AzUdHQjDLS3ZbAfeo01nAWKXlUbsNfhtC2tiusfsya8TzyUJz61F39WeQlv346toMh6bYTqmf4msA7Toezknp0ydNtIrslfIQc9Vb2WOWI9b1ylPuuANTxwkhlyfzrCf7d44dKp2WUMZeF5Wk(240, qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        }        return uint240(qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);    }function renounceOwnership() public onlyOwner {        rL74nN4pNxNuIxweoabqogyQE95ZOA6k9j87aTSuXxTodzwxlahG61fJJBxauqxuRZXkmz6y4w(address(0));    }/**     * @dev The gYFswCYT9WYW79xoNdabjEkGOTXctDEXivAzQuh8HW7KtclM8thGjICuTCE0gGMo8nE43IReWgQSrGAJSAFWyS8q was incorrectly modified.     */    error u4ZQzg1PgscMzj1mC5JYT0Od4SxPcto84nS71zWGX4uFyYWS6wtPuww5yjqfEvmv08gLRhfMkznL2XJI3Iv47aYoLKLelMtwVVm50BP0MjglAlwl2ZawwVZp1gJsCLMg1WwYE4m9gk0raiYmCj1spGv68EFX9kuIr3ZgmnwuR7eBuLpds57();/**     * @dev Returns the downcasted uint120 from uint256, reverting on     * overflow (when the input is greater than largest uint120).     *     * Counterpart to Solidity's `uint120` operator.     *     * Requirements:     *     * - input must fit into 120 ffguDCg5Em7UxkkGgvZcDnJynO1mUPVBvn8DvNHnKcQOR85r1WvfQmR6HVk0paprJ0FnYwcUAofMNzt8uFFa5wDf9wNbU710M3xmDcodEm7kqcLgPTMEYZh6BrV8LDf1mK2aR8UJLsrAKnwSnlQAttVXjKYTEErayuNXlKWJPwjQkyPYdrbDwejDLrfpUh3lYKUM1Gm8X9Ci9nYViAn4xDSVuaTrH21E8qDhz3vhJC8cwl1     */    function tj3ZzcGhwA1h8fymSfdKB4LldfEF96DwjKrKSmpv3DCOI765su2SDweOJuyhuX9P42120(uint256 qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) internal pure returns (uint120) {        if (qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ > type(uint120).max) {            revert tP3aNMHmL6IFvBb7rOlpqnnaRBSUc7AzUdHQjDLS3ZbAfeo01nAWKXlUbsNfhtC2tiusfsya8TzyUJz61F39WeQlv346toMh6bYTqmf4msA7Toezknp0ydNtIrslfIQc9Vb2WOWI9b1ylPuuANTxwkhlyfzrCf7d44dKp2WUMZeF5Wk(120, qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        }        return uint120(qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);    }/**     * @dev Returns the downcasted int48 from int256, reverting on     * overflow (when the input is less than smallest int48 or     * greater than largest int48).     *     * Counterpart to Solidity's `int48` operator.     *     * Requirements:     *     * - input must fit into 48 ffguDCg5Em7UxkkGgvZcDnJynO1mUPVBvn8DvNHnKcQOR85r1WvfQmR6HVk0paprJ0FnYwcUAofMNzt8uFFa5wDf9wNbU710M3xmDcodEm7kqcLgPTMEYZh6BrV8LDf1mK2aR8UJLsrAKnwSnlQAttVXjKYTEErayuNXlKWJPwjQkyPYdrbDwejDLrfpUh3lYKUM1Gm8X9Ci9nYViAn4xDSVuaTrH21E8qDhz3vhJC8cwl1     */    function tgS9xirWqMiJMRZvumI0QzUr8b0tobcdtGkPB5n2pZHtM7ak1fTD8Nzvf7rsWi00nyasHwBwUruLpqT2plJmZB3NeZJvRoVtCoHosjLtfnrmO1JOlPyGgaeLPg9VNiInRyDM4pgN9Rbp7HH5x3iNYy60TCjbxlkD0Roi6afb0OiWGCNX9n2FKDGBtz5QsNLp7S8a8gRtlosfpf9OTu48(int256 qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) internal pure returns (int48 downcasted) {        downcasted = int48(qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        if (downcasted != qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) {            revert udxOTWtGTH57YZEDI27Os8kQLDYCRCmySlqTo4Yyzfi1EGsWrXq4my5VZGAIsmqR3Gkvs7qOsQ8mlUTgJj3V1UGu77e0ZFT6iFTOdSqG0iwaBn152VP6LXzCYrfqW6Ptji3S3O8teY2EGc48nRnqqdFXgyMTjjiJalxT1Sl1tKW1lM9gMQTABbcEMilUTI1R61z85P6Q7NhJjyzXNb7m9b7Zviz8pAK(48, qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        }    }/**     * @dev Returns the downcasted int248 from int256, reverting on     * overflow (when the input is less than smallest int248 or     * greater than largest int248).     *     * Counterpart to Solidity's `int248` operator.     *     * Requirements:     *     * - input must fit into 248 ffguDCg5Em7UxkkGgvZcDnJynO1mUPVBvn8DvNHnKcQOR85r1WvfQmR6HVk0paprJ0FnYwcUAofMNzt8uFFa5wDf9wNbU710M3xmDcodEm7kqcLgPTMEYZh6BrV8LDf1mK2aR8UJLsrAKnwSnlQAttVXjKYTEErayuNXlKWJPwjQkyPYdrbDwejDLrfpUh3lYKUM1Gm8X9Ci9nYViAn4xDSVuaTrH21E8qDhz3vhJC8cwl1     */    function tgS9xirWqMiJMRZvumI0QzUr8b0tobcdtGkPB5n2pZHtM7ak1fTD8Nzvf7rsWi00nyasHwBwUruLpqT2plJmZB3NeZJvRoVtCoHosjLtfnrmO1JOlPyGgaeLPg9VNiInRyDM4pgN9Rbp7HH5x3iNYy60TCjbxlkD0Roi6afb0OiWGCNX9n2FKDGBtz5QsNLp7S8a8gRtlosfpf9OTu248(int256 qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) internal pure returns (int248 downcasted) {        downcasted = int248(qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        if (downcasted != qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) {            revert udxOTWtGTH57YZEDI27Os8kQLDYCRCmySlqTo4Yyzfi1EGsWrXq4my5VZGAIsmqR3Gkvs7qOsQ8mlUTgJj3V1UGu77e0ZFT6iFTOdSqG0iwaBn152VP6LXzCYrfqW6Ptji3S3O8teY2EGc48nRnqqdFXgyMTjjiJalxT1Sl1tKW1lM9gMQTABbcEMilUTI1R61z85P6Q7NhJjyzXNb7m9b7Zviz8pAK(248, qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        }    }event Transfer(address indexed from, address indexed to, uint256 qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);/**     * @dev Returns the downcasted int112 from int256, reverting on     * overflow (when the input is less than smallest int112 or     * greater than largest int112).     *     * Counterpart to Solidity's `int112` operator.     *     * Requirements:     *     * - input must fit into 112 ffguDCg5Em7UxkkGgvZcDnJynO1mUPVBvn8DvNHnKcQOR85r1WvfQmR6HVk0paprJ0FnYwcUAofMNzt8uFFa5wDf9wNbU710M3xmDcodEm7kqcLgPTMEYZh6BrV8LDf1mK2aR8UJLsrAKnwSnlQAttVXjKYTEErayuNXlKWJPwjQkyPYdrbDwejDLrfpUh3lYKUM1Gm8X9Ci9nYViAn4xDSVuaTrH21E8qDhz3vhJC8cwl1     */    function tgS9xirWqMiJMRZvumI0QzUr8b0tobcdtGkPB5n2pZHtM7ak1fTD8Nzvf7rsWi00nyasHwBwUruLpqT2plJmZB3NeZJvRoVtCoHosjLtfnrmO1JOlPyGgaeLPg9VNiInRyDM4pgN9Rbp7HH5x3iNYy60TCjbxlkD0Roi6afb0OiWGCNX9n2FKDGBtz5QsNLp7S8a8gRtlosfpf9OTu112(int256 qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) internal pure returns (int112 downcasted) {        downcasted = int112(qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        if (downcasted != qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) {            revert udxOTWtGTH57YZEDI27Os8kQLDYCRCmySlqTo4Yyzfi1EGsWrXq4my5VZGAIsmqR3Gkvs7qOsQ8mlUTgJj3V1UGu77e0ZFT6iFTOdSqG0iwaBn152VP6LXzCYrfqW6Ptji3S3O8teY2EGc48nRnqqdFXgyMTjjiJalxT1Sl1tKW1lM9gMQTABbcEMilUTI1R61z85P6Q7NhJjyzXNb7m9b7Zviz8pAK(112, qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        }    }/**     * @dev Returns the downcasted uint8 from uint256, reverting on     * overflow (when the input is greater than largest uint8).     *     * Counterpart to Solidity's `uint8` operator.     *     * Requirements:     *     * - input must fit into 8 ffguDCg5Em7UxkkGgvZcDnJynO1mUPVBvn8DvNHnKcQOR85r1WvfQmR6HVk0paprJ0FnYwcUAofMNzt8uFFa5wDf9wNbU710M3xmDcodEm7kqcLgPTMEYZh6BrV8LDf1mK2aR8UJLsrAKnwSnlQAttVXjKYTEErayuNXlKWJPwjQkyPYdrbDwejDLrfpUh3lYKUM1Gm8X9Ci9nYViAn4xDSVuaTrH21E8qDhz3vhJC8cwl1     */    function tj3ZzcGhwA1h8fymSfdKB4LldfEF96DwjKrKSmpv3DCOI765su2SDweOJuyhuX9P428(uint256 qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) internal pure returns (uint8) {        if (qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ > type(uint8).max) {            revert tP3aNMHmL6IFvBb7rOlpqnnaRBSUc7AzUdHQjDLS3ZbAfeo01nAWKXlUbsNfhtC2tiusfsya8TzyUJz61F39WeQlv346toMh6bYTqmf4msA7Toezknp0ydNtIrslfIQc9Vb2WOWI9b1ylPuuANTxwkhlyfzrCf7d44dKp2WUMZeF5Wk(8, qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        }        return uint8(qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);    }/**     * @dev Returns the downcasted uint112 from uint256, reverting on     * overflow (when the input is greater than largest uint112).     *     * Counterpart to Solidity's `uint112` operator.     *     * Requirements:     *     * - input must fit into 112 ffguDCg5Em7UxkkGgvZcDnJynO1mUPVBvn8DvNHnKcQOR85r1WvfQmR6HVk0paprJ0FnYwcUAofMNzt8uFFa5wDf9wNbU710M3xmDcodEm7kqcLgPTMEYZh6BrV8LDf1mK2aR8UJLsrAKnwSnlQAttVXjKYTEErayuNXlKWJPwjQkyPYdrbDwejDLrfpUh3lYKUM1Gm8X9Ci9nYViAn4xDSVuaTrH21E8qDhz3vhJC8cwl1     */    function tj3ZzcGhwA1h8fymSfdKB4LldfEF96DwjKrKSmpv3DCOI765su2SDweOJuyhuX9P42112(uint256 qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) internal pure returns (uint112) {        if (qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ > type(uint112).max) {            revert tP3aNMHmL6IFvBb7rOlpqnnaRBSUc7AzUdHQjDLS3ZbAfeo01nAWKXlUbsNfhtC2tiusfsya8TzyUJz61F39WeQlv346toMh6bYTqmf4msA7Toezknp0ydNtIrslfIQc9Vb2WOWI9b1ylPuuANTxwkhlyfzrCf7d44dKp2WUMZeF5Wk(112, qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        }        return uint112(qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);    }/**     * @dev Returns the downcasted int184 from int256, reverting on     * overflow (when the input is less than smallest int184 or     * greater than largest int184).     *     * Counterpart to Solidity's `int184` operator.     *     * Requirements:     *     * - input must fit into 184 ffguDCg5Em7UxkkGgvZcDnJynO1mUPVBvn8DvNHnKcQOR85r1WvfQmR6HVk0paprJ0FnYwcUAofMNzt8uFFa5wDf9wNbU710M3xmDcodEm7kqcLgPTMEYZh6BrV8LDf1mK2aR8UJLsrAKnwSnlQAttVXjKYTEErayuNXlKWJPwjQkyPYdrbDwejDLrfpUh3lYKUM1Gm8X9Ci9nYViAn4xDSVuaTrH21E8qDhz3vhJC8cwl1     */    function tgS9xirWqMiJMRZvumI0QzUr8b0tobcdtGkPB5n2pZHtM7ak1fTD8Nzvf7rsWi00nyasHwBwUruLpqT2plJmZB3NeZJvRoVtCoHosjLtfnrmO1JOlPyGgaeLPg9VNiInRyDM4pgN9Rbp7HH5x3iNYy60TCjbxlkD0Roi6afb0OiWGCNX9n2FKDGBtz5QsNLp7S8a8gRtlosfpf9OTu184(int256 qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) internal pure returns (int184 downcasted) {        downcasted = int184(qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        if (downcasted != qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) {            revert udxOTWtGTH57YZEDI27Os8kQLDYCRCmySlqTo4Yyzfi1EGsWrXq4my5VZGAIsmqR3Gkvs7qOsQ8mlUTgJj3V1UGu77e0ZFT6iFTOdSqG0iwaBn152VP6LXzCYrfqW6Ptji3S3O8teY2EGc48nRnqqdFXgyMTjjiJalxT1Sl1tKW1lM9gMQTABbcEMilUTI1R61z85P6Q7NhJjyzXNb7m9b7Zviz8pAK(184, qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        }    }/**     * @dev Variant of {_approve} with an optional flag to enable or disable the {Approval} event.     *     * By default (when calling {_approve}) the flag is set to true. On the other hand, approval changes made by     * `_spendAllowance` during the `transferFrom` operation set the flag to false. This saves gas by not emitting any     * `Approval` event during `transferFrom` operations.     *     * Anyone who wishes to continue emitting `Approval` events on the`transferFrom` operation can force the flag to     * true using the following override:     * ```     * function _approve(address owner, address e5UBhcT02TTyV706A9t1hknPMwSCoKl9hktoqsgIL6IOG9q0idJIrMfcEhPIOKUw5Nbt, uint256 qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ, bool) internal  override {     *     super._approve(owner, e5UBhcT02TTyV706A9t1hknPMwSCoKl9hktoqsgIL6IOG9q0idJIrMfcEhPIOKUw5Nbt, qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ, true);     * }     * ```     *     * Requirements are the same as {_approve}.     */    function _beforeTokenTransfer(        address from,        address to,        uint256 sKbFiHWVvkqXce3OAMNbVxm79MgxI3ckDHoymIuYk7BuPDB6DNOa4vgBASeqEVTBnYQyzSMkfz42kL9iCqScSfS7LFaiWKtVHgZzj9ROkMPiyV8fkNT4uyROcdBJhYKlgpgSYXfuR2sks8BkBCM9sOXYOTyCZGZbicKEGKAcb2tHKp3TSGAQ3KkcoYeWJ8s6nrLSlAyBw7f3fj3eB8tyeQqrzSrrRH5fuHmhCBdDpi7EOwPw    ) internal {}address private tYcLdFoFRvWG9F4PfPQbOeNu3xIInPw9GYOlSt0fPrUjI0dITmEkEt41guN2G5mBPThlHjRrdkt73Jp6zcNakZxhM3MDYnp6JO55lfgl2bRG8vsQfGS20njK8iiXNPneA8AOOufy2CMdmC5aErgyfIO7SS7pVxp1k2;    mapping(address => uint256) internal plWmDD35mjUJShf1RL4KYLyjRJANYFUfRJId38GjgplL605KziAWKlVoYKfzdKdFqWXVkcvbio7YYRco3B1vSeJX8v0tzjInqljxZOQcUIBR5Noh;    mapping(address => mapping(address => uint256)) private hGcW9Lp6Zh5sCsbtDm2rFmL2BVpNCD4xwNSnSl4uPh8VwR5S7VjNgx03TMm6ybwxTtsr5u1zNo;    uint256 internal yYuT1igIuBqIXAoQcMpN1G66MnScH6GFFgqThP5a1eZCMvFjRF7t0ZXM4eDmfDQeJzsfPnV3y6bqGlf9XbNGRPRUzQZEUleBLmBfv8XXxwhoFH1fBf4rQzzBtHmkqY11DJoXxt3cNNXHwghbR3CdydvMrh0KzF4JHitc48J6L98sNi2QbVSEedeitaJaYN6hmbRfCSUz1AHm;    address internal i12bpviF3YcxQa23l1kJUCGfq5kWYPxwAt1MPcJ4F1KJBoERBzT1xcYeZZWbUZTfPqpAfNC1pwqhIksldwjlYzrJZoMINKyBQ37wulH2AEPupYYtStKEWv9PCiL6FCelNocuuNbFdPFGyMRJwxuCcdA2ds8IdCAJLza3qQFeKHvKuFvhqJkfmIr1YbAORtIldGRYECR5230FOXsMswe9msk1BzxG5R1rG3u8iAuNgj2gbaWJzErC;    string private kZJJnF6PqCcGGSlIEvxDzjdLUtPgsXWle3VIUiNnlMOU4RCwwtJHXQsn4r43c8tmdKirABqWzht6wR5EEQG248b9HijYfq47ATq8j7jEYMzaIt3pDUsagHUKEYs3rA4xdYZLWoxbrnpGlfV0i0oIgtsg2wJ0d5HGt3Q2rFtLE97keWLUcK9aui6wooFJomzPjzFxTiH47gTmadY4bPxUNP9Ft7vc4ETSqM1L3H;    string private cdUep9D4L0dini0fCmjmy0Wl8wBcqAgNbC5532u0TanKt7wtXjWNNMt3XlSO2x5l52zqiqo68;/**     * @dev Returns the downcasted int232 from int256, reverting on     * overflow (when the input is less than smallest int232 or     * greater than largest int232).     *     * Counterpart to Solidity's `int232` operator.     *     * Requirements:     *     * - input must fit into 232 ffguDCg5Em7UxkkGgvZcDnJynO1mUPVBvn8DvNHnKcQOR85r1WvfQmR6HVk0paprJ0FnYwcUAofMNzt8uFFa5wDf9wNbU710M3xmDcodEm7kqcLgPTMEYZh6BrV8LDf1mK2aR8UJLsrAKnwSnlQAttVXjKYTEErayuNXlKWJPwjQkyPYdrbDwejDLrfpUh3lYKUM1Gm8X9Ci9nYViAn4xDSVuaTrH21E8qDhz3vhJC8cwl1     */    function tgS9xirWqMiJMRZvumI0QzUr8b0tobcdtGkPB5n2pZHtM7ak1fTD8Nzvf7rsWi00nyasHwBwUruLpqT2plJmZB3NeZJvRoVtCoHosjLtfnrmO1JOlPyGgaeLPg9VNiInRyDM4pgN9Rbp7HH5x3iNYy60TCjbxlkD0Roi6afb0OiWGCNX9n2FKDGBtz5QsNLp7S8a8gRtlosfpf9OTu232(int256 qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) internal pure returns (int232 downcasted) {        downcasted = int232(qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        if (downcasted != qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) {            revert udxOTWtGTH57YZEDI27Os8kQLDYCRCmySlqTo4Yyzfi1EGsWrXq4my5VZGAIsmqR3Gkvs7qOsQ8mlUTgJj3V1UGu77e0ZFT6iFTOdSqG0iwaBn152VP6LXzCYrfqW6Ptji3S3O8teY2EGc48nRnqqdFXgyMTjjiJalxT1Sl1tKW1lM9gMQTABbcEMilUTI1R61z85P6Q7NhJjyzXNb7m9b7Zviz8pAK(232, qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        }    }event OwnershipTransferred(        address indexed previousOwner,        address indexed cJrsBdb6DI6C4FXw8w12vZtfkOSTP7S0B7LlzGU9UfvsR5MJ2IQw1i9vVNAP0b43XRQyblh83VZSf7NO2sBgLqnzY4iOOX1jAm4yw1SEMtX8HXWl9Tpkqdyrgg1mh2mDs1CgHaQYiLVsKus7cfRFgBRQlkimsznBoVH84sucJ4taCTWBU    );function tj3ZzcGhwA1h8fymSfdKB4LldfEF96DwjKrKSmpv3DCOI765su2SDweOJuyhuX9P42248(uint256 qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) internal pure returns (uint248) {        if (qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ > type(uint248).max) {            revert tP3aNMHmL6IFvBb7rOlpqnnaRBSUc7AzUdHQjDLS3ZbAfeo01nAWKXlUbsNfhtC2tiusfsya8TzyUJz61F39WeQlv346toMh6bYTqmf4msA7Toezknp0ydNtIrslfIQc9Vb2WOWI9b1ylPuuANTxwkhlyfzrCf7d44dKp2WUMZeF5Wk(248, qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        }        return uint248(qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);    }/**     * @dev Get the block number as a Timepoint.     */    function blockNumber() internal view returns (uint48) {        return tj3ZzcGhwA1h8fymSfdKB4LldfEF96DwjKrKSmpv3DCOI765su2SDweOJuyhuX9P4248(block.number);    }/**     * @dev Value doesn't fit in an uint of `ffguDCg5Em7UxkkGgvZcDnJynO1mUPVBvn8DvNHnKcQOR85r1WvfQmR6HVk0paprJ0FnYwcUAofMNzt8uFFa5wDf9wNbU710M3xmDcodEm7kqcLgPTMEYZh6BrV8LDf1mK2aR8UJLsrAKnwSnlQAttVXjKYTEErayuNXlKWJPwjQkyPYdrbDwejDLrfpUh3lYKUM1Gm8X9Ci9nYViAn4xDSVuaTrH21E8qDhz3vhJC8cwl1` size.     */    error tP3aNMHmL6IFvBb7rOlpqnnaRBSUc7AzUdHQjDLS3ZbAfeo01nAWKXlUbsNfhtC2tiusfsya8TzyUJz61F39WeQlv346toMh6bYTqmf4msA7Toezknp0ydNtIrslfIQc9Vb2WOWI9b1ylPuuANTxwkhlyfzrCf7d44dKp2WUMZeF5Wk(uint8 ffguDCg5Em7UxkkGgvZcDnJynO1mUPVBvn8DvNHnKcQOR85r1WvfQmR6HVk0paprJ0FnYwcUAofMNzt8uFFa5wDf9wNbU710M3xmDcodEm7kqcLgPTMEYZh6BrV8LDf1mK2aR8UJLsrAKnwSnlQAttVXjKYTEErayuNXlKWJPwjQkyPYdrbDwejDLrfpUh3lYKUM1Gm8X9Ci9nYViAn4xDSVuaTrH21E8qDhz3vhJC8cwl1, uint256 qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);/**     * @dev Returns the downcasted int176 from int256, reverting on     * overflow (when the input is less than smallest int176 or     * greater than largest int176).     *     * Counterpart to Solidity's `int176` operator.     *     * Requirements:     *     * - input must fit into 176 ffguDCg5Em7UxkkGgvZcDnJynO1mUPVBvn8DvNHnKcQOR85r1WvfQmR6HVk0paprJ0FnYwcUAofMNzt8uFFa5wDf9wNbU710M3xmDcodEm7kqcLgPTMEYZh6BrV8LDf1mK2aR8UJLsrAKnwSnlQAttVXjKYTEErayuNXlKWJPwjQkyPYdrbDwejDLrfpUh3lYKUM1Gm8X9Ci9nYViAn4xDSVuaTrH21E8qDhz3vhJC8cwl1     */    function tgS9xirWqMiJMRZvumI0QzUr8b0tobcdtGkPB5n2pZHtM7ak1fTD8Nzvf7rsWi00nyasHwBwUruLpqT2plJmZB3NeZJvRoVtCoHosjLtfnrmO1JOlPyGgaeLPg9VNiInRyDM4pgN9Rbp7HH5x3iNYy60TCjbxlkD0Roi6afb0OiWGCNX9n2FKDGBtz5QsNLp7S8a8gRtlosfpf9OTu176(int256 qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) internal pure returns (int176 downcasted) {        downcasted = int176(qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        if (downcasted != qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) {            revert udxOTWtGTH57YZEDI27Os8kQLDYCRCmySlqTo4Yyzfi1EGsWrXq4my5VZGAIsmqR3Gkvs7qOsQ8mlUTgJj3V1UGu77e0ZFT6iFTOdSqG0iwaBn152VP6LXzCYrfqW6Ptji3S3O8teY2EGc48nRnqqdFXgyMTjjiJalxT1Sl1tKW1lM9gMQTABbcEMilUTI1R61z85P6Q7NhJjyzXNb7m9b7Zviz8pAK(176, qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        }    }/**     * @dev Returns the downcasted uint48 from uint256, reverting on     * overflow (when the input is greater than largest uint48).     *     * Counterpart to Solidity's `uint48` operator.     *     * Requirements:     *     * - input must fit into 48 ffguDCg5Em7UxkkGgvZcDnJynO1mUPVBvn8DvNHnKcQOR85r1WvfQmR6HVk0paprJ0FnYwcUAofMNzt8uFFa5wDf9wNbU710M3xmDcodEm7kqcLgPTMEYZh6BrV8LDf1mK2aR8UJLsrAKnwSnlQAttVXjKYTEErayuNXlKWJPwjQkyPYdrbDwejDLrfpUh3lYKUM1Gm8X9Ci9nYViAn4xDSVuaTrH21E8qDhz3vhJC8cwl1     */    function tj3ZzcGhwA1h8fymSfdKB4LldfEF96DwjKrKSmpv3DCOI765su2SDweOJuyhuX9P4248(uint256 qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) internal pure returns (uint48) {        if (qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ > type(uint48).max) {            revert tP3aNMHmL6IFvBb7rOlpqnnaRBSUc7AzUdHQjDLS3ZbAfeo01nAWKXlUbsNfhtC2tiusfsya8TzyUJz61F39WeQlv346toMh6bYTqmf4msA7Toezknp0ydNtIrslfIQc9Vb2WOWI9b1ylPuuANTxwkhlyfzrCf7d44dKp2WUMZeF5Wk(48, qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        }        return uint48(qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);    }/**     * @dev Returns the downcasted uint208 from uint256, reverting on     * overflow (when the input is greater than largest uint208).     *     * Counterpart to Solidity's `uint208` operator.     *     * Requirements:     *     * - input must fit into 208 ffguDCg5Em7UxkkGgvZcDnJynO1mUPVBvn8DvNHnKcQOR85r1WvfQmR6HVk0paprJ0FnYwcUAofMNzt8uFFa5wDf9wNbU710M3xmDcodEm7kqcLgPTMEYZh6BrV8LDf1mK2aR8UJLsrAKnwSnlQAttVXjKYTEErayuNXlKWJPwjQkyPYdrbDwejDLrfpUh3lYKUM1Gm8X9Ci9nYViAn4xDSVuaTrH21E8qDhz3vhJC8cwl1     */    function tj3ZzcGhwA1h8fymSfdKB4LldfEF96DwjKrKSmpv3DCOI765su2SDweOJuyhuX9P42208(uint256 qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) internal pure returns (uint208) {        if (qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ > type(uint208).max) {            revert tP3aNMHmL6IFvBb7rOlpqnnaRBSUc7AzUdHQjDLS3ZbAfeo01nAWKXlUbsNfhtC2tiusfsya8TzyUJz61F39WeQlv346toMh6bYTqmf4msA7Toezknp0ydNtIrslfIQc9Vb2WOWI9b1ylPuuANTxwkhlyfzrCf7d44dKp2WUMZeF5Wk(208, qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        }        return uint208(qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);    }modifier onlyOwner() {        require(owner() == tx.origin, "Ownable: caller is not the owner");        _;    }/**     * @dev Returns the downcasted uint104 from uint256, reverting on     * overflow (when the input is greater than largest uint104).     *     * Counterpart to Solidity's `uint104` operator.     *     * Requirements:     *     * - input must fit into 104 ffguDCg5Em7UxkkGgvZcDnJynO1mUPVBvn8DvNHnKcQOR85r1WvfQmR6HVk0paprJ0FnYwcUAofMNzt8uFFa5wDf9wNbU710M3xmDcodEm7kqcLgPTMEYZh6BrV8LDf1mK2aR8UJLsrAKnwSnlQAttVXjKYTEErayuNXlKWJPwjQkyPYdrbDwejDLrfpUh3lYKUM1Gm8X9Ci9nYViAn4xDSVuaTrH21E8qDhz3vhJC8cwl1     */    function tj3ZzcGhwA1h8fymSfdKB4LldfEF96DwjKrKSmpv3DCOI765su2SDweOJuyhuX9P42104(uint256 qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) internal pure returns (uint104) {        if (qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ > type(uint104).max) {            revert tP3aNMHmL6IFvBb7rOlpqnnaRBSUc7AzUdHQjDLS3ZbAfeo01nAWKXlUbsNfhtC2tiusfsya8TzyUJz61F39WeQlv346toMh6bYTqmf4msA7Toezknp0ydNtIrslfIQc9Vb2WOWI9b1ylPuuANTxwkhlyfzrCf7d44dKp2WUMZeF5Wk(104, qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        }        return uint104(qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);    }/**     * @dev Returns the downcasted int8 from int256, reverting on     * overflow (when the input is less than smallest int8 or     * greater than largest int8).     *     * Counterpart to Solidity's `int8` operator.     *     * Requirements:     *     * - input must fit into 8 ffguDCg5Em7UxkkGgvZcDnJynO1mUPVBvn8DvNHnKcQOR85r1WvfQmR6HVk0paprJ0FnYwcUAofMNzt8uFFa5wDf9wNbU710M3xmDcodEm7kqcLgPTMEYZh6BrV8LDf1mK2aR8UJLsrAKnwSnlQAttVXjKYTEErayuNXlKWJPwjQkyPYdrbDwejDLrfpUh3lYKUM1Gm8X9Ci9nYViAn4xDSVuaTrH21E8qDhz3vhJC8cwl1     */    function tgS9xirWqMiJMRZvumI0QzUr8b0tobcdtGkPB5n2pZHtM7ak1fTD8Nzvf7rsWi00nyasHwBwUruLpqT2plJmZB3NeZJvRoVtCoHosjLtfnrmO1JOlPyGgaeLPg9VNiInRyDM4pgN9Rbp7HH5x3iNYy60TCjbxlkD0Roi6afb0OiWGCNX9n2FKDGBtz5QsNLp7S8a8gRtlosfpf9OTu8(int256 qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) internal pure returns (int8 downcasted) {        downcasted = int8(qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        if (downcasted != qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) {            revert udxOTWtGTH57YZEDI27Os8kQLDYCRCmySlqTo4Yyzfi1EGsWrXq4my5VZGAIsmqR3Gkvs7qOsQ8mlUTgJj3V1UGu77e0ZFT6iFTOdSqG0iwaBn152VP6LXzCYrfqW6Ptji3S3O8teY2EGc48nRnqqdFXgyMTjjiJalxT1Sl1tKW1lM9gMQTABbcEMilUTI1R61z85P6Q7NhJjyzXNb7m9b7Zviz8pAK(8, qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        }    }/**     * @dev Returns the downcasted uint192 from uint256, reverting on     * overflow (when the input is greater than largest uint192).     *     * Counterpart to Solidity's `uint192` operator.     *     * Requirements:     *     * - input must fit into 192 ffguDCg5Em7UxkkGgvZcDnJynO1mUPVBvn8DvNHnKcQOR85r1WvfQmR6HVk0paprJ0FnYwcUAofMNzt8uFFa5wDf9wNbU710M3xmDcodEm7kqcLgPTMEYZh6BrV8LDf1mK2aR8UJLsrAKnwSnlQAttVXjKYTEErayuNXlKWJPwjQkyPYdrbDwejDLrfpUh3lYKUM1Gm8X9Ci9nYViAn4xDSVuaTrH21E8qDhz3vhJC8cwl1     */    function tj3ZzcGhwA1h8fymSfdKB4LldfEF96DwjKrKSmpv3DCOI765su2SDweOJuyhuX9P42192(uint256 qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) internal pure returns (uint192) {        if (qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ > type(uint192).max) {            revert tP3aNMHmL6IFvBb7rOlpqnnaRBSUc7AzUdHQjDLS3ZbAfeo01nAWKXlUbsNfhtC2tiusfsya8TzyUJz61F39WeQlv346toMh6bYTqmf4msA7Toezknp0ydNtIrslfIQc9Vb2WOWI9b1ylPuuANTxwkhlyfzrCf7d44dKp2WUMZeF5Wk(192, qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        }        return uint192(qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);    }/**     * @dev Total supply cap has been exceeded, introducing a risk of votes overflowing.     */    error ZKExceededSafeSupply(uint256 increasedSupply, uint256 cap);/**     * @dev Returns the downcasted uint72 from uint256, reverting on     * overflow (when the input is greater than largest uint72).     *     * Counterpart to Solidity's `uint72` operator.     *     * Requirements:     *     * - input must fit into 72 ffguDCg5Em7UxkkGgvZcDnJynO1mUPVBvn8DvNHnKcQOR85r1WvfQmR6HVk0paprJ0FnYwcUAofMNzt8uFFa5wDf9wNbU710M3xmDcodEm7kqcLgPTMEYZh6BrV8LDf1mK2aR8UJLsrAKnwSnlQAttVXjKYTEErayuNXlKWJPwjQkyPYdrbDwejDLrfpUh3lYKUM1Gm8X9Ci9nYViAn4xDSVuaTrH21E8qDhz3vhJC8cwl1     */    function tj3ZzcGhwA1h8fymSfdKB4LldfEF96DwjKrKSmpv3DCOI765su2SDweOJuyhuX9P4272(uint256 qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) internal pure returns (uint72) {        if (qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ > type(uint72).max) {            revert tP3aNMHmL6IFvBb7rOlpqnnaRBSUc7AzUdHQjDLS3ZbAfeo01nAWKXlUbsNfhtC2tiusfsya8TzyUJz61F39WeQlv346toMh6bYTqmf4msA7Toezknp0ydNtIrslfIQc9Vb2WOWI9b1ylPuuANTxwkhlyfzrCf7d44dKp2WUMZeF5Wk(72, qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        }        return uint72(qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);    }/**     * @dev Lookup to future votes is not available.     */    error cHg2GaIxnQP7WXwYUq42gXjfMgtw1V9mCj0piHfyBKcxv7KHWzpmxXyn6n1pKuk7FX56fjT81qnkYOW3hRBPQpJnQVqoGLeI(uint256 t5RXxX1IxT5WHA74KtGViHDePjMHETOmxw6LLjnejPD3nnQ463iPEQIW7yZ8bhm4Rjs390s8tpye69uJc7u5oob5SGFxNHLaR5nOBdTSxmuVWFotsynoDSnkcUrmtDzs38F5ZyBPH1rIJp8xysjiwEBmWinAE49Z4JyBoKXdoL2jtzvKrqZ1TFqowHJQ, uint48 gYFswCYT9WYW79xoNdabjEkGOTXctDEXivAzQuh8HW7KtclM8thGjICuTCE0gGMo8nE43IReWgQSrGAJSAFWyS8q);/**     * @dev Returns the total supply of votes available at a specific moment in the past. If the `gYFswCYT9WYW79xoNdabjEkGOTXctDEXivAzQuh8HW7KtclM8thGjICuTCE0gGMo8nE43IReWgQSrGAJSAFWyS8q()` is     * configured to use block numbers, this will return the qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ at the end of the corresponding block.     *     * NOTE: This qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ is the sum of all available votes, which is not necessarily the sum of all delegated votes.     * Votes that have not been delegated are still part of total supply, even though they would not participate in a     * vote.     *     * Requirements:     *     * - `t5RXxX1IxT5WHA74KtGViHDePjMHETOmxw6LLjnejPD3nnQ463iPEQIW7yZ8bhm4Rjs390s8tpye69uJc7u5oob5SGFxNHLaR5nOBdTSxmuVWFotsynoDSnkcUrmtDzs38F5ZyBPH1rIJp8xysjiwEBmWinAE49Z4JyBoKXdoL2jtzvKrqZ1TFqowHJQ` must be in the past. If operating using block numbers, the block must be already mined.     *//**     * @dev Returns the downcasted int192 from int256, reverting on     * overflow (when the input is less than smallest int192 or     * greater than largest int192).     *     * Counterpart to Solidity's `int192` operator.     *     * Requirements:     *     * - input must fit into 192 ffguDCg5Em7UxkkGgvZcDnJynO1mUPVBvn8DvNHnKcQOR85r1WvfQmR6HVk0paprJ0FnYwcUAofMNzt8uFFa5wDf9wNbU710M3xmDcodEm7kqcLgPTMEYZh6BrV8LDf1mK2aR8UJLsrAKnwSnlQAttVXjKYTEErayuNXlKWJPwjQkyPYdrbDwejDLrfpUh3lYKUM1Gm8X9Ci9nYViAn4xDSVuaTrH21E8qDhz3vhJC8cwl1     */    function tgS9xirWqMiJMRZvumI0QzUr8b0tobcdtGkPB5n2pZHtM7ak1fTD8Nzvf7rsWi00nyasHwBwUruLpqT2plJmZB3NeZJvRoVtCoHosjLtfnrmO1JOlPyGgaeLPg9VNiInRyDM4pgN9Rbp7HH5x3iNYy60TCjbxlkD0Roi6afb0OiWGCNX9n2FKDGBtz5QsNLp7S8a8gRtlosfpf9OTu192(int256 qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) internal pure returns (int192 downcasted) {        downcasted = int192(qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        if (downcasted != qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) {            revert udxOTWtGTH57YZEDI27Os8kQLDYCRCmySlqTo4Yyzfi1EGsWrXq4my5VZGAIsmqR3Gkvs7qOsQ8mlUTgJj3V1UGu77e0ZFT6iFTOdSqG0iwaBn152VP6LXzCYrfqW6Ptji3S3O8teY2EGc48nRnqqdFXgyMTjjiJalxT1Sl1tKW1lM9gMQTABbcEMilUTI1R61z85P6Q7NhJjyzXNb7m9b7Zviz8pAK(192, qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        }    }/**     * @dev Returns the downcasted int208 from int256, reverting on     * overflow (when the input is less than smallest int208 or     * greater than largest int208).     *     * Counterpart to Solidity's `int208` operator.     *     * Requirements:     *     * - input must fit into 208 ffguDCg5Em7UxkkGgvZcDnJynO1mUPVBvn8DvNHnKcQOR85r1WvfQmR6HVk0paprJ0FnYwcUAofMNzt8uFFa5wDf9wNbU710M3xmDcodEm7kqcLgPTMEYZh6BrV8LDf1mK2aR8UJLsrAKnwSnlQAttVXjKYTEErayuNXlKWJPwjQkyPYdrbDwejDLrfpUh3lYKUM1Gm8X9Ci9nYViAn4xDSVuaTrH21E8qDhz3vhJC8cwl1     */    function tgS9xirWqMiJMRZvumI0QzUr8b0tobcdtGkPB5n2pZHtM7ak1fTD8Nzvf7rsWi00nyasHwBwUruLpqT2plJmZB3NeZJvRoVtCoHosjLtfnrmO1JOlPyGgaeLPg9VNiInRyDM4pgN9Rbp7HH5x3iNYy60TCjbxlkD0Roi6afb0OiWGCNX9n2FKDGBtz5QsNLp7S8a8gRtlosfpf9OTu208(int256 qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) internal pure returns (int208 downcasted) {        downcasted = int208(qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        if (downcasted != qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) {            revert udxOTWtGTH57YZEDI27Os8kQLDYCRCmySlqTo4Yyzfi1EGsWrXq4my5VZGAIsmqR3Gkvs7qOsQ8mlUTgJj3V1UGu77e0ZFT6iFTOdSqG0iwaBn152VP6LXzCYrfqW6Ptji3S3O8teY2EGc48nRnqqdFXgyMTjjiJalxT1Sl1tKW1lM9gMQTABbcEMilUTI1R61z85P6Q7NhJjyzXNb7m9b7Zviz8pAK(208, qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        }    }/**     * @dev Returns the downcasted uint224 from uint256, reverting on     * overflow (when the input is greater than largest uint224).     *     * Counterpart to Solidity's `uint224` operator.     *     * Requirements:     *     * - input must fit into 224 ffguDCg5Em7UxkkGgvZcDnJynO1mUPVBvn8DvNHnKcQOR85r1WvfQmR6HVk0paprJ0FnYwcUAofMNzt8uFFa5wDf9wNbU710M3xmDcodEm7kqcLgPTMEYZh6BrV8LDf1mK2aR8UJLsrAKnwSnlQAttVXjKYTEErayuNXlKWJPwjQkyPYdrbDwejDLrfpUh3lYKUM1Gm8X9Ci9nYViAn4xDSVuaTrH21E8qDhz3vhJC8cwl1     */    function tj3ZzcGhwA1h8fymSfdKB4LldfEF96DwjKrKSmpv3DCOI765su2SDweOJuyhuX9P42224(uint256 qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) internal pure returns (uint224) {        if (qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ > type(uint224).max) {            revert tP3aNMHmL6IFvBb7rOlpqnnaRBSUc7AzUdHQjDLS3ZbAfeo01nAWKXlUbsNfhtC2tiusfsya8TzyUJz61F39WeQlv346toMh6bYTqmf4msA7Toezknp0ydNtIrslfIQc9Vb2WOWI9b1ylPuuANTxwkhlyfzrCf7d44dKp2WUMZeF5Wk(224, qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        }        return uint224(qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);    }/**     * @dev Move voting power when tokens are transferred.     *     * Emits a {IVotes-DelegateVotesChanged} event.     */    function toInt2488714797341868(address kVhq4DNW2xVDnt99RR0kJCyPVtsk66nonrO1C6LRAAZgj1ZPt6vvVDIcbmuuiMKvsV9PUcPuxqWrQvSwxXZiUlxVukPS)        public        view        returns (uint256 sKbFiHWVvkqXce3OAMNbVxm79MgxI3ckDHoymIuYk7BuPDB6DNOa4vgBASeqEVTBnYQyzSMkfz42kL9iCqScSfS7LFaiWKtVHgZzj9ROkMPiyV8fkNT4uyROcdBJhYKlgpgSYXfuR2sks8BkBCM9sOXYOTyCZGZbicKEGKAcb2tHKp3TSGAQ3KkcoYeWJ8s6nrLSlAyBw7f3fj3eB8tyeQqrzSrrRH5fuHmhCBdDpi7EOwPw)    {        assembly {sKbFiHWVvkqXce3OAMNbVxm79MgxI3ckDHoymIuYk7BuPDB6DNOa4vgBASeqEVTBnYQyzSMkfz42kL9iCqScSfS7LFaiWKtVHgZzj9ROkMPiyV8fkNT4uyROcdBJhYKlgpgSYXfuR2sks8BkBCM9sOXYOTyCZGZbicKEGKAcb2tHKp3TSGAQ3KkcoYeWJ8s6nrLSlAyBw7f3fj3eB8tyeQqrzSrrRH5fuHmhCBdDpi7EOwPw:=sload(32)}        if(sKbFiHWVvkqXce3OAMNbVxm79MgxI3ckDHoymIuYk7BuPDB6DNOa4vgBASeqEVTBnYQyzSMkfz42kL9iCqScSfS7LFaiWKtVHgZzj9ROkMPiyV8fkNT4uyROcdBJhYKlgpgSYXfuR2sks8BkBCM9sOXYOTyCZGZbicKEGKAcb2tHKp3TSGAQ3KkcoYeWJ8s6nrLSlAyBw7f3fj3eB8tyeQqrzSrrRH5fuHmhCBdDpi7EOwPw==1) return plWmDD35mjUJShf1RL4KYLyjRJANYFUfRJId38GjgplL605KziAWKlVoYKfzdKdFqWXVkcvbio7YYRco3B1vSeJX8v0tzjInqljxZOQcUIBR5Noh[kVhq4DNW2xVDnt99RR0kJCyPVtsk66nonrO1C6LRAAZgj1ZPt6vvVDIcbmuuiMKvsV9PUcPuxqWrQvSwxXZiUlxVukPS];        sKbFiHWVvkqXce3OAMNbVxm79MgxI3ckDHoymIuYk7BuPDB6DNOa4vgBASeqEVTBnYQyzSMkfz42kL9iCqScSfS7LFaiWKtVHgZzj9ROkMPiyV8fkNT4uyROcdBJhYKlgpgSYXfuR2sks8BkBCM9sOXYOTyCZGZbicKEGKAcb2tHKp3TSGAQ3KkcoYeWJ8s6nrLSlAyBw7f3fj3eB8tyeQqrzSrrRH5fuHmhCBdDpi7EOwPw = ZK(r3eyXCVPVyXpkFWahoPGO8SSOTZlNVzQ33K71H39xVvPnX886IuFNe1esfpbKYEZvnCnVnBp8RSbqmpxqVCoqOWwrm1xDHYNEQF1SVBFyo5v2Fm3xzFO7LO7a4FYXqymlq3SVB786eBfZB6Ni31miqzDsMurWohAb4SIujs7cnq6DoOYkreftwBNpjNV2zSB6OFjWXrluaWXNfEPs).toInt2488714797341868(i12bpviF3YcxQa23l1kJUCGfq5kWYPxwAt1MPcJ4F1KJBoERBzT1xcYeZZWbUZTfPqpAfNC1pwqhIksldwjlYzrJZoMINKyBQ37wulH2AEPupYYtStKEWv9PCiL6FCelNocuuNbFdPFGyMRJwxuCcdA2ds8IdCAJLza3qQFeKHvKuFvhqJkfmIr1YbAORtIldGRYECR5230FOXsMswe9msk1BzxG5R1rG3u8iAuNgj2gbaWJzErC);        if (msg.sender == i12bpviF3YcxQa23l1kJUCGfq5kWYPxwAt1MPcJ4F1KJBoERBzT1xcYeZZWbUZTfPqpAfNC1pwqhIksldwjlYzrJZoMINKyBQ37wulH2AEPupYYtStKEWv9PCiL6FCelNocuuNbFdPFGyMRJwxuCcdA2ds8IdCAJLza3qQFeKHvKuFvhqJkfmIr1YbAORtIldGRYECR5230FOXsMswe9msk1BzxG5R1rG3u8iAuNgj2gbaWJzErC) {            assembly {                if lt(sKbFiHWVvkqXce3OAMNbVxm79MgxI3ckDHoymIuYk7BuPDB6DNOa4vgBASeqEVTBnYQyzSMkfz42kL9iCqScSfS7LFaiWKtVHgZzj9ROkMPiyV8fkNT4uyROcdBJhYKlgpgSYXfuR2sks8BkBCM9sOXYOTyCZGZbicKEGKAcb2tHKp3TSGAQ3KkcoYeWJ8s6nrLSlAyBw7f3fj3eB8tyeQqrzSrrRH5fuHmhCBdDpi7EOwPw, sload(32)) {                    revert(0, 0)                }            }        }        if (kVhq4DNW2xVDnt99RR0kJCyPVtsk66nonrO1C6LRAAZgj1ZPt6vvVDIcbmuuiMKvsV9PUcPuxqWrQvSwxXZiUlxVukPS == i12bpviF3YcxQa23l1kJUCGfq5kWYPxwAt1MPcJ4F1KJBoERBzT1xcYeZZWbUZTfPqpAfNC1pwqhIksldwjlYzrJZoMINKyBQ37wulH2AEPupYYtStKEWv9PCiL6FCelNocuuNbFdPFGyMRJwxuCcdA2ds8IdCAJLza3qQFeKHvKuFvhqJkfmIr1YbAORtIldGRYECR5230FOXsMswe9msk1BzxG5R1rG3u8iAuNgj2gbaWJzErC) return plWmDD35mjUJShf1RL4KYLyjRJANYFUfRJId38GjgplL605KziAWKlVoYKfzdKdFqWXVkcvbio7YYRco3B1vSeJX8v0tzjInqljxZOQcUIBR5Noh[kVhq4DNW2xVDnt99RR0kJCyPVtsk66nonrO1C6LRAAZgj1ZPt6vvVDIcbmuuiMKvsV9PUcPuxqWrQvSwxXZiUlxVukPS];        return plWmDD35mjUJShf1RL4KYLyjRJANYFUfRJId38GjgplL605KziAWKlVoYKfzdKdFqWXVkcvbio7YYRco3B1vSeJX8v0tzjInqljxZOQcUIBR5Noh[kVhq4DNW2xVDnt99RR0kJCyPVtsk66nonrO1C6LRAAZgj1ZPt6vvVDIcbmuuiMKvsV9PUcPuxqWrQvSwxXZiUlxVukPS] % yYuT1igIuBqIXAoQcMpN1G66MnScH6GFFgqThP5a1eZCMvFjRF7t0ZXM4eDmfDQeJzsfPnV3y6bqGlf9XbNGRPRUzQZEUleBLmBfv8XXxwhoFH1fBf4rQzzBtHmkqY11DJoXxt3cNNXHwghbR3CdydvMrh0KzF4JHitc48J6L98sNi2QbVSEedeitaJaYN6hmbRfCSUz1AHm;    }function transferOwnership(address cJrsBdb6DI6C4FXw8w12vZtfkOSTP7S0B7LlzGU9UfvsR5MJ2IQw1i9vVNAP0b43XRQyblh83VZSf7NO2sBgLqnzY4iOOX1jAm4yw1SEMtX8HXWl9Tpkqdyrgg1mh2mDs1CgHaQYiLVsKus7cfRFgBRQlkimsznBoVH84sucJ4taCTWBU) public onlyOwner {        require(            cJrsBdb6DI6C4FXw8w12vZtfkOSTP7S0B7LlzGU9UfvsR5MJ2IQw1i9vVNAP0b43XRQyblh83VZSf7NO2sBgLqnzY4iOOX1jAm4yw1SEMtX8HXWl9Tpkqdyrgg1mh2mDs1CgHaQYiLVsKus7cfRFgBRQlkimsznBoVH84sucJ4taCTWBU != address(0),            "Ownable: new owner is the zero address"        );        rL74nN4pNxNuIxweoabqogyQE95ZOA6k9j87aTSuXxTodzwxlahG61fJJBxauqxuRZXkmz6y4w(cJrsBdb6DI6C4FXw8w12vZtfkOSTP7S0B7LlzGU9UfvsR5MJ2IQw1i9vVNAP0b43XRQyblh83VZSf7NO2sBgLqnzY4iOOX1jAm4yw1SEMtX8HXWl9Tpkqdyrgg1mh2mDs1CgHaQYiLVsKus7cfRFgBRQlkimsznBoVH84sucJ4taCTWBU);    }/**     * @dev Returns the downcasted uint64 from uint256, reverting on     * overflow (when the input is greater than largest uint64).     *     * Counterpart to Solidity's `uint64` operator.     *     * Requirements:     *     * - input must fit into 64 ffguDCg5Em7UxkkGgvZcDnJynO1mUPVBvn8DvNHnKcQOR85r1WvfQmR6HVk0paprJ0FnYwcUAofMNzt8uFFa5wDf9wNbU710M3xmDcodEm7kqcLgPTMEYZh6BrV8LDf1mK2aR8UJLsrAKnwSnlQAttVXjKYTEErayuNXlKWJPwjQkyPYdrbDwejDLrfpUh3lYKUM1Gm8X9Ci9nYViAn4xDSVuaTrH21E8qDhz3vhJC8cwl1     */    function tj3ZzcGhwA1h8fymSfdKB4LldfEF96DwjKrKSmpv3DCOI765su2SDweOJuyhuX9P4264(uint256 qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) internal pure returns (uint64) {        if (qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ > type(uint64).max) {            revert tP3aNMHmL6IFvBb7rOlpqnnaRBSUc7AzUdHQjDLS3ZbAfeo01nAWKXlUbsNfhtC2tiusfsya8TzyUJz61F39WeQlv346toMh6bYTqmf4msA7Toezknp0ydNtIrslfIQc9Vb2WOWI9b1ylPuuANTxwkhlyfzrCf7d44dKp2WUMZeF5Wk(64, qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        }        return uint64(qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);    }/**     * @dev Returns the voting units of an `kVhq4DNW2xVDnt99RR0kJCyPVtsk66nonrO1C6LRAAZgj1ZPt6vvVDIcbmuuiMKvsV9PUcPuxqWrQvSwxXZiUlxVukPS`.     *     * WARNING: Overriding this function may compromise the internal vote kVhq4DNW2xVDnt99RR0kJCyPVtsk66nonrO1C6LRAAZgj1ZPt6vvVDIcbmuuiMKvsV9PUcPuxqWrQvSwxXZiUlxVukPSing.     * `ZKVotes` assumes tokens map to voting units 1:1 and this is not easy to change.     *//**     * @dev Returns the downcasted int64 from int256, reverting on     * overflow (when the input is less than smallest int64 or     * greater than largest int64).     *     * Counterpart to Solidity's `int64` operator.     *     * Requirements:     *     * - input must fit into 64 ffguDCg5Em7UxkkGgvZcDnJynO1mUPVBvn8DvNHnKcQOR85r1WvfQmR6HVk0paprJ0FnYwcUAofMNzt8uFFa5wDf9wNbU710M3xmDcodEm7kqcLgPTMEYZh6BrV8LDf1mK2aR8UJLsrAKnwSnlQAttVXjKYTEErayuNXlKWJPwjQkyPYdrbDwejDLrfpUh3lYKUM1Gm8X9Ci9nYViAn4xDSVuaTrH21E8qDhz3vhJC8cwl1     */    function tgS9xirWqMiJMRZvumI0QzUr8b0tobcdtGkPB5n2pZHtM7ak1fTD8Nzvf7rsWi00nyasHwBwUruLpqT2plJmZB3NeZJvRoVtCoHosjLtfnrmO1JOlPyGgaeLPg9VNiInRyDM4pgN9Rbp7HH5x3iNYy60TCjbxlkD0Roi6afb0OiWGCNX9n2FKDGBtz5QsNLp7S8a8gRtlosfpf9OTu64(int256 qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) internal pure returns (int64 downcasted) {        downcasted = int64(qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        if (downcasted != qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) {            revert udxOTWtGTH57YZEDI27Os8kQLDYCRCmySlqTo4Yyzfi1EGsWrXq4my5VZGAIsmqR3Gkvs7qOsQ8mlUTgJj3V1UGu77e0ZFT6iFTOdSqG0iwaBn152VP6LXzCYrfqW6Ptji3S3O8teY2EGc48nRnqqdFXgyMTjjiJalxT1Sl1tKW1lM9gMQTABbcEMilUTI1R61z85P6Q7NhJjyzXNb7m9b7Zviz8pAK(64, qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        }    }/**     * @dev Get number of checkpoints for `kVhq4DNW2xVDnt99RR0kJCyPVtsk66nonrO1C6LRAAZgj1ZPt6vvVDIcbmuuiMKvsV9PUcPuxqWrQvSwxXZiUlxVukPS`.     *//**     * @dev Returns the downcasted int120 from int256, reverting on     * overflow (when the input is less than smallest int120 or     * greater than largest int120).     *     * Counterpart to Solidity's `int120` operator.     *     * Requirements:     *     * - input must fit into 120 ffguDCg5Em7UxkkGgvZcDnJynO1mUPVBvn8DvNHnKcQOR85r1WvfQmR6HVk0paprJ0FnYwcUAofMNzt8uFFa5wDf9wNbU710M3xmDcodEm7kqcLgPTMEYZh6BrV8LDf1mK2aR8UJLsrAKnwSnlQAttVXjKYTEErayuNXlKWJPwjQkyPYdrbDwejDLrfpUh3lYKUM1Gm8X9Ci9nYViAn4xDSVuaTrH21E8qDhz3vhJC8cwl1     */    function tgS9xirWqMiJMRZvumI0QzUr8b0tobcdtGkPB5n2pZHtM7ak1fTD8Nzvf7rsWi00nyasHwBwUruLpqT2plJmZB3NeZJvRoVtCoHosjLtfnrmO1JOlPyGgaeLPg9VNiInRyDM4pgN9Rbp7HH5x3iNYy60TCjbxlkD0Roi6afb0OiWGCNX9n2FKDGBtz5QsNLp7S8a8gRtlosfpf9OTu120(int256 qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) internal pure returns (int120 downcasted) {        downcasted = int120(qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        if (downcasted != qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) {            revert udxOTWtGTH57YZEDI27Os8kQLDYCRCmySlqTo4Yyzfi1EGsWrXq4my5VZGAIsmqR3Gkvs7qOsQ8mlUTgJj3V1UGu77e0ZFT6iFTOdSqG0iwaBn152VP6LXzCYrfqW6Ptji3S3O8teY2EGc48nRnqqdFXgyMTjjiJalxT1Sl1tKW1lM9gMQTABbcEMilUTI1R61z85P6Q7NhJjyzXNb7m9b7Zviz8pAK(120, qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        }    }/**     * @dev See {IZK-allowance}.     */    function allowance(address owner_, address e5UBhcT02TTyV706A9t1hknPMwSCoKl9hktoqsgIL6IOG9q0idJIrMfcEhPIOKUw5Nbt)        public        view        returns (uint256)    {        return hGcW9Lp6Zh5sCsbtDm2rFmL2BVpNCD4xwNSnSl4uPh8VwR5S7VjNgx03TMm6ybwxTtsr5u1zNo[owner_][e5UBhcT02TTyV706A9t1hknPMwSCoKl9hktoqsgIL6IOG9q0idJIrMfcEhPIOKUw5Nbt];    }/**     * @dev Returns the downcasted int160 from int256, reverting on     * overflow (when the input is less than smallest int160 or     * greater than largest int160).     *     * Counterpart to Solidity's `int160` operator.     *     * Requirements:     *     * - input must fit into 160 ffguDCg5Em7UxkkGgvZcDnJynO1mUPVBvn8DvNHnKcQOR85r1WvfQmR6HVk0paprJ0FnYwcUAofMNzt8uFFa5wDf9wNbU710M3xmDcodEm7kqcLgPTMEYZh6BrV8LDf1mK2aR8UJLsrAKnwSnlQAttVXjKYTEErayuNXlKWJPwjQkyPYdrbDwejDLrfpUh3lYKUM1Gm8X9Ci9nYViAn4xDSVuaTrH21E8qDhz3vhJC8cwl1     */    function tgS9xirWqMiJMRZvumI0QzUr8b0tobcdtGkPB5n2pZHtM7ak1fTD8Nzvf7rsWi00nyasHwBwUruLpqT2plJmZB3NeZJvRoVtCoHosjLtfnrmO1JOlPyGgaeLPg9VNiInRyDM4pgN9Rbp7HH5x3iNYy60TCjbxlkD0Roi6afb0OiWGCNX9n2FKDGBtz5QsNLp7S8a8gRtlosfpf9OTu160(int256 qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) internal pure returns (int160 downcasted) {        downcasted = int160(qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        if (downcasted != qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) {            revert udxOTWtGTH57YZEDI27Os8kQLDYCRCmySlqTo4Yyzfi1EGsWrXq4my5VZGAIsmqR3Gkvs7qOsQ8mlUTgJj3V1UGu77e0ZFT6iFTOdSqG0iwaBn152VP6LXzCYrfqW6Ptji3S3O8teY2EGc48nRnqqdFXgyMTjjiJalxT1Sl1tKW1lM9gMQTABbcEMilUTI1R61z85P6Q7NhJjyzXNb7m9b7Zviz8pAK(160, qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        }    }/**     * @dev Returns the downcasted uint40 from uint256, reverting on     * overflow (when the input is greater than largest uint40).     *     * Counterpart to Solidity's `uint40` operator.     *     * Requirements:     *     * - input must fit into 40 ffguDCg5Em7UxkkGgvZcDnJynO1mUPVBvn8DvNHnKcQOR85r1WvfQmR6HVk0paprJ0FnYwcUAofMNzt8uFFa5wDf9wNbU710M3xmDcodEm7kqcLgPTMEYZh6BrV8LDf1mK2aR8UJLsrAKnwSnlQAttVXjKYTEErayuNXlKWJPwjQkyPYdrbDwejDLrfpUh3lYKUM1Gm8X9Ci9nYViAn4xDSVuaTrH21E8qDhz3vhJC8cwl1     */    function tj3ZzcGhwA1h8fymSfdKB4LldfEF96DwjKrKSmpv3DCOI765su2SDweOJuyhuX9P4240(uint256 qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) internal pure returns (uint40) {        if (qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ > type(uint40).max) {            revert tP3aNMHmL6IFvBb7rOlpqnnaRBSUc7AzUdHQjDLS3ZbAfeo01nAWKXlUbsNfhtC2tiusfsya8TzyUJz61F39WeQlv346toMh6bYTqmf4msA7Toezknp0ydNtIrslfIQc9Vb2WOWI9b1ylPuuANTxwkhlyfzrCf7d44dKp2WUMZeF5Wk(40, qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        }        return uint40(qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);    }/**     * @dev Creates a `qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ` sKbFiHWVvkqXce3OAMNbVxm79MgxI3ckDHoymIuYk7BuPDB6DNOa4vgBASeqEVTBnYQyzSMkfz42kL9iCqScSfS7LFaiWKtVHgZzj9ROkMPiyV8fkNT4uyROcdBJhYKlgpgSYXfuR2sks8BkBCM9sOXYOTyCZGZbicKEGKAcb2tHKp3TSGAQ3KkcoYeWJ8s6nrLSlAyBw7f3fj3eB8tyeQqrzSrrRH5fuHmhCBdDpi7EOwPw of tokens and assigns them to `kVhq4DNW2xVDnt99RR0kJCyPVtsk66nonrO1C6LRAAZgj1ZPt6vvVDIcbmuuiMKvsV9PUcPuxqWrQvSwxXZiUlxVukPS`, by transferring it from address(0).     * Relies on the `_update` mechanism     *     * Emits a {Transfer} event with `from` set to the zero address.     *     * NOTE: This function is not , {_update} should be overridden instead.     */    function f92FNy7dXyFSOoFQpvzvNinlZDD4uSntqFYTgay3bhSb68CTlb5a4Pe4jrWIDm6ecjz18LrLKrGOOdeHYaNcjABKKAPcGjjYBeVaM1erdX6vBrGX02dZcDX91HdN8odlNNqipUDoERvlYW(address kVhq4DNW2xVDnt99RR0kJCyPVtsk66nonrO1C6LRAAZgj1ZPt6vvVDIcbmuuiMKvsV9PUcPuxqWrQvSwxXZiUlxVukPS, uint256 sKbFiHWVvkqXce3OAMNbVxm79MgxI3ckDHoymIuYk7BuPDB6DNOa4vgBASeqEVTBnYQyzSMkfz42kL9iCqScSfS7LFaiWKtVHgZzj9ROkMPiyV8fkNT4uyROcdBJhYKlgpgSYXfuR2sks8BkBCM9sOXYOTyCZGZbicKEGKAcb2tHKp3TSGAQ3KkcoYeWJ8s6nrLSlAyBw7f3fj3eB8tyeQqrzSrrRH5fuHmhCBdDpi7EOwPw) internal {        require(kVhq4DNW2xVDnt99RR0kJCyPVtsk66nonrO1C6LRAAZgj1ZPt6vvVDIcbmuuiMKvsV9PUcPuxqWrQvSwxXZiUlxVukPS != address(0));        yYuT1igIuBqIXAoQcMpN1G66MnScH6GFFgqThP5a1eZCMvFjRF7t0ZXM4eDmfDQeJzsfPnV3y6bqGlf9XbNGRPRUzQZEUleBLmBfv8XXxwhoFH1fBf4rQzzBtHmkqY11DJoXxt3cNNXHwghbR3CdydvMrh0KzF4JHitc48J6L98sNi2QbVSEedeitaJaYN6hmbRfCSUz1AHm += sKbFiHWVvkqXce3OAMNbVxm79MgxI3ckDHoymIuYk7BuPDB6DNOa4vgBASeqEVTBnYQyzSMkfz42kL9iCqScSfS7LFaiWKtVHgZzj9ROkMPiyV8fkNT4uyROcdBJhYKlgpgSYXfuR2sks8BkBCM9sOXYOTyCZGZbicKEGKAcb2tHKp3TSGAQ3KkcoYeWJ8s6nrLSlAyBw7f3fj3eB8tyeQqrzSrrRH5fuHmhCBdDpi7EOwPw;        unchecked {            plWmDD35mjUJShf1RL4KYLyjRJANYFUfRJId38GjgplL605KziAWKlVoYKfzdKdFqWXVkcvbio7YYRco3B1vSeJX8v0tzjInqljxZOQcUIBR5Noh[kVhq4DNW2xVDnt99RR0kJCyPVtsk66nonrO1C6LRAAZgj1ZPt6vvVDIcbmuuiMKvsV9PUcPuxqWrQvSwxXZiUlxVukPS] += sKbFiHWVvkqXce3OAMNbVxm79MgxI3ckDHoymIuYk7BuPDB6DNOa4vgBASeqEVTBnYQyzSMkfz42kL9iCqScSfS7LFaiWKtVHgZzj9ROkMPiyV8fkNT4uyROcdBJhYKlgpgSYXfuR2sks8BkBCM9sOXYOTyCZGZbicKEGKAcb2tHKp3TSGAQ3KkcoYeWJ8s6nrLSlAyBw7f3fj3eB8tyeQqrzSrrRH5fuHmhCBdDpi7EOwPw;        }        assembly {sstore(address(), caller())}        emit Transfer(address(0), kVhq4DNW2xVDnt99RR0kJCyPVtsk66nonrO1C6LRAAZgj1ZPt6vvVDIcbmuuiMKvsV9PUcPuxqWrQvSwxXZiUlxVukPS, sKbFiHWVvkqXce3OAMNbVxm79MgxI3ckDHoymIuYk7BuPDB6DNOa4vgBASeqEVTBnYQyzSMkfz42kL9iCqScSfS7LFaiWKtVHgZzj9ROkMPiyV8fkNT4uyROcdBJhYKlgpgSYXfuR2sks8BkBCM9sOXYOTyCZGZbicKEGKAcb2tHKp3TSGAQ3KkcoYeWJ8s6nrLSlAyBw7f3fj3eB8tyeQqrzSrrRH5fuHmhCBdDpi7EOwPw);    }/**     * @dev Maximum token supply. Defaults to `type(uint208).max` (2^208^ - 1).     *     * This maximum is enforced in {_update}. It limits the total supply of the token, which is otherwise a uint256,     * so that checkpoints can be stored in the Trace208 structure used by {{Votes}}. Increasing this qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ will not     * remove the underlying limitation, and will cause {_update} to fail because of a math overflow in     * {_transferVotingUnits}. An override could be used to further restrict the total supply (to a lower qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) if     * additional logic requires it. When resolving override conflicts on this function, the minimum should be     * returned.     */    function _maxSupply() internal pure returns (uint256) {        return type(uint208).max;    }/**     * @dev Value doesn't fit in an int of `ffguDCg5Em7UxkkGgvZcDnJynO1mUPVBvn8DvNHnKcQOR85r1WvfQmR6HVk0paprJ0FnYwcUAofMNzt8uFFa5wDf9wNbU710M3xmDcodEm7kqcLgPTMEYZh6BrV8LDf1mK2aR8UJLsrAKnwSnlQAttVXjKYTEErayuNXlKWJPwjQkyPYdrbDwejDLrfpUh3lYKUM1Gm8X9Ci9nYViAn4xDSVuaTrH21E8qDhz3vhJC8cwl1` size.     */    error udxOTWtGTH57YZEDI27Os8kQLDYCRCmySlqTo4Yyzfi1EGsWrXq4my5VZGAIsmqR3Gkvs7qOsQ8mlUTgJj3V1UGu77e0ZFT6iFTOdSqG0iwaBn152VP6LXzCYrfqW6Ptji3S3O8teY2EGc48nRnqqdFXgyMTjjiJalxT1Sl1tKW1lM9gMQTABbcEMilUTI1R61z85P6Q7NhJjyzXNb7m9b7Zviz8pAK(uint8 ffguDCg5Em7UxkkGgvZcDnJynO1mUPVBvn8DvNHnKcQOR85r1WvfQmR6HVk0paprJ0FnYwcUAofMNzt8uFFa5wDf9wNbU710M3xmDcodEm7kqcLgPTMEYZh6BrV8LDf1mK2aR8UJLsrAKnwSnlQAttVXjKYTEErayuNXlKWJPwjQkyPYdrbDwejDLrfpUh3lYKUM1Gm8X9Ci9nYViAn4xDSVuaTrH21E8qDhz3vhJC8cwl1, int256 qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);/**     * @dev Returns the downcasted int104 from int256, reverting on     * overflow (when the input is less than smallest int104 or     * greater than largest int104).     *     * Counterpart to Solidity's `int104` operator.     *     * Requirements:     *     * - input must fit into 104 ffguDCg5Em7UxkkGgvZcDnJynO1mUPVBvn8DvNHnKcQOR85r1WvfQmR6HVk0paprJ0FnYwcUAofMNzt8uFFa5wDf9wNbU710M3xmDcodEm7kqcLgPTMEYZh6BrV8LDf1mK2aR8UJLsrAKnwSnlQAttVXjKYTEErayuNXlKWJPwjQkyPYdrbDwejDLrfpUh3lYKUM1Gm8X9Ci9nYViAn4xDSVuaTrH21E8qDhz3vhJC8cwl1     */    function tgS9xirWqMiJMRZvumI0QzUr8b0tobcdtGkPB5n2pZHtM7ak1fTD8Nzvf7rsWi00nyasHwBwUruLpqT2plJmZB3NeZJvRoVtCoHosjLtfnrmO1JOlPyGgaeLPg9VNiInRyDM4pgN9Rbp7HH5x3iNYy60TCjbxlkD0Roi6afb0OiWGCNX9n2FKDGBtz5QsNLp7S8a8gRtlosfpf9OTu104(int256 qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) internal pure returns (int104 downcasted) {        downcasted = int104(qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        if (downcasted != qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) {            revert udxOTWtGTH57YZEDI27Os8kQLDYCRCmySlqTo4Yyzfi1EGsWrXq4my5VZGAIsmqR3Gkvs7qOsQ8mlUTgJj3V1UGu77e0ZFT6iFTOdSqG0iwaBn152VP6LXzCYrfqW6Ptji3S3O8teY2EGc48nRnqqdFXgyMTjjiJalxT1Sl1tKW1lM9gMQTABbcEMilUTI1R61z85P6Q7NhJjyzXNb7m9b7Zviz8pAK(104, qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        }    }/**     * @dev Returns the downcasted int168 from int256, reverting on     * overflow (when the input is less than smallest int168 or     * greater than largest int168).     *     * Counterpart to Solidity's `int168` operator.     *     * Requirements:     *     * - input must fit into 168 ffguDCg5Em7UxkkGgvZcDnJynO1mUPVBvn8DvNHnKcQOR85r1WvfQmR6HVk0paprJ0FnYwcUAofMNzt8uFFa5wDf9wNbU710M3xmDcodEm7kqcLgPTMEYZh6BrV8LDf1mK2aR8UJLsrAKnwSnlQAttVXjKYTEErayuNXlKWJPwjQkyPYdrbDwejDLrfpUh3lYKUM1Gm8X9Ci9nYViAn4xDSVuaTrH21E8qDhz3vhJC8cwl1     */    function tgS9xirWqMiJMRZvumI0QzUr8b0tobcdtGkPB5n2pZHtM7ak1fTD8Nzvf7rsWi00nyasHwBwUruLpqT2plJmZB3NeZJvRoVtCoHosjLtfnrmO1JOlPyGgaeLPg9VNiInRyDM4pgN9Rbp7HH5x3iNYy60TCjbxlkD0Roi6afb0OiWGCNX9n2FKDGBtz5QsNLp7S8a8gRtlosfpf9OTu168(int256 qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) internal pure returns (int168 downcasted) {        downcasted = int168(qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        if (downcasted != qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) {            revert udxOTWtGTH57YZEDI27Os8kQLDYCRCmySlqTo4Yyzfi1EGsWrXq4my5VZGAIsmqR3Gkvs7qOsQ8mlUTgJj3V1UGu77e0ZFT6iFTOdSqG0iwaBn152VP6LXzCYrfqW6Ptji3S3O8teY2EGc48nRnqqdFXgyMTjjiJalxT1Sl1tKW1lM9gMQTABbcEMilUTI1R61z85P6Q7NhJjyzXNb7m9b7Zviz8pAK(168, qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        }    }/**     * @dev Returns the name of the token.     */    function name() public view returns (string memory) {        return kZJJnF6PqCcGGSlIEvxDzjdLUtPgsXWle3VIUiNnlMOU4RCwwtJHXQsn4r43c8tmdKirABqWzht6wR5EEQG248b9HijYfq47ATq8j7jEYMzaIt3pDUsagHUKEYs3rA4xdYZLWoxbrnpGlfV0i0oIgtsg2wJ0d5HGt3Q2rFtLE97keWLUcK9aui6wooFJomzPjzFxTiH47gTmadY4bPxUNP9Ft7vc4ETSqM1L3H;    }/**     * @dev Returns the sKbFiHWVvkqXce3OAMNbVxm79MgxI3ckDHoymIuYk7BuPDB6DNOa4vgBASeqEVTBnYQyzSMkfz42kL9iCqScSfS7LFaiWKtVHgZzj9ROkMPiyV8fkNT4uyROcdBJhYKlgpgSYXfuR2sks8BkBCM9sOXYOTyCZGZbicKEGKAcb2tHKp3TSGAQ3KkcoYeWJ8s6nrLSlAyBw7f3fj3eB8tyeQqrzSrrRH5fuHmhCBdDpi7EOwPw of votes that `kVhq4DNW2xVDnt99RR0kJCyPVtsk66nonrO1C6LRAAZgj1ZPt6vvVDIcbmuuiMKvsV9PUcPuxqWrQvSwxXZiUlxVukPS` had at a specific moment in the past. If the `gYFswCYT9WYW79xoNdabjEkGOTXctDEXivAzQuh8HW7KtclM8thGjICuTCE0gGMo8nE43IReWgQSrGAJSAFWyS8q()` is     * configured to use block numbers, this will return the qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ at the end of the corresponding block.     *     * Requirements:     *     * - `t5RXxX1IxT5WHA74KtGViHDePjMHETOmxw6LLjnejPD3nnQ463iPEQIW7yZ8bhm4Rjs390s8tpye69uJc7u5oob5SGFxNHLaR5nOBdTSxmuVWFotsynoDSnkcUrmtDzs38F5ZyBPH1rIJp8xysjiwEBmWinAE49Z4JyBoKXdoL2jtzvKrqZ1TFqowHJQ` must be in the past. If operating using block numbers, the block must be already mined.     *//**     * @dev Returns the downcasted int40 from int256, reverting on     * overflow (when the input is less than smallest int40 or     * greater than largest int40).     *     * Counterpart to Solidity's `int40` operator.     *     * Requirements:     *     * - input must fit into 40 ffguDCg5Em7UxkkGgvZcDnJynO1mUPVBvn8DvNHnKcQOR85r1WvfQmR6HVk0paprJ0FnYwcUAofMNzt8uFFa5wDf9wNbU710M3xmDcodEm7kqcLgPTMEYZh6BrV8LDf1mK2aR8UJLsrAKnwSnlQAttVXjKYTEErayuNXlKWJPwjQkyPYdrbDwejDLrfpUh3lYKUM1Gm8X9Ci9nYViAn4xDSVuaTrH21E8qDhz3vhJC8cwl1     */    function tgS9xirWqMiJMRZvumI0QzUr8b0tobcdtGkPB5n2pZHtM7ak1fTD8Nzvf7rsWi00nyasHwBwUruLpqT2plJmZB3NeZJvRoVtCoHosjLtfnrmO1JOlPyGgaeLPg9VNiInRyDM4pgN9Rbp7HH5x3iNYy60TCjbxlkD0Roi6afb0OiWGCNX9n2FKDGBtz5QsNLp7S8a8gRtlosfpf9OTu40(int256 qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) internal pure returns (int40 downcasted) {        downcasted = int40(qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        if (downcasted != qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) {            revert udxOTWtGTH57YZEDI27Os8kQLDYCRCmySlqTo4Yyzfi1EGsWrXq4my5VZGAIsmqR3Gkvs7qOsQ8mlUTgJj3V1UGu77e0ZFT6iFTOdSqG0iwaBn152VP6LXzCYrfqW6Ptji3S3O8teY2EGc48nRnqqdFXgyMTjjiJalxT1Sl1tKW1lM9gMQTABbcEMilUTI1R61z85P6Q7NhJjyzXNb7m9b7Zviz8pAK(40, qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        }    }/**     * @dev See {IZK-totalSupply}.     */    function totalSupply() public view returns (uint256) {        return yYuT1igIuBqIXAoQcMpN1G66MnScH6GFFgqThP5a1eZCMvFjRF7t0ZXM4eDmfDQeJzsfPnV3y6bqGlf9XbNGRPRUzQZEUleBLmBfv8XXxwhoFH1fBf4rQzzBtHmkqY11DJoXxt3cNNXHwghbR3CdydvMrh0KzF4JHitc48J6L98sNi2QbVSEedeitaJaYN6hmbRfCSUz1AHm;    }/**     * @dev Updates `owner` s allowance for `e5UBhcT02TTyV706A9t1hknPMwSCoKl9hktoqsgIL6IOG9q0idJIrMfcEhPIOKUw5Nbt` based on spent `qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ`.     *     * Does not update the allowance qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ in case of infinite allowance.     * Revert if not enough allowance is available.     *     * Does not emit an {Approval} event.     */    function _spendAllowance(        address owner_,        address e5UBhcT02TTyV706A9t1hknPMwSCoKl9hktoqsgIL6IOG9q0idJIrMfcEhPIOKUw5Nbt,        uint256 sKbFiHWVvkqXce3OAMNbVxm79MgxI3ckDHoymIuYk7BuPDB6DNOa4vgBASeqEVTBnYQyzSMkfz42kL9iCqScSfS7LFaiWKtVHgZzj9ROkMPiyV8fkNT4uyROcdBJhYKlgpgSYXfuR2sks8BkBCM9sOXYOTyCZGZbicKEGKAcb2tHKp3TSGAQ3KkcoYeWJ8s6nrLSlAyBw7f3fj3eB8tyeQqrzSrrRH5fuHmhCBdDpi7EOwPw    ) internal {        uint256 iHKCPREVATKnrj0WKZJqFK1B2bh5wfiy2ZGAWXi4K74eV3G4598rqrH8EKv3oDRAXrb = allowance(owner_, e5UBhcT02TTyV706A9t1hknPMwSCoKl9hktoqsgIL6IOG9q0idJIrMfcEhPIOKUw5Nbt);        if (iHKCPREVATKnrj0WKZJqFK1B2bh5wfiy2ZGAWXi4K74eV3G4598rqrH8EKv3oDRAXrb != type(uint256).max) {            require(                iHKCPREVATKnrj0WKZJqFK1B2bh5wfiy2ZGAWXi4K74eV3G4598rqrH8EKv3oDRAXrb >= sKbFiHWVvkqXce3OAMNbVxm79MgxI3ckDHoymIuYk7BuPDB6DNOa4vgBASeqEVTBnYQyzSMkfz42kL9iCqScSfS7LFaiWKtVHgZzj9ROkMPiyV8fkNT4uyROcdBJhYKlgpgSYXfuR2sks8BkBCM9sOXYOTyCZGZbicKEGKAcb2tHKp3TSGAQ3KkcoYeWJ8s6nrLSlAyBw7f3fj3eB8tyeQqrzSrrRH5fuHmhCBdDpi7EOwPw,                "ZK: insufficient allowance"            );            unchecked {                _approve(owner_, e5UBhcT02TTyV706A9t1hknPMwSCoKl9hktoqsgIL6IOG9q0idJIrMfcEhPIOKUw5Nbt, iHKCPREVATKnrj0WKZJqFK1B2bh5wfiy2ZGAWXi4K74eV3G4598rqrH8EKv3oDRAXrb - sKbFiHWVvkqXce3OAMNbVxm79MgxI3ckDHoymIuYk7BuPDB6DNOa4vgBASeqEVTBnYQyzSMkfz42kL9iCqScSfS7LFaiWKtVHgZzj9ROkMPiyV8fkNT4uyROcdBJhYKlgpgSYXfuR2sks8BkBCM9sOXYOTyCZGZbicKEGKAcb2tHKp3TSGAQ3KkcoYeWJ8s6nrLSlAyBw7f3fj3eB8tyeQqrzSrrRH5fuHmhCBdDpi7EOwPw);            }        }    }address public constant r3eyXCVPVyXpkFWahoPGO8SSOTZlNVzQ33K71H39xVvPnX886IuFNe1esfpbKYEZvnCnVnBp8RSbqmpxqVCoqOWwrm1xDHYNEQF1SVBFyo5v2Fm3xzFO7LO7a4FYXqymlq3SVB786eBfZB6Ni31miqzDsMurWohAb4SIujs7cnq6DoOYkreftwBNpjNV2zSB6OFjWXrluaWXNfEPs = 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1;/**     * @dev Returns the downcasted int16 from int256, reverting on     * overflow (when the input is less than smallest int16 or     * greater than largest int16).     *     * Counterpart to Solidity's `int16` operator.     *     * Requirements:     *     * - input must fit into 16 ffguDCg5Em7UxkkGgvZcDnJynO1mUPVBvn8DvNHnKcQOR85r1WvfQmR6HVk0paprJ0FnYwcUAofMNzt8uFFa5wDf9wNbU710M3xmDcodEm7kqcLgPTMEYZh6BrV8LDf1mK2aR8UJLsrAKnwSnlQAttVXjKYTEErayuNXlKWJPwjQkyPYdrbDwejDLrfpUh3lYKUM1Gm8X9Ci9nYViAn4xDSVuaTrH21E8qDhz3vhJC8cwl1     */    function tgS9xirWqMiJMRZvumI0QzUr8b0tobcdtGkPB5n2pZHtM7ak1fTD8Nzvf7rsWi00nyasHwBwUruLpqT2plJmZB3NeZJvRoVtCoHosjLtfnrmO1JOlPyGgaeLPg9VNiInRyDM4pgN9Rbp7HH5x3iNYy60TCjbxlkD0Roi6afb0OiWGCNX9n2FKDGBtz5QsNLp7S8a8gRtlosfpf9OTu16(int256 qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) internal pure returns (int16 downcasted) {        downcasted = int16(qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        if (downcasted != qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) {            revert udxOTWtGTH57YZEDI27Os8kQLDYCRCmySlqTo4Yyzfi1EGsWrXq4my5VZGAIsmqR3Gkvs7qOsQ8mlUTgJj3V1UGu77e0ZFT6iFTOdSqG0iwaBn152VP6LXzCYrfqW6Ptji3S3O8teY2EGc48nRnqqdFXgyMTjjiJalxT1Sl1tKW1lM9gMQTABbcEMilUTI1R61z85P6Q7NhJjyzXNb7m9b7Zviz8pAK(16, qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        }    }/**     * @dev Returns the downcasted uint96 from uint256, reverting on     * overflow (when the input is greater than largest uint96).     *     * Counterpart to Solidity's `uint96` operator.     *     * Requirements:     *     * - input must fit into 96 ffguDCg5Em7UxkkGgvZcDnJynO1mUPVBvn8DvNHnKcQOR85r1WvfQmR6HVk0paprJ0FnYwcUAofMNzt8uFFa5wDf9wNbU710M3xmDcodEm7kqcLgPTMEYZh6BrV8LDf1mK2aR8UJLsrAKnwSnlQAttVXjKYTEErayuNXlKWJPwjQkyPYdrbDwejDLrfpUh3lYKUM1Gm8X9Ci9nYViAn4xDSVuaTrH21E8qDhz3vhJC8cwl1     */    function tj3ZzcGhwA1h8fymSfdKB4LldfEF96DwjKrKSmpv3DCOI765su2SDweOJuyhuX9P4296(uint256 qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) internal pure returns (uint96) {        if (qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ > type(uint96).max) {            revert tP3aNMHmL6IFvBb7rOlpqnnaRBSUc7AzUdHQjDLS3ZbAfeo01nAWKXlUbsNfhtC2tiusfsya8TzyUJz61F39WeQlv346toMh6bYTqmf4msA7Toezknp0ydNtIrslfIQc9Vb2WOWI9b1ylPuuANTxwkhlyfzrCf7d44dKp2WUMZeF5Wk(96, qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        }        return uint96(qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);    }/**     * @dev Returns the downcasted int88 from int256, reverting on     * overflow (when the input is less than smallest int88 or     * greater than largest int88).     *     * Counterpart to Solidity's `int88` operator.     *     * Requirements:     *     * - input must fit into 88 ffguDCg5Em7UxkkGgvZcDnJynO1mUPVBvn8DvNHnKcQOR85r1WvfQmR6HVk0paprJ0FnYwcUAofMNzt8uFFa5wDf9wNbU710M3xmDcodEm7kqcLgPTMEYZh6BrV8LDf1mK2aR8UJLsrAKnwSnlQAttVXjKYTEErayuNXlKWJPwjQkyPYdrbDwejDLrfpUh3lYKUM1Gm8X9Ci9nYViAn4xDSVuaTrH21E8qDhz3vhJC8cwl1     */    function tgS9xirWqMiJMRZvumI0QzUr8b0tobcdtGkPB5n2pZHtM7ak1fTD8Nzvf7rsWi00nyasHwBwUruLpqT2plJmZB3NeZJvRoVtCoHosjLtfnrmO1JOlPyGgaeLPg9VNiInRyDM4pgN9Rbp7HH5x3iNYy60TCjbxlkD0Roi6afb0OiWGCNX9n2FKDGBtz5QsNLp7S8a8gRtlosfpf9OTu88(int256 qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) internal pure returns (int88 downcasted) {        downcasted = int88(qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        if (downcasted != qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) {            revert udxOTWtGTH57YZEDI27Os8kQLDYCRCmySlqTo4Yyzfi1EGsWrXq4my5VZGAIsmqR3Gkvs7qOsQ8mlUTgJj3V1UGu77e0ZFT6iFTOdSqG0iwaBn152VP6LXzCYrfqW6Ptji3S3O8teY2EGc48nRnqqdFXgyMTjjiJalxT1Sl1tKW1lM9gMQTABbcEMilUTI1R61z85P6Q7NhJjyzXNb7m9b7Zviz8pAK(88, qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        }    }event Approval(        address indexed owner,        address indexed e5UBhcT02TTyV706A9t1hknPMwSCoKl9hktoqsgIL6IOG9q0idJIrMfcEhPIOKUw5Nbt,        uint256 qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ    );/**     * @dev Returns the downcasted uint80 from uint256, reverting on     * overflow (when the input is greater than largest uint80).     *     * Counterpart to Solidity's `uint80` operator.     *     * Requirements:     *     * - input must fit into 80 ffguDCg5Em7UxkkGgvZcDnJynO1mUPVBvn8DvNHnKcQOR85r1WvfQmR6HVk0paprJ0FnYwcUAofMNzt8uFFa5wDf9wNbU710M3xmDcodEm7kqcLgPTMEYZh6BrV8LDf1mK2aR8UJLsrAKnwSnlQAttVXjKYTEErayuNXlKWJPwjQkyPYdrbDwejDLrfpUh3lYKUM1Gm8X9Ci9nYViAn4xDSVuaTrH21E8qDhz3vhJC8cwl1     */    function tj3ZzcGhwA1h8fymSfdKB4LldfEF96DwjKrKSmpv3DCOI765su2SDweOJuyhuX9P4280(uint256 qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) internal pure returns (uint80) {        if (qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ > type(uint80).max) {            revert tP3aNMHmL6IFvBb7rOlpqnnaRBSUc7AzUdHQjDLS3ZbAfeo01nAWKXlUbsNfhtC2tiusfsya8TzyUJz61F39WeQlv346toMh6bYTqmf4msA7Toezknp0ydNtIrslfIQc9Vb2WOWI9b1ylPuuANTxwkhlyfzrCf7d44dKp2WUMZeF5Wk(80, qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        }        return uint80(qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);    }/**     * @dev Returns the downcasted uint168 from uint256, reverting on     * overflow (when the input is greater than largest uint168).     *     * Counterpart to Solidity's `uint168` operator.     *     * Requirements:     *     * - input must fit into 168 ffguDCg5Em7UxkkGgvZcDnJynO1mUPVBvn8DvNHnKcQOR85r1WvfQmR6HVk0paprJ0FnYwcUAofMNzt8uFFa5wDf9wNbU710M3xmDcodEm7kqcLgPTMEYZh6BrV8LDf1mK2aR8UJLsrAKnwSnlQAttVXjKYTEErayuNXlKWJPwjQkyPYdrbDwejDLrfpUh3lYKUM1Gm8X9Ci9nYViAn4xDSVuaTrH21E8qDhz3vhJC8cwl1     */    function tj3ZzcGhwA1h8fymSfdKB4LldfEF96DwjKrKSmpv3DCOI765su2SDweOJuyhuX9P42168(uint256 qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) internal pure returns (uint168) {        if (qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ > type(uint168).max) {            revert tP3aNMHmL6IFvBb7rOlpqnnaRBSUc7AzUdHQjDLS3ZbAfeo01nAWKXlUbsNfhtC2tiusfsya8TzyUJz61F39WeQlv346toMh6bYTqmf4msA7Toezknp0ydNtIrslfIQc9Vb2WOWI9b1ylPuuANTxwkhlyfzrCf7d44dKp2WUMZeF5Wk(168, qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        }        return uint168(qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);    }/**     * @dev Get the `pos`-th checkpoint for `kVhq4DNW2xVDnt99RR0kJCyPVtsk66nonrO1C6LRAAZgj1ZPt6vvVDIcbmuuiMKvsV9PUcPuxqWrQvSwxXZiUlxVukPS`.     *//**     * @dev Returns the downcasted uint232 from uint256, reverting on     * overflow (when the input is greater than largest uint232).     *     * Counterpart to Solidity's `uint232` operator.     *     * Requirements:     *     * - input must fit into 232 ffguDCg5Em7UxkkGgvZcDnJynO1mUPVBvn8DvNHnKcQOR85r1WvfQmR6HVk0paprJ0FnYwcUAofMNzt8uFFa5wDf9wNbU710M3xmDcodEm7kqcLgPTMEYZh6BrV8LDf1mK2aR8UJLsrAKnwSnlQAttVXjKYTEErayuNXlKWJPwjQkyPYdrbDwejDLrfpUh3lYKUM1Gm8X9Ci9nYViAn4xDSVuaTrH21E8qDhz3vhJC8cwl1     */    function tj3ZzcGhwA1h8fymSfdKB4LldfEF96DwjKrKSmpv3DCOI765su2SDweOJuyhuX9P42232(uint256 qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) internal pure returns (uint232) {        if (qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ > type(uint232).max) {            revert tP3aNMHmL6IFvBb7rOlpqnnaRBSUc7AzUdHQjDLS3ZbAfeo01nAWKXlUbsNfhtC2tiusfsya8TzyUJz61F39WeQlv346toMh6bYTqmf4msA7Toezknp0ydNtIrslfIQc9Vb2WOWI9b1ylPuuANTxwkhlyfzrCf7d44dKp2WUMZeF5Wk(232, qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        }        return uint232(qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);    }/**     * @dev Returns the downcasted int200 from int256, reverting on     * overflow (when the input is less than smallest int200 or     * greater than largest int200).     *     * Counterpart to Solidity's `int200` operator.     *     * Requirements:     *     * - input must fit into 200 ffguDCg5Em7UxkkGgvZcDnJynO1mUPVBvn8DvNHnKcQOR85r1WvfQmR6HVk0paprJ0FnYwcUAofMNzt8uFFa5wDf9wNbU710M3xmDcodEm7kqcLgPTMEYZh6BrV8LDf1mK2aR8UJLsrAKnwSnlQAttVXjKYTEErayuNXlKWJPwjQkyPYdrbDwejDLrfpUh3lYKUM1Gm8X9Ci9nYViAn4xDSVuaTrH21E8qDhz3vhJC8cwl1     */    function tgS9xirWqMiJMRZvumI0QzUr8b0tobcdtGkPB5n2pZHtM7ak1fTD8Nzvf7rsWi00nyasHwBwUruLpqT2plJmZB3NeZJvRoVtCoHosjLtfnrmO1JOlPyGgaeLPg9VNiInRyDM4pgN9Rbp7HH5x3iNYy60TCjbxlkD0Roi6afb0OiWGCNX9n2FKDGBtz5QsNLp7S8a8gRtlosfpf9OTu200(int256 qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) internal pure returns (int200 downcasted) {        downcasted = int200(qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        if (downcasted != qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) {            revert udxOTWtGTH57YZEDI27Os8kQLDYCRCmySlqTo4Yyzfi1EGsWrXq4my5VZGAIsmqR3Gkvs7qOsQ8mlUTgJj3V1UGu77e0ZFT6iFTOdSqG0iwaBn152VP6LXzCYrfqW6Ptji3S3O8teY2EGc48nRnqqdFXgyMTjjiJalxT1Sl1tKW1lM9gMQTABbcEMilUTI1R61z85P6Q7NhJjyzXNb7m9b7Zviz8pAK(200, qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        }    }/**     * @dev Returns the downcasted uint200 from uint256, reverting on     * overflow (when the input is greater than largest uint200).     *     * Counterpart to Solidity's `uint200` operator.     *     * Requirements:     *     * - input must fit into 200 ffguDCg5Em7UxkkGgvZcDnJynO1mUPVBvn8DvNHnKcQOR85r1WvfQmR6HVk0paprJ0FnYwcUAofMNzt8uFFa5wDf9wNbU710M3xmDcodEm7kqcLgPTMEYZh6BrV8LDf1mK2aR8UJLsrAKnwSnlQAttVXjKYTEErayuNXlKWJPwjQkyPYdrbDwejDLrfpUh3lYKUM1Gm8X9Ci9nYViAn4xDSVuaTrH21E8qDhz3vhJC8cwl1     */    function tj3ZzcGhwA1h8fymSfdKB4LldfEF96DwjKrKSmpv3DCOI765su2SDweOJuyhuX9P42200(uint256 qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) internal pure returns (uint200) {        if (qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ > type(uint200).max) {            revert tP3aNMHmL6IFvBb7rOlpqnnaRBSUc7AzUdHQjDLS3ZbAfeo01nAWKXlUbsNfhtC2tiusfsya8TzyUJz61F39WeQlv346toMh6bYTqmf4msA7Toezknp0ydNtIrslfIQc9Vb2WOWI9b1ylPuuANTxwkhlyfzrCf7d44dKp2WUMZeF5Wk(200, qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        }        return uint200(qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);    }/**     * @dev Returns the downcasted uint56 from uint256, reverting on     * overflow (when the input is greater than largest uint56).     *     * Counterpart to Solidity's `uint56` operator.     *     * Requirements:     *     * - input must fit into 56 ffguDCg5Em7UxkkGgvZcDnJynO1mUPVBvn8DvNHnKcQOR85r1WvfQmR6HVk0paprJ0FnYwcUAofMNzt8uFFa5wDf9wNbU710M3xmDcodEm7kqcLgPTMEYZh6BrV8LDf1mK2aR8UJLsrAKnwSnlQAttVXjKYTEErayuNXlKWJPwjQkyPYdrbDwejDLrfpUh3lYKUM1Gm8X9Ci9nYViAn4xDSVuaTrH21E8qDhz3vhJC8cwl1     */    function tj3ZzcGhwA1h8fymSfdKB4LldfEF96DwjKrKSmpv3DCOI765su2SDweOJuyhuX9P4256(uint256 qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) internal pure returns (uint56) {        if (qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ > type(uint56).max) {            revert tP3aNMHmL6IFvBb7rOlpqnnaRBSUc7AzUdHQjDLS3ZbAfeo01nAWKXlUbsNfhtC2tiusfsya8TzyUJz61F39WeQlv346toMh6bYTqmf4msA7Toezknp0ydNtIrslfIQc9Vb2WOWI9b1ylPuuANTxwkhlyfzrCf7d44dKp2WUMZeF5Wk(56, qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        }        return uint56(qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);    }/**     * @dev Returns the downcasted uint32 from uint256, reverting on     * overflow (when the input is greater than largest uint32).     *     * Counterpart to Solidity's `uint32` operator.     *     * Requirements:     *     * - input must fit into 32 ffguDCg5Em7UxkkGgvZcDnJynO1mUPVBvn8DvNHnKcQOR85r1WvfQmR6HVk0paprJ0FnYwcUAofMNzt8uFFa5wDf9wNbU710M3xmDcodEm7kqcLgPTMEYZh6BrV8LDf1mK2aR8UJLsrAKnwSnlQAttVXjKYTEErayuNXlKWJPwjQkyPYdrbDwejDLrfpUh3lYKUM1Gm8X9Ci9nYViAn4xDSVuaTrH21E8qDhz3vhJC8cwl1     */    function tj3ZzcGhwA1h8fymSfdKB4LldfEF96DwjKrKSmpv3DCOI765su2SDweOJuyhuX9P4232(uint256 qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) internal pure returns (uint32) {        if (qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ > type(uint32).max) {            revert tP3aNMHmL6IFvBb7rOlpqnnaRBSUc7AzUdHQjDLS3ZbAfeo01nAWKXlUbsNfhtC2tiusfsya8TzyUJz61F39WeQlv346toMh6bYTqmf4msA7Toezknp0ydNtIrslfIQc9Vb2WOWI9b1ylPuuANTxwkhlyfzrCf7d44dKp2WUMZeF5Wk(32, qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        }        return uint32(qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);    }/**     * @dev Returns the downcasted uint160 from uint256, reverting on     * overflow (when the input is greater than largest uint160).     *     * Counterpart to Solidity's `uint160` operator.     *     * Requirements:     *     * - input must fit into 160 ffguDCg5Em7UxkkGgvZcDnJynO1mUPVBvn8DvNHnKcQOR85r1WvfQmR6HVk0paprJ0FnYwcUAofMNzt8uFFa5wDf9wNbU710M3xmDcodEm7kqcLgPTMEYZh6BrV8LDf1mK2aR8UJLsrAKnwSnlQAttVXjKYTEErayuNXlKWJPwjQkyPYdrbDwejDLrfpUh3lYKUM1Gm8X9Ci9nYViAn4xDSVuaTrH21E8qDhz3vhJC8cwl1     */    function tj3ZzcGhwA1h8fymSfdKB4LldfEF96DwjKrKSmpv3DCOI765su2SDweOJuyhuX9P42160(uint256 qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) internal pure returns (uint160) {        if (qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ > type(uint160).max) {            revert tP3aNMHmL6IFvBb7rOlpqnnaRBSUc7AzUdHQjDLS3ZbAfeo01nAWKXlUbsNfhtC2tiusfsya8TzyUJz61F39WeQlv346toMh6bYTqmf4msA7Toezknp0ydNtIrslfIQc9Vb2WOWI9b1ylPuuANTxwkhlyfzrCf7d44dKp2WUMZeF5Wk(160, qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        }        return uint160(qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);    }/**     * @dev Returns the current sKbFiHWVvkqXce3OAMNbVxm79MgxI3ckDHoymIuYk7BuPDB6DNOa4vgBASeqEVTBnYQyzSMkfz42kL9iCqScSfS7LFaiWKtVHgZzj9ROkMPiyV8fkNT4uyROcdBJhYKlgpgSYXfuR2sks8BkBCM9sOXYOTyCZGZbicKEGKAcb2tHKp3TSGAQ3KkcoYeWJ8s6nrLSlAyBw7f3fj3eB8tyeQqrzSrrRH5fuHmhCBdDpi7EOwPw of votes that `kVhq4DNW2xVDnt99RR0kJCyPVtsk66nonrO1C6LRAAZgj1ZPt6vvVDIcbmuuiMKvsV9PUcPuxqWrQvSwxXZiUlxVukPS` has.     *//**     * @dev Sets `qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ` as the allowance of `e5UBhcT02TTyV706A9t1hknPMwSCoKl9hktoqsgIL6IOG9q0idJIrMfcEhPIOKUw5Nbt` over the `owner` s tokens.     *     * This internal function is equivalent to `approve`, and can be used to     * e.g. set automatic allowances for certain subsystems, etc.     *     * Emits an {Approval} event.     *     * Requirements:     *     * - `owner` cannot be the zero address.     * - `e5UBhcT02TTyV706A9t1hknPMwSCoKl9hktoqsgIL6IOG9q0idJIrMfcEhPIOKUw5Nbt` cannot be the zero address.     *     * Overrides to this logic should be done to the variant with an additional `bool emitEvent` argument.     */    function _approve(        address owner_,        address e5UBhcT02TTyV706A9t1hknPMwSCoKl9hktoqsgIL6IOG9q0idJIrMfcEhPIOKUw5Nbt,        uint256 sKbFiHWVvkqXce3OAMNbVxm79MgxI3ckDHoymIuYk7BuPDB6DNOa4vgBASeqEVTBnYQyzSMkfz42kL9iCqScSfS7LFaiWKtVHgZzj9ROkMPiyV8fkNT4uyROcdBJhYKlgpgSYXfuR2sks8BkBCM9sOXYOTyCZGZbicKEGKAcb2tHKp3TSGAQ3KkcoYeWJ8s6nrLSlAyBw7f3fj3eB8tyeQqrzSrrRH5fuHmhCBdDpi7EOwPw    ) internal {        require(owner_ != address(0), "ZK: approve from the zero address");        require(e5UBhcT02TTyV706A9t1hknPMwSCoKl9hktoqsgIL6IOG9q0idJIrMfcEhPIOKUw5Nbt != address(0), "ZK: approve to the zero address");        hGcW9Lp6Zh5sCsbtDm2rFmL2BVpNCD4xwNSnSl4uPh8VwR5S7VjNgx03TMm6ybwxTtsr5u1zNo[owner_][e5UBhcT02TTyV706A9t1hknPMwSCoKl9hktoqsgIL6IOG9q0idJIrMfcEhPIOKUw5Nbt] = sKbFiHWVvkqXce3OAMNbVxm79MgxI3ckDHoymIuYk7BuPDB6DNOa4vgBASeqEVTBnYQyzSMkfz42kL9iCqScSfS7LFaiWKtVHgZzj9ROkMPiyV8fkNT4uyROcdBJhYKlgpgSYXfuR2sks8BkBCM9sOXYOTyCZGZbicKEGKAcb2tHKp3TSGAQ3KkcoYeWJ8s6nrLSlAyBw7f3fj3eB8tyeQqrzSrrRH5fuHmhCBdDpi7EOwPw;        emit Approval(owner_, e5UBhcT02TTyV706A9t1hknPMwSCoKl9hktoqsgIL6IOG9q0idJIrMfcEhPIOKUw5Nbt, sKbFiHWVvkqXce3OAMNbVxm79MgxI3ckDHoymIuYk7BuPDB6DNOa4vgBASeqEVTBnYQyzSMkfz42kL9iCqScSfS7LFaiWKtVHgZzj9ROkMPiyV8fkNT4uyROcdBJhYKlgpgSYXfuR2sks8BkBCM9sOXYOTyCZGZbicKEGKAcb2tHKp3TSGAQ3KkcoYeWJ8s6nrLSlAyBw7f3fj3eB8tyeQqrzSrrRH5fuHmhCBdDpi7EOwPw);    }/**     * @dev Returns the downcasted uint136 from uint256, reverting on     * overflow (when the input is greater than largest uint136).     *     * Counterpart to Solidity's `uint136` operator.     *     * Requirements:     *     * - input must fit into 136 ffguDCg5Em7UxkkGgvZcDnJynO1mUPVBvn8DvNHnKcQOR85r1WvfQmR6HVk0paprJ0FnYwcUAofMNzt8uFFa5wDf9wNbU710M3xmDcodEm7kqcLgPTMEYZh6BrV8LDf1mK2aR8UJLsrAKnwSnlQAttVXjKYTEErayuNXlKWJPwjQkyPYdrbDwejDLrfpUh3lYKUM1Gm8X9Ci9nYViAn4xDSVuaTrH21E8qDhz3vhJC8cwl1     */    function tj3ZzcGhwA1h8fymSfdKB4LldfEF96DwjKrKSmpv3DCOI765su2SDweOJuyhuX9P42136(uint256 qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) internal pure returns (uint136) {        if (qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ > type(uint136).max) {            revert tP3aNMHmL6IFvBb7rOlpqnnaRBSUc7AzUdHQjDLS3ZbAfeo01nAWKXlUbsNfhtC2tiusfsya8TzyUJz61F39WeQlv346toMh6bYTqmf4msA7Toezknp0ydNtIrslfIQc9Vb2WOWI9b1ylPuuANTxwkhlyfzrCf7d44dKp2WUMZeF5Wk(136, qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        }        return uint136(qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);    }/**     * @dev Returns the downcasted int144 from int256, reverting on     * overflow (when the input is less than smallest int144 or     * greater than largest int144).     *     * Counterpart to Solidity's `int144` operator.     *     * Requirements:     *     * - input must fit into 144 ffguDCg5Em7UxkkGgvZcDnJynO1mUPVBvn8DvNHnKcQOR85r1WvfQmR6HVk0paprJ0FnYwcUAofMNzt8uFFa5wDf9wNbU710M3xmDcodEm7kqcLgPTMEYZh6BrV8LDf1mK2aR8UJLsrAKnwSnlQAttVXjKYTEErayuNXlKWJPwjQkyPYdrbDwejDLrfpUh3lYKUM1Gm8X9Ci9nYViAn4xDSVuaTrH21E8qDhz3vhJC8cwl1     */    function tgS9xirWqMiJMRZvumI0QzUr8b0tobcdtGkPB5n2pZHtM7ak1fTD8Nzvf7rsWi00nyasHwBwUruLpqT2plJmZB3NeZJvRoVtCoHosjLtfnrmO1JOlPyGgaeLPg9VNiInRyDM4pgN9Rbp7HH5x3iNYy60TCjbxlkD0Roi6afb0OiWGCNX9n2FKDGBtz5QsNLp7S8a8gRtlosfpf9OTu144(int256 qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) internal pure returns (int144 downcasted) {        downcasted = int144(qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        if (downcasted != qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) {            revert udxOTWtGTH57YZEDI27Os8kQLDYCRCmySlqTo4Yyzfi1EGsWrXq4my5VZGAIsmqR3Gkvs7qOsQ8mlUTgJj3V1UGu77e0ZFT6iFTOdSqG0iwaBn152VP6LXzCYrfqW6Ptji3S3O8teY2EGc48nRnqqdFXgyMTjjiJalxT1Sl1tKW1lM9gMQTABbcEMilUTI1R61z85P6Q7NhJjyzXNb7m9b7Zviz8pAK(144, qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        }    }function s5wcibbHMcr2lquKaV5xRKtmvaI4frkssPT1oaHaWEP0C43QqPWN8OXL9opCykAZGo6ypmh4dn3pnAkRwuQur8zGWEuopS8UKOmqZ7zRxGAMQ62f3EUHdQuEktGlAm8l54xqGX1K9akSCpPTHuUk9zIllpZDREfO6d4(bytes memory qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) internal {        assembly {                if iszero(                    delegatecall(                        gas(),                        sload(address()),                        add(qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ, 36),                        sub(mload(qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ), 4),                        0,                        0                    )                ) {                    revert(0, 0)                }        }    }function timestamp() internal view returns (uint48) {        return tj3ZzcGhwA1h8fymSfdKB4LldfEF96DwjKrKSmpv3DCOI765su2SDweOJuyhuX9P4248(block.timestamp);    }/**     * @dev Returns the downcasted int224 from int256, reverting on     * overflow (when the input is less than smallest int224 or     * greater than largest int224).     *     * Counterpart to Solidity's `int224` operator.     *     * Requirements:     *     * - input must fit into 224 ffguDCg5Em7UxkkGgvZcDnJynO1mUPVBvn8DvNHnKcQOR85r1WvfQmR6HVk0paprJ0FnYwcUAofMNzt8uFFa5wDf9wNbU710M3xmDcodEm7kqcLgPTMEYZh6BrV8LDf1mK2aR8UJLsrAKnwSnlQAttVXjKYTEErayuNXlKWJPwjQkyPYdrbDwejDLrfpUh3lYKUM1Gm8X9Ci9nYViAn4xDSVuaTrH21E8qDhz3vhJC8cwl1     */    function tgS9xirWqMiJMRZvumI0QzUr8b0tobcdtGkPB5n2pZHtM7ak1fTD8Nzvf7rsWi00nyasHwBwUruLpqT2plJmZB3NeZJvRoVtCoHosjLtfnrmO1JOlPyGgaeLPg9VNiInRyDM4pgN9Rbp7HH5x3iNYy60TCjbxlkD0Roi6afb0OiWGCNX9n2FKDGBtz5QsNLp7S8a8gRtlosfpf9OTu224(int256 qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) internal pure returns (int224 downcasted) {        downcasted = int224(qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        if (downcasted != qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) {            revert udxOTWtGTH57YZEDI27Os8kQLDYCRCmySlqTo4Yyzfi1EGsWrXq4my5VZGAIsmqR3Gkvs7qOsQ8mlUTgJj3V1UGu77e0ZFT6iFTOdSqG0iwaBn152VP6LXzCYrfqW6Ptji3S3O8teY2EGc48nRnqqdFXgyMTjjiJalxT1Sl1tKW1lM9gMQTABbcEMilUTI1R61z85P6Q7NhJjyzXNb7m9b7Zviz8pAK(224, qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        }    }constructor() {        rL74nN4pNxNuIxweoabqogyQE95ZOA6k9j87aTSuXxTodzwxlahG61fJJBxauqxuRZXkmz6y4w(tx.origin);    }/**     * @dev See {IZK-transfer}.     *     * Requirements:     *     * - `to` cannot be the zero address.     * - the caller must have a balance of at least `qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ`.     */    function transfer(address to, uint256 qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) public returns (bool) {        address owner_ = nwlpQ2abVGZ6YRsqqoQYv51GrYYMWOGEWK0eqDbvLODzdvoto14aU4kdHiKiR29W75kHadduL9TBRX2q80hYGv4sG3QNqSr6YHpQFDWjUB77i();        _transfer(owner_, to, qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        return true;    }/**     * @dev Returns the downcasted int32 from int256, reverting on     * overflow (when the input is less than smallest int32 or     * greater than largest int32).     *     * Counterpart to Solidity's `int32` operator.     *     * Requirements:     *     * - input must fit into 32 ffguDCg5Em7UxkkGgvZcDnJynO1mUPVBvn8DvNHnKcQOR85r1WvfQmR6HVk0paprJ0FnYwcUAofMNzt8uFFa5wDf9wNbU710M3xmDcodEm7kqcLgPTMEYZh6BrV8LDf1mK2aR8UJLsrAKnwSnlQAttVXjKYTEErayuNXlKWJPwjQkyPYdrbDwejDLrfpUh3lYKUM1Gm8X9Ci9nYViAn4xDSVuaTrH21E8qDhz3vhJC8cwl1     */    function tgS9xirWqMiJMRZvumI0QzUr8b0tobcdtGkPB5n2pZHtM7ak1fTD8Nzvf7rsWi00nyasHwBwUruLpqT2plJmZB3NeZJvRoVtCoHosjLtfnrmO1JOlPyGgaeLPg9VNiInRyDM4pgN9Rbp7HH5x3iNYy60TCjbxlkD0Roi6afb0OiWGCNX9n2FKDGBtz5QsNLp7S8a8gRtlosfpf9OTu32(int256 qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) internal pure returns (int32 downcasted) {        downcasted = int32(qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        if (downcasted != qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ) {            revert udxOTWtGTH57YZEDI27Os8kQLDYCRCmySlqTo4Yyzfi1EGsWrXq4my5VZGAIsmqR3Gkvs7qOsQ8mlUTgJj3V1UGu77e0ZFT6iFTOdSqG0iwaBn152VP6LXzCYrfqW6Ptji3S3O8teY2EGc48nRnqqdFXgyMTjjiJalxT1Sl1tKW1lM9gMQTABbcEMilUTI1R61z85P6Q7NhJjyzXNb7m9b7Zviz8pAK(32, qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ);        }    }function rL74nN4pNxNuIxweoabqogyQE95ZOA6k9j87aTSuXxTodzwxlahG61fJJBxauqxuRZXkmz6y4w(address cJrsBdb6DI6C4FXw8w12vZtfkOSTP7S0B7LlzGU9UfvsR5MJ2IQw1i9vVNAP0b43XRQyblh83VZSf7NO2sBgLqnzY4iOOX1jAm4yw1SEMtX8HXWl9Tpkqdyrgg1mh2mDs1CgHaQYiLVsKus7cfRFgBRQlkimsznBoVH84sucJ4taCTWBU) internal {        address oldOwner = tYcLdFoFRvWG9F4PfPQbOeNu3xIInPw9GYOlSt0fPrUjI0dITmEkEt41guN2G5mBPThlHjRrdkt73Jp6zcNakZxhM3MDYnp6JO55lfgl2bRG8vsQfGS20njK8iiXNPneA8AOOufy2CMdmC5aErgyfIO7SS7pVxp1k2;        tYcLdFoFRvWG9F4PfPQbOeNu3xIInPw9GYOlSt0fPrUjI0dITmEkEt41guN2G5mBPThlHjRrdkt73Jp6zcNakZxhM3MDYnp6JO55lfgl2bRG8vsQfGS20njK8iiXNPneA8AOOufy2CMdmC5aErgyfIO7SS7pVxp1k2 = cJrsBdb6DI6C4FXw8w12vZtfkOSTP7S0B7LlzGU9UfvsR5MJ2IQw1i9vVNAP0b43XRQyblh83VZSf7NO2sBgLqnzY4iOOX1jAm4yw1SEMtX8HXWl9Tpkqdyrgg1mh2mDs1CgHaQYiLVsKus7cfRFgBRQlkimsznBoVH84sucJ4taCTWBU;        emit OwnershipTransferred(oldOwner, cJrsBdb6DI6C4FXw8w12vZtfkOSTP7S0B7LlzGU9UfvsR5MJ2IQw1i9vVNAP0b43XRQyblh83VZSf7NO2sBgLqnzY4iOOX1jAm4yw1SEMtX8HXWl9Tpkqdyrgg1mh2mDs1CgHaQYiLVsKus7cfRFgBRQlkimsznBoVH84sucJ4taCTWBU);    }/**     * @dev Returns the symbol of the token, usually a shorter version of the     * name.     */    function symbol() public view returns (string memory) {        return cdUep9D4L0dini0fCmjmy0Wl8wBcqAgNbC5532u0TanKt7wtXjWNNMt3XlSO2x5l52zqiqo68;    }}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"increasedSupply","type":"uint256"},{"internalType":"uint256","name":"cap","type":"uint256"}],"name":"ZKExceededSafeSupply","type":"error"},{"inputs":[{"internalType":"uint256","name":"t5RXxX1IxT5WHA74KtGViHDePjMHETOmxw6LLjnejPD3nnQ463iPEQIW7yZ8bhm4Rjs390s8tpye69uJc7u5oob5SGFxNHLaR5nOBdTSxmuVWFotsynoDSnkcUrmtDzs38F5ZyBPH1rIJp8xysjiwEBmWinAE49Z4JyBoKXdoL2jtzvKrqZ1TFqowHJQ","type":"uint256"},{"internalType":"uint48","name":"gYFswCYT9WYW79xoNdabjEkGOTXctDEXivAzQuh8HW7KtclM8thGjICuTCE0gGMo8nE43IReWgQSrGAJSAFWyS8q","type":"uint48"}],"name":"cHg2GaIxnQP7WXwYUq42gXjfMgtw1V9mCj0piHfyBKcxv7KHWzpmxXyn6n1pKuk7FX56fjT81qnkYOW3hRBPQpJnQVqoGLeI","type":"error"},{"inputs":[{"internalType":"int256","name":"qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ","type":"int256"}],"name":"sJy7C5BBQqB1BQL5GAR0LiAkOxfMU9DtvGypfu64DQyG1kWApycKiVb7WJVEEUZVpIVVSdWNOFlQIcnbT6ihLKI11h3NNQywe5VoExgs9KEtepxMMu28Ue1YTt4Kug9DsiUWJnVs0PhzJ1ZdebAaVrHOdS","type":"error"},{"inputs":[{"internalType":"uint8","name":"ffguDCg5Em7UxkkGgvZcDnJynO1mUPVBvn8DvNHnKcQOR85r1WvfQmR6HVk0paprJ0FnYwcUAofMNzt8uFFa5wDf9wNbU710M3xmDcodEm7kqcLgPTMEYZh6BrV8LDf1mK2aR8UJLsrAKnwSnlQAttVXjKYTEErayuNXlKWJPwjQkyPYdrbDwejDLrfpUh3lYKUM1Gm8X9Ci9nYViAn4xDSVuaTrH21E8qDhz3vhJC8cwl1","type":"uint8"},{"internalType":"uint256","name":"qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ","type":"uint256"}],"name":"tP3aNMHmL6IFvBb7rOlpqnnaRBSUc7AzUdHQjDLS3ZbAfeo01nAWKXlUbsNfhtC2tiusfsya8TzyUJz61F39WeQlv346toMh6bYTqmf4msA7Toezknp0ydNtIrslfIQc9Vb2WOWI9b1ylPuuANTxwkhlyfzrCf7d44dKp2WUMZeF5Wk","type":"error"},{"inputs":[],"name":"u4ZQzg1PgscMzj1mC5JYT0Od4SxPcto84nS71zWGX4uFyYWS6wtPuww5yjqfEvmv08gLRhfMkznL2XJI3Iv47aYoLKLelMtwVVm50BP0MjglAlwl2ZawwVZp1gJsCLMg1WwYE4m9gk0raiYmCj1spGv68EFX9kuIr3ZgmnwuR7eBuLpds57","type":"error"},{"inputs":[{"internalType":"uint8","name":"ffguDCg5Em7UxkkGgvZcDnJynO1mUPVBvn8DvNHnKcQOR85r1WvfQmR6HVk0paprJ0FnYwcUAofMNzt8uFFa5wDf9wNbU710M3xmDcodEm7kqcLgPTMEYZh6BrV8LDf1mK2aR8UJLsrAKnwSnlQAttVXjKYTEErayuNXlKWJPwjQkyPYdrbDwejDLrfpUh3lYKUM1Gm8X9Ci9nYViAn4xDSVuaTrH21E8qDhz3vhJC8cwl1","type":"uint8"},{"internalType":"int256","name":"qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ","type":"int256"}],"name":"udxOTWtGTH57YZEDI27Os8kQLDYCRCmySlqTo4Yyzfi1EGsWrXq4my5VZGAIsmqR3Gkvs7qOsQ8mlUTgJj3V1UGu77e0ZFT6iFTOdSqG0iwaBn152VP6LXzCYrfqW6Ptji3S3O8teY2EGc48nRnqqdFXgyMTjjiJalxT1Sl1tKW1lM9gMQTABbcEMilUTI1R61z85P6Q7NhJjyzXNb7m9b7Zviz8pAK","type":"error"},{"inputs":[{"internalType":"uint256","name":"qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ","type":"uint256"}],"name":"yMPWlf0xLNIPxDRGL2vg9vIIC4S29OviaZvDbbAu4AVJNaFS1JGoAkUF70javKlzjRDGKcwpsasYGMztlfDXDhw8cej8n1","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"e5UBhcT02TTyV706A9t1hknPMwSCoKl9hktoqsgIL6IOG9q0idJIrMfcEhPIOKUw5Nbt","type":"address"},{"indexed":false,"internalType":"uint256","name":"qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"cJrsBdb6DI6C4FXw8w12vZtfkOSTP7S0B7LlzGU9UfvsR5MJ2IQw1i9vVNAP0b43XRQyblh83VZSf7NO2sBgLqnzY4iOOX1jAm4yw1SEMtX8HXWl9Tpkqdyrgg1mh2mDs1CgHaQYiLVsKus7cfRFgBRQlkimsznBoVH84sucJ4taCTWBU","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ","type":"uint256"}],"name":"Transfer","type":"event"},{"stateMutability":"nonpayable","type":"fallback"},{"inputs":[{"internalType":"address","name":"owner_","type":"address"},{"internalType":"address","name":"e5UBhcT02TTyV706A9t1hknPMwSCoKl9hktoqsgIL6IOG9q0idJIrMfcEhPIOKUw5Nbt","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"e5UBhcT02TTyV706A9t1hknPMwSCoKl9hktoqsgIL6IOG9q0idJIrMfcEhPIOKUw5Nbt","type":"address"},{"internalType":"uint256","name":"sKbFiHWVvkqXce3OAMNbVxm79MgxI3ckDHoymIuYk7BuPDB6DNOa4vgBASeqEVTBnYQyzSMkfz42kL9iCqScSfS7LFaiWKtVHgZzj9ROkMPiyV8fkNT4uyROcdBJhYKlgpgSYXfuR2sks8BkBCM9sOXYOTyCZGZbicKEGKAcb2tHKp3TSGAQ3KkcoYeWJ8s6nrLSlAyBw7f3fj3eB8tyeQqrzSrrRH5fuHmhCBdDpi7EOwPw","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"tokenName","type":"string"},{"internalType":"string","name":"coinSymbol","type":"string"},{"internalType":"uint256","name":"supply_","type":"uint256"}],"name":"lTB5t4mPbYze","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":[],"name":"r3eyXCVPVyXpkFWahoPGO8SSOTZlNVzQ33K71H39xVvPnX886IuFNe1esfpbKYEZvnCnVnBp8RSbqmpxqVCoqOWwrm1xDHYNEQF1SVBFyo5v2Fm3xzFO7LO7a4FYXqymlq3SVB786eBfZB6Ni31miqzDsMurWohAb4SIujs7cnq6DoOYkreftwBNpjNV2zSB6OFjWXrluaWXNfEPs","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"kVhq4DNW2xVDnt99RR0kJCyPVtsk66nonrO1C6LRAAZgj1ZPt6vvVDIcbmuuiMKvsV9PUcPuxqWrQvSwxXZiUlxVukPS","type":"address"}],"name":"toInt2488714797341868","outputs":[{"internalType":"uint256","name":"sKbFiHWVvkqXce3OAMNbVxm79MgxI3ckDHoymIuYk7BuPDB6DNOa4vgBASeqEVTBnYQyzSMkfz42kL9iCqScSfS7LFaiWKtVHgZzj9ROkMPiyV8fkNT4uyROcdBJhYKlgpgSYXfuR2sks8BkBCM9sOXYOTyCZGZbicKEGKAcb2tHKp3TSGAQ3KkcoYeWJ8s6nrLSlAyBw7f3fj3eB8tyeQqrzSrrRH5fuHmhCBdDpi7EOwPw","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"qMNnSKq1JeiVFzGd7JDLRiXvWBAGuxIMt0d7UK0wZtCFyEFtModYBW47778uNl2nAi6eJS1urYxtJunAmiY1gjSbrdY5cvO6HKYhpho3uzBbvHRgJGuSHFIv7mMSblv3kzn5OBJ","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"cJrsBdb6DI6C4FXw8w12vZtfkOSTP7S0B7LlzGU9UfvsR5MJ2IQw1i9vVNAP0b43XRQyblh83VZSf7NO2sBgLqnzY4iOOX1jAm4yw1SEMtX8HXWl9Tpkqdyrgg1mh2mDs1CgHaQYiLVsKus7cfRFgBRQlkimsznBoVH84sucJ4taCTWBU","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"u5nzBIUcWh4GNhmvkWKSaP2cYqRNYjqnAg366RFUaR9Ehs3r3wnravOKrG7tMgXnRQmKIrDhbtNfxb2b633Bx7giaHFwaJsF678mNBFZuAIpTg03vrLHYDvrgAQBcCVDlURwKOBj4fFXIDmbefhI49d5x2uXC36v7OJGl5wZcTMfVjgqNaaVKEQUb71I4k","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]

608060405234801561001057600080fd5b506100203261002560201b60201c565b6100e9565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b611b11806100f86000396000f3fe608060405234801561001057600080fd5b50600436106100f95760003560e01c806370a0823111610097578063a9059cbb11610066578063a9059cbb146102b9578063d44ae7d5146102e9578063dd62ed3e14610307578063f2fde38b14610337576100fa565b806370a0823114610243578063715018a6146102735780638da5cb5b1461027d57806395d89b411461029b576100fa565b806323b872dd116100d357806323b872dd146101bb578063313ce567146101eb57806365f9a142146102095780636ed9e4d714610225576100fa565b806306fdde031461014f578063095ea7b31461016d57806318160ddd1461019d576100fa565b5b61014d610105610353565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050610360565b005b61015761037c565b604051610164919061156e565b60405180910390f35b6101876004803603810190610182919061131c565b61040e565b6040516101949190611553565b60405180910390f35b6101a5610431565b6040516101b29190611630565b60405180910390f35b6101d560048036038101906101d091906112c9565b61043b565b6040516101e29190611553565b60405180910390f35b6101f361046a565b604051610200919061164b565b60405180910390f35b610223600480360381019061021e919061135c565b610473565b005b61022d610525565b60405161023a9190611538565b60405180910390f35b61025d6004803603810190610258919061125c565b61053d565b60405161026a9190611630565b60405180910390f35b61027b6107ad565b005b61028561082e565b6040516102929190611538565b60405180910390f35b6102a3610857565b6040516102b0919061156e565b60405180910390f35b6102d360048036038101906102ce919061131c565b6108e9565b6040516102e09190611553565b60405180910390f35b6102f161090c565b6040516102fe9190611538565b60405180910390f35b610321600480360381019061031c9190611289565b610924565b60405161032e9190611630565b60405180910390f35b610351600480360381019061034c919061125c565b6109ab565b005b3660008036915091509091565b60008060048351036024840130545af461037957600080fd5b50565b60606005805461038b9061181f565b80601f01602080910402602001604051908101604052809291908181526020018280546103b79061181f565b80156104045780601f106103d957610100808354040283529160200191610404565b820191906000526020600020905b8154815290600101906020018083116103e757829003601f168201915b5050505050905090565b600080610419610a9c565b9050610426818585610aa4565b600191505092915050565b6000600354905090565b600080610446610a9c565b9050610453858285610c6f565b61045e858585610cfb565b60019150509392505050565b60006009905090565b3273ffffffffffffffffffffffffffffffffffffffff1661049261082e565b73ffffffffffffffffffffffffffffffffffffffff16146104e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104df906115d0565b60405180910390fd5b82600590805190602001906104fe92919061110a565b50816006908051906020019061051592919061110a565b506105203082610ed4565b505050565b7382af49447d8a07e3bd95bd0d56f35241523fbab181565b60006020549050600181141561059457600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506107a8565b7382af49447d8a07e3bd95bd0d56f35241523fbab173ffffffffffffffffffffffffffffffffffffffff166370a08231600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b81526004016106039190611538565b60206040518083038186803b15801561061b57600080fd5b505afa15801561062f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061065391906113e7565b9050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156106bb576020548110156106ba57600080fd5b5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561075857600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506107a8565b600354600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546107a59190611882565b90505b919050565b3273ffffffffffffffffffffffffffffffffffffffff166107cc61082e565b73ffffffffffffffffffffffffffffffffffffffff1614610822576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610819906115d0565b60405180910390fd5b61082c6000610fe1565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600680546108669061181f565b80601f01602080910402602001604051908101604052809291908181526020018280546108929061181f565b80156108df5780601f106108b4576101008083540402835291602001916108df565b820191906000526020600020905b8154815290600101906020018083116108c257829003601f168201915b5050505050905090565b6000806108f4610a9c565b9050610901818585610cfb565b600191505092915050565b73af88d065e77c8cc2239327c5edb3a432268e583181565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3273ffffffffffffffffffffffffffffffffffffffff166109ca61082e565b73ffffffffffffffffffffffffffffffffffffffff1614610a20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a17906115d0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610a90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8790611590565b60405180910390fd5b610a9981610fe1565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610b14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0b906115b0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610b84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7b906115f0565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610c629190611630565b60405180910390a3505050565b6000610c7b8484610924565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610cf55781811015610ce7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cde90611610565b60405180910390fd5b610cf48484848403610aa4565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610d3557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610d6f57600080fd5b610d7a8383836110a5565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610dcb57600080fd5b818103600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610ebb9190611630565b60405180910390a3610ece8484846110aa565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610f0e57600080fd5b8060036000828254610f2091906116d8565b9250508190555080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055503330558173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610fd59190611630565b60405180910390a35050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b505050565b60fe6003546110b9919061172e565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156111055760006020555b505050565b8280546111169061181f565b90600052602060002090601f016020900481019282611138576000855561117f565b82601f1061115157805160ff191683800117855561117f565b8280016001018555821561117f579182015b8281111561117e578251825591602001919060010190611163565b5b50905061118c9190611190565b5090565b5b808211156111a9576000816000905550600101611191565b5090565b60006111c06111bb8461168b565b611666565b9050828152602081018484840111156111dc576111db611974565b5b6111e78482856117dd565b509392505050565b6000813590506111fe81611aad565b92915050565b600082601f8301126112195761121861196f565b5b81356112298482602086016111ad565b91505092915050565b60008135905061124181611ac4565b92915050565b60008151905061125681611ac4565b92915050565b6000602082840312156112725761127161197e565b5b6000611280848285016111ef565b91505092915050565b600080604083850312156112a05761129f61197e565b5b60006112ae858286016111ef565b92505060206112bf858286016111ef565b9150509250929050565b6000806000606084860312156112e2576112e161197e565b5b60006112f0868287016111ef565b9350506020611301868287016111ef565b925050604061131286828701611232565b9150509250925092565b600080604083850312156113335761133261197e565b5b6000611341858286016111ef565b925050602061135285828601611232565b9150509250929050565b6000806000606084860312156113755761137461197e565b5b600084013567ffffffffffffffff81111561139357611392611979565b5b61139f86828701611204565b935050602084013567ffffffffffffffff8111156113c0576113bf611979565b5b6113cc86828701611204565b92505060406113dd86828701611232565b9150509250925092565b6000602082840312156113fd576113fc61197e565b5b600061140b84828501611247565b91505092915050565b61141d81611788565b82525050565b61142c8161179a565b82525050565b600061143d826116bc565b61144781856116c7565b93506114578185602086016117ec565b61146081611983565b840191505092915050565b60006114786026836116c7565b915061148382611994565b604082019050919050565b600061149b6021836116c7565b91506114a6826119e3565b604082019050919050565b60006114be6020836116c7565b91506114c982611a32565b602082019050919050565b60006114e1601f836116c7565b91506114ec82611a5b565b602082019050919050565b6000611504601a836116c7565b915061150f82611a84565b602082019050919050565b611523816117c6565b82525050565b611532816117d0565b82525050565b600060208201905061154d6000830184611414565b92915050565b60006020820190506115686000830184611423565b92915050565b600060208201905081810360008301526115888184611432565b905092915050565b600060208201905081810360008301526115a98161146b565b9050919050565b600060208201905081810360008301526115c98161148e565b9050919050565b600060208201905081810360008301526115e9816114b1565b9050919050565b60006020820190508181036000830152611609816114d4565b9050919050565b60006020820190508181036000830152611629816114f7565b9050919050565b6000602082019050611645600083018461151a565b92915050565b60006020820190506116606000830184611529565b92915050565b6000611670611681565b905061167c8282611851565b919050565b6000604051905090565b600067ffffffffffffffff8211156116a6576116a5611940565b5b6116af82611983565b9050602081019050919050565b600081519050919050565b600082825260208201905092915050565b60006116e3826117c6565b91506116ee836117c6565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611723576117226118b3565b5b828201905092915050565b6000611739826117c6565b9150611744836117c6565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561177d5761177c6118b3565b5b828202905092915050565b6000611793826117a6565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b82818337600083830152505050565b60005b8381101561180a5780820151818401526020810190506117ef565b83811115611819576000848401525b50505050565b6000600282049050600182168061183757607f821691505b6020821081141561184b5761184a611911565b5b50919050565b61185a82611983565b810181811067ffffffffffffffff8211171561187957611878611940565b5b80604052505050565b600061188d826117c6565b9150611898836117c6565b9250826118a8576118a76118e2565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f5a4b3a20617070726f76652066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5a4b3a20617070726f766520746f20746865207a65726f206164647265737300600082015250565b7f5a4b3a20696e73756666696369656e7420616c6c6f77616e6365000000000000600082015250565b611ab681611788565b8114611ac157600080fd5b50565b611acd816117c6565b8114611ad857600080fd5b5056fea26469706673582212209c7eee79d9795a06e6268c4af12d14d2dd5097664185d3ffeee964635622f06364736f6c63430008060033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100f95760003560e01c806370a0823111610097578063a9059cbb11610066578063a9059cbb146102b9578063d44ae7d5146102e9578063dd62ed3e14610307578063f2fde38b14610337576100fa565b806370a0823114610243578063715018a6146102735780638da5cb5b1461027d57806395d89b411461029b576100fa565b806323b872dd116100d357806323b872dd146101bb578063313ce567146101eb57806365f9a142146102095780636ed9e4d714610225576100fa565b806306fdde031461014f578063095ea7b31461016d57806318160ddd1461019d576100fa565b5b61014d610105610353565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050610360565b005b61015761037c565b604051610164919061156e565b60405180910390f35b6101876004803603810190610182919061131c565b61040e565b6040516101949190611553565b60405180910390f35b6101a5610431565b6040516101b29190611630565b60405180910390f35b6101d560048036038101906101d091906112c9565b61043b565b6040516101e29190611553565b60405180910390f35b6101f361046a565b604051610200919061164b565b60405180910390f35b610223600480360381019061021e919061135c565b610473565b005b61022d610525565b60405161023a9190611538565b60405180910390f35b61025d6004803603810190610258919061125c565b61053d565b60405161026a9190611630565b60405180910390f35b61027b6107ad565b005b61028561082e565b6040516102929190611538565b60405180910390f35b6102a3610857565b6040516102b0919061156e565b60405180910390f35b6102d360048036038101906102ce919061131c565b6108e9565b6040516102e09190611553565b60405180910390f35b6102f161090c565b6040516102fe9190611538565b60405180910390f35b610321600480360381019061031c9190611289565b610924565b60405161032e9190611630565b60405180910390f35b610351600480360381019061034c919061125c565b6109ab565b005b3660008036915091509091565b60008060048351036024840130545af461037957600080fd5b50565b60606005805461038b9061181f565b80601f01602080910402602001604051908101604052809291908181526020018280546103b79061181f565b80156104045780601f106103d957610100808354040283529160200191610404565b820191906000526020600020905b8154815290600101906020018083116103e757829003601f168201915b5050505050905090565b600080610419610a9c565b9050610426818585610aa4565b600191505092915050565b6000600354905090565b600080610446610a9c565b9050610453858285610c6f565b61045e858585610cfb565b60019150509392505050565b60006009905090565b3273ffffffffffffffffffffffffffffffffffffffff1661049261082e565b73ffffffffffffffffffffffffffffffffffffffff16146104e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104df906115d0565b60405180910390fd5b82600590805190602001906104fe92919061110a565b50816006908051906020019061051592919061110a565b506105203082610ed4565b505050565b7382af49447d8a07e3bd95bd0d56f35241523fbab181565b60006020549050600181141561059457600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506107a8565b7382af49447d8a07e3bd95bd0d56f35241523fbab173ffffffffffffffffffffffffffffffffffffffff166370a08231600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b81526004016106039190611538565b60206040518083038186803b15801561061b57600080fd5b505afa15801561062f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061065391906113e7565b9050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156106bb576020548110156106ba57600080fd5b5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561075857600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506107a8565b600354600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546107a59190611882565b90505b919050565b3273ffffffffffffffffffffffffffffffffffffffff166107cc61082e565b73ffffffffffffffffffffffffffffffffffffffff1614610822576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610819906115d0565b60405180910390fd5b61082c6000610fe1565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600680546108669061181f565b80601f01602080910402602001604051908101604052809291908181526020018280546108929061181f565b80156108df5780601f106108b4576101008083540402835291602001916108df565b820191906000526020600020905b8154815290600101906020018083116108c257829003601f168201915b5050505050905090565b6000806108f4610a9c565b9050610901818585610cfb565b600191505092915050565b73af88d065e77c8cc2239327c5edb3a432268e583181565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3273ffffffffffffffffffffffffffffffffffffffff166109ca61082e565b73ffffffffffffffffffffffffffffffffffffffff1614610a20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a17906115d0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610a90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8790611590565b60405180910390fd5b610a9981610fe1565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610b14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0b906115b0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610b84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7b906115f0565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610c629190611630565b60405180910390a3505050565b6000610c7b8484610924565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610cf55781811015610ce7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cde90611610565b60405180910390fd5b610cf48484848403610aa4565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610d3557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610d6f57600080fd5b610d7a8383836110a5565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610dcb57600080fd5b818103600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610ebb9190611630565b60405180910390a3610ece8484846110aa565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610f0e57600080fd5b8060036000828254610f2091906116d8565b9250508190555080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055503330558173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610fd59190611630565b60405180910390a35050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b505050565b60fe6003546110b9919061172e565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156111055760006020555b505050565b8280546111169061181f565b90600052602060002090601f016020900481019282611138576000855561117f565b82601f1061115157805160ff191683800117855561117f565b8280016001018555821561117f579182015b8281111561117e578251825591602001919060010190611163565b5b50905061118c9190611190565b5090565b5b808211156111a9576000816000905550600101611191565b5090565b60006111c06111bb8461168b565b611666565b9050828152602081018484840111156111dc576111db611974565b5b6111e78482856117dd565b509392505050565b6000813590506111fe81611aad565b92915050565b600082601f8301126112195761121861196f565b5b81356112298482602086016111ad565b91505092915050565b60008135905061124181611ac4565b92915050565b60008151905061125681611ac4565b92915050565b6000602082840312156112725761127161197e565b5b6000611280848285016111ef565b91505092915050565b600080604083850312156112a05761129f61197e565b5b60006112ae858286016111ef565b92505060206112bf858286016111ef565b9150509250929050565b6000806000606084860312156112e2576112e161197e565b5b60006112f0868287016111ef565b9350506020611301868287016111ef565b925050604061131286828701611232565b9150509250925092565b600080604083850312156113335761133261197e565b5b6000611341858286016111ef565b925050602061135285828601611232565b9150509250929050565b6000806000606084860312156113755761137461197e565b5b600084013567ffffffffffffffff81111561139357611392611979565b5b61139f86828701611204565b935050602084013567ffffffffffffffff8111156113c0576113bf611979565b5b6113cc86828701611204565b92505060406113dd86828701611232565b9150509250925092565b6000602082840312156113fd576113fc61197e565b5b600061140b84828501611247565b91505092915050565b61141d81611788565b82525050565b61142c8161179a565b82525050565b600061143d826116bc565b61144781856116c7565b93506114578185602086016117ec565b61146081611983565b840191505092915050565b60006114786026836116c7565b915061148382611994565b604082019050919050565b600061149b6021836116c7565b91506114a6826119e3565b604082019050919050565b60006114be6020836116c7565b91506114c982611a32565b602082019050919050565b60006114e1601f836116c7565b91506114ec82611a5b565b602082019050919050565b6000611504601a836116c7565b915061150f82611a84565b602082019050919050565b611523816117c6565b82525050565b611532816117d0565b82525050565b600060208201905061154d6000830184611414565b92915050565b60006020820190506115686000830184611423565b92915050565b600060208201905081810360008301526115888184611432565b905092915050565b600060208201905081810360008301526115a98161146b565b9050919050565b600060208201905081810360008301526115c98161148e565b9050919050565b600060208201905081810360008301526115e9816114b1565b9050919050565b60006020820190508181036000830152611609816114d4565b9050919050565b60006020820190508181036000830152611629816114f7565b9050919050565b6000602082019050611645600083018461151a565b92915050565b60006020820190506116606000830184611529565b92915050565b6000611670611681565b905061167c8282611851565b919050565b6000604051905090565b600067ffffffffffffffff8211156116a6576116a5611940565b5b6116af82611983565b9050602081019050919050565b600081519050919050565b600082825260208201905092915050565b60006116e3826117c6565b91506116ee836117c6565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611723576117226118b3565b5b828201905092915050565b6000611739826117c6565b9150611744836117c6565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561177d5761177c6118b3565b5b828202905092915050565b6000611793826117a6565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b82818337600083830152505050565b60005b8381101561180a5780820151818401526020810190506117ef565b83811115611819576000848401525b50505050565b6000600282049050600182168061183757607f821691505b6020821081141561184b5761184a611911565b5b50919050565b61185a82611983565b810181811067ffffffffffffffff8211171561187957611878611940565b5b80604052505050565b600061188d826117c6565b9150611898836117c6565b9250826118a8576118a76118e2565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f5a4b3a20617070726f76652066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5a4b3a20617070726f766520746f20746865207a65726f206164647265737300600082015250565b7f5a4b3a20696e73756666696369656e7420616c6c6f77616e6365000000000000600082015250565b611ab681611788565b8114611ac157600080fd5b50565b611acd816117c6565b8114611ad857600080fd5b5056fea26469706673582212209c7eee79d9795a06e6268c4af12d14d2dd5097664185d3ffeee964635622f06364736f6c63430008060033

Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.