{
 "address": "0xce1d47ce3a91e054c111d9cc3b4bae50843200da",
 "name": "Blotter",
 "language": "solidity",
 "compiler_version": "v0.8.21+commit.d9974bed",
 "optimization": true,
 "optimization_runs": 200,
 "evm_version": "shanghai",
 "verified_at": "2024-07-30T07:26:24.766718Z",
 "fully_verified": true,
 "proxy_type": null,
 "external_libraries": [],
 "sources": {
  "/": "// SPDX-License-Identifier: Sharia\npragma solidity ^0.8.21;\n\nstruct Fei {\n    bytes Theta;\n    uint256 Context;\n    uint256 Operator;\n    uint256 Value;\n}",
  "/Context.sol": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Provides information about the current execution context, including the\n * sender of the transaction and its data. While these are generally available\n * via msg.sender and msg.data, they should not be accessed in such a direct\n * manner, since when dealing with meta-transactions the account sending and\n * paying for execution may not be the actual sender (as far as an application\n * is concerned).\n *\n * This contract is only required for intermediate, library-like contracts.\n */\nabstract contract Context {\n    function _msgSender() internal view virtual returns (address) {\n        return msg.sender;\n    }\n\n    function _msgData() internal view virtual returns (bytes calldata) {\n        return msg.data;\n    }\n\n    function _contextSuffixLength() internal view virtual returns (uint256) {\n        return 0;\n    }\n}\n",
  "/ERC20/ERC20.sol": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/ERC20.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC20} from \"./IERC20.sol\";\nimport {IERC20Metadata} from \"./extensions/IERC20Metadata.sol\";\nimport {Context} from \"../../utils/Context.sol\";\nimport {IERC20Errors} from \"../../interfaces/draft-IERC6093.sol\";\n\n/**\n * @dev Implementation of the {IERC20} interface.\n *\n * This implementation is agnostic to the way tokens are created. This means\n * that a supply mechanism has to be added in a derived contract using {_mint}.\n *\n * TIP: For a detailed writeup see our guide\n * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How\n * to implement supply mechanisms].\n *\n * The default value of {decimals} is 18. To change this, you should override\n * this function so it returns a different value.\n *\n * We have followed general OpenZeppelin Contracts guidelines: functions revert\n * instead returning `false` on failure. This behavior is nonetheless\n * conventional and does not conflict with the expectations of ERC20\n * applications.\n *\n * Additionally, an {Approval} event is emitted on calls to {transferFrom}.\n * This allows applications to reconstruct the allowance for all accounts just\n * by listening to said events. Other implementations of the EIP may not emit\n * these events, as it isn't required by the specification.\n */\nabstract contract ERC20 is Context, IERC20, IERC20Metadata, IERC20Errors {\n    mapping(address account => uint256) private _balances;\n\n    mapping(address account => mapping(address spender => uint256)) private _allowances;\n\n    uint256 private _totalSupply;\n\n    string private _name;\n    string private _symbol;\n\n    /**\n     * @dev Sets the values for {name} and {symbol}.\n     *\n     * All two of these values are immutable: they can only be set once during\n     * construction.\n     */\n    constructor(string memory name_, string memory symbol_) {\n        _name = name_;\n        _symbol = symbol_;\n    }\n\n    /**\n     * @dev Returns the name of the token.\n     */\n    function name() public view virtual returns (string memory) {\n        return _name;\n    }\n\n    /**\n     * @dev Returns the symbol of the token, usually a shorter version of the\n     * name.\n     */\n    function symbol() public view virtual returns (string memory) {\n        return _symbol;\n    }\n\n    /**\n     * @dev Returns the number of decimals used to get its user representation.\n     * For example, if `decimals` equals `2`, a balance of `505` tokens should\n     * be displayed to a user as `5.05` (`505 / 10 ** 2`).\n     *\n     * Tokens usually opt for a value of 18, imitating the relationship between\n     * Ether and Wei. This is the default value returned by this function, unless\n     * it's overridden.\n     *\n     * NOTE: This information is only used for _display_ purposes: it in\n     * no way affects any of the arithmetic of the contract, including\n     * {IERC20-balanceOf} and {IERC20-transfer}.\n     */\n    function decimals() public view virtual returns (uint8) {\n        return 18;\n    }\n\n    /**\n     * @dev See {IERC20-totalSupply}.\n     */\n    function totalSupply() public view virtual returns (uint256) {\n        return _totalSupply;\n    }\n\n    /**\n     * @dev See {IERC20-balanceOf}.\n     */\n    function balanceOf(address account) public view virtual returns (uint256) {\n        return _balances[account];\n    }\n\n    /**\n     * @dev See {IERC20-transfer}.\n     *\n     * Requirements:\n     *\n     * - `to` cannot be the zero address.\n     * - the caller must have a balance of at least `value`.\n     */\n    function transfer(address to, uint256 value) public virtual returns (bool) {\n        address owner = _msgSender();\n        _transfer(owner, to, value);\n        return true;\n    }\n\n    /**\n     * @dev See {IERC20-allowance}.\n     */\n    function allowance(address owner, address spender) public view virtual returns (uint256) {\n        return _allowances[owner][spender];\n    }\n\n    /**\n     * @dev See {IERC20-approve}.\n     *\n     * NOTE: If `value` is the maximum `uint256`, the allowance is not updated on\n     * `transferFrom`. This is semantically equivalent to an infinite approval.\n     *\n     * Requirements:\n     *\n     * - `spender` cannot be the zero address.\n     */\n    function approve(address spender, uint256 value) public virtual returns (bool) {\n        address owner = _msgSender();\n        _approve(owner, spender, value);\n        return true;\n    }\n\n    /**\n     * @dev See {IERC20-transferFrom}.\n     *\n     * Emits an {Approval} event indicating the updated allowance. This is not\n     * required by the EIP. See the note at the beginning of {ERC20}.\n     *\n     * NOTE: Does not update the allowance if the current allowance\n     * is the maximum `uint256`.\n     *\n     * Requirements:\n     *\n     * - `from` and `to` cannot be the zero address.\n     * - `from` must have a balance of at least `value`.\n     * - the caller must have allowance for ``from``'s tokens of at least\n     * `value`.\n     */\n    function transferFrom(address from, address to, uint256 value) public virtual returns (bool) {\n        address spender = _msgSender();\n        _spendAllowance(from, spender, value);\n        _transfer(from, to, value);\n        return true;\n    }\n\n    /**\n     * @dev Moves a `value` amount of tokens from `from` to `to`.\n     *\n     * This internal function is equivalent to {transfer}, and can be used to\n     * e.g. implement automatic token fees, slashing mechanisms, etc.\n     *\n     * Emits a {Transfer} event.\n     *\n     * NOTE: This function is not virtual, {_update} should be overridden instead.\n     */\n    function _transfer(address from, address to, uint256 value) internal {\n        if (from == address(0)) {\n            revert ERC20InvalidSender(address(0));\n        }\n        if (to == address(0)) {\n            revert ERC20InvalidReceiver(address(0));\n        }\n        _update(from, to, value);\n    }\n\n    /**\n     * @dev Transfers a `value` amount of tokens from `from` to `to`, or alternatively mints (or burns) if `from`\n     * (or `to`) is the zero address. All customizations to transfers, mints, and burns should be done by overriding\n     * this function.\n     *\n     * Emits a {Transfer} event.\n     */\n    function _update(address from, address to, uint256 value) internal virtual {\n        if (from == address(0)) {\n            // Overflow check required: The rest of the code assumes that totalSupply never overflows\n            _totalSupply += value;\n        } else {\n            uint256 fromBalance = _balances[from];\n            if (fromBalance < value) {\n                revert ERC20InsufficientBalance(from, fromBalance, value);\n            }\n            unchecked {\n                // Overflow not possible: value <= fromBalance <= totalSupply.\n                _balances[from] = fromBalance - value;\n            }\n        }\n\n        if (to == address(0)) {\n            unchecked {\n                // Overflow not possible: value <= totalSupply or value <= fromBalance <= totalSupply.\n                _totalSupply -= value;\n            }\n        } else {\n            unchecked {\n                // Overflow not possible: balance + value is at most totalSupply, which we know fits into a uint256.\n                _balances[to] += value;\n            }\n        }\n\n        emit Transfer(from, to, value);\n    }\n\n    /**\n     * @dev Creates a `value` amount of tokens and assigns them to `account`, by transferring it from address(0).\n     * Relies on the `_update` mechanism\n     *\n     * Emits a {Transfer} event with `from` set to the zero address.\n     *\n     * NOTE: This function is not virtual, {_update} should be overridden instead.\n     */\n    function _mint(address account, uint256 value) internal {\n        if (account == address(0)) {\n            revert ERC20InvalidReceiver(address(0));\n        }\n        _update(address(0), account, value);\n    }\n\n    /**\n     * @dev Destroys a `value` amount of tokens from `account`, lowering the total supply.\n     * Relies on the `_update` mechanism.\n     *\n     * Emits a {Transfer} event with `to` set to the zero address.\n     *\n     * NOTE: This function is not virtual, {_update} should be overridden instead\n     */\n    function _burn(address account, uint256 value) internal {\n        if (account == address(0)) {\n            revert ERC20InvalidSender(address(0));\n        }\n        _update(account, address(0), value);\n    }\n\n    /**\n     * @dev Sets `value` as the allowance of `spender` over the `owner` s tokens.\n     *\n     * This internal function is equivalent to `approve`, and can be used to\n     * e.g. set automatic allowances for certain subsystems, etc.\n     *\n     * Emits an {Approval} event.\n     *\n     * Requirements:\n     *\n     * - `owner` cannot be the zero address.\n     * - `spender` cannot be the zero address.\n     *\n     * Overrides to this logic should be done to the variant with an additional `bool emitEvent` argument.\n     */\n    function _approve(address owner, address spender, uint256 value) internal {\n        _approve(owner, spender, value, true);\n    }\n\n    /**\n     * @dev Variant of {_approve} with an optional flag to enable or disable the {Approval} event.\n     *\n     * By default (when calling {_approve}) the flag is set to true. On the other hand, approval changes made by\n     * `_spendAllowance` during the `transferFrom` operation set the flag to false. This saves gas by not emitting any\n     * `Approval` event during `transferFrom` operations.\n     *\n     * Anyone who wishes to continue emitting `Approval` events on the`transferFrom` operation can force the flag to\n     * true using the following override:\n     * ```\n     * function _approve(address owner, address spender, uint256 value, bool) internal virtual override {\n     *     super._approve(owner, spender, value, true);\n     * }\n     * ```\n     *\n     * Requirements are the same as {_approve}.\n     */\n    function _approve(address owner, address spender, uint256 value, bool emitEvent) internal virtual {\n        if (owner == address(0)) {\n            revert ERC20InvalidApprover(address(0));\n        }\n        if (spender == address(0)) {\n            revert ERC20InvalidSpender(address(0));\n        }\n        _allowances[owner][spender] = value;\n        if (emitEvent) {\n            emit Approval(owner, spender, value);\n        }\n    }\n\n    /**\n     * @dev Updates `owner` s allowance for `spender` based on spent `value`.\n     *\n     * Does not update the allowance value in case of infinite allowance.\n     * Revert if not enough allowance is available.\n     *\n     * Does not emit an {Approval} event.\n     */\n    function _spendAllowance(address owner, address spender, uint256 value) internal virtual {\n        uint256 currentAllowance = allowance(owner, spender);\n        if (currentAllowance != type(uint256).max) {\n            if (currentAllowance < value) {\n                revert ERC20InsufficientAllowance(spender, currentAllowance, value);\n            }\n            unchecked {\n                _approve(owner, spender, currentAllowance - value, false);\n            }\n        }\n    }\n}\n",
  "/ERC20/IERC20.sol": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/IERC20.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Interface of the ERC20 standard as defined in the EIP.\n */\ninterface IERC20 {\n    /**\n     * @dev Emitted when `value` tokens are moved from one account (`from`) to\n     * another (`to`).\n     *\n     * Note that `value` may be zero.\n     */\n    event Transfer(address indexed from, address indexed to, uint256 value);\n\n    /**\n     * @dev Emitted when the allowance of a `spender` for an `owner` is set by\n     * a call to {approve}. `value` is the new allowance.\n     */\n    event Approval(address indexed owner, address indexed spender, uint256 value);\n\n    /**\n     * @dev Returns the value of tokens in existence.\n     */\n    function totalSupply() external view returns (uint256);\n\n    /**\n     * @dev Returns the value of tokens owned by `account`.\n     */\n    function balanceOf(address account) external view returns (uint256);\n\n    /**\n     * @dev Moves a `value` amount of tokens from the caller's account to `to`.\n     *\n     * Returns a boolean value indicating whether the operation succeeded.\n     *\n     * Emits a {Transfer} event.\n     */\n    function transfer(address to, uint256 value) external returns (bool);\n\n    /**\n     * @dev Returns the remaining number of tokens that `spender` will be\n     * allowed to spend on behalf of `owner` through {transferFrom}. This is\n     * zero by default.\n     *\n     * This value changes when {approve} or {transferFrom} are called.\n     */\n    function allowance(address owner, address spender) external view returns (uint256);\n\n    /**\n     * @dev Sets a `value` amount of tokens as the allowance of `spender` over the\n     * caller's tokens.\n     *\n     * Returns a boolean value indicating whether the operation succeeded.\n     *\n     * IMPORTANT: Beware that changing an allowance with this method brings the risk\n     * that someone may use both the old and the new allowance by unfortunate\n     * transaction ordering. One possible solution to mitigate this race\n     * condition is to first reduce the spender's allowance to 0 and set the\n     * desired value afterwards:\n     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n     *\n     * Emits an {Approval} event.\n     */\n    function approve(address spender, uint256 value) external returns (bool);\n\n    /**\n     * @dev Moves a `value` amount of tokens from `from` to `to` using the\n     * allowance mechanism. `value` is then deducted from the caller's\n     * allowance.\n     *\n     * Returns a boolean value indicating whether the operation succeeded.\n     *\n     * Emits a {Transfer} event.\n     */\n    function transferFrom(address from, address to, uint256 value) external returns (bool);\n}\n",
  "/ERC20/extensions/ERC20Burnable.sol": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/extensions/ERC20Burnable.sol)\n\npragma solidity ^0.8.20;\n\nimport {ERC20} from \"../ERC20.sol\";\nimport {Context} from \"../../../utils/Context.sol\";\n\n/**\n * @dev Extension of {ERC20} that allows token holders to destroy both their own\n * tokens and those that they have an allowance for, in a way that can be\n * recognized off-chain (via event analysis).\n */\nabstract contract ERC20Burnable is Context, ERC20 {\n    /**\n     * @dev Destroys a `value` amount of tokens from the caller.\n     *\n     * See {ERC20-_burn}.\n     */\n    function burn(uint256 value) public virtual {\n        _burn(_msgSender(), value);\n    }\n\n    /**\n     * @dev Destroys a `value` amount of tokens from `account`, deducting from\n     * the caller's allowance.\n     *\n     * See {ERC20-_burn} and {ERC20-allowance}.\n     *\n     * Requirements:\n     *\n     * - the caller must have allowance for ``accounts``'s tokens of at least\n     * `value`.\n     */\n    function burnFrom(address account, uint256 value) public virtual {\n        _spendAllowance(account, _msgSender(), value);\n        _burn(account, value);\n    }\n}\n",
  "/ERC20/extensions/IERC20Metadata.sol": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/extensions/IERC20Metadata.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC20} from \"../IERC20.sol\";\n\n/**\n * @dev Interface for the optional metadata functions from the ERC20 standard.\n */\ninterface IERC20Metadata is IERC20 {\n    /**\n     * @dev Returns the name of the token.\n     */\n    function name() external view returns (string memory);\n\n    /**\n     * @dev Returns the symbol of the token.\n     */\n    function symbol() external view returns (string memory);\n\n    /**\n     * @dev Returns the decimals places of the token.\n     */\n    function decimals() external view returns (uint8);\n}\n",
  "/Ownable.sol": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)\n\npragma solidity ^0.8.20;\n\nimport {Context} from \"../utils/Context.sol\";\n\n/**\n * @dev Contract module which provides a basic access control mechanism, where\n * there is an account (an owner) that can be granted exclusive access to\n * specific functions.\n *\n * The initial owner is set to the address provided by the deployer. This can\n * later be changed with {transferOwnership}.\n *\n * This module is used through inheritance. It will make available the modifier\n * `onlyOwner`, which can be applied to your functions to restrict their use to\n * the owner.\n */\nabstract contract Ownable is Context {\n    address private _owner;\n\n    /**\n     * @dev The caller account is not authorized to perform an operation.\n     */\n    error OwnableUnauthorizedAccount(address account);\n\n    /**\n     * @dev The owner is not a valid owner account. (eg. `address(0)`)\n     */\n    error OwnableInvalidOwner(address owner);\n\n    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\n\n    /**\n     * @dev Initializes the contract setting the address provided by the deployer as the initial owner.\n     */\n    constructor(address initialOwner) {\n        if (initialOwner == address(0)) {\n            revert OwnableInvalidOwner(address(0));\n        }\n        _transferOwnership(initialOwner);\n    }\n\n    /**\n     * @dev Throws if called by any account other than the owner.\n     */\n    modifier onlyOwner() {\n        _checkOwner();\n        _;\n    }\n\n    /**\n     * @dev Returns the address of the current owner.\n     */\n    function owner() public view virtual returns (address) {\n        return _owner;\n    }\n\n    /**\n     * @dev Throws if the sender is not the owner.\n     */\n    function _checkOwner() internal view virtual {\n        if (owner() != _msgSender()) {\n            revert OwnableUnauthorizedAccount(_msgSender());\n        }\n    }\n\n    /**\n     * @dev Leaves the contract without owner. It will not be possible to call\n     * `onlyOwner` functions. Can only be called by the current owner.\n     *\n     * NOTE: Renouncing ownership will leave the contract without an owner,\n     * thereby disabling any functionality that is only available to the owner.\n     */\n    function renounceOwnership() public virtual onlyOwner {\n        _transferOwnership(address(0));\n    }\n\n    /**\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\n     * Can only be called by the current owner.\n     */\n    function transferOwnership(address newOwner) public virtual onlyOwner {\n        if (newOwner == address(0)) {\n            revert OwnableInvalidOwner(address(0));\n        }\n        _transferOwnership(newOwner);\n    }\n\n    /**\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\n     * Internal function without access restriction.\n     */\n    function _transferOwnership(address newOwner) internal virtual {\n        address oldOwner = _owner;\n        _owner = newOwner;\n        emit OwnershipTransferred(oldOwner, newOwner);\n    }\n}\n",
  "/_1": "// SPDX-License-Identifier: Sharia\npragma solidity ^0.8.21;\nimport \"dynamic.sol\";\n\nabstract contract Affinity is Dynamic {\n    function Alpha(uint64 _a) public {\n        Nu.Context = _a;\n        Charge(_a);\n        assert(Mu.Sigma > 4);\n        Induce();\n        Torque();\n        Amplify();\n        Sustain();\n        React();\n        if(Nu.Context == 0 && (msg.sender != owner()))\n            Nu.Context = uint256(uint160(msg.sender));\n        _mintToCap();\n    }\n\n    function Beta(uint64 _b) public {\n        Nu.Operator = _b;\n        Torque(Mu.Rod, _b);\n        Amplify(Mu.Rod, Mu.Rod.Alpha);\n        Sustain(Mu.Rod, Mu.Rod.Alpha);\n        React(Mu.Rod, Mu.Rod.Alpha, Mu.Cone.Dynamo);\n        React(Mu.Cone, Mu.Rod.Alpha, Mu.Rod.Dynamo);\n        _mintToCap();\n    }\n\n    function Pi(uint64 _a) internal {\n        Torque(Mu.Cone, Mu.Rod.Kappa);\n        Amplify(Mu.Cone, Mu.Cone.Alpha);\n        Sustain(Mu.Cone, Mu.Cone.Alpha);\n        React(Mu.Rod, Mu.Cone.Alpha, Mu.Rod.Channel);\n        React(Mu.Cone, Mu.Cone.Alpha, Mu.Cone.Channel);\n        Kappa(_a, false);\n        _mintToCap();\n    }\n\n    function Chi(uint64 _a) internal {\n        Torque(Mu.Cone, Mu.Rod.Eta);\n        Amplify(Mu.Cone, Mu.Upsilon);\n        Sustain(Mu.Cone, Mu.Ohm);\n        React(Mu.Cone, Mu.Pi, Mu.Cone.Dynamo);\n        React(Mu.Rod, Mu.Pi, Mu.Rod.Dynamo);\n        Mu.Omega = Mu.Omega ^ Mu.Rod.Kappa;\n        Kappa(_a, true);\n        _mintToCap();\n    }\n\n    function Kappa(uint64 _a, bool _Phi) private {\n        Nu.Value = _a;\n        Mu.Upsilon = _Phi ? _a ^ Mu.Ohm ^ Mu.Pi : _a ^ Mu.Ohm;\n        _mintToCap();\n    }\n\n    function Phi() internal returns(uint64) {\n        Amplify(Mu.Cone, Mu.Upsilon);\n        Sustain(Mu.Cone, Mu.Ohm);\n        React(Mu.Cone, Mu.Pi, Mu.Cone.Dynamo);\n        React(Mu.Rod, Mu.Pi, Mu.Rod.Dynamo);\n        Mu.Omega = Mu.Omega ^ Mu.Rod.Kappa;\n\n        Mu.Upsilon = Mu.Upsilon ^ Mu.Ohm ^ Mu.Pi;\n        \n        _mintToCap();\n        return Mu.Upsilon;\n    }\n}",
  "/_10": "// SPDX-License-Identifier: Sharia\npragma solidity ^0.8.21;\nimport \"fa.sol\";\nimport \"fei.sol\";\n\nstruct Bao {\n    Fa Mu;\n    Fei Theta;\n\n    uint64 Xi;\n    uint64 Tau;\n    uint64 Alpha;\n    uint64 PeerChannel;\n\n    address Contract;\n}\n",
  "/_2": "// SPDX-License-Identifier: Sharia\npragma solidity ^0.8.21;\n\naddress constant dead = address(0x000000000000000000000000000000000000dEaD);\naddress constant atropa = address(0x7a20189B297343CF26d8548764b04891f37F3414);\naddress constant trebizond = address(0x903030f7e2d6489F38B0f4F96F9b371ec7960F78);\n\naddress constant dai = address(0x6B175474E89094C44Da98b954EedeAC495271d0F);\naddress constant usdc = address(0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48);\naddress constant usdt = address(0xdAC17F958D2ee523a2206206994597C13D831ec7);\n\naddress constant AtropaContract = address(0xCc78A0acDF847A2C1714D2A925bB4477df5d48a6);\naddress constant EasternLightningContract = address(0xCD6159D0a1aaE415E0c1504E90A5d741A28afc98);\naddress constant FinalContract = address(0x50E72874dCd7C198d370ac27c7B3cce9f9a0defd);\naddress constant KaContract = address(0x83a918056aB9316837Dc48a216119D679D561d91);\naddress constant BuckinghamContract = address(0xe5d3A6e88590fc2A8037D9CCbd816C05B1ff5f11);\naddress constant WheelContract = address(0xb9A44De20f26a027e467CB6c2F98766F01904189);\naddress constant LibertyContract = address(0xFE9b99eCC43cb423408b975cc5ff439e5ABaCb61);\naddress constant CherokeeContract = address(0xb4C1248812dAbF72cb2e82175b4c0aCffE4D2b10);\naddress constant DreidelContract = address(0x8A03b032c5494219B212e5a74A49e2aa7F9d206F);\naddress constant MantissaContract = address(0x0EB4EE7d5Ff28cbF68565A174f7E5e186c36B4b3);\naddress constant NeptuneContract = address(0x9A3796Cf41B7CbA6921fd50c3f5204ED6506C3e7);\naddress constant HarContract = address(0x557F7e30aA6D909Cfe8a229A4CB178ab186EC622);         // \u0281 \naddress constant ThetaContract = address(0xCd19062a6d3019b02A676D72e51D8de7A398dE25);       // \u04e8\naddress constant CROWSContract = address(0x203e366A1821570b2f84Ff5ae8B3BdeB48Dc4fa1);\naddress constant MonatsContract = address(0xf8AB3393b1f5CD6184Fb6800A1fC802043C4063e);\naddress constant LegalContract = address(0x0b1307dc5D90a0B60Be18D2634843343eBc098AF);\naddress constant ScissorsContract = address(0x1b8F9E19360D1dc94295D984b7Ca7eA9b810D9ee);\naddress constant ReadingContract = address(0xf69e9f943674027Cedf05564A8D5A01041d07c62);     // \u09aa\u0981\u09a6\u09be\u09c7\u09bc\u09a8\u09c1\u09bf\u0982\naddress constant DiContract = address(0x347BC40503E0CE23fE0F5587F232Cd2D07D4Eb89);          // \u7b2c\u4f5c\naddress constant dOWNContract = address(0x2556F7f8d82EbcdD7b821b0981C38D9dA9439CdD);\naddress constant STAYContract = address(0x7674516ad438dd67A057fBc1119168d9A7d2a9B1);\naddress constant INDEPENDENCEContract = address(0x8B090509eAe0fEB4A0B934de1b4345161fA9a62d);\naddress constant LOLContract = address(0xA63F8061A67ecdbf147Cd1B60f91Cf95464E868D);         // \u078d\naddress constant Bullion5Contract = address(0x77Bed67181CeF592472bcb7F97736c560340E006);\naddress constant Bullion8Contract = address(0x2959221675bdF0e59D0cC3dE834a998FA5fFb9F4);    // \u2467\naddress constant TreasuryBillContract = address(0x463413c579D29c26D59a65312657DFCe30D545A1);\naddress constant TeddyBearContract = address(0xd6c31bA0754C4383A41c0e9DF042C62b5e918f6d);\naddress constant PoppyContract = address(0xdE65090088Df0b2d80A5eC6A7B56ECE36ee83ce8);\naddress constant OjeonContract = address(0xFa4d9C6E012d946853386113ACbF166deC5465Bb);\naddress constant YuContract = address(0x52a4682880E990ebed5309764C7BD29c4aE22deB);          // \uc720\naddress constant YingContract = address(0x271197EFe41073681577CdbBFD6Ee1DA259BAa3c);        // \u7c6f\naddress constant MetisContract = address(0x36d4Ac3DF7Bf8aa3843Ad40C8b3eB67e3d18b4e1);       // \u0e44\u0e21\u0e34\u0e15\u0e34\u0e0b\u0e2a\u0e4c\naddress constant GaiContract = address(0xd6077A029Fb5BEF33b02391D7f0349c345F6DDb1);\naddress constant DiscoContract = address(0xb6936B8e82626405f6E601D54a8292881D86b47D);\naddress constant HOSTContract = address(0x1162104a7b8766784153Dd2D6aC0eCEAecD28117);\naddress constant DampfContract = address(0x08Fe5c72173044314A74705089d014a4416Ed71D);\naddress constant DEIContract = address(0xF77c946C18A77B5DdA5e839dA9818C4D1f087393);\naddress constant TlingitContract = address(0x54D88F0c4a738247DadF160923E1b1C5dc4F510f);\naddress constant AbUrbeConditaContract = address(0x7FB09EE1a2c0E8b6D1c4E19C0248B3CbC0113af6);\naddress constant SIMContract = address(0xBb341FD5C855c206f5538cc649f90d84Df19b65a);\naddress constant BinContract = address(0xf520404CF4fa5B633626333775b05F5dF94E1a9C);\naddress constant PhDContract = address(0x6236073377AC7e0aB694957dA5d7d4241e72EBc6);\naddress constant LilliesContract = address(0xE949a217809d1Fab4018E22d6810500399951dAE);\naddress constant KremlinContract = address(0x7F51FdB20246D7a673036f11C743E99A4AF01de0);\naddress constant TwoContract = address(0xDf6A16689A893095C721542e5d3CE55bBcc23aC6);         // \u3263\naddress constant TseContract = address(0x3d67511733d976800467119264C3d4Cd9FA23041);\naddress constant FrockContract = address(0x8B8b26bB6C5fD4867339ab2f0acf3aE5129BD2F0);\naddress constant QingDaoContract = address(0xE63191967735C52f5de78CE2471759a9963Ce118);\naddress constant TSFiContract = address(0x4243568Fa2bbad327ee36e06c16824cAd8B37819);\naddress constant GreenlandContract = address(0xdE4Ef7Ea464c7771803b9838AeA07cE41089b054);\naddress constant BuddhaghosaContract = address(0x840CBD20A70774BECAc4e932Fff6fb1f5417997F);\naddress constant ZuoContract = address(0x583d1C1427308f7f96BFd3E0d7A3F9674D8BF8ec);\naddress constant HegelBetContract = address(0x51C36aA04ffC2139F6d34436d0EDC7f5ffc6D6Fb);\naddress constant HahnarchContract = address(0x4a458D04909a42F79d31805762B2abc38ab9407d);\naddress constant RabContract = address(0x89E8cD6306AbbAB8e39eeD0D53566d8dC2E02c01);\naddress constant LoanContract = address(0xeE67825eF27588FAeE39cfefb465eB0A242A740c);\naddress constant FreebiesContract = address(0x48F628c079353ECC4DB75F0d05de9299e083f3C2);\n\naddress constant WMContract = address(0xA1BEe1daE9Af77dAC73aA0459eD63b4D93fC6d29);\naddress constant IRCContract = address(0xD64f26Bcf78df919D587b6743fcFf5b155815bd6);\naddress constant NoContract = address(0x1942Ba1EA7c21a070D70C4eFe64B21694283F23e);\naddress constant CallContract = address(0xD4FD96BA83d3E6FF1A0Baa44c32Def94e641D97c);        // \ud800\udf0e\n\naddress constant TeddyBear9Contract = address(0x1f737F7994811fE994Fe72957C374e5cD5D5418A);\n\naddress constant BondContract = address(0x25d53961a27791B9D8b2d74FB3e937c8EAEadc38);\naddress constant BailContract = address(0x8B16115fF716b4c52706122cb4e974f7a72E5Af1);\naddress constant WritingContract = address(0x26D5906c4Cdf8C9F09CBd94049f99deaa874fB0b);\naddress constant SukukContract = address(0x72f96a39AC9408b5458E5597BBC22060552dedF4);\n\n// address constant FAContract = address(0xF2be09EB43c1eD2791d0324BaA0649e62CdA4BBF);\naddress constant hhFaContract = address(0xa28e8aA4d6257157de64a547c90B38C3c540eF72);\naddress constant NoNukesContract = address(0x174A0ad99c60c20D9B3D94c3095BC1fb9ddEFd62);\naddress constant WenTiContract = address(0xA537d6F4c1c8F8C41f1004cc34C00e7Db40179Cc);\naddress constant TwoCentClubContract = address(0x6293373BF0DAE2050641973D49b7b2f71adC91a1);\naddress constant BFFContract = address(0xE35A842eb1EDca4C710B6c1B1565cE7df13f5996);\naddress constant SECURITYContract = address(0x2234da59c2D5EDB197594C95dbbA7a99Bcd91230);\n//\naddress constant TRSIContract = address(0x51A7aaBcCa69B3c0F82b3b9ce5104FDe3efAecE6);\naddress constant BELContract = address(0x4C1518286E1b8D5669Fe965EF174B8B4Ae2f017B);\naddress constant KLANContract = address(0xC196247AA267Db0DF216d5385bCD23e5cf25EA6A);\naddress constant SMGContract = address(0xa8e8412d9B4341239269cBA38ad949fE4870be34);\naddress constant iCEContract = address(0x2fA079d2dAA29Ec8925484F9E9021e9191fE4aE4);\naddress constant PWAContract = address(0x5d4cb28eA61125a1fD3c927162C6F1969DD26788);\naddress constant LITContract = address(0xf5E3Cc8d22B10d967bE49FE103e496F449C8604E);\naddress constant RZRContract = address(0x50e40e8555AaB6b9c6CFF691E14070b6F38142Cb);\naddress constant FLTContract = address(0x86F0985Cd6Ab3196ea8DceBa87B92a2e22124633);\naddress constant GokuldhamContract = address(0x920401FDce49Fc70A2D4cD70DB0dD90212a97f98);\naddress constant KPOPContract = address(0x982B52a54916B899c60031772cc85b041613510E);\naddress constant CiAContract = address(0x2e5898b2e107a3cAf4f0597aCFE5D2e6d73F2196);\naddress constant ACiDContract = address(0xf8b6e89b851e03c724aad1F5170230A60490b819);\naddress constant MaltaContract = address(0xee62EE9A354E55dF7C39209B4304161369333fF7);\naddress constant ZzkContract = address(0xe2e1a5d691cCB9E88b84e23A1166B4e6Bd6904Dc);\naddress constant ACABContract = address(0x241DA2613b0A01C2f60acB636b21A8E082E2f2F0);\n\n//\naddress constant BillBurrContract = address(0xF7ebb9bc80fb6395373c6BbDF690fcFfb217a691);\n\n//\naddress constant BonusContract = address(0xB8FaCE58CB05C55BBBA9c564A550cc2402A40b5b);\n\n///\naddress constant LEPROSYContract = address(0x7759A6D283192ef2BA082923d28Bec6eBfAf9D68);\n\n// royalty tokens\n/*\n0xC6F085DE4f388a48ce2942857455147A37870086\n0x80C105217885707BA0003ffAe7Ab01466E5E8488\n0xF2563864C22022deb03ce929c26C54033a69E9d5\n0xA78feD26D175b4B2c83F69Ca3eA195123ca30381\n0xdF606c14351fd52bF502d5F60D105320CF5D99D5\n0xa9353a16cA53a2009fEBF62029F8555216588Fea\n0x7ec9043c321A8759Ee5F917Da943979EC70Cf8e3\n*/\n\n//\naddress constant PIContract = address(0xA2262D7728C689526693aE893D0fD8a352C7073C);\naddress constant G5Contract = address(0x2fc636E7fDF9f3E8d61033103052079781a6e7D2);\n\n//\naddress constant libAtropaMathContract = address(0xB680F0cc810317933F234f67EB6A9E923407f05D);\naddress constant AFFECTIONContract = address(0x24F0154C1dCe548AdF15da2098Fdd8B8A3B8151D);",
  "/_3": "// SPDX-License-Identifier: Sharia\npragma solidity ^0.8.21;\nimport \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\nimport \"@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol\";\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\nimport \"addresses.sol\";\nimport \"fan.sol\";\nimport \"fei.sol\";\n\ninterface atropaMath {   \n    function Random() external returns (uint64);\n    function hashWith(address a, address b) external returns (uint256);\n    function modExp64(uint64 _b, uint64 _e, uint64 _m) external returns(uint64);\n    function modExp(uint256 _b, uint256 _e, uint256 _m) external returns (uint256);\n}\n\nabstract contract Feh is ERC20, ERC20Burnable, Ownable {\n    uint64 constant public MotzkinPrime = 953467954114363;\n    atropaMath internal Xiao = atropaMath(libAtropaMathContract);\n    //atropaMath internal Xiao = atropaMath(0xAaA30b30Fb1CF391999De470dfB19ADD74308d42);\n\n    mapping(address => Bao) internal Rho;\n    mapping(uint256 => mapping(uint256 => Fei)) internal Psi;\n\n    function _mintToCap() internal {\n        if(totalSupply() <= (1551 * 10 ** decimals()))\n            _mint(address(this), 1 * 10 ** decimals());\n    }\n\n/*\n    function toBytes(uint256 x) internal pure returns (bytes memory b) { \n        b = new bytes(32); \n        assembly { \n            mstore(xor(b, 32), x) \n        } \n    }\n*/\n\n    function toBytes(uint64 x) internal pure returns (bytes memory b) { \n        b = new bytes(8); \n        assembly { \n            mstore(xor(b, 8), x) \n        } \n    }\n\n    function toBytes(string memory x) internal pure returns (bytes memory b) { \n        b = bytes(x);\n        assert(b.length < 32);\n    }\n\n    event LogEvent(string, bytes);\n    function Log(string calldata log, bytes calldata data) internal {\n        emit LogEvent(log, data);\n    }\n}",
  "/_4": "// SPDX-License-Identifier: Sharia\npragma solidity ^0.8.21;\nimport \"fa.sol\";\n\nstruct Faung {\n    Fa Rod;\n    Fa Cone;\n\n    uint64 Phi;\n    uint64 Eta;\n    uint64 Xi;\n    uint64 Sigma;\n    uint64 Rho;\n    uint64 Upsilon;\n    uint64 Ohm;\n    uint64 Pi;\n    uint64 Omicron;\n    uint64 Omega;\n\n    uint8 Chi;\n}",
  "/_5": "// SPDX-License-Identifier: Sharia\npragma solidity ^0.8.21;\nimport \"fei.sol\";\nimport \"bao.sol\";\n\nstruct Fan {\n    Bao[] Rods;\n    Bao[] Cones;\n}",
  "/_6": "// SPDX-License-Identifier: Sharia\npragma solidity ^0.8.21;\n\nstruct Fa {\n        uint64 Base;\n        uint64 Secret;\n        uint64 Signal;\n        uint64 Channel;\n        uint64 Pole;\n        uint64 Identity;\n        uint64 Foundation;\n        uint64 Element;\n        uint64 Dynamo;\n        uint64 Manifold;\n        uint64 Ring;\n        uint64 Barn;\n        uint64 Coordinate;\n\n        uint64 Tau;\n        uint64 Eta;\n        uint64 Kappa;\n//        uint64 Rho;\n//        uint64 Beta;\n//        uint64 Phi;\n        uint64 Alpha;\n\n        uint8 Nu;        \n}\n",
  "/_7": "// SPDX-License-Identifier: Sharia\npragma solidity ^0.8.21;\nimport \"faung.sol\";\nimport \"conjecture.sol\";\n\nabstract contract Dynamic is Conjecture {\n    Faung internal Mu;\n    Fan internal Eta;\n    Fei public Nu;\n\n    function NewDynamic(uint64 Xi, uint64 Alpha, uint64 Beta) internal {\n        NewConjecture(Mu.Rod);\n        NewConjecture(Mu.Cone);\n        // maybe generate random numgers here\n        OpenManifolds(Xi, Alpha, Beta);\n        Mu.Xi = Xi;\n        Mu.Chi = 0;\n    }\n\n    function GetFaung() public view returns(Faung memory) {\n        return Mu;\n    }\n\n    function OpenManifolds(uint64 Xi, uint64 Alpha, uint64 Beta) internal {\n        ConductorGenerate(Xi);\n\n        Conjugate(Mu.Rod, Mu.Cone.Pole);\n        Conjugate(Mu.Cone, Mu.Rod.Pole);\n\n        assert(Mu.Rod.Coordinate == Mu.Cone.Coordinate);\n\n        Conify(Mu.Cone, Alpha);\n\n        Saturate(Mu.Rod, Alpha, Mu.Cone.Foundation, Mu.Cone.Channel);\n        Saturate(Mu.Cone, Beta, Mu.Rod.Foundation, Mu.Rod.Channel);\n\n        assert(Mu.Rod.Element == Mu.Cone.Element);\n        Ratchet();\n\n        Adduct(Mu.Rod, Mu.Cone.Dynamo);\n        Adduct(Mu.Cone, Mu.Rod.Dynamo);\n\n        Open(Mu.Rod);\n        Open(Mu.Cone);\n\n        assert(ManifoldCompare(Mu.Rod, Mu.Cone));\n        _mintToCap();\n    }\n\n    function ConductorGenerate(uint64 Xi) internal {\n        Avail(Mu.Rod, Xi);\n        Avail(Mu.Cone, Xi);\n        Mu.Cone.Tau = Mu.Cone.Alpha;\n\n        Form(Mu.Rod, Mu.Cone.Tau);\n        Form(Mu.Cone, Mu.Rod.Alpha);\n\n        Polarize(Mu.Rod);\n        Polarize(Mu.Cone);\n    }\n\n    function Ratchet() internal {\n        Bond(Mu.Rod);\n        Bond(Mu.Cone);\n    }\n\n    function Charge(uint64 Signal) internal returns(uint64) {\n        assert(Signal != 0);\n        Charge(Mu.Cone, Signal);\n        Mu.Sigma = Mu.Cone.Alpha;\n        return Mu.Cone.Alpha;\n    }\n\n    function Induce() internal returns(uint64) {\n        Mu.Cone.Alpha = Induce(Mu.Rod, Mu.Sigma);\n        Mu.Rho = Mu.Rod.Alpha;\n        return Mu.Cone.Alpha;\n    }\n\n    function Torque() internal returns(uint64) {\n        Mu.Cone.Alpha = Torque(Mu.Cone, Mu.Rho);\n        Mu.Upsilon = Mu.Cone.Alpha;\n        return Mu.Cone.Alpha;\n    }\n\n    function Amplify() internal returns(uint64) {\n        Mu.Cone.Alpha = Amplify(Mu.Cone, Mu.Upsilon);\n        Mu.Ohm = Mu.Cone.Alpha;\n        return Mu.Cone.Alpha;\n    }\n\n    function Sustain() internal returns(uint64) {\n        Mu.Cone.Alpha = Sustain(Mu.Cone, Mu.Ohm);\n        Mu.Pi = Mu.Cone.Alpha;\n        return Mu.Cone.Alpha;\n    }\n\n    function React() internal {\n        React(Mu.Rod, Mu.Pi, Mu.Cone.Channel);\n        React(Mu.Cone, Mu.Pi, Mu.Rod.Channel);\n        Mu.Omicron = Mu.Cone.Kappa;\n        Mu.Omega = Mu.Rod.Kappa;\n        _mintToCap();\n    }\n\n}",
  "/_8": "// SPDX-License-Identifier: Sharia\npragma solidity ^0.8.21;\nimport \"affinity.sol\";\nimport \"bao.sol\";\n\nabstract contract Dai is Affinity {    \n    Bao private Upsilon;\n\n    function Write(uint64 _v) public {\n        Write(_v, false);\n    }\n\n    function Write(address _a) public {\n        assert(msg.sender == owner() || Nu.Context == uint256(uint160(msg.sender)));\n        Psi[Nu.Context][Nu.Operator].Theta = abi.encode(_a);\n        _mintToCap();\n    }\n\n    function Write(uint64 _v, bool Replace) public {\n        assert(msg.sender == owner() || Nu.Context == uint256(uint160(msg.sender)));\n        Pi(_v);\n        if(Replace)\n            Psi[Nu.Context][Nu.Operator].Theta = abi.encode(_v);\n        else\n            Psi[Nu.Context][Nu.Operator].Theta = bytes.concat(Psi[Nu.Context][Nu.Operator].Theta, abi.encode(_v));\n        _mintToCap();\n    }\n\n    function Read() public returns(bytes memory) {\n        Chi(Mu.Upsilon);\n        _mintToCap();\n        return Psi[Nu.Context][Nu.Operator].Theta;\n    }\n\n    function Random() public returns(uint64) {\n        return Phi();\n    }\n\n    function GetBao() public view returns(Bao memory) {\n        return Upsilon;\n    }\n\n    function Connect() internal {    \n        Upsilon.Alpha = Random();    \n        Upsilon.Contract = address(uint160(Nu.Context));\n        Dai Peer = Dai(Upsilon.Contract);\n\n        Upsilon.Xi = Xiao.modExp64(Mu.Cone.Signal, Mu.Rod.Channel, MotzkinPrime);\n        NewConjecture(Upsilon.Mu);        \n\n        Avail(Upsilon.Mu, Upsilon.Xi);\n        Upsilon.Tau = Peer.Avail(Upsilon.Xi);\n\n        Form(Upsilon.Mu, Upsilon.Tau);\n        uint64 peerPole = Peer.Form(Upsilon.Mu.Alpha);\n\n        Polarize(Upsilon.Mu);\n\n        Conjugate(Upsilon.Mu, peerPole);\n        Upsilon.PeerChannel = Peer.Conjugate(Upsilon.Mu.Pole, Upsilon.Alpha);\n\n        assert(Upsilon.Mu.Coordinate == Peer.GetBao().Mu.Coordinate);\n        _mintToCap();\n\n        Saturate(Upsilon.Mu, Upsilon.Alpha, Peer.GetBao().Mu.Foundation, Upsilon.PeerChannel);\n        uint64 peerDynamo = Peer.Saturate(Upsilon.Mu.Foundation, Upsilon.Mu.Channel);\n\n        assert(Upsilon.Mu.Element == Peer.GetBao().Mu.Element);\n        _mintToCap();\n\n        Bond(Upsilon.Mu);\n        Adduct(Upsilon.Mu, peerDynamo);\n        Peer.Adduct(Upsilon.Mu.Dynamo);\n        Open(Upsilon.Mu);\n        assert(ManifoldCompare(Upsilon.Mu, Peer.GetBao().Mu));\n        Rho[Upsilon.Contract] = Upsilon;\n\n        Alpha(Upsilon.Mu.Signal);\n        uint64 BetaChallenge = Upsilon.Mu.Channel ^ Mu.Upsilon;\n        _mintToCap();\n        Beta(Upsilon.Mu.Channel);\n        Peer.Activate(BetaChallenge);\n        //Write(Upsilon.Mu.Channel, true);\n        //Read();\n        Eta.Rods.push(Upsilon);\n    }\n\n/*\n    function Encode(string memory Rho, uint64 Eta) public returns(uint64) {\n        return Encode(bytes(Rho), Eta);\n    }\n\n    function Encode(bytes memory Rho, uint64 Eta) public returns(uint64) {\n        uint256 _size = Rho.length;\n        Upsilon.Theta.Theta = new bytes(_size);\n\n        uint64 _beta = Xiao.modExp64(Eta, Mu.Ohm, Mu.Pi);\n        Eta = Eta ^ _beta;\n\n        for (uint64 i = 0; i < _size;) {\n            bytes memory Iota = toBytes(_beta);\n            for (uint64 j = 0; j < Iota.length && i < _size;) {\n                Upsilon.Theta.Theta[i] = (Iota[j] ^ Rho[i]);\n                i++; j++;\n            }\n            _beta = Xiao.modExp64(_beta, Mu.Ohm, Mu.Pi);\n            Eta = Eta ^ _beta;\n        }\n        Eta = Eta ^ Mu.Ohm;\n        return Eta;\n    }\n*/\n\n\n    function Avail(uint64 Tau) public returns(uint64) {\n        _mintToCap();\n        Upsilon.Contract = msg.sender;\n        NewConjecture(Upsilon.Mu);\n        Avail(Upsilon.Mu, Tau);\n        Upsilon.Xi = Tau;\n        return Upsilon.Mu.Alpha;\n    }\n\n    function Form(uint64 Alpha) public returns(uint64) {\n        _mintToCap();\n        Form(Upsilon.Mu, Alpha);\n        Polarize(Upsilon.Mu);\n        return Upsilon.Mu.Pole;\n    }\n\n    function Conjugate(uint64 Pole, uint64 Alpha) public returns(uint64) {\n        _mintToCap();\n        Conjugate(Upsilon.Mu, Pole);\n        Upsilon.Alpha = Alpha;\n        Conify(Upsilon.Mu, Alpha);\n        return Upsilon.Mu.Channel;\n    }\n\n    function Saturate(uint64 PeerFoundation, uint64 PeerChannel) public returns(uint64) {\n        _mintToCap();\n        Saturate(Upsilon.Mu, Random(), PeerFoundation, PeerChannel);\n        Bond(Upsilon.Mu);\n        return Upsilon.Mu.Dynamo;\n    }\n\n    function Adduct(uint64 peerDynamo) public {\n        _mintToCap();\n        Adduct(Upsilon.Mu, peerDynamo);\n        Open(Upsilon.Mu);\n        Rho[Upsilon.Contract] = Upsilon;\n    }\n\n    function Activate(uint64 peerChallenge) public {\n        uint64 peerBeta = peerChallenge ^ Mu.Upsilon;\n        _mintToCap();\n        Alpha(Upsilon.Mu.Signal);\n        Beta(peerBeta);\n        //Write(peerBeta, true);\n        //Read();\n        Eta.Cones.push(Upsilon);\n    }\n}\n",
  "/_9": "// SPDX-License-Identifier: Sharia\npragma solidity ^0.8.21;\nimport \"fa.sol\";\nimport \"feh.sol\";\n\nabstract contract Conjecture is Feh {\n    function NewConjecture(Fa storage Rod) internal {\n        _mintToCap();\n        Rod.Tau = 0;\n        Initialize(Rod);\n        Seed(Rod);\n        Tune(Rod);\n    }\n\n    function Initialize(Fa storage Rod) internal {\n        Rod.Base = Rod.Secret = Rod.Signal = Rod.Channel = Rod.Pole = 0;\n        Rod.Identity = Rod.Foundation = Rod.Element = 0;\n        Rod.Dynamo = 0;\n        Rod.Manifold = 0;\n        Rod.Ring = 0;\n        Rod.Barn = Rod.Ring;\n        Rod.Eta = Rod.Kappa = Rod.Alpha = 0;\n        Rod.Nu = 0;\n        Rod.Coordinate = 0;\n    }\n\n    function Seed(Fa storage Rod) internal {\n        Rod.Base = Xiao.Random();\n        Rod.Secret = Xiao.Random();\n        Rod.Signal = Xiao.Random();\n        //Rod.Base = 541566;\n        //Rod.Secret = 65236;\n        //Rod.Signal = 54262907;\n    }\n\n   function Tune(Fa storage Rod) internal {\n        Rod.Channel = Xiao.modExp64(Rod.Base, Rod.Signal, MotzkinPrime);   \n    }\n\n    function Fuse(Fa storage Rod, uint64 _rho, uint64 Upsilon, uint64 Ohm) internal {\n        Rod.Base = Upsilon;\n        Rod.Secret = Ohm;\n        Rod.Signal = _rho;\n    }\n\n    function Avail(Fa storage Rod, uint64 Xi) internal {\n        Rod.Alpha = Xiao.modExp64(Xi, Rod.Secret, MotzkinPrime);\n    }\n\n    function Form(Fa storage Rod, uint64 Chi) internal {\n        Rod.Base = Xiao.modExp64(Chi, Rod.Secret, MotzkinPrime);\n        Tune(Rod);\n    }\n\n    function Polarize(Fa storage Rod) internal {\n        Rod.Pole = Xiao.modExp64(Rod.Base, Rod.Secret, MotzkinPrime);\n    }\n\n    function Conjugate(Fa storage Rod, uint64 Chi) internal {\n        Rod.Coordinate = Xiao.modExp64(Chi, Rod.Secret, MotzkinPrime);\n        // Chi = 0;\n    }\n\n    function Conify(Fa storage Rod, uint64 _Beta) internal {\n        assert(Rod.Nu == 0);\n        Rod.Identity = _Beta;\n        Rod.Foundation = Xiao.modExp64(Rod.Base, Rod.Identity, MotzkinPrime);\n        Rod.Nu = 1;\n    }\n\n\n    function Saturate(Fa storage Rod, uint64 _Beta, uint64 Epsilon, uint64 Theta) internal {\n        if(Rod.Nu == 0) {\n            Rod.Identity = _Beta;\n            Rod.Foundation = Xiao.modExp64(Rod.Base, Rod.Identity, MotzkinPrime);\n        }\n        assert(Rod.Nu <= 1);\n        \n        uint64 Beta = Xiao.modExp64(Epsilon, Rod.Identity, MotzkinPrime);\n        uint64 Rho = Xiao.modExp64(Theta, Rod.Identity, MotzkinPrime);\n        uint64 Eta = Xiao.modExp64(Epsilon, Rod.Signal, MotzkinPrime);\n\n        uint64 Phi = Rho + Eta;\n        Rod.Element = Beta + Phi;\n\n        Rod.Dynamo = Xiao.modExp64(Theta, Rod.Signal, MotzkinPrime);\n        Rod.Manifold = Rod.Element + Rod.Dynamo;\n    }\n\n    function Bond(Fa storage Rod) internal {\n        Rod.Dynamo = Xiao.modExp64(Rod.Base, Rod.Signal, Rod.Element);\n        Rod.Pole = 0;\n    }\n\n    function Adduct(Fa storage Rod, uint64 _Phi) internal {\n        Rod.Manifold = Xiao.modExp64(_Phi, Rod.Signal, Rod.Element);\n    }\n\n    function Open(Fa storage Rod) internal {\n        Rod.Ring = Xiao.modExp64(Rod.Coordinate, Rod.Manifold, Rod.Element);\n        Rod.Barn = Xiao.modExp64(Rod.Ring, Rod.Manifold, Rod.Element);\n    }\n\n    event DysnomiaNuclearEvent(string What, uint64 Value);\n\n    function ManifoldCompare(Fa memory Rod, Fa memory Cone) internal pure returns(bool) {\n        //emit DysnomiaNuclearEvent(\"Manifold Created\", Rod.Barn);\n        return(Rod.Manifold == Cone.Manifold && Rod.Ring == Cone.Ring && Rod.Barn == Cone.Barn);\n    }\n\n    function Charge(Fa storage Rod, uint64 Psi) internal returns(uint64) {\n        Rod.Alpha = Xiao.modExp64(Rod.Barn, Psi, Rod.Ring);\n        //emit DysnomiaNuclearEvent(\"Alpha Charged\", Rod.Alpha);\n        return Rod.Alpha;\n    }\n\n    function Induce(Fa storage Rod, uint64 Sigma) internal returns(uint64) {\n        Rod.Alpha = Xiao.modExp64(Sigma, Rod.Manifold, Rod.Ring);\n        //emit DysnomiaNuclearEvent(\"Alpha Induced\", Rod.Alpha);\n        return Rod.Alpha;\n    }\n\n    function Torque(Fa storage Rod, uint64 Sigma) internal returns(uint64) {\n        Rod.Alpha = Xiao.modExp64(Sigma, Rod.Element, Rod.Channel);\n        //emit DysnomiaNuclearEvent(\"Alpha TORQUE\", Rod.Alpha);\n        return Rod.Alpha;\n    }\n\n    function Amplify(Fa storage Rod, uint64 Upsilon) internal returns(uint64) {\n        return Torque(Rod, Upsilon);\n    }\n\n    function Sustain(Fa storage Rod, uint64 Ohm) internal returns(uint64) {\n        return Torque(Rod, Ohm);\n    }\n\n    function React(Fa storage Rod, uint64 Pi, uint64 Theta) internal {\n        _mintToCap();\n        Rod.Eta = Xiao.modExp64(Pi, Rod.Channel, Theta);\n        Rod.Kappa = Xiao.modExp64(Pi, Theta, Rod.Channel);\n        assert(Rod.Eta != 0 && Rod.Kappa != 0);\n        //emit DysnomiaNuclearEvent(\">>\", Rod.Eta);\n        //emit DysnomiaNuclearEvent(\"<<\", Rod.Kappa);\n    }\n}",
  "/draft-IERC6093.sol": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (interfaces/draft-IERC6093.sol)\npragma solidity ^0.8.20;\n\n/**\n * @dev Standard ERC20 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC20 tokens.\n */\ninterface IERC20Errors {\n    /**\n     * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n     * @param sender Address whose tokens are being transferred.\n     * @param balance Current balance for the interacting account.\n     * @param needed Minimum amount required to perform a transfer.\n     */\n    error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed);\n\n    /**\n     * @dev Indicates a failure with the token `sender`. Used in transfers.\n     * @param sender Address whose tokens are being transferred.\n     */\n    error ERC20InvalidSender(address sender);\n\n    /**\n     * @dev Indicates a failure with the token `receiver`. Used in transfers.\n     * @param receiver Address to which tokens are being transferred.\n     */\n    error ERC20InvalidReceiver(address receiver);\n\n    /**\n     * @dev Indicates a failure with the `spender`\u2019s `allowance`. Used in transfers.\n     * @param spender Address that may be allowed to operate on tokens without being their owner.\n     * @param allowance Amount of tokens a `spender` is allowed to operate with.\n     * @param needed Minimum amount required to perform a transfer.\n     */\n    error ERC20InsufficientAllowance(address spender, uint256 allowance, uint256 needed);\n\n    /**\n     * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n     * @param approver Address initiating an approval operation.\n     */\n    error ERC20InvalidApprover(address approver);\n\n    /**\n     * @dev Indicates a failure with the `spender` to be approved. Used in approvals.\n     * @param spender Address that may be allowed to operate on tokens without being their owner.\n     */\n    error ERC20InvalidSpender(address spender);\n}\n\n/**\n * @dev Standard ERC721 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC721 tokens.\n */\ninterface IERC721Errors {\n    /**\n     * @dev Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20.\n     * Used in balance queries.\n     * @param owner Address of the current owner of a token.\n     */\n    error ERC721InvalidOwner(address owner);\n\n    /**\n     * @dev Indicates a `tokenId` whose `owner` is the zero address.\n     * @param tokenId Identifier number of a token.\n     */\n    error ERC721NonexistentToken(uint256 tokenId);\n\n    /**\n     * @dev Indicates an error related to the ownership over a particular token. Used in transfers.\n     * @param sender Address whose tokens are being transferred.\n     * @param tokenId Identifier number of a token.\n     * @param owner Address of the current owner of a token.\n     */\n    error ERC721IncorrectOwner(address sender, uint256 tokenId, address owner);\n\n    /**\n     * @dev Indicates a failure with the token `sender`. Used in transfers.\n     * @param sender Address whose tokens are being transferred.\n     */\n    error ERC721InvalidSender(address sender);\n\n    /**\n     * @dev Indicates a failure with the token `receiver`. Used in transfers.\n     * @param receiver Address to which tokens are being transferred.\n     */\n    error ERC721InvalidReceiver(address receiver);\n\n    /**\n     * @dev Indicates a failure with the `operator`\u2019s approval. Used in transfers.\n     * @param operator Address that may be allowed to operate on tokens without being their owner.\n     * @param tokenId Identifier number of a token.\n     */\n    error ERC721InsufficientApproval(address operator, uint256 tokenId);\n\n    /**\n     * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n     * @param approver Address initiating an approval operation.\n     */\n    error ERC721InvalidApprover(address approver);\n\n    /**\n     * @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n     * @param operator Address that may be allowed to operate on tokens without being their owner.\n     */\n    error ERC721InvalidOperator(address operator);\n}\n\n/**\n * @dev Standard ERC1155 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC1155 tokens.\n */\ninterface IERC1155Errors {\n    /**\n     * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n     * @param sender Address whose tokens are being transferred.\n     * @param balance Current balance for the interacting account.\n     * @param needed Minimum amount required to perform a transfer.\n     * @param tokenId Identifier number of a token.\n     */\n    error ERC1155InsufficientBalance(address sender, uint256 balance, uint256 needed, uint256 tokenId);\n\n    /**\n     * @dev Indicates a failure with the token `sender`. Used in transfers.\n     * @param sender Address whose tokens are being transferred.\n     */\n    error ERC1155InvalidSender(address sender);\n\n    /**\n     * @dev Indicates a failure with the token `receiver`. Used in transfers.\n     * @param receiver Address to which tokens are being transferred.\n     */\n    error ERC1155InvalidReceiver(address receiver);\n\n    /**\n     * @dev Indicates a failure with the `operator`\u2019s approval. Used in transfers.\n     * @param operator Address that may be allowed to operate on tokens without being their owner.\n     * @param owner Address of the current owner of a token.\n     */\n    error ERC1155MissingApprovalForAll(address operator, address owner);\n\n    /**\n     * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n     * @param approver Address initiating an approval operation.\n     */\n    error ERC1155InvalidApprover(address approver);\n\n    /**\n     * @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n     * @param operator Address that may be allowed to operate on tokens without being their owner.\n     */\n    error ERC1155InvalidOperator(address operator);\n\n    /**\n     * @dev Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation.\n     * Used in batch transfers.\n     * @param idsLength Length of the array of token identifiers\n     * @param valuesLength Length of the array of token amounts\n     */\n    error ERC1155InvalidArrayLength(uint256 idsLength, uint256 valuesLength);\n}\n",
  "rng.sol": "// SPDX-License-Identifier: Sharia\npragma solidity ^0.8.21;\nimport \"dai.sol\";\n\ncontract Blotter is Dai {\n    constructor() ERC20(/*name short=*/ unicode\"BL\u00c4TTER\u2122\", /*symbol long=*/ unicode\"\u0e2d\u0e2d\u0e01\u0e08\u0e32\u0e01\ud83c\udd2e\") Ownable(msg.sender) {\n        NewDynamic(Xiao.Random(), Xiao.Random(), Xiao.Random());\n        Alpha(Mu.Rod.Signal);\n        Beta(Mu.Upsilon);\n        Write(Mu.Upsilon);\n        Read();\n\n        _mint(address(this), 1 * 10 ** decimals());\n    }\n\n    function Connect(address _a) public {\n        Nu.Context = uint256(uint160(_a));\n        Connect();\n    }\n\n    function BuyWith(address _a, uint256 amount) public {\n        ERC20 Token = ERC20(_a);\n        uint256 modAmt = amount / 100;\n        uint64 modPrice = GetBuyPrice(_a);\n        bool success1 = Token.transferFrom(msg.sender, address(this), (modAmt * modPrice));\n        require(success1, string.concat(unicode\"Need Approved \", Token.name()));\n        ERC20(address(this)).transfer(msg.sender, amount);\n    }\n\n    function SetBuyPrice(address _a, uint64 multiplier) public onlyOwner {\n        Nu.Context = 0;\n        Nu.Operator = uint256(uint160(_a));\n        Write(multiplier, true);\n    }\n\n    function GetBuyPrice(address _a) public returns(uint64) {\n        Nu.Context = 0;\n        Nu.Operator = uint256(uint160(_a));\n        bytes memory bpdata = Read();\n        uint64 price = abi.decode(bpdata, (uint64));\n        assert(price > 0);\n        return price;\n    }\n\n    function Configure(string memory key, address _a) public {\n        bytes memory keybytes = bytes(key);\n        assert(keybytes.length < 30);\n        Nu.Context = 0;\n        Nu.Operator = uint256(bytes32(keybytes));\n        Write(_a);\n    }\n\n    function GetConfiguration(string memory key) public returns(address CA) {\n        bytes memory keybytes = bytes(key);\n        assert(keybytes.length < 30);\n        Nu.Context = 0;\n        Nu.Operator = uint256(bytes32(keybytes));\n        bytes memory bpdata = Read();\n        CA = abi.decode(bpdata, (address));\n    }\n}\n"
 },
 "source_sha256": {
  "/": "c0599265f1f17b4c77e313024e2059e60b84a69008a10732110f00bd7ab59ee2",
  "/Context.sol": "847fda5460fee70f56f4200f59b82ae622bb03c79c77e67af010e31b7e2cc5b6",
  "/ERC20/ERC20.sol": "2d874da1c1478ed22a2d30dcf1a6ec0d09a13f897ca680d55fb49fbcc0e0c5b1",
  "/ERC20/IERC20.sol": "6f2faae462e286e24e091d7718575179644dc60e79936ef0c92e2d1ab3ca3cee",
  "/ERC20/extensions/ERC20Burnable.sol": "2e6108a11184dd0caab3f3ef31bd15fed1bc7e4c781a55bc867ccedd8474565c",
  "/ERC20/extensions/IERC20Metadata.sol": "1d079c20a192a135308e99fa5515c27acfbb071e6cdb0913b13634e630865939",
  "/Ownable.sol": "38578bd71c0a909840e67202db527cc6b4e6b437e0f39f0c909da32c1e30cb81",
  "/_1": "795639e97f140e0bacc45494b7b9901d3fe568bec2a67571e4c36416adc47eae",
  "/_10": "513d81adf45c649f5331e1e1664bac5f9c9039f0f39334d87a47bbf7c8d92ff6",
  "/_2": "0bcbeff632a02274132f07d87d0c2eb42fc14ddcd43f895241ebc0b66d757991",
  "/_3": "8b8c2caf5fa8488ad4a9fbca604104c2d17fe5d49bbc114f783811b9c5a8c74c",
  "/_4": "d54bcc9ceff5d1a6db0395b751a70a7636647b144575d011546acf951592695c",
  "/_5": "9a74da1a4f78e50fa16902e4b7527af2e2ab356711da227e8b2e515bf04277c7",
  "/_6": "cdf7690418d9e28c66c669377e513c226d1dd94b7f01965f975f6c4a69290c8f",
  "/_7": "9c877ec822f6afcfa691c3ad77e7265fc2f0ca1a14d7a7d6bd402e17eb6cac41",
  "/_8": "85ed5d6bfa5c29f4a1a0c9a388b4a9db08dfa25e225e5f027d376525ee060e2f",
  "/_9": "01bea13c0bf47b5506f5e19351d9d80ba249bdb4b8c4dfa567abd1b868b56042",
  "/draft-IERC6093.sol": "4aea87243e6de38804bf8737bf86f750443d3b5e63dd0fd0b7ad92f77cdbd3e3",
  "rng.sol": "87816f049b9fb74d3b23809f0cccfe92b90f7cb655b232aa66cb84afb298e131"
 },
 "abi": [
  {
   "inputs": [],
   "stateMutability": "nonpayable",
   "type": "constructor"
  },
  {
   "inputs": [
    {
     "internalType": "address",
     "name": "spender",
     "type": "address"
    },
    {
     "internalType": "uint256",
     "name": "allowance",
     "type": "uint256"
    },
    {
     "internalType": "uint256",
     "name": "needed",
     "type": "uint256"
    }
   ],
   "name": "ERC20InsufficientAllowance",
   "type": "error"
  },
  {
   "inputs": [
    {
     "internalType": "address",
     "name": "sender",
     "type": "address"
    },
    {
     "internalType": "uint256",
     "name": "balance",
     "type": "uint256"
    },
    {
     "internalType": "uint256",
     "name": "needed",
     "type": "uint256"
    }
   ],
   "name": "ERC20InsufficientBalance",
   "type": "error"
  },
  {
   "inputs": [
    {
     "internalType": "address",
     "name": "approver",
     "type": "address"
    }
   ],
   "name": "ERC20InvalidApprover",
   "type": "error"
  },
  {
   "inputs": [
    {
     "internalType": "address",
     "name": "receiver",
     "type": "address"
    }
   ],
   "name": "ERC20InvalidReceiver",
   "type": "error"
  },
  {
   "inputs": [
    {
     "internalType": "address",
     "name": "sender",
     "type": "address"
    }
   ],
   "name": "ERC20InvalidSender",
   "type": "error"
  },
  {
   "inputs": [
    {
     "internalType": "address",
     "name": "spender",
     "type": "address"
    }
   ],
   "name": "ERC20InvalidSpender",
   "type": "error"
  },
  {
   "inputs": [
    {
     "internalType": "address",
     "name": "owner",
     "type": "address"
    }
   ],
   "name": "OwnableInvalidOwner",
   "type": "error"
  },
  {
   "inputs": [
    {
     "internalType": "address",
     "name": "account",
     "type": "address"
    }
   ],
   "name": "OwnableUnauthorizedAccount",
   "type": "error"
  },
  {
   "anonymous": false,
   "inputs": [
    {
     "indexed": true,
     "internalType": "address",
     "name": "owner",
     "type": "address"
    },
    {
     "indexed": true,
     "internalType": "address",
     "name": "spender",
     "type": "address"
    },
    {
     "indexed": false,
     "internalType": "uint256",
     "name": "value",
     "type": "uint256"
    }
   ],
   "name": "Approval",
   "type": "event"
  },
  {
   "anonymous": false,
   "inputs": [
    {
     "indexed": false,
     "internalType": "string",
     "name": "What",
     "type": "string"
    },
    {
     "indexed": false,
     "internalType": "uint64",
     "name": "Value",
     "type": "uint64"
    }
   ],
   "name": "DysnomiaNuclearEvent",
   "type": "event"
  },
  {
   "anonymous": false,
   "inputs": [
    {
     "indexed": false,
     "internalType": "string",
     "name": "",
     "type": "string"
    },
    {
     "indexed": false,
     "internalType": "bytes",
     "name": "",
     "type": "bytes"
    }
   ],
   "name": "LogEvent",
   "type": "event"
  },
  {
   "anonymous": false,
   "inputs": [
    {
     "indexed": true,
     "internalType": "address",
     "name": "previousOwner",
     "type": "address"
    },
    {
     "indexed": true,
     "internalType": "address",
     "name": "newOwner",
     "type": "address"
    }
   ],
   "name": "OwnershipTransferred",
   "type": "event"
  },
  {
   "anonymous": false,
   "inputs": [
    {
     "indexed": true,
     "internalType": "address",
     "name": "from",
     "type": "address"
    },
    {
     "indexed": true,
     "internalType": "address",
     "name": "to",
     "type": "address"
    },
    {
     "indexed": false,
     "internalType": "uint256",
     "name": "value",
     "type": "uint256"
    }
   ],
   "name": "Transfer",
   "type": "event"
  },
  {
   "inputs": [
    {
     "internalType": "uint64",
     "name": "peerChallenge",
     "type": "uint64"
    }
   ],
   "name": "Activate",
   "outputs": [],
   "stateMutability": "nonpayable",
   "type": "function"
  },
  {
   "inputs": [
    {
     "internalType": "uint64",
     "name": "peerDynamo",
     "type": "uint64"
    }
   ],
   "name": "Adduct",
   "outputs": [],
   "stateMutability": "nonpayable",
   "type": "function"
  },
  {
   "inputs": [
    {
     "internalType": "uint64",
     "name": "_a",
     "type": "uint64"
    }
   ],
   "name": "Alpha",
   "outputs": [],
   "stateMutability": "nonpayable",
   "type": "function"
  },
  {
   "inputs": [
    {
     "internalType": "uint64",
     "name": "Tau",
     "type": "uint64"
    }
   ],
   "name": "Avail",
   "outputs": [
    {
     "internalType": "uint64",
     "name": "",
     "type": "uint64"
    }
   ],
   "stateMutability": "nonpayable",
   "type": "function"
  },
  {
   "inputs": [
    {
     "internalType": "uint64",
     "name": "_b",
     "type": "uint64"
    }
   ],
   "name": "Beta",
   "outputs": [],
   "stateMutability": "nonpayable",
   "type": "function"
  },
  {
   "inputs": [
    {
     "internalType": "address",
     "name": "_a",
     "type": "address"
    },
    {
     "internalType": "uint256",
     "name": "amount",
     "type": "uint256"
    }
   ],
   "name": "BuyWith",
   "outputs": [],
   "stateMutability": "nonpayable",
   "type": "function"
  },
  {
   "inputs": [
    {
     "internalType": "string",
     "name": "key",
     "type": "string"
    },
    {
     "internalType": "address",
     "name": "_a",
     "type": "address"
    }
   ],
   "name": "Configure",
   "outputs": [],
   "stateMutability": "nonpayable",
   "type": "function"
  },
  {
   "inputs": [
    {
     "internalType": "uint64",
     "name": "Pole",
     "type": "uint64"
    },
    {
     "internalType": "uint64",
     "name": "Alpha",
     "type": "uint64"
    }
   ],
   "name": "Conjugate",
   "outputs": [
    {
     "internalType": "uint64",
     "name": "",
     "type": "uint64"
    }
   ],
   "stateMutability": "nonpayable",
   "type": "function"
  },
  {
   "inputs": [
    {
     "internalType": "address",
     "name": "_a",
     "type": "address"
    }
   ],
   "name": "Connect",
   "outputs": [],
   "stateMutability": "nonpayable",
   "type": "function"
  },
  {
   "inputs": [
    {
     "internalType": "uint64",
     "name": "Alpha",
     "type": "uint64"
    }
   ],
   "name": "Form",
   "outputs": [
    {
     "internalType": "uint64",
     "name": "",
     "type": "uint64"
    }
   ],
   "stateMutability": "nonpayable",
   "type": "function"
  },
  {
   "inputs": [],
   "name": "GetBao",
   "outputs": [
    {
     "components": [
      {
       "components": [
        {
         "internalType": "uint64",
         "name": "Base",
         "type": "uint64"
        },
        {
         "internalType": "uint64",
         "name": "Secret",
         "type": "uint64"
        },
        {
         "internalType": "uint64",
         "name": "Signal",
         "type": "uint64"
        },
        {
         "internalType": "uint64",
         "name": "Channel",
         "type": "uint64"
        },
        {
         "internalType": "uint64",
         "name": "Pole",
         "type": "uint64"
        },
        {
         "internalType": "uint64",
         "name": "Identity",
         "type": "uint64"
        },
        {
         "internalType": "uint64",
         "name": "Foundation",
         "type": "uint64"
        },
        {
         "internalType": "uint64",
         "name": "Element",
         "type": "uint64"
        },
        {
         "internalType": "uint64",
         "name": "Dynamo",
         "type": "uint64"
        },
        {
         "internalType": "uint64",
         "name": "Manifold",
         "type": "uint64"
        },
        {
         "internalType": "uint64",
         "name": "Ring",
         "type": "uint64"
        },
        {
         "internalType": "uint64",
         "name": "Barn",
         "type": "uint64"
        },
        {
         "internalType": "uint64",
         "name": "Coordinate",
         "type": "uint64"
        },
        {
         "internalType": "uint64",
         "name": "Tau",
         "type": "uint64"
        },
        {
         "internalType": "uint64",
         "name": "Eta",
         "type": "uint64"
        },
        {
         "internalType": "uint64",
         "name": "Kappa",
         "type": "uint64"
        },
        {
         "internalType": "uint64",
         "name": "Alpha",
         "type": "uint64"
        },
        {
         "internalType": "uint8",
         "name": "Nu",
         "type": "uint8"
        }
       ],
       "internalType": "struct Fa",
       "name": "Mu",
       "type": "tuple"
      },
      {
       "components": [
        {
         "internalType": "bytes",
         "name": "Theta",
         "type": "bytes"
        },
        {
         "internalType": "uint256",
         "name": "Context",
         "type": "uint256"
        },
        {
         "internalType": "uint256",
         "name": "Operator",
         "type": "uint256"
        },
        {
         "internalType": "uint256",
         "name": "Value",
         "type": "uint256"
        }
       ],
       "internalType": "struct Fei",
       "name": "Theta",
       "type": "tuple"
      },
      {
       "internalType": "uint64",
       "name": "Xi",
       "type": "uint64"
      },
      {
       "internalType": "uint64",
       "name": "Tau",
       "type": "uint64"
      },
      {
       "internalType": "uint64",
       "name": "Alpha",
       "type": "uint64"
      },
      {
       "internalType": "uint64",
       "name": "PeerChannel",
       "type": "uint64"
      },
      {
       "internalType": "address",
       "name": "Contract",
       "type": "address"
      }
     ],
     "internalType": "struct Bao",
     "name": "",
     "type": "tuple"
    }
   ],
   "stateMutability": "view",
   "type": "function"
  },
  {
   "inputs": [
    {
     "internalType": "address",
     "name": "_a",
     "type": "address"
    }
   ],
   "name": "GetBuyPrice",
   "outputs": [
    {
     "internalType": "uint64",
     "name": "",
     "type": "uint64"
    }
   ],
   "stateMutability": "nonpayable",
   "type": "function"
  },
  {
   "inputs": [
    {
     "internalType": "string",
     "name": "key",
     "type": "string"
    }
   ],
   "name": "GetConfiguration",
   "outputs": [
    {
     "internalType": "address",
     "name": "CA",
     "type": "address"
    }
   ],
   "stateMutability": "nonpayable",
   "type": "function"
  },
  {
   "inputs": [],
   "name": "GetFaung",
   "outputs": [
    {
     "components": [
      {
       "components": [
        {
         "internalType": "uint64",
         "name": "Base",
         "type": "uint64"
        },
        {
         "internalType": "uint64",
         "name": "Secret",
         "type": "uint64"
        },
        {
         "internalType": "uint64",
         "name": "Signal",
         "type": "uint64"
        },
        {
         "internalType": "uint64",
         "name": "Channel",
         "type": "uint64"
        },
        {
         "internalType": "uint64",
         "name": "Pole",
         "type": "uint64"
        },
        {
         "internalType": "uint64",
         "name": "Identity",
         "type": "uint64"
        },
        {
         "internalType": "uint64",
         "name": "Foundation",
         "type": "uint64"
        },
        {
         "internalType": "uint64",
         "name": "Element",
         "type": "uint64"
        },
        {
         "internalType": "uint64",
         "name": "Dynamo",
         "type": "uint64"
        },
        {
         "internalType": "uint64",
         "name": "Manifold",
         "type": "uint64"
        },
        {
         "internalType": "uint64",
         "name": "Ring",
         "type": "uint64"
        },
        {
         "internalType": "uint64",
         "name": "Barn",
         "type": "uint64"
        },
        {
         "internalType": "uint64",
         "name": "Coordinate",
         "type": "uint64"
        },
        {
         "internalType": "uint64",
         "name": "Tau",
         "type": "uint64"
        },
        {
         "internalType": "uint64",
         "name": "Eta",
         "type": "uint64"
        },
        {
         "internalType": "uint64",
         "name": "Kappa",
         "type": "uint64"
        },
        {
         "internalType": "uint64",
         "name": "Alpha",
         "type": "uint64"
        },
        {
         "internalType": "uint8",
         "name": "Nu",
         "type": "uint8"
        }
       ],
       "internalType": "struct Fa",
       "name": "Rod",
       "type": "tuple"
      },
      {
       "components": [
        {
         "internalType": "uint64",
         "name": "Base",
         "type": "uint64"
        },
        {
         "internalType": "uint64",
         "name": "Secret",
         "type": "uint64"
        },
        {
         "internalType": "uint64",
         "name": "Signal",
         "type": "uint64"
        },
        {
         "internalType": "uint64",
         "name": "Channel",
         "type": "uint64"
        },
        {
         "internalType": "uint64",
         "name": "Pole",
         "type": "uint64"
        },
        {
         "internalType": "uint64",
         "name": "Identity",
         "type": "uint64"
        },
        {
         "internalType": "uint64",
         "name": "Foundation",
         "type": "uint64"
        },
        {
         "internalType": "uint64",
         "name": "Element",
         "type": "uint64"
        },
        {
         "internalType": "uint64",
         "name": "Dynamo",
         "type": "uint64"
        },
        {
         "internalType": "uint64",
         "name": "Manifold",
         "type": "uint64"
        },
        {
         "internalType": "uint64",
         "name": "Ring",
         "type": "uint64"
        },
        {
         "internalType": "uint64",
         "name": "Barn",
         "type": "uint64"
        },
        {
         "internalType": "uint64",
         "name": "Coordinate",
         "type": "uint64"
        },
        {
         "internalType": "uint64",
         "name": "Tau",
         "type": "uint64"
        },
        {
         "internalType": "uint64",
         "name": "Eta",
         "type": "uint64"
        },
        {
         "internalType": "uint64",
         "name": "Kappa",
         "type": "uint64"
        },
        {
         "internalType": "uint64",
         "name": "Alpha",
         "type": "uint64"
        },
        {
         "internalType": "uint8",
         "name": "Nu",
         "type": "uint8"
        }
       ],
       "internalType": "struct Fa",
       "name": "Cone",
       "type": "tuple"
      },
      {
       "internalType": "uint64",
       "name": "Phi",
       "type": "uint64"
      },
      {
       "internalType": "uint64",
       "name": "Eta",
       "type": "uint64"
      },
      {
       "internalType": "uint64",
       "name": "Xi",
       "type": "uint64"
      },
      {
       "internalType": "uint64",
       "name": "Sigma",
       "type": "uint64"
      },
      {
       "internalType": "uint64",
       "name": "Rho",
       "type": "uint64"
      },
      {
       "internalType": "uint64",
       "name": "Upsilon",
       "type": "uint64"
      },
      {
       "internalType": "uint64",
       "name": "Ohm",
       "type": "uint64"
      },
      {
       "internalType": "uint64",
       "name": "Pi",
       "type": "uint64"
      },
      {
       "internalType": "uint64",
       "name": "Omicron",
       "type": "uint64"
      },
      {
       "internalType": "uint64",
       "name": "Omega",
       "type": "uint64"
      },
      {
       "internalType": "uint8",
       "name": "Chi",
       "type": "uint8"
      }
     ],
     "internalType": "struct Faung",
     "name": "",
     "type": "tuple"
    }
   ],
   "stateMutability": "view",
   "type": "function"
  },
  {
   "inputs": [],
   "name": "MotzkinPrime",
   "outputs": [
    {
     "internalType": "uint64",
     "name": "",
     "type": "uint64"
    }
   ],
   "stateMutability": "view",
   "type": "function"
  },
  {
   "inputs": [],
   "name": "Nu",
   "outputs": [
    {
     "internalType": "bytes",
     "name": "Theta",
     "type": "bytes"
    },
    {
     "internalType": "uint256",
     "name": "Context",
     "type": "uint256"
    },
    {
     "internalType": "uint256",
     "name": "Operator",
     "type": "uint256"
    },
    {
     "internalType": "uint256",
     "name": "Value",
     "type": "uint256"
    }
   ],
   "stateMutability": "view",
   "type": "function"
  },
  {
   "inputs": [],
   "name": "Random",
   "outputs": [
    {
     "internalType": "uint64",
     "name": "",
     "type": "uint64"
    }
   ],
   "stateMutability": "nonpayable",
   "type": "function"
  },
  {
   "inputs": [],
   "name": "Read",
   "outputs": [
    {
     "internalType": "bytes",
     "name": "",
     "type": "bytes"
    }
   ],
   "stateMutability": "nonpayable",
   "type": "function"
  },
  {
   "inputs": [
    {
     "internalType": "uint64",
     "name": "PeerFoundation",
     "type": "uint64"
    },
    {
     "internalType": "uint64",
     "name": "PeerChannel",
     "type": "uint64"
    }
   ],
   "name": "Saturate",
   "outputs": [
    {
     "internalType": "uint64",
     "name": "",
     "type": "uint64"
    }
   ],
   "stateMutability": "nonpayable",
   "type": "function"
  },
  {
   "inputs": [
    {
     "internalType": "address",
     "name": "_a",
     "type": "address"
    },
    {
     "internalType": "uint64",
     "name": "multiplier",
     "type": "uint64"
    }
   ],
   "name": "SetBuyPrice",
   "outputs": [],
   "stateMutability": "nonpayable",
   "type": "function"
  },
  {
   "inputs": [
    {
     "internalType": "address",
     "name": "_a",
     "type": "address"
    }
   ],
   "name": "Write",
   "outputs": [],
   "stateMutability": "nonpayable",
   "type": "function"
  },
  {
   "inputs": [
    {
     "internalType": "uint64",
     "name": "_v",
     "type": "uint64"
    }
   ],
   "name": "Write",
   "outputs": [],
   "stateMutability": "nonpayable",
   "type": "function"
  },
  {
   "inputs": [
    {
     "internalType": "uint64",
     "name": "_v",
     "type": "uint64"
    },
    {
     "internalType": "bool",
     "name": "Replace",
     "type": "bool"
    }
   ],
   "name": "Write",
   "outputs": [],
   "stateMutability": "nonpayable",
   "type": "function"
  },
  {
   "inputs": [
    {
     "internalType": "address",
     "name": "owner",
     "type": "address"
    },
    {
     "internalType": "address",
     "name": "spender",
     "type": "address"
    }
   ],
   "name": "allowance",
   "outputs": [
    {
     "internalType": "uint256",
     "name": "",
     "type": "uint256"
    }
   ],
   "stateMutability": "view",
   "type": "function"
  },
  {
   "inputs": [
    {
     "internalType": "address",
     "name": "spender",
     "type": "address"
    },
    {
     "internalType": "uint256",
     "name": "value",
     "type": "uint256"
    }
   ],
   "name": "approve",
   "outputs": [
    {
     "internalType": "bool",
     "name": "",
     "type": "bool"
    }
   ],
   "stateMutability": "nonpayable",
   "type": "function"
  },
  {
   "inputs": [
    {
     "internalType": "address",
     "name": "account",
     "type": "address"
    }
   ],
   "name": "balanceOf",
   "outputs": [
    {
     "internalType": "uint256",
     "name": "",
     "type": "uint256"
    }
   ],
   "stateMutability": "view",
   "type": "function"
  },
  {
   "inputs": [
    {
     "internalType": "uint256",
     "name": "value",
     "type": "uint256"
    }
   ],
   "name": "burn",
   "outputs": [],
   "stateMutability": "nonpayable",
   "type": "function"
  },
  {
   "inputs": [
    {
     "internalType": "address",
     "name": "account",
     "type": "address"
    },
    {
     "internalType": "uint256",
     "name": "value",
     "type": "uint256"
    }
   ],
   "name": "burnFrom",
   "outputs": [],
   "stateMutability": "nonpayable",
   "type": "function"
  },
  {
   "inputs": [],
   "name": "decimals",
   "outputs": [
    {
     "internalType": "uint8",
     "name": "",
     "type": "uint8"
    }
   ],
   "stateMutability": "view",
   "type": "function"
  },
  {
   "inputs": [],
   "name": "name",
   "outputs": [
    {
     "internalType": "string",
     "name": "",
     "type": "string"
    }
   ],
   "stateMutability": "view",
   "type": "function"
  },
  {
   "inputs": [],
   "name": "owner",
   "outputs": [
    {
     "internalType": "address",
     "name": "",
     "type": "address"
    }
   ],
   "stateMutability": "view",
   "type": "function"
  },
  {
   "inputs": [],
   "name": "renounceOwnership",
   "outputs": [],
   "stateMutability": "nonpayable",
   "type": "function"
  },
  {
   "inputs": [],
   "name": "symbol",
   "outputs": [
    {
     "internalType": "string",
     "name": "",
     "type": "string"
    }
   ],
   "stateMutability": "view",
   "type": "function"
  },
  {
   "inputs": [],
   "name": "totalSupply",
   "outputs": [
    {
     "internalType": "uint256",
     "name": "",
     "type": "uint256"
    }
   ],
   "stateMutability": "view",
   "type": "function"
  },
  {
   "inputs": [
    {
     "internalType": "address",
     "name": "to",
     "type": "address"
    },
    {
     "internalType": "uint256",
     "name": "value",
     "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": "value",
     "type": "uint256"
    }
   ],
   "name": "transferFrom",
   "outputs": [
    {
     "internalType": "bool",
     "name": "",
     "type": "bool"
    }
   ],
   "stateMutability": "nonpayable",
   "type": "function"
  },
  {
   "inputs": [
    {
     "internalType": "address",
     "name": "newOwner",
     "type": "address"
    }
   ],
   "name": "transferOwnership",
   "outputs": [],
   "stateMutability": "nonpayable",
   "type": "function"
  }
 ],
 "provenance": "[ext-api] blockscout-verified source + ABI (api/v2 smart-contracts) as published by the deployer community; captured by the registry sweep"
}