@venusprotocol/venus-periphery 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (110) hide show
  1. package/LICENSE +11 -0
  2. package/README.md +131 -0
  3. package/artifacts/build-info/3cc16515983b4ebd468ee3d5a8f0ac53.json +1 -0
  4. package/artifacts/hardhat-deploy/solc_0.8/openzeppelin/access/Ownable.sol/Ownable.dbg.json +4 -0
  5. package/artifacts/hardhat-deploy/solc_0.8/openzeppelin/access/Ownable.sol/Ownable.json +63 -0
  6. package/artifacts/hardhat-deploy/solc_0.8/openzeppelin/interfaces/draft-IERC1822.sol/IERC1822Proxiable.dbg.json +4 -0
  7. package/artifacts/hardhat-deploy/solc_0.8/openzeppelin/interfaces/draft-IERC1822.sol/IERC1822Proxiable.json +24 -0
  8. package/artifacts/hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.dbg.json +4 -0
  9. package/artifacts/hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.json +80 -0
  10. package/artifacts/hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Upgrade.sol/ERC1967Upgrade.dbg.json +4 -0
  11. package/artifacts/hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Upgrade.sol/ERC1967Upgrade.json +56 -0
  12. package/artifacts/hardhat-deploy/solc_0.8/openzeppelin/proxy/Proxy.sol/Proxy.dbg.json +4 -0
  13. package/artifacts/hardhat-deploy/solc_0.8/openzeppelin/proxy/Proxy.sol/Proxy.json +19 -0
  14. package/artifacts/hardhat-deploy/solc_0.8/openzeppelin/proxy/beacon/IBeacon.sol/IBeacon.dbg.json +4 -0
  15. package/artifacts/hardhat-deploy/solc_0.8/openzeppelin/proxy/beacon/IBeacon.sol/IBeacon.json +24 -0
  16. package/artifacts/hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/ProxyAdmin.sol/ProxyAdmin.dbg.json +4 -0
  17. package/artifacts/hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/ProxyAdmin.sol/ProxyAdmin.json +171 -0
  18. package/artifacts/hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.dbg.json +4 -0
  19. package/artifacts/hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json +155 -0
  20. package/artifacts/hardhat-deploy/solc_0.8/openzeppelin/utils/Address.sol/Address.dbg.json +4 -0
  21. package/artifacts/hardhat-deploy/solc_0.8/openzeppelin/utils/Address.sol/Address.json +10 -0
  22. package/artifacts/hardhat-deploy/solc_0.8/openzeppelin/utils/Context.sol/Context.dbg.json +4 -0
  23. package/artifacts/hardhat-deploy/solc_0.8/openzeppelin/utils/Context.sol/Context.json +10 -0
  24. package/artifacts/hardhat-deploy/solc_0.8/openzeppelin/utils/StorageSlot.sol/StorageSlot.dbg.json +4 -0
  25. package/artifacts/hardhat-deploy/solc_0.8/openzeppelin/utils/StorageSlot.sol/StorageSlot.json +10 -0
  26. package/artifacts/hardhat-deploy/solc_0.8/proxy/OptimizedTransparentUpgradeableProxy.sol/OptimizedTransparentUpgradeableProxy.dbg.json +4 -0
  27. package/artifacts/hardhat-deploy/solc_0.8/proxy/OptimizedTransparentUpgradeableProxy.sol/OptimizedTransparentUpgradeableProxy.json +142 -0
  28. package/deployments/arbitrumone.json +5 -0
  29. package/deployments/arbitrumone_addresses.json +5 -0
  30. package/deployments/arbitrumsepolia.json +5 -0
  31. package/deployments/arbitrumsepolia_addresses.json +5 -0
  32. package/deployments/basemainnet.json +5 -0
  33. package/deployments/basemainnet_addresses.json +5 -0
  34. package/deployments/basesepolia.json +5 -0
  35. package/deployments/basesepolia_addresses.json +5 -0
  36. package/deployments/bscmainnet.json +5 -0
  37. package/deployments/bscmainnet_addresses.json +5 -0
  38. package/deployments/bsctestnet.json +5 -0
  39. package/deployments/bsctestnet_addresses.json +5 -0
  40. package/deployments/ethereum.json +5 -0
  41. package/deployments/ethereum_addresses.json +5 -0
  42. package/deployments/opbnbmainnet.json +5 -0
  43. package/deployments/opbnbmainnet_addresses.json +5 -0
  44. package/deployments/opbnbtestnet.json +5 -0
  45. package/deployments/opbnbtestnet_addresses.json +5 -0
  46. package/deployments/opmainnet.json +5 -0
  47. package/deployments/opmainnet_addresses.json +5 -0
  48. package/deployments/opsepolia.json +5 -0
  49. package/deployments/opsepolia_addresses.json +5 -0
  50. package/deployments/sepolia.json +5 -0
  51. package/deployments/sepolia_addresses.json +5 -0
  52. package/deployments/unichainmainnet.json +5 -0
  53. package/deployments/unichainmainnet_addresses.json +5 -0
  54. package/deployments/unichainsepolia.json +5 -0
  55. package/deployments/unichainsepolia_addresses.json +5 -0
  56. package/deployments/zksyncmainnet.json +5 -0
  57. package/deployments/zksyncmainnet_addresses.json +5 -0
  58. package/deployments/zksyncsepolia.json +5 -0
  59. package/deployments/zksyncsepolia_addresses.json +5 -0
  60. package/dist/hardhat.config.d.ts +15 -0
  61. package/dist/hardhat.config.js +407 -0
  62. package/dist/helpers/deploymentConfig.d.ts +112 -0
  63. package/dist/helpers/deploymentConfig.js +201 -0
  64. package/dist/helpers/deploymentUtils.d.ts +3 -0
  65. package/dist/helpers/deploymentUtils.js +21 -0
  66. package/dist/helpers/utils.d.ts +3 -0
  67. package/dist/helpers/utils.js +28 -0
  68. package/dist/type-extensions.d.ts +6 -0
  69. package/dist/type-extensions.js +3 -0
  70. package/dist/typechain/factories/ERC1967Proxy__factory.d.ts +45 -0
  71. package/dist/typechain/factories/ERC1967Proxy__factory.js +110 -0
  72. package/dist/typechain/factories/ERC1967Upgrade__factory.d.ts +18 -0
  73. package/dist/typechain/factories/ERC1967Upgrade__factory.js +64 -0
  74. package/dist/typechain/factories/IBeacon__factory.d.ts +18 -0
  75. package/dist/typechain/factories/IBeacon__factory.js +32 -0
  76. package/dist/typechain/factories/IERC1822Proxiable__factory.d.ts +18 -0
  77. package/dist/typechain/factories/IERC1822Proxiable__factory.js +32 -0
  78. package/dist/typechain/factories/OptimizedTransparentUpgradeableProxy__factory.d.ts +70 -0
  79. package/dist/typechain/factories/OptimizedTransparentUpgradeableProxy__factory.js +172 -0
  80. package/dist/typechain/factories/Ownable__factory.d.ts +42 -0
  81. package/dist/typechain/factories/Ownable__factory.js +71 -0
  82. package/dist/typechain/factories/ProxyAdmin__factory.d.ts +56 -0
  83. package/dist/typechain/factories/ProxyAdmin__factory.js +201 -0
  84. package/dist/typechain/factories/Proxy__factory.d.ts +11 -0
  85. package/dist/typechain/factories/Proxy__factory.js +27 -0
  86. package/dist/typechain/factories/TransparentUpgradeableProxy__factory.d.ts +70 -0
  87. package/dist/typechain/factories/TransparentUpgradeableProxy__factory.js +185 -0
  88. package/dist/typechain/index.d.ts +18 -0
  89. package/dist/typechain/index.js +21 -0
  90. package/package.json +128 -0
  91. package/typechain/ERC1967Proxy.d.ts +126 -0
  92. package/typechain/ERC1967Upgrade.d.ts +126 -0
  93. package/typechain/IBeacon.d.ts +101 -0
  94. package/typechain/IERC1822Proxiable.d.ts +101 -0
  95. package/typechain/OptimizedTransparentUpgradeableProxy.d.ts +248 -0
  96. package/typechain/Ownable.d.ts +181 -0
  97. package/typechain/Proxy.d.ts +78 -0
  98. package/typechain/ProxyAdmin.d.ts +357 -0
  99. package/typechain/TransparentUpgradeableProxy.d.ts +275 -0
  100. package/typechain/common.d.ts +35 -0
  101. package/typechain/factories/ERC1967Proxy__factory.ts +137 -0
  102. package/typechain/factories/ERC1967Upgrade__factory.ts +71 -0
  103. package/typechain/factories/IBeacon__factory.ts +36 -0
  104. package/typechain/factories/IERC1822Proxiable__factory.ts +39 -0
  105. package/typechain/factories/OptimizedTransparentUpgradeableProxy__factory.ts +213 -0
  106. package/typechain/factories/Ownable__factory.ts +75 -0
  107. package/typechain/factories/ProxyAdmin__factory.ts +215 -0
  108. package/typechain/factories/Proxy__factory.ts +28 -0
  109. package/typechain/factories/TransparentUpgradeableProxy__factory.ts +222 -0
  110. package/typechain/index.ts +22 -0
@@ -0,0 +1 @@
1
+ {"id":"3cc16515983b4ebd468ee3d5a8f0ac53","_format":"hh-sol-build-info-1","solcVersion":"0.8.25","solcLongVersion":"0.8.25+commit.b61c2a91","input":{"language":"Solidity","sources":{"contracts/hardhat-dependency-compiler/hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/ProxyAdmin.sol":{"content":"// SPDX-License-Identifier: UNLICENSED\npragma solidity >0.0.0;\nimport 'hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/ProxyAdmin.sol';\n"},"contracts/hardhat-dependency-compiler/hardhat-deploy/solc_0.8/proxy/OptimizedTransparentUpgradeableProxy.sol":{"content":"// SPDX-License-Identifier: UNLICENSED\npragma solidity >0.0.0;\nimport 'hardhat-deploy/solc_0.8/proxy/OptimizedTransparentUpgradeableProxy.sol';\n"},"hardhat-deploy/solc_0.8/openzeppelin/access/Ownable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (access/Ownable.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../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 * By default, the owner account will be the one that deploys the contract. This\n * can 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 event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\n\n /**\n * @dev Initializes the contract setting the deployer as the initial owner.\n */\n constructor (address initialOwner) {\n _transferOwnership(initialOwner);\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 called by any account other than the owner.\n */\n modifier onlyOwner() {\n require(owner() == _msgSender(), \"Ownable: caller is not the owner\");\n _;\n }\n\n /**\n * @dev Leaves the contract without owner. It will not be possible to call\n * `onlyOwner` functions anymore. Can only be called by the current owner.\n *\n * NOTE: Renouncing ownership will leave the contract without an owner,\n * thereby removing 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 require(newOwner != address(0), \"Ownable: new owner is the zero address\");\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"},"hardhat-deploy/solc_0.8/openzeppelin/interfaces/draft-IERC1822.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (interfaces/draft-IERC1822.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev ERC1822: Universal Upgradeable Proxy Standard (UUPS) documents a method for upgradeability through a simplified\n * proxy whose upgrades are fully controlled by the current implementation.\n */\ninterface IERC1822Proxiable {\n /**\n * @dev Returns the storage slot that the proxiable contract assumes is being used to store the implementation\n * address.\n *\n * IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks\n * bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this\n * function revert if invoked through a proxy.\n */\n function proxiableUUID() external view returns (bytes32);\n}\n"},"hardhat-deploy/solc_0.8/openzeppelin/proxy/beacon/IBeacon.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (proxy/beacon/IBeacon.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev This is the interface that {BeaconProxy} expects of its beacon.\n */\ninterface IBeacon {\n /**\n * @dev Must return an address that can be used as a delegate call target.\n *\n * {BeaconProxy} will check that this address is a contract.\n */\n function implementation() external view returns (address);\n}\n"},"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Proxy.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (proxy/ERC1967/ERC1967Proxy.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../Proxy.sol\";\nimport \"./ERC1967Upgrade.sol\";\n\n/**\n * @dev This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an\n * implementation address that can be changed. This address is stored in storage in the location specified by\n * https://eips.ethereum.org/EIPS/eip-1967[EIP1967], so that it doesn't conflict with the storage layout of the\n * implementation behind the proxy.\n */\ncontract ERC1967Proxy is Proxy, ERC1967Upgrade {\n /**\n * @dev Initializes the upgradeable proxy with an initial implementation specified by `_logic`.\n *\n * If `_data` is nonempty, it's used as data in a delegate call to `_logic`. This will typically be an encoded\n * function call, and allows initializating the storage of the proxy like a Solidity constructor.\n */\n constructor(address _logic, bytes memory _data) payable {\n assert(_IMPLEMENTATION_SLOT == bytes32(uint256(keccak256(\"eip1967.proxy.implementation\")) - 1));\n _upgradeToAndCall(_logic, _data, false);\n }\n\n /**\n * @dev Returns the current implementation address.\n */\n function _implementation() internal view virtual override returns (address impl) {\n return ERC1967Upgrade._getImplementation();\n }\n}\n"},"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Upgrade.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (proxy/ERC1967/ERC1967Upgrade.sol)\n\npragma solidity ^0.8.2;\n\nimport \"../beacon/IBeacon.sol\";\nimport \"../../interfaces/draft-IERC1822.sol\";\nimport \"../../utils/Address.sol\";\nimport \"../../utils/StorageSlot.sol\";\n\n/**\n * @dev This abstract contract provides getters and event emitting update functions for\n * https://eips.ethereum.org/EIPS/eip-1967[EIP1967] slots.\n *\n * _Available since v4.1._\n *\n * @custom:oz-upgrades-unsafe-allow delegatecall\n */\nabstract contract ERC1967Upgrade {\n // This is the keccak-256 hash of \"eip1967.proxy.rollback\" subtracted by 1\n bytes32 private constant _ROLLBACK_SLOT = 0x4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143;\n\n /**\n * @dev Storage slot with the address of the current implementation.\n * This is the keccak-256 hash of \"eip1967.proxy.implementation\" subtracted by 1, and is\n * validated in the constructor.\n */\n bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\n\n /**\n * @dev Emitted when the implementation is upgraded.\n */\n event Upgraded(address indexed implementation);\n\n /**\n * @dev Returns the current implementation address.\n */\n function _getImplementation() internal view returns (address) {\n return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\n }\n\n /**\n * @dev Stores a new address in the EIP1967 implementation slot.\n */\n function _setImplementation(address newImplementation) private {\n require(Address.isContract(newImplementation), \"ERC1967: new implementation is not a contract\");\n StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\n }\n\n /**\n * @dev Perform implementation upgrade\n *\n * Emits an {Upgraded} event.\n */\n function _upgradeTo(address newImplementation) internal {\n _setImplementation(newImplementation);\n emit Upgraded(newImplementation);\n }\n\n /**\n * @dev Perform implementation upgrade with additional setup call.\n *\n * Emits an {Upgraded} event.\n */\n function _upgradeToAndCall(\n address newImplementation,\n bytes memory data,\n bool forceCall\n ) internal {\n _upgradeTo(newImplementation);\n if (data.length > 0 || forceCall) {\n Address.functionDelegateCall(newImplementation, data);\n }\n }\n\n /**\n * @dev Perform implementation upgrade with security checks for UUPS proxies, and additional setup call.\n *\n * Emits an {Upgraded} event.\n */\n function _upgradeToAndCallUUPS(\n address newImplementation,\n bytes memory data,\n bool forceCall\n ) internal {\n // Upgrades from old implementations will perform a rollback test. This test requires the new\n // implementation to upgrade back to the old, non-ERC1822 compliant, implementation. Removing\n // this special case will break upgrade paths from old UUPS implementation to new ones.\n if (StorageSlot.getBooleanSlot(_ROLLBACK_SLOT).value) {\n _setImplementation(newImplementation);\n } else {\n try IERC1822Proxiable(newImplementation).proxiableUUID() returns (bytes32 slot) {\n require(slot == _IMPLEMENTATION_SLOT, \"ERC1967Upgrade: unsupported proxiableUUID\");\n } catch {\n revert(\"ERC1967Upgrade: new implementation is not UUPS\");\n }\n _upgradeToAndCall(newImplementation, data, forceCall);\n }\n }\n\n /**\n * @dev Storage slot with the admin of the contract.\n * This is the keccak-256 hash of \"eip1967.proxy.admin\" subtracted by 1, and is\n * validated in the constructor.\n */\n bytes32 internal constant _ADMIN_SLOT = 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103;\n\n /**\n * @dev Emitted when the admin account has changed.\n */\n event AdminChanged(address previousAdmin, address newAdmin);\n\n /**\n * @dev Returns the current admin.\n */\n function _getAdmin() internal view virtual returns (address) {\n return StorageSlot.getAddressSlot(_ADMIN_SLOT).value;\n }\n\n /**\n * @dev Stores a new address in the EIP1967 admin slot.\n */\n function _setAdmin(address newAdmin) private {\n require(newAdmin != address(0), \"ERC1967: new admin is the zero address\");\n StorageSlot.getAddressSlot(_ADMIN_SLOT).value = newAdmin;\n }\n\n /**\n * @dev Changes the admin of the proxy.\n *\n * Emits an {AdminChanged} event.\n */\n function _changeAdmin(address newAdmin) internal {\n emit AdminChanged(_getAdmin(), newAdmin);\n _setAdmin(newAdmin);\n }\n\n /**\n * @dev The storage slot of the UpgradeableBeacon contract which defines the implementation for this proxy.\n * This is bytes32(uint256(keccak256('eip1967.proxy.beacon')) - 1)) and is validated in the constructor.\n */\n bytes32 internal constant _BEACON_SLOT = 0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50;\n\n /**\n * @dev Emitted when the beacon is upgraded.\n */\n event BeaconUpgraded(address indexed beacon);\n\n /**\n * @dev Returns the current beacon.\n */\n function _getBeacon() internal view returns (address) {\n return StorageSlot.getAddressSlot(_BEACON_SLOT).value;\n }\n\n /**\n * @dev Stores a new beacon in the EIP1967 beacon slot.\n */\n function _setBeacon(address newBeacon) private {\n require(Address.isContract(newBeacon), \"ERC1967: new beacon is not a contract\");\n require(Address.isContract(IBeacon(newBeacon).implementation()), \"ERC1967: beacon implementation is not a contract\");\n StorageSlot.getAddressSlot(_BEACON_SLOT).value = newBeacon;\n }\n\n /**\n * @dev Perform beacon upgrade with additional setup call. Note: This upgrades the address of the beacon, it does\n * not upgrade the implementation contained in the beacon (see {UpgradeableBeacon-_setImplementation} for that).\n *\n * Emits a {BeaconUpgraded} event.\n */\n function _upgradeBeaconToAndCall(\n address newBeacon,\n bytes memory data,\n bool forceCall\n ) internal {\n _setBeacon(newBeacon);\n emit BeaconUpgraded(newBeacon);\n if (data.length > 0 || forceCall) {\n Address.functionDelegateCall(IBeacon(newBeacon).implementation(), data);\n }\n }\n}\n"},"hardhat-deploy/solc_0.8/openzeppelin/proxy/Proxy.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (proxy/Proxy.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev This abstract contract provides a fallback function that delegates all calls to another contract using the EVM\n * instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to\n * be specified by overriding the virtual {_implementation} function.\n *\n * Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a\n * different contract through the {_delegate} function.\n *\n * The success and return data of the delegated call will be returned back to the caller of the proxy.\n */\nabstract contract Proxy {\n /**\n * @dev Delegates the current call to `implementation`.\n *\n * This function does not return to its internal call site, it will return directly to the external caller.\n */\n function _delegate(address implementation) internal virtual {\n assembly {\n // Copy msg.data. We take full control of memory in this inline assembly\n // block because it will not return to Solidity code. We overwrite the\n // Solidity scratch pad at memory position 0.\n calldatacopy(0, 0, calldatasize())\n\n // Call the implementation.\n // out and outsize are 0 because we don't know the size yet.\n let result := delegatecall(gas(), implementation, 0, calldatasize(), 0, 0)\n\n // Copy the returned data.\n returndatacopy(0, 0, returndatasize())\n\n switch result\n // delegatecall returns 0 on error.\n case 0 {\n revert(0, returndatasize())\n }\n default {\n return(0, returndatasize())\n }\n }\n }\n\n /**\n * @dev This is a virtual function that should be overriden so it returns the address to which the fallback function\n * and {_fallback} should delegate.\n */\n function _implementation() internal view virtual returns (address);\n\n /**\n * @dev Delegates the current call to the address returned by `_implementation()`.\n *\n * This function does not return to its internall call site, it will return directly to the external caller.\n */\n function _fallback() internal virtual {\n _beforeFallback();\n _delegate(_implementation());\n }\n\n /**\n * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if no other\n * function in the contract matches the call data.\n */\n fallback() external payable virtual {\n _fallback();\n }\n\n /**\n * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if call data\n * is empty.\n */\n receive() external payable virtual {\n _fallback();\n }\n\n /**\n * @dev Hook that is called before falling back to the implementation. Can happen as part of a manual `_fallback`\n * call, or as part of the Solidity `fallback` or `receive` functions.\n *\n * If overriden should call `super._beforeFallback()`.\n */\n function _beforeFallback() internal virtual {}\n}\n"},"hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/ProxyAdmin.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (proxy/transparent/ProxyAdmin.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./TransparentUpgradeableProxy.sol\";\nimport \"../../access/Ownable.sol\";\n\n/**\n * @dev This is an auxiliary contract meant to be assigned as the admin of a {TransparentUpgradeableProxy}. For an\n * explanation of why you would want to use this see the documentation for {TransparentUpgradeableProxy}.\n */\ncontract ProxyAdmin is Ownable {\n\n constructor (address initialOwner) Ownable(initialOwner) {}\n\n /**\n * @dev Returns the current implementation of `proxy`.\n *\n * Requirements:\n *\n * - This contract must be the admin of `proxy`.\n */\n function getProxyImplementation(TransparentUpgradeableProxy proxy) public view virtual returns (address) {\n // We need to manually run the static call since the getter cannot be flagged as view\n // bytes4(keccak256(\"implementation()\")) == 0x5c60da1b\n (bool success, bytes memory returndata) = address(proxy).staticcall(hex\"5c60da1b\");\n require(success);\n return abi.decode(returndata, (address));\n }\n\n /**\n * @dev Returns the current admin of `proxy`.\n *\n * Requirements:\n *\n * - This contract must be the admin of `proxy`.\n */\n function getProxyAdmin(TransparentUpgradeableProxy proxy) public view virtual returns (address) {\n // We need to manually run the static call since the getter cannot be flagged as view\n // bytes4(keccak256(\"admin()\")) == 0xf851a440\n (bool success, bytes memory returndata) = address(proxy).staticcall(hex\"f851a440\");\n require(success);\n return abi.decode(returndata, (address));\n }\n\n /**\n * @dev Changes the admin of `proxy` to `newAdmin`.\n *\n * Requirements:\n *\n * - This contract must be the current admin of `proxy`.\n */\n function changeProxyAdmin(TransparentUpgradeableProxy proxy, address newAdmin) public virtual onlyOwner {\n proxy.changeAdmin(newAdmin);\n }\n\n /**\n * @dev Upgrades `proxy` to `implementation`. See {TransparentUpgradeableProxy-upgradeTo}.\n *\n * Requirements:\n *\n * - This contract must be the admin of `proxy`.\n */\n function upgrade(TransparentUpgradeableProxy proxy, address implementation) public virtual onlyOwner {\n proxy.upgradeTo(implementation);\n }\n\n /**\n * @dev Upgrades `proxy` to `implementation` and calls a function on the new implementation. See\n * {TransparentUpgradeableProxy-upgradeToAndCall}.\n *\n * Requirements:\n *\n * - This contract must be the admin of `proxy`.\n */\n function upgradeAndCall(\n TransparentUpgradeableProxy proxy,\n address implementation,\n bytes memory data\n ) public payable virtual onlyOwner {\n proxy.upgradeToAndCall{value: msg.value}(implementation, data);\n }\n}\n"},"hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/TransparentUpgradeableProxy.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (proxy/transparent/TransparentUpgradeableProxy.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../ERC1967/ERC1967Proxy.sol\";\n\n/**\n * @dev This contract implements a proxy that is upgradeable by an admin.\n *\n * To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector\n * clashing], which can potentially be used in an attack, this contract uses the\n * https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two\n * things that go hand in hand:\n *\n * 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if\n * that call matches one of the admin functions exposed by the proxy itself.\n * 2. If the admin calls the proxy, it can access the admin functions, but its calls will never be forwarded to the\n * implementation. If the admin tries to call a function on the implementation it will fail with an error that says\n * \"admin cannot fallback to proxy target\".\n *\n * These properties mean that the admin account can only be used for admin actions like upgrading the proxy or changing\n * the admin, so it's best if it's a dedicated account that is not used for anything else. This will avoid headaches due\n * to sudden errors when trying to call a function from the proxy implementation.\n *\n * Our recommendation is for the dedicated account to be an instance of the {ProxyAdmin} contract. If set up this way,\n * you should think of the `ProxyAdmin` instance as the real administrative interface of your proxy.\n */\ncontract TransparentUpgradeableProxy is ERC1967Proxy {\n /**\n * @dev Initializes an upgradeable proxy managed by `_admin`, backed by the implementation at `_logic`, and\n * optionally initialized with `_data` as explained in {ERC1967Proxy-constructor}.\n */\n constructor(\n address _logic,\n address admin_,\n bytes memory _data\n ) payable ERC1967Proxy(_logic, _data) {\n assert(_ADMIN_SLOT == bytes32(uint256(keccak256(\"eip1967.proxy.admin\")) - 1));\n _changeAdmin(admin_);\n }\n\n /**\n * @dev Modifier used internally that will delegate the call to the implementation unless the sender is the admin.\n */\n modifier ifAdmin() {\n if (msg.sender == _getAdmin()) {\n _;\n } else {\n _fallback();\n }\n }\n\n /**\n * @dev Returns the current admin.\n *\n * NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyAdmin}.\n *\n * TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the\n * https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\n * `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103`\n */\n function admin() external ifAdmin returns (address admin_) {\n admin_ = _getAdmin();\n }\n\n /**\n * @dev Returns the current implementation.\n *\n * NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyImplementation}.\n *\n * TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the\n * https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\n * `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc`\n */\n function implementation() external ifAdmin returns (address implementation_) {\n implementation_ = _implementation();\n }\n\n /**\n * @dev Changes the admin of the proxy.\n *\n * Emits an {AdminChanged} event.\n *\n * NOTE: Only the admin can call this function. See {ProxyAdmin-changeProxyAdmin}.\n */\n function changeAdmin(address newAdmin) external virtual ifAdmin {\n _changeAdmin(newAdmin);\n }\n\n /**\n * @dev Upgrade the implementation of the proxy.\n *\n * NOTE: Only the admin can call this function. See {ProxyAdmin-upgrade}.\n */\n function upgradeTo(address newImplementation) external ifAdmin {\n _upgradeToAndCall(newImplementation, bytes(\"\"), false);\n }\n\n /**\n * @dev Upgrade the implementation of the proxy, and then call a function from the new implementation as specified\n * by `data`, which should be an encoded function call. This is useful to initialize new storage variables in the\n * proxied contract.\n *\n * NOTE: Only the admin can call this function. See {ProxyAdmin-upgradeAndCall}.\n */\n function upgradeToAndCall(address newImplementation, bytes calldata data) external payable ifAdmin {\n _upgradeToAndCall(newImplementation, data, true);\n }\n\n /**\n * @dev Returns the current admin.\n */\n function _admin() internal view virtual returns (address) {\n return _getAdmin();\n }\n\n /**\n * @dev Makes sure the admin cannot access the fallback function. See {Proxy-_beforeFallback}.\n */\n function _beforeFallback() internal virtual override {\n require(msg.sender != _getAdmin(), \"TransparentUpgradeableProxy: admin cannot fallback to proxy target\");\n super._beforeFallback();\n }\n}\n"},"hardhat-deploy/solc_0.8/openzeppelin/utils/Address.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (utils/Address.sol)\n\npragma solidity ^0.8.1;\n\n/**\n * @dev Collection of functions related to the address type\n */\nlibrary Address {\n /**\n * @dev Returns true if `account` is a contract.\n *\n * [IMPORTANT]\n * ====\n * It is unsafe to assume that an address for which this function returns\n * false is an externally-owned account (EOA) and not a contract.\n *\n * Among others, `isContract` will return false for the following\n * types of addresses:\n *\n * - an externally-owned account\n * - a contract in construction\n * - an address where a contract will be created\n * - an address where a contract lived, but was destroyed\n * ====\n *\n * [IMPORTANT]\n * ====\n * You shouldn't rely on `isContract` to protect against flash loan attacks!\n *\n * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\n * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\n * constructor.\n * ====\n */\n function isContract(address account) internal view returns (bool) {\n // This method relies on extcodesize/address.code.length, which returns 0\n // for contracts in construction, since the code is only stored at the end\n // of the constructor execution.\n\n return account.code.length > 0;\n }\n\n /**\n * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n * `recipient`, forwarding all available gas and reverting on errors.\n *\n * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n * of certain opcodes, possibly making contracts go over the 2300 gas limit\n * imposed by `transfer`, making them unable to receive funds via\n * `transfer`. {sendValue} removes this limitation.\n *\n * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n *\n * IMPORTANT: because control is transferred to `recipient`, care must be\n * taken to not create reentrancy vulnerabilities. Consider using\n * {ReentrancyGuard} or the\n * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\n */\n function sendValue(address payable recipient, uint256 amount) internal {\n require(address(this).balance >= amount, \"Address: insufficient balance\");\n\n (bool success, ) = recipient.call{value: amount}(\"\");\n require(success, \"Address: unable to send value, recipient may have reverted\");\n }\n\n /**\n * @dev Performs a Solidity function call using a low level `call`. A\n * plain `call` is an unsafe replacement for a function call: use this\n * function instead.\n *\n * If `target` reverts with a revert reason, it is bubbled up by this\n * function (like regular Solidity function calls).\n *\n * Returns the raw returned data. To convert to the expected return value,\n * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n *\n * Requirements:\n *\n * - `target` must be a contract.\n * - calling `target` with `data` must not revert.\n *\n * _Available since v3.1._\n */\n function functionCall(address target, bytes memory data) internal returns (bytes memory) {\n return functionCall(target, data, \"Address: low-level call failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n * `errorMessage` as a fallback revert reason when `target` reverts.\n *\n * _Available since v3.1._\n */\n function functionCall(\n address target,\n bytes memory data,\n string memory errorMessage\n ) internal returns (bytes memory) {\n return functionCallWithValue(target, data, 0, errorMessage);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but also transferring `value` wei to `target`.\n *\n * Requirements:\n *\n * - the calling contract must have an ETH balance of at least `value`.\n * - the called Solidity function must be `payable`.\n *\n * _Available since v3.1._\n */\n function functionCallWithValue(\n address target,\n bytes memory data,\n uint256 value\n ) internal returns (bytes memory) {\n return functionCallWithValue(target, data, value, \"Address: low-level call with value failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n * with `errorMessage` as a fallback revert reason when `target` reverts.\n *\n * _Available since v3.1._\n */\n function functionCallWithValue(\n address target,\n bytes memory data,\n uint256 value,\n string memory errorMessage\n ) internal returns (bytes memory) {\n require(address(this).balance >= value, \"Address: insufficient balance for call\");\n require(isContract(target), \"Address: call to non-contract\");\n\n (bool success, bytes memory returndata) = target.call{value: value}(data);\n return verifyCallResult(success, returndata, errorMessage);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but performing a static call.\n *\n * _Available since v3.3._\n */\n function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\n return functionStaticCall(target, data, \"Address: low-level static call failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n * but performing a static call.\n *\n * _Available since v3.3._\n */\n function functionStaticCall(\n address target,\n bytes memory data,\n string memory errorMessage\n ) internal view returns (bytes memory) {\n require(isContract(target), \"Address: static call to non-contract\");\n\n (bool success, bytes memory returndata) = target.staticcall(data);\n return verifyCallResult(success, returndata, errorMessage);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but performing a delegate call.\n *\n * _Available since v3.4._\n */\n function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\n return functionDelegateCall(target, data, \"Address: low-level delegate call failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n * but performing a delegate call.\n *\n * _Available since v3.4._\n */\n function functionDelegateCall(\n address target,\n bytes memory data,\n string memory errorMessage\n ) internal returns (bytes memory) {\n require(isContract(target), \"Address: delegate call to non-contract\");\n\n (bool success, bytes memory returndata) = target.delegatecall(data);\n return verifyCallResult(success, returndata, errorMessage);\n }\n\n /**\n * @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the\n * revert reason using the provided one.\n *\n * _Available since v4.3._\n */\n function verifyCallResult(\n bool success,\n bytes memory returndata,\n string memory errorMessage\n ) internal pure returns (bytes memory) {\n if (success) {\n return returndata;\n } else {\n // Look for revert reason and bubble it up if present\n if (returndata.length > 0) {\n // The easiest way to bubble the revert reason is using memory via assembly\n\n assembly {\n let returndata_size := mload(returndata)\n revert(add(32, returndata), returndata_size)\n }\n } else {\n revert(errorMessage);\n }\n }\n }\n}\n"},"hardhat-deploy/solc_0.8/openzeppelin/utils/Context.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\n\npragma solidity ^0.8.0;\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"},"hardhat-deploy/solc_0.8/openzeppelin/utils/StorageSlot.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (utils/StorageSlot.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Library for reading and writing primitive types to specific storage slots.\n *\n * Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts.\n * This library helps with reading and writing to such slots without the need for inline assembly.\n *\n * The functions in this library return Slot structs that contain a `value` member that can be used to read or write.\n *\n * Example usage to set ERC1967 implementation slot:\n * ```\n * contract ERC1967 {\n * bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\n *\n * function _getImplementation() internal view returns (address) {\n * return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\n * }\n *\n * function _setImplementation(address newImplementation) internal {\n * require(Address.isContract(newImplementation), \"ERC1967: new implementation is not a contract\");\n * StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\n * }\n * }\n * ```\n *\n * _Available since v4.1 for `address`, `bool`, `bytes32`, and `uint256`._\n */\nlibrary StorageSlot {\n struct AddressSlot {\n address value;\n }\n\n struct BooleanSlot {\n bool value;\n }\n\n struct Bytes32Slot {\n bytes32 value;\n }\n\n struct Uint256Slot {\n uint256 value;\n }\n\n /**\n * @dev Returns an `AddressSlot` with member `value` located at `slot`.\n */\n function getAddressSlot(bytes32 slot) internal pure returns (AddressSlot storage r) {\n assembly {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns an `BooleanSlot` with member `value` located at `slot`.\n */\n function getBooleanSlot(bytes32 slot) internal pure returns (BooleanSlot storage r) {\n assembly {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns an `Bytes32Slot` with member `value` located at `slot`.\n */\n function getBytes32Slot(bytes32 slot) internal pure returns (Bytes32Slot storage r) {\n assembly {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns an `Uint256Slot` with member `value` located at `slot`.\n */\n function getUint256Slot(bytes32 slot) internal pure returns (Uint256Slot storage r) {\n assembly {\n r.slot := slot\n }\n }\n}\n"},"hardhat-deploy/solc_0.8/proxy/OptimizedTransparentUpgradeableProxy.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (proxy/transparent/TransparentUpgradeableProxy.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../openzeppelin/proxy/ERC1967/ERC1967Proxy.sol\";\n\n/**\n * @dev This contract implements a proxy that is upgradeable by an admin.\n *\n * To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector\n * clashing], which can potentially be used in an attack, this contract uses the\n * https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two\n * things that go hand in hand:\n *\n * 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if\n * that call matches one of the admin functions exposed by the proxy itself.\n * 2. If the admin calls the proxy, it can access the admin functions, but its calls will never be forwarded to the\n * implementation. If the admin tries to call a function on the implementation it will fail with an error that says\n * \"admin cannot fallback to proxy target\".\n *\n * These properties mean that the admin account can only be used for admin actions like upgrading the proxy or changing\n * the admin, so it's best if it's a dedicated account that is not used for anything else. This will avoid headaches due\n * to sudden errors when trying to call a function from the proxy implementation.\n *\n * Our recommendation is for the dedicated account to be an instance of the {ProxyAdmin} contract. If set up this way,\n * you should think of the `ProxyAdmin` instance as the real administrative interface of your proxy.\n */\ncontract OptimizedTransparentUpgradeableProxy is ERC1967Proxy {\n address internal immutable _ADMIN;\n\n /**\n * @dev Initializes an upgradeable proxy managed by `_admin`, backed by the implementation at `_logic`, and\n * optionally initialized with `_data` as explained in {ERC1967Proxy-constructor}.\n */\n constructor(\n address _logic,\n address admin_,\n bytes memory _data\n ) payable ERC1967Proxy(_logic, _data) {\n assert(_ADMIN_SLOT == bytes32(uint256(keccak256(\"eip1967.proxy.admin\")) - 1));\n _ADMIN = admin_;\n\n // still store it to work with EIP-1967\n bytes32 slot = _ADMIN_SLOT;\n // solhint-disable-next-line no-inline-assembly\n assembly {\n sstore(slot, admin_)\n }\n emit AdminChanged(address(0), admin_);\n }\n\n /**\n * @dev Modifier used internally that will delegate the call to the implementation unless the sender is the admin.\n */\n modifier ifAdmin() {\n if (msg.sender == _getAdmin()) {\n _;\n } else {\n _fallback();\n }\n }\n\n /**\n * @dev Returns the current admin.\n *\n * NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyAdmin}.\n *\n * TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the\n * https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\n * `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103`\n */\n function admin() external ifAdmin returns (address admin_) {\n admin_ = _getAdmin();\n }\n\n /**\n * @dev Returns the current implementation.\n *\n * NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyImplementation}.\n *\n * TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the\n * https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\n * `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc`\n */\n function implementation() external ifAdmin returns (address implementation_) {\n implementation_ = _implementation();\n }\n\n /**\n * @dev Upgrade the implementation of the proxy.\n *\n * NOTE: Only the admin can call this function. See {ProxyAdmin-upgrade}.\n */\n function upgradeTo(address newImplementation) external ifAdmin {\n _upgradeToAndCall(newImplementation, bytes(\"\"), false);\n }\n\n /**\n * @dev Upgrade the implementation of the proxy, and then call a function from the new implementation as specified\n * by `data`, which should be an encoded function call. This is useful to initialize new storage variables in the\n * proxied contract.\n *\n * NOTE: Only the admin can call this function. See {ProxyAdmin-upgradeAndCall}.\n */\n function upgradeToAndCall(address newImplementation, bytes calldata data) external payable ifAdmin {\n _upgradeToAndCall(newImplementation, data, true);\n }\n\n /**\n * @dev Returns the current admin.\n */\n function _admin() internal view virtual returns (address) {\n return _getAdmin();\n }\n\n /**\n * @dev Makes sure the admin cannot access the fallback function. See {Proxy-_beforeFallback}.\n */\n function _beforeFallback() internal virtual override {\n require(msg.sender != _getAdmin(), \"TransparentUpgradeableProxy: admin cannot fallback to proxy target\");\n super._beforeFallback();\n }\n\n function _getAdmin() internal view virtual override returns (address) {\n return _ADMIN;\n }\n}\n"}},"settings":{"optimizer":{"enabled":true,"runs":200,"details":{"yul":false}},"evmVersion":"cancun","outputSelection":{"*":{"*":["storageLayout","abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata","devdoc","userdoc","evm.gasEstimates"],"":["ast"]}},"metadata":{"useLiteralContent":true}}},"output":{"sources":{"contracts/hardhat-dependency-compiler/hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/ProxyAdmin.sol":{"ast":{"absolutePath":"contracts/hardhat-dependency-compiler/hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/ProxyAdmin.sol","exportedSymbols":{"Address":[1158],"Context":[1180],"ERC1967Proxy":[174],"ERC1967Upgrade":[492],"IBeacon":[554],"IERC1822Proxiable":[121],"Ownable":[111],"Proxy":[544],"ProxyAdmin":[699],"StorageSlot":[1240],"TransparentUpgradeableProxy":[863]},"id":3,"license":"UNLICENSED","nodeType":"SourceUnit","nodes":[{"id":1,"literals":["solidity",">","0.0",".0"],"nodeType":"PragmaDirective","src":"39:23:0"},{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/ProxyAdmin.sol","file":"hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/ProxyAdmin.sol","id":2,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3,"sourceUnit":700,"src":"63:79:0","symbolAliases":[],"unitAlias":""}],"src":"39:104:0"},"id":0},"contracts/hardhat-dependency-compiler/hardhat-deploy/solc_0.8/proxy/OptimizedTransparentUpgradeableProxy.sol":{"ast":{"absolutePath":"contracts/hardhat-dependency-compiler/hardhat-deploy/solc_0.8/proxy/OptimizedTransparentUpgradeableProxy.sol","exportedSymbols":{"Address":[1158],"ERC1967Proxy":[174],"ERC1967Upgrade":[492],"IBeacon":[554],"IERC1822Proxiable":[121],"OptimizedTransparentUpgradeableProxy":[1415],"Proxy":[544],"StorageSlot":[1240]},"id":6,"license":"UNLICENSED","nodeType":"SourceUnit","nodes":[{"id":4,"literals":["solidity",">","0.0",".0"],"nodeType":"PragmaDirective","src":"39:23:1"},{"absolutePath":"hardhat-deploy/solc_0.8/proxy/OptimizedTransparentUpgradeableProxy.sol","file":"hardhat-deploy/solc_0.8/proxy/OptimizedTransparentUpgradeableProxy.sol","id":5,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6,"sourceUnit":1416,"src":"63:80:1","symbolAliases":[],"unitAlias":""}],"src":"39:105:1"},"id":1},"hardhat-deploy/solc_0.8/openzeppelin/access/Ownable.sol":{"ast":{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/access/Ownable.sol","exportedSymbols":{"Context":[1180],"Ownable":[111]},"id":112,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":7,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"87:23:2"},{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/utils/Context.sol","file":"../utils/Context.sol","id":8,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":112,"sourceUnit":1181,"src":"112:30:2","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":10,"name":"Context","nameLocations":["668:7:2"],"nodeType":"IdentifierPath","referencedDeclaration":1180,"src":"668:7:2"},"id":11,"nodeType":"InheritanceSpecifier","src":"668:7:2"}],"canonicalName":"Ownable","contractDependencies":[],"contractKind":"contract","documentation":{"id":9,"nodeType":"StructuredDocumentation","src":"144:494:2","text":" @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 By default, the owner account will be the one that deploys the contract. This\n can later be changed with {transferOwnership}.\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."},"fullyImplemented":true,"id":111,"linearizedBaseContracts":[111,1180],"name":"Ownable","nameLocation":"657:7:2","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":13,"mutability":"mutable","name":"_owner","nameLocation":"698:6:2","nodeType":"VariableDeclaration","scope":111,"src":"682:22:2","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12,"name":"address","nodeType":"ElementaryTypeName","src":"682:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"anonymous":false,"eventSelector":"8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","id":19,"name":"OwnershipTransferred","nameLocation":"717:20:2","nodeType":"EventDefinition","parameters":{"id":18,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15,"indexed":true,"mutability":"mutable","name":"previousOwner","nameLocation":"754:13:2","nodeType":"VariableDeclaration","scope":19,"src":"738:29:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14,"name":"address","nodeType":"ElementaryTypeName","src":"738:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17,"indexed":true,"mutability":"mutable","name":"newOwner","nameLocation":"785:8:2","nodeType":"VariableDeclaration","scope":19,"src":"769:24:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16,"name":"address","nodeType":"ElementaryTypeName","src":"769:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"737:57:2"},"src":"711:84:2"},{"body":{"id":29,"nodeType":"Block","src":"932:49:2","statements":[{"expression":{"arguments":[{"id":26,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22,"src":"961:12:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":25,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110,"src":"942:18:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":27,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"942:32:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28,"nodeType":"ExpressionStatement","src":"942:32:2"}]},"documentation":{"id":20,"nodeType":"StructuredDocumentation","src":"801:91:2","text":" @dev Initializes the contract setting the deployer as the initial owner."},"id":30,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":23,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22,"mutability":"mutable","name":"initialOwner","nameLocation":"918:12:2","nodeType":"VariableDeclaration","scope":30,"src":"910:20:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21,"name":"address","nodeType":"ElementaryTypeName","src":"910:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"909:22:2"},"returnParameters":{"id":24,"nodeType":"ParameterList","parameters":[],"src":"932:0:2"},"scope":111,"src":"897:84:2","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":38,"nodeType":"Block","src":"1112:30:2","statements":[{"expression":{"id":36,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13,"src":"1129:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":35,"id":37,"nodeType":"Return","src":"1122:13:2"}]},"documentation":{"id":31,"nodeType":"StructuredDocumentation","src":"987:65:2","text":" @dev Returns the address of the current owner."},"functionSelector":"8da5cb5b","id":39,"implemented":true,"kind":"function","modifiers":[],"name":"owner","nameLocation":"1066:5:2","nodeType":"FunctionDefinition","parameters":{"id":32,"nodeType":"ParameterList","parameters":[],"src":"1071:2:2"},"returnParameters":{"id":35,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":39,"src":"1103:7:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33,"name":"address","nodeType":"ElementaryTypeName","src":"1103:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1102:9:2"},"scope":111,"src":"1057:85:2","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":52,"nodeType":"Block","src":"1251:96:2","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":47,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":43,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39,"src":"1269:5:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":44,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1269:7:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":45,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1170,"src":"1280:10:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":46,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1280:12:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1269:23:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","id":48,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1294:34:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","typeString":"literal_string \"Ownable: caller is not the owner\""},"value":"Ownable: caller is not the owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","typeString":"literal_string \"Ownable: caller is not the owner\""}],"id":42,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1261:7:2","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":49,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1261:68:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50,"nodeType":"ExpressionStatement","src":"1261:68:2"},{"id":51,"nodeType":"PlaceholderStatement","src":"1339:1:2"}]},"documentation":{"id":40,"nodeType":"StructuredDocumentation","src":"1148:77:2","text":" @dev Throws if called by any account other than the owner."},"id":53,"name":"onlyOwner","nameLocation":"1239:9:2","nodeType":"ModifierDefinition","parameters":{"id":41,"nodeType":"ParameterList","parameters":[],"src":"1248:2:2"},"src":"1230:117:2","virtual":false,"visibility":"internal"},{"body":{"id":66,"nodeType":"Block","src":"1743:47:2","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":62,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1780:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":61,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1772:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":60,"name":"address","nodeType":"ElementaryTypeName","src":"1772:7:2","typeDescriptions":{}}},"id":63,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1772:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":59,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110,"src":"1753:18:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":64,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1753:30:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65,"nodeType":"ExpressionStatement","src":"1753:30:2"}]},"documentation":{"id":54,"nodeType":"StructuredDocumentation","src":"1353:331:2","text":" @dev Leaves the contract without owner. It will not be possible to call\n `onlyOwner` functions anymore. Can only be called by the current owner.\n NOTE: Renouncing ownership will leave the contract without an owner,\n thereby removing any functionality that is only available to the owner."},"functionSelector":"715018a6","id":67,"implemented":true,"kind":"function","modifiers":[{"id":57,"kind":"modifierInvocation","modifierName":{"id":56,"name":"onlyOwner","nameLocations":["1733:9:2"],"nodeType":"IdentifierPath","referencedDeclaration":53,"src":"1733:9:2"},"nodeType":"ModifierInvocation","src":"1733:9:2"}],"name":"renounceOwnership","nameLocation":"1698:17:2","nodeType":"FunctionDefinition","parameters":{"id":55,"nodeType":"ParameterList","parameters":[],"src":"1715:2:2"},"returnParameters":{"id":58,"nodeType":"ParameterList","parameters":[],"src":"1743:0:2"},"scope":111,"src":"1689:101:2","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":89,"nodeType":"Block","src":"2009:128:2","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":81,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70,"src":"2027:8:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":79,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2047:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":78,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2039:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77,"name":"address","nodeType":"ElementaryTypeName","src":"2039:7:2","typeDescriptions":{}}},"id":80,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2039:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2027:22:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373","id":82,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2051:40:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe","typeString":"literal_string \"Ownable: new owner is the zero address\""},"value":"Ownable: new owner is the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe","typeString":"literal_string \"Ownable: new owner is the zero address\""}],"id":75,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2019:7:2","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":83,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2019:73:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84,"nodeType":"ExpressionStatement","src":"2019:73:2"},{"expression":{"arguments":[{"id":86,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70,"src":"2121:8:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":85,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":110,"src":"2102:18:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":87,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2102:28:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":88,"nodeType":"ExpressionStatement","src":"2102:28:2"}]},"documentation":{"id":68,"nodeType":"StructuredDocumentation","src":"1796:138:2","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner."},"functionSelector":"f2fde38b","id":90,"implemented":true,"kind":"function","modifiers":[{"id":73,"kind":"modifierInvocation","modifierName":{"id":72,"name":"onlyOwner","nameLocations":["1999:9:2"],"nodeType":"IdentifierPath","referencedDeclaration":53,"src":"1999:9:2"},"nodeType":"ModifierInvocation","src":"1999:9:2"}],"name":"transferOwnership","nameLocation":"1948:17:2","nodeType":"FunctionDefinition","parameters":{"id":71,"nodeType":"ParameterList","parameters":[{"constant":false,"id":70,"mutability":"mutable","name":"newOwner","nameLocation":"1974:8:2","nodeType":"VariableDeclaration","scope":90,"src":"1966:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":69,"name":"address","nodeType":"ElementaryTypeName","src":"1966:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1965:18:2"},"returnParameters":{"id":74,"nodeType":"ParameterList","parameters":[],"src":"2009:0:2"},"scope":111,"src":"1939:198:2","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":109,"nodeType":"Block","src":"2354:124:2","statements":[{"assignments":[97],"declarations":[{"constant":false,"id":97,"mutability":"mutable","name":"oldOwner","nameLocation":"2372:8:2","nodeType":"VariableDeclaration","scope":109,"src":"2364:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":96,"name":"address","nodeType":"ElementaryTypeName","src":"2364:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":99,"initialValue":{"id":98,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13,"src":"2383:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2364:25:2"},{"expression":{"id":102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":100,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13,"src":"2399:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":101,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93,"src":"2408:8:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2399:17:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":103,"nodeType":"ExpressionStatement","src":"2399:17:2"},{"eventCall":{"arguments":[{"id":105,"name":"oldOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97,"src":"2452:8:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":106,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93,"src":"2462:8:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":104,"name":"OwnershipTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19,"src":"2431:20:2","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2431:40:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":108,"nodeType":"EmitStatement","src":"2426:45:2"}]},"documentation":{"id":91,"nodeType":"StructuredDocumentation","src":"2143:143:2","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Internal function without access restriction."},"id":110,"implemented":true,"kind":"function","modifiers":[],"name":"_transferOwnership","nameLocation":"2300:18:2","nodeType":"FunctionDefinition","parameters":{"id":94,"nodeType":"ParameterList","parameters":[{"constant":false,"id":93,"mutability":"mutable","name":"newOwner","nameLocation":"2327:8:2","nodeType":"VariableDeclaration","scope":110,"src":"2319:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":92,"name":"address","nodeType":"ElementaryTypeName","src":"2319:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2318:18:2"},"returnParameters":{"id":95,"nodeType":"ParameterList","parameters":[],"src":"2354:0:2"},"scope":111,"src":"2291:187:2","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":112,"src":"639:1841:2","usedErrors":[],"usedEvents":[19]}],"src":"87:2394:2"},"id":2},"hardhat-deploy/solc_0.8/openzeppelin/interfaces/draft-IERC1822.sol":{"ast":{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/interfaces/draft-IERC1822.sol","exportedSymbols":{"IERC1822Proxiable":[121]},"id":122,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":113,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"118:23:3"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC1822Proxiable","contractDependencies":[],"contractKind":"interface","documentation":{"id":114,"nodeType":"StructuredDocumentation","src":"143:203:3","text":" @dev ERC1822: Universal Upgradeable Proxy Standard (UUPS) documents a method for upgradeability through a simplified\n proxy whose upgrades are fully controlled by the current implementation."},"fullyImplemented":false,"id":121,"linearizedBaseContracts":[121],"name":"IERC1822Proxiable","nameLocation":"357:17:3","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":115,"nodeType":"StructuredDocumentation","src":"381:438:3","text":" @dev Returns the storage slot that the proxiable contract assumes is being used to store the implementation\n address.\n IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks\n bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this\n function revert if invoked through a proxy."},"functionSelector":"52d1902d","id":120,"implemented":false,"kind":"function","modifiers":[],"name":"proxiableUUID","nameLocation":"833:13:3","nodeType":"FunctionDefinition","parameters":{"id":116,"nodeType":"ParameterList","parameters":[],"src":"846:2:3"},"returnParameters":{"id":119,"nodeType":"ParameterList","parameters":[{"constant":false,"id":118,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":120,"src":"872:7:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":117,"name":"bytes32","nodeType":"ElementaryTypeName","src":"872:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"871:9:3"},"scope":121,"src":"824:57:3","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":122,"src":"347:536:3","usedErrors":[],"usedEvents":[]}],"src":"118:766:3"},"id":3},"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Proxy.sol":{"ast":{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Proxy.sol","exportedSymbols":{"Address":[1158],"ERC1967Proxy":[174],"ERC1967Upgrade":[492],"IBeacon":[554],"IERC1822Proxiable":[121],"Proxy":[544],"StorageSlot":[1240]},"id":175,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":123,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"99:23:4"},{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/proxy/Proxy.sol","file":"../Proxy.sol","id":124,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":175,"sourceUnit":545,"src":"124:22:4","symbolAliases":[],"unitAlias":""},{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Upgrade.sol","file":"./ERC1967Upgrade.sol","id":125,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":175,"sourceUnit":493,"src":"147:30:4","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":127,"name":"Proxy","nameLocations":["577:5:4"],"nodeType":"IdentifierPath","referencedDeclaration":544,"src":"577:5:4"},"id":128,"nodeType":"InheritanceSpecifier","src":"577:5:4"},{"baseName":{"id":129,"name":"ERC1967Upgrade","nameLocations":["584:14:4"],"nodeType":"IdentifierPath","referencedDeclaration":492,"src":"584:14:4"},"id":130,"nodeType":"InheritanceSpecifier","src":"584:14:4"}],"canonicalName":"ERC1967Proxy","contractDependencies":[],"contractKind":"contract","documentation":{"id":126,"nodeType":"StructuredDocumentation","src":"179:372:4","text":" @dev This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an\n implementation address that can be changed. This address is stored in storage in the location specified by\n https://eips.ethereum.org/EIPS/eip-1967[EIP1967], so that it doesn't conflict with the storage layout of the\n implementation behind the proxy."},"fullyImplemented":true,"id":174,"linearizedBaseContracts":[174,492,544],"name":"ERC1967Proxy","nameLocation":"561:12:4","nodeType":"ContractDefinition","nodes":[{"body":{"id":160,"nodeType":"Block","src":"1001:161:4","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":151,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":139,"name":"_IMPLEMENTATION_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":188,"src":"1018:20:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":149,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"hexValue":"656970313936372e70726f78792e696d706c656d656e746174696f6e","id":145,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1068:30:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd","typeString":"literal_string \"eip1967.proxy.implementation\""},"value":"eip1967.proxy.implementation"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd","typeString":"literal_string \"eip1967.proxy.implementation\""}],"id":144,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1058:9:4","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":146,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1058:41:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":143,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1050:7:4","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":142,"name":"uint256","nodeType":"ElementaryTypeName","src":"1050:7:4","typeDescriptions":{}}},"id":147,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1050:50:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":148,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1103:1:4","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1050:54:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":141,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1042:7:4","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":140,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1042:7:4","typeDescriptions":{}}},"id":150,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1042:63:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1018:87:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":138,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"1011:6:4","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":152,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1011:95:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":153,"nodeType":"ExpressionStatement","src":"1011:95:4"},{"expression":{"arguments":[{"id":155,"name":"_logic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133,"src":"1134:6:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":156,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":135,"src":"1142:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"66616c7365","id":157,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1149:5:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":154,"name":"_upgradeToAndCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":275,"src":"1116:17:4","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_bool_$returns$__$","typeString":"function (address,bytes memory,bool)"}},"id":158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1116:39:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":159,"nodeType":"ExpressionStatement","src":"1116:39:4"}]},"documentation":{"id":131,"nodeType":"StructuredDocumentation","src":"605:335:4","text":" @dev Initializes the upgradeable proxy with an initial implementation specified by `_logic`.\n If `_data` is nonempty, it's used as data in a delegate call to `_logic`. This will typically be an encoded\n function call, and allows initializating the storage of the proxy like a Solidity constructor."},"id":161,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":136,"nodeType":"ParameterList","parameters":[{"constant":false,"id":133,"mutability":"mutable","name":"_logic","nameLocation":"965:6:4","nodeType":"VariableDeclaration","scope":161,"src":"957:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":132,"name":"address","nodeType":"ElementaryTypeName","src":"957:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":135,"mutability":"mutable","name":"_data","nameLocation":"986:5:4","nodeType":"VariableDeclaration","scope":161,"src":"973:18:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":134,"name":"bytes","nodeType":"ElementaryTypeName","src":"973:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"956:36:4"},"returnParameters":{"id":137,"nodeType":"ParameterList","parameters":[],"src":"1001:0:4"},"scope":174,"src":"945:217:4","stateMutability":"payable","virtual":false,"visibility":"public"},{"baseFunctions":[509],"body":{"id":172,"nodeType":"Block","src":"1321:59:4","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":168,"name":"ERC1967Upgrade","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":492,"src":"1338:14:4","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC1967Upgrade_$492_$","typeString":"type(contract ERC1967Upgrade)"}},"id":169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1353:18:4","memberName":"_getImplementation","nodeType":"MemberAccess","referencedDeclaration":206,"src":"1338:33:4","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":170,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1338:35:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":167,"id":171,"nodeType":"Return","src":"1331:42:4"}]},"documentation":{"id":162,"nodeType":"StructuredDocumentation","src":"1168:67:4","text":" @dev Returns the current implementation address."},"id":173,"implemented":true,"kind":"function","modifiers":[],"name":"_implementation","nameLocation":"1249:15:4","nodeType":"FunctionDefinition","overrides":{"id":164,"nodeType":"OverrideSpecifier","overrides":[],"src":"1289:8:4"},"parameters":{"id":163,"nodeType":"ParameterList","parameters":[],"src":"1264:2:4"},"returnParameters":{"id":167,"nodeType":"ParameterList","parameters":[{"constant":false,"id":166,"mutability":"mutable","name":"impl","nameLocation":"1315:4:4","nodeType":"VariableDeclaration","scope":173,"src":"1307:12:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":165,"name":"address","nodeType":"ElementaryTypeName","src":"1307:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1306:14:4"},"scope":174,"src":"1240:140:4","stateMutability":"view","virtual":true,"visibility":"internal"}],"scope":175,"src":"552:830:4","usedErrors":[],"usedEvents":[193,339,404]}],"src":"99:1284:4"},"id":4},"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Upgrade.sol":{"ast":{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Upgrade.sol","exportedSymbols":{"Address":[1158],"ERC1967Upgrade":[492],"IBeacon":[554],"IERC1822Proxiable":[121],"StorageSlot":[1240]},"id":493,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":176,"literals":["solidity","^","0.8",".2"],"nodeType":"PragmaDirective","src":"121:23:5"},{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/proxy/beacon/IBeacon.sol","file":"../beacon/IBeacon.sol","id":177,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":493,"sourceUnit":555,"src":"146:31:5","symbolAliases":[],"unitAlias":""},{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/interfaces/draft-IERC1822.sol","file":"../../interfaces/draft-IERC1822.sol","id":178,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":493,"sourceUnit":122,"src":"178:45:5","symbolAliases":[],"unitAlias":""},{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/utils/Address.sol","file":"../../utils/Address.sol","id":179,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":493,"sourceUnit":1159,"src":"224:33:5","symbolAliases":[],"unitAlias":""},{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/utils/StorageSlot.sol","file":"../../utils/StorageSlot.sol","id":180,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":493,"sourceUnit":1241,"src":"258:37:5","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[],"canonicalName":"ERC1967Upgrade","contractDependencies":[],"contractKind":"contract","documentation":{"id":181,"nodeType":"StructuredDocumentation","src":"297:236:5","text":" @dev This abstract contract provides getters and event emitting update functions for\n https://eips.ethereum.org/EIPS/eip-1967[EIP1967] slots.\n _Available since v4.1._\n @custom:oz-upgrades-unsafe-allow delegatecall"},"fullyImplemented":true,"id":492,"linearizedBaseContracts":[492],"name":"ERC1967Upgrade","nameLocation":"552:14:5","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":184,"mutability":"constant","name":"_ROLLBACK_SLOT","nameLocation":"677:14:5","nodeType":"VariableDeclaration","scope":492,"src":"652:108:5","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":182,"name":"bytes32","nodeType":"ElementaryTypeName","src":"652:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307834393130666466613136666564333236306564306537313437663763633664613131613630323038623562393430366431326136333536313466666439313433","id":183,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"694:66:5","typeDescriptions":{"typeIdentifier":"t_rational_33048860383849004559742813297059419343339852917517107368639918720169455489347_by_1","typeString":"int_const 3304...(69 digits omitted)...9347"},"value":"0x4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143"},"visibility":"private"},{"constant":true,"documentation":{"id":185,"nodeType":"StructuredDocumentation","src":"767:214:5","text":" @dev Storage slot with the address of the current implementation.\n This is the keccak-256 hash of \"eip1967.proxy.implementation\" subtracted by 1, and is\n validated in the constructor."},"id":188,"mutability":"constant","name":"_IMPLEMENTATION_SLOT","nameLocation":"1012:20:5","nodeType":"VariableDeclaration","scope":492,"src":"986:115:5","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":186,"name":"bytes32","nodeType":"ElementaryTypeName","src":"986:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307833363038393461313362613161333231303636376338323834393264623938646361336532303736636333373335613932306133636135303564333832626263","id":187,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1035:66:5","typeDescriptions":{"typeIdentifier":"t_rational_24440054405305269366569402256811496959409073762505157381672968839269610695612_by_1","typeString":"int_const 2444...(69 digits omitted)...5612"},"value":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"},"visibility":"internal"},{"anonymous":false,"documentation":{"id":189,"nodeType":"StructuredDocumentation","src":"1108:68:5","text":" @dev Emitted when the implementation is upgraded."},"eventSelector":"bc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","id":193,"name":"Upgraded","nameLocation":"1187:8:5","nodeType":"EventDefinition","parameters":{"id":192,"nodeType":"ParameterList","parameters":[{"constant":false,"id":191,"indexed":true,"mutability":"mutable","name":"implementation","nameLocation":"1212:14:5","nodeType":"VariableDeclaration","scope":193,"src":"1196:30:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":190,"name":"address","nodeType":"ElementaryTypeName","src":"1196:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1195:32:5"},"src":"1181:47:5"},{"body":{"id":205,"nodeType":"Block","src":"1368:78:5","statements":[{"expression":{"expression":{"arguments":[{"id":201,"name":"_IMPLEMENTATION_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":188,"src":"1412:20:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":199,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1240,"src":"1385:11:5","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$1240_$","typeString":"type(library StorageSlot)"}},"id":200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1397:14:5","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":1206,"src":"1385:26:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$1186_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1385:48:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$1186_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":203,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1434:5:5","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":1185,"src":"1385:54:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":198,"id":204,"nodeType":"Return","src":"1378:61:5"}]},"documentation":{"id":194,"nodeType":"StructuredDocumentation","src":"1234:67:5","text":" @dev Returns the current implementation address."},"id":206,"implemented":true,"kind":"function","modifiers":[],"name":"_getImplementation","nameLocation":"1315:18:5","nodeType":"FunctionDefinition","parameters":{"id":195,"nodeType":"ParameterList","parameters":[],"src":"1333:2:5"},"returnParameters":{"id":198,"nodeType":"ParameterList","parameters":[{"constant":false,"id":197,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":206,"src":"1359:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":196,"name":"address","nodeType":"ElementaryTypeName","src":"1359:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1358:9:5"},"scope":492,"src":"1306:140:5","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":229,"nodeType":"Block","src":"1600:196:5","statements":[{"expression":{"arguments":[{"arguments":[{"id":215,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":209,"src":"1637:17:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":213,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1158,"src":"1618:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$1158_$","typeString":"type(library Address)"}},"id":214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1626:10:5","memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":881,"src":"1618:18:5","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":216,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1618:37:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"455243313936373a206e657720696d706c656d656e746174696f6e206973206e6f74206120636f6e7472616374","id":217,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1657:47:5","typeDescriptions":{"typeIdentifier":"t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65","typeString":"literal_string \"ERC1967: new implementation is not a contract\""},"value":"ERC1967: new implementation is not a contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65","typeString":"literal_string \"ERC1967: new implementation is not a contract\""}],"id":212,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1610:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":218,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1610:95:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":219,"nodeType":"ExpressionStatement","src":"1610:95:5"},{"expression":{"id":227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":223,"name":"_IMPLEMENTATION_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":188,"src":"1742:20:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":220,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1240,"src":"1715:11:5","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$1240_$","typeString":"type(library StorageSlot)"}},"id":222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1727:14:5","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":1206,"src":"1715:26:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$1186_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1715:48:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$1186_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":225,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1764:5:5","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":1185,"src":"1715:54:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":226,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":209,"src":"1772:17:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1715:74:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":228,"nodeType":"ExpressionStatement","src":"1715:74:5"}]},"documentation":{"id":207,"nodeType":"StructuredDocumentation","src":"1452:80:5","text":" @dev Stores a new address in the EIP1967 implementation slot."},"id":230,"implemented":true,"kind":"function","modifiers":[],"name":"_setImplementation","nameLocation":"1546:18:5","nodeType":"FunctionDefinition","parameters":{"id":210,"nodeType":"ParameterList","parameters":[{"constant":false,"id":209,"mutability":"mutable","name":"newImplementation","nameLocation":"1573:17:5","nodeType":"VariableDeclaration","scope":230,"src":"1565:25:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":208,"name":"address","nodeType":"ElementaryTypeName","src":"1565:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1564:27:5"},"returnParameters":{"id":211,"nodeType":"ParameterList","parameters":[],"src":"1600:0:5"},"scope":492,"src":"1537:259:5","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":244,"nodeType":"Block","src":"1958:96:5","statements":[{"expression":{"arguments":[{"id":237,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":233,"src":"1987:17:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":236,"name":"_setImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":230,"src":"1968:18:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1968:37:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":239,"nodeType":"ExpressionStatement","src":"1968:37:5"},{"eventCall":{"arguments":[{"id":241,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":233,"src":"2029:17:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":240,"name":"Upgraded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":193,"src":"2020:8:5","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":242,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2020:27:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":243,"nodeType":"EmitStatement","src":"2015:32:5"}]},"documentation":{"id":231,"nodeType":"StructuredDocumentation","src":"1802:95:5","text":" @dev Perform implementation upgrade\n Emits an {Upgraded} event."},"id":245,"implemented":true,"kind":"function","modifiers":[],"name":"_upgradeTo","nameLocation":"1911:10:5","nodeType":"FunctionDefinition","parameters":{"id":234,"nodeType":"ParameterList","parameters":[{"constant":false,"id":233,"mutability":"mutable","name":"newImplementation","nameLocation":"1930:17:5","nodeType":"VariableDeclaration","scope":245,"src":"1922:25:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":232,"name":"address","nodeType":"ElementaryTypeName","src":"1922:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1921:27:5"},"returnParameters":{"id":235,"nodeType":"ParameterList","parameters":[],"src":"1958:0:5"},"scope":492,"src":"1902:152:5","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":274,"nodeType":"Block","src":"2316:167:5","statements":[{"expression":{"arguments":[{"id":256,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":248,"src":"2337:17:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":255,"name":"_upgradeTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":245,"src":"2326:10:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":257,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2326:29:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":258,"nodeType":"ExpressionStatement","src":"2326:29:5"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":259,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":250,"src":"2369:4:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":260,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2374:6:5","memberName":"length","nodeType":"MemberAccess","src":"2369:11:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":261,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2383:1:5","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2369:15:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"id":263,"name":"forceCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":252,"src":"2388:9:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2369:28:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":273,"nodeType":"IfStatement","src":"2365:112:5","trueBody":{"id":272,"nodeType":"Block","src":"2399:78:5","statements":[{"expression":{"arguments":[{"id":268,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":248,"src":"2442:17:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":269,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":250,"src":"2461:4:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":265,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1158,"src":"2413:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$1158_$","typeString":"type(library Address)"}},"id":267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2421:20:5","memberName":"functionDelegateCall","nodeType":"MemberAccess","referencedDeclaration":1091,"src":"2413:28:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory) returns (bytes memory)"}},"id":270,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2413:53:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":271,"nodeType":"ExpressionStatement","src":"2413:53:5"}]}}]},"documentation":{"id":246,"nodeType":"StructuredDocumentation","src":"2060:123:5","text":" @dev Perform implementation upgrade with additional setup call.\n Emits an {Upgraded} event."},"id":275,"implemented":true,"kind":"function","modifiers":[],"name":"_upgradeToAndCall","nameLocation":"2197:17:5","nodeType":"FunctionDefinition","parameters":{"id":253,"nodeType":"ParameterList","parameters":[{"constant":false,"id":248,"mutability":"mutable","name":"newImplementation","nameLocation":"2232:17:5","nodeType":"VariableDeclaration","scope":275,"src":"2224:25:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":247,"name":"address","nodeType":"ElementaryTypeName","src":"2224:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":250,"mutability":"mutable","name":"data","nameLocation":"2272:4:5","nodeType":"VariableDeclaration","scope":275,"src":"2259:17:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":249,"name":"bytes","nodeType":"ElementaryTypeName","src":"2259:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":252,"mutability":"mutable","name":"forceCall","nameLocation":"2291:9:5","nodeType":"VariableDeclaration","scope":275,"src":"2286:14:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":251,"name":"bool","nodeType":"ElementaryTypeName","src":"2286:4:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2214:92:5"},"returnParameters":{"id":254,"nodeType":"ParameterList","parameters":[],"src":"2316:0:5"},"scope":492,"src":"2188:295:5","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":327,"nodeType":"Block","src":"2787:820:5","statements":[{"condition":{"expression":{"arguments":[{"id":287,"name":"_ROLLBACK_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":184,"src":"3128:14:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":285,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1240,"src":"3101:11:5","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$1240_$","typeString":"type(library StorageSlot)"}},"id":286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3113:14:5","memberName":"getBooleanSlot","nodeType":"MemberAccess","referencedDeclaration":1217,"src":"3101:26:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_BooleanSlot_$1189_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.BooleanSlot storage pointer)"}},"id":288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3101:42:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_BooleanSlot_$1189_storage_ptr","typeString":"struct StorageSlot.BooleanSlot storage pointer"}},"id":289,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3144:5:5","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":1188,"src":"3101:48:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":325,"nodeType":"Block","src":"3219:382:5","statements":[{"clauses":[{"block":{"id":310,"nodeType":"Block","src":"3313:115:5","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":304,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":301,"src":"3339:4:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":305,"name":"_IMPLEMENTATION_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":188,"src":"3347:20:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3339:28:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524331393637557067726164653a20756e737570706f727465642070726f786961626c6555554944","id":307,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3369:43:5","typeDescriptions":{"typeIdentifier":"t_stringliteral_76b6b6debfc5febf101145a79ecf0b0d2e89e397dfdab2bca99888370411152c","typeString":"literal_string \"ERC1967Upgrade: unsupported proxiableUUID\""},"value":"ERC1967Upgrade: unsupported proxiableUUID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_76b6b6debfc5febf101145a79ecf0b0d2e89e397dfdab2bca99888370411152c","typeString":"literal_string \"ERC1967Upgrade: unsupported proxiableUUID\""}],"id":303,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3331:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":308,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3331:82:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":309,"nodeType":"ExpressionStatement","src":"3331:82:5"}]},"errorName":"","id":311,"nodeType":"TryCatchClause","parameters":{"id":302,"nodeType":"ParameterList","parameters":[{"constant":false,"id":301,"mutability":"mutable","name":"slot","nameLocation":"3307:4:5","nodeType":"VariableDeclaration","scope":311,"src":"3299:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":300,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3299:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3298:14:5"},"src":"3290:138:5"},{"block":{"id":316,"nodeType":"Block","src":"3435:89:5","statements":[{"expression":{"arguments":[{"hexValue":"45524331393637557067726164653a206e657720696d706c656d656e746174696f6e206973206e6f742055555053","id":313,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3460:48:5","typeDescriptions":{"typeIdentifier":"t_stringliteral_8e8e2fbcb586f700b5b14e2c4a650c8d83b9773c31c5fe8962070ea544e11f24","typeString":"literal_string \"ERC1967Upgrade: new implementation is not UUPS\""},"value":"ERC1967Upgrade: new implementation is not UUPS"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8e8e2fbcb586f700b5b14e2c4a650c8d83b9773c31c5fe8962070ea544e11f24","typeString":"literal_string \"ERC1967Upgrade: new implementation is not UUPS\""}],"id":312,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3453:6:5","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":314,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3453:56:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":315,"nodeType":"ExpressionStatement","src":"3453:56:5"}]},"errorName":"","id":317,"nodeType":"TryCatchClause","src":"3429:95:5"}],"externalCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":296,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":278,"src":"3255:17:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":295,"name":"IERC1822Proxiable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121,"src":"3237:17:5","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1822Proxiable_$121_$","typeString":"type(contract IERC1822Proxiable)"}},"id":297,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3237:36:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC1822Proxiable_$121","typeString":"contract IERC1822Proxiable"}},"id":298,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3274:13:5","memberName":"proxiableUUID","nodeType":"MemberAccess","referencedDeclaration":120,"src":"3237:50:5","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bytes32_$","typeString":"function () view external returns (bytes32)"}},"id":299,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3237:52:5","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":318,"nodeType":"TryStatement","src":"3233:291:5"},{"expression":{"arguments":[{"id":320,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":278,"src":"3555:17:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":321,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":280,"src":"3574:4:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":322,"name":"forceCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":282,"src":"3580:9:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":319,"name":"_upgradeToAndCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":275,"src":"3537:17:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_bool_$returns$__$","typeString":"function (address,bytes memory,bool)"}},"id":323,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3537:53:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":324,"nodeType":"ExpressionStatement","src":"3537:53:5"}]},"id":326,"nodeType":"IfStatement","src":"3097:504:5","trueBody":{"id":294,"nodeType":"Block","src":"3151:62:5","statements":[{"expression":{"arguments":[{"id":291,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":278,"src":"3184:17:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":290,"name":"_setImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":230,"src":"3165:18:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":292,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3165:37:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":293,"nodeType":"ExpressionStatement","src":"3165:37:5"}]}}]},"documentation":{"id":276,"nodeType":"StructuredDocumentation","src":"2489:161:5","text":" @dev Perform implementation upgrade with security checks for UUPS proxies, and additional setup call.\n Emits an {Upgraded} event."},"id":328,"implemented":true,"kind":"function","modifiers":[],"name":"_upgradeToAndCallUUPS","nameLocation":"2664:21:5","nodeType":"FunctionDefinition","parameters":{"id":283,"nodeType":"ParameterList","parameters":[{"constant":false,"id":278,"mutability":"mutable","name":"newImplementation","nameLocation":"2703:17:5","nodeType":"VariableDeclaration","scope":328,"src":"2695:25:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":277,"name":"address","nodeType":"ElementaryTypeName","src":"2695:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":280,"mutability":"mutable","name":"data","nameLocation":"2743:4:5","nodeType":"VariableDeclaration","scope":328,"src":"2730:17:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":279,"name":"bytes","nodeType":"ElementaryTypeName","src":"2730:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":282,"mutability":"mutable","name":"forceCall","nameLocation":"2762:9:5","nodeType":"VariableDeclaration","scope":328,"src":"2757:14:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":281,"name":"bool","nodeType":"ElementaryTypeName","src":"2757:4:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2685:92:5"},"returnParameters":{"id":284,"nodeType":"ParameterList","parameters":[],"src":"2787:0:5"},"scope":492,"src":"2655:952:5","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"constant":true,"documentation":{"id":329,"nodeType":"StructuredDocumentation","src":"3613:189:5","text":" @dev Storage slot with the admin of the contract.\n This is the keccak-256 hash of \"eip1967.proxy.admin\" subtracted by 1, and is\n validated in the constructor."},"id":332,"mutability":"constant","name":"_ADMIN_SLOT","nameLocation":"3833:11:5","nodeType":"VariableDeclaration","scope":492,"src":"3807:106:5","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":330,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3807:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307862353331323736383461353638623331373361653133623966386136303136653234336536336236653865653131373864366137313738353062356436313033","id":331,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3847:66:5","typeDescriptions":{"typeIdentifier":"t_rational_81955473079516046949633743016697847541294818689821282749996681496272635257091_by_1","typeString":"int_const 8195...(69 digits omitted)...7091"},"value":"0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103"},"visibility":"internal"},{"anonymous":false,"documentation":{"id":333,"nodeType":"StructuredDocumentation","src":"3920:67:5","text":" @dev Emitted when the admin account has changed."},"eventSelector":"7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f","id":339,"name":"AdminChanged","nameLocation":"3998:12:5","nodeType":"EventDefinition","parameters":{"id":338,"nodeType":"ParameterList","parameters":[{"constant":false,"id":335,"indexed":false,"mutability":"mutable","name":"previousAdmin","nameLocation":"4019:13:5","nodeType":"VariableDeclaration","scope":339,"src":"4011:21:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":334,"name":"address","nodeType":"ElementaryTypeName","src":"4011:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":337,"indexed":false,"mutability":"mutable","name":"newAdmin","nameLocation":"4042:8:5","nodeType":"VariableDeclaration","scope":339,"src":"4034:16:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":336,"name":"address","nodeType":"ElementaryTypeName","src":"4034:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4010:41:5"},"src":"3992:60:5"},{"body":{"id":351,"nodeType":"Block","src":"4174:69:5","statements":[{"expression":{"expression":{"arguments":[{"id":347,"name":"_ADMIN_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":332,"src":"4218:11:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":345,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1240,"src":"4191:11:5","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$1240_$","typeString":"type(library StorageSlot)"}},"id":346,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4203:14:5","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":1206,"src":"4191:26:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$1186_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":348,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4191:39:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$1186_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":349,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4231:5:5","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":1185,"src":"4191:45:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":344,"id":350,"nodeType":"Return","src":"4184:52:5"}]},"documentation":{"id":340,"nodeType":"StructuredDocumentation","src":"4058:50:5","text":" @dev Returns the current admin."},"id":352,"implemented":true,"kind":"function","modifiers":[],"name":"_getAdmin","nameLocation":"4122:9:5","nodeType":"FunctionDefinition","parameters":{"id":341,"nodeType":"ParameterList","parameters":[],"src":"4131:2:5"},"returnParameters":{"id":344,"nodeType":"ParameterList","parameters":[{"constant":false,"id":343,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":352,"src":"4165:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":342,"name":"address","nodeType":"ElementaryTypeName","src":"4165:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4164:9:5"},"scope":492,"src":"4113:130:5","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":377,"nodeType":"Block","src":"4370:156:5","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":359,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":355,"src":"4388:8:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":362,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4408:1:5","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":361,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4400:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":360,"name":"address","nodeType":"ElementaryTypeName","src":"4400:7:5","typeDescriptions":{}}},"id":363,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4400:10:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4388:22:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"455243313936373a206e65772061646d696e20697320746865207a65726f2061646472657373","id":365,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4412:40:5","typeDescriptions":{"typeIdentifier":"t_stringliteral_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5","typeString":"literal_string \"ERC1967: new admin is the zero address\""},"value":"ERC1967: new admin is the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5","typeString":"literal_string \"ERC1967: new admin is the zero address\""}],"id":358,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4380:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":366,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4380:73:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":367,"nodeType":"ExpressionStatement","src":"4380:73:5"},{"expression":{"id":375,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":371,"name":"_ADMIN_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":332,"src":"4490:11:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":368,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1240,"src":"4463:11:5","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$1240_$","typeString":"type(library StorageSlot)"}},"id":370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4475:14:5","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":1206,"src":"4463:26:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$1186_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4463:39:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$1186_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":373,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4503:5:5","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":1185,"src":"4463:45:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":374,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":355,"src":"4511:8:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4463:56:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":376,"nodeType":"ExpressionStatement","src":"4463:56:5"}]},"documentation":{"id":353,"nodeType":"StructuredDocumentation","src":"4249:71:5","text":" @dev Stores a new address in the EIP1967 admin slot."},"id":378,"implemented":true,"kind":"function","modifiers":[],"name":"_setAdmin","nameLocation":"4334:9:5","nodeType":"FunctionDefinition","parameters":{"id":356,"nodeType":"ParameterList","parameters":[{"constant":false,"id":355,"mutability":"mutable","name":"newAdmin","nameLocation":"4352:8:5","nodeType":"VariableDeclaration","scope":378,"src":"4344:16:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":354,"name":"address","nodeType":"ElementaryTypeName","src":"4344:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4343:18:5"},"returnParameters":{"id":357,"nodeType":"ParameterList","parameters":[],"src":"4370:0:5"},"scope":492,"src":"4325:201:5","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":394,"nodeType":"Block","src":"4686:86:5","statements":[{"eventCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":385,"name":"_getAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":352,"src":"4714:9:5","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":386,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4714:11:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":387,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":381,"src":"4727:8:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":384,"name":"AdminChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":339,"src":"4701:12:5","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":388,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4701:35:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":389,"nodeType":"EmitStatement","src":"4696:40:5"},{"expression":{"arguments":[{"id":391,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":381,"src":"4756:8:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":390,"name":"_setAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":378,"src":"4746:9:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":392,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4746:19:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":393,"nodeType":"ExpressionStatement","src":"4746:19:5"}]},"documentation":{"id":379,"nodeType":"StructuredDocumentation","src":"4532:100:5","text":" @dev Changes the admin of the proxy.\n Emits an {AdminChanged} event."},"id":395,"implemented":true,"kind":"function","modifiers":[],"name":"_changeAdmin","nameLocation":"4646:12:5","nodeType":"FunctionDefinition","parameters":{"id":382,"nodeType":"ParameterList","parameters":[{"constant":false,"id":381,"mutability":"mutable","name":"newAdmin","nameLocation":"4667:8:5","nodeType":"VariableDeclaration","scope":395,"src":"4659:16:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":380,"name":"address","nodeType":"ElementaryTypeName","src":"4659:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4658:18:5"},"returnParameters":{"id":383,"nodeType":"ParameterList","parameters":[],"src":"4686:0:5"},"scope":492,"src":"4637:135:5","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"constant":true,"documentation":{"id":396,"nodeType":"StructuredDocumentation","src":"4778:232:5","text":" @dev The storage slot of the UpgradeableBeacon contract which defines the implementation for this proxy.\n This is bytes32(uint256(keccak256('eip1967.proxy.beacon')) - 1)) and is validated in the constructor."},"id":399,"mutability":"constant","name":"_BEACON_SLOT","nameLocation":"5041:12:5","nodeType":"VariableDeclaration","scope":492,"src":"5015:107:5","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":397,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5015:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307861336630616437346535343233616562666438306433656634333436353738333335613961373261656165653539666636636233353832623335313333643530","id":398,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5056:66:5","typeDescriptions":{"typeIdentifier":"t_rational_74152234768234802001998023604048924213078445070507226371336425913862612794704_by_1","typeString":"int_const 7415...(69 digits omitted)...4704"},"value":"0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50"},"visibility":"internal"},{"anonymous":false,"documentation":{"id":400,"nodeType":"StructuredDocumentation","src":"5129:60:5","text":" @dev Emitted when the beacon is upgraded."},"eventSelector":"1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e","id":404,"name":"BeaconUpgraded","nameLocation":"5200:14:5","nodeType":"EventDefinition","parameters":{"id":403,"nodeType":"ParameterList","parameters":[{"constant":false,"id":402,"indexed":true,"mutability":"mutable","name":"beacon","nameLocation":"5231:6:5","nodeType":"VariableDeclaration","scope":404,"src":"5215:22:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":401,"name":"address","nodeType":"ElementaryTypeName","src":"5215:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5214:24:5"},"src":"5194:45:5"},{"body":{"id":416,"nodeType":"Block","src":"5355:70:5","statements":[{"expression":{"expression":{"arguments":[{"id":412,"name":"_BEACON_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":399,"src":"5399:12:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":410,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1240,"src":"5372:11:5","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$1240_$","typeString":"type(library StorageSlot)"}},"id":411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5384:14:5","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":1206,"src":"5372:26:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$1186_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":413,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5372:40:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$1186_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":414,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5413:5:5","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":1185,"src":"5372:46:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":409,"id":415,"nodeType":"Return","src":"5365:53:5"}]},"documentation":{"id":405,"nodeType":"StructuredDocumentation","src":"5245:51:5","text":" @dev Returns the current beacon."},"id":417,"implemented":true,"kind":"function","modifiers":[],"name":"_getBeacon","nameLocation":"5310:10:5","nodeType":"FunctionDefinition","parameters":{"id":406,"nodeType":"ParameterList","parameters":[],"src":"5320:2:5"},"returnParameters":{"id":409,"nodeType":"ParameterList","parameters":[{"constant":false,"id":408,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":417,"src":"5346:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":407,"name":"address","nodeType":"ElementaryTypeName","src":"5346:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5345:9:5"},"scope":492,"src":"5301:124:5","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":452,"nodeType":"Block","src":"5554:290:5","statements":[{"expression":{"arguments":[{"arguments":[{"id":426,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":420,"src":"5591:9:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":424,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1158,"src":"5572:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$1158_$","typeString":"type(library Address)"}},"id":425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5580:10:5","memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":881,"src":"5572:18:5","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":427,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5572:29:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"455243313936373a206e657720626561636f6e206973206e6f74206120636f6e7472616374","id":428,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5603:39:5","typeDescriptions":{"typeIdentifier":"t_stringliteral_9589b7809634e4928033de18bb696e9af4ef71b703652af5245f2dbebf2f4470","typeString":"literal_string \"ERC1967: new beacon is not a contract\""},"value":"ERC1967: new beacon is not a contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9589b7809634e4928033de18bb696e9af4ef71b703652af5245f2dbebf2f4470","typeString":"literal_string \"ERC1967: new beacon is not a contract\""}],"id":423,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5564:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":429,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5564:79:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":430,"nodeType":"ExpressionStatement","src":"5564:79:5"},{"expression":{"arguments":[{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":435,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":420,"src":"5688:9:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":434,"name":"IBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":554,"src":"5680:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBeacon_$554_$","typeString":"type(contract IBeacon)"}},"id":436,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5680:18:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IBeacon_$554","typeString":"contract IBeacon"}},"id":437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5699:14:5","memberName":"implementation","nodeType":"MemberAccess","referencedDeclaration":553,"src":"5680:33:5","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":438,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5680:35:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":432,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1158,"src":"5661:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$1158_$","typeString":"type(library Address)"}},"id":433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5669:10:5","memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":881,"src":"5661:18:5","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":439,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5661:55:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"455243313936373a20626561636f6e20696d706c656d656e746174696f6e206973206e6f74206120636f6e7472616374","id":440,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5718:50:5","typeDescriptions":{"typeIdentifier":"t_stringliteral_f95fd1f5b5578816eb23f6ca0f2439b4b5e4094dc16e99c3b8e91603a83f93c8","typeString":"literal_string \"ERC1967: beacon implementation is not a contract\""},"value":"ERC1967: beacon implementation is not a contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f95fd1f5b5578816eb23f6ca0f2439b4b5e4094dc16e99c3b8e91603a83f93c8","typeString":"literal_string \"ERC1967: beacon implementation is not a contract\""}],"id":431,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5653:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":441,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5653:116:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":442,"nodeType":"ExpressionStatement","src":"5653:116:5"},{"expression":{"id":450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":446,"name":"_BEACON_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":399,"src":"5806:12:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":443,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1240,"src":"5779:11:5","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$1240_$","typeString":"type(library StorageSlot)"}},"id":445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5791:14:5","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":1206,"src":"5779:26:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$1186_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":447,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5779:40:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$1186_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":448,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5820:5:5","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":1185,"src":"5779:46:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":449,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":420,"src":"5828:9:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5779:58:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":451,"nodeType":"ExpressionStatement","src":"5779:58:5"}]},"documentation":{"id":418,"nodeType":"StructuredDocumentation","src":"5431:71:5","text":" @dev Stores a new beacon in the EIP1967 beacon slot."},"id":453,"implemented":true,"kind":"function","modifiers":[],"name":"_setBeacon","nameLocation":"5516:10:5","nodeType":"FunctionDefinition","parameters":{"id":421,"nodeType":"ParameterList","parameters":[{"constant":false,"id":420,"mutability":"mutable","name":"newBeacon","nameLocation":"5535:9:5","nodeType":"VariableDeclaration","scope":453,"src":"5527:17:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":419,"name":"address","nodeType":"ElementaryTypeName","src":"5527:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5526:19:5"},"returnParameters":{"id":422,"nodeType":"ParameterList","parameters":[],"src":"5554:0:5"},"scope":492,"src":"5507:337:5","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":490,"nodeType":"Block","src":"6273:217:5","statements":[{"expression":{"arguments":[{"id":464,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":456,"src":"6294:9:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":463,"name":"_setBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":453,"src":"6283:10:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":465,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6283:21:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":466,"nodeType":"ExpressionStatement","src":"6283:21:5"},{"eventCall":{"arguments":[{"id":468,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":456,"src":"6334:9:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":467,"name":"BeaconUpgraded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":404,"src":"6319:14:5","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":469,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6319:25:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":470,"nodeType":"EmitStatement","src":"6314:30:5"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":476,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":474,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":471,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":458,"src":"6358:4:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6363:6:5","memberName":"length","nodeType":"MemberAccess","src":"6358:11:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":473,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6372:1:5","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6358:15:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"id":475,"name":"forceCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":460,"src":"6377:9:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6358:28:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":489,"nodeType":"IfStatement","src":"6354:130:5","trueBody":{"id":488,"nodeType":"Block","src":"6388:96:5","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":481,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":456,"src":"6439:9:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":480,"name":"IBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":554,"src":"6431:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBeacon_$554_$","typeString":"type(contract IBeacon)"}},"id":482,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6431:18:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IBeacon_$554","typeString":"contract IBeacon"}},"id":483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6450:14:5","memberName":"implementation","nodeType":"MemberAccess","referencedDeclaration":553,"src":"6431:33:5","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":484,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6431:35:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":485,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":458,"src":"6468:4:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":477,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1158,"src":"6402:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$1158_$","typeString":"type(library Address)"}},"id":479,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6410:20:5","memberName":"functionDelegateCall","nodeType":"MemberAccess","referencedDeclaration":1091,"src":"6402:28:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory) returns (bytes memory)"}},"id":486,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6402:71:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":487,"nodeType":"ExpressionStatement","src":"6402:71:5"}]}}]},"documentation":{"id":454,"nodeType":"StructuredDocumentation","src":"5850:292:5","text":" @dev Perform beacon upgrade with additional setup call. Note: This upgrades the address of the beacon, it does\n not upgrade the implementation contained in the beacon (see {UpgradeableBeacon-_setImplementation} for that).\n Emits a {BeaconUpgraded} event."},"id":491,"implemented":true,"kind":"function","modifiers":[],"name":"_upgradeBeaconToAndCall","nameLocation":"6156:23:5","nodeType":"FunctionDefinition","parameters":{"id":461,"nodeType":"ParameterList","parameters":[{"constant":false,"id":456,"mutability":"mutable","name":"newBeacon","nameLocation":"6197:9:5","nodeType":"VariableDeclaration","scope":491,"src":"6189:17:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":455,"name":"address","nodeType":"ElementaryTypeName","src":"6189:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":458,"mutability":"mutable","name":"data","nameLocation":"6229:4:5","nodeType":"VariableDeclaration","scope":491,"src":"6216:17:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":457,"name":"bytes","nodeType":"ElementaryTypeName","src":"6216:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":460,"mutability":"mutable","name":"forceCall","nameLocation":"6248:9:5","nodeType":"VariableDeclaration","scope":491,"src":"6243:14:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":459,"name":"bool","nodeType":"ElementaryTypeName","src":"6243:4:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6179:84:5"},"returnParameters":{"id":462,"nodeType":"ParameterList","parameters":[],"src":"6273:0:5"},"scope":492,"src":"6147:343:5","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":493,"src":"534:5958:5","usedErrors":[],"usedEvents":[193,339,404]}],"src":"121:6372:5"},"id":5},"hardhat-deploy/solc_0.8/openzeppelin/proxy/Proxy.sol":{"ast":{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/proxy/Proxy.sol","exportedSymbols":{"Proxy":[544]},"id":545,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":494,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"104:23:6"},{"abstract":true,"baseContracts":[],"canonicalName":"Proxy","contractDependencies":[],"contractKind":"contract","documentation":{"id":495,"nodeType":"StructuredDocumentation","src":"129:598:6","text":" @dev This abstract contract provides a fallback function that delegates all calls to another contract using the EVM\n instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to\n be specified by overriding the virtual {_implementation} function.\n Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a\n different contract through the {_delegate} function.\n The success and return data of the delegated call will be returned back to the caller of the proxy."},"fullyImplemented":false,"id":544,"linearizedBaseContracts":[544],"name":"Proxy","nameLocation":"746:5:6","nodeType":"ContractDefinition","nodes":[{"body":{"id":502,"nodeType":"Block","src":"1013:835:6","statements":[{"AST":{"nativeSrc":"1032:810:6","nodeType":"YulBlock","src":"1032:810:6","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1285:1:6","nodeType":"YulLiteral","src":"1285:1:6","type":"","value":"0"},{"kind":"number","nativeSrc":"1288:1:6","nodeType":"YulLiteral","src":"1288:1:6","type":"","value":"0"},{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"1291:12:6","nodeType":"YulIdentifier","src":"1291:12:6"},"nativeSrc":"1291:14:6","nodeType":"YulFunctionCall","src":"1291:14:6"}],"functionName":{"name":"calldatacopy","nativeSrc":"1272:12:6","nodeType":"YulIdentifier","src":"1272:12:6"},"nativeSrc":"1272:34:6","nodeType":"YulFunctionCall","src":"1272:34:6"},"nativeSrc":"1272:34:6","nodeType":"YulExpressionStatement","src":"1272:34:6"},{"nativeSrc":"1433:74:6","nodeType":"YulVariableDeclaration","src":"1433:74:6","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"1460:3:6","nodeType":"YulIdentifier","src":"1460:3:6"},"nativeSrc":"1460:5:6","nodeType":"YulFunctionCall","src":"1460:5:6"},{"name":"implementation","nativeSrc":"1467:14:6","nodeType":"YulIdentifier","src":"1467:14:6"},{"kind":"number","nativeSrc":"1483:1:6","nodeType":"YulLiteral","src":"1483:1:6","type":"","value":"0"},{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"1486:12:6","nodeType":"YulIdentifier","src":"1486:12:6"},"nativeSrc":"1486:14:6","nodeType":"YulFunctionCall","src":"1486:14:6"},{"kind":"number","nativeSrc":"1502:1:6","nodeType":"YulLiteral","src":"1502:1:6","type":"","value":"0"},{"kind":"number","nativeSrc":"1505:1:6","nodeType":"YulLiteral","src":"1505:1:6","type":"","value":"0"}],"functionName":{"name":"delegatecall","nativeSrc":"1447:12:6","nodeType":"YulIdentifier","src":"1447:12:6"},"nativeSrc":"1447:60:6","nodeType":"YulFunctionCall","src":"1447:60:6"},"variables":[{"name":"result","nativeSrc":"1437:6:6","nodeType":"YulTypedName","src":"1437:6:6","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1575:1:6","nodeType":"YulLiteral","src":"1575:1:6","type":"","value":"0"},{"kind":"number","nativeSrc":"1578:1:6","nodeType":"YulLiteral","src":"1578:1:6","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"1581:14:6","nodeType":"YulIdentifier","src":"1581:14:6"},"nativeSrc":"1581:16:6","nodeType":"YulFunctionCall","src":"1581:16:6"}],"functionName":{"name":"returndatacopy","nativeSrc":"1560:14:6","nodeType":"YulIdentifier","src":"1560:14:6"},"nativeSrc":"1560:38:6","nodeType":"YulFunctionCall","src":"1560:38:6"},"nativeSrc":"1560:38:6","nodeType":"YulExpressionStatement","src":"1560:38:6"},{"cases":[{"body":{"nativeSrc":"1693:59:6","nodeType":"YulBlock","src":"1693:59:6","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1718:1:6","nodeType":"YulLiteral","src":"1718:1:6","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"1721:14:6","nodeType":"YulIdentifier","src":"1721:14:6"},"nativeSrc":"1721:16:6","nodeType":"YulFunctionCall","src":"1721:16:6"}],"functionName":{"name":"revert","nativeSrc":"1711:6:6","nodeType":"YulIdentifier","src":"1711:6:6"},"nativeSrc":"1711:27:6","nodeType":"YulFunctionCall","src":"1711:27:6"},"nativeSrc":"1711:27:6","nodeType":"YulExpressionStatement","src":"1711:27:6"}]},"nativeSrc":"1686:66:6","nodeType":"YulCase","src":"1686:66:6","value":{"kind":"number","nativeSrc":"1691:1:6","nodeType":"YulLiteral","src":"1691:1:6","type":"","value":"0"}},{"body":{"nativeSrc":"1773:59:6","nodeType":"YulBlock","src":"1773:59:6","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1798:1:6","nodeType":"YulLiteral","src":"1798:1:6","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"1801:14:6","nodeType":"YulIdentifier","src":"1801:14:6"},"nativeSrc":"1801:16:6","nodeType":"YulFunctionCall","src":"1801:16:6"}],"functionName":{"name":"return","nativeSrc":"1791:6:6","nodeType":"YulIdentifier","src":"1791:6:6"},"nativeSrc":"1791:27:6","nodeType":"YulFunctionCall","src":"1791:27:6"},"nativeSrc":"1791:27:6","nodeType":"YulExpressionStatement","src":"1791:27:6"}]},"nativeSrc":"1765:67:6","nodeType":"YulCase","src":"1765:67:6","value":"default"}],"expression":{"name":"result","nativeSrc":"1619:6:6","nodeType":"YulIdentifier","src":"1619:6:6"},"nativeSrc":"1612:220:6","nodeType":"YulSwitch","src":"1612:220:6"}]},"evmVersion":"cancun","externalReferences":[{"declaration":498,"isOffset":false,"isSlot":false,"src":"1467:14:6","valueSize":1}],"id":501,"nodeType":"InlineAssembly","src":"1023:819:6"}]},"documentation":{"id":496,"nodeType":"StructuredDocumentation","src":"758:190:6","text":" @dev Delegates the current call to `implementation`.\n This function does not return to its internal call site, it will return directly to the external caller."},"id":503,"implemented":true,"kind":"function","modifiers":[],"name":"_delegate","nameLocation":"962:9:6","nodeType":"FunctionDefinition","parameters":{"id":499,"nodeType":"ParameterList","parameters":[{"constant":false,"id":498,"mutability":"mutable","name":"implementation","nameLocation":"980:14:6","nodeType":"VariableDeclaration","scope":503,"src":"972:22:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":497,"name":"address","nodeType":"ElementaryTypeName","src":"972:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"971:24:6"},"returnParameters":{"id":500,"nodeType":"ParameterList","parameters":[],"src":"1013:0:6"},"scope":544,"src":"953:895:6","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"documentation":{"id":504,"nodeType":"StructuredDocumentation","src":"1854:172:6","text":" @dev This is a virtual function that should be overriden so it returns the address to which the fallback function\n and {_fallback} should delegate."},"id":509,"implemented":false,"kind":"function","modifiers":[],"name":"_implementation","nameLocation":"2040:15:6","nodeType":"FunctionDefinition","parameters":{"id":505,"nodeType":"ParameterList","parameters":[],"src":"2055:2:6"},"returnParameters":{"id":508,"nodeType":"ParameterList","parameters":[{"constant":false,"id":507,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":509,"src":"2089:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":506,"name":"address","nodeType":"ElementaryTypeName","src":"2089:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2088:9:6"},"scope":544,"src":"2031:67:6","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":521,"nodeType":"Block","src":"2365:72:6","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":513,"name":"_beforeFallback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":543,"src":"2375:15:6","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":514,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2375:17:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":515,"nodeType":"ExpressionStatement","src":"2375:17:6"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":517,"name":"_implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":509,"src":"2412:15:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":518,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2412:17:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":516,"name":"_delegate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":503,"src":"2402:9:6","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":519,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2402:28:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":520,"nodeType":"ExpressionStatement","src":"2402:28:6"}]},"documentation":{"id":510,"nodeType":"StructuredDocumentation","src":"2104:218:6","text":" @dev Delegates the current call to the address returned by `_implementation()`.\n This function does not return to its internall call site, it will return directly to the external caller."},"id":522,"implemented":true,"kind":"function","modifiers":[],"name":"_fallback","nameLocation":"2336:9:6","nodeType":"FunctionDefinition","parameters":{"id":511,"nodeType":"ParameterList","parameters":[],"src":"2345:2:6"},"returnParameters":{"id":512,"nodeType":"ParameterList","parameters":[],"src":"2365:0:6"},"scope":544,"src":"2327:110:6","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":529,"nodeType":"Block","src":"2670:28:6","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":526,"name":"_fallback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":522,"src":"2680:9:6","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":527,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2680:11:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":528,"nodeType":"ExpressionStatement","src":"2680:11:6"}]},"documentation":{"id":523,"nodeType":"StructuredDocumentation","src":"2443:186:6","text":" @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if no other\n function in the contract matches the call data."},"id":530,"implemented":true,"kind":"fallback","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":524,"nodeType":"ParameterList","parameters":[],"src":"2642:2:6"},"returnParameters":{"id":525,"nodeType":"ParameterList","parameters":[],"src":"2670:0:6"},"scope":544,"src":"2634:64:6","stateMutability":"payable","virtual":true,"visibility":"external"},{"body":{"id":537,"nodeType":"Block","src":"2893:28:6","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":534,"name":"_fallback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":522,"src":"2903:9:6","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":535,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2903:11:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":536,"nodeType":"ExpressionStatement","src":"2903:11:6"}]},"documentation":{"id":531,"nodeType":"StructuredDocumentation","src":"2704:149:6","text":" @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if call data\n is empty."},"id":538,"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":532,"nodeType":"ParameterList","parameters":[],"src":"2865:2:6"},"returnParameters":{"id":533,"nodeType":"ParameterList","parameters":[],"src":"2893:0:6"},"scope":544,"src":"2858:63:6","stateMutability":"payable","virtual":true,"visibility":"external"},{"body":{"id":542,"nodeType":"Block","src":"3246:2:6","statements":[]},"documentation":{"id":539,"nodeType":"StructuredDocumentation","src":"2927:270:6","text":" @dev Hook that is called before falling back to the implementation. Can happen as part of a manual `_fallback`\n call, or as part of the Solidity `fallback` or `receive` functions.\n If overriden should call `super._beforeFallback()`."},"id":543,"implemented":true,"kind":"function","modifiers":[],"name":"_beforeFallback","nameLocation":"3211:15:6","nodeType":"FunctionDefinition","parameters":{"id":540,"nodeType":"ParameterList","parameters":[],"src":"3226:2:6"},"returnParameters":{"id":541,"nodeType":"ParameterList","parameters":[],"src":"3246:0:6"},"scope":544,"src":"3202:46:6","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":545,"src":"728:2522:6","usedErrors":[],"usedEvents":[]}],"src":"104:3147:6"},"id":6},"hardhat-deploy/solc_0.8/openzeppelin/proxy/beacon/IBeacon.sol":{"ast":{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/proxy/beacon/IBeacon.sol","exportedSymbols":{"IBeacon":[554]},"id":555,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":546,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"93:23:7"},{"abstract":false,"baseContracts":[],"canonicalName":"IBeacon","contractDependencies":[],"contractKind":"interface","documentation":{"id":547,"nodeType":"StructuredDocumentation","src":"118:79:7","text":" @dev This is the interface that {BeaconProxy} expects of its beacon."},"fullyImplemented":false,"id":554,"linearizedBaseContracts":[554],"name":"IBeacon","nameLocation":"208:7:7","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":548,"nodeType":"StructuredDocumentation","src":"222:162:7","text":" @dev Must return an address that can be used as a delegate call target.\n {BeaconProxy} will check that this address is a contract."},"functionSelector":"5c60da1b","id":553,"implemented":false,"kind":"function","modifiers":[],"name":"implementation","nameLocation":"398:14:7","nodeType":"FunctionDefinition","parameters":{"id":549,"nodeType":"ParameterList","parameters":[],"src":"412:2:7"},"returnParameters":{"id":552,"nodeType":"ParameterList","parameters":[{"constant":false,"id":551,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":553,"src":"438:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":550,"name":"address","nodeType":"ElementaryTypeName","src":"438:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"437:9:7"},"scope":554,"src":"389:58:7","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":555,"src":"198:251:7","usedErrors":[],"usedEvents":[]}],"src":"93:357:7"},"id":7},"hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/ProxyAdmin.sol":{"ast":{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/ProxyAdmin.sol","exportedSymbols":{"Address":[1158],"Context":[1180],"ERC1967Proxy":[174],"ERC1967Upgrade":[492],"IBeacon":[554],"IERC1822Proxiable":[121],"Ownable":[111],"Proxy":[544],"ProxyAdmin":[699],"StorageSlot":[1240],"TransparentUpgradeableProxy":[863]},"id":700,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":556,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"101:23:8"},{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/TransparentUpgradeableProxy.sol","file":"./TransparentUpgradeableProxy.sol","id":557,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":700,"sourceUnit":864,"src":"126:43:8","symbolAliases":[],"unitAlias":""},{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/access/Ownable.sol","file":"../../access/Ownable.sol","id":558,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":700,"sourceUnit":112,"src":"170:34:8","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":560,"name":"Ownable","nameLocations":["458:7:8"],"nodeType":"IdentifierPath","referencedDeclaration":111,"src":"458:7:8"},"id":561,"nodeType":"InheritanceSpecifier","src":"458:7:8"}],"canonicalName":"ProxyAdmin","contractDependencies":[],"contractKind":"contract","documentation":{"id":559,"nodeType":"StructuredDocumentation","src":"206:228:8","text":" @dev This is an auxiliary contract meant to be assigned as the admin of a {TransparentUpgradeableProxy}. For an\n explanation of why you would want to use this see the documentation for {TransparentUpgradeableProxy}."},"fullyImplemented":true,"id":699,"linearizedBaseContracts":[699,111,1180],"name":"ProxyAdmin","nameLocation":"444:10:8","nodeType":"ContractDefinition","nodes":[{"body":{"id":569,"nodeType":"Block","src":"530:2:8","statements":[]},"id":570,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":566,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":563,"src":"516:12:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":567,"kind":"baseConstructorSpecifier","modifierName":{"id":565,"name":"Ownable","nameLocations":["508:7:8"],"nodeType":"IdentifierPath","referencedDeclaration":111,"src":"508:7:8"},"nodeType":"ModifierInvocation","src":"508:21:8"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":564,"nodeType":"ParameterList","parameters":[{"constant":false,"id":563,"mutability":"mutable","name":"initialOwner","nameLocation":"494:12:8","nodeType":"VariableDeclaration","scope":570,"src":"486:20:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":562,"name":"address","nodeType":"ElementaryTypeName","src":"486:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"485:22:8"},"returnParameters":{"id":568,"nodeType":"ParameterList","parameters":[],"src":"530:0:8"},"scope":699,"src":"473:59:8","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":603,"nodeType":"Block","src":"806:332:8","statements":[{"assignments":[580,582],"declarations":[{"constant":false,"id":580,"mutability":"mutable","name":"success","nameLocation":"979:7:8","nodeType":"VariableDeclaration","scope":603,"src":"974:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":579,"name":"bool","nodeType":"ElementaryTypeName","src":"974:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":582,"mutability":"mutable","name":"returndata","nameLocation":"1001:10:8","nodeType":"VariableDeclaration","scope":603,"src":"988:23:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":581,"name":"bytes","nodeType":"ElementaryTypeName","src":"988:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":590,"initialValue":{"arguments":[{"hexValue":"5c60da1b","id":588,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"1041:13:8","typeDescriptions":{"typeIdentifier":"t_stringliteral_96a4c6be7716f5be15d118c16bd1d464cb27f01187d0b9218993a5d488a47c29","typeString":"literal_string hex\"5c60da1b\""}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_96a4c6be7716f5be15d118c16bd1d464cb27f01187d0b9218993a5d488a47c29","typeString":"literal_string hex\"5c60da1b\""}],"expression":{"arguments":[{"id":585,"name":"proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":574,"src":"1023:5:8","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$863","typeString":"contract TransparentUpgradeableProxy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$863","typeString":"contract TransparentUpgradeableProxy"}],"id":584,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1015:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":583,"name":"address","nodeType":"ElementaryTypeName","src":"1015:7:8","typeDescriptions":{}}},"id":586,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1015:14:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1030:10:8","memberName":"staticcall","nodeType":"MemberAccess","src":"1015:25:8","typeDescriptions":{"typeIdentifier":"t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) view returns (bool,bytes memory)"}},"id":589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1015:40:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"973:82:8"},{"expression":{"arguments":[{"id":592,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":580,"src":"1073:7:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":591,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1065:7:8","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":593,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1065:16:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":594,"nodeType":"ExpressionStatement","src":"1065:16:8"},{"expression":{"arguments":[{"id":597,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":582,"src":"1109:10:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":599,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1122:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":598,"name":"address","nodeType":"ElementaryTypeName","src":"1122:7:8","typeDescriptions":{}}}],"id":600,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1121:9:8","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"}],"expression":{"id":595,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1098:3:8","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":596,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1102:6:8","memberName":"decode","nodeType":"MemberAccess","src":"1098:10:8","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":601,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1098:33:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"functionReturnParameters":578,"id":602,"nodeType":"Return","src":"1091:40:8"}]},"documentation":{"id":571,"nodeType":"StructuredDocumentation","src":"538:158:8","text":" @dev Returns the current implementation of `proxy`.\n Requirements:\n - This contract must be the admin of `proxy`."},"functionSelector":"204e1c7a","id":604,"implemented":true,"kind":"function","modifiers":[],"name":"getProxyImplementation","nameLocation":"710:22:8","nodeType":"FunctionDefinition","parameters":{"id":575,"nodeType":"ParameterList","parameters":[{"constant":false,"id":574,"mutability":"mutable","name":"proxy","nameLocation":"761:5:8","nodeType":"VariableDeclaration","scope":604,"src":"733:33:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$863","typeString":"contract TransparentUpgradeableProxy"},"typeName":{"id":573,"nodeType":"UserDefinedTypeName","pathNode":{"id":572,"name":"TransparentUpgradeableProxy","nameLocations":["733:27:8"],"nodeType":"IdentifierPath","referencedDeclaration":863,"src":"733:27:8"},"referencedDeclaration":863,"src":"733:27:8","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$863","typeString":"contract TransparentUpgradeableProxy"}},"visibility":"internal"}],"src":"732:35:8"},"returnParameters":{"id":578,"nodeType":"ParameterList","parameters":[{"constant":false,"id":577,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":604,"src":"797:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":576,"name":"address","nodeType":"ElementaryTypeName","src":"797:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"796:9:8"},"scope":699,"src":"701:437:8","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":637,"nodeType":"Block","src":"1394:323:8","statements":[{"assignments":[614,616],"declarations":[{"constant":false,"id":614,"mutability":"mutable","name":"success","nameLocation":"1558:7:8","nodeType":"VariableDeclaration","scope":637,"src":"1553:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":613,"name":"bool","nodeType":"ElementaryTypeName","src":"1553:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":616,"mutability":"mutable","name":"returndata","nameLocation":"1580:10:8","nodeType":"VariableDeclaration","scope":637,"src":"1567:23:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":615,"name":"bytes","nodeType":"ElementaryTypeName","src":"1567:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":624,"initialValue":{"arguments":[{"hexValue":"f851a440","id":622,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"1620:13:8","typeDescriptions":{"typeIdentifier":"t_stringliteral_cb23cf6c353ccb16f0d92c8e6b5c5b425654e65dd07e2d295b394de4cf15afb7","typeString":"literal_string hex\"f851a440\""}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cb23cf6c353ccb16f0d92c8e6b5c5b425654e65dd07e2d295b394de4cf15afb7","typeString":"literal_string hex\"f851a440\""}],"expression":{"arguments":[{"id":619,"name":"proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":608,"src":"1602:5:8","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$863","typeString":"contract TransparentUpgradeableProxy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$863","typeString":"contract TransparentUpgradeableProxy"}],"id":618,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1594:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":617,"name":"address","nodeType":"ElementaryTypeName","src":"1594:7:8","typeDescriptions":{}}},"id":620,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1594:14:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1609:10:8","memberName":"staticcall","nodeType":"MemberAccess","src":"1594:25:8","typeDescriptions":{"typeIdentifier":"t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) view returns (bool,bytes memory)"}},"id":623,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1594:40:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"1552:82:8"},{"expression":{"arguments":[{"id":626,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":614,"src":"1652:7:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":625,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1644:7:8","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1644:16:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":628,"nodeType":"ExpressionStatement","src":"1644:16:8"},{"expression":{"arguments":[{"id":631,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":616,"src":"1688:10:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":633,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1701:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":632,"name":"address","nodeType":"ElementaryTypeName","src":"1701:7:8","typeDescriptions":{}}}],"id":634,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1700:9:8","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"}],"expression":{"id":629,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1677:3:8","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":630,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1681:6:8","memberName":"decode","nodeType":"MemberAccess","src":"1677:10:8","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":635,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1677:33:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"functionReturnParameters":612,"id":636,"nodeType":"Return","src":"1670:40:8"}]},"documentation":{"id":605,"nodeType":"StructuredDocumentation","src":"1144:149:8","text":" @dev Returns the current admin of `proxy`.\n Requirements:\n - This contract must be the admin of `proxy`."},"functionSelector":"f3b7dead","id":638,"implemented":true,"kind":"function","modifiers":[],"name":"getProxyAdmin","nameLocation":"1307:13:8","nodeType":"FunctionDefinition","parameters":{"id":609,"nodeType":"ParameterList","parameters":[{"constant":false,"id":608,"mutability":"mutable","name":"proxy","nameLocation":"1349:5:8","nodeType":"VariableDeclaration","scope":638,"src":"1321:33:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$863","typeString":"contract TransparentUpgradeableProxy"},"typeName":{"id":607,"nodeType":"UserDefinedTypeName","pathNode":{"id":606,"name":"TransparentUpgradeableProxy","nameLocations":["1321:27:8"],"nodeType":"IdentifierPath","referencedDeclaration":863,"src":"1321:27:8"},"referencedDeclaration":863,"src":"1321:27:8","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$863","typeString":"contract TransparentUpgradeableProxy"}},"visibility":"internal"}],"src":"1320:35:8"},"returnParameters":{"id":612,"nodeType":"ParameterList","parameters":[{"constant":false,"id":611,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":638,"src":"1385:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":610,"name":"address","nodeType":"ElementaryTypeName","src":"1385:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1384:9:8"},"scope":699,"src":"1298:419:8","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":655,"nodeType":"Block","src":"1995:44:8","statements":[{"expression":{"arguments":[{"id":652,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":644,"src":"2023:8:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":649,"name":"proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":642,"src":"2005:5:8","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$863","typeString":"contract TransparentUpgradeableProxy"}},"id":651,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2011:11:8","memberName":"changeAdmin","nodeType":"MemberAccess","referencedDeclaration":797,"src":"2005:17:8","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":653,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2005:27:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":654,"nodeType":"ExpressionStatement","src":"2005:27:8"}]},"documentation":{"id":639,"nodeType":"StructuredDocumentation","src":"1723:163:8","text":" @dev Changes the admin of `proxy` to `newAdmin`.\n Requirements:\n - This contract must be the current admin of `proxy`."},"functionSelector":"7eff275e","id":656,"implemented":true,"kind":"function","modifiers":[{"id":647,"kind":"modifierInvocation","modifierName":{"id":646,"name":"onlyOwner","nameLocations":["1985:9:8"],"nodeType":"IdentifierPath","referencedDeclaration":53,"src":"1985:9:8"},"nodeType":"ModifierInvocation","src":"1985:9:8"}],"name":"changeProxyAdmin","nameLocation":"1900:16:8","nodeType":"FunctionDefinition","parameters":{"id":645,"nodeType":"ParameterList","parameters":[{"constant":false,"id":642,"mutability":"mutable","name":"proxy","nameLocation":"1945:5:8","nodeType":"VariableDeclaration","scope":656,"src":"1917:33:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$863","typeString":"contract TransparentUpgradeableProxy"},"typeName":{"id":641,"nodeType":"UserDefinedTypeName","pathNode":{"id":640,"name":"TransparentUpgradeableProxy","nameLocations":["1917:27:8"],"nodeType":"IdentifierPath","referencedDeclaration":863,"src":"1917:27:8"},"referencedDeclaration":863,"src":"1917:27:8","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$863","typeString":"contract TransparentUpgradeableProxy"}},"visibility":"internal"},{"constant":false,"id":644,"mutability":"mutable","name":"newAdmin","nameLocation":"1960:8:8","nodeType":"VariableDeclaration","scope":656,"src":"1952:16:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":643,"name":"address","nodeType":"ElementaryTypeName","src":"1952:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1916:53:8"},"returnParameters":{"id":648,"nodeType":"ParameterList","parameters":[],"src":"1995:0:8"},"scope":699,"src":"1891:148:8","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":673,"nodeType":"Block","src":"2345:48:8","statements":[{"expression":{"arguments":[{"id":670,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":662,"src":"2371:14:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":667,"name":"proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":660,"src":"2355:5:8","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$863","typeString":"contract TransparentUpgradeableProxy"}},"id":669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2361:9:8","memberName":"upgradeTo","nodeType":"MemberAccess","referencedDeclaration":815,"src":"2355:15:8","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2355:31:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":672,"nodeType":"ExpressionStatement","src":"2355:31:8"}]},"documentation":{"id":657,"nodeType":"StructuredDocumentation","src":"2045:194:8","text":" @dev Upgrades `proxy` to `implementation`. See {TransparentUpgradeableProxy-upgradeTo}.\n Requirements:\n - This contract must be the admin of `proxy`."},"functionSelector":"99a88ec4","id":674,"implemented":true,"kind":"function","modifiers":[{"id":665,"kind":"modifierInvocation","modifierName":{"id":664,"name":"onlyOwner","nameLocations":["2335:9:8"],"nodeType":"IdentifierPath","referencedDeclaration":53,"src":"2335:9:8"},"nodeType":"ModifierInvocation","src":"2335:9:8"}],"name":"upgrade","nameLocation":"2253:7:8","nodeType":"FunctionDefinition","parameters":{"id":663,"nodeType":"ParameterList","parameters":[{"constant":false,"id":660,"mutability":"mutable","name":"proxy","nameLocation":"2289:5:8","nodeType":"VariableDeclaration","scope":674,"src":"2261:33:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$863","typeString":"contract TransparentUpgradeableProxy"},"typeName":{"id":659,"nodeType":"UserDefinedTypeName","pathNode":{"id":658,"name":"TransparentUpgradeableProxy","nameLocations":["2261:27:8"],"nodeType":"IdentifierPath","referencedDeclaration":863,"src":"2261:27:8"},"referencedDeclaration":863,"src":"2261:27:8","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$863","typeString":"contract TransparentUpgradeableProxy"}},"visibility":"internal"},{"constant":false,"id":662,"mutability":"mutable","name":"implementation","nameLocation":"2304:14:8","nodeType":"VariableDeclaration","scope":674,"src":"2296:22:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":661,"name":"address","nodeType":"ElementaryTypeName","src":"2296:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2260:59:8"},"returnParameters":{"id":666,"nodeType":"ParameterList","parameters":[],"src":"2345:0:8"},"scope":699,"src":"2244:149:8","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":697,"nodeType":"Block","src":"2824:79:8","statements":[{"expression":{"arguments":[{"id":693,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":680,"src":"2875:14:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":694,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":682,"src":"2891:4:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":687,"name":"proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":678,"src":"2834:5:8","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$863","typeString":"contract TransparentUpgradeableProxy"}},"id":689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2840:16:8","memberName":"upgradeToAndCall","nodeType":"MemberAccess","referencedDeclaration":832,"src":"2834:22:8","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory) payable external"}},"id":692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"expression":{"id":690,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2864:3:8","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":691,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2868:5:8","memberName":"value","nodeType":"MemberAccess","src":"2864:9:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"2834:40:8","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_address_$_t_bytes_memory_ptr_$returns$__$value","typeString":"function (address,bytes memory) payable external"}},"id":695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2834:62:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":696,"nodeType":"ExpressionStatement","src":"2834:62:8"}]},"documentation":{"id":675,"nodeType":"StructuredDocumentation","src":"2399:255:8","text":" @dev Upgrades `proxy` to `implementation` and calls a function on the new implementation. See\n {TransparentUpgradeableProxy-upgradeToAndCall}.\n Requirements:\n - This contract must be the admin of `proxy`."},"functionSelector":"9623609d","id":698,"implemented":true,"kind":"function","modifiers":[{"id":685,"kind":"modifierInvocation","modifierName":{"id":684,"name":"onlyOwner","nameLocations":["2814:9:8"],"nodeType":"IdentifierPath","referencedDeclaration":53,"src":"2814:9:8"},"nodeType":"ModifierInvocation","src":"2814:9:8"}],"name":"upgradeAndCall","nameLocation":"2668:14:8","nodeType":"FunctionDefinition","parameters":{"id":683,"nodeType":"ParameterList","parameters":[{"constant":false,"id":678,"mutability":"mutable","name":"proxy","nameLocation":"2720:5:8","nodeType":"VariableDeclaration","scope":698,"src":"2692:33:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$863","typeString":"contract TransparentUpgradeableProxy"},"typeName":{"id":677,"nodeType":"UserDefinedTypeName","pathNode":{"id":676,"name":"TransparentUpgradeableProxy","nameLocations":["2692:27:8"],"nodeType":"IdentifierPath","referencedDeclaration":863,"src":"2692:27:8"},"referencedDeclaration":863,"src":"2692:27:8","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$863","typeString":"contract TransparentUpgradeableProxy"}},"visibility":"internal"},{"constant":false,"id":680,"mutability":"mutable","name":"implementation","nameLocation":"2743:14:8","nodeType":"VariableDeclaration","scope":698,"src":"2735:22:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":679,"name":"address","nodeType":"ElementaryTypeName","src":"2735:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":682,"mutability":"mutable","name":"data","nameLocation":"2780:4:8","nodeType":"VariableDeclaration","scope":698,"src":"2767:17:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":681,"name":"bytes","nodeType":"ElementaryTypeName","src":"2767:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2682:108:8"},"returnParameters":{"id":686,"nodeType":"ParameterList","parameters":[],"src":"2824:0:8"},"scope":699,"src":"2659:244:8","stateMutability":"payable","virtual":true,"visibility":"public"}],"scope":700,"src":"435:2470:8","usedErrors":[],"usedEvents":[19]}],"src":"101:2805:8"},"id":8},"hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/TransparentUpgradeableProxy.sol":{"ast":{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/TransparentUpgradeableProxy.sol","exportedSymbols":{"Address":[1158],"ERC1967Proxy":[174],"ERC1967Upgrade":[492],"IBeacon":[554],"IERC1822Proxiable":[121],"Proxy":[544],"StorageSlot":[1240],"TransparentUpgradeableProxy":[863]},"id":864,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":701,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"118:23:9"},{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Proxy.sol","file":"../ERC1967/ERC1967Proxy.sol","id":702,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":864,"sourceUnit":175,"src":"143:37:9","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":704,"name":"ERC1967Proxy","nameLocations":["1674:12:9"],"nodeType":"IdentifierPath","referencedDeclaration":174,"src":"1674:12:9"},"id":705,"nodeType":"InheritanceSpecifier","src":"1674:12:9"}],"canonicalName":"TransparentUpgradeableProxy","contractDependencies":[],"contractKind":"contract","documentation":{"id":703,"nodeType":"StructuredDocumentation","src":"182:1451:9","text":" @dev This contract implements a proxy that is upgradeable by an admin.\n To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector\n clashing], which can potentially be used in an attack, this contract uses the\n https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two\n things that go hand in hand:\n 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if\n that call matches one of the admin functions exposed by the proxy itself.\n 2. If the admin calls the proxy, it can access the admin functions, but its calls will never be forwarded to the\n implementation. If the admin tries to call a function on the implementation it will fail with an error that says\n \"admin cannot fallback to proxy target\".\n These properties mean that the admin account can only be used for admin actions like upgrading the proxy or changing\n the admin, so it's best if it's a dedicated account that is not used for anything else. This will avoid headaches due\n to sudden errors when trying to call a function from the proxy implementation.\n Our recommendation is for the dedicated account to be an instance of the {ProxyAdmin} contract. If set up this way,\n you should think of the `ProxyAdmin` instance as the real administrative interface of your proxy."},"fullyImplemented":true,"id":863,"linearizedBaseContracts":[863,174,492,544],"name":"TransparentUpgradeableProxy","nameLocation":"1643:27:9","nodeType":"ContractDefinition","nodes":[{"body":{"id":739,"nodeType":"Block","src":"2038:124:9","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":732,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":720,"name":"_ADMIN_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":332,"src":"2055:11:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":730,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"hexValue":"656970313936372e70726f78792e61646d696e","id":726,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2096:21:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6104","typeString":"literal_string \"eip1967.proxy.admin\""},"value":"eip1967.proxy.admin"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6104","typeString":"literal_string \"eip1967.proxy.admin\""}],"id":725,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2086:9:9","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":727,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2086:32:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":724,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2078:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":723,"name":"uint256","nodeType":"ElementaryTypeName","src":"2078:7:9","typeDescriptions":{}}},"id":728,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2078:41:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":729,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2122:1:9","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2078:45:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":722,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2070:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":721,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2070:7:9","typeDescriptions":{}}},"id":731,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2070:54:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2055:69:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":719,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"2048:6:9","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2048:77:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":734,"nodeType":"ExpressionStatement","src":"2048:77:9"},{"expression":{"arguments":[{"id":736,"name":"admin_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":710,"src":"2148:6:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":735,"name":"_changeAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":395,"src":"2135:12:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":737,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2135:20:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":738,"nodeType":"ExpressionStatement","src":"2135:20:9"}]},"documentation":{"id":706,"nodeType":"StructuredDocumentation","src":"1693:210:9","text":" @dev Initializes an upgradeable proxy managed by `_admin`, backed by the implementation at `_logic`, and\n optionally initialized with `_data` as explained in {ERC1967Proxy-constructor}."},"id":740,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":715,"name":"_logic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":708,"src":"2023:6:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":716,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":712,"src":"2031:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":717,"kind":"baseConstructorSpecifier","modifierName":{"id":714,"name":"ERC1967Proxy","nameLocations":["2010:12:9"],"nodeType":"IdentifierPath","referencedDeclaration":174,"src":"2010:12:9"},"nodeType":"ModifierInvocation","src":"2010:27:9"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":713,"nodeType":"ParameterList","parameters":[{"constant":false,"id":708,"mutability":"mutable","name":"_logic","nameLocation":"1937:6:9","nodeType":"VariableDeclaration","scope":740,"src":"1929:14:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":707,"name":"address","nodeType":"ElementaryTypeName","src":"1929:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":710,"mutability":"mutable","name":"admin_","nameLocation":"1961:6:9","nodeType":"VariableDeclaration","scope":740,"src":"1953:14:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":709,"name":"address","nodeType":"ElementaryTypeName","src":"1953:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":712,"mutability":"mutable","name":"_data","nameLocation":"1990:5:9","nodeType":"VariableDeclaration","scope":740,"src":"1977:18:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":711,"name":"bytes","nodeType":"ElementaryTypeName","src":"1977:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1919:82:9"},"returnParameters":{"id":718,"nodeType":"ParameterList","parameters":[],"src":"2038:0:9"},"scope":863,"src":"1908:254:9","stateMutability":"payable","virtual":false,"visibility":"public"},{"body":{"id":755,"nodeType":"Block","src":"2322:115:9","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":743,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2336:3:9","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2340:6:9","memberName":"sender","nodeType":"MemberAccess","src":"2336:10:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":745,"name":"_getAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":352,"src":"2350:9:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":746,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2350:11:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2336:25:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":753,"nodeType":"Block","src":"2395:36:9","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":750,"name":"_fallback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":522,"src":"2409:9:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":751,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2409:11:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":752,"nodeType":"ExpressionStatement","src":"2409:11:9"}]},"id":754,"nodeType":"IfStatement","src":"2332:99:9","trueBody":{"id":749,"nodeType":"Block","src":"2363:26:9","statements":[{"id":748,"nodeType":"PlaceholderStatement","src":"2377:1:9"}]}}]},"documentation":{"id":741,"nodeType":"StructuredDocumentation","src":"2168:130:9","text":" @dev Modifier used internally that will delegate the call to the implementation unless the sender is the admin."},"id":756,"name":"ifAdmin","nameLocation":"2312:7:9","nodeType":"ModifierDefinition","parameters":{"id":742,"nodeType":"ParameterList","parameters":[],"src":"2319:2:9"},"src":"2303:134:9","virtual":false,"visibility":"internal"},{"body":{"id":769,"nodeType":"Block","src":"2938:37:9","statements":[{"expression":{"id":767,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":764,"name":"admin_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":762,"src":"2948:6:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":765,"name":"_getAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":352,"src":"2957:9:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":766,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2957:11:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2948:20:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":768,"nodeType":"ExpressionStatement","src":"2948:20:9"}]},"documentation":{"id":757,"nodeType":"StructuredDocumentation","src":"2443:431:9","text":" @dev Returns the current admin.\n NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyAdmin}.\n TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the\n https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\n `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103`"},"functionSelector":"f851a440","id":770,"implemented":true,"kind":"function","modifiers":[{"id":760,"kind":"modifierInvocation","modifierName":{"id":759,"name":"ifAdmin","nameLocations":["2905:7:9"],"nodeType":"IdentifierPath","referencedDeclaration":756,"src":"2905:7:9"},"nodeType":"ModifierInvocation","src":"2905:7:9"}],"name":"admin","nameLocation":"2888:5:9","nodeType":"FunctionDefinition","parameters":{"id":758,"nodeType":"ParameterList","parameters":[],"src":"2893:2:9"},"returnParameters":{"id":763,"nodeType":"ParameterList","parameters":[{"constant":false,"id":762,"mutability":"mutable","name":"admin_","nameLocation":"2930:6:9","nodeType":"VariableDeclaration","scope":770,"src":"2922:14:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":761,"name":"address","nodeType":"ElementaryTypeName","src":"2922:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2921:16:9"},"scope":863,"src":"2879:96:9","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":783,"nodeType":"Block","src":"3512:52:9","statements":[{"expression":{"id":781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":778,"name":"implementation_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":776,"src":"3522:15:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":779,"name":"_implementation","nodeType":"Identifier","overloadedDeclarations":[173],"referencedDeclaration":173,"src":"3540:15:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":780,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3540:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3522:35:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":782,"nodeType":"ExpressionStatement","src":"3522:35:9"}]},"documentation":{"id":771,"nodeType":"StructuredDocumentation","src":"2981:449:9","text":" @dev Returns the current implementation.\n NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyImplementation}.\n TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the\n https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\n `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc`"},"functionSelector":"5c60da1b","id":784,"implemented":true,"kind":"function","modifiers":[{"id":774,"kind":"modifierInvocation","modifierName":{"id":773,"name":"ifAdmin","nameLocations":["3470:7:9"],"nodeType":"IdentifierPath","referencedDeclaration":756,"src":"3470:7:9"},"nodeType":"ModifierInvocation","src":"3470:7:9"}],"name":"implementation","nameLocation":"3444:14:9","nodeType":"FunctionDefinition","parameters":{"id":772,"nodeType":"ParameterList","parameters":[],"src":"3458:2:9"},"returnParameters":{"id":777,"nodeType":"ParameterList","parameters":[{"constant":false,"id":776,"mutability":"mutable","name":"implementation_","nameLocation":"3495:15:9","nodeType":"VariableDeclaration","scope":784,"src":"3487:23:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":775,"name":"address","nodeType":"ElementaryTypeName","src":"3487:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3486:25:9"},"scope":863,"src":"3435:129:9","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":796,"nodeType":"Block","src":"3833:39:9","statements":[{"expression":{"arguments":[{"id":793,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":787,"src":"3856:8:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":792,"name":"_changeAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":395,"src":"3843:12:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":794,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3843:22:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":795,"nodeType":"ExpressionStatement","src":"3843:22:9"}]},"documentation":{"id":785,"nodeType":"StructuredDocumentation","src":"3570:194:9","text":" @dev Changes the admin of the proxy.\n Emits an {AdminChanged} event.\n NOTE: Only the admin can call this function. See {ProxyAdmin-changeProxyAdmin}."},"functionSelector":"8f283970","id":797,"implemented":true,"kind":"function","modifiers":[{"id":790,"kind":"modifierInvocation","modifierName":{"id":789,"name":"ifAdmin","nameLocations":["3825:7:9"],"nodeType":"IdentifierPath","referencedDeclaration":756,"src":"3825:7:9"},"nodeType":"ModifierInvocation","src":"3825:7:9"}],"name":"changeAdmin","nameLocation":"3778:11:9","nodeType":"FunctionDefinition","parameters":{"id":788,"nodeType":"ParameterList","parameters":[{"constant":false,"id":787,"mutability":"mutable","name":"newAdmin","nameLocation":"3798:8:9","nodeType":"VariableDeclaration","scope":797,"src":"3790:16:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":786,"name":"address","nodeType":"ElementaryTypeName","src":"3790:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3789:18:9"},"returnParameters":{"id":791,"nodeType":"ParameterList","parameters":[],"src":"3833:0:9"},"scope":863,"src":"3769:103:9","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"body":{"id":814,"nodeType":"Block","src":"4095:71:9","statements":[{"expression":{"arguments":[{"id":806,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":800,"src":"4123:17:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"","id":809,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4148:2:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":808,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4142:5:9","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":807,"name":"bytes","nodeType":"ElementaryTypeName","src":"4142:5:9","typeDescriptions":{}}},"id":810,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4142:9:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"66616c7365","id":811,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4153:5:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":805,"name":"_upgradeToAndCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":275,"src":"4105:17:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_bool_$returns$__$","typeString":"function (address,bytes memory,bool)"}},"id":812,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4105:54:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":813,"nodeType":"ExpressionStatement","src":"4105:54:9"}]},"documentation":{"id":798,"nodeType":"StructuredDocumentation","src":"3878:149:9","text":" @dev Upgrade the implementation of the proxy.\n NOTE: Only the admin can call this function. See {ProxyAdmin-upgrade}."},"functionSelector":"3659cfe6","id":815,"implemented":true,"kind":"function","modifiers":[{"id":803,"kind":"modifierInvocation","modifierName":{"id":802,"name":"ifAdmin","nameLocations":["4087:7:9"],"nodeType":"IdentifierPath","referencedDeclaration":756,"src":"4087:7:9"},"nodeType":"ModifierInvocation","src":"4087:7:9"}],"name":"upgradeTo","nameLocation":"4041:9:9","nodeType":"FunctionDefinition","parameters":{"id":801,"nodeType":"ParameterList","parameters":[{"constant":false,"id":800,"mutability":"mutable","name":"newImplementation","nameLocation":"4059:17:9","nodeType":"VariableDeclaration","scope":815,"src":"4051:25:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":799,"name":"address","nodeType":"ElementaryTypeName","src":"4051:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4050:27:9"},"returnParameters":{"id":804,"nodeType":"ParameterList","parameters":[],"src":"4095:0:9"},"scope":863,"src":"4032:134:9","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":831,"nodeType":"Block","src":"4641:65:9","statements":[{"expression":{"arguments":[{"id":826,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":818,"src":"4669:17:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":827,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":820,"src":"4688:4:9","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"hexValue":"74727565","id":828,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4694:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":825,"name":"_upgradeToAndCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":275,"src":"4651:17:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_bool_$returns$__$","typeString":"function (address,bytes memory,bool)"}},"id":829,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4651:48:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":830,"nodeType":"ExpressionStatement","src":"4651:48:9"}]},"documentation":{"id":816,"nodeType":"StructuredDocumentation","src":"4172:365:9","text":" @dev Upgrade the implementation of the proxy, and then call a function from the new implementation as specified\n by `data`, which should be an encoded function call. This is useful to initialize new storage variables in the\n proxied contract.\n NOTE: Only the admin can call this function. See {ProxyAdmin-upgradeAndCall}."},"functionSelector":"4f1ef286","id":832,"implemented":true,"kind":"function","modifiers":[{"id":823,"kind":"modifierInvocation","modifierName":{"id":822,"name":"ifAdmin","nameLocations":["4633:7:9"],"nodeType":"IdentifierPath","referencedDeclaration":756,"src":"4633:7:9"},"nodeType":"ModifierInvocation","src":"4633:7:9"}],"name":"upgradeToAndCall","nameLocation":"4551:16:9","nodeType":"FunctionDefinition","parameters":{"id":821,"nodeType":"ParameterList","parameters":[{"constant":false,"id":818,"mutability":"mutable","name":"newImplementation","nameLocation":"4576:17:9","nodeType":"VariableDeclaration","scope":832,"src":"4568:25:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":817,"name":"address","nodeType":"ElementaryTypeName","src":"4568:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":820,"mutability":"mutable","name":"data","nameLocation":"4610:4:9","nodeType":"VariableDeclaration","scope":832,"src":"4595:19:9","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":819,"name":"bytes","nodeType":"ElementaryTypeName","src":"4595:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4567:48:9"},"returnParameters":{"id":824,"nodeType":"ParameterList","parameters":[],"src":"4641:0:9"},"scope":863,"src":"4542:164:9","stateMutability":"payable","virtual":false,"visibility":"external"},{"body":{"id":841,"nodeType":"Block","src":"4825:35:9","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":838,"name":"_getAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":352,"src":"4842:9:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":839,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4842:11:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":837,"id":840,"nodeType":"Return","src":"4835:18:9"}]},"documentation":{"id":833,"nodeType":"StructuredDocumentation","src":"4712:50:9","text":" @dev Returns the current admin."},"id":842,"implemented":true,"kind":"function","modifiers":[],"name":"_admin","nameLocation":"4776:6:9","nodeType":"FunctionDefinition","parameters":{"id":834,"nodeType":"ParameterList","parameters":[],"src":"4782:2:9"},"returnParameters":{"id":837,"nodeType":"ParameterList","parameters":[{"constant":false,"id":836,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":842,"src":"4816:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":835,"name":"address","nodeType":"ElementaryTypeName","src":"4816:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4815:9:9"},"scope":863,"src":"4767:93:9","stateMutability":"view","virtual":true,"visibility":"internal"},{"baseFunctions":[543],"body":{"id":861,"nodeType":"Block","src":"5034:154:9","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":852,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":848,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5052:3:9","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5056:6:9","memberName":"sender","nodeType":"MemberAccess","src":"5052:10:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":850,"name":"_getAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":352,"src":"5066:9:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":851,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5066:11:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5052:25:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5472616e73706172656e745570677261646561626c6550726f78793a2061646d696e2063616e6e6f742066616c6c6261636b20746f2070726f787920746172676574","id":853,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5079:68:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d","typeString":"literal_string \"TransparentUpgradeableProxy: admin cannot fallback to proxy target\""},"value":"TransparentUpgradeableProxy: admin cannot fallback to proxy target"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d","typeString":"literal_string \"TransparentUpgradeableProxy: admin cannot fallback to proxy target\""}],"id":847,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5044:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":854,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5044:104:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":855,"nodeType":"ExpressionStatement","src":"5044:104:9"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":856,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"5158:5:9","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_TransparentUpgradeableProxy_$863_$","typeString":"type(contract super TransparentUpgradeableProxy)"}},"id":858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5164:15:9","memberName":"_beforeFallback","nodeType":"MemberAccess","referencedDeclaration":543,"src":"5158:21:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":859,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5158:23:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":860,"nodeType":"ExpressionStatement","src":"5158:23:9"}]},"documentation":{"id":843,"nodeType":"StructuredDocumentation","src":"4866:110:9","text":" @dev Makes sure the admin cannot access the fallback function. See {Proxy-_beforeFallback}."},"id":862,"implemented":true,"kind":"function","modifiers":[],"name":"_beforeFallback","nameLocation":"4990:15:9","nodeType":"FunctionDefinition","overrides":{"id":845,"nodeType":"OverrideSpecifier","overrides":[],"src":"5025:8:9"},"parameters":{"id":844,"nodeType":"ParameterList","parameters":[],"src":"5005:2:9"},"returnParameters":{"id":846,"nodeType":"ParameterList","parameters":[],"src":"5034:0:9"},"scope":863,"src":"4981:207:9","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":864,"src":"1634:3556:9","usedErrors":[],"usedEvents":[193,339,404]}],"src":"118:5073:9"},"id":9},"hardhat-deploy/solc_0.8/openzeppelin/utils/Address.sol":{"ast":{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/utils/Address.sol","exportedSymbols":{"Address":[1158]},"id":1159,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":865,"literals":["solidity","^","0.8",".1"],"nodeType":"PragmaDirective","src":"106:23:10"},{"abstract":false,"baseContracts":[],"canonicalName":"Address","contractDependencies":[],"contractKind":"library","documentation":{"id":866,"nodeType":"StructuredDocumentation","src":"131:67:10","text":" @dev Collection of functions related to the address type"},"fullyImplemented":true,"id":1158,"linearizedBaseContracts":[1158],"name":"Address","nameLocation":"207:7:10","nodeType":"ContractDefinition","nodes":[{"body":{"id":880,"nodeType":"Block","src":"1246:254:10","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":878,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":874,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":869,"src":"1470:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":875,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1478:4:10","memberName":"code","nodeType":"MemberAccess","src":"1470:12:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1483:6:10","memberName":"length","nodeType":"MemberAccess","src":"1470:19:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":877,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1492:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1470:23:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":873,"id":879,"nodeType":"Return","src":"1463:30:10"}]},"documentation":{"id":867,"nodeType":"StructuredDocumentation","src":"221:954:10","text":" @dev Returns true if `account` is a contract.\n [IMPORTANT]\n ====\n It is unsafe to assume that an address for which this function returns\n false is an externally-owned account (EOA) and not a contract.\n Among others, `isContract` will return false for the following\n types of addresses:\n - an externally-owned account\n - a contract in construction\n - an address where a contract will be created\n - an address where a contract lived, but was destroyed\n ====\n [IMPORTANT]\n ====\n You shouldn't rely on `isContract` to protect against flash loan attacks!\n Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\n like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\n constructor.\n ===="},"id":881,"implemented":true,"kind":"function","modifiers":[],"name":"isContract","nameLocation":"1189:10:10","nodeType":"FunctionDefinition","parameters":{"id":870,"nodeType":"ParameterList","parameters":[{"constant":false,"id":869,"mutability":"mutable","name":"account","nameLocation":"1208:7:10","nodeType":"VariableDeclaration","scope":881,"src":"1200:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":868,"name":"address","nodeType":"ElementaryTypeName","src":"1200:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1199:17:10"},"returnParameters":{"id":873,"nodeType":"ParameterList","parameters":[{"constant":false,"id":872,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":881,"src":"1240:4:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":871,"name":"bool","nodeType":"ElementaryTypeName","src":"1240:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1239:6:10"},"scope":1158,"src":"1180:320:10","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":914,"nodeType":"Block","src":"2488:241:10","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":892,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2514:4:10","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$1158","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$1158","typeString":"library Address"}],"id":891,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2506:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":890,"name":"address","nodeType":"ElementaryTypeName","src":"2506:7:10","typeDescriptions":{}}},"id":893,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2506:13:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2520:7:10","memberName":"balance","nodeType":"MemberAccess","src":"2506:21:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":895,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":886,"src":"2531:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2506:31:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20696e73756666696369656e742062616c616e6365","id":897,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2539:31:10","typeDescriptions":{"typeIdentifier":"t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9","typeString":"literal_string \"Address: insufficient balance\""},"value":"Address: insufficient balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9","typeString":"literal_string \"Address: insufficient balance\""}],"id":889,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2498:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":898,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2498:73:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":899,"nodeType":"ExpressionStatement","src":"2498:73:10"},{"assignments":[901,null],"declarations":[{"constant":false,"id":901,"mutability":"mutable","name":"success","nameLocation":"2588:7:10","nodeType":"VariableDeclaration","scope":914,"src":"2583:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":900,"name":"bool","nodeType":"ElementaryTypeName","src":"2583:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":908,"initialValue":{"arguments":[{"hexValue":"","id":906,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2631:2:10","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"id":902,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":884,"src":"2601:9:10","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":903,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2611:4:10","memberName":"call","nodeType":"MemberAccess","src":"2601:14:10","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":905,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":904,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":886,"src":"2623:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"2601:29:10","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":907,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2601:33:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"2582:52:10"},{"expression":{"arguments":[{"id":910,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":901,"src":"2652:7:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564","id":911,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2661:60:10","typeDescriptions":{"typeIdentifier":"t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae","typeString":"literal_string \"Address: unable to send value, recipient may have reverted\""},"value":"Address: unable to send value, recipient may have reverted"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae","typeString":"literal_string \"Address: unable to send value, recipient may have reverted\""}],"id":909,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2644:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2644:78:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":913,"nodeType":"ExpressionStatement","src":"2644:78:10"}]},"documentation":{"id":882,"nodeType":"StructuredDocumentation","src":"1506:906:10","text":" @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n `recipient`, forwarding all available gas and reverting on errors.\n https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n of certain opcodes, possibly making contracts go over the 2300 gas limit\n imposed by `transfer`, making them unable to receive funds via\n `transfer`. {sendValue} removes this limitation.\n https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n IMPORTANT: because control is transferred to `recipient`, care must be\n taken to not create reentrancy vulnerabilities. Consider using\n {ReentrancyGuard} or the\n https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]."},"id":915,"implemented":true,"kind":"function","modifiers":[],"name":"sendValue","nameLocation":"2426:9:10","nodeType":"FunctionDefinition","parameters":{"id":887,"nodeType":"ParameterList","parameters":[{"constant":false,"id":884,"mutability":"mutable","name":"recipient","nameLocation":"2452:9:10","nodeType":"VariableDeclaration","scope":915,"src":"2436:25:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":883,"name":"address","nodeType":"ElementaryTypeName","src":"2436:15:10","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":886,"mutability":"mutable","name":"amount","nameLocation":"2471:6:10","nodeType":"VariableDeclaration","scope":915,"src":"2463:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":885,"name":"uint256","nodeType":"ElementaryTypeName","src":"2463:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2435:43:10"},"returnParameters":{"id":888,"nodeType":"ParameterList","parameters":[],"src":"2488:0:10"},"scope":1158,"src":"2417:312:10","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":931,"nodeType":"Block","src":"3560:84:10","statements":[{"expression":{"arguments":[{"id":926,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":918,"src":"3590:6:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":927,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":920,"src":"3598:4:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564","id":928,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3604:32:10","typeDescriptions":{"typeIdentifier":"t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df","typeString":"literal_string \"Address: low-level call failed\""},"value":"Address: low-level call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df","typeString":"literal_string \"Address: low-level call failed\""}],"id":925,"name":"functionCall","nodeType":"Identifier","overloadedDeclarations":[932,952],"referencedDeclaration":952,"src":"3577:12:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,string memory) returns (bytes memory)"}},"id":929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3577:60:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":924,"id":930,"nodeType":"Return","src":"3570:67:10"}]},"documentation":{"id":916,"nodeType":"StructuredDocumentation","src":"2735:731:10","text":" @dev Performs a Solidity function call using a low level `call`. A\n plain `call` is an unsafe replacement for a function call: use this\n function instead.\n If `target` reverts with a revert reason, it is bubbled up by this\n function (like regular Solidity function calls).\n Returns the raw returned data. To convert to the expected return value,\n use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n Requirements:\n - `target` must be a contract.\n - calling `target` with `data` must not revert.\n _Available since v3.1._"},"id":932,"implemented":true,"kind":"function","modifiers":[],"name":"functionCall","nameLocation":"3480:12:10","nodeType":"FunctionDefinition","parameters":{"id":921,"nodeType":"ParameterList","parameters":[{"constant":false,"id":918,"mutability":"mutable","name":"target","nameLocation":"3501:6:10","nodeType":"VariableDeclaration","scope":932,"src":"3493:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":917,"name":"address","nodeType":"ElementaryTypeName","src":"3493:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":920,"mutability":"mutable","name":"data","nameLocation":"3522:4:10","nodeType":"VariableDeclaration","scope":932,"src":"3509:17:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":919,"name":"bytes","nodeType":"ElementaryTypeName","src":"3509:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3492:35:10"},"returnParameters":{"id":924,"nodeType":"ParameterList","parameters":[{"constant":false,"id":923,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":932,"src":"3546:12:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":922,"name":"bytes","nodeType":"ElementaryTypeName","src":"3546:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3545:14:10"},"scope":1158,"src":"3471:173:10","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":951,"nodeType":"Block","src":"4013:76:10","statements":[{"expression":{"arguments":[{"id":945,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":935,"src":"4052:6:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":946,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":937,"src":"4060:4:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"30","id":947,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4066:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":948,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":939,"src":"4069:12:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":944,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[972,1022],"referencedDeclaration":1022,"src":"4030:21:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256,string memory) returns (bytes memory)"}},"id":949,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4030:52:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":943,"id":950,"nodeType":"Return","src":"4023:59:10"}]},"documentation":{"id":933,"nodeType":"StructuredDocumentation","src":"3650:211:10","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._"},"id":952,"implemented":true,"kind":"function","modifiers":[],"name":"functionCall","nameLocation":"3875:12:10","nodeType":"FunctionDefinition","parameters":{"id":940,"nodeType":"ParameterList","parameters":[{"constant":false,"id":935,"mutability":"mutable","name":"target","nameLocation":"3905:6:10","nodeType":"VariableDeclaration","scope":952,"src":"3897:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":934,"name":"address","nodeType":"ElementaryTypeName","src":"3897:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":937,"mutability":"mutable","name":"data","nameLocation":"3934:4:10","nodeType":"VariableDeclaration","scope":952,"src":"3921:17:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":936,"name":"bytes","nodeType":"ElementaryTypeName","src":"3921:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":939,"mutability":"mutable","name":"errorMessage","nameLocation":"3962:12:10","nodeType":"VariableDeclaration","scope":952,"src":"3948:26:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":938,"name":"string","nodeType":"ElementaryTypeName","src":"3948:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3887:93:10"},"returnParameters":{"id":943,"nodeType":"ParameterList","parameters":[{"constant":false,"id":942,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":952,"src":"3999:12:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":941,"name":"bytes","nodeType":"ElementaryTypeName","src":"3999:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3998:14:10"},"scope":1158,"src":"3866:223:10","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":971,"nodeType":"Block","src":"4594:111:10","statements":[{"expression":{"arguments":[{"id":965,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":955,"src":"4633:6:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":966,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":957,"src":"4641:4:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":967,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":959,"src":"4647:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564","id":968,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4654:43:10","typeDescriptions":{"typeIdentifier":"t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc","typeString":"literal_string \"Address: low-level call with value failed\""},"value":"Address: low-level call with value failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc","typeString":"literal_string \"Address: low-level call with value failed\""}],"id":964,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[972,1022],"referencedDeclaration":1022,"src":"4611:21:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256,string memory) returns (bytes memory)"}},"id":969,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4611:87:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":963,"id":970,"nodeType":"Return","src":"4604:94:10"}]},"documentation":{"id":953,"nodeType":"StructuredDocumentation","src":"4095:351:10","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but also transferring `value` wei to `target`.\n Requirements:\n - the calling contract must have an ETH balance of at least `value`.\n - the called Solidity function must be `payable`.\n _Available since v3.1._"},"id":972,"implemented":true,"kind":"function","modifiers":[],"name":"functionCallWithValue","nameLocation":"4460:21:10","nodeType":"FunctionDefinition","parameters":{"id":960,"nodeType":"ParameterList","parameters":[{"constant":false,"id":955,"mutability":"mutable","name":"target","nameLocation":"4499:6:10","nodeType":"VariableDeclaration","scope":972,"src":"4491:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":954,"name":"address","nodeType":"ElementaryTypeName","src":"4491:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":957,"mutability":"mutable","name":"data","nameLocation":"4528:4:10","nodeType":"VariableDeclaration","scope":972,"src":"4515:17:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":956,"name":"bytes","nodeType":"ElementaryTypeName","src":"4515:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":959,"mutability":"mutable","name":"value","nameLocation":"4550:5:10","nodeType":"VariableDeclaration","scope":972,"src":"4542:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":958,"name":"uint256","nodeType":"ElementaryTypeName","src":"4542:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4481:80:10"},"returnParameters":{"id":963,"nodeType":"ParameterList","parameters":[{"constant":false,"id":962,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":972,"src":"4580:12:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":961,"name":"bytes","nodeType":"ElementaryTypeName","src":"4580:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4579:14:10"},"scope":1158,"src":"4451:254:10","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":1021,"nodeType":"Block","src":"5132:320:10","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":989,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5158:4:10","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$1158","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$1158","typeString":"library Address"}],"id":988,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5150:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":987,"name":"address","nodeType":"ElementaryTypeName","src":"5150:7:10","typeDescriptions":{}}},"id":990,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5150:13:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":991,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5164:7:10","memberName":"balance","nodeType":"MemberAccess","src":"5150:21:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":992,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":979,"src":"5175:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5150:30:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c","id":994,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5182:40:10","typeDescriptions":{"typeIdentifier":"t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c","typeString":"literal_string \"Address: insufficient balance for call\""},"value":"Address: insufficient balance for call"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c","typeString":"literal_string \"Address: insufficient balance for call\""}],"id":986,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5142:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5142:81:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":996,"nodeType":"ExpressionStatement","src":"5142:81:10"},{"expression":{"arguments":[{"arguments":[{"id":999,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":975,"src":"5252:6:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":998,"name":"isContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":881,"src":"5241:10:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":1000,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5241:18:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374","id":1001,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5261:31:10","typeDescriptions":{"typeIdentifier":"t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad","typeString":"literal_string \"Address: call to non-contract\""},"value":"Address: call to non-contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad","typeString":"literal_string \"Address: call to non-contract\""}],"id":997,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5233:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1002,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5233:60:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1003,"nodeType":"ExpressionStatement","src":"5233:60:10"},{"assignments":[1005,1007],"declarations":[{"constant":false,"id":1005,"mutability":"mutable","name":"success","nameLocation":"5310:7:10","nodeType":"VariableDeclaration","scope":1021,"src":"5305:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1004,"name":"bool","nodeType":"ElementaryTypeName","src":"5305:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":1007,"mutability":"mutable","name":"returndata","nameLocation":"5332:10:10","nodeType":"VariableDeclaration","scope":1021,"src":"5319:23:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1006,"name":"bytes","nodeType":"ElementaryTypeName","src":"5319:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":1014,"initialValue":{"arguments":[{"id":1012,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":977,"src":"5372:4:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":1008,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":975,"src":"5346:6:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5353:4:10","memberName":"call","nodeType":"MemberAccess","src":"5346:11:10","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":1011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":1010,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":979,"src":"5365:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"5346:25:10","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":1013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5346:31:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"5304:73:10"},{"expression":{"arguments":[{"id":1016,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1005,"src":"5411:7:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":1017,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1007,"src":"5420:10:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":1018,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":981,"src":"5432:12:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1015,"name":"verifyCallResult","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1157,"src":"5394:16:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (bool,bytes memory,string memory) pure returns (bytes memory)"}},"id":1019,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5394:51:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":985,"id":1020,"nodeType":"Return","src":"5387:58:10"}]},"documentation":{"id":973,"nodeType":"StructuredDocumentation","src":"4711:237:10","text":" @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n with `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._"},"id":1022,"implemented":true,"kind":"function","modifiers":[],"name":"functionCallWithValue","nameLocation":"4962:21:10","nodeType":"FunctionDefinition","parameters":{"id":982,"nodeType":"ParameterList","parameters":[{"constant":false,"id":975,"mutability":"mutable","name":"target","nameLocation":"5001:6:10","nodeType":"VariableDeclaration","scope":1022,"src":"4993:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":974,"name":"address","nodeType":"ElementaryTypeName","src":"4993:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":977,"mutability":"mutable","name":"data","nameLocation":"5030:4:10","nodeType":"VariableDeclaration","scope":1022,"src":"5017:17:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":976,"name":"bytes","nodeType":"ElementaryTypeName","src":"5017:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":979,"mutability":"mutable","name":"value","nameLocation":"5052:5:10","nodeType":"VariableDeclaration","scope":1022,"src":"5044:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":978,"name":"uint256","nodeType":"ElementaryTypeName","src":"5044:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":981,"mutability":"mutable","name":"errorMessage","nameLocation":"5081:12:10","nodeType":"VariableDeclaration","scope":1022,"src":"5067:26:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":980,"name":"string","nodeType":"ElementaryTypeName","src":"5067:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4983:116:10"},"returnParameters":{"id":985,"nodeType":"ParameterList","parameters":[{"constant":false,"id":984,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1022,"src":"5118:12:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":983,"name":"bytes","nodeType":"ElementaryTypeName","src":"5118:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5117:14:10"},"scope":1158,"src":"4953:499:10","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":1038,"nodeType":"Block","src":"5729:97:10","statements":[{"expression":{"arguments":[{"id":1033,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1025,"src":"5765:6:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1034,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1027,"src":"5773:4:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564","id":1035,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5779:39:10","typeDescriptions":{"typeIdentifier":"t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0","typeString":"literal_string \"Address: low-level static call failed\""},"value":"Address: low-level static call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0","typeString":"literal_string \"Address: low-level static call failed\""}],"id":1032,"name":"functionStaticCall","nodeType":"Identifier","overloadedDeclarations":[1039,1074],"referencedDeclaration":1074,"src":"5746:18:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,string memory) view returns (bytes memory)"}},"id":1036,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5746:73:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":1031,"id":1037,"nodeType":"Return","src":"5739:80:10"}]},"documentation":{"id":1023,"nodeType":"StructuredDocumentation","src":"5458:166:10","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._"},"id":1039,"implemented":true,"kind":"function","modifiers":[],"name":"functionStaticCall","nameLocation":"5638:18:10","nodeType":"FunctionDefinition","parameters":{"id":1028,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1025,"mutability":"mutable","name":"target","nameLocation":"5665:6:10","nodeType":"VariableDeclaration","scope":1039,"src":"5657:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1024,"name":"address","nodeType":"ElementaryTypeName","src":"5657:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1027,"mutability":"mutable","name":"data","nameLocation":"5686:4:10","nodeType":"VariableDeclaration","scope":1039,"src":"5673:17:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1026,"name":"bytes","nodeType":"ElementaryTypeName","src":"5673:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5656:35:10"},"returnParameters":{"id":1031,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1030,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1039,"src":"5715:12:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1029,"name":"bytes","nodeType":"ElementaryTypeName","src":"5715:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5714:14:10"},"scope":1158,"src":"5629:197:10","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":1073,"nodeType":"Block","src":"6168:228:10","statements":[{"expression":{"arguments":[{"arguments":[{"id":1053,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1042,"src":"6197:6:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1052,"name":"isContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":881,"src":"6186:10:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":1054,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6186:18:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a207374617469632063616c6c20746f206e6f6e2d636f6e7472616374","id":1055,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6206:38:10","typeDescriptions":{"typeIdentifier":"t_stringliteral_c79cc78e4f16ce3933a42b84c73868f93bb4a59c031a0acf576679de98c608a9","typeString":"literal_string \"Address: static call to non-contract\""},"value":"Address: static call to non-contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c79cc78e4f16ce3933a42b84c73868f93bb4a59c031a0acf576679de98c608a9","typeString":"literal_string \"Address: static call to non-contract\""}],"id":1051,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6178:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1056,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6178:67:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1057,"nodeType":"ExpressionStatement","src":"6178:67:10"},{"assignments":[1059,1061],"declarations":[{"constant":false,"id":1059,"mutability":"mutable","name":"success","nameLocation":"6262:7:10","nodeType":"VariableDeclaration","scope":1073,"src":"6257:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1058,"name":"bool","nodeType":"ElementaryTypeName","src":"6257:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":1061,"mutability":"mutable","name":"returndata","nameLocation":"6284:10:10","nodeType":"VariableDeclaration","scope":1073,"src":"6271:23:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1060,"name":"bytes","nodeType":"ElementaryTypeName","src":"6271:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":1066,"initialValue":{"arguments":[{"id":1064,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1044,"src":"6316:4:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":1062,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1042,"src":"6298:6:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6305:10:10","memberName":"staticcall","nodeType":"MemberAccess","src":"6298:17:10","typeDescriptions":{"typeIdentifier":"t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) view returns (bool,bytes memory)"}},"id":1065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6298:23:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"6256:65:10"},{"expression":{"arguments":[{"id":1068,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1059,"src":"6355:7:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":1069,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1061,"src":"6364:10:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":1070,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1046,"src":"6376:12:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1067,"name":"verifyCallResult","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1157,"src":"6338:16:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (bool,bytes memory,string memory) pure returns (bytes memory)"}},"id":1071,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6338:51:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":1050,"id":1072,"nodeType":"Return","src":"6331:58:10"}]},"documentation":{"id":1040,"nodeType":"StructuredDocumentation","src":"5832:173:10","text":" @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._"},"id":1074,"implemented":true,"kind":"function","modifiers":[],"name":"functionStaticCall","nameLocation":"6019:18:10","nodeType":"FunctionDefinition","parameters":{"id":1047,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1042,"mutability":"mutable","name":"target","nameLocation":"6055:6:10","nodeType":"VariableDeclaration","scope":1074,"src":"6047:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1041,"name":"address","nodeType":"ElementaryTypeName","src":"6047:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1044,"mutability":"mutable","name":"data","nameLocation":"6084:4:10","nodeType":"VariableDeclaration","scope":1074,"src":"6071:17:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1043,"name":"bytes","nodeType":"ElementaryTypeName","src":"6071:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1046,"mutability":"mutable","name":"errorMessage","nameLocation":"6112:12:10","nodeType":"VariableDeclaration","scope":1074,"src":"6098:26:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1045,"name":"string","nodeType":"ElementaryTypeName","src":"6098:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6037:93:10"},"returnParameters":{"id":1050,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1049,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1074,"src":"6154:12:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1048,"name":"bytes","nodeType":"ElementaryTypeName","src":"6154:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6153:14:10"},"scope":1158,"src":"6010:386:10","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":1090,"nodeType":"Block","src":"6672:101:10","statements":[{"expression":{"arguments":[{"id":1085,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1077,"src":"6710:6:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1086,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1079,"src":"6718:4:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564","id":1087,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6724:41:10","typeDescriptions":{"typeIdentifier":"t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398","typeString":"literal_string \"Address: low-level delegate call failed\""},"value":"Address: low-level delegate call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398","typeString":"literal_string \"Address: low-level delegate call failed\""}],"id":1084,"name":"functionDelegateCall","nodeType":"Identifier","overloadedDeclarations":[1091,1126],"referencedDeclaration":1126,"src":"6689:20:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,string memory) returns (bytes memory)"}},"id":1088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6689:77:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":1083,"id":1089,"nodeType":"Return","src":"6682:84:10"}]},"documentation":{"id":1075,"nodeType":"StructuredDocumentation","src":"6402:168:10","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._"},"id":1091,"implemented":true,"kind":"function","modifiers":[],"name":"functionDelegateCall","nameLocation":"6584:20:10","nodeType":"FunctionDefinition","parameters":{"id":1080,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1077,"mutability":"mutable","name":"target","nameLocation":"6613:6:10","nodeType":"VariableDeclaration","scope":1091,"src":"6605:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1076,"name":"address","nodeType":"ElementaryTypeName","src":"6605:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1079,"mutability":"mutable","name":"data","nameLocation":"6634:4:10","nodeType":"VariableDeclaration","scope":1091,"src":"6621:17:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1078,"name":"bytes","nodeType":"ElementaryTypeName","src":"6621:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6604:35:10"},"returnParameters":{"id":1083,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1082,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1091,"src":"6658:12:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1081,"name":"bytes","nodeType":"ElementaryTypeName","src":"6658:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6657:14:10"},"scope":1158,"src":"6575:198:10","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":1125,"nodeType":"Block","src":"7114:232:10","statements":[{"expression":{"arguments":[{"arguments":[{"id":1105,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1094,"src":"7143:6:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1104,"name":"isContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":881,"src":"7132:10:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":1106,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7132:18:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6e7472616374","id":1107,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7152:40:10","typeDescriptions":{"typeIdentifier":"t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520","typeString":"literal_string \"Address: delegate call to non-contract\""},"value":"Address: delegate call to non-contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520","typeString":"literal_string \"Address: delegate call to non-contract\""}],"id":1103,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7124:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7124:69:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1109,"nodeType":"ExpressionStatement","src":"7124:69:10"},{"assignments":[1111,1113],"declarations":[{"constant":false,"id":1111,"mutability":"mutable","name":"success","nameLocation":"7210:7:10","nodeType":"VariableDeclaration","scope":1125,"src":"7205:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1110,"name":"bool","nodeType":"ElementaryTypeName","src":"7205:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":1113,"mutability":"mutable","name":"returndata","nameLocation":"7232:10:10","nodeType":"VariableDeclaration","scope":1125,"src":"7219:23:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1112,"name":"bytes","nodeType":"ElementaryTypeName","src":"7219:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":1118,"initialValue":{"arguments":[{"id":1116,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1096,"src":"7266:4:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":1114,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1094,"src":"7246:6:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1115,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7253:12:10","memberName":"delegatecall","nodeType":"MemberAccess","src":"7246:19:10","typeDescriptions":{"typeIdentifier":"t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) returns (bool,bytes memory)"}},"id":1117,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7246:25:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"7204:67:10"},{"expression":{"arguments":[{"id":1120,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1111,"src":"7305:7:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":1121,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1113,"src":"7314:10:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":1122,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1098,"src":"7326:12:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1119,"name":"verifyCallResult","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1157,"src":"7288:16:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (bool,bytes memory,string memory) pure returns (bytes memory)"}},"id":1123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7288:51:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":1102,"id":1124,"nodeType":"Return","src":"7281:58:10"}]},"documentation":{"id":1092,"nodeType":"StructuredDocumentation","src":"6779:175:10","text":" @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._"},"id":1126,"implemented":true,"kind":"function","modifiers":[],"name":"functionDelegateCall","nameLocation":"6968:20:10","nodeType":"FunctionDefinition","parameters":{"id":1099,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1094,"mutability":"mutable","name":"target","nameLocation":"7006:6:10","nodeType":"VariableDeclaration","scope":1126,"src":"6998:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1093,"name":"address","nodeType":"ElementaryTypeName","src":"6998:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1096,"mutability":"mutable","name":"data","nameLocation":"7035:4:10","nodeType":"VariableDeclaration","scope":1126,"src":"7022:17:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1095,"name":"bytes","nodeType":"ElementaryTypeName","src":"7022:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1098,"mutability":"mutable","name":"errorMessage","nameLocation":"7063:12:10","nodeType":"VariableDeclaration","scope":1126,"src":"7049:26:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1097,"name":"string","nodeType":"ElementaryTypeName","src":"7049:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6988:93:10"},"returnParameters":{"id":1102,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1101,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1126,"src":"7100:12:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1100,"name":"bytes","nodeType":"ElementaryTypeName","src":"7100:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7099:14:10"},"scope":1158,"src":"6959:387:10","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":1156,"nodeType":"Block","src":"7726:532:10","statements":[{"condition":{"id":1138,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1129,"src":"7740:7:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1154,"nodeType":"Block","src":"7797:455:10","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1145,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1142,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1131,"src":"7881:10:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1143,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7892:6:10","memberName":"length","nodeType":"MemberAccess","src":"7881:17:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1144,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7901:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7881:21:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1152,"nodeType":"Block","src":"8189:53:10","statements":[{"expression":{"arguments":[{"id":1149,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1133,"src":"8214:12:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1148,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"8207:6:10","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":1150,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8207:20:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1151,"nodeType":"ExpressionStatement","src":"8207:20:10"}]},"id":1153,"nodeType":"IfStatement","src":"7877:365:10","trueBody":{"id":1147,"nodeType":"Block","src":"7904:279:10","statements":[{"AST":{"nativeSrc":"8024:145:10","nodeType":"YulBlock","src":"8024:145:10","statements":[{"nativeSrc":"8046:40:10","nodeType":"YulVariableDeclaration","src":"8046:40:10","value":{"arguments":[{"name":"returndata","nativeSrc":"8075:10:10","nodeType":"YulIdentifier","src":"8075:10:10"}],"functionName":{"name":"mload","nativeSrc":"8069:5:10","nodeType":"YulIdentifier","src":"8069:5:10"},"nativeSrc":"8069:17:10","nodeType":"YulFunctionCall","src":"8069:17:10"},"variables":[{"name":"returndata_size","nativeSrc":"8050:15:10","nodeType":"YulTypedName","src":"8050:15:10","type":""}]},{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"8118:2:10","nodeType":"YulLiteral","src":"8118:2:10","type":"","value":"32"},{"name":"returndata","nativeSrc":"8122:10:10","nodeType":"YulIdentifier","src":"8122:10:10"}],"functionName":{"name":"add","nativeSrc":"8114:3:10","nodeType":"YulIdentifier","src":"8114:3:10"},"nativeSrc":"8114:19:10","nodeType":"YulFunctionCall","src":"8114:19:10"},{"name":"returndata_size","nativeSrc":"8135:15:10","nodeType":"YulIdentifier","src":"8135:15:10"}],"functionName":{"name":"revert","nativeSrc":"8107:6:10","nodeType":"YulIdentifier","src":"8107:6:10"},"nativeSrc":"8107:44:10","nodeType":"YulFunctionCall","src":"8107:44:10"},"nativeSrc":"8107:44:10","nodeType":"YulExpressionStatement","src":"8107:44:10"}]},"evmVersion":"cancun","externalReferences":[{"declaration":1131,"isOffset":false,"isSlot":false,"src":"8075:10:10","valueSize":1},{"declaration":1131,"isOffset":false,"isSlot":false,"src":"8122:10:10","valueSize":1}],"id":1146,"nodeType":"InlineAssembly","src":"8015:154:10"}]}}]},"id":1155,"nodeType":"IfStatement","src":"7736:516:10","trueBody":{"id":1141,"nodeType":"Block","src":"7749:42:10","statements":[{"expression":{"id":1139,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1131,"src":"7770:10:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":1137,"id":1140,"nodeType":"Return","src":"7763:17:10"}]}}]},"documentation":{"id":1127,"nodeType":"StructuredDocumentation","src":"7352:209:10","text":" @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the\n revert reason using the provided one.\n _Available since v4.3._"},"id":1157,"implemented":true,"kind":"function","modifiers":[],"name":"verifyCallResult","nameLocation":"7575:16:10","nodeType":"FunctionDefinition","parameters":{"id":1134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1129,"mutability":"mutable","name":"success","nameLocation":"7606:7:10","nodeType":"VariableDeclaration","scope":1157,"src":"7601:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1128,"name":"bool","nodeType":"ElementaryTypeName","src":"7601:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":1131,"mutability":"mutable","name":"returndata","nameLocation":"7636:10:10","nodeType":"VariableDeclaration","scope":1157,"src":"7623:23:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1130,"name":"bytes","nodeType":"ElementaryTypeName","src":"7623:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1133,"mutability":"mutable","name":"errorMessage","nameLocation":"7670:12:10","nodeType":"VariableDeclaration","scope":1157,"src":"7656:26:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1132,"name":"string","nodeType":"ElementaryTypeName","src":"7656:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7591:97:10"},"returnParameters":{"id":1137,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1136,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1157,"src":"7712:12:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1135,"name":"bytes","nodeType":"ElementaryTypeName","src":"7712:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7711:14:10"},"scope":1158,"src":"7566:692:10","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":1159,"src":"199:8061:10","usedErrors":[],"usedEvents":[]}],"src":"106:8155:10"},"id":10},"hardhat-deploy/solc_0.8/openzeppelin/utils/Context.sol":{"ast":{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/utils/Context.sol","exportedSymbols":{"Context":[1180]},"id":1181,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1160,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"86:23:11"},{"abstract":true,"baseContracts":[],"canonicalName":"Context","contractDependencies":[],"contractKind":"contract","documentation":{"id":1161,"nodeType":"StructuredDocumentation","src":"111:496:11","text":" @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 This contract is only required for intermediate, library-like contracts."},"fullyImplemented":true,"id":1180,"linearizedBaseContracts":[1180],"name":"Context","nameLocation":"626:7:11","nodeType":"ContractDefinition","nodes":[{"body":{"id":1169,"nodeType":"Block","src":"702:34:11","statements":[{"expression":{"expression":{"id":1166,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"719:3:11","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"723:6:11","memberName":"sender","nodeType":"MemberAccess","src":"719:10:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":1165,"id":1168,"nodeType":"Return","src":"712:17:11"}]},"id":1170,"implemented":true,"kind":"function","modifiers":[],"name":"_msgSender","nameLocation":"649:10:11","nodeType":"FunctionDefinition","parameters":{"id":1162,"nodeType":"ParameterList","parameters":[],"src":"659:2:11"},"returnParameters":{"id":1165,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1164,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1170,"src":"693:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1163,"name":"address","nodeType":"ElementaryTypeName","src":"693:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"692:9:11"},"scope":1180,"src":"640:96:11","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":1178,"nodeType":"Block","src":"809:32:11","statements":[{"expression":{"expression":{"id":1175,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"826:3:11","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"830:4:11","memberName":"data","nodeType":"MemberAccess","src":"826:8:11","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"functionReturnParameters":1174,"id":1177,"nodeType":"Return","src":"819:15:11"}]},"id":1179,"implemented":true,"kind":"function","modifiers":[],"name":"_msgData","nameLocation":"751:8:11","nodeType":"FunctionDefinition","parameters":{"id":1171,"nodeType":"ParameterList","parameters":[],"src":"759:2:11"},"returnParameters":{"id":1174,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1173,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1179,"src":"793:14:11","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1172,"name":"bytes","nodeType":"ElementaryTypeName","src":"793:5:11","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"792:16:11"},"scope":1180,"src":"742:99:11","stateMutability":"view","virtual":true,"visibility":"internal"}],"scope":1181,"src":"608:235:11","usedErrors":[],"usedEvents":[]}],"src":"86:758:11"},"id":11},"hardhat-deploy/solc_0.8/openzeppelin/utils/StorageSlot.sol":{"ast":{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/utils/StorageSlot.sol","exportedSymbols":{"StorageSlot":[1240]},"id":1241,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1182,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"90:23:12"},{"abstract":false,"baseContracts":[],"canonicalName":"StorageSlot","contractDependencies":[],"contractKind":"library","documentation":{"id":1183,"nodeType":"StructuredDocumentation","src":"115:1148:12","text":" @dev Library for reading and writing primitive types to specific storage slots.\n Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts.\n This library helps with reading and writing to such slots without the need for inline assembly.\n The functions in this library return Slot structs that contain a `value` member that can be used to read or write.\n Example usage to set ERC1967 implementation slot:\n ```\n contract ERC1967 {\n bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\n function _getImplementation() internal view returns (address) {\n return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\n }\n function _setImplementation(address newImplementation) internal {\n require(Address.isContract(newImplementation), \"ERC1967: new implementation is not a contract\");\n StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\n }\n }\n ```\n _Available since v4.1 for `address`, `bool`, `bytes32`, and `uint256`._"},"fullyImplemented":true,"id":1240,"linearizedBaseContracts":[1240],"name":"StorageSlot","nameLocation":"1272:11:12","nodeType":"ContractDefinition","nodes":[{"canonicalName":"StorageSlot.AddressSlot","id":1186,"members":[{"constant":false,"id":1185,"mutability":"mutable","name":"value","nameLocation":"1327:5:12","nodeType":"VariableDeclaration","scope":1186,"src":"1319:13:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1184,"name":"address","nodeType":"ElementaryTypeName","src":"1319:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"AddressSlot","nameLocation":"1297:11:12","nodeType":"StructDefinition","scope":1240,"src":"1290:49:12","visibility":"public"},{"canonicalName":"StorageSlot.BooleanSlot","id":1189,"members":[{"constant":false,"id":1188,"mutability":"mutable","name":"value","nameLocation":"1379:5:12","nodeType":"VariableDeclaration","scope":1189,"src":"1374:10:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1187,"name":"bool","nodeType":"ElementaryTypeName","src":"1374:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"BooleanSlot","nameLocation":"1352:11:12","nodeType":"StructDefinition","scope":1240,"src":"1345:46:12","visibility":"public"},{"canonicalName":"StorageSlot.Bytes32Slot","id":1192,"members":[{"constant":false,"id":1191,"mutability":"mutable","name":"value","nameLocation":"1434:5:12","nodeType":"VariableDeclaration","scope":1192,"src":"1426:13:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1190,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1426:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"Bytes32Slot","nameLocation":"1404:11:12","nodeType":"StructDefinition","scope":1240,"src":"1397:49:12","visibility":"public"},{"canonicalName":"StorageSlot.Uint256Slot","id":1195,"members":[{"constant":false,"id":1194,"mutability":"mutable","name":"value","nameLocation":"1489:5:12","nodeType":"VariableDeclaration","scope":1195,"src":"1481:13:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1193,"name":"uint256","nodeType":"ElementaryTypeName","src":"1481:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Uint256Slot","nameLocation":"1459:11:12","nodeType":"StructDefinition","scope":1240,"src":"1452:49:12","visibility":"public"},{"body":{"id":1205,"nodeType":"Block","src":"1683:63:12","statements":[{"AST":{"nativeSrc":"1702:38:12","nodeType":"YulBlock","src":"1702:38:12","statements":[{"nativeSrc":"1716:14:12","nodeType":"YulAssignment","src":"1716:14:12","value":{"name":"slot","nativeSrc":"1726:4:12","nodeType":"YulIdentifier","src":"1726:4:12"},"variableNames":[{"name":"r.slot","nativeSrc":"1716:6:12","nodeType":"YulIdentifier","src":"1716:6:12"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":1202,"isOffset":false,"isSlot":true,"src":"1716:6:12","suffix":"slot","valueSize":1},{"declaration":1198,"isOffset":false,"isSlot":false,"src":"1726:4:12","valueSize":1}],"id":1204,"nodeType":"InlineAssembly","src":"1693:47:12"}]},"documentation":{"id":1196,"nodeType":"StructuredDocumentation","src":"1507:87:12","text":" @dev Returns an `AddressSlot` with member `value` located at `slot`."},"id":1206,"implemented":true,"kind":"function","modifiers":[],"name":"getAddressSlot","nameLocation":"1608:14:12","nodeType":"FunctionDefinition","parameters":{"id":1199,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1198,"mutability":"mutable","name":"slot","nameLocation":"1631:4:12","nodeType":"VariableDeclaration","scope":1206,"src":"1623:12:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1197,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1623:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1622:14:12"},"returnParameters":{"id":1203,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1202,"mutability":"mutable","name":"r","nameLocation":"1680:1:12","nodeType":"VariableDeclaration","scope":1206,"src":"1660:21:12","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$1186_storage_ptr","typeString":"struct StorageSlot.AddressSlot"},"typeName":{"id":1201,"nodeType":"UserDefinedTypeName","pathNode":{"id":1200,"name":"AddressSlot","nameLocations":["1660:11:12"],"nodeType":"IdentifierPath","referencedDeclaration":1186,"src":"1660:11:12"},"referencedDeclaration":1186,"src":"1660:11:12","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$1186_storage_ptr","typeString":"struct StorageSlot.AddressSlot"}},"visibility":"internal"}],"src":"1659:23:12"},"scope":1240,"src":"1599:147:12","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1216,"nodeType":"Block","src":"1928:63:12","statements":[{"AST":{"nativeSrc":"1947:38:12","nodeType":"YulBlock","src":"1947:38:12","statements":[{"nativeSrc":"1961:14:12","nodeType":"YulAssignment","src":"1961:14:12","value":{"name":"slot","nativeSrc":"1971:4:12","nodeType":"YulIdentifier","src":"1971:4:12"},"variableNames":[{"name":"r.slot","nativeSrc":"1961:6:12","nodeType":"YulIdentifier","src":"1961:6:12"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":1213,"isOffset":false,"isSlot":true,"src":"1961:6:12","suffix":"slot","valueSize":1},{"declaration":1209,"isOffset":false,"isSlot":false,"src":"1971:4:12","valueSize":1}],"id":1215,"nodeType":"InlineAssembly","src":"1938:47:12"}]},"documentation":{"id":1207,"nodeType":"StructuredDocumentation","src":"1752:87:12","text":" @dev Returns an `BooleanSlot` with member `value` located at `slot`."},"id":1217,"implemented":true,"kind":"function","modifiers":[],"name":"getBooleanSlot","nameLocation":"1853:14:12","nodeType":"FunctionDefinition","parameters":{"id":1210,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1209,"mutability":"mutable","name":"slot","nameLocation":"1876:4:12","nodeType":"VariableDeclaration","scope":1217,"src":"1868:12:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1208,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1868:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1867:14:12"},"returnParameters":{"id":1214,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1213,"mutability":"mutable","name":"r","nameLocation":"1925:1:12","nodeType":"VariableDeclaration","scope":1217,"src":"1905:21:12","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_BooleanSlot_$1189_storage_ptr","typeString":"struct StorageSlot.BooleanSlot"},"typeName":{"id":1212,"nodeType":"UserDefinedTypeName","pathNode":{"id":1211,"name":"BooleanSlot","nameLocations":["1905:11:12"],"nodeType":"IdentifierPath","referencedDeclaration":1189,"src":"1905:11:12"},"referencedDeclaration":1189,"src":"1905:11:12","typeDescriptions":{"typeIdentifier":"t_struct$_BooleanSlot_$1189_storage_ptr","typeString":"struct StorageSlot.BooleanSlot"}},"visibility":"internal"}],"src":"1904:23:12"},"scope":1240,"src":"1844:147:12","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1227,"nodeType":"Block","src":"2173:63:12","statements":[{"AST":{"nativeSrc":"2192:38:12","nodeType":"YulBlock","src":"2192:38:12","statements":[{"nativeSrc":"2206:14:12","nodeType":"YulAssignment","src":"2206:14:12","value":{"name":"slot","nativeSrc":"2216:4:12","nodeType":"YulIdentifier","src":"2216:4:12"},"variableNames":[{"name":"r.slot","nativeSrc":"2206:6:12","nodeType":"YulIdentifier","src":"2206:6:12"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":1224,"isOffset":false,"isSlot":true,"src":"2206:6:12","suffix":"slot","valueSize":1},{"declaration":1220,"isOffset":false,"isSlot":false,"src":"2216:4:12","valueSize":1}],"id":1226,"nodeType":"InlineAssembly","src":"2183:47:12"}]},"documentation":{"id":1218,"nodeType":"StructuredDocumentation","src":"1997:87:12","text":" @dev Returns an `Bytes32Slot` with member `value` located at `slot`."},"id":1228,"implemented":true,"kind":"function","modifiers":[],"name":"getBytes32Slot","nameLocation":"2098:14:12","nodeType":"FunctionDefinition","parameters":{"id":1221,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1220,"mutability":"mutable","name":"slot","nameLocation":"2121:4:12","nodeType":"VariableDeclaration","scope":1228,"src":"2113:12:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1219,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2113:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2112:14:12"},"returnParameters":{"id":1225,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1224,"mutability":"mutable","name":"r","nameLocation":"2170:1:12","nodeType":"VariableDeclaration","scope":1228,"src":"2150:21:12","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$1192_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot"},"typeName":{"id":1223,"nodeType":"UserDefinedTypeName","pathNode":{"id":1222,"name":"Bytes32Slot","nameLocations":["2150:11:12"],"nodeType":"IdentifierPath","referencedDeclaration":1192,"src":"2150:11:12"},"referencedDeclaration":1192,"src":"2150:11:12","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$1192_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot"}},"visibility":"internal"}],"src":"2149:23:12"},"scope":1240,"src":"2089:147:12","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1238,"nodeType":"Block","src":"2418:63:12","statements":[{"AST":{"nativeSrc":"2437:38:12","nodeType":"YulBlock","src":"2437:38:12","statements":[{"nativeSrc":"2451:14:12","nodeType":"YulAssignment","src":"2451:14:12","value":{"name":"slot","nativeSrc":"2461:4:12","nodeType":"YulIdentifier","src":"2461:4:12"},"variableNames":[{"name":"r.slot","nativeSrc":"2451:6:12","nodeType":"YulIdentifier","src":"2451:6:12"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":1235,"isOffset":false,"isSlot":true,"src":"2451:6:12","suffix":"slot","valueSize":1},{"declaration":1231,"isOffset":false,"isSlot":false,"src":"2461:4:12","valueSize":1}],"id":1237,"nodeType":"InlineAssembly","src":"2428:47:12"}]},"documentation":{"id":1229,"nodeType":"StructuredDocumentation","src":"2242:87:12","text":" @dev Returns an `Uint256Slot` with member `value` located at `slot`."},"id":1239,"implemented":true,"kind":"function","modifiers":[],"name":"getUint256Slot","nameLocation":"2343:14:12","nodeType":"FunctionDefinition","parameters":{"id":1232,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1231,"mutability":"mutable","name":"slot","nameLocation":"2366:4:12","nodeType":"VariableDeclaration","scope":1239,"src":"2358:12:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1230,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2358:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2357:14:12"},"returnParameters":{"id":1236,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1235,"mutability":"mutable","name":"r","nameLocation":"2415:1:12","nodeType":"VariableDeclaration","scope":1239,"src":"2395:21:12","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Uint256Slot_$1195_storage_ptr","typeString":"struct StorageSlot.Uint256Slot"},"typeName":{"id":1234,"nodeType":"UserDefinedTypeName","pathNode":{"id":1233,"name":"Uint256Slot","nameLocations":["2395:11:12"],"nodeType":"IdentifierPath","referencedDeclaration":1195,"src":"2395:11:12"},"referencedDeclaration":1195,"src":"2395:11:12","typeDescriptions":{"typeIdentifier":"t_struct$_Uint256Slot_$1195_storage_ptr","typeString":"struct StorageSlot.Uint256Slot"}},"visibility":"internal"}],"src":"2394:23:12"},"scope":1240,"src":"2334:147:12","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":1241,"src":"1264:1219:12","usedErrors":[],"usedEvents":[]}],"src":"90:2394:12"},"id":12},"hardhat-deploy/solc_0.8/proxy/OptimizedTransparentUpgradeableProxy.sol":{"ast":{"absolutePath":"hardhat-deploy/solc_0.8/proxy/OptimizedTransparentUpgradeableProxy.sol","exportedSymbols":{"Address":[1158],"ERC1967Proxy":[174],"ERC1967Upgrade":[492],"IBeacon":[554],"IERC1822Proxiable":[121],"OptimizedTransparentUpgradeableProxy":[1415],"Proxy":[544],"StorageSlot":[1240]},"id":1416,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1242,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"118:23:13"},{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Proxy.sol","file":"../openzeppelin/proxy/ERC1967/ERC1967Proxy.sol","id":1243,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1416,"sourceUnit":175,"src":"143:56:13","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":1245,"name":"ERC1967Proxy","nameLocations":["1702:12:13"],"nodeType":"IdentifierPath","referencedDeclaration":174,"src":"1702:12:13"},"id":1246,"nodeType":"InheritanceSpecifier","src":"1702:12:13"}],"canonicalName":"OptimizedTransparentUpgradeableProxy","contractDependencies":[],"contractKind":"contract","documentation":{"id":1244,"nodeType":"StructuredDocumentation","src":"201:1451:13","text":" @dev This contract implements a proxy that is upgradeable by an admin.\n To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector\n clashing], which can potentially be used in an attack, this contract uses the\n https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two\n things that go hand in hand:\n 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if\n that call matches one of the admin functions exposed by the proxy itself.\n 2. If the admin calls the proxy, it can access the admin functions, but its calls will never be forwarded to the\n implementation. If the admin tries to call a function on the implementation it will fail with an error that says\n \"admin cannot fallback to proxy target\".\n These properties mean that the admin account can only be used for admin actions like upgrading the proxy or changing\n the admin, so it's best if it's a dedicated account that is not used for anything else. This will avoid headaches due\n to sudden errors when trying to call a function from the proxy implementation.\n Our recommendation is for the dedicated account to be an instance of the {ProxyAdmin} contract. If set up this way,\n you should think of the `ProxyAdmin` instance as the real administrative interface of your proxy."},"fullyImplemented":true,"id":1415,"linearizedBaseContracts":[1415,174,492,544],"name":"OptimizedTransparentUpgradeableProxy","nameLocation":"1662:36:13","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":1248,"mutability":"immutable","name":"_ADMIN","nameLocation":"1748:6:13","nodeType":"VariableDeclaration","scope":1415,"src":"1721:33:13","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1247,"name":"address","nodeType":"ElementaryTypeName","src":"1721:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"body":{"id":1295,"nodeType":"Block","src":"2106:369:13","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":1275,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":1263,"name":"_ADMIN_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":332,"src":"2123:11:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1273,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"hexValue":"656970313936372e70726f78792e61646d696e","id":1269,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2164:21:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6104","typeString":"literal_string \"eip1967.proxy.admin\""},"value":"eip1967.proxy.admin"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6104","typeString":"literal_string \"eip1967.proxy.admin\""}],"id":1268,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2154:9:13","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":1270,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2154:32:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1267,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2146:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":1266,"name":"uint256","nodeType":"ElementaryTypeName","src":"2146:7:13","typeDescriptions":{}}},"id":1271,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2146:41:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":1272,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2190:1:13","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2146:45:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1265,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2138:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":1264,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2138:7:13","typeDescriptions":{}}},"id":1274,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2138:54:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2123:69:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1262,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"2116:6:13","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":1276,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2116:77:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1277,"nodeType":"ExpressionStatement","src":"2116:77:13"},{"expression":{"id":1280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1278,"name":"_ADMIN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1248,"src":"2203:6:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1279,"name":"admin_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1253,"src":"2212:6:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2203:15:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1281,"nodeType":"ExpressionStatement","src":"2203:15:13"},{"assignments":[1283],"declarations":[{"constant":false,"id":1283,"mutability":"mutable","name":"slot","nameLocation":"2285:4:13","nodeType":"VariableDeclaration","scope":1295,"src":"2277:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1282,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2277:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":1285,"initialValue":{"id":1284,"name":"_ADMIN_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":332,"src":"2292:11:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2277:26:13"},{"AST":{"nativeSrc":"2378:44:13","nodeType":"YulBlock","src":"2378:44:13","statements":[{"expression":{"arguments":[{"name":"slot","nativeSrc":"2399:4:13","nodeType":"YulIdentifier","src":"2399:4:13"},{"name":"admin_","nativeSrc":"2405:6:13","nodeType":"YulIdentifier","src":"2405:6:13"}],"functionName":{"name":"sstore","nativeSrc":"2392:6:13","nodeType":"YulIdentifier","src":"2392:6:13"},"nativeSrc":"2392:20:13","nodeType":"YulFunctionCall","src":"2392:20:13"},"nativeSrc":"2392:20:13","nodeType":"YulExpressionStatement","src":"2392:20:13"}]},"evmVersion":"cancun","externalReferences":[{"declaration":1253,"isOffset":false,"isSlot":false,"src":"2405:6:13","valueSize":1},{"declaration":1283,"isOffset":false,"isSlot":false,"src":"2399:4:13","valueSize":1}],"id":1286,"nodeType":"InlineAssembly","src":"2369:53:13"},{"eventCall":{"arguments":[{"arguments":[{"hexValue":"30","id":1290,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2457:1:13","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1289,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2449:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1288,"name":"address","nodeType":"ElementaryTypeName","src":"2449:7:13","typeDescriptions":{}}},"id":1291,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2449:10:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1292,"name":"admin_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1253,"src":"2461:6:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1287,"name":"AdminChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":339,"src":"2436:12:13","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":1293,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2436:32:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1294,"nodeType":"EmitStatement","src":"2431:37:13"}]},"documentation":{"id":1249,"nodeType":"StructuredDocumentation","src":"1761:210:13","text":" @dev Initializes an upgradeable proxy managed by `_admin`, backed by the implementation at `_logic`, and\n optionally initialized with `_data` as explained in {ERC1967Proxy-constructor}."},"id":1296,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":1258,"name":"_logic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1251,"src":"2091:6:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1259,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1255,"src":"2099:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":1260,"kind":"baseConstructorSpecifier","modifierName":{"id":1257,"name":"ERC1967Proxy","nameLocations":["2078:12:13"],"nodeType":"IdentifierPath","referencedDeclaration":174,"src":"2078:12:13"},"nodeType":"ModifierInvocation","src":"2078:27:13"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":1256,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1251,"mutability":"mutable","name":"_logic","nameLocation":"2005:6:13","nodeType":"VariableDeclaration","scope":1296,"src":"1997:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1250,"name":"address","nodeType":"ElementaryTypeName","src":"1997:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1253,"mutability":"mutable","name":"admin_","nameLocation":"2029:6:13","nodeType":"VariableDeclaration","scope":1296,"src":"2021:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1252,"name":"address","nodeType":"ElementaryTypeName","src":"2021:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1255,"mutability":"mutable","name":"_data","nameLocation":"2058:5:13","nodeType":"VariableDeclaration","scope":1296,"src":"2045:18:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1254,"name":"bytes","nodeType":"ElementaryTypeName","src":"2045:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1987:82:13"},"returnParameters":{"id":1261,"nodeType":"ParameterList","parameters":[],"src":"2106:0:13"},"scope":1415,"src":"1976:499:13","stateMutability":"payable","virtual":false,"visibility":"public"},{"body":{"id":1311,"nodeType":"Block","src":"2635:115:13","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1303,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1299,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2649:3:13","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2653:6:13","memberName":"sender","nodeType":"MemberAccess","src":"2649:10:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":1301,"name":"_getAdmin","nodeType":"Identifier","overloadedDeclarations":[1414],"referencedDeclaration":1414,"src":"2663:9:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":1302,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2663:11:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2649:25:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1309,"nodeType":"Block","src":"2708:36:13","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":1306,"name":"_fallback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":522,"src":"2722:9:13","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":1307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2722:11:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1308,"nodeType":"ExpressionStatement","src":"2722:11:13"}]},"id":1310,"nodeType":"IfStatement","src":"2645:99:13","trueBody":{"id":1305,"nodeType":"Block","src":"2676:26:13","statements":[{"id":1304,"nodeType":"PlaceholderStatement","src":"2690:1:13"}]}}]},"documentation":{"id":1297,"nodeType":"StructuredDocumentation","src":"2481:130:13","text":" @dev Modifier used internally that will delegate the call to the implementation unless the sender is the admin."},"id":1312,"name":"ifAdmin","nameLocation":"2625:7:13","nodeType":"ModifierDefinition","parameters":{"id":1298,"nodeType":"ParameterList","parameters":[],"src":"2632:2:13"},"src":"2616:134:13","virtual":false,"visibility":"internal"},{"body":{"id":1325,"nodeType":"Block","src":"3251:37:13","statements":[{"expression":{"id":1323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1320,"name":"admin_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1318,"src":"3261:6:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":1321,"name":"_getAdmin","nodeType":"Identifier","overloadedDeclarations":[1414],"referencedDeclaration":1414,"src":"3270:9:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":1322,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3270:11:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3261:20:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1324,"nodeType":"ExpressionStatement","src":"3261:20:13"}]},"documentation":{"id":1313,"nodeType":"StructuredDocumentation","src":"2756:431:13","text":" @dev Returns the current admin.\n NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyAdmin}.\n TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the\n https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\n `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103`"},"functionSelector":"f851a440","id":1326,"implemented":true,"kind":"function","modifiers":[{"id":1316,"kind":"modifierInvocation","modifierName":{"id":1315,"name":"ifAdmin","nameLocations":["3218:7:13"],"nodeType":"IdentifierPath","referencedDeclaration":1312,"src":"3218:7:13"},"nodeType":"ModifierInvocation","src":"3218:7:13"}],"name":"admin","nameLocation":"3201:5:13","nodeType":"FunctionDefinition","parameters":{"id":1314,"nodeType":"ParameterList","parameters":[],"src":"3206:2:13"},"returnParameters":{"id":1319,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1318,"mutability":"mutable","name":"admin_","nameLocation":"3243:6:13","nodeType":"VariableDeclaration","scope":1326,"src":"3235:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1317,"name":"address","nodeType":"ElementaryTypeName","src":"3235:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3234:16:13"},"scope":1415,"src":"3192:96:13","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":1339,"nodeType":"Block","src":"3825:52:13","statements":[{"expression":{"id":1337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1334,"name":"implementation_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1332,"src":"3835:15:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":1335,"name":"_implementation","nodeType":"Identifier","overloadedDeclarations":[173],"referencedDeclaration":173,"src":"3853:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":1336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3853:17:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3835:35:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1338,"nodeType":"ExpressionStatement","src":"3835:35:13"}]},"documentation":{"id":1327,"nodeType":"StructuredDocumentation","src":"3294:449:13","text":" @dev Returns the current implementation.\n NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyImplementation}.\n TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the\n https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\n `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc`"},"functionSelector":"5c60da1b","id":1340,"implemented":true,"kind":"function","modifiers":[{"id":1330,"kind":"modifierInvocation","modifierName":{"id":1329,"name":"ifAdmin","nameLocations":["3783:7:13"],"nodeType":"IdentifierPath","referencedDeclaration":1312,"src":"3783:7:13"},"nodeType":"ModifierInvocation","src":"3783:7:13"}],"name":"implementation","nameLocation":"3757:14:13","nodeType":"FunctionDefinition","parameters":{"id":1328,"nodeType":"ParameterList","parameters":[],"src":"3771:2:13"},"returnParameters":{"id":1333,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1332,"mutability":"mutable","name":"implementation_","nameLocation":"3808:15:13","nodeType":"VariableDeclaration","scope":1340,"src":"3800:23:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1331,"name":"address","nodeType":"ElementaryTypeName","src":"3800:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3799:25:13"},"scope":1415,"src":"3748:129:13","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":1357,"nodeType":"Block","src":"4100:71:13","statements":[{"expression":{"arguments":[{"id":1349,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1343,"src":"4128:17:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"","id":1352,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4153:2:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":1351,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4147:5:13","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":1350,"name":"bytes","nodeType":"ElementaryTypeName","src":"4147:5:13","typeDescriptions":{}}},"id":1353,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4147:9:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"66616c7365","id":1354,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4158:5:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1348,"name":"_upgradeToAndCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":275,"src":"4110:17:13","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_bool_$returns$__$","typeString":"function (address,bytes memory,bool)"}},"id":1355,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4110:54:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1356,"nodeType":"ExpressionStatement","src":"4110:54:13"}]},"documentation":{"id":1341,"nodeType":"StructuredDocumentation","src":"3883:149:13","text":" @dev Upgrade the implementation of the proxy.\n NOTE: Only the admin can call this function. See {ProxyAdmin-upgrade}."},"functionSelector":"3659cfe6","id":1358,"implemented":true,"kind":"function","modifiers":[{"id":1346,"kind":"modifierInvocation","modifierName":{"id":1345,"name":"ifAdmin","nameLocations":["4092:7:13"],"nodeType":"IdentifierPath","referencedDeclaration":1312,"src":"4092:7:13"},"nodeType":"ModifierInvocation","src":"4092:7:13"}],"name":"upgradeTo","nameLocation":"4046:9:13","nodeType":"FunctionDefinition","parameters":{"id":1344,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1343,"mutability":"mutable","name":"newImplementation","nameLocation":"4064:17:13","nodeType":"VariableDeclaration","scope":1358,"src":"4056:25:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1342,"name":"address","nodeType":"ElementaryTypeName","src":"4056:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4055:27:13"},"returnParameters":{"id":1347,"nodeType":"ParameterList","parameters":[],"src":"4100:0:13"},"scope":1415,"src":"4037:134:13","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":1374,"nodeType":"Block","src":"4646:65:13","statements":[{"expression":{"arguments":[{"id":1369,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1361,"src":"4674:17:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1370,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1363,"src":"4693:4:13","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"hexValue":"74727565","id":1371,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4699:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1368,"name":"_upgradeToAndCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":275,"src":"4656:17:13","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_bool_$returns$__$","typeString":"function (address,bytes memory,bool)"}},"id":1372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4656:48:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1373,"nodeType":"ExpressionStatement","src":"4656:48:13"}]},"documentation":{"id":1359,"nodeType":"StructuredDocumentation","src":"4177:365:13","text":" @dev Upgrade the implementation of the proxy, and then call a function from the new implementation as specified\n by `data`, which should be an encoded function call. This is useful to initialize new storage variables in the\n proxied contract.\n NOTE: Only the admin can call this function. See {ProxyAdmin-upgradeAndCall}."},"functionSelector":"4f1ef286","id":1375,"implemented":true,"kind":"function","modifiers":[{"id":1366,"kind":"modifierInvocation","modifierName":{"id":1365,"name":"ifAdmin","nameLocations":["4638:7:13"],"nodeType":"IdentifierPath","referencedDeclaration":1312,"src":"4638:7:13"},"nodeType":"ModifierInvocation","src":"4638:7:13"}],"name":"upgradeToAndCall","nameLocation":"4556:16:13","nodeType":"FunctionDefinition","parameters":{"id":1364,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1361,"mutability":"mutable","name":"newImplementation","nameLocation":"4581:17:13","nodeType":"VariableDeclaration","scope":1375,"src":"4573:25:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1360,"name":"address","nodeType":"ElementaryTypeName","src":"4573:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1363,"mutability":"mutable","name":"data","nameLocation":"4615:4:13","nodeType":"VariableDeclaration","scope":1375,"src":"4600:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1362,"name":"bytes","nodeType":"ElementaryTypeName","src":"4600:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4572:48:13"},"returnParameters":{"id":1367,"nodeType":"ParameterList","parameters":[],"src":"4646:0:13"},"scope":1415,"src":"4547:164:13","stateMutability":"payable","virtual":false,"visibility":"external"},{"body":{"id":1384,"nodeType":"Block","src":"4830:35:13","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":1381,"name":"_getAdmin","nodeType":"Identifier","overloadedDeclarations":[1414],"referencedDeclaration":1414,"src":"4847:9:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":1382,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4847:11:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":1380,"id":1383,"nodeType":"Return","src":"4840:18:13"}]},"documentation":{"id":1376,"nodeType":"StructuredDocumentation","src":"4717:50:13","text":" @dev Returns the current admin."},"id":1385,"implemented":true,"kind":"function","modifiers":[],"name":"_admin","nameLocation":"4781:6:13","nodeType":"FunctionDefinition","parameters":{"id":1377,"nodeType":"ParameterList","parameters":[],"src":"4787:2:13"},"returnParameters":{"id":1380,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1379,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1385,"src":"4821:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1378,"name":"address","nodeType":"ElementaryTypeName","src":"4821:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4820:9:13"},"scope":1415,"src":"4772:93:13","stateMutability":"view","virtual":true,"visibility":"internal"},{"baseFunctions":[543],"body":{"id":1404,"nodeType":"Block","src":"5039:154:13","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1395,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1391,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5057:3:13","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5061:6:13","memberName":"sender","nodeType":"MemberAccess","src":"5057:10:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":1393,"name":"_getAdmin","nodeType":"Identifier","overloadedDeclarations":[1414],"referencedDeclaration":1414,"src":"5071:9:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":1394,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5071:11:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5057:25:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5472616e73706172656e745570677261646561626c6550726f78793a2061646d696e2063616e6e6f742066616c6c6261636b20746f2070726f787920746172676574","id":1396,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5084:68:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d","typeString":"literal_string \"TransparentUpgradeableProxy: admin cannot fallback to proxy target\""},"value":"TransparentUpgradeableProxy: admin cannot fallback to proxy target"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d","typeString":"literal_string \"TransparentUpgradeableProxy: admin cannot fallback to proxy target\""}],"id":1390,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5049:7:13","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5049:104:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1398,"nodeType":"ExpressionStatement","src":"5049:104:13"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":1399,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"5163:5:13","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_OptimizedTransparentUpgradeableProxy_$1415_$","typeString":"type(contract super OptimizedTransparentUpgradeableProxy)"}},"id":1401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5169:15:13","memberName":"_beforeFallback","nodeType":"MemberAccess","referencedDeclaration":543,"src":"5163:21:13","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":1402,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5163:23:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1403,"nodeType":"ExpressionStatement","src":"5163:23:13"}]},"documentation":{"id":1386,"nodeType":"StructuredDocumentation","src":"4871:110:13","text":" @dev Makes sure the admin cannot access the fallback function. See {Proxy-_beforeFallback}."},"id":1405,"implemented":true,"kind":"function","modifiers":[],"name":"_beforeFallback","nameLocation":"4995:15:13","nodeType":"FunctionDefinition","overrides":{"id":1388,"nodeType":"OverrideSpecifier","overrides":[],"src":"5030:8:13"},"parameters":{"id":1387,"nodeType":"ParameterList","parameters":[],"src":"5010:2:13"},"returnParameters":{"id":1389,"nodeType":"ParameterList","parameters":[],"src":"5039:0:13"},"scope":1415,"src":"4986:207:13","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"baseFunctions":[352],"body":{"id":1413,"nodeType":"Block","src":"5269:30:13","statements":[{"expression":{"id":1411,"name":"_ADMIN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1248,"src":"5286:6:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":1410,"id":1412,"nodeType":"Return","src":"5279:13:13"}]},"id":1414,"implemented":true,"kind":"function","modifiers":[],"name":"_getAdmin","nameLocation":"5208:9:13","nodeType":"FunctionDefinition","overrides":{"id":1407,"nodeType":"OverrideSpecifier","overrides":[],"src":"5242:8:13"},"parameters":{"id":1406,"nodeType":"ParameterList","parameters":[],"src":"5217:2:13"},"returnParameters":{"id":1410,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1409,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1414,"src":"5260:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1408,"name":"address","nodeType":"ElementaryTypeName","src":"5260:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5259:9:13"},"scope":1415,"src":"5199:100:13","stateMutability":"view","virtual":true,"visibility":"internal"}],"scope":1416,"src":"1653:3648:13","usedErrors":[],"usedEvents":[193,339,404]}],"src":"118:5184:13"},"id":13}},"contracts":{"hardhat-deploy/solc_0.8/openzeppelin/access/Ownable.sol":{"Ownable":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"details":"Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. By default, the owner account will be the one that deploys the contract. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.","kind":"dev","methods":{"constructor":{"details":"Initializes the contract setting the deployer as the initial owner."},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. By default, the owner account will be the one that deploys the contract. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the contract setting the deployer as the initial owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"hardhat-deploy/solc_0.8/openzeppelin/access/Ownable.sol\":\"Ownable\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"hardhat-deploy/solc_0.8/openzeppelin/access/Ownable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (access/Ownable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../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 * By default, the owner account will be the one that deploys the contract. This\\n * can 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 event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n /**\\n * @dev Initializes the contract setting the deployer as the initial owner.\\n */\\n constructor (address initialOwner) {\\n _transferOwnership(initialOwner);\\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 called by any account other than the owner.\\n */\\n modifier onlyOwner() {\\n require(owner() == _msgSender(), \\\"Ownable: caller is not the owner\\\");\\n _;\\n }\\n\\n /**\\n * @dev Leaves the contract without owner. It will not be possible to call\\n * `onlyOwner` functions anymore. Can only be called by the current owner.\\n *\\n * NOTE: Renouncing ownership will leave the contract without an owner,\\n * thereby removing 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 require(newOwner != address(0), \\\"Ownable: new owner is the zero address\\\");\\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\",\"keccak256\":\"0x9b2bbba5bb04f53f277739c1cdff896ba8b3bf591cfc4eab2098c655e8ac251e\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\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\",\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":13,"contract":"hardhat-deploy/solc_0.8/openzeppelin/access/Ownable.sol:Ownable","label":"_owner","offset":0,"slot":"0","type":"t_address"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"hardhat-deploy/solc_0.8/openzeppelin/interfaces/draft-IERC1822.sol":{"IERC1822Proxiable":{"abi":[{"inputs":[],"name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"}],"devdoc":{"details":"ERC1822: Universal Upgradeable Proxy Standard (UUPS) documents a method for upgradeability through a simplified proxy whose upgrades are fully controlled by the current implementation.","kind":"dev","methods":{"proxiableUUID()":{"details":"Returns the storage slot that the proxiable contract assumes is being used to store the implementation address. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy."}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"proxiableUUID()":"52d1902d"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"ERC1822: Universal Upgradeable Proxy Standard (UUPS) documents a method for upgradeability through a simplified proxy whose upgrades are fully controlled by the current implementation.\",\"kind\":\"dev\",\"methods\":{\"proxiableUUID()\":{\"details\":\"Returns the storage slot that the proxiable contract assumes is being used to store the implementation address. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"hardhat-deploy/solc_0.8/openzeppelin/interfaces/draft-IERC1822.sol\":\"IERC1822Proxiable\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"hardhat-deploy/solc_0.8/openzeppelin/interfaces/draft-IERC1822.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (interfaces/draft-IERC1822.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev ERC1822: Universal Upgradeable Proxy Standard (UUPS) documents a method for upgradeability through a simplified\\n * proxy whose upgrades are fully controlled by the current implementation.\\n */\\ninterface IERC1822Proxiable {\\n /**\\n * @dev Returns the storage slot that the proxiable contract assumes is being used to store the implementation\\n * address.\\n *\\n * IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks\\n * bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this\\n * function revert if invoked through a proxy.\\n */\\n function proxiableUUID() external view returns (bytes32);\\n}\\n\",\"keccak256\":\"0x93b4e21c931252739a1ec13ea31d3d35a5c068be3163ccab83e4d70c40355f03\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Proxy.sol":{"ERC1967Proxy":{"abi":[{"inputs":[{"internalType":"address","name":"_logic","type":"address"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"beacon","type":"address"}],"name":"BeaconUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"stateMutability":"payable","type":"fallback"},{"stateMutability":"payable","type":"receive"}],"devdoc":{"details":"This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an implementation address that can be changed. This address is stored in storage in the location specified by https://eips.ethereum.org/EIPS/eip-1967[EIP1967], so that it doesn't conflict with the storage layout of the implementation behind the proxy.","events":{"AdminChanged(address,address)":{"details":"Emitted when the admin account has changed."},"BeaconUpgraded(address)":{"details":"Emitted when the beacon is upgraded."},"Upgraded(address)":{"details":"Emitted when the implementation is upgraded."}},"kind":"dev","methods":{"constructor":{"details":"Initializes the upgradeable proxy with an initial implementation specified by `_logic`. If `_data` is nonempty, it's used as data in a delegate call to `_logic`. This will typically be an encoded function call, and allows initializating the storage of the proxy like a Solidity constructor."}},"version":1},"evm":{"bytecode":{"functionDebugData":{"@_161":{"entryPoint":null,"id":161,"parameterSlots":2,"returnSlots":0},"@_setImplementation_230":{"entryPoint":274,"id":230,"parameterSlots":1,"returnSlots":0},"@_upgradeToAndCall_275":{"entryPoint":122,"id":275,"parameterSlots":3,"returnSlots":0},"@_upgradeTo_245":{"entryPoint":165,"id":245,"parameterSlots":1,"returnSlots":0},"@functionDelegateCall_1091":{"entryPoint":228,"id":1091,"parameterSlots":2,"returnSlots":1},"@functionDelegateCall_1126":{"entryPoint":368,"id":1126,"parameterSlots":3,"returnSlots":1},"@getAddressSlot_1206":{"entryPoint":null,"id":1206,"parameterSlots":1,"returnSlots":1},"@isContract_881":{"entryPoint":null,"id":881,"parameterSlots":1,"returnSlots":1},"@verifyCallResult_1157":{"entryPoint":525,"id":1157,"parameterSlots":3,"returnSlots":1},"abi_decode_available_length_t_bytes_memory_ptr_fromMemory":{"entryPoint":774,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address_fromMemory":{"entryPoint":620,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_memory_ptr_fromMemory":{"entryPoint":837,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_bytes_memory_ptr_fromMemory":{"entryPoint":879,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":1195,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack":{"entryPoint":1239,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65_to_t_string_memory_ptr_fromStack":{"entryPoint":1021,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520_to_t_string_memory_ptr_fromStack":{"entryPoint":1113,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":1228,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1288,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1097,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1179,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_memory":{"entryPoint":695,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_bytes_memory_ptr":{"entryPoint":722,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_bytes_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":982,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":582,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":763,"id":null,"parameterSlots":3,"returnSlots":0},"finalize_allocation":{"entryPoint":651,"id":null,"parameterSlots":2,"returnSlots":0},"panic_error_0x01":{"entryPoint":1001,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x11":{"entryPoint":962,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":631,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"store_literal_in_memory_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address":{"entryPoint":598,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:8382:14","nodeType":"YulBlock","src":"0:8382:14","statements":[{"body":{"nativeSrc":"47:35:14","nodeType":"YulBlock","src":"47:35:14","statements":[{"nativeSrc":"57:19:14","nodeType":"YulAssignment","src":"57:19:14","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:14","nodeType":"YulLiteral","src":"73:2:14","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:14","nodeType":"YulIdentifier","src":"67:5:14"},"nativeSrc":"67:9:14","nodeType":"YulFunctionCall","src":"67:9:14"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:14","nodeType":"YulIdentifier","src":"57:6:14"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:14","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:14","nodeType":"YulTypedName","src":"40:6:14","type":""}],"src":"7:75:14"},{"body":{"nativeSrc":"177:28:14","nodeType":"YulBlock","src":"177:28:14","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:14","nodeType":"YulLiteral","src":"194:1:14","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:14","nodeType":"YulLiteral","src":"197:1:14","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:14","nodeType":"YulIdentifier","src":"187:6:14"},"nativeSrc":"187:12:14","nodeType":"YulFunctionCall","src":"187:12:14"},"nativeSrc":"187:12:14","nodeType":"YulExpressionStatement","src":"187:12:14"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:14","nodeType":"YulFunctionDefinition","src":"88:117:14"},{"body":{"nativeSrc":"300:28:14","nodeType":"YulBlock","src":"300:28:14","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:14","nodeType":"YulLiteral","src":"317:1:14","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:14","nodeType":"YulLiteral","src":"320:1:14","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:14","nodeType":"YulIdentifier","src":"310:6:14"},"nativeSrc":"310:12:14","nodeType":"YulFunctionCall","src":"310:12:14"},"nativeSrc":"310:12:14","nodeType":"YulExpressionStatement","src":"310:12:14"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:14","nodeType":"YulFunctionDefinition","src":"211:117:14"},{"body":{"nativeSrc":"379:81:14","nodeType":"YulBlock","src":"379:81:14","statements":[{"nativeSrc":"389:65:14","nodeType":"YulAssignment","src":"389:65:14","value":{"arguments":[{"name":"value","nativeSrc":"404:5:14","nodeType":"YulIdentifier","src":"404:5:14"},{"kind":"number","nativeSrc":"411:42:14","nodeType":"YulLiteral","src":"411:42:14","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"400:3:14","nodeType":"YulIdentifier","src":"400:3:14"},"nativeSrc":"400:54:14","nodeType":"YulFunctionCall","src":"400:54:14"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:14","nodeType":"YulIdentifier","src":"389:7:14"}]}]},"name":"cleanup_t_uint160","nativeSrc":"334:126:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:14","nodeType":"YulTypedName","src":"361:5:14","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:14","nodeType":"YulTypedName","src":"371:7:14","type":""}],"src":"334:126:14"},{"body":{"nativeSrc":"511:51:14","nodeType":"YulBlock","src":"511:51:14","statements":[{"nativeSrc":"521:35:14","nodeType":"YulAssignment","src":"521:35:14","value":{"arguments":[{"name":"value","nativeSrc":"550:5:14","nodeType":"YulIdentifier","src":"550:5:14"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"532:17:14","nodeType":"YulIdentifier","src":"532:17:14"},"nativeSrc":"532:24:14","nodeType":"YulFunctionCall","src":"532:24:14"},"variableNames":[{"name":"cleaned","nativeSrc":"521:7:14","nodeType":"YulIdentifier","src":"521:7:14"}]}]},"name":"cleanup_t_address","nativeSrc":"466:96:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"493:5:14","nodeType":"YulTypedName","src":"493:5:14","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"503:7:14","nodeType":"YulTypedName","src":"503:7:14","type":""}],"src":"466:96:14"},{"body":{"nativeSrc":"611:79:14","nodeType":"YulBlock","src":"611:79:14","statements":[{"body":{"nativeSrc":"668:16:14","nodeType":"YulBlock","src":"668:16:14","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"677:1:14","nodeType":"YulLiteral","src":"677:1:14","type":"","value":"0"},{"kind":"number","nativeSrc":"680:1:14","nodeType":"YulLiteral","src":"680:1:14","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"670:6:14","nodeType":"YulIdentifier","src":"670:6:14"},"nativeSrc":"670:12:14","nodeType":"YulFunctionCall","src":"670:12:14"},"nativeSrc":"670:12:14","nodeType":"YulExpressionStatement","src":"670:12:14"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"634:5:14","nodeType":"YulIdentifier","src":"634:5:14"},{"arguments":[{"name":"value","nativeSrc":"659:5:14","nodeType":"YulIdentifier","src":"659:5:14"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"641:17:14","nodeType":"YulIdentifier","src":"641:17:14"},"nativeSrc":"641:24:14","nodeType":"YulFunctionCall","src":"641:24:14"}],"functionName":{"name":"eq","nativeSrc":"631:2:14","nodeType":"YulIdentifier","src":"631:2:14"},"nativeSrc":"631:35:14","nodeType":"YulFunctionCall","src":"631:35:14"}],"functionName":{"name":"iszero","nativeSrc":"624:6:14","nodeType":"YulIdentifier","src":"624:6:14"},"nativeSrc":"624:43:14","nodeType":"YulFunctionCall","src":"624:43:14"},"nativeSrc":"621:63:14","nodeType":"YulIf","src":"621:63:14"}]},"name":"validator_revert_t_address","nativeSrc":"568:122:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"604:5:14","nodeType":"YulTypedName","src":"604:5:14","type":""}],"src":"568:122:14"},{"body":{"nativeSrc":"759:80:14","nodeType":"YulBlock","src":"759:80:14","statements":[{"nativeSrc":"769:22:14","nodeType":"YulAssignment","src":"769:22:14","value":{"arguments":[{"name":"offset","nativeSrc":"784:6:14","nodeType":"YulIdentifier","src":"784:6:14"}],"functionName":{"name":"mload","nativeSrc":"778:5:14","nodeType":"YulIdentifier","src":"778:5:14"},"nativeSrc":"778:13:14","nodeType":"YulFunctionCall","src":"778:13:14"},"variableNames":[{"name":"value","nativeSrc":"769:5:14","nodeType":"YulIdentifier","src":"769:5:14"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"827:5:14","nodeType":"YulIdentifier","src":"827:5:14"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"800:26:14","nodeType":"YulIdentifier","src":"800:26:14"},"nativeSrc":"800:33:14","nodeType":"YulFunctionCall","src":"800:33:14"},"nativeSrc":"800:33:14","nodeType":"YulExpressionStatement","src":"800:33:14"}]},"name":"abi_decode_t_address_fromMemory","nativeSrc":"696:143:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"737:6:14","nodeType":"YulTypedName","src":"737:6:14","type":""},{"name":"end","nativeSrc":"745:3:14","nodeType":"YulTypedName","src":"745:3:14","type":""}],"returnVariables":[{"name":"value","nativeSrc":"753:5:14","nodeType":"YulTypedName","src":"753:5:14","type":""}],"src":"696:143:14"},{"body":{"nativeSrc":"934:28:14","nodeType":"YulBlock","src":"934:28:14","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"951:1:14","nodeType":"YulLiteral","src":"951:1:14","type":"","value":"0"},{"kind":"number","nativeSrc":"954:1:14","nodeType":"YulLiteral","src":"954:1:14","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"944:6:14","nodeType":"YulIdentifier","src":"944:6:14"},"nativeSrc":"944:12:14","nodeType":"YulFunctionCall","src":"944:12:14"},"nativeSrc":"944:12:14","nodeType":"YulExpressionStatement","src":"944:12:14"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"845:117:14","nodeType":"YulFunctionDefinition","src":"845:117:14"},{"body":{"nativeSrc":"1057:28:14","nodeType":"YulBlock","src":"1057:28:14","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1074:1:14","nodeType":"YulLiteral","src":"1074:1:14","type":"","value":"0"},{"kind":"number","nativeSrc":"1077:1:14","nodeType":"YulLiteral","src":"1077:1:14","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1067:6:14","nodeType":"YulIdentifier","src":"1067:6:14"},"nativeSrc":"1067:12:14","nodeType":"YulFunctionCall","src":"1067:12:14"},"nativeSrc":"1067:12:14","nodeType":"YulExpressionStatement","src":"1067:12:14"}]},"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"968:117:14","nodeType":"YulFunctionDefinition","src":"968:117:14"},{"body":{"nativeSrc":"1139:54:14","nodeType":"YulBlock","src":"1139:54:14","statements":[{"nativeSrc":"1149:38:14","nodeType":"YulAssignment","src":"1149:38:14","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1167:5:14","nodeType":"YulIdentifier","src":"1167:5:14"},{"kind":"number","nativeSrc":"1174:2:14","nodeType":"YulLiteral","src":"1174:2:14","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"1163:3:14","nodeType":"YulIdentifier","src":"1163:3:14"},"nativeSrc":"1163:14:14","nodeType":"YulFunctionCall","src":"1163:14:14"},{"arguments":[{"kind":"number","nativeSrc":"1183:2:14","nodeType":"YulLiteral","src":"1183:2:14","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"1179:3:14","nodeType":"YulIdentifier","src":"1179:3:14"},"nativeSrc":"1179:7:14","nodeType":"YulFunctionCall","src":"1179:7:14"}],"functionName":{"name":"and","nativeSrc":"1159:3:14","nodeType":"YulIdentifier","src":"1159:3:14"},"nativeSrc":"1159:28:14","nodeType":"YulFunctionCall","src":"1159:28:14"},"variableNames":[{"name":"result","nativeSrc":"1149:6:14","nodeType":"YulIdentifier","src":"1149:6:14"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"1091:102:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1122:5:14","nodeType":"YulTypedName","src":"1122:5:14","type":""}],"returnVariables":[{"name":"result","nativeSrc":"1132:6:14","nodeType":"YulTypedName","src":"1132:6:14","type":""}],"src":"1091:102:14"},{"body":{"nativeSrc":"1227:152:14","nodeType":"YulBlock","src":"1227:152:14","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1244:1:14","nodeType":"YulLiteral","src":"1244:1:14","type":"","value":"0"},{"kind":"number","nativeSrc":"1247:77:14","nodeType":"YulLiteral","src":"1247:77:14","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"1237:6:14","nodeType":"YulIdentifier","src":"1237:6:14"},"nativeSrc":"1237:88:14","nodeType":"YulFunctionCall","src":"1237:88:14"},"nativeSrc":"1237:88:14","nodeType":"YulExpressionStatement","src":"1237:88:14"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1341:1:14","nodeType":"YulLiteral","src":"1341:1:14","type":"","value":"4"},{"kind":"number","nativeSrc":"1344:4:14","nodeType":"YulLiteral","src":"1344:4:14","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"1334:6:14","nodeType":"YulIdentifier","src":"1334:6:14"},"nativeSrc":"1334:15:14","nodeType":"YulFunctionCall","src":"1334:15:14"},"nativeSrc":"1334:15:14","nodeType":"YulExpressionStatement","src":"1334:15:14"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1365:1:14","nodeType":"YulLiteral","src":"1365:1:14","type":"","value":"0"},{"kind":"number","nativeSrc":"1368:4:14","nodeType":"YulLiteral","src":"1368:4:14","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"1358:6:14","nodeType":"YulIdentifier","src":"1358:6:14"},"nativeSrc":"1358:15:14","nodeType":"YulFunctionCall","src":"1358:15:14"},"nativeSrc":"1358:15:14","nodeType":"YulExpressionStatement","src":"1358:15:14"}]},"name":"panic_error_0x41","nativeSrc":"1199:180:14","nodeType":"YulFunctionDefinition","src":"1199:180:14"},{"body":{"nativeSrc":"1428:238:14","nodeType":"YulBlock","src":"1428:238:14","statements":[{"nativeSrc":"1438:58:14","nodeType":"YulVariableDeclaration","src":"1438:58:14","value":{"arguments":[{"name":"memPtr","nativeSrc":"1460:6:14","nodeType":"YulIdentifier","src":"1460:6:14"},{"arguments":[{"name":"size","nativeSrc":"1490:4:14","nodeType":"YulIdentifier","src":"1490:4:14"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"1468:21:14","nodeType":"YulIdentifier","src":"1468:21:14"},"nativeSrc":"1468:27:14","nodeType":"YulFunctionCall","src":"1468:27:14"}],"functionName":{"name":"add","nativeSrc":"1456:3:14","nodeType":"YulIdentifier","src":"1456:3:14"},"nativeSrc":"1456:40:14","nodeType":"YulFunctionCall","src":"1456:40:14"},"variables":[{"name":"newFreePtr","nativeSrc":"1442:10:14","nodeType":"YulTypedName","src":"1442:10:14","type":""}]},{"body":{"nativeSrc":"1607:22:14","nodeType":"YulBlock","src":"1607:22:14","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1609:16:14","nodeType":"YulIdentifier","src":"1609:16:14"},"nativeSrc":"1609:18:14","nodeType":"YulFunctionCall","src":"1609:18:14"},"nativeSrc":"1609:18:14","nodeType":"YulExpressionStatement","src":"1609:18:14"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"1550:10:14","nodeType":"YulIdentifier","src":"1550:10:14"},{"kind":"number","nativeSrc":"1562:18:14","nodeType":"YulLiteral","src":"1562:18:14","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1547:2:14","nodeType":"YulIdentifier","src":"1547:2:14"},"nativeSrc":"1547:34:14","nodeType":"YulFunctionCall","src":"1547:34:14"},{"arguments":[{"name":"newFreePtr","nativeSrc":"1586:10:14","nodeType":"YulIdentifier","src":"1586:10:14"},{"name":"memPtr","nativeSrc":"1598:6:14","nodeType":"YulIdentifier","src":"1598:6:14"}],"functionName":{"name":"lt","nativeSrc":"1583:2:14","nodeType":"YulIdentifier","src":"1583:2:14"},"nativeSrc":"1583:22:14","nodeType":"YulFunctionCall","src":"1583:22:14"}],"functionName":{"name":"or","nativeSrc":"1544:2:14","nodeType":"YulIdentifier","src":"1544:2:14"},"nativeSrc":"1544:62:14","nodeType":"YulFunctionCall","src":"1544:62:14"},"nativeSrc":"1541:88:14","nodeType":"YulIf","src":"1541:88:14"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1645:2:14","nodeType":"YulLiteral","src":"1645:2:14","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"1649:10:14","nodeType":"YulIdentifier","src":"1649:10:14"}],"functionName":{"name":"mstore","nativeSrc":"1638:6:14","nodeType":"YulIdentifier","src":"1638:6:14"},"nativeSrc":"1638:22:14","nodeType":"YulFunctionCall","src":"1638:22:14"},"nativeSrc":"1638:22:14","nodeType":"YulExpressionStatement","src":"1638:22:14"}]},"name":"finalize_allocation","nativeSrc":"1385:281:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"1414:6:14","nodeType":"YulTypedName","src":"1414:6:14","type":""},{"name":"size","nativeSrc":"1422:4:14","nodeType":"YulTypedName","src":"1422:4:14","type":""}],"src":"1385:281:14"},{"body":{"nativeSrc":"1713:88:14","nodeType":"YulBlock","src":"1713:88:14","statements":[{"nativeSrc":"1723:30:14","nodeType":"YulAssignment","src":"1723:30:14","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"1733:18:14","nodeType":"YulIdentifier","src":"1733:18:14"},"nativeSrc":"1733:20:14","nodeType":"YulFunctionCall","src":"1733:20:14"},"variableNames":[{"name":"memPtr","nativeSrc":"1723:6:14","nodeType":"YulIdentifier","src":"1723:6:14"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"1782:6:14","nodeType":"YulIdentifier","src":"1782:6:14"},{"name":"size","nativeSrc":"1790:4:14","nodeType":"YulIdentifier","src":"1790:4:14"}],"functionName":{"name":"finalize_allocation","nativeSrc":"1762:19:14","nodeType":"YulIdentifier","src":"1762:19:14"},"nativeSrc":"1762:33:14","nodeType":"YulFunctionCall","src":"1762:33:14"},"nativeSrc":"1762:33:14","nodeType":"YulExpressionStatement","src":"1762:33:14"}]},"name":"allocate_memory","nativeSrc":"1672:129:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"1697:4:14","nodeType":"YulTypedName","src":"1697:4:14","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"1706:6:14","nodeType":"YulTypedName","src":"1706:6:14","type":""}],"src":"1672:129:14"},{"body":{"nativeSrc":"1873:241:14","nodeType":"YulBlock","src":"1873:241:14","statements":[{"body":{"nativeSrc":"1978:22:14","nodeType":"YulBlock","src":"1978:22:14","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1980:16:14","nodeType":"YulIdentifier","src":"1980:16:14"},"nativeSrc":"1980:18:14","nodeType":"YulFunctionCall","src":"1980:18:14"},"nativeSrc":"1980:18:14","nodeType":"YulExpressionStatement","src":"1980:18:14"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"1950:6:14","nodeType":"YulIdentifier","src":"1950:6:14"},{"kind":"number","nativeSrc":"1958:18:14","nodeType":"YulLiteral","src":"1958:18:14","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1947:2:14","nodeType":"YulIdentifier","src":"1947:2:14"},"nativeSrc":"1947:30:14","nodeType":"YulFunctionCall","src":"1947:30:14"},"nativeSrc":"1944:56:14","nodeType":"YulIf","src":"1944:56:14"},{"nativeSrc":"2010:37:14","nodeType":"YulAssignment","src":"2010:37:14","value":{"arguments":[{"name":"length","nativeSrc":"2040:6:14","nodeType":"YulIdentifier","src":"2040:6:14"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"2018:21:14","nodeType":"YulIdentifier","src":"2018:21:14"},"nativeSrc":"2018:29:14","nodeType":"YulFunctionCall","src":"2018:29:14"},"variableNames":[{"name":"size","nativeSrc":"2010:4:14","nodeType":"YulIdentifier","src":"2010:4:14"}]},{"nativeSrc":"2084:23:14","nodeType":"YulAssignment","src":"2084:23:14","value":{"arguments":[{"name":"size","nativeSrc":"2096:4:14","nodeType":"YulIdentifier","src":"2096:4:14"},{"kind":"number","nativeSrc":"2102:4:14","nodeType":"YulLiteral","src":"2102:4:14","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2092:3:14","nodeType":"YulIdentifier","src":"2092:3:14"},"nativeSrc":"2092:15:14","nodeType":"YulFunctionCall","src":"2092:15:14"},"variableNames":[{"name":"size","nativeSrc":"2084:4:14","nodeType":"YulIdentifier","src":"2084:4:14"}]}]},"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"1807:307:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"1857:6:14","nodeType":"YulTypedName","src":"1857:6:14","type":""}],"returnVariables":[{"name":"size","nativeSrc":"1868:4:14","nodeType":"YulTypedName","src":"1868:4:14","type":""}],"src":"1807:307:14"},{"body":{"nativeSrc":"2182:77:14","nodeType":"YulBlock","src":"2182:77:14","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"2199:3:14","nodeType":"YulIdentifier","src":"2199:3:14"},{"name":"src","nativeSrc":"2204:3:14","nodeType":"YulIdentifier","src":"2204:3:14"},{"name":"length","nativeSrc":"2209:6:14","nodeType":"YulIdentifier","src":"2209:6:14"}],"functionName":{"name":"mcopy","nativeSrc":"2193:5:14","nodeType":"YulIdentifier","src":"2193:5:14"},"nativeSrc":"2193:23:14","nodeType":"YulFunctionCall","src":"2193:23:14"},"nativeSrc":"2193:23:14","nodeType":"YulExpressionStatement","src":"2193:23:14"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"2236:3:14","nodeType":"YulIdentifier","src":"2236:3:14"},{"name":"length","nativeSrc":"2241:6:14","nodeType":"YulIdentifier","src":"2241:6:14"}],"functionName":{"name":"add","nativeSrc":"2232:3:14","nodeType":"YulIdentifier","src":"2232:3:14"},"nativeSrc":"2232:16:14","nodeType":"YulFunctionCall","src":"2232:16:14"},{"kind":"number","nativeSrc":"2250:1:14","nodeType":"YulLiteral","src":"2250:1:14","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"2225:6:14","nodeType":"YulIdentifier","src":"2225:6:14"},"nativeSrc":"2225:27:14","nodeType":"YulFunctionCall","src":"2225:27:14"},"nativeSrc":"2225:27:14","nodeType":"YulExpressionStatement","src":"2225:27:14"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"2120:139:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"2164:3:14","nodeType":"YulTypedName","src":"2164:3:14","type":""},{"name":"dst","nativeSrc":"2169:3:14","nodeType":"YulTypedName","src":"2169:3:14","type":""},{"name":"length","nativeSrc":"2174:6:14","nodeType":"YulTypedName","src":"2174:6:14","type":""}],"src":"2120:139:14"},{"body":{"nativeSrc":"2359:338:14","nodeType":"YulBlock","src":"2359:338:14","statements":[{"nativeSrc":"2369:74:14","nodeType":"YulAssignment","src":"2369:74:14","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"2435:6:14","nodeType":"YulIdentifier","src":"2435:6:14"}],"functionName":{"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"2394:40:14","nodeType":"YulIdentifier","src":"2394:40:14"},"nativeSrc":"2394:48:14","nodeType":"YulFunctionCall","src":"2394:48:14"}],"functionName":{"name":"allocate_memory","nativeSrc":"2378:15:14","nodeType":"YulIdentifier","src":"2378:15:14"},"nativeSrc":"2378:65:14","nodeType":"YulFunctionCall","src":"2378:65:14"},"variableNames":[{"name":"array","nativeSrc":"2369:5:14","nodeType":"YulIdentifier","src":"2369:5:14"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"2459:5:14","nodeType":"YulIdentifier","src":"2459:5:14"},{"name":"length","nativeSrc":"2466:6:14","nodeType":"YulIdentifier","src":"2466:6:14"}],"functionName":{"name":"mstore","nativeSrc":"2452:6:14","nodeType":"YulIdentifier","src":"2452:6:14"},"nativeSrc":"2452:21:14","nodeType":"YulFunctionCall","src":"2452:21:14"},"nativeSrc":"2452:21:14","nodeType":"YulExpressionStatement","src":"2452:21:14"},{"nativeSrc":"2482:27:14","nodeType":"YulVariableDeclaration","src":"2482:27:14","value":{"arguments":[{"name":"array","nativeSrc":"2497:5:14","nodeType":"YulIdentifier","src":"2497:5:14"},{"kind":"number","nativeSrc":"2504:4:14","nodeType":"YulLiteral","src":"2504:4:14","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2493:3:14","nodeType":"YulIdentifier","src":"2493:3:14"},"nativeSrc":"2493:16:14","nodeType":"YulFunctionCall","src":"2493:16:14"},"variables":[{"name":"dst","nativeSrc":"2486:3:14","nodeType":"YulTypedName","src":"2486:3:14","type":""}]},{"body":{"nativeSrc":"2547:83:14","nodeType":"YulBlock","src":"2547:83:14","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"2549:77:14","nodeType":"YulIdentifier","src":"2549:77:14"},"nativeSrc":"2549:79:14","nodeType":"YulFunctionCall","src":"2549:79:14"},"nativeSrc":"2549:79:14","nodeType":"YulExpressionStatement","src":"2549:79:14"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"2528:3:14","nodeType":"YulIdentifier","src":"2528:3:14"},{"name":"length","nativeSrc":"2533:6:14","nodeType":"YulIdentifier","src":"2533:6:14"}],"functionName":{"name":"add","nativeSrc":"2524:3:14","nodeType":"YulIdentifier","src":"2524:3:14"},"nativeSrc":"2524:16:14","nodeType":"YulFunctionCall","src":"2524:16:14"},{"name":"end","nativeSrc":"2542:3:14","nodeType":"YulIdentifier","src":"2542:3:14"}],"functionName":{"name":"gt","nativeSrc":"2521:2:14","nodeType":"YulIdentifier","src":"2521:2:14"},"nativeSrc":"2521:25:14","nodeType":"YulFunctionCall","src":"2521:25:14"},"nativeSrc":"2518:112:14","nodeType":"YulIf","src":"2518:112:14"},{"expression":{"arguments":[{"name":"src","nativeSrc":"2674:3:14","nodeType":"YulIdentifier","src":"2674:3:14"},{"name":"dst","nativeSrc":"2679:3:14","nodeType":"YulIdentifier","src":"2679:3:14"},{"name":"length","nativeSrc":"2684:6:14","nodeType":"YulIdentifier","src":"2684:6:14"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"2639:34:14","nodeType":"YulIdentifier","src":"2639:34:14"},"nativeSrc":"2639:52:14","nodeType":"YulFunctionCall","src":"2639:52:14"},"nativeSrc":"2639:52:14","nodeType":"YulExpressionStatement","src":"2639:52:14"}]},"name":"abi_decode_available_length_t_bytes_memory_ptr_fromMemory","nativeSrc":"2265:432:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"2332:3:14","nodeType":"YulTypedName","src":"2332:3:14","type":""},{"name":"length","nativeSrc":"2337:6:14","nodeType":"YulTypedName","src":"2337:6:14","type":""},{"name":"end","nativeSrc":"2345:3:14","nodeType":"YulTypedName","src":"2345:3:14","type":""}],"returnVariables":[{"name":"array","nativeSrc":"2353:5:14","nodeType":"YulTypedName","src":"2353:5:14","type":""}],"src":"2265:432:14"},{"body":{"nativeSrc":"2788:281:14","nodeType":"YulBlock","src":"2788:281:14","statements":[{"body":{"nativeSrc":"2837:83:14","nodeType":"YulBlock","src":"2837:83:14","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"2839:77:14","nodeType":"YulIdentifier","src":"2839:77:14"},"nativeSrc":"2839:79:14","nodeType":"YulFunctionCall","src":"2839:79:14"},"nativeSrc":"2839:79:14","nodeType":"YulExpressionStatement","src":"2839:79:14"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2816:6:14","nodeType":"YulIdentifier","src":"2816:6:14"},{"kind":"number","nativeSrc":"2824:4:14","nodeType":"YulLiteral","src":"2824:4:14","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"2812:3:14","nodeType":"YulIdentifier","src":"2812:3:14"},"nativeSrc":"2812:17:14","nodeType":"YulFunctionCall","src":"2812:17:14"},{"name":"end","nativeSrc":"2831:3:14","nodeType":"YulIdentifier","src":"2831:3:14"}],"functionName":{"name":"slt","nativeSrc":"2808:3:14","nodeType":"YulIdentifier","src":"2808:3:14"},"nativeSrc":"2808:27:14","nodeType":"YulFunctionCall","src":"2808:27:14"}],"functionName":{"name":"iszero","nativeSrc":"2801:6:14","nodeType":"YulIdentifier","src":"2801:6:14"},"nativeSrc":"2801:35:14","nodeType":"YulFunctionCall","src":"2801:35:14"},"nativeSrc":"2798:122:14","nodeType":"YulIf","src":"2798:122:14"},{"nativeSrc":"2929:27:14","nodeType":"YulVariableDeclaration","src":"2929:27:14","value":{"arguments":[{"name":"offset","nativeSrc":"2949:6:14","nodeType":"YulIdentifier","src":"2949:6:14"}],"functionName":{"name":"mload","nativeSrc":"2943:5:14","nodeType":"YulIdentifier","src":"2943:5:14"},"nativeSrc":"2943:13:14","nodeType":"YulFunctionCall","src":"2943:13:14"},"variables":[{"name":"length","nativeSrc":"2933:6:14","nodeType":"YulTypedName","src":"2933:6:14","type":""}]},{"nativeSrc":"2965:98:14","nodeType":"YulAssignment","src":"2965:98:14","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"3036:6:14","nodeType":"YulIdentifier","src":"3036:6:14"},{"kind":"number","nativeSrc":"3044:4:14","nodeType":"YulLiteral","src":"3044:4:14","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3032:3:14","nodeType":"YulIdentifier","src":"3032:3:14"},"nativeSrc":"3032:17:14","nodeType":"YulFunctionCall","src":"3032:17:14"},{"name":"length","nativeSrc":"3051:6:14","nodeType":"YulIdentifier","src":"3051:6:14"},{"name":"end","nativeSrc":"3059:3:14","nodeType":"YulIdentifier","src":"3059:3:14"}],"functionName":{"name":"abi_decode_available_length_t_bytes_memory_ptr_fromMemory","nativeSrc":"2974:57:14","nodeType":"YulIdentifier","src":"2974:57:14"},"nativeSrc":"2974:89:14","nodeType":"YulFunctionCall","src":"2974:89:14"},"variableNames":[{"name":"array","nativeSrc":"2965:5:14","nodeType":"YulIdentifier","src":"2965:5:14"}]}]},"name":"abi_decode_t_bytes_memory_ptr_fromMemory","nativeSrc":"2716:353:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2766:6:14","nodeType":"YulTypedName","src":"2766:6:14","type":""},{"name":"end","nativeSrc":"2774:3:14","nodeType":"YulTypedName","src":"2774:3:14","type":""}],"returnVariables":[{"name":"array","nativeSrc":"2782:5:14","nodeType":"YulTypedName","src":"2782:5:14","type":""}],"src":"2716:353:14"},{"body":{"nativeSrc":"3178:575:14","nodeType":"YulBlock","src":"3178:575:14","statements":[{"body":{"nativeSrc":"3224:83:14","nodeType":"YulBlock","src":"3224:83:14","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3226:77:14","nodeType":"YulIdentifier","src":"3226:77:14"},"nativeSrc":"3226:79:14","nodeType":"YulFunctionCall","src":"3226:79:14"},"nativeSrc":"3226:79:14","nodeType":"YulExpressionStatement","src":"3226:79:14"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3199:7:14","nodeType":"YulIdentifier","src":"3199:7:14"},{"name":"headStart","nativeSrc":"3208:9:14","nodeType":"YulIdentifier","src":"3208:9:14"}],"functionName":{"name":"sub","nativeSrc":"3195:3:14","nodeType":"YulIdentifier","src":"3195:3:14"},"nativeSrc":"3195:23:14","nodeType":"YulFunctionCall","src":"3195:23:14"},{"kind":"number","nativeSrc":"3220:2:14","nodeType":"YulLiteral","src":"3220:2:14","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"3191:3:14","nodeType":"YulIdentifier","src":"3191:3:14"},"nativeSrc":"3191:32:14","nodeType":"YulFunctionCall","src":"3191:32:14"},"nativeSrc":"3188:119:14","nodeType":"YulIf","src":"3188:119:14"},{"nativeSrc":"3317:128:14","nodeType":"YulBlock","src":"3317:128:14","statements":[{"nativeSrc":"3332:15:14","nodeType":"YulVariableDeclaration","src":"3332:15:14","value":{"kind":"number","nativeSrc":"3346:1:14","nodeType":"YulLiteral","src":"3346:1:14","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"3336:6:14","nodeType":"YulTypedName","src":"3336:6:14","type":""}]},{"nativeSrc":"3361:74:14","nodeType":"YulAssignment","src":"3361:74:14","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3407:9:14","nodeType":"YulIdentifier","src":"3407:9:14"},{"name":"offset","nativeSrc":"3418:6:14","nodeType":"YulIdentifier","src":"3418:6:14"}],"functionName":{"name":"add","nativeSrc":"3403:3:14","nodeType":"YulIdentifier","src":"3403:3:14"},"nativeSrc":"3403:22:14","nodeType":"YulFunctionCall","src":"3403:22:14"},{"name":"dataEnd","nativeSrc":"3427:7:14","nodeType":"YulIdentifier","src":"3427:7:14"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"3371:31:14","nodeType":"YulIdentifier","src":"3371:31:14"},"nativeSrc":"3371:64:14","nodeType":"YulFunctionCall","src":"3371:64:14"},"variableNames":[{"name":"value0","nativeSrc":"3361:6:14","nodeType":"YulIdentifier","src":"3361:6:14"}]}]},{"nativeSrc":"3455:291:14","nodeType":"YulBlock","src":"3455:291:14","statements":[{"nativeSrc":"3470:39:14","nodeType":"YulVariableDeclaration","src":"3470:39:14","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3494:9:14","nodeType":"YulIdentifier","src":"3494:9:14"},{"kind":"number","nativeSrc":"3505:2:14","nodeType":"YulLiteral","src":"3505:2:14","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3490:3:14","nodeType":"YulIdentifier","src":"3490:3:14"},"nativeSrc":"3490:18:14","nodeType":"YulFunctionCall","src":"3490:18:14"}],"functionName":{"name":"mload","nativeSrc":"3484:5:14","nodeType":"YulIdentifier","src":"3484:5:14"},"nativeSrc":"3484:25:14","nodeType":"YulFunctionCall","src":"3484:25:14"},"variables":[{"name":"offset","nativeSrc":"3474:6:14","nodeType":"YulTypedName","src":"3474:6:14","type":""}]},{"body":{"nativeSrc":"3556:83:14","nodeType":"YulBlock","src":"3556:83:14","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"3558:77:14","nodeType":"YulIdentifier","src":"3558:77:14"},"nativeSrc":"3558:79:14","nodeType":"YulFunctionCall","src":"3558:79:14"},"nativeSrc":"3558:79:14","nodeType":"YulExpressionStatement","src":"3558:79:14"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"3528:6:14","nodeType":"YulIdentifier","src":"3528:6:14"},{"kind":"number","nativeSrc":"3536:18:14","nodeType":"YulLiteral","src":"3536:18:14","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3525:2:14","nodeType":"YulIdentifier","src":"3525:2:14"},"nativeSrc":"3525:30:14","nodeType":"YulFunctionCall","src":"3525:30:14"},"nativeSrc":"3522:117:14","nodeType":"YulIf","src":"3522:117:14"},{"nativeSrc":"3653:83:14","nodeType":"YulAssignment","src":"3653:83:14","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3708:9:14","nodeType":"YulIdentifier","src":"3708:9:14"},{"name":"offset","nativeSrc":"3719:6:14","nodeType":"YulIdentifier","src":"3719:6:14"}],"functionName":{"name":"add","nativeSrc":"3704:3:14","nodeType":"YulIdentifier","src":"3704:3:14"},"nativeSrc":"3704:22:14","nodeType":"YulFunctionCall","src":"3704:22:14"},{"name":"dataEnd","nativeSrc":"3728:7:14","nodeType":"YulIdentifier","src":"3728:7:14"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr_fromMemory","nativeSrc":"3663:40:14","nodeType":"YulIdentifier","src":"3663:40:14"},"nativeSrc":"3663:73:14","nodeType":"YulFunctionCall","src":"3663:73:14"},"variableNames":[{"name":"value1","nativeSrc":"3653:6:14","nodeType":"YulIdentifier","src":"3653:6:14"}]}]}]},"name":"abi_decode_tuple_t_addresst_bytes_memory_ptr_fromMemory","nativeSrc":"3075:678:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3140:9:14","nodeType":"YulTypedName","src":"3140:9:14","type":""},{"name":"dataEnd","nativeSrc":"3151:7:14","nodeType":"YulTypedName","src":"3151:7:14","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3163:6:14","nodeType":"YulTypedName","src":"3163:6:14","type":""},{"name":"value1","nativeSrc":"3171:6:14","nodeType":"YulTypedName","src":"3171:6:14","type":""}],"src":"3075:678:14"},{"body":{"nativeSrc":"3804:32:14","nodeType":"YulBlock","src":"3804:32:14","statements":[{"nativeSrc":"3814:16:14","nodeType":"YulAssignment","src":"3814:16:14","value":{"name":"value","nativeSrc":"3825:5:14","nodeType":"YulIdentifier","src":"3825:5:14"},"variableNames":[{"name":"cleaned","nativeSrc":"3814:7:14","nodeType":"YulIdentifier","src":"3814:7:14"}]}]},"name":"cleanup_t_uint256","nativeSrc":"3759:77:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3786:5:14","nodeType":"YulTypedName","src":"3786:5:14","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"3796:7:14","nodeType":"YulTypedName","src":"3796:7:14","type":""}],"src":"3759:77:14"},{"body":{"nativeSrc":"3870:152:14","nodeType":"YulBlock","src":"3870:152:14","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3887:1:14","nodeType":"YulLiteral","src":"3887:1:14","type":"","value":"0"},{"kind":"number","nativeSrc":"3890:77:14","nodeType":"YulLiteral","src":"3890:77:14","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"3880:6:14","nodeType":"YulIdentifier","src":"3880:6:14"},"nativeSrc":"3880:88:14","nodeType":"YulFunctionCall","src":"3880:88:14"},"nativeSrc":"3880:88:14","nodeType":"YulExpressionStatement","src":"3880:88:14"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3984:1:14","nodeType":"YulLiteral","src":"3984:1:14","type":"","value":"4"},{"kind":"number","nativeSrc":"3987:4:14","nodeType":"YulLiteral","src":"3987:4:14","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"3977:6:14","nodeType":"YulIdentifier","src":"3977:6:14"},"nativeSrc":"3977:15:14","nodeType":"YulFunctionCall","src":"3977:15:14"},"nativeSrc":"3977:15:14","nodeType":"YulExpressionStatement","src":"3977:15:14"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4008:1:14","nodeType":"YulLiteral","src":"4008:1:14","type":"","value":"0"},{"kind":"number","nativeSrc":"4011:4:14","nodeType":"YulLiteral","src":"4011:4:14","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"4001:6:14","nodeType":"YulIdentifier","src":"4001:6:14"},"nativeSrc":"4001:15:14","nodeType":"YulFunctionCall","src":"4001:15:14"},"nativeSrc":"4001:15:14","nodeType":"YulExpressionStatement","src":"4001:15:14"}]},"name":"panic_error_0x11","nativeSrc":"3842:180:14","nodeType":"YulFunctionDefinition","src":"3842:180:14"},{"body":{"nativeSrc":"4073:149:14","nodeType":"YulBlock","src":"4073:149:14","statements":[{"nativeSrc":"4083:25:14","nodeType":"YulAssignment","src":"4083:25:14","value":{"arguments":[{"name":"x","nativeSrc":"4106:1:14","nodeType":"YulIdentifier","src":"4106:1:14"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"4088:17:14","nodeType":"YulIdentifier","src":"4088:17:14"},"nativeSrc":"4088:20:14","nodeType":"YulFunctionCall","src":"4088:20:14"},"variableNames":[{"name":"x","nativeSrc":"4083:1:14","nodeType":"YulIdentifier","src":"4083:1:14"}]},{"nativeSrc":"4117:25:14","nodeType":"YulAssignment","src":"4117:25:14","value":{"arguments":[{"name":"y","nativeSrc":"4140:1:14","nodeType":"YulIdentifier","src":"4140:1:14"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"4122:17:14","nodeType":"YulIdentifier","src":"4122:17:14"},"nativeSrc":"4122:20:14","nodeType":"YulFunctionCall","src":"4122:20:14"},"variableNames":[{"name":"y","nativeSrc":"4117:1:14","nodeType":"YulIdentifier","src":"4117:1:14"}]},{"nativeSrc":"4151:17:14","nodeType":"YulAssignment","src":"4151:17:14","value":{"arguments":[{"name":"x","nativeSrc":"4163:1:14","nodeType":"YulIdentifier","src":"4163:1:14"},{"name":"y","nativeSrc":"4166:1:14","nodeType":"YulIdentifier","src":"4166:1:14"}],"functionName":{"name":"sub","nativeSrc":"4159:3:14","nodeType":"YulIdentifier","src":"4159:3:14"},"nativeSrc":"4159:9:14","nodeType":"YulFunctionCall","src":"4159:9:14"},"variableNames":[{"name":"diff","nativeSrc":"4151:4:14","nodeType":"YulIdentifier","src":"4151:4:14"}]},{"body":{"nativeSrc":"4193:22:14","nodeType":"YulBlock","src":"4193:22:14","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"4195:16:14","nodeType":"YulIdentifier","src":"4195:16:14"},"nativeSrc":"4195:18:14","nodeType":"YulFunctionCall","src":"4195:18:14"},"nativeSrc":"4195:18:14","nodeType":"YulExpressionStatement","src":"4195:18:14"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"4184:4:14","nodeType":"YulIdentifier","src":"4184:4:14"},{"name":"x","nativeSrc":"4190:1:14","nodeType":"YulIdentifier","src":"4190:1:14"}],"functionName":{"name":"gt","nativeSrc":"4181:2:14","nodeType":"YulIdentifier","src":"4181:2:14"},"nativeSrc":"4181:11:14","nodeType":"YulFunctionCall","src":"4181:11:14"},"nativeSrc":"4178:37:14","nodeType":"YulIf","src":"4178:37:14"}]},"name":"checked_sub_t_uint256","nativeSrc":"4028:194:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"4059:1:14","nodeType":"YulTypedName","src":"4059:1:14","type":""},{"name":"y","nativeSrc":"4062:1:14","nodeType":"YulTypedName","src":"4062:1:14","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"4068:4:14","nodeType":"YulTypedName","src":"4068:4:14","type":""}],"src":"4028:194:14"},{"body":{"nativeSrc":"4256:152:14","nodeType":"YulBlock","src":"4256:152:14","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4273:1:14","nodeType":"YulLiteral","src":"4273:1:14","type":"","value":"0"},{"kind":"number","nativeSrc":"4276:77:14","nodeType":"YulLiteral","src":"4276:77:14","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"4266:6:14","nodeType":"YulIdentifier","src":"4266:6:14"},"nativeSrc":"4266:88:14","nodeType":"YulFunctionCall","src":"4266:88:14"},"nativeSrc":"4266:88:14","nodeType":"YulExpressionStatement","src":"4266:88:14"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4370:1:14","nodeType":"YulLiteral","src":"4370:1:14","type":"","value":"4"},{"kind":"number","nativeSrc":"4373:4:14","nodeType":"YulLiteral","src":"4373:4:14","type":"","value":"0x01"}],"functionName":{"name":"mstore","nativeSrc":"4363:6:14","nodeType":"YulIdentifier","src":"4363:6:14"},"nativeSrc":"4363:15:14","nodeType":"YulFunctionCall","src":"4363:15:14"},"nativeSrc":"4363:15:14","nodeType":"YulExpressionStatement","src":"4363:15:14"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4394:1:14","nodeType":"YulLiteral","src":"4394:1:14","type":"","value":"0"},{"kind":"number","nativeSrc":"4397:4:14","nodeType":"YulLiteral","src":"4397:4:14","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"4387:6:14","nodeType":"YulIdentifier","src":"4387:6:14"},"nativeSrc":"4387:15:14","nodeType":"YulFunctionCall","src":"4387:15:14"},"nativeSrc":"4387:15:14","nodeType":"YulExpressionStatement","src":"4387:15:14"}]},"name":"panic_error_0x01","nativeSrc":"4228:180:14","nodeType":"YulFunctionDefinition","src":"4228:180:14"},{"body":{"nativeSrc":"4510:73:14","nodeType":"YulBlock","src":"4510:73:14","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4527:3:14","nodeType":"YulIdentifier","src":"4527:3:14"},{"name":"length","nativeSrc":"4532:6:14","nodeType":"YulIdentifier","src":"4532:6:14"}],"functionName":{"name":"mstore","nativeSrc":"4520:6:14","nodeType":"YulIdentifier","src":"4520:6:14"},"nativeSrc":"4520:19:14","nodeType":"YulFunctionCall","src":"4520:19:14"},"nativeSrc":"4520:19:14","nodeType":"YulExpressionStatement","src":"4520:19:14"},{"nativeSrc":"4548:29:14","nodeType":"YulAssignment","src":"4548:29:14","value":{"arguments":[{"name":"pos","nativeSrc":"4567:3:14","nodeType":"YulIdentifier","src":"4567:3:14"},{"kind":"number","nativeSrc":"4572:4:14","nodeType":"YulLiteral","src":"4572:4:14","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4563:3:14","nodeType":"YulIdentifier","src":"4563:3:14"},"nativeSrc":"4563:14:14","nodeType":"YulFunctionCall","src":"4563:14:14"},"variableNames":[{"name":"updated_pos","nativeSrc":"4548:11:14","nodeType":"YulIdentifier","src":"4548:11:14"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"4414:169:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"4482:3:14","nodeType":"YulTypedName","src":"4482:3:14","type":""},{"name":"length","nativeSrc":"4487:6:14","nodeType":"YulTypedName","src":"4487:6:14","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"4498:11:14","nodeType":"YulTypedName","src":"4498:11:14","type":""}],"src":"4414:169:14"},{"body":{"nativeSrc":"4695:126:14","nodeType":"YulBlock","src":"4695:126:14","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"4717:6:14","nodeType":"YulIdentifier","src":"4717:6:14"},{"kind":"number","nativeSrc":"4725:1:14","nodeType":"YulLiteral","src":"4725:1:14","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4713:3:14","nodeType":"YulIdentifier","src":"4713:3:14"},"nativeSrc":"4713:14:14","nodeType":"YulFunctionCall","src":"4713:14:14"},{"hexValue":"455243313936373a206e657720696d706c656d656e746174696f6e206973206e","kind":"string","nativeSrc":"4729:34:14","nodeType":"YulLiteral","src":"4729:34:14","type":"","value":"ERC1967: new implementation is n"}],"functionName":{"name":"mstore","nativeSrc":"4706:6:14","nodeType":"YulIdentifier","src":"4706:6:14"},"nativeSrc":"4706:58:14","nodeType":"YulFunctionCall","src":"4706:58:14"},"nativeSrc":"4706:58:14","nodeType":"YulExpressionStatement","src":"4706:58:14"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"4785:6:14","nodeType":"YulIdentifier","src":"4785:6:14"},{"kind":"number","nativeSrc":"4793:2:14","nodeType":"YulLiteral","src":"4793:2:14","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4781:3:14","nodeType":"YulIdentifier","src":"4781:3:14"},"nativeSrc":"4781:15:14","nodeType":"YulFunctionCall","src":"4781:15:14"},{"hexValue":"6f74206120636f6e7472616374","kind":"string","nativeSrc":"4798:15:14","nodeType":"YulLiteral","src":"4798:15:14","type":"","value":"ot a contract"}],"functionName":{"name":"mstore","nativeSrc":"4774:6:14","nodeType":"YulIdentifier","src":"4774:6:14"},"nativeSrc":"4774:40:14","nodeType":"YulFunctionCall","src":"4774:40:14"},"nativeSrc":"4774:40:14","nodeType":"YulExpressionStatement","src":"4774:40:14"}]},"name":"store_literal_in_memory_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65","nativeSrc":"4589:232:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"4687:6:14","nodeType":"YulTypedName","src":"4687:6:14","type":""}],"src":"4589:232:14"},{"body":{"nativeSrc":"4973:220:14","nodeType":"YulBlock","src":"4973:220:14","statements":[{"nativeSrc":"4983:74:14","nodeType":"YulAssignment","src":"4983:74:14","value":{"arguments":[{"name":"pos","nativeSrc":"5049:3:14","nodeType":"YulIdentifier","src":"5049:3:14"},{"kind":"number","nativeSrc":"5054:2:14","nodeType":"YulLiteral","src":"5054:2:14","type":"","value":"45"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"4990:58:14","nodeType":"YulIdentifier","src":"4990:58:14"},"nativeSrc":"4990:67:14","nodeType":"YulFunctionCall","src":"4990:67:14"},"variableNames":[{"name":"pos","nativeSrc":"4983:3:14","nodeType":"YulIdentifier","src":"4983:3:14"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"5155:3:14","nodeType":"YulIdentifier","src":"5155:3:14"}],"functionName":{"name":"store_literal_in_memory_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65","nativeSrc":"5066:88:14","nodeType":"YulIdentifier","src":"5066:88:14"},"nativeSrc":"5066:93:14","nodeType":"YulFunctionCall","src":"5066:93:14"},"nativeSrc":"5066:93:14","nodeType":"YulExpressionStatement","src":"5066:93:14"},{"nativeSrc":"5168:19:14","nodeType":"YulAssignment","src":"5168:19:14","value":{"arguments":[{"name":"pos","nativeSrc":"5179:3:14","nodeType":"YulIdentifier","src":"5179:3:14"},{"kind":"number","nativeSrc":"5184:2:14","nodeType":"YulLiteral","src":"5184:2:14","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5175:3:14","nodeType":"YulIdentifier","src":"5175:3:14"},"nativeSrc":"5175:12:14","nodeType":"YulFunctionCall","src":"5175:12:14"},"variableNames":[{"name":"end","nativeSrc":"5168:3:14","nodeType":"YulIdentifier","src":"5168:3:14"}]}]},"name":"abi_encode_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65_to_t_string_memory_ptr_fromStack","nativeSrc":"4827:366:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"4961:3:14","nodeType":"YulTypedName","src":"4961:3:14","type":""}],"returnVariables":[{"name":"end","nativeSrc":"4969:3:14","nodeType":"YulTypedName","src":"4969:3:14","type":""}],"src":"4827:366:14"},{"body":{"nativeSrc":"5370:248:14","nodeType":"YulBlock","src":"5370:248:14","statements":[{"nativeSrc":"5380:26:14","nodeType":"YulAssignment","src":"5380:26:14","value":{"arguments":[{"name":"headStart","nativeSrc":"5392:9:14","nodeType":"YulIdentifier","src":"5392:9:14"},{"kind":"number","nativeSrc":"5403:2:14","nodeType":"YulLiteral","src":"5403:2:14","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5388:3:14","nodeType":"YulIdentifier","src":"5388:3:14"},"nativeSrc":"5388:18:14","nodeType":"YulFunctionCall","src":"5388:18:14"},"variableNames":[{"name":"tail","nativeSrc":"5380:4:14","nodeType":"YulIdentifier","src":"5380:4:14"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5427:9:14","nodeType":"YulIdentifier","src":"5427:9:14"},{"kind":"number","nativeSrc":"5438:1:14","nodeType":"YulLiteral","src":"5438:1:14","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5423:3:14","nodeType":"YulIdentifier","src":"5423:3:14"},"nativeSrc":"5423:17:14","nodeType":"YulFunctionCall","src":"5423:17:14"},{"arguments":[{"name":"tail","nativeSrc":"5446:4:14","nodeType":"YulIdentifier","src":"5446:4:14"},{"name":"headStart","nativeSrc":"5452:9:14","nodeType":"YulIdentifier","src":"5452:9:14"}],"functionName":{"name":"sub","nativeSrc":"5442:3:14","nodeType":"YulIdentifier","src":"5442:3:14"},"nativeSrc":"5442:20:14","nodeType":"YulFunctionCall","src":"5442:20:14"}],"functionName":{"name":"mstore","nativeSrc":"5416:6:14","nodeType":"YulIdentifier","src":"5416:6:14"},"nativeSrc":"5416:47:14","nodeType":"YulFunctionCall","src":"5416:47:14"},"nativeSrc":"5416:47:14","nodeType":"YulExpressionStatement","src":"5416:47:14"},{"nativeSrc":"5472:139:14","nodeType":"YulAssignment","src":"5472:139:14","value":{"arguments":[{"name":"tail","nativeSrc":"5606:4:14","nodeType":"YulIdentifier","src":"5606:4:14"}],"functionName":{"name":"abi_encode_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65_to_t_string_memory_ptr_fromStack","nativeSrc":"5480:124:14","nodeType":"YulIdentifier","src":"5480:124:14"},"nativeSrc":"5480:131:14","nodeType":"YulFunctionCall","src":"5480:131:14"},"variableNames":[{"name":"tail","nativeSrc":"5472:4:14","nodeType":"YulIdentifier","src":"5472:4:14"}]}]},"name":"abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"5199:419:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5350:9:14","nodeType":"YulTypedName","src":"5350:9:14","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5365:4:14","nodeType":"YulTypedName","src":"5365:4:14","type":""}],"src":"5199:419:14"},{"body":{"nativeSrc":"5730:119:14","nodeType":"YulBlock","src":"5730:119:14","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"5752:6:14","nodeType":"YulIdentifier","src":"5752:6:14"},{"kind":"number","nativeSrc":"5760:1:14","nodeType":"YulLiteral","src":"5760:1:14","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5748:3:14","nodeType":"YulIdentifier","src":"5748:3:14"},"nativeSrc":"5748:14:14","nodeType":"YulFunctionCall","src":"5748:14:14"},{"hexValue":"416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f","kind":"string","nativeSrc":"5764:34:14","nodeType":"YulLiteral","src":"5764:34:14","type":"","value":"Address: delegate call to non-co"}],"functionName":{"name":"mstore","nativeSrc":"5741:6:14","nodeType":"YulIdentifier","src":"5741:6:14"},"nativeSrc":"5741:58:14","nodeType":"YulFunctionCall","src":"5741:58:14"},"nativeSrc":"5741:58:14","nodeType":"YulExpressionStatement","src":"5741:58:14"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"5820:6:14","nodeType":"YulIdentifier","src":"5820:6:14"},{"kind":"number","nativeSrc":"5828:2:14","nodeType":"YulLiteral","src":"5828:2:14","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5816:3:14","nodeType":"YulIdentifier","src":"5816:3:14"},"nativeSrc":"5816:15:14","nodeType":"YulFunctionCall","src":"5816:15:14"},{"hexValue":"6e7472616374","kind":"string","nativeSrc":"5833:8:14","nodeType":"YulLiteral","src":"5833:8:14","type":"","value":"ntract"}],"functionName":{"name":"mstore","nativeSrc":"5809:6:14","nodeType":"YulIdentifier","src":"5809:6:14"},"nativeSrc":"5809:33:14","nodeType":"YulFunctionCall","src":"5809:33:14"},"nativeSrc":"5809:33:14","nodeType":"YulExpressionStatement","src":"5809:33:14"}]},"name":"store_literal_in_memory_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520","nativeSrc":"5624:225:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"5722:6:14","nodeType":"YulTypedName","src":"5722:6:14","type":""}],"src":"5624:225:14"},{"body":{"nativeSrc":"6001:220:14","nodeType":"YulBlock","src":"6001:220:14","statements":[{"nativeSrc":"6011:74:14","nodeType":"YulAssignment","src":"6011:74:14","value":{"arguments":[{"name":"pos","nativeSrc":"6077:3:14","nodeType":"YulIdentifier","src":"6077:3:14"},{"kind":"number","nativeSrc":"6082:2:14","nodeType":"YulLiteral","src":"6082:2:14","type":"","value":"38"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"6018:58:14","nodeType":"YulIdentifier","src":"6018:58:14"},"nativeSrc":"6018:67:14","nodeType":"YulFunctionCall","src":"6018:67:14"},"variableNames":[{"name":"pos","nativeSrc":"6011:3:14","nodeType":"YulIdentifier","src":"6011:3:14"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"6183:3:14","nodeType":"YulIdentifier","src":"6183:3:14"}],"functionName":{"name":"store_literal_in_memory_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520","nativeSrc":"6094:88:14","nodeType":"YulIdentifier","src":"6094:88:14"},"nativeSrc":"6094:93:14","nodeType":"YulFunctionCall","src":"6094:93:14"},"nativeSrc":"6094:93:14","nodeType":"YulExpressionStatement","src":"6094:93:14"},{"nativeSrc":"6196:19:14","nodeType":"YulAssignment","src":"6196:19:14","value":{"arguments":[{"name":"pos","nativeSrc":"6207:3:14","nodeType":"YulIdentifier","src":"6207:3:14"},{"kind":"number","nativeSrc":"6212:2:14","nodeType":"YulLiteral","src":"6212:2:14","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"6203:3:14","nodeType":"YulIdentifier","src":"6203:3:14"},"nativeSrc":"6203:12:14","nodeType":"YulFunctionCall","src":"6203:12:14"},"variableNames":[{"name":"end","nativeSrc":"6196:3:14","nodeType":"YulIdentifier","src":"6196:3:14"}]}]},"name":"abi_encode_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520_to_t_string_memory_ptr_fromStack","nativeSrc":"5855:366:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"5989:3:14","nodeType":"YulTypedName","src":"5989:3:14","type":""}],"returnVariables":[{"name":"end","nativeSrc":"5997:3:14","nodeType":"YulTypedName","src":"5997:3:14","type":""}],"src":"5855:366:14"},{"body":{"nativeSrc":"6398:248:14","nodeType":"YulBlock","src":"6398:248:14","statements":[{"nativeSrc":"6408:26:14","nodeType":"YulAssignment","src":"6408:26:14","value":{"arguments":[{"name":"headStart","nativeSrc":"6420:9:14","nodeType":"YulIdentifier","src":"6420:9:14"},{"kind":"number","nativeSrc":"6431:2:14","nodeType":"YulLiteral","src":"6431:2:14","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6416:3:14","nodeType":"YulIdentifier","src":"6416:3:14"},"nativeSrc":"6416:18:14","nodeType":"YulFunctionCall","src":"6416:18:14"},"variableNames":[{"name":"tail","nativeSrc":"6408:4:14","nodeType":"YulIdentifier","src":"6408:4:14"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6455:9:14","nodeType":"YulIdentifier","src":"6455:9:14"},{"kind":"number","nativeSrc":"6466:1:14","nodeType":"YulLiteral","src":"6466:1:14","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6451:3:14","nodeType":"YulIdentifier","src":"6451:3:14"},"nativeSrc":"6451:17:14","nodeType":"YulFunctionCall","src":"6451:17:14"},{"arguments":[{"name":"tail","nativeSrc":"6474:4:14","nodeType":"YulIdentifier","src":"6474:4:14"},{"name":"headStart","nativeSrc":"6480:9:14","nodeType":"YulIdentifier","src":"6480:9:14"}],"functionName":{"name":"sub","nativeSrc":"6470:3:14","nodeType":"YulIdentifier","src":"6470:3:14"},"nativeSrc":"6470:20:14","nodeType":"YulFunctionCall","src":"6470:20:14"}],"functionName":{"name":"mstore","nativeSrc":"6444:6:14","nodeType":"YulIdentifier","src":"6444:6:14"},"nativeSrc":"6444:47:14","nodeType":"YulFunctionCall","src":"6444:47:14"},"nativeSrc":"6444:47:14","nodeType":"YulExpressionStatement","src":"6444:47:14"},{"nativeSrc":"6500:139:14","nodeType":"YulAssignment","src":"6500:139:14","value":{"arguments":[{"name":"tail","nativeSrc":"6634:4:14","nodeType":"YulIdentifier","src":"6634:4:14"}],"functionName":{"name":"abi_encode_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520_to_t_string_memory_ptr_fromStack","nativeSrc":"6508:124:14","nodeType":"YulIdentifier","src":"6508:124:14"},"nativeSrc":"6508:131:14","nodeType":"YulFunctionCall","src":"6508:131:14"},"variableNames":[{"name":"tail","nativeSrc":"6500:4:14","nodeType":"YulIdentifier","src":"6500:4:14"}]}]},"name":"abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"6227:419:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6378:9:14","nodeType":"YulTypedName","src":"6378:9:14","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6393:4:14","nodeType":"YulTypedName","src":"6393:4:14","type":""}],"src":"6227:419:14"},{"body":{"nativeSrc":"6710:40:14","nodeType":"YulBlock","src":"6710:40:14","statements":[{"nativeSrc":"6721:22:14","nodeType":"YulAssignment","src":"6721:22:14","value":{"arguments":[{"name":"value","nativeSrc":"6737:5:14","nodeType":"YulIdentifier","src":"6737:5:14"}],"functionName":{"name":"mload","nativeSrc":"6731:5:14","nodeType":"YulIdentifier","src":"6731:5:14"},"nativeSrc":"6731:12:14","nodeType":"YulFunctionCall","src":"6731:12:14"},"variableNames":[{"name":"length","nativeSrc":"6721:6:14","nodeType":"YulIdentifier","src":"6721:6:14"}]}]},"name":"array_length_t_bytes_memory_ptr","nativeSrc":"6652:98:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6693:5:14","nodeType":"YulTypedName","src":"6693:5:14","type":""}],"returnVariables":[{"name":"length","nativeSrc":"6703:6:14","nodeType":"YulTypedName","src":"6703:6:14","type":""}],"src":"6652:98:14"},{"body":{"nativeSrc":"6869:34:14","nodeType":"YulBlock","src":"6869:34:14","statements":[{"nativeSrc":"6879:18:14","nodeType":"YulAssignment","src":"6879:18:14","value":{"name":"pos","nativeSrc":"6894:3:14","nodeType":"YulIdentifier","src":"6894:3:14"},"variableNames":[{"name":"updated_pos","nativeSrc":"6879:11:14","nodeType":"YulIdentifier","src":"6879:11:14"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"6756:147:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"6841:3:14","nodeType":"YulTypedName","src":"6841:3:14","type":""},{"name":"length","nativeSrc":"6846:6:14","nodeType":"YulTypedName","src":"6846:6:14","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"6857:11:14","nodeType":"YulTypedName","src":"6857:11:14","type":""}],"src":"6756:147:14"},{"body":{"nativeSrc":"7017:278:14","nodeType":"YulBlock","src":"7017:278:14","statements":[{"nativeSrc":"7027:52:14","nodeType":"YulVariableDeclaration","src":"7027:52:14","value":{"arguments":[{"name":"value","nativeSrc":"7073:5:14","nodeType":"YulIdentifier","src":"7073:5:14"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"7041:31:14","nodeType":"YulIdentifier","src":"7041:31:14"},"nativeSrc":"7041:38:14","nodeType":"YulFunctionCall","src":"7041:38:14"},"variables":[{"name":"length","nativeSrc":"7031:6:14","nodeType":"YulTypedName","src":"7031:6:14","type":""}]},{"nativeSrc":"7088:95:14","nodeType":"YulAssignment","src":"7088:95:14","value":{"arguments":[{"name":"pos","nativeSrc":"7171:3:14","nodeType":"YulIdentifier","src":"7171:3:14"},{"name":"length","nativeSrc":"7176:6:14","nodeType":"YulIdentifier","src":"7176:6:14"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"7095:75:14","nodeType":"YulIdentifier","src":"7095:75:14"},"nativeSrc":"7095:88:14","nodeType":"YulFunctionCall","src":"7095:88:14"},"variableNames":[{"name":"pos","nativeSrc":"7088:3:14","nodeType":"YulIdentifier","src":"7088:3:14"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7231:5:14","nodeType":"YulIdentifier","src":"7231:5:14"},{"kind":"number","nativeSrc":"7238:4:14","nodeType":"YulLiteral","src":"7238:4:14","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7227:3:14","nodeType":"YulIdentifier","src":"7227:3:14"},"nativeSrc":"7227:16:14","nodeType":"YulFunctionCall","src":"7227:16:14"},{"name":"pos","nativeSrc":"7245:3:14","nodeType":"YulIdentifier","src":"7245:3:14"},{"name":"length","nativeSrc":"7250:6:14","nodeType":"YulIdentifier","src":"7250:6:14"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"7192:34:14","nodeType":"YulIdentifier","src":"7192:34:14"},"nativeSrc":"7192:65:14","nodeType":"YulFunctionCall","src":"7192:65:14"},"nativeSrc":"7192:65:14","nodeType":"YulExpressionStatement","src":"7192:65:14"},{"nativeSrc":"7266:23:14","nodeType":"YulAssignment","src":"7266:23:14","value":{"arguments":[{"name":"pos","nativeSrc":"7277:3:14","nodeType":"YulIdentifier","src":"7277:3:14"},{"name":"length","nativeSrc":"7282:6:14","nodeType":"YulIdentifier","src":"7282:6:14"}],"functionName":{"name":"add","nativeSrc":"7273:3:14","nodeType":"YulIdentifier","src":"7273:3:14"},"nativeSrc":"7273:16:14","nodeType":"YulFunctionCall","src":"7273:16:14"},"variableNames":[{"name":"end","nativeSrc":"7266:3:14","nodeType":"YulIdentifier","src":"7266:3:14"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"6909:386:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6998:5:14","nodeType":"YulTypedName","src":"6998:5:14","type":""},{"name":"pos","nativeSrc":"7005:3:14","nodeType":"YulTypedName","src":"7005:3:14","type":""}],"returnVariables":[{"name":"end","nativeSrc":"7013:3:14","nodeType":"YulTypedName","src":"7013:3:14","type":""}],"src":"6909:386:14"},{"body":{"nativeSrc":"7435:137:14","nodeType":"YulBlock","src":"7435:137:14","statements":[{"nativeSrc":"7446:100:14","nodeType":"YulAssignment","src":"7446:100:14","value":{"arguments":[{"name":"value0","nativeSrc":"7533:6:14","nodeType":"YulIdentifier","src":"7533:6:14"},{"name":"pos","nativeSrc":"7542:3:14","nodeType":"YulIdentifier","src":"7542:3:14"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"7453:79:14","nodeType":"YulIdentifier","src":"7453:79:14"},"nativeSrc":"7453:93:14","nodeType":"YulFunctionCall","src":"7453:93:14"},"variableNames":[{"name":"pos","nativeSrc":"7446:3:14","nodeType":"YulIdentifier","src":"7446:3:14"}]},{"nativeSrc":"7556:10:14","nodeType":"YulAssignment","src":"7556:10:14","value":{"name":"pos","nativeSrc":"7563:3:14","nodeType":"YulIdentifier","src":"7563:3:14"},"variableNames":[{"name":"end","nativeSrc":"7556:3:14","nodeType":"YulIdentifier","src":"7556:3:14"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"7301:271:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"7414:3:14","nodeType":"YulTypedName","src":"7414:3:14","type":""},{"name":"value0","nativeSrc":"7420:6:14","nodeType":"YulTypedName","src":"7420:6:14","type":""}],"returnVariables":[{"name":"end","nativeSrc":"7431:3:14","nodeType":"YulTypedName","src":"7431:3:14","type":""}],"src":"7301:271:14"},{"body":{"nativeSrc":"7637:40:14","nodeType":"YulBlock","src":"7637:40:14","statements":[{"nativeSrc":"7648:22:14","nodeType":"YulAssignment","src":"7648:22:14","value":{"arguments":[{"name":"value","nativeSrc":"7664:5:14","nodeType":"YulIdentifier","src":"7664:5:14"}],"functionName":{"name":"mload","nativeSrc":"7658:5:14","nodeType":"YulIdentifier","src":"7658:5:14"},"nativeSrc":"7658:12:14","nodeType":"YulFunctionCall","src":"7658:12:14"},"variableNames":[{"name":"length","nativeSrc":"7648:6:14","nodeType":"YulIdentifier","src":"7648:6:14"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"7578:99:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7620:5:14","nodeType":"YulTypedName","src":"7620:5:14","type":""}],"returnVariables":[{"name":"length","nativeSrc":"7630:6:14","nodeType":"YulTypedName","src":"7630:6:14","type":""}],"src":"7578:99:14"},{"body":{"nativeSrc":"7775:285:14","nodeType":"YulBlock","src":"7775:285:14","statements":[{"nativeSrc":"7785:53:14","nodeType":"YulVariableDeclaration","src":"7785:53:14","value":{"arguments":[{"name":"value","nativeSrc":"7832:5:14","nodeType":"YulIdentifier","src":"7832:5:14"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"7799:32:14","nodeType":"YulIdentifier","src":"7799:32:14"},"nativeSrc":"7799:39:14","nodeType":"YulFunctionCall","src":"7799:39:14"},"variables":[{"name":"length","nativeSrc":"7789:6:14","nodeType":"YulTypedName","src":"7789:6:14","type":""}]},{"nativeSrc":"7847:78:14","nodeType":"YulAssignment","src":"7847:78:14","value":{"arguments":[{"name":"pos","nativeSrc":"7913:3:14","nodeType":"YulIdentifier","src":"7913:3:14"},{"name":"length","nativeSrc":"7918:6:14","nodeType":"YulIdentifier","src":"7918:6:14"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"7854:58:14","nodeType":"YulIdentifier","src":"7854:58:14"},"nativeSrc":"7854:71:14","nodeType":"YulFunctionCall","src":"7854:71:14"},"variableNames":[{"name":"pos","nativeSrc":"7847:3:14","nodeType":"YulIdentifier","src":"7847:3:14"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7973:5:14","nodeType":"YulIdentifier","src":"7973:5:14"},{"kind":"number","nativeSrc":"7980:4:14","nodeType":"YulLiteral","src":"7980:4:14","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7969:3:14","nodeType":"YulIdentifier","src":"7969:3:14"},"nativeSrc":"7969:16:14","nodeType":"YulFunctionCall","src":"7969:16:14"},{"name":"pos","nativeSrc":"7987:3:14","nodeType":"YulIdentifier","src":"7987:3:14"},{"name":"length","nativeSrc":"7992:6:14","nodeType":"YulIdentifier","src":"7992:6:14"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"7934:34:14","nodeType":"YulIdentifier","src":"7934:34:14"},"nativeSrc":"7934:65:14","nodeType":"YulFunctionCall","src":"7934:65:14"},"nativeSrc":"7934:65:14","nodeType":"YulExpressionStatement","src":"7934:65:14"},{"nativeSrc":"8008:46:14","nodeType":"YulAssignment","src":"8008:46:14","value":{"arguments":[{"name":"pos","nativeSrc":"8019:3:14","nodeType":"YulIdentifier","src":"8019:3:14"},{"arguments":[{"name":"length","nativeSrc":"8046:6:14","nodeType":"YulIdentifier","src":"8046:6:14"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"8024:21:14","nodeType":"YulIdentifier","src":"8024:21:14"},"nativeSrc":"8024:29:14","nodeType":"YulFunctionCall","src":"8024:29:14"}],"functionName":{"name":"add","nativeSrc":"8015:3:14","nodeType":"YulIdentifier","src":"8015:3:14"},"nativeSrc":"8015:39:14","nodeType":"YulFunctionCall","src":"8015:39:14"},"variableNames":[{"name":"end","nativeSrc":"8008:3:14","nodeType":"YulIdentifier","src":"8008:3:14"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"7683:377:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7756:5:14","nodeType":"YulTypedName","src":"7756:5:14","type":""},{"name":"pos","nativeSrc":"7763:3:14","nodeType":"YulTypedName","src":"7763:3:14","type":""}],"returnVariables":[{"name":"end","nativeSrc":"7771:3:14","nodeType":"YulTypedName","src":"7771:3:14","type":""}],"src":"7683:377:14"},{"body":{"nativeSrc":"8184:195:14","nodeType":"YulBlock","src":"8184:195:14","statements":[{"nativeSrc":"8194:26:14","nodeType":"YulAssignment","src":"8194:26:14","value":{"arguments":[{"name":"headStart","nativeSrc":"8206:9:14","nodeType":"YulIdentifier","src":"8206:9:14"},{"kind":"number","nativeSrc":"8217:2:14","nodeType":"YulLiteral","src":"8217:2:14","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8202:3:14","nodeType":"YulIdentifier","src":"8202:3:14"},"nativeSrc":"8202:18:14","nodeType":"YulFunctionCall","src":"8202:18:14"},"variableNames":[{"name":"tail","nativeSrc":"8194:4:14","nodeType":"YulIdentifier","src":"8194:4:14"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8241:9:14","nodeType":"YulIdentifier","src":"8241:9:14"},{"kind":"number","nativeSrc":"8252:1:14","nodeType":"YulLiteral","src":"8252:1:14","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"8237:3:14","nodeType":"YulIdentifier","src":"8237:3:14"},"nativeSrc":"8237:17:14","nodeType":"YulFunctionCall","src":"8237:17:14"},{"arguments":[{"name":"tail","nativeSrc":"8260:4:14","nodeType":"YulIdentifier","src":"8260:4:14"},{"name":"headStart","nativeSrc":"8266:9:14","nodeType":"YulIdentifier","src":"8266:9:14"}],"functionName":{"name":"sub","nativeSrc":"8256:3:14","nodeType":"YulIdentifier","src":"8256:3:14"},"nativeSrc":"8256:20:14","nodeType":"YulFunctionCall","src":"8256:20:14"}],"functionName":{"name":"mstore","nativeSrc":"8230:6:14","nodeType":"YulIdentifier","src":"8230:6:14"},"nativeSrc":"8230:47:14","nodeType":"YulFunctionCall","src":"8230:47:14"},"nativeSrc":"8230:47:14","nodeType":"YulExpressionStatement","src":"8230:47:14"},{"nativeSrc":"8286:86:14","nodeType":"YulAssignment","src":"8286:86:14","value":{"arguments":[{"name":"value0","nativeSrc":"8358:6:14","nodeType":"YulIdentifier","src":"8358:6:14"},{"name":"tail","nativeSrc":"8367:4:14","nodeType":"YulIdentifier","src":"8367:4:14"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"8294:63:14","nodeType":"YulIdentifier","src":"8294:63:14"},"nativeSrc":"8294:78:14","nodeType":"YulFunctionCall","src":"8294:78:14"},"variableNames":[{"name":"tail","nativeSrc":"8286:4:14","nodeType":"YulIdentifier","src":"8286:4:14"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"8066:313:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8156:9:14","nodeType":"YulTypedName","src":"8156:9:14","type":""},{"name":"value0","nativeSrc":"8168:6:14","nodeType":"YulTypedName","src":"8168:6:14","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8179:4:14","nodeType":"YulTypedName","src":"8179:4:14","type":""}],"src":"8066:313:14"}]},"contents":"{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_address(value)\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_bytes_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n mcopy(dst, src, length)\n mstore(add(dst, length), 0)\n\n }\n\n function abi_decode_available_length_t_bytes_memory_ptr_fromMemory(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_bytes_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_memory_to_memory_with_cleanup(src, dst, length)\n }\n\n // bytes\n function abi_decode_t_bytes_memory_ptr_fromMemory(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := mload(offset)\n array := abi_decode_available_length_t_bytes_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_addresst_bytes_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := mload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1 := abi_decode_t_bytes_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n diff := sub(x, y)\n\n if gt(diff, x) { panic_error_0x11() }\n\n }\n\n function panic_error_0x01() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x01)\n revert(0, 0x24)\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function store_literal_in_memory_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC1967: new implementation is n\")\n\n mstore(add(memPtr, 32), \"ot a contract\")\n\n }\n\n function abi_encode_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 45)\n store_literal_in_memory_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520(memPtr) {\n\n mstore(add(memPtr, 0), \"Address: delegate call to non-co\")\n\n mstore(add(memPtr, 32), \"ntract\")\n\n }\n\n function abi_encode_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n store_literal_in_memory_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, length)\n }\n\n function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value0) -> end {\n\n pos := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n end := pos\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n}\n","id":14,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040526040516106163803806106168339810160408190526100229161036f565b61004d60017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd6103d6565b5f805160206105cf83398151915214610068576100686103e9565b61007382825f61007a565b5050610519565b610083836100a5565b5f8251118061008f5750805b156100a05761009e83836100e4565b505b505050565b6100ae81610112565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b606061010983836040518060600160405280602781526020016105ef60279139610170565b90505b92915050565b6001600160a01b0381163b6101425760405162461bcd60e51b815260040161013990610449565b60405180910390fd5b5f805160206105cf83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b60606001600160a01b0384163b6101995760405162461bcd60e51b81526004016101399061049b565b5f80856001600160a01b0316856040516101b391906104cc565b5f60405180830381855af49150503d805f81146101eb576040519150601f19603f3d011682016040523d82523d5f602084013e6101f0565b606091505b50909250905061020182828661020d565b925050505b9392505050565b6060831561021c575081610206565b82511561022c5782518084602001fd5b8160405162461bcd60e51b81526004016101399190610508565b5f6001600160a01b03821661010c565b61025f81610246565b8114610269575f80fd5b50565b805161010c81610256565b634e487b7160e01b5f52604160045260245ffd5b601f19601f83011681018181106001600160401b03821117156102b0576102b0610277565b6040525050565b5f6102c160405190565b90506102cd828261028b565b919050565b5f6001600160401b038211156102ea576102ea610277565b601f19601f83011660200192915050565b8281835e505f910152565b5f610318610313846102d2565b6102b7565b905082815260208101848484011115610332576103325f80fd5b61033d8482856102fb565b509392505050565b5f82601f830112610357576103575f80fd5b8151610367848260208601610306565b949350505050565b5f8060408385031215610383576103835f80fd5b5f61038e858561026c565b92505060208301516001600160401b038111156103ac576103ac5f80fd5b6103b885828601610345565b9150509250929050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561010c5761010c6103c2565b634e487b7160e01b5f52600160045260245ffd5b602d81525f602082017f455243313936373a206e657720696d706c656d656e746174696f6e206973206e81526c1bdd08184818dbdb9d1c9858dd609a1b602082015291505b5060400190565b6020808252810161010c816103fd565b602681525f602082017f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f8152651b9d1c9858dd60d21b60208201529150610442565b6020808252810161010c81610459565b5f6104b4825190565b6104c28185602086016102fb565b9290920192915050565b5f61020682846104ab565b5f6104e0825190565b8084526020840193506104f78185602086016102fb565b601f01601f19169290920192915050565b6020808252810161010981846104d7565b60aa806105255f395ff3fe608060405236601057600e6013565b005b600e5b601f601b6021565b6057565b565b5f60527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156070573d5ff35b3d5ffdfea2646970667358221220685391581ec7088fded0c77239b142e848a2993393b8f4a66f42ef818e3b719864736f6c63430008190033360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0x616 CODESIZE SUB DUP1 PUSH2 0x616 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x22 SWAP2 PUSH2 0x36F JUMP JUMPDEST PUSH2 0x4D PUSH1 0x1 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBD PUSH2 0x3D6 JUMP JUMPDEST PUSH0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5CF DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ PUSH2 0x68 JUMPI PUSH2 0x68 PUSH2 0x3E9 JUMP JUMPDEST PUSH2 0x73 DUP3 DUP3 PUSH0 PUSH2 0x7A JUMP JUMPDEST POP POP PUSH2 0x519 JUMP JUMPDEST PUSH2 0x83 DUP4 PUSH2 0xA5 JUMP JUMPDEST PUSH0 DUP3 MLOAD GT DUP1 PUSH2 0x8F JUMPI POP DUP1 JUMPDEST ISZERO PUSH2 0xA0 JUMPI PUSH2 0x9E DUP4 DUP4 PUSH2 0xE4 JUMP JUMPDEST POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0xAE DUP2 PUSH2 0x112 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x109 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x5EF PUSH1 0x27 SWAP2 CODECOPY PUSH2 0x170 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE PUSH2 0x142 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x139 SWAP1 PUSH2 0x449 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x5CF DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE PUSH2 0x199 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x139 SWAP1 PUSH2 0x49B JUMP JUMPDEST PUSH0 DUP1 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x40 MLOAD PUSH2 0x1B3 SWAP2 SWAP1 PUSH2 0x4CC JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x1EB JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1F0 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP1 SWAP3 POP SWAP1 POP PUSH2 0x201 DUP3 DUP3 DUP7 PUSH2 0x20D JUMP JUMPDEST SWAP3 POP POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x21C JUMPI POP DUP2 PUSH2 0x206 JUMP JUMPDEST DUP3 MLOAD ISZERO PUSH2 0x22C JUMPI DUP3 MLOAD DUP1 DUP5 PUSH1 0x20 ADD REVERT JUMPDEST DUP2 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x139 SWAP2 SWAP1 PUSH2 0x508 JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x10C JUMP JUMPDEST PUSH2 0x25F DUP2 PUSH2 0x246 JUMP JUMPDEST DUP2 EQ PUSH2 0x269 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 MLOAD PUSH2 0x10C DUP2 PUSH2 0x256 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT OR ISZERO PUSH2 0x2B0 JUMPI PUSH2 0x2B0 PUSH2 0x277 JUMP JUMPDEST PUSH1 0x40 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x2C1 PUSH1 0x40 MLOAD SWAP1 JUMP JUMPDEST SWAP1 POP PUSH2 0x2CD DUP3 DUP3 PUSH2 0x28B JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x2EA JUMPI PUSH2 0x2EA PUSH2 0x277 JUMP JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0x318 PUSH2 0x313 DUP5 PUSH2 0x2D2 JUMP JUMPDEST PUSH2 0x2B7 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x332 JUMPI PUSH2 0x332 PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x33D DUP5 DUP3 DUP6 PUSH2 0x2FB JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x357 JUMPI PUSH2 0x357 PUSH0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x367 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x306 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x383 JUMPI PUSH2 0x383 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x38E DUP6 DUP6 PUSH2 0x26C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x3AC JUMPI PUSH2 0x3AC PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x3B8 DUP6 DUP3 DUP7 ADD PUSH2 0x345 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x10C JUMPI PUSH2 0x10C PUSH2 0x3C2 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x2D DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x455243313936373A206E657720696D706C656D656E746174696F6E206973206E DUP2 MSTORE PUSH13 0x1BDD08184818DBDB9D1C9858DD PUSH1 0x9A SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x10C DUP2 PUSH2 0x3FD JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x416464726573733A2064656C65676174652063616C6C20746F206E6F6E2D636F DUP2 MSTORE PUSH6 0x1B9D1C9858DD PUSH1 0xD2 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x442 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x10C DUP2 PUSH2 0x459 JUMP JUMPDEST PUSH0 PUSH2 0x4B4 DUP3 MLOAD SWAP1 JUMP JUMPDEST PUSH2 0x4C2 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x2FB JUMP JUMPDEST SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x206 DUP3 DUP5 PUSH2 0x4AB JUMP JUMPDEST PUSH0 PUSH2 0x4E0 DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x4F7 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x2FB JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x109 DUP2 DUP5 PUSH2 0x4D7 JUMP JUMPDEST PUSH1 0xAA DUP1 PUSH2 0x525 PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLDATASIZE PUSH1 0x10 JUMPI PUSH1 0xE PUSH1 0x13 JUMP JUMPDEST STOP JUMPDEST PUSH1 0xE JUMPDEST PUSH1 0x1F PUSH1 0x1B PUSH1 0x21 JUMP JUMPDEST PUSH1 0x57 JUMP JUMPDEST JUMP JUMPDEST PUSH0 PUSH1 0x52 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST CALLDATASIZE PUSH0 DUP1 CALLDATACOPY PUSH0 DUP1 CALLDATASIZE PUSH0 DUP5 GAS DELEGATECALL RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY DUP1 DUP1 ISZERO PUSH1 0x70 JUMPI RETURNDATASIZE PUSH0 RETURN JUMPDEST RETURNDATASIZE PUSH0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH9 0x5391581EC7088FDED0 0xC7 PUSH19 0x39B142E848A2993393B8F4A66F42EF818E3B71 SWAP9 PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER CALLDATASIZE ADDMOD SWAP5 LOG1 EXTCODESIZE LOG1 LOG3 0x21 MOD PUSH8 0xC828492DB98DCA3E KECCAK256 PUSH23 0xCC3735A920A3CA505D382BBC416464726573733A206C6F PUSH24 0x2D6C6576656C2064656C65676174652063616C6C20666169 PUSH13 0x65640000000000000000000000 ","sourceMap":"552:830:4:-:0;;;945:217;;;;;;;;;;;;;;;;;;:::i;:::-;1050:54;1103:1;1058:41;1050:54;:::i;:::-;-1:-1:-1;;;;;;;;;;;1018:87:4;1011:95;;;;:::i;:::-;1116:39;1134:6;1142:5;1149;1116:17;:39::i;:::-;945:217;;552:830;;2188:295:5;2326:29;2337:17;2326:10;:29::i;:::-;2383:1;2369:4;:11;:15;:28;;;;2388:9;2369:28;2365:112;;;2413:53;2442:17;2461:4;2413:28;:53::i;:::-;;2365:112;2188:295;;;:::o;1902:152::-;1968:37;1987:17;1968:18;:37::i;:::-;2020:27;;-1:-1:-1;;;;;2020:27:5;;;;;;;;1902:152;:::o;6575:198:10:-;6658:12;6689:77;6710:6;6718:4;6689:77;;;;;;;;;;;;;;;;;:20;:77::i;:::-;6682:84;;6575:198;;;;;:::o;1537:259:5:-;-1:-1:-1;;;;;1470:19:10;;;1610:95:5;;;;-1:-1:-1;;;1610:95:5;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;;;;;;;1715:74:5;;-1:-1:-1;;;;;;1715:74:5;-1:-1:-1;;;;;1715:74:5;;;;;;;;;;1537:259::o;6959:387:10:-;7100:12;-1:-1:-1;;;;;1470:19:10;;;7124:69;;;;-1:-1:-1;;;7124:69:10;;;;;;;:::i;:::-;7205:12;7219:23;7246:6;-1:-1:-1;;;;;7246:19:10;7266:4;7246:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7204:67:10;;-1:-1:-1;7204:67:10;-1:-1:-1;7288:51:10;7204:67;;7326:12;7288:16;:51::i;:::-;7281:58;;;;6959:387;;;;;;:::o;7566:692::-;7712:12;7740:7;7736:516;;;-1:-1:-1;7770:10:10;7763:17;;7736:516;7881:17;;:21;7877:365;;8075:10;8069:17;8135:15;8122:10;8118:2;8114:19;8107:44;7877:365;8214:12;8207:20;;-1:-1:-1;;;8207:20:10;;;;;;;;:::i;466:96:14:-;503:7;-1:-1:-1;;;;;400:54:14;;532:24;334:126;568:122;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:143::-;778:13;;800:33;778:13;800:33;:::i;1199:180::-;-1:-1:-1;;;1244:1:14;1237:88;1344:4;1341:1;1334:15;1368:4;1365:1;1358:15;1385:281;-1:-1:-1;;1183:2:14;1163:14;;1159:28;1460:6;1456:40;1598:6;1586:10;1583:22;-1:-1:-1;;;;;1550:10:14;1547:34;1544:62;1541:88;;;1609:18;;:::i;:::-;1645:2;1638:22;-1:-1:-1;;1385:281:14:o;1672:129::-;1706:6;1733:20;73:2;67:9;;7:75;1733:20;1723:30;;1762:33;1790:4;1782:6;1762:33;:::i;:::-;1672:129;;;:::o;1807:307::-;1868:4;-1:-1:-1;;;;;1950:6:14;1947:30;1944:56;;;1980:18;;:::i;:::-;-1:-1:-1;;1183:2:14;1163:14;;1159:28;2102:4;2092:15;;1807:307;-1:-1:-1;;1807:307:14:o;2120:139::-;2209:6;2204:3;2199;2193:23;-1:-1:-1;2250:1:14;2232:16;;2225:27;2120:139::o;2265:432::-;2353:5;2378:65;2394:48;2435:6;2394:48;:::i;:::-;2378:65;:::i;:::-;2369:74;;2466:6;2459:5;2452:21;2504:4;2497:5;2493:16;2542:3;2533:6;2528:3;2524:16;2521:25;2518:112;;;2549:79;197:1;194;187:12;2549:79;2639:52;2684:6;2679:3;2674;2639:52;:::i;:::-;2359:338;2265:432;;;;;:::o;2716:353::-;2782:5;2831:3;2824:4;2816:6;2812:17;2808:27;2798:122;;2839:79;197:1;194;187:12;2839:79;2949:6;2943:13;2974:89;3059:3;3051:6;3044:4;3036:6;3032:17;2974:89;:::i;:::-;2965:98;2716:353;-1:-1:-1;;;;2716:353:14:o;3075:678::-;3163:6;3171;3220:2;3208:9;3199:7;3195:23;3191:32;3188:119;;;3226:79;197:1;194;187:12;3226:79;3346:1;3371:64;3427:7;3407:9;3371:64;:::i;:::-;3361:74;;3317:128;3505:2;3494:9;3490:18;3484:25;-1:-1:-1;;;;;3528:6:14;3525:30;3522:117;;;3558:79;197:1;194;187:12;3558:79;3663:73;3728:7;3719:6;3708:9;3704:22;3663:73;:::i;:::-;3653:83;;3455:291;3075:678;;;;;:::o;3842:180::-;-1:-1:-1;;;3887:1:14;3880:88;3987:4;3984:1;3977:15;4011:4;4008:1;4001:15;4028:194;4159:9;;;4181:11;;;4178:37;;;4195:18;;:::i;4228:180::-;-1:-1:-1;;;4273:1:14;4266:88;4373:4;4370:1;4363:15;4397:4;4394:1;4387:15;4827:366;5054:2;4520:19;;4969:3;4572:4;4563:14;;4729:34;4706:58;;-1:-1:-1;;;4793:2:14;4781:15;;4774:40;4983:74;-1:-1:-1;5066:93:14;-1:-1:-1;5184:2:14;5175:12;;4827:366::o;5199:419::-;5403:2;5416:47;;;5388:18;;5480:131;5388:18;5480:131;:::i;5855:366::-;6082:2;4520:19;;5997:3;4572:4;4563:14;;5764:34;5741:58;;-1:-1:-1;;;5828:2:14;5816:15;;5809:33;6011:74;-1:-1:-1;6094:93:14;5624:225;6227:419;6431:2;6444:47;;;6416:18;;6508:131;6416:18;6508:131;:::i;6909:386::-;7013:3;7041:38;7073:5;6731:12;;6652:98;7041:38;7192:65;7250:6;7245:3;7238:4;7231:5;7227:16;7192:65;:::i;:::-;7273:16;;;;;6909:386;-1:-1:-1;;6909:386:14:o;7301:271::-;7431:3;7453:93;7542:3;7533:6;7453:93;:::i;7683:377::-;7771:3;7799:39;7832:5;6731:12;;6652:98;7799:39;4520:19;;;4572:4;4563:14;;7847:78;;7934:65;7992:6;7987:3;7980:4;7973:5;7969:16;7934:65;:::i;:::-;1183:2;1163:14;-1:-1:-1;;1159:28:14;8015:39;;;;;;-1:-1:-1;;7683:377:14:o;8066:313::-;8217:2;8230:47;;;8202:18;;8294:78;8202:18;8358:6;8294:78;:::i;8066:313::-;552:830:4;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_530":{"entryPoint":null,"id":530,"parameterSlots":0,"returnSlots":0},"@_538":{"entryPoint":null,"id":538,"parameterSlots":0,"returnSlots":0},"@_beforeFallback_543":{"entryPoint":null,"id":543,"parameterSlots":0,"returnSlots":0},"@_delegate_503":{"entryPoint":87,"id":503,"parameterSlots":1,"returnSlots":0},"@_fallback_522":{"entryPoint":19,"id":522,"parameterSlots":0,"returnSlots":0},"@_getImplementation_206":{"entryPoint":null,"id":206,"parameterSlots":0,"returnSlots":1},"@_implementation_173":{"entryPoint":33,"id":173,"parameterSlots":0,"returnSlots":1},"@getAddressSlot_1206":{"entryPoint":null,"id":1206,"parameterSlots":1,"returnSlots":1}},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"608060405236601057600e6013565b005b600e5b601f601b6021565b6057565b565b5f60527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156070573d5ff35b3d5ffdfea2646970667358221220685391581ec7088fded0c77239b142e848a2993393b8f4a66f42ef818e3b719864736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLDATASIZE PUSH1 0x10 JUMPI PUSH1 0xE PUSH1 0x13 JUMP JUMPDEST STOP JUMPDEST PUSH1 0xE JUMPDEST PUSH1 0x1F PUSH1 0x1B PUSH1 0x21 JUMP JUMPDEST PUSH1 0x57 JUMP JUMPDEST JUMP JUMPDEST PUSH0 PUSH1 0x52 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST CALLDATASIZE PUSH0 DUP1 CALLDATACOPY PUSH0 DUP1 CALLDATASIZE PUSH0 DUP5 GAS DELEGATECALL RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY DUP1 DUP1 ISZERO PUSH1 0x70 JUMPI RETURNDATASIZE PUSH0 RETURN JUMPDEST RETURNDATASIZE PUSH0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH9 0x5391581EC7088FDED0 0xC7 PUSH19 0x39B142E848A2993393B8F4A66F42EF818E3B71 SWAP9 PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"552:830:4:-:0;;;;;;2903:11:6;:9;:11::i;:::-;552:830:4;;2680:11:6;2327:110;2402:28;2412:17;:15;:17::i;:::-;2402:9;:28::i;:::-;2327:110::o;1240:140:4:-;1307:12;1338:35;1035:66:5;1385:54;-1:-1:-1;;;;;1385:54:5;;1306:140;1338:35:4;1331:42;;1240:140;:::o;953:895:6:-;1291:14;1288:1;1285;1272:34;1505:1;1502;1486:14;1483:1;1467:14;1460:5;1447:60;1581:16;1578:1;1575;1560:38;1619:6;1686:66;;;;1801:16;1798:1;1791:27;1686:66;1721:16;1718:1;1711:27"},"gasEstimates":{"creation":{"codeDepositCost":"34000","executionCost":"infinite","totalCost":"infinite"},"external":{"":"infinite"},"internal":{"_implementation()":"2155"}},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_logic\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"details\":\"This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an implementation address that can be changed. This address is stored in storage in the location specified by https://eips.ethereum.org/EIPS/eip-1967[EIP1967], so that it doesn't conflict with the storage layout of the implementation behind the proxy.\",\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is upgraded.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the upgradeable proxy with an initial implementation specified by `_logic`. If `_data` is nonempty, it's used as data in a delegate call to `_logic`. This will typically be an encoded function call, and allows initializating the storage of the proxy like a Solidity constructor.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Proxy.sol\":\"ERC1967Proxy\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"hardhat-deploy/solc_0.8/openzeppelin/interfaces/draft-IERC1822.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (interfaces/draft-IERC1822.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev ERC1822: Universal Upgradeable Proxy Standard (UUPS) documents a method for upgradeability through a simplified\\n * proxy whose upgrades are fully controlled by the current implementation.\\n */\\ninterface IERC1822Proxiable {\\n /**\\n * @dev Returns the storage slot that the proxiable contract assumes is being used to store the implementation\\n * address.\\n *\\n * IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks\\n * bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this\\n * function revert if invoked through a proxy.\\n */\\n function proxiableUUID() external view returns (bytes32);\\n}\\n\",\"keccak256\":\"0x93b4e21c931252739a1ec13ea31d3d35a5c068be3163ccab83e4d70c40355f03\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Proxy.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (proxy/ERC1967/ERC1967Proxy.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../Proxy.sol\\\";\\nimport \\\"./ERC1967Upgrade.sol\\\";\\n\\n/**\\n * @dev This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an\\n * implementation address that can be changed. This address is stored in storage in the location specified by\\n * https://eips.ethereum.org/EIPS/eip-1967[EIP1967], so that it doesn't conflict with the storage layout of the\\n * implementation behind the proxy.\\n */\\ncontract ERC1967Proxy is Proxy, ERC1967Upgrade {\\n /**\\n * @dev Initializes the upgradeable proxy with an initial implementation specified by `_logic`.\\n *\\n * If `_data` is nonempty, it's used as data in a delegate call to `_logic`. This will typically be an encoded\\n * function call, and allows initializating the storage of the proxy like a Solidity constructor.\\n */\\n constructor(address _logic, bytes memory _data) payable {\\n assert(_IMPLEMENTATION_SLOT == bytes32(uint256(keccak256(\\\"eip1967.proxy.implementation\\\")) - 1));\\n _upgradeToAndCall(_logic, _data, false);\\n }\\n\\n /**\\n * @dev Returns the current implementation address.\\n */\\n function _implementation() internal view virtual override returns (address impl) {\\n return ERC1967Upgrade._getImplementation();\\n }\\n}\\n\",\"keccak256\":\"0x6309f9f39dc6f4f45a24f296543867aa358e32946cd6b2874627a996d606b3a0\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Upgrade.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (proxy/ERC1967/ERC1967Upgrade.sol)\\n\\npragma solidity ^0.8.2;\\n\\nimport \\\"../beacon/IBeacon.sol\\\";\\nimport \\\"../../interfaces/draft-IERC1822.sol\\\";\\nimport \\\"../../utils/Address.sol\\\";\\nimport \\\"../../utils/StorageSlot.sol\\\";\\n\\n/**\\n * @dev This abstract contract provides getters and event emitting update functions for\\n * https://eips.ethereum.org/EIPS/eip-1967[EIP1967] slots.\\n *\\n * _Available since v4.1._\\n *\\n * @custom:oz-upgrades-unsafe-allow delegatecall\\n */\\nabstract contract ERC1967Upgrade {\\n // This is the keccak-256 hash of \\\"eip1967.proxy.rollback\\\" subtracted by 1\\n bytes32 private constant _ROLLBACK_SLOT = 0x4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143;\\n\\n /**\\n * @dev Storage slot with the address of the current implementation.\\n * This is the keccak-256 hash of \\\"eip1967.proxy.implementation\\\" subtracted by 1, and is\\n * validated in the constructor.\\n */\\n bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\\n\\n /**\\n * @dev Emitted when the implementation is upgraded.\\n */\\n event Upgraded(address indexed implementation);\\n\\n /**\\n * @dev Returns the current implementation address.\\n */\\n function _getImplementation() internal view returns (address) {\\n return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\\n }\\n\\n /**\\n * @dev Stores a new address in the EIP1967 implementation slot.\\n */\\n function _setImplementation(address newImplementation) private {\\n require(Address.isContract(newImplementation), \\\"ERC1967: new implementation is not a contract\\\");\\n StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\\n }\\n\\n /**\\n * @dev Perform implementation upgrade\\n *\\n * Emits an {Upgraded} event.\\n */\\n function _upgradeTo(address newImplementation) internal {\\n _setImplementation(newImplementation);\\n emit Upgraded(newImplementation);\\n }\\n\\n /**\\n * @dev Perform implementation upgrade with additional setup call.\\n *\\n * Emits an {Upgraded} event.\\n */\\n function _upgradeToAndCall(\\n address newImplementation,\\n bytes memory data,\\n bool forceCall\\n ) internal {\\n _upgradeTo(newImplementation);\\n if (data.length > 0 || forceCall) {\\n Address.functionDelegateCall(newImplementation, data);\\n }\\n }\\n\\n /**\\n * @dev Perform implementation upgrade with security checks for UUPS proxies, and additional setup call.\\n *\\n * Emits an {Upgraded} event.\\n */\\n function _upgradeToAndCallUUPS(\\n address newImplementation,\\n bytes memory data,\\n bool forceCall\\n ) internal {\\n // Upgrades from old implementations will perform a rollback test. This test requires the new\\n // implementation to upgrade back to the old, non-ERC1822 compliant, implementation. Removing\\n // this special case will break upgrade paths from old UUPS implementation to new ones.\\n if (StorageSlot.getBooleanSlot(_ROLLBACK_SLOT).value) {\\n _setImplementation(newImplementation);\\n } else {\\n try IERC1822Proxiable(newImplementation).proxiableUUID() returns (bytes32 slot) {\\n require(slot == _IMPLEMENTATION_SLOT, \\\"ERC1967Upgrade: unsupported proxiableUUID\\\");\\n } catch {\\n revert(\\\"ERC1967Upgrade: new implementation is not UUPS\\\");\\n }\\n _upgradeToAndCall(newImplementation, data, forceCall);\\n }\\n }\\n\\n /**\\n * @dev Storage slot with the admin of the contract.\\n * This is the keccak-256 hash of \\\"eip1967.proxy.admin\\\" subtracted by 1, and is\\n * validated in the constructor.\\n */\\n bytes32 internal constant _ADMIN_SLOT = 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103;\\n\\n /**\\n * @dev Emitted when the admin account has changed.\\n */\\n event AdminChanged(address previousAdmin, address newAdmin);\\n\\n /**\\n * @dev Returns the current admin.\\n */\\n function _getAdmin() internal view virtual returns (address) {\\n return StorageSlot.getAddressSlot(_ADMIN_SLOT).value;\\n }\\n\\n /**\\n * @dev Stores a new address in the EIP1967 admin slot.\\n */\\n function _setAdmin(address newAdmin) private {\\n require(newAdmin != address(0), \\\"ERC1967: new admin is the zero address\\\");\\n StorageSlot.getAddressSlot(_ADMIN_SLOT).value = newAdmin;\\n }\\n\\n /**\\n * @dev Changes the admin of the proxy.\\n *\\n * Emits an {AdminChanged} event.\\n */\\n function _changeAdmin(address newAdmin) internal {\\n emit AdminChanged(_getAdmin(), newAdmin);\\n _setAdmin(newAdmin);\\n }\\n\\n /**\\n * @dev The storage slot of the UpgradeableBeacon contract which defines the implementation for this proxy.\\n * This is bytes32(uint256(keccak256('eip1967.proxy.beacon')) - 1)) and is validated in the constructor.\\n */\\n bytes32 internal constant _BEACON_SLOT = 0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50;\\n\\n /**\\n * @dev Emitted when the beacon is upgraded.\\n */\\n event BeaconUpgraded(address indexed beacon);\\n\\n /**\\n * @dev Returns the current beacon.\\n */\\n function _getBeacon() internal view returns (address) {\\n return StorageSlot.getAddressSlot(_BEACON_SLOT).value;\\n }\\n\\n /**\\n * @dev Stores a new beacon in the EIP1967 beacon slot.\\n */\\n function _setBeacon(address newBeacon) private {\\n require(Address.isContract(newBeacon), \\\"ERC1967: new beacon is not a contract\\\");\\n require(Address.isContract(IBeacon(newBeacon).implementation()), \\\"ERC1967: beacon implementation is not a contract\\\");\\n StorageSlot.getAddressSlot(_BEACON_SLOT).value = newBeacon;\\n }\\n\\n /**\\n * @dev Perform beacon upgrade with additional setup call. Note: This upgrades the address of the beacon, it does\\n * not upgrade the implementation contained in the beacon (see {UpgradeableBeacon-_setImplementation} for that).\\n *\\n * Emits a {BeaconUpgraded} event.\\n */\\n function _upgradeBeaconToAndCall(\\n address newBeacon,\\n bytes memory data,\\n bool forceCall\\n ) internal {\\n _setBeacon(newBeacon);\\n emit BeaconUpgraded(newBeacon);\\n if (data.length > 0 || forceCall) {\\n Address.functionDelegateCall(IBeacon(newBeacon).implementation(), data);\\n }\\n }\\n}\\n\",\"keccak256\":\"0x17668652127feebed0ce8d9431ef95ccc8c4292f03e3b8cf06c6ca16af396633\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/proxy/Proxy.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (proxy/Proxy.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev This abstract contract provides a fallback function that delegates all calls to another contract using the EVM\\n * instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to\\n * be specified by overriding the virtual {_implementation} function.\\n *\\n * Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a\\n * different contract through the {_delegate} function.\\n *\\n * The success and return data of the delegated call will be returned back to the caller of the proxy.\\n */\\nabstract contract Proxy {\\n /**\\n * @dev Delegates the current call to `implementation`.\\n *\\n * This function does not return to its internal call site, it will return directly to the external caller.\\n */\\n function _delegate(address implementation) internal virtual {\\n assembly {\\n // Copy msg.data. We take full control of memory in this inline assembly\\n // block because it will not return to Solidity code. We overwrite the\\n // Solidity scratch pad at memory position 0.\\n calldatacopy(0, 0, calldatasize())\\n\\n // Call the implementation.\\n // out and outsize are 0 because we don't know the size yet.\\n let result := delegatecall(gas(), implementation, 0, calldatasize(), 0, 0)\\n\\n // Copy the returned data.\\n returndatacopy(0, 0, returndatasize())\\n\\n switch result\\n // delegatecall returns 0 on error.\\n case 0 {\\n revert(0, returndatasize())\\n }\\n default {\\n return(0, returndatasize())\\n }\\n }\\n }\\n\\n /**\\n * @dev This is a virtual function that should be overriden so it returns the address to which the fallback function\\n * and {_fallback} should delegate.\\n */\\n function _implementation() internal view virtual returns (address);\\n\\n /**\\n * @dev Delegates the current call to the address returned by `_implementation()`.\\n *\\n * This function does not return to its internall call site, it will return directly to the external caller.\\n */\\n function _fallback() internal virtual {\\n _beforeFallback();\\n _delegate(_implementation());\\n }\\n\\n /**\\n * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if no other\\n * function in the contract matches the call data.\\n */\\n fallback() external payable virtual {\\n _fallback();\\n }\\n\\n /**\\n * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if call data\\n * is empty.\\n */\\n receive() external payable virtual {\\n _fallback();\\n }\\n\\n /**\\n * @dev Hook that is called before falling back to the implementation. Can happen as part of a manual `_fallback`\\n * call, or as part of the Solidity `fallback` or `receive` functions.\\n *\\n * If overriden should call `super._beforeFallback()`.\\n */\\n function _beforeFallback() internal virtual {}\\n}\\n\",\"keccak256\":\"0xd5d1fd16e9faff7fcb3a52e02a8d49156f42a38a03f07b5f1810c21c2149a8ab\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/proxy/beacon/IBeacon.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (proxy/beacon/IBeacon.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev This is the interface that {BeaconProxy} expects of its beacon.\\n */\\ninterface IBeacon {\\n /**\\n * @dev Must return an address that can be used as a delegate call target.\\n *\\n * {BeaconProxy} will check that this address is a contract.\\n */\\n function implementation() external view returns (address);\\n}\\n\",\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/utils/Address.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (utils/Address.sol)\\n\\npragma solidity ^0.8.1;\\n\\n/**\\n * @dev Collection of functions related to the address type\\n */\\nlibrary Address {\\n /**\\n * @dev Returns true if `account` is a contract.\\n *\\n * [IMPORTANT]\\n * ====\\n * It is unsafe to assume that an address for which this function returns\\n * false is an externally-owned account (EOA) and not a contract.\\n *\\n * Among others, `isContract` will return false for the following\\n * types of addresses:\\n *\\n * - an externally-owned account\\n * - a contract in construction\\n * - an address where a contract will be created\\n * - an address where a contract lived, but was destroyed\\n * ====\\n *\\n * [IMPORTANT]\\n * ====\\n * You shouldn't rely on `isContract` to protect against flash loan attacks!\\n *\\n * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\\n * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\\n * constructor.\\n * ====\\n */\\n function isContract(address account) internal view returns (bool) {\\n // This method relies on extcodesize/address.code.length, which returns 0\\n // for contracts in construction, since the code is only stored at the end\\n // of the constructor execution.\\n\\n return account.code.length > 0;\\n }\\n\\n /**\\n * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\\n * `recipient`, forwarding all available gas and reverting on errors.\\n *\\n * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\\n * of certain opcodes, possibly making contracts go over the 2300 gas limit\\n * imposed by `transfer`, making them unable to receive funds via\\n * `transfer`. {sendValue} removes this limitation.\\n *\\n * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\\n *\\n * IMPORTANT: because control is transferred to `recipient`, care must be\\n * taken to not create reentrancy vulnerabilities. Consider using\\n * {ReentrancyGuard} or the\\n * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\\n */\\n function sendValue(address payable recipient, uint256 amount) internal {\\n require(address(this).balance >= amount, \\\"Address: insufficient balance\\\");\\n\\n (bool success, ) = recipient.call{value: amount}(\\\"\\\");\\n require(success, \\\"Address: unable to send value, recipient may have reverted\\\");\\n }\\n\\n /**\\n * @dev Performs a Solidity function call using a low level `call`. A\\n * plain `call` is an unsafe replacement for a function call: use this\\n * function instead.\\n *\\n * If `target` reverts with a revert reason, it is bubbled up by this\\n * function (like regular Solidity function calls).\\n *\\n * Returns the raw returned data. To convert to the expected return value,\\n * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\\n *\\n * Requirements:\\n *\\n * - `target` must be a contract.\\n * - calling `target` with `data` must not revert.\\n *\\n * _Available since v3.1._\\n */\\n function functionCall(address target, bytes memory data) internal returns (bytes memory) {\\n return functionCall(target, data, \\\"Address: low-level call failed\\\");\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\\n * `errorMessage` as a fallback revert reason when `target` reverts.\\n *\\n * _Available since v3.1._\\n */\\n function functionCall(\\n address target,\\n bytes memory data,\\n string memory errorMessage\\n ) internal returns (bytes memory) {\\n return functionCallWithValue(target, data, 0, errorMessage);\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n * but also transferring `value` wei to `target`.\\n *\\n * Requirements:\\n *\\n * - the calling contract must have an ETH balance of at least `value`.\\n * - the called Solidity function must be `payable`.\\n *\\n * _Available since v3.1._\\n */\\n function functionCallWithValue(\\n address target,\\n bytes memory data,\\n uint256 value\\n ) internal returns (bytes memory) {\\n return functionCallWithValue(target, data, value, \\\"Address: low-level call with value failed\\\");\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\\n * with `errorMessage` as a fallback revert reason when `target` reverts.\\n *\\n * _Available since v3.1._\\n */\\n function functionCallWithValue(\\n address target,\\n bytes memory data,\\n uint256 value,\\n string memory errorMessage\\n ) internal returns (bytes memory) {\\n require(address(this).balance >= value, \\\"Address: insufficient balance for call\\\");\\n require(isContract(target), \\\"Address: call to non-contract\\\");\\n\\n (bool success, bytes memory returndata) = target.call{value: value}(data);\\n return verifyCallResult(success, returndata, errorMessage);\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n * but performing a static call.\\n *\\n * _Available since v3.3._\\n */\\n function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\\n return functionStaticCall(target, data, \\\"Address: low-level static call failed\\\");\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n * but performing a static call.\\n *\\n * _Available since v3.3._\\n */\\n function functionStaticCall(\\n address target,\\n bytes memory data,\\n string memory errorMessage\\n ) internal view returns (bytes memory) {\\n require(isContract(target), \\\"Address: static call to non-contract\\\");\\n\\n (bool success, bytes memory returndata) = target.staticcall(data);\\n return verifyCallResult(success, returndata, errorMessage);\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n * but performing a delegate call.\\n *\\n * _Available since v3.4._\\n */\\n function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\\n return functionDelegateCall(target, data, \\\"Address: low-level delegate call failed\\\");\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n * but performing a delegate call.\\n *\\n * _Available since v3.4._\\n */\\n function functionDelegateCall(\\n address target,\\n bytes memory data,\\n string memory errorMessage\\n ) internal returns (bytes memory) {\\n require(isContract(target), \\\"Address: delegate call to non-contract\\\");\\n\\n (bool success, bytes memory returndata) = target.delegatecall(data);\\n return verifyCallResult(success, returndata, errorMessage);\\n }\\n\\n /**\\n * @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the\\n * revert reason using the provided one.\\n *\\n * _Available since v4.3._\\n */\\n function verifyCallResult(\\n bool success,\\n bytes memory returndata,\\n string memory errorMessage\\n ) internal pure returns (bytes memory) {\\n if (success) {\\n return returndata;\\n } else {\\n // Look for revert reason and bubble it up if present\\n if (returndata.length > 0) {\\n // The easiest way to bubble the revert reason is using memory via assembly\\n\\n assembly {\\n let returndata_size := mload(returndata)\\n revert(add(32, returndata), returndata_size)\\n }\\n } else {\\n revert(errorMessage);\\n }\\n }\\n }\\n}\\n\",\"keccak256\":\"0x3777e696b62134e6177440dbe6e6601c0c156a443f57167194b67e75527439de\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/utils/StorageSlot.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/StorageSlot.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Library for reading and writing primitive types to specific storage slots.\\n *\\n * Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts.\\n * This library helps with reading and writing to such slots without the need for inline assembly.\\n *\\n * The functions in this library return Slot structs that contain a `value` member that can be used to read or write.\\n *\\n * Example usage to set ERC1967 implementation slot:\\n * ```\\n * contract ERC1967 {\\n * bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\\n *\\n * function _getImplementation() internal view returns (address) {\\n * return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\\n * }\\n *\\n * function _setImplementation(address newImplementation) internal {\\n * require(Address.isContract(newImplementation), \\\"ERC1967: new implementation is not a contract\\\");\\n * StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\\n * }\\n * }\\n * ```\\n *\\n * _Available since v4.1 for `address`, `bool`, `bytes32`, and `uint256`._\\n */\\nlibrary StorageSlot {\\n struct AddressSlot {\\n address value;\\n }\\n\\n struct BooleanSlot {\\n bool value;\\n }\\n\\n struct Bytes32Slot {\\n bytes32 value;\\n }\\n\\n struct Uint256Slot {\\n uint256 value;\\n }\\n\\n /**\\n * @dev Returns an `AddressSlot` with member `value` located at `slot`.\\n */\\n function getAddressSlot(bytes32 slot) internal pure returns (AddressSlot storage r) {\\n assembly {\\n r.slot := slot\\n }\\n }\\n\\n /**\\n * @dev Returns an `BooleanSlot` with member `value` located at `slot`.\\n */\\n function getBooleanSlot(bytes32 slot) internal pure returns (BooleanSlot storage r) {\\n assembly {\\n r.slot := slot\\n }\\n }\\n\\n /**\\n * @dev Returns an `Bytes32Slot` with member `value` located at `slot`.\\n */\\n function getBytes32Slot(bytes32 slot) internal pure returns (Bytes32Slot storage r) {\\n assembly {\\n r.slot := slot\\n }\\n }\\n\\n /**\\n * @dev Returns an `Uint256Slot` with member `value` located at `slot`.\\n */\\n function getUint256Slot(bytes32 slot) internal pure returns (Uint256Slot storage r) {\\n assembly {\\n r.slot := slot\\n }\\n }\\n}\\n\",\"keccak256\":\"0xfe1b7a9aa2a530a9e705b220e26cd584e2fbdc9602a3a1066032b12816b46aca\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Upgrade.sol":{"ERC1967Upgrade":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"beacon","type":"address"}],"name":"BeaconUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"}],"devdoc":{"custom:oz-upgrades-unsafe-allow":"delegatecall","details":"This abstract contract provides getters and event emitting update functions for https://eips.ethereum.org/EIPS/eip-1967[EIP1967] slots. _Available since v4.1._","events":{"AdminChanged(address,address)":{"details":"Emitted when the admin account has changed."},"BeaconUpgraded(address)":{"details":"Emitted when the beacon is upgraded."},"Upgraded(address)":{"details":"Emitted when the implementation is upgraded."}},"kind":"dev","methods":{},"stateVariables":{"_ADMIN_SLOT":{"details":"Storage slot with the admin of the contract. This is the keccak-256 hash of \"eip1967.proxy.admin\" subtracted by 1, and is validated in the constructor."},"_BEACON_SLOT":{"details":"The storage slot of the UpgradeableBeacon contract which defines the implementation for this proxy. This is bytes32(uint256(keccak256('eip1967.proxy.beacon')) - 1)) and is validated in the constructor."},"_IMPLEMENTATION_SLOT":{"details":"Storage slot with the address of the current implementation. This is the keccak-256 hash of \"eip1967.proxy.implementation\" subtracted by 1, and is validated in the constructor."}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"}],\"devdoc\":{\"custom:oz-upgrades-unsafe-allow\":\"delegatecall\",\"details\":\"This abstract contract provides getters and event emitting update functions for https://eips.ethereum.org/EIPS/eip-1967[EIP1967] slots. _Available since v4.1._\",\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is upgraded.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"_ADMIN_SLOT\":{\"details\":\"Storage slot with the admin of the contract. This is the keccak-256 hash of \\\"eip1967.proxy.admin\\\" subtracted by 1, and is validated in the constructor.\"},\"_BEACON_SLOT\":{\"details\":\"The storage slot of the UpgradeableBeacon contract which defines the implementation for this proxy. This is bytes32(uint256(keccak256('eip1967.proxy.beacon')) - 1)) and is validated in the constructor.\"},\"_IMPLEMENTATION_SLOT\":{\"details\":\"Storage slot with the address of the current implementation. This is the keccak-256 hash of \\\"eip1967.proxy.implementation\\\" subtracted by 1, and is validated in the constructor.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Upgrade.sol\":\"ERC1967Upgrade\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"hardhat-deploy/solc_0.8/openzeppelin/interfaces/draft-IERC1822.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (interfaces/draft-IERC1822.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev ERC1822: Universal Upgradeable Proxy Standard (UUPS) documents a method for upgradeability through a simplified\\n * proxy whose upgrades are fully controlled by the current implementation.\\n */\\ninterface IERC1822Proxiable {\\n /**\\n * @dev Returns the storage slot that the proxiable contract assumes is being used to store the implementation\\n * address.\\n *\\n * IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks\\n * bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this\\n * function revert if invoked through a proxy.\\n */\\n function proxiableUUID() external view returns (bytes32);\\n}\\n\",\"keccak256\":\"0x93b4e21c931252739a1ec13ea31d3d35a5c068be3163ccab83e4d70c40355f03\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Upgrade.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (proxy/ERC1967/ERC1967Upgrade.sol)\\n\\npragma solidity ^0.8.2;\\n\\nimport \\\"../beacon/IBeacon.sol\\\";\\nimport \\\"../../interfaces/draft-IERC1822.sol\\\";\\nimport \\\"../../utils/Address.sol\\\";\\nimport \\\"../../utils/StorageSlot.sol\\\";\\n\\n/**\\n * @dev This abstract contract provides getters and event emitting update functions for\\n * https://eips.ethereum.org/EIPS/eip-1967[EIP1967] slots.\\n *\\n * _Available since v4.1._\\n *\\n * @custom:oz-upgrades-unsafe-allow delegatecall\\n */\\nabstract contract ERC1967Upgrade {\\n // This is the keccak-256 hash of \\\"eip1967.proxy.rollback\\\" subtracted by 1\\n bytes32 private constant _ROLLBACK_SLOT = 0x4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143;\\n\\n /**\\n * @dev Storage slot with the address of the current implementation.\\n * This is the keccak-256 hash of \\\"eip1967.proxy.implementation\\\" subtracted by 1, and is\\n * validated in the constructor.\\n */\\n bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\\n\\n /**\\n * @dev Emitted when the implementation is upgraded.\\n */\\n event Upgraded(address indexed implementation);\\n\\n /**\\n * @dev Returns the current implementation address.\\n */\\n function _getImplementation() internal view returns (address) {\\n return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\\n }\\n\\n /**\\n * @dev Stores a new address in the EIP1967 implementation slot.\\n */\\n function _setImplementation(address newImplementation) private {\\n require(Address.isContract(newImplementation), \\\"ERC1967: new implementation is not a contract\\\");\\n StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\\n }\\n\\n /**\\n * @dev Perform implementation upgrade\\n *\\n * Emits an {Upgraded} event.\\n */\\n function _upgradeTo(address newImplementation) internal {\\n _setImplementation(newImplementation);\\n emit Upgraded(newImplementation);\\n }\\n\\n /**\\n * @dev Perform implementation upgrade with additional setup call.\\n *\\n * Emits an {Upgraded} event.\\n */\\n function _upgradeToAndCall(\\n address newImplementation,\\n bytes memory data,\\n bool forceCall\\n ) internal {\\n _upgradeTo(newImplementation);\\n if (data.length > 0 || forceCall) {\\n Address.functionDelegateCall(newImplementation, data);\\n }\\n }\\n\\n /**\\n * @dev Perform implementation upgrade with security checks for UUPS proxies, and additional setup call.\\n *\\n * Emits an {Upgraded} event.\\n */\\n function _upgradeToAndCallUUPS(\\n address newImplementation,\\n bytes memory data,\\n bool forceCall\\n ) internal {\\n // Upgrades from old implementations will perform a rollback test. This test requires the new\\n // implementation to upgrade back to the old, non-ERC1822 compliant, implementation. Removing\\n // this special case will break upgrade paths from old UUPS implementation to new ones.\\n if (StorageSlot.getBooleanSlot(_ROLLBACK_SLOT).value) {\\n _setImplementation(newImplementation);\\n } else {\\n try IERC1822Proxiable(newImplementation).proxiableUUID() returns (bytes32 slot) {\\n require(slot == _IMPLEMENTATION_SLOT, \\\"ERC1967Upgrade: unsupported proxiableUUID\\\");\\n } catch {\\n revert(\\\"ERC1967Upgrade: new implementation is not UUPS\\\");\\n }\\n _upgradeToAndCall(newImplementation, data, forceCall);\\n }\\n }\\n\\n /**\\n * @dev Storage slot with the admin of the contract.\\n * This is the keccak-256 hash of \\\"eip1967.proxy.admin\\\" subtracted by 1, and is\\n * validated in the constructor.\\n */\\n bytes32 internal constant _ADMIN_SLOT = 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103;\\n\\n /**\\n * @dev Emitted when the admin account has changed.\\n */\\n event AdminChanged(address previousAdmin, address newAdmin);\\n\\n /**\\n * @dev Returns the current admin.\\n */\\n function _getAdmin() internal view virtual returns (address) {\\n return StorageSlot.getAddressSlot(_ADMIN_SLOT).value;\\n }\\n\\n /**\\n * @dev Stores a new address in the EIP1967 admin slot.\\n */\\n function _setAdmin(address newAdmin) private {\\n require(newAdmin != address(0), \\\"ERC1967: new admin is the zero address\\\");\\n StorageSlot.getAddressSlot(_ADMIN_SLOT).value = newAdmin;\\n }\\n\\n /**\\n * @dev Changes the admin of the proxy.\\n *\\n * Emits an {AdminChanged} event.\\n */\\n function _changeAdmin(address newAdmin) internal {\\n emit AdminChanged(_getAdmin(), newAdmin);\\n _setAdmin(newAdmin);\\n }\\n\\n /**\\n * @dev The storage slot of the UpgradeableBeacon contract which defines the implementation for this proxy.\\n * This is bytes32(uint256(keccak256('eip1967.proxy.beacon')) - 1)) and is validated in the constructor.\\n */\\n bytes32 internal constant _BEACON_SLOT = 0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50;\\n\\n /**\\n * @dev Emitted when the beacon is upgraded.\\n */\\n event BeaconUpgraded(address indexed beacon);\\n\\n /**\\n * @dev Returns the current beacon.\\n */\\n function _getBeacon() internal view returns (address) {\\n return StorageSlot.getAddressSlot(_BEACON_SLOT).value;\\n }\\n\\n /**\\n * @dev Stores a new beacon in the EIP1967 beacon slot.\\n */\\n function _setBeacon(address newBeacon) private {\\n require(Address.isContract(newBeacon), \\\"ERC1967: new beacon is not a contract\\\");\\n require(Address.isContract(IBeacon(newBeacon).implementation()), \\\"ERC1967: beacon implementation is not a contract\\\");\\n StorageSlot.getAddressSlot(_BEACON_SLOT).value = newBeacon;\\n }\\n\\n /**\\n * @dev Perform beacon upgrade with additional setup call. Note: This upgrades the address of the beacon, it does\\n * not upgrade the implementation contained in the beacon (see {UpgradeableBeacon-_setImplementation} for that).\\n *\\n * Emits a {BeaconUpgraded} event.\\n */\\n function _upgradeBeaconToAndCall(\\n address newBeacon,\\n bytes memory data,\\n bool forceCall\\n ) internal {\\n _setBeacon(newBeacon);\\n emit BeaconUpgraded(newBeacon);\\n if (data.length > 0 || forceCall) {\\n Address.functionDelegateCall(IBeacon(newBeacon).implementation(), data);\\n }\\n }\\n}\\n\",\"keccak256\":\"0x17668652127feebed0ce8d9431ef95ccc8c4292f03e3b8cf06c6ca16af396633\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/proxy/beacon/IBeacon.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (proxy/beacon/IBeacon.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev This is the interface that {BeaconProxy} expects of its beacon.\\n */\\ninterface IBeacon {\\n /**\\n * @dev Must return an address that can be used as a delegate call target.\\n *\\n * {BeaconProxy} will check that this address is a contract.\\n */\\n function implementation() external view returns (address);\\n}\\n\",\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/utils/Address.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (utils/Address.sol)\\n\\npragma solidity ^0.8.1;\\n\\n/**\\n * @dev Collection of functions related to the address type\\n */\\nlibrary Address {\\n /**\\n * @dev Returns true if `account` is a contract.\\n *\\n * [IMPORTANT]\\n * ====\\n * It is unsafe to assume that an address for which this function returns\\n * false is an externally-owned account (EOA) and not a contract.\\n *\\n * Among others, `isContract` will return false for the following\\n * types of addresses:\\n *\\n * - an externally-owned account\\n * - a contract in construction\\n * - an address where a contract will be created\\n * - an address where a contract lived, but was destroyed\\n * ====\\n *\\n * [IMPORTANT]\\n * ====\\n * You shouldn't rely on `isContract` to protect against flash loan attacks!\\n *\\n * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\\n * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\\n * constructor.\\n * ====\\n */\\n function isContract(address account) internal view returns (bool) {\\n // This method relies on extcodesize/address.code.length, which returns 0\\n // for contracts in construction, since the code is only stored at the end\\n // of the constructor execution.\\n\\n return account.code.length > 0;\\n }\\n\\n /**\\n * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\\n * `recipient`, forwarding all available gas and reverting on errors.\\n *\\n * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\\n * of certain opcodes, possibly making contracts go over the 2300 gas limit\\n * imposed by `transfer`, making them unable to receive funds via\\n * `transfer`. {sendValue} removes this limitation.\\n *\\n * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\\n *\\n * IMPORTANT: because control is transferred to `recipient`, care must be\\n * taken to not create reentrancy vulnerabilities. Consider using\\n * {ReentrancyGuard} or the\\n * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\\n */\\n function sendValue(address payable recipient, uint256 amount) internal {\\n require(address(this).balance >= amount, \\\"Address: insufficient balance\\\");\\n\\n (bool success, ) = recipient.call{value: amount}(\\\"\\\");\\n require(success, \\\"Address: unable to send value, recipient may have reverted\\\");\\n }\\n\\n /**\\n * @dev Performs a Solidity function call using a low level `call`. A\\n * plain `call` is an unsafe replacement for a function call: use this\\n * function instead.\\n *\\n * If `target` reverts with a revert reason, it is bubbled up by this\\n * function (like regular Solidity function calls).\\n *\\n * Returns the raw returned data. To convert to the expected return value,\\n * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\\n *\\n * Requirements:\\n *\\n * - `target` must be a contract.\\n * - calling `target` with `data` must not revert.\\n *\\n * _Available since v3.1._\\n */\\n function functionCall(address target, bytes memory data) internal returns (bytes memory) {\\n return functionCall(target, data, \\\"Address: low-level call failed\\\");\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\\n * `errorMessage` as a fallback revert reason when `target` reverts.\\n *\\n * _Available since v3.1._\\n */\\n function functionCall(\\n address target,\\n bytes memory data,\\n string memory errorMessage\\n ) internal returns (bytes memory) {\\n return functionCallWithValue(target, data, 0, errorMessage);\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n * but also transferring `value` wei to `target`.\\n *\\n * Requirements:\\n *\\n * - the calling contract must have an ETH balance of at least `value`.\\n * - the called Solidity function must be `payable`.\\n *\\n * _Available since v3.1._\\n */\\n function functionCallWithValue(\\n address target,\\n bytes memory data,\\n uint256 value\\n ) internal returns (bytes memory) {\\n return functionCallWithValue(target, data, value, \\\"Address: low-level call with value failed\\\");\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\\n * with `errorMessage` as a fallback revert reason when `target` reverts.\\n *\\n * _Available since v3.1._\\n */\\n function functionCallWithValue(\\n address target,\\n bytes memory data,\\n uint256 value,\\n string memory errorMessage\\n ) internal returns (bytes memory) {\\n require(address(this).balance >= value, \\\"Address: insufficient balance for call\\\");\\n require(isContract(target), \\\"Address: call to non-contract\\\");\\n\\n (bool success, bytes memory returndata) = target.call{value: value}(data);\\n return verifyCallResult(success, returndata, errorMessage);\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n * but performing a static call.\\n *\\n * _Available since v3.3._\\n */\\n function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\\n return functionStaticCall(target, data, \\\"Address: low-level static call failed\\\");\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n * but performing a static call.\\n *\\n * _Available since v3.3._\\n */\\n function functionStaticCall(\\n address target,\\n bytes memory data,\\n string memory errorMessage\\n ) internal view returns (bytes memory) {\\n require(isContract(target), \\\"Address: static call to non-contract\\\");\\n\\n (bool success, bytes memory returndata) = target.staticcall(data);\\n return verifyCallResult(success, returndata, errorMessage);\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n * but performing a delegate call.\\n *\\n * _Available since v3.4._\\n */\\n function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\\n return functionDelegateCall(target, data, \\\"Address: low-level delegate call failed\\\");\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n * but performing a delegate call.\\n *\\n * _Available since v3.4._\\n */\\n function functionDelegateCall(\\n address target,\\n bytes memory data,\\n string memory errorMessage\\n ) internal returns (bytes memory) {\\n require(isContract(target), \\\"Address: delegate call to non-contract\\\");\\n\\n (bool success, bytes memory returndata) = target.delegatecall(data);\\n return verifyCallResult(success, returndata, errorMessage);\\n }\\n\\n /**\\n * @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the\\n * revert reason using the provided one.\\n *\\n * _Available since v4.3._\\n */\\n function verifyCallResult(\\n bool success,\\n bytes memory returndata,\\n string memory errorMessage\\n ) internal pure returns (bytes memory) {\\n if (success) {\\n return returndata;\\n } else {\\n // Look for revert reason and bubble it up if present\\n if (returndata.length > 0) {\\n // The easiest way to bubble the revert reason is using memory via assembly\\n\\n assembly {\\n let returndata_size := mload(returndata)\\n revert(add(32, returndata), returndata_size)\\n }\\n } else {\\n revert(errorMessage);\\n }\\n }\\n }\\n}\\n\",\"keccak256\":\"0x3777e696b62134e6177440dbe6e6601c0c156a443f57167194b67e75527439de\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/utils/StorageSlot.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/StorageSlot.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Library for reading and writing primitive types to specific storage slots.\\n *\\n * Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts.\\n * This library helps with reading and writing to such slots without the need for inline assembly.\\n *\\n * The functions in this library return Slot structs that contain a `value` member that can be used to read or write.\\n *\\n * Example usage to set ERC1967 implementation slot:\\n * ```\\n * contract ERC1967 {\\n * bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\\n *\\n * function _getImplementation() internal view returns (address) {\\n * return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\\n * }\\n *\\n * function _setImplementation(address newImplementation) internal {\\n * require(Address.isContract(newImplementation), \\\"ERC1967: new implementation is not a contract\\\");\\n * StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\\n * }\\n * }\\n * ```\\n *\\n * _Available since v4.1 for `address`, `bool`, `bytes32`, and `uint256`._\\n */\\nlibrary StorageSlot {\\n struct AddressSlot {\\n address value;\\n }\\n\\n struct BooleanSlot {\\n bool value;\\n }\\n\\n struct Bytes32Slot {\\n bytes32 value;\\n }\\n\\n struct Uint256Slot {\\n uint256 value;\\n }\\n\\n /**\\n * @dev Returns an `AddressSlot` with member `value` located at `slot`.\\n */\\n function getAddressSlot(bytes32 slot) internal pure returns (AddressSlot storage r) {\\n assembly {\\n r.slot := slot\\n }\\n }\\n\\n /**\\n * @dev Returns an `BooleanSlot` with member `value` located at `slot`.\\n */\\n function getBooleanSlot(bytes32 slot) internal pure returns (BooleanSlot storage r) {\\n assembly {\\n r.slot := slot\\n }\\n }\\n\\n /**\\n * @dev Returns an `Bytes32Slot` with member `value` located at `slot`.\\n */\\n function getBytes32Slot(bytes32 slot) internal pure returns (Bytes32Slot storage r) {\\n assembly {\\n r.slot := slot\\n }\\n }\\n\\n /**\\n * @dev Returns an `Uint256Slot` with member `value` located at `slot`.\\n */\\n function getUint256Slot(bytes32 slot) internal pure returns (Uint256Slot storage r) {\\n assembly {\\n r.slot := slot\\n }\\n }\\n}\\n\",\"keccak256\":\"0xfe1b7a9aa2a530a9e705b220e26cd584e2fbdc9602a3a1066032b12816b46aca\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"hardhat-deploy/solc_0.8/openzeppelin/proxy/Proxy.sol":{"Proxy":{"abi":[{"stateMutability":"payable","type":"fallback"},{"stateMutability":"payable","type":"receive"}],"devdoc":{"details":"This abstract contract provides a fallback function that delegates all calls to another contract using the EVM instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to be specified by overriding the virtual {_implementation} function. Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a different contract through the {_delegate} function. The success and return data of the delegated call will be returned back to the caller of the proxy.","kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"details\":\"This abstract contract provides a fallback function that delegates all calls to another contract using the EVM instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to be specified by overriding the virtual {_implementation} function. Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a different contract through the {_delegate} function. The success and return data of the delegated call will be returned back to the caller of the proxy.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"hardhat-deploy/solc_0.8/openzeppelin/proxy/Proxy.sol\":\"Proxy\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"hardhat-deploy/solc_0.8/openzeppelin/proxy/Proxy.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (proxy/Proxy.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev This abstract contract provides a fallback function that delegates all calls to another contract using the EVM\\n * instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to\\n * be specified by overriding the virtual {_implementation} function.\\n *\\n * Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a\\n * different contract through the {_delegate} function.\\n *\\n * The success and return data of the delegated call will be returned back to the caller of the proxy.\\n */\\nabstract contract Proxy {\\n /**\\n * @dev Delegates the current call to `implementation`.\\n *\\n * This function does not return to its internal call site, it will return directly to the external caller.\\n */\\n function _delegate(address implementation) internal virtual {\\n assembly {\\n // Copy msg.data. We take full control of memory in this inline assembly\\n // block because it will not return to Solidity code. We overwrite the\\n // Solidity scratch pad at memory position 0.\\n calldatacopy(0, 0, calldatasize())\\n\\n // Call the implementation.\\n // out and outsize are 0 because we don't know the size yet.\\n let result := delegatecall(gas(), implementation, 0, calldatasize(), 0, 0)\\n\\n // Copy the returned data.\\n returndatacopy(0, 0, returndatasize())\\n\\n switch result\\n // delegatecall returns 0 on error.\\n case 0 {\\n revert(0, returndatasize())\\n }\\n default {\\n return(0, returndatasize())\\n }\\n }\\n }\\n\\n /**\\n * @dev This is a virtual function that should be overriden so it returns the address to which the fallback function\\n * and {_fallback} should delegate.\\n */\\n function _implementation() internal view virtual returns (address);\\n\\n /**\\n * @dev Delegates the current call to the address returned by `_implementation()`.\\n *\\n * This function does not return to its internall call site, it will return directly to the external caller.\\n */\\n function _fallback() internal virtual {\\n _beforeFallback();\\n _delegate(_implementation());\\n }\\n\\n /**\\n * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if no other\\n * function in the contract matches the call data.\\n */\\n fallback() external payable virtual {\\n _fallback();\\n }\\n\\n /**\\n * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if call data\\n * is empty.\\n */\\n receive() external payable virtual {\\n _fallback();\\n }\\n\\n /**\\n * @dev Hook that is called before falling back to the implementation. Can happen as part of a manual `_fallback`\\n * call, or as part of the Solidity `fallback` or `receive` functions.\\n *\\n * If overriden should call `super._beforeFallback()`.\\n */\\n function _beforeFallback() internal virtual {}\\n}\\n\",\"keccak256\":\"0xd5d1fd16e9faff7fcb3a52e02a8d49156f42a38a03f07b5f1810c21c2149a8ab\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"hardhat-deploy/solc_0.8/openzeppelin/proxy/beacon/IBeacon.sol":{"IBeacon":{"abi":[{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"devdoc":{"details":"This is the interface that {BeaconProxy} expects of its beacon.","kind":"dev","methods":{"implementation()":{"details":"Must return an address that can be used as a delegate call target. {BeaconProxy} will check that this address is a contract."}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"implementation()":"5c60da1b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"This is the interface that {BeaconProxy} expects of its beacon.\",\"kind\":\"dev\",\"methods\":{\"implementation()\":{\"details\":\"Must return an address that can be used as a delegate call target. {BeaconProxy} will check that this address is a contract.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"hardhat-deploy/solc_0.8/openzeppelin/proxy/beacon/IBeacon.sol\":\"IBeacon\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"hardhat-deploy/solc_0.8/openzeppelin/proxy/beacon/IBeacon.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (proxy/beacon/IBeacon.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev This is the interface that {BeaconProxy} expects of its beacon.\\n */\\ninterface IBeacon {\\n /**\\n * @dev Must return an address that can be used as a delegate call target.\\n *\\n * {BeaconProxy} will check that this address is a contract.\\n */\\n function implementation() external view returns (address);\\n}\\n\",\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/ProxyAdmin.sol":{"ProxyAdmin":{"abi":[{"inputs":[{"internalType":"address","name":"initialOwner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[{"internalType":"contract TransparentUpgradeableProxy","name":"proxy","type":"address"},{"internalType":"address","name":"newAdmin","type":"address"}],"name":"changeProxyAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract TransparentUpgradeableProxy","name":"proxy","type":"address"}],"name":"getProxyAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract TransparentUpgradeableProxy","name":"proxy","type":"address"}],"name":"getProxyImplementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract TransparentUpgradeableProxy","name":"proxy","type":"address"},{"internalType":"address","name":"implementation","type":"address"}],"name":"upgrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract TransparentUpgradeableProxy","name":"proxy","type":"address"},{"internalType":"address","name":"implementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"upgradeAndCall","outputs":[],"stateMutability":"payable","type":"function"}],"devdoc":{"details":"This is an auxiliary contract meant to be assigned as the admin of a {TransparentUpgradeableProxy}. For an explanation of why you would want to use this see the documentation for {TransparentUpgradeableProxy}.","kind":"dev","methods":{"changeProxyAdmin(address,address)":{"details":"Changes the admin of `proxy` to `newAdmin`. Requirements: - This contract must be the current admin of `proxy`."},"getProxyAdmin(address)":{"details":"Returns the current admin of `proxy`. Requirements: - This contract must be the admin of `proxy`."},"getProxyImplementation(address)":{"details":"Returns the current implementation of `proxy`. Requirements: - This contract must be the admin of `proxy`."},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"upgrade(address,address)":{"details":"Upgrades `proxy` to `implementation`. See {TransparentUpgradeableProxy-upgradeTo}. Requirements: - This contract must be the admin of `proxy`."},"upgradeAndCall(address,address,bytes)":{"details":"Upgrades `proxy` to `implementation` and calls a function on the new implementation. See {TransparentUpgradeableProxy-upgradeToAndCall}. Requirements: - This contract must be the admin of `proxy`."}},"version":1},"evm":{"bytecode":{"functionDebugData":{"@_30":{"entryPoint":null,"id":30,"parameterSlots":1,"returnSlots":0},"@_570":{"entryPoint":null,"id":570,"parameterSlots":1,"returnSlots":0},"@_transferOwnership_110":{"entryPoint":63,"id":110,"parameterSlots":1,"returnSlots":0},"abi_decode_t_address_fromMemory":{"entryPoint":182,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":193,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"cleanup_t_address":{"entryPoint":142,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_t_address":{"entryPoint":160,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:1199:14","nodeType":"YulBlock","src":"0:1199:14","statements":[{"body":{"nativeSrc":"47:35:14","nodeType":"YulBlock","src":"47:35:14","statements":[{"nativeSrc":"57:19:14","nodeType":"YulAssignment","src":"57:19:14","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:14","nodeType":"YulLiteral","src":"73:2:14","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:14","nodeType":"YulIdentifier","src":"67:5:14"},"nativeSrc":"67:9:14","nodeType":"YulFunctionCall","src":"67:9:14"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:14","nodeType":"YulIdentifier","src":"57:6:14"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:14","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:14","nodeType":"YulTypedName","src":"40:6:14","type":""}],"src":"7:75:14"},{"body":{"nativeSrc":"177:28:14","nodeType":"YulBlock","src":"177:28:14","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:14","nodeType":"YulLiteral","src":"194:1:14","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:14","nodeType":"YulLiteral","src":"197:1:14","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:14","nodeType":"YulIdentifier","src":"187:6:14"},"nativeSrc":"187:12:14","nodeType":"YulFunctionCall","src":"187:12:14"},"nativeSrc":"187:12:14","nodeType":"YulExpressionStatement","src":"187:12:14"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:14","nodeType":"YulFunctionDefinition","src":"88:117:14"},{"body":{"nativeSrc":"300:28:14","nodeType":"YulBlock","src":"300:28:14","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:14","nodeType":"YulLiteral","src":"317:1:14","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:14","nodeType":"YulLiteral","src":"320:1:14","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:14","nodeType":"YulIdentifier","src":"310:6:14"},"nativeSrc":"310:12:14","nodeType":"YulFunctionCall","src":"310:12:14"},"nativeSrc":"310:12:14","nodeType":"YulExpressionStatement","src":"310:12:14"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:14","nodeType":"YulFunctionDefinition","src":"211:117:14"},{"body":{"nativeSrc":"379:81:14","nodeType":"YulBlock","src":"379:81:14","statements":[{"nativeSrc":"389:65:14","nodeType":"YulAssignment","src":"389:65:14","value":{"arguments":[{"name":"value","nativeSrc":"404:5:14","nodeType":"YulIdentifier","src":"404:5:14"},{"kind":"number","nativeSrc":"411:42:14","nodeType":"YulLiteral","src":"411:42:14","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"400:3:14","nodeType":"YulIdentifier","src":"400:3:14"},"nativeSrc":"400:54:14","nodeType":"YulFunctionCall","src":"400:54:14"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:14","nodeType":"YulIdentifier","src":"389:7:14"}]}]},"name":"cleanup_t_uint160","nativeSrc":"334:126:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:14","nodeType":"YulTypedName","src":"361:5:14","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:14","nodeType":"YulTypedName","src":"371:7:14","type":""}],"src":"334:126:14"},{"body":{"nativeSrc":"511:51:14","nodeType":"YulBlock","src":"511:51:14","statements":[{"nativeSrc":"521:35:14","nodeType":"YulAssignment","src":"521:35:14","value":{"arguments":[{"name":"value","nativeSrc":"550:5:14","nodeType":"YulIdentifier","src":"550:5:14"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"532:17:14","nodeType":"YulIdentifier","src":"532:17:14"},"nativeSrc":"532:24:14","nodeType":"YulFunctionCall","src":"532:24:14"},"variableNames":[{"name":"cleaned","nativeSrc":"521:7:14","nodeType":"YulIdentifier","src":"521:7:14"}]}]},"name":"cleanup_t_address","nativeSrc":"466:96:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"493:5:14","nodeType":"YulTypedName","src":"493:5:14","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"503:7:14","nodeType":"YulTypedName","src":"503:7:14","type":""}],"src":"466:96:14"},{"body":{"nativeSrc":"611:79:14","nodeType":"YulBlock","src":"611:79:14","statements":[{"body":{"nativeSrc":"668:16:14","nodeType":"YulBlock","src":"668:16:14","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"677:1:14","nodeType":"YulLiteral","src":"677:1:14","type":"","value":"0"},{"kind":"number","nativeSrc":"680:1:14","nodeType":"YulLiteral","src":"680:1:14","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"670:6:14","nodeType":"YulIdentifier","src":"670:6:14"},"nativeSrc":"670:12:14","nodeType":"YulFunctionCall","src":"670:12:14"},"nativeSrc":"670:12:14","nodeType":"YulExpressionStatement","src":"670:12:14"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"634:5:14","nodeType":"YulIdentifier","src":"634:5:14"},{"arguments":[{"name":"value","nativeSrc":"659:5:14","nodeType":"YulIdentifier","src":"659:5:14"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"641:17:14","nodeType":"YulIdentifier","src":"641:17:14"},"nativeSrc":"641:24:14","nodeType":"YulFunctionCall","src":"641:24:14"}],"functionName":{"name":"eq","nativeSrc":"631:2:14","nodeType":"YulIdentifier","src":"631:2:14"},"nativeSrc":"631:35:14","nodeType":"YulFunctionCall","src":"631:35:14"}],"functionName":{"name":"iszero","nativeSrc":"624:6:14","nodeType":"YulIdentifier","src":"624:6:14"},"nativeSrc":"624:43:14","nodeType":"YulFunctionCall","src":"624:43:14"},"nativeSrc":"621:63:14","nodeType":"YulIf","src":"621:63:14"}]},"name":"validator_revert_t_address","nativeSrc":"568:122:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"604:5:14","nodeType":"YulTypedName","src":"604:5:14","type":""}],"src":"568:122:14"},{"body":{"nativeSrc":"759:80:14","nodeType":"YulBlock","src":"759:80:14","statements":[{"nativeSrc":"769:22:14","nodeType":"YulAssignment","src":"769:22:14","value":{"arguments":[{"name":"offset","nativeSrc":"784:6:14","nodeType":"YulIdentifier","src":"784:6:14"}],"functionName":{"name":"mload","nativeSrc":"778:5:14","nodeType":"YulIdentifier","src":"778:5:14"},"nativeSrc":"778:13:14","nodeType":"YulFunctionCall","src":"778:13:14"},"variableNames":[{"name":"value","nativeSrc":"769:5:14","nodeType":"YulIdentifier","src":"769:5:14"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"827:5:14","nodeType":"YulIdentifier","src":"827:5:14"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"800:26:14","nodeType":"YulIdentifier","src":"800:26:14"},"nativeSrc":"800:33:14","nodeType":"YulFunctionCall","src":"800:33:14"},"nativeSrc":"800:33:14","nodeType":"YulExpressionStatement","src":"800:33:14"}]},"name":"abi_decode_t_address_fromMemory","nativeSrc":"696:143:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"737:6:14","nodeType":"YulTypedName","src":"737:6:14","type":""},{"name":"end","nativeSrc":"745:3:14","nodeType":"YulTypedName","src":"745:3:14","type":""}],"returnVariables":[{"name":"value","nativeSrc":"753:5:14","nodeType":"YulTypedName","src":"753:5:14","type":""}],"src":"696:143:14"},{"body":{"nativeSrc":"922:274:14","nodeType":"YulBlock","src":"922:274:14","statements":[{"body":{"nativeSrc":"968:83:14","nodeType":"YulBlock","src":"968:83:14","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"970:77:14","nodeType":"YulIdentifier","src":"970:77:14"},"nativeSrc":"970:79:14","nodeType":"YulFunctionCall","src":"970:79:14"},"nativeSrc":"970:79:14","nodeType":"YulExpressionStatement","src":"970:79:14"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"943:7:14","nodeType":"YulIdentifier","src":"943:7:14"},{"name":"headStart","nativeSrc":"952:9:14","nodeType":"YulIdentifier","src":"952:9:14"}],"functionName":{"name":"sub","nativeSrc":"939:3:14","nodeType":"YulIdentifier","src":"939:3:14"},"nativeSrc":"939:23:14","nodeType":"YulFunctionCall","src":"939:23:14"},{"kind":"number","nativeSrc":"964:2:14","nodeType":"YulLiteral","src":"964:2:14","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"935:3:14","nodeType":"YulIdentifier","src":"935:3:14"},"nativeSrc":"935:32:14","nodeType":"YulFunctionCall","src":"935:32:14"},"nativeSrc":"932:119:14","nodeType":"YulIf","src":"932:119:14"},{"nativeSrc":"1061:128:14","nodeType":"YulBlock","src":"1061:128:14","statements":[{"nativeSrc":"1076:15:14","nodeType":"YulVariableDeclaration","src":"1076:15:14","value":{"kind":"number","nativeSrc":"1090:1:14","nodeType":"YulLiteral","src":"1090:1:14","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1080:6:14","nodeType":"YulTypedName","src":"1080:6:14","type":""}]},{"nativeSrc":"1105:74:14","nodeType":"YulAssignment","src":"1105:74:14","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1151:9:14","nodeType":"YulIdentifier","src":"1151:9:14"},{"name":"offset","nativeSrc":"1162:6:14","nodeType":"YulIdentifier","src":"1162:6:14"}],"functionName":{"name":"add","nativeSrc":"1147:3:14","nodeType":"YulIdentifier","src":"1147:3:14"},"nativeSrc":"1147:22:14","nodeType":"YulFunctionCall","src":"1147:22:14"},{"name":"dataEnd","nativeSrc":"1171:7:14","nodeType":"YulIdentifier","src":"1171:7:14"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"1115:31:14","nodeType":"YulIdentifier","src":"1115:31:14"},"nativeSrc":"1115:64:14","nodeType":"YulFunctionCall","src":"1115:64:14"},"variableNames":[{"name":"value0","nativeSrc":"1105:6:14","nodeType":"YulIdentifier","src":"1105:6:14"}]}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nativeSrc":"845:351:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"892:9:14","nodeType":"YulTypedName","src":"892:9:14","type":""},{"name":"dataEnd","nativeSrc":"903:7:14","nodeType":"YulTypedName","src":"903:7:14","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"915:6:14","nodeType":"YulTypedName","src":"915:6:14","type":""}],"src":"845:351:14"}]},"contents":"{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n}\n","id":14,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"608060405234801561000f575f80fd5b506040516108fd3803806108fd83398101604081905261002e916100c1565b806100388161003f565b50506100e7565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f6001600160a01b0382165b92915050565b6100a98161008e565b81146100b3575f80fd5b50565b805161009a816100a0565b5f602082840312156100d4576100d45f80fd5b5f6100df84846100b6565b949350505050565b610809806100f45f395ff3fe608060405260043610610079575f3560e01c80639623609d1161004c5780639623609d1461010357806399a88ec414610116578063f2fde38b14610135578063f3b7dead14610154575f80fd5b8063204e1c7a1461007d578063715018a6146100b25780637eff275e146100c85780638da5cb5b146100e7575b5f80fd5b348015610088575f80fd5b5061009c610097366004610494565b610173565b6040516100a991906104c1565b60405180910390f35b3480156100bd575f80fd5b506100c66101f3565b005b3480156100d3575f80fd5b506100c66100e23660046104e3565b610230565b3480156100f2575f80fd5b505f546001600160a01b031661009c565b6100c661011136600461060f565b6102b6565b348015610121575f80fd5b506100c66101303660046104e3565b610342565b348015610140575f80fd5b506100c661014f366004610675565b610397565b34801561015f575f80fd5b5061009c61016e366004610494565b6103f2565b5f805f836001600160a01b031660405161018c906106a6565b5f60405180830381855afa9150503d805f81146101c4576040519150601f19603f3d011682016040523d82523d5f602084013e6101c9565b606091505b5091509150816101d7575f80fd5b808060200190518101906101eb91906106bb565b949350505050565b5f546001600160a01b031633146102255760405162461bcd60e51b815260040161021c906106d9565b60405180910390fd5b61022e5f61040b565b565b5f546001600160a01b031633146102595760405162461bcd60e51b815260040161021c906106d9565b6040516308f2839760e41b81526001600160a01b03831690638f283970906102859084906004016104c1565b5f604051808303815f87803b15801561029c575f80fd5b505af11580156102ae573d5f803e3d5ffd5b505050505050565b5f546001600160a01b031633146102df5760405162461bcd60e51b815260040161021c906106d9565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061030f908690869060040161074f565b5f604051808303818588803b158015610326575f80fd5b505af1158015610338573d5f803e3d5ffd5b5050505050505050565b5f546001600160a01b0316331461036b5760405162461bcd60e51b815260040161021c906106d9565b604051631b2ce7f360e11b81526001600160a01b03831690633659cfe6906102859084906004016104c1565b5f546001600160a01b031633146103c05760405162461bcd60e51b815260040161021c906106d9565b6001600160a01b0381166103e65760405162461bcd60e51b815260040161021c9061076f565b6103ef8161040b565b50565b5f805f836001600160a01b031660405161018c906107c9565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f6001600160a01b0382165b92915050565b5f6104668261045a565b61047f8161046c565b81146103ef575f80fd5b803561046681610476565b5f602082840312156104a7576104a75f80fd5b5f6101eb8484610489565b6104bb8161045a565b82525050565b6020810161046682846104b2565b61047f8161045a565b8035610466816104cf565b5f80604083850312156104f7576104f75f80fd5b5f6105028585610489565b9250506020610513858286016104d8565b9150509250929050565b634e487b7160e01b5f52604160045260245ffd5b601f19601f830116810181811067ffffffffffffffff821117156105575761055761051d565b6040525050565b5f61056860405190565b90506105748282610531565b919050565b5f67ffffffffffffffff8211156105925761059261051d565b601f19601f83011660200192915050565b82818337505f910152565b5f6105c06105bb84610579565b61055e565b9050828152602081018484840111156105da576105da5f80fd5b6105e58482856105a3565b509392505050565b5f82601f8301126105ff576105ff5f80fd5b81356101eb8482602086016105ae565b5f805f60608486031215610624576106245f80fd5b5f61062f8686610489565b9350506020610640868287016104d8565b925050604084013567ffffffffffffffff81111561065f5761065f5f80fd5b61066b868287016105ed565b9150509250925092565b5f60208284031215610688576106885f80fd5b5f6101eb84846104d8565b635c60da1b60e01b81525f5b5060040190565b5f61046682610693565b8051610466816104cf565b5f602082840312156106ce576106ce5f80fd5b5f6101eb84846106b0565b60208082528181019081527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604083015260608201610466565b8281835e505f910152565b5f610727825190565b80845260208401935061073e818560208601610713565b601f01601f19169290920192915050565b6040810161075d82856104b2565b81810360208301526101eb818461071e565b6020808252810161046681602681527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160208201526564647265737360d01b604082015260600190565b6303e1469160e61b81525f61069f565b5f610466826107b956fea264697066735822122052efb9a5616aadc832bd49eff728b329d78d855a8c605912f1e797370d8943ca64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x8FD CODESIZE SUB DUP1 PUSH2 0x8FD DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2E SWAP2 PUSH2 0xC1 JUMP JUMPDEST DUP1 PUSH2 0x38 DUP2 PUSH2 0x3F JUMP JUMPDEST POP POP PUSH2 0xE7 JUMP JUMPDEST PUSH0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xA9 DUP2 PUSH2 0x8E JUMP JUMPDEST DUP2 EQ PUSH2 0xB3 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 MLOAD PUSH2 0x9A DUP2 PUSH2 0xA0 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD4 JUMPI PUSH2 0xD4 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0xDF DUP5 DUP5 PUSH2 0xB6 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x809 DUP1 PUSH2 0xF4 PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x79 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x9623609D GT PUSH2 0x4C JUMPI DUP1 PUSH4 0x9623609D EQ PUSH2 0x103 JUMPI DUP1 PUSH4 0x99A88EC4 EQ PUSH2 0x116 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x135 JUMPI DUP1 PUSH4 0xF3B7DEAD EQ PUSH2 0x154 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x204E1C7A EQ PUSH2 0x7D JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0xB2 JUMPI DUP1 PUSH4 0x7EFF275E EQ PUSH2 0xC8 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0xE7 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x88 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x9C PUSH2 0x97 CALLDATASIZE PUSH1 0x4 PUSH2 0x494 JUMP JUMPDEST PUSH2 0x173 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x4C1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xBD JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0xC6 PUSH2 0x1F3 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xD3 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0xC6 PUSH2 0xE2 CALLDATASIZE PUSH1 0x4 PUSH2 0x4E3 JUMP JUMPDEST PUSH2 0x230 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xF2 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x9C JUMP JUMPDEST PUSH2 0xC6 PUSH2 0x111 CALLDATASIZE PUSH1 0x4 PUSH2 0x60F JUMP JUMPDEST PUSH2 0x2B6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x121 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0xC6 PUSH2 0x130 CALLDATASIZE PUSH1 0x4 PUSH2 0x4E3 JUMP JUMPDEST PUSH2 0x342 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x140 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0xC6 PUSH2 0x14F CALLDATASIZE PUSH1 0x4 PUSH2 0x675 JUMP JUMPDEST PUSH2 0x397 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x15F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x9C PUSH2 0x16E CALLDATASIZE PUSH1 0x4 PUSH2 0x494 JUMP JUMPDEST PUSH2 0x3F2 JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x40 MLOAD PUSH2 0x18C SWAP1 PUSH2 0x6A6 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS STATICCALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x1C4 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1C9 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0x1D7 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x1EB SWAP2 SWAP1 PUSH2 0x6BB JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x225 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x21C SWAP1 PUSH2 0x6D9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x22E PUSH0 PUSH2 0x40B JUMP JUMPDEST JUMP JUMPDEST PUSH0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x259 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x21C SWAP1 PUSH2 0x6D9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x8F28397 PUSH1 0xE4 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0x8F283970 SWAP1 PUSH2 0x285 SWAP1 DUP5 SWAP1 PUSH1 0x4 ADD PUSH2 0x4C1 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x29C JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2AE JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x2DF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x21C SWAP1 PUSH2 0x6D9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x278F7943 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH4 0x4F1EF286 SWAP1 CALLVALUE SWAP1 PUSH2 0x30F SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x74F JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x326 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x338 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x36B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x21C SWAP1 PUSH2 0x6D9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x1B2CE7F3 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0x3659CFE6 SWAP1 PUSH2 0x285 SWAP1 DUP5 SWAP1 PUSH1 0x4 ADD PUSH2 0x4C1 JUMP JUMPDEST PUSH0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x3C0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x21C SWAP1 PUSH2 0x6D9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x3E6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x21C SWAP1 PUSH2 0x76F JUMP JUMPDEST PUSH2 0x3EF DUP2 PUSH2 0x40B JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x40 MLOAD PUSH2 0x18C SWAP1 PUSH2 0x7C9 JUMP JUMPDEST PUSH0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x466 DUP3 PUSH2 0x45A JUMP JUMPDEST PUSH2 0x47F DUP2 PUSH2 0x46C JUMP JUMPDEST DUP2 EQ PUSH2 0x3EF JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x466 DUP2 PUSH2 0x476 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4A7 JUMPI PUSH2 0x4A7 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x1EB DUP5 DUP5 PUSH2 0x489 JUMP JUMPDEST PUSH2 0x4BB DUP2 PUSH2 0x45A JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x466 DUP3 DUP5 PUSH2 0x4B2 JUMP JUMPDEST PUSH2 0x47F DUP2 PUSH2 0x45A JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x466 DUP2 PUSH2 0x4CF JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x4F7 JUMPI PUSH2 0x4F7 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x502 DUP6 DUP6 PUSH2 0x489 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x513 DUP6 DUP3 DUP7 ADD PUSH2 0x4D8 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x557 JUMPI PUSH2 0x557 PUSH2 0x51D JUMP JUMPDEST PUSH1 0x40 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x568 PUSH1 0x40 MLOAD SWAP1 JUMP JUMPDEST SWAP1 POP PUSH2 0x574 DUP3 DUP3 PUSH2 0x531 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x592 JUMPI PUSH2 0x592 PUSH2 0x51D JUMP JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0x5C0 PUSH2 0x5BB DUP5 PUSH2 0x579 JUMP JUMPDEST PUSH2 0x55E JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x5DA JUMPI PUSH2 0x5DA PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x5E5 DUP5 DUP3 DUP6 PUSH2 0x5A3 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x5FF JUMPI PUSH2 0x5FF PUSH0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1EB DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x5AE JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x624 JUMPI PUSH2 0x624 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x62F DUP7 DUP7 PUSH2 0x489 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x640 DUP7 DUP3 DUP8 ADD PUSH2 0x4D8 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x65F JUMPI PUSH2 0x65F PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x66B DUP7 DUP3 DUP8 ADD PUSH2 0x5ED JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x688 JUMPI PUSH2 0x688 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x1EB DUP5 DUP5 PUSH2 0x4D8 JUMP JUMPDEST PUSH4 0x5C60DA1B PUSH1 0xE0 SHL DUP2 MSTORE PUSH0 JUMPDEST POP PUSH1 0x4 ADD SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x466 DUP3 PUSH2 0x693 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x466 DUP2 PUSH2 0x4CF JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x6CE JUMPI PUSH2 0x6CE PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x1EB DUP5 DUP5 PUSH2 0x6B0 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 DUP2 ADD SWAP1 DUP2 MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP3 ADD PUSH2 0x466 JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0x727 DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x73E DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x713 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x75D DUP3 DUP6 PUSH2 0x4B2 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x1EB DUP2 DUP5 PUSH2 0x71E JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x466 DUP2 PUSH1 0x26 DUP2 MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x20 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH4 0x3E14691 PUSH1 0xE6 SHL DUP2 MSTORE PUSH0 PUSH2 0x69F JUMP JUMPDEST PUSH0 PUSH2 0x466 DUP3 PUSH2 0x7B9 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 MSTORE 0xEF 0xB9 0xA5 PUSH2 0x6AAD 0xC8 ORIGIN 0xBD BLOBHASH 0xEF 0xF7 0x28 0xB3 0x29 0xD7 DUP14 DUP6 GAS DUP13 PUSH1 0x59 SLT CALL 0xE7 SWAP8 CALLDATACOPY 0xD DUP10 NUMBER 0xCA PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"435:2470:8:-:0;;;473:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;516:12;942:32:2;516:12:8;942:18:2;:32::i;:::-;897:84;473:59:8;435:2470;;2291:187:2;2364:16;2383:6;;-1:-1:-1;;;;;2399:17:2;;;-1:-1:-1;;;;;;2399:17:2;;;;;;2431:40;;2383:6;;;;;;;2431:40;;2364:16;2431:40;2354:124;2291:187;:::o;466:96:14:-;503:7;-1:-1:-1;;;;;400:54:14;;532:24;521:35;466:96;-1:-1:-1;;466:96:14:o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:143::-;778:13;;800:33;778:13;800:33;:::i;845:351::-;915:6;964:2;952:9;943:7;939:23;935:32;932:119;;;970:79;197:1;194;187:12;970:79;1090:1;1115:64;1171:7;1151:9;1115:64;:::i;:::-;1105:74;845:351;-1:-1:-1;;;;845:351:14:o;:::-;435:2470:8;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_msgSender_1170":{"entryPoint":null,"id":1170,"parameterSlots":0,"returnSlots":1},"@_transferOwnership_110":{"entryPoint":1035,"id":110,"parameterSlots":1,"returnSlots":0},"@changeProxyAdmin_656":{"entryPoint":560,"id":656,"parameterSlots":2,"returnSlots":0},"@getProxyAdmin_638":{"entryPoint":1010,"id":638,"parameterSlots":1,"returnSlots":1},"@getProxyImplementation_604":{"entryPoint":371,"id":604,"parameterSlots":1,"returnSlots":1},"@owner_39":{"entryPoint":null,"id":39,"parameterSlots":0,"returnSlots":1},"@renounceOwnership_67":{"entryPoint":499,"id":67,"parameterSlots":0,"returnSlots":0},"@transferOwnership_90":{"entryPoint":919,"id":90,"parameterSlots":1,"returnSlots":0},"@upgradeAndCall_698":{"entryPoint":694,"id":698,"parameterSlots":3,"returnSlots":0},"@upgrade_674":{"entryPoint":834,"id":674,"parameterSlots":2,"returnSlots":0},"abi_decode_available_length_t_bytes_memory_ptr":{"entryPoint":1454,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address":{"entryPoint":1240,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_address_payable_fromMemory":{"entryPoint":1712,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_memory_ptr":{"entryPoint":1517,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_contract$_TransparentUpgradeableProxy_$863":{"entryPoint":1161,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":1653,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address_payable_fromMemory":{"entryPoint":1723,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_contract$_TransparentUpgradeableProxy_$863":{"entryPoint":1172,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_contract$_TransparentUpgradeableProxy_$863t_address":{"entryPoint":1251,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_contract$_TransparentUpgradeableProxy_$863t_addresst_bytes_memory_ptr":{"entryPoint":1551,"id":null,"parameterSlots":2,"returnSlots":3},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":1202,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack":{"entryPoint":1822,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_96a4c6be7716f5be15d118c16bd1d464cb27f01187d0b9218993a5d488a47c29_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":1683,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_cb23cf6c353ccb16f0d92c8e6b5c5b425654e65dd07e2d295b394de4cf15afb7_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":1977,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_packed_t_stringliteral_96a4c6be7716f5be15d118c16bd1d464cb27f01187d0b9218993a5d488a47c29__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":1702,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_packed_t_stringliteral_cb23cf6c353ccb16f0d92c8e6b5c5b425654e65dd07e2d295b394de4cf15afb7__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":1993,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":1217,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_bytes_memory_ptr__to_t_address_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":1871,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1903,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1753,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_memory":{"entryPoint":1374,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_bytes_memory_ptr":{"entryPoint":1401,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_bytes_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_address_payable":{"entryPoint":1114,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_contract$_TransparentUpgradeableProxy_$863":{"entryPoint":1132,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"copy_calldata_to_memory_with_cleanup":{"entryPoint":1443,"id":null,"parameterSlots":3,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":1811,"id":null,"parameterSlots":3,"returnSlots":0},"finalize_allocation":{"entryPoint":1329,"id":null,"parameterSlots":2,"returnSlots":0},"panic_error_0x41":{"entryPoint":1309,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_96a4c6be7716f5be15d118c16bd1d464cb27f01187d0b9218993a5d488a47c29":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_cb23cf6c353ccb16f0d92c8e6b5c5b425654e65dd07e2d295b394de4cf15afb7":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address":{"entryPoint":1231,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address_payable":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_contract$_TransparentUpgradeableProxy_$863":{"entryPoint":1142,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:12504:14","nodeType":"YulBlock","src":"0:12504:14","statements":[{"body":{"nativeSrc":"47:35:14","nodeType":"YulBlock","src":"47:35:14","statements":[{"nativeSrc":"57:19:14","nodeType":"YulAssignment","src":"57:19:14","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:14","nodeType":"YulLiteral","src":"73:2:14","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:14","nodeType":"YulIdentifier","src":"67:5:14"},"nativeSrc":"67:9:14","nodeType":"YulFunctionCall","src":"67:9:14"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:14","nodeType":"YulIdentifier","src":"57:6:14"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:14","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:14","nodeType":"YulTypedName","src":"40:6:14","type":""}],"src":"7:75:14"},{"body":{"nativeSrc":"177:28:14","nodeType":"YulBlock","src":"177:28:14","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:14","nodeType":"YulLiteral","src":"194:1:14","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:14","nodeType":"YulLiteral","src":"197:1:14","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:14","nodeType":"YulIdentifier","src":"187:6:14"},"nativeSrc":"187:12:14","nodeType":"YulFunctionCall","src":"187:12:14"},"nativeSrc":"187:12:14","nodeType":"YulExpressionStatement","src":"187:12:14"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:14","nodeType":"YulFunctionDefinition","src":"88:117:14"},{"body":{"nativeSrc":"300:28:14","nodeType":"YulBlock","src":"300:28:14","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:14","nodeType":"YulLiteral","src":"317:1:14","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:14","nodeType":"YulLiteral","src":"320:1:14","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:14","nodeType":"YulIdentifier","src":"310:6:14"},"nativeSrc":"310:12:14","nodeType":"YulFunctionCall","src":"310:12:14"},"nativeSrc":"310:12:14","nodeType":"YulExpressionStatement","src":"310:12:14"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:14","nodeType":"YulFunctionDefinition","src":"211:117:14"},{"body":{"nativeSrc":"379:81:14","nodeType":"YulBlock","src":"379:81:14","statements":[{"nativeSrc":"389:65:14","nodeType":"YulAssignment","src":"389:65:14","value":{"arguments":[{"name":"value","nativeSrc":"404:5:14","nodeType":"YulIdentifier","src":"404:5:14"},{"kind":"number","nativeSrc":"411:42:14","nodeType":"YulLiteral","src":"411:42:14","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"400:3:14","nodeType":"YulIdentifier","src":"400:3:14"},"nativeSrc":"400:54:14","nodeType":"YulFunctionCall","src":"400:54:14"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:14","nodeType":"YulIdentifier","src":"389:7:14"}]}]},"name":"cleanup_t_uint160","nativeSrc":"334:126:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:14","nodeType":"YulTypedName","src":"361:5:14","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:14","nodeType":"YulTypedName","src":"371:7:14","type":""}],"src":"334:126:14"},{"body":{"nativeSrc":"519:51:14","nodeType":"YulBlock","src":"519:51:14","statements":[{"nativeSrc":"529:35:14","nodeType":"YulAssignment","src":"529:35:14","value":{"arguments":[{"name":"value","nativeSrc":"558:5:14","nodeType":"YulIdentifier","src":"558:5:14"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"540:17:14","nodeType":"YulIdentifier","src":"540:17:14"},"nativeSrc":"540:24:14","nodeType":"YulFunctionCall","src":"540:24:14"},"variableNames":[{"name":"cleaned","nativeSrc":"529:7:14","nodeType":"YulIdentifier","src":"529:7:14"}]}]},"name":"cleanup_t_address_payable","nativeSrc":"466:104:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"501:5:14","nodeType":"YulTypedName","src":"501:5:14","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"511:7:14","nodeType":"YulTypedName","src":"511:7:14","type":""}],"src":"466:104:14"},{"body":{"nativeSrc":"656:59:14","nodeType":"YulBlock","src":"656:59:14","statements":[{"nativeSrc":"666:43:14","nodeType":"YulAssignment","src":"666:43:14","value":{"arguments":[{"name":"value","nativeSrc":"703:5:14","nodeType":"YulIdentifier","src":"703:5:14"}],"functionName":{"name":"cleanup_t_address_payable","nativeSrc":"677:25:14","nodeType":"YulIdentifier","src":"677:25:14"},"nativeSrc":"677:32:14","nodeType":"YulFunctionCall","src":"677:32:14"},"variableNames":[{"name":"cleaned","nativeSrc":"666:7:14","nodeType":"YulIdentifier","src":"666:7:14"}]}]},"name":"cleanup_t_contract$_TransparentUpgradeableProxy_$863","nativeSrc":"576:139:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"638:5:14","nodeType":"YulTypedName","src":"638:5:14","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"648:7:14","nodeType":"YulTypedName","src":"648:7:14","type":""}],"src":"576:139:14"},{"body":{"nativeSrc":"799:114:14","nodeType":"YulBlock","src":"799:114:14","statements":[{"body":{"nativeSrc":"891:16:14","nodeType":"YulBlock","src":"891:16:14","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"900:1:14","nodeType":"YulLiteral","src":"900:1:14","type":"","value":"0"},{"kind":"number","nativeSrc":"903:1:14","nodeType":"YulLiteral","src":"903:1:14","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"893:6:14","nodeType":"YulIdentifier","src":"893:6:14"},"nativeSrc":"893:12:14","nodeType":"YulFunctionCall","src":"893:12:14"},"nativeSrc":"893:12:14","nodeType":"YulExpressionStatement","src":"893:12:14"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"822:5:14","nodeType":"YulIdentifier","src":"822:5:14"},{"arguments":[{"name":"value","nativeSrc":"882:5:14","nodeType":"YulIdentifier","src":"882:5:14"}],"functionName":{"name":"cleanup_t_contract$_TransparentUpgradeableProxy_$863","nativeSrc":"829:52:14","nodeType":"YulIdentifier","src":"829:52:14"},"nativeSrc":"829:59:14","nodeType":"YulFunctionCall","src":"829:59:14"}],"functionName":{"name":"eq","nativeSrc":"819:2:14","nodeType":"YulIdentifier","src":"819:2:14"},"nativeSrc":"819:70:14","nodeType":"YulFunctionCall","src":"819:70:14"}],"functionName":{"name":"iszero","nativeSrc":"812:6:14","nodeType":"YulIdentifier","src":"812:6:14"},"nativeSrc":"812:78:14","nodeType":"YulFunctionCall","src":"812:78:14"},"nativeSrc":"809:98:14","nodeType":"YulIf","src":"809:98:14"}]},"name":"validator_revert_t_contract$_TransparentUpgradeableProxy_$863","nativeSrc":"721:192:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"792:5:14","nodeType":"YulTypedName","src":"792:5:14","type":""}],"src":"721:192:14"},{"body":{"nativeSrc":"1006:122:14","nodeType":"YulBlock","src":"1006:122:14","statements":[{"nativeSrc":"1016:29:14","nodeType":"YulAssignment","src":"1016:29:14","value":{"arguments":[{"name":"offset","nativeSrc":"1038:6:14","nodeType":"YulIdentifier","src":"1038:6:14"}],"functionName":{"name":"calldataload","nativeSrc":"1025:12:14","nodeType":"YulIdentifier","src":"1025:12:14"},"nativeSrc":"1025:20:14","nodeType":"YulFunctionCall","src":"1025:20:14"},"variableNames":[{"name":"value","nativeSrc":"1016:5:14","nodeType":"YulIdentifier","src":"1016:5:14"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1116:5:14","nodeType":"YulIdentifier","src":"1116:5:14"}],"functionName":{"name":"validator_revert_t_contract$_TransparentUpgradeableProxy_$863","nativeSrc":"1054:61:14","nodeType":"YulIdentifier","src":"1054:61:14"},"nativeSrc":"1054:68:14","nodeType":"YulFunctionCall","src":"1054:68:14"},"nativeSrc":"1054:68:14","nodeType":"YulExpressionStatement","src":"1054:68:14"}]},"name":"abi_decode_t_contract$_TransparentUpgradeableProxy_$863","nativeSrc":"919:209:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"984:6:14","nodeType":"YulTypedName","src":"984:6:14","type":""},{"name":"end","nativeSrc":"992:3:14","nodeType":"YulTypedName","src":"992:3:14","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1000:5:14","nodeType":"YulTypedName","src":"1000:5:14","type":""}],"src":"919:209:14"},{"body":{"nativeSrc":"1235:298:14","nodeType":"YulBlock","src":"1235:298:14","statements":[{"body":{"nativeSrc":"1281:83:14","nodeType":"YulBlock","src":"1281:83:14","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1283:77:14","nodeType":"YulIdentifier","src":"1283:77:14"},"nativeSrc":"1283:79:14","nodeType":"YulFunctionCall","src":"1283:79:14"},"nativeSrc":"1283:79:14","nodeType":"YulExpressionStatement","src":"1283:79:14"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1256:7:14","nodeType":"YulIdentifier","src":"1256:7:14"},{"name":"headStart","nativeSrc":"1265:9:14","nodeType":"YulIdentifier","src":"1265:9:14"}],"functionName":{"name":"sub","nativeSrc":"1252:3:14","nodeType":"YulIdentifier","src":"1252:3:14"},"nativeSrc":"1252:23:14","nodeType":"YulFunctionCall","src":"1252:23:14"},{"kind":"number","nativeSrc":"1277:2:14","nodeType":"YulLiteral","src":"1277:2:14","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"1248:3:14","nodeType":"YulIdentifier","src":"1248:3:14"},"nativeSrc":"1248:32:14","nodeType":"YulFunctionCall","src":"1248:32:14"},"nativeSrc":"1245:119:14","nodeType":"YulIf","src":"1245:119:14"},{"nativeSrc":"1374:152:14","nodeType":"YulBlock","src":"1374:152:14","statements":[{"nativeSrc":"1389:15:14","nodeType":"YulVariableDeclaration","src":"1389:15:14","value":{"kind":"number","nativeSrc":"1403:1:14","nodeType":"YulLiteral","src":"1403:1:14","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1393:6:14","nodeType":"YulTypedName","src":"1393:6:14","type":""}]},{"nativeSrc":"1418:98:14","nodeType":"YulAssignment","src":"1418:98:14","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1488:9:14","nodeType":"YulIdentifier","src":"1488:9:14"},{"name":"offset","nativeSrc":"1499:6:14","nodeType":"YulIdentifier","src":"1499:6:14"}],"functionName":{"name":"add","nativeSrc":"1484:3:14","nodeType":"YulIdentifier","src":"1484:3:14"},"nativeSrc":"1484:22:14","nodeType":"YulFunctionCall","src":"1484:22:14"},{"name":"dataEnd","nativeSrc":"1508:7:14","nodeType":"YulIdentifier","src":"1508:7:14"}],"functionName":{"name":"abi_decode_t_contract$_TransparentUpgradeableProxy_$863","nativeSrc":"1428:55:14","nodeType":"YulIdentifier","src":"1428:55:14"},"nativeSrc":"1428:88:14","nodeType":"YulFunctionCall","src":"1428:88:14"},"variableNames":[{"name":"value0","nativeSrc":"1418:6:14","nodeType":"YulIdentifier","src":"1418:6:14"}]}]}]},"name":"abi_decode_tuple_t_contract$_TransparentUpgradeableProxy_$863","nativeSrc":"1134:399:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1205:9:14","nodeType":"YulTypedName","src":"1205:9:14","type":""},{"name":"dataEnd","nativeSrc":"1216:7:14","nodeType":"YulTypedName","src":"1216:7:14","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1228:6:14","nodeType":"YulTypedName","src":"1228:6:14","type":""}],"src":"1134:399:14"},{"body":{"nativeSrc":"1584:51:14","nodeType":"YulBlock","src":"1584:51:14","statements":[{"nativeSrc":"1594:35:14","nodeType":"YulAssignment","src":"1594:35:14","value":{"arguments":[{"name":"value","nativeSrc":"1623:5:14","nodeType":"YulIdentifier","src":"1623:5:14"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"1605:17:14","nodeType":"YulIdentifier","src":"1605:17:14"},"nativeSrc":"1605:24:14","nodeType":"YulFunctionCall","src":"1605:24:14"},"variableNames":[{"name":"cleaned","nativeSrc":"1594:7:14","nodeType":"YulIdentifier","src":"1594:7:14"}]}]},"name":"cleanup_t_address","nativeSrc":"1539:96:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1566:5:14","nodeType":"YulTypedName","src":"1566:5:14","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1576:7:14","nodeType":"YulTypedName","src":"1576:7:14","type":""}],"src":"1539:96:14"},{"body":{"nativeSrc":"1706:53:14","nodeType":"YulBlock","src":"1706:53:14","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1723:3:14","nodeType":"YulIdentifier","src":"1723:3:14"},{"arguments":[{"name":"value","nativeSrc":"1746:5:14","nodeType":"YulIdentifier","src":"1746:5:14"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"1728:17:14","nodeType":"YulIdentifier","src":"1728:17:14"},"nativeSrc":"1728:24:14","nodeType":"YulFunctionCall","src":"1728:24:14"}],"functionName":{"name":"mstore","nativeSrc":"1716:6:14","nodeType":"YulIdentifier","src":"1716:6:14"},"nativeSrc":"1716:37:14","nodeType":"YulFunctionCall","src":"1716:37:14"},"nativeSrc":"1716:37:14","nodeType":"YulExpressionStatement","src":"1716:37:14"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"1641:118:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1694:5:14","nodeType":"YulTypedName","src":"1694:5:14","type":""},{"name":"pos","nativeSrc":"1701:3:14","nodeType":"YulTypedName","src":"1701:3:14","type":""}],"src":"1641:118:14"},{"body":{"nativeSrc":"1863:124:14","nodeType":"YulBlock","src":"1863:124:14","statements":[{"nativeSrc":"1873:26:14","nodeType":"YulAssignment","src":"1873:26:14","value":{"arguments":[{"name":"headStart","nativeSrc":"1885:9:14","nodeType":"YulIdentifier","src":"1885:9:14"},{"kind":"number","nativeSrc":"1896:2:14","nodeType":"YulLiteral","src":"1896:2:14","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1881:3:14","nodeType":"YulIdentifier","src":"1881:3:14"},"nativeSrc":"1881:18:14","nodeType":"YulFunctionCall","src":"1881:18:14"},"variableNames":[{"name":"tail","nativeSrc":"1873:4:14","nodeType":"YulIdentifier","src":"1873:4:14"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1953:6:14","nodeType":"YulIdentifier","src":"1953:6:14"},{"arguments":[{"name":"headStart","nativeSrc":"1966:9:14","nodeType":"YulIdentifier","src":"1966:9:14"},{"kind":"number","nativeSrc":"1977:1:14","nodeType":"YulLiteral","src":"1977:1:14","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1962:3:14","nodeType":"YulIdentifier","src":"1962:3:14"},"nativeSrc":"1962:17:14","nodeType":"YulFunctionCall","src":"1962:17:14"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"1909:43:14","nodeType":"YulIdentifier","src":"1909:43:14"},"nativeSrc":"1909:71:14","nodeType":"YulFunctionCall","src":"1909:71:14"},"nativeSrc":"1909:71:14","nodeType":"YulExpressionStatement","src":"1909:71:14"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"1765:222:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1835:9:14","nodeType":"YulTypedName","src":"1835:9:14","type":""},{"name":"value0","nativeSrc":"1847:6:14","nodeType":"YulTypedName","src":"1847:6:14","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1858:4:14","nodeType":"YulTypedName","src":"1858:4:14","type":""}],"src":"1765:222:14"},{"body":{"nativeSrc":"2036:79:14","nodeType":"YulBlock","src":"2036:79:14","statements":[{"body":{"nativeSrc":"2093:16:14","nodeType":"YulBlock","src":"2093:16:14","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2102:1:14","nodeType":"YulLiteral","src":"2102:1:14","type":"","value":"0"},{"kind":"number","nativeSrc":"2105:1:14","nodeType":"YulLiteral","src":"2105:1:14","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2095:6:14","nodeType":"YulIdentifier","src":"2095:6:14"},"nativeSrc":"2095:12:14","nodeType":"YulFunctionCall","src":"2095:12:14"},"nativeSrc":"2095:12:14","nodeType":"YulExpressionStatement","src":"2095:12:14"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2059:5:14","nodeType":"YulIdentifier","src":"2059:5:14"},{"arguments":[{"name":"value","nativeSrc":"2084:5:14","nodeType":"YulIdentifier","src":"2084:5:14"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"2066:17:14","nodeType":"YulIdentifier","src":"2066:17:14"},"nativeSrc":"2066:24:14","nodeType":"YulFunctionCall","src":"2066:24:14"}],"functionName":{"name":"eq","nativeSrc":"2056:2:14","nodeType":"YulIdentifier","src":"2056:2:14"},"nativeSrc":"2056:35:14","nodeType":"YulFunctionCall","src":"2056:35:14"}],"functionName":{"name":"iszero","nativeSrc":"2049:6:14","nodeType":"YulIdentifier","src":"2049:6:14"},"nativeSrc":"2049:43:14","nodeType":"YulFunctionCall","src":"2049:43:14"},"nativeSrc":"2046:63:14","nodeType":"YulIf","src":"2046:63:14"}]},"name":"validator_revert_t_address","nativeSrc":"1993:122:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2029:5:14","nodeType":"YulTypedName","src":"2029:5:14","type":""}],"src":"1993:122:14"},{"body":{"nativeSrc":"2173:87:14","nodeType":"YulBlock","src":"2173:87:14","statements":[{"nativeSrc":"2183:29:14","nodeType":"YulAssignment","src":"2183:29:14","value":{"arguments":[{"name":"offset","nativeSrc":"2205:6:14","nodeType":"YulIdentifier","src":"2205:6:14"}],"functionName":{"name":"calldataload","nativeSrc":"2192:12:14","nodeType":"YulIdentifier","src":"2192:12:14"},"nativeSrc":"2192:20:14","nodeType":"YulFunctionCall","src":"2192:20:14"},"variableNames":[{"name":"value","nativeSrc":"2183:5:14","nodeType":"YulIdentifier","src":"2183:5:14"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2248:5:14","nodeType":"YulIdentifier","src":"2248:5:14"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"2221:26:14","nodeType":"YulIdentifier","src":"2221:26:14"},"nativeSrc":"2221:33:14","nodeType":"YulFunctionCall","src":"2221:33:14"},"nativeSrc":"2221:33:14","nodeType":"YulExpressionStatement","src":"2221:33:14"}]},"name":"abi_decode_t_address","nativeSrc":"2121:139:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2151:6:14","nodeType":"YulTypedName","src":"2151:6:14","type":""},{"name":"end","nativeSrc":"2159:3:14","nodeType":"YulTypedName","src":"2159:3:14","type":""}],"returnVariables":[{"name":"value","nativeSrc":"2167:5:14","nodeType":"YulTypedName","src":"2167:5:14","type":""}],"src":"2121:139:14"},{"body":{"nativeSrc":"2384:426:14","nodeType":"YulBlock","src":"2384:426:14","statements":[{"body":{"nativeSrc":"2430:83:14","nodeType":"YulBlock","src":"2430:83:14","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"2432:77:14","nodeType":"YulIdentifier","src":"2432:77:14"},"nativeSrc":"2432:79:14","nodeType":"YulFunctionCall","src":"2432:79:14"},"nativeSrc":"2432:79:14","nodeType":"YulExpressionStatement","src":"2432:79:14"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2405:7:14","nodeType":"YulIdentifier","src":"2405:7:14"},{"name":"headStart","nativeSrc":"2414:9:14","nodeType":"YulIdentifier","src":"2414:9:14"}],"functionName":{"name":"sub","nativeSrc":"2401:3:14","nodeType":"YulIdentifier","src":"2401:3:14"},"nativeSrc":"2401:23:14","nodeType":"YulFunctionCall","src":"2401:23:14"},{"kind":"number","nativeSrc":"2426:2:14","nodeType":"YulLiteral","src":"2426:2:14","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"2397:3:14","nodeType":"YulIdentifier","src":"2397:3:14"},"nativeSrc":"2397:32:14","nodeType":"YulFunctionCall","src":"2397:32:14"},"nativeSrc":"2394:119:14","nodeType":"YulIf","src":"2394:119:14"},{"nativeSrc":"2523:152:14","nodeType":"YulBlock","src":"2523:152:14","statements":[{"nativeSrc":"2538:15:14","nodeType":"YulVariableDeclaration","src":"2538:15:14","value":{"kind":"number","nativeSrc":"2552:1:14","nodeType":"YulLiteral","src":"2552:1:14","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"2542:6:14","nodeType":"YulTypedName","src":"2542:6:14","type":""}]},{"nativeSrc":"2567:98:14","nodeType":"YulAssignment","src":"2567:98:14","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2637:9:14","nodeType":"YulIdentifier","src":"2637:9:14"},{"name":"offset","nativeSrc":"2648:6:14","nodeType":"YulIdentifier","src":"2648:6:14"}],"functionName":{"name":"add","nativeSrc":"2633:3:14","nodeType":"YulIdentifier","src":"2633:3:14"},"nativeSrc":"2633:22:14","nodeType":"YulFunctionCall","src":"2633:22:14"},{"name":"dataEnd","nativeSrc":"2657:7:14","nodeType":"YulIdentifier","src":"2657:7:14"}],"functionName":{"name":"abi_decode_t_contract$_TransparentUpgradeableProxy_$863","nativeSrc":"2577:55:14","nodeType":"YulIdentifier","src":"2577:55:14"},"nativeSrc":"2577:88:14","nodeType":"YulFunctionCall","src":"2577:88:14"},"variableNames":[{"name":"value0","nativeSrc":"2567:6:14","nodeType":"YulIdentifier","src":"2567:6:14"}]}]},{"nativeSrc":"2685:118:14","nodeType":"YulBlock","src":"2685:118:14","statements":[{"nativeSrc":"2700:16:14","nodeType":"YulVariableDeclaration","src":"2700:16:14","value":{"kind":"number","nativeSrc":"2714:2:14","nodeType":"YulLiteral","src":"2714:2:14","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"2704:6:14","nodeType":"YulTypedName","src":"2704:6:14","type":""}]},{"nativeSrc":"2730:63:14","nodeType":"YulAssignment","src":"2730:63:14","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2765:9:14","nodeType":"YulIdentifier","src":"2765:9:14"},{"name":"offset","nativeSrc":"2776:6:14","nodeType":"YulIdentifier","src":"2776:6:14"}],"functionName":{"name":"add","nativeSrc":"2761:3:14","nodeType":"YulIdentifier","src":"2761:3:14"},"nativeSrc":"2761:22:14","nodeType":"YulFunctionCall","src":"2761:22:14"},{"name":"dataEnd","nativeSrc":"2785:7:14","nodeType":"YulIdentifier","src":"2785:7:14"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"2740:20:14","nodeType":"YulIdentifier","src":"2740:20:14"},"nativeSrc":"2740:53:14","nodeType":"YulFunctionCall","src":"2740:53:14"},"variableNames":[{"name":"value1","nativeSrc":"2730:6:14","nodeType":"YulIdentifier","src":"2730:6:14"}]}]}]},"name":"abi_decode_tuple_t_contract$_TransparentUpgradeableProxy_$863t_address","nativeSrc":"2266:544:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2346:9:14","nodeType":"YulTypedName","src":"2346:9:14","type":""},{"name":"dataEnd","nativeSrc":"2357:7:14","nodeType":"YulTypedName","src":"2357:7:14","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2369:6:14","nodeType":"YulTypedName","src":"2369:6:14","type":""},{"name":"value1","nativeSrc":"2377:6:14","nodeType":"YulTypedName","src":"2377:6:14","type":""}],"src":"2266:544:14"},{"body":{"nativeSrc":"2905:28:14","nodeType":"YulBlock","src":"2905:28:14","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2922:1:14","nodeType":"YulLiteral","src":"2922:1:14","type":"","value":"0"},{"kind":"number","nativeSrc":"2925:1:14","nodeType":"YulLiteral","src":"2925:1:14","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2915:6:14","nodeType":"YulIdentifier","src":"2915:6:14"},"nativeSrc":"2915:12:14","nodeType":"YulFunctionCall","src":"2915:12:14"},"nativeSrc":"2915:12:14","nodeType":"YulExpressionStatement","src":"2915:12:14"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"2816:117:14","nodeType":"YulFunctionDefinition","src":"2816:117:14"},{"body":{"nativeSrc":"3028:28:14","nodeType":"YulBlock","src":"3028:28:14","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3045:1:14","nodeType":"YulLiteral","src":"3045:1:14","type":"","value":"0"},{"kind":"number","nativeSrc":"3048:1:14","nodeType":"YulLiteral","src":"3048:1:14","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3038:6:14","nodeType":"YulIdentifier","src":"3038:6:14"},"nativeSrc":"3038:12:14","nodeType":"YulFunctionCall","src":"3038:12:14"},"nativeSrc":"3038:12:14","nodeType":"YulExpressionStatement","src":"3038:12:14"}]},"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"2939:117:14","nodeType":"YulFunctionDefinition","src":"2939:117:14"},{"body":{"nativeSrc":"3110:54:14","nodeType":"YulBlock","src":"3110:54:14","statements":[{"nativeSrc":"3120:38:14","nodeType":"YulAssignment","src":"3120:38:14","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3138:5:14","nodeType":"YulIdentifier","src":"3138:5:14"},{"kind":"number","nativeSrc":"3145:2:14","nodeType":"YulLiteral","src":"3145:2:14","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"3134:3:14","nodeType":"YulIdentifier","src":"3134:3:14"},"nativeSrc":"3134:14:14","nodeType":"YulFunctionCall","src":"3134:14:14"},{"arguments":[{"kind":"number","nativeSrc":"3154:2:14","nodeType":"YulLiteral","src":"3154:2:14","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"3150:3:14","nodeType":"YulIdentifier","src":"3150:3:14"},"nativeSrc":"3150:7:14","nodeType":"YulFunctionCall","src":"3150:7:14"}],"functionName":{"name":"and","nativeSrc":"3130:3:14","nodeType":"YulIdentifier","src":"3130:3:14"},"nativeSrc":"3130:28:14","nodeType":"YulFunctionCall","src":"3130:28:14"},"variableNames":[{"name":"result","nativeSrc":"3120:6:14","nodeType":"YulIdentifier","src":"3120:6:14"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"3062:102:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3093:5:14","nodeType":"YulTypedName","src":"3093:5:14","type":""}],"returnVariables":[{"name":"result","nativeSrc":"3103:6:14","nodeType":"YulTypedName","src":"3103:6:14","type":""}],"src":"3062:102:14"},{"body":{"nativeSrc":"3198:152:14","nodeType":"YulBlock","src":"3198:152:14","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3215:1:14","nodeType":"YulLiteral","src":"3215:1:14","type":"","value":"0"},{"kind":"number","nativeSrc":"3218:77:14","nodeType":"YulLiteral","src":"3218:77:14","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"3208:6:14","nodeType":"YulIdentifier","src":"3208:6:14"},"nativeSrc":"3208:88:14","nodeType":"YulFunctionCall","src":"3208:88:14"},"nativeSrc":"3208:88:14","nodeType":"YulExpressionStatement","src":"3208:88:14"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3312:1:14","nodeType":"YulLiteral","src":"3312:1:14","type":"","value":"4"},{"kind":"number","nativeSrc":"3315:4:14","nodeType":"YulLiteral","src":"3315:4:14","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"3305:6:14","nodeType":"YulIdentifier","src":"3305:6:14"},"nativeSrc":"3305:15:14","nodeType":"YulFunctionCall","src":"3305:15:14"},"nativeSrc":"3305:15:14","nodeType":"YulExpressionStatement","src":"3305:15:14"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3336:1:14","nodeType":"YulLiteral","src":"3336:1:14","type":"","value":"0"},{"kind":"number","nativeSrc":"3339:4:14","nodeType":"YulLiteral","src":"3339:4:14","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"3329:6:14","nodeType":"YulIdentifier","src":"3329:6:14"},"nativeSrc":"3329:15:14","nodeType":"YulFunctionCall","src":"3329:15:14"},"nativeSrc":"3329:15:14","nodeType":"YulExpressionStatement","src":"3329:15:14"}]},"name":"panic_error_0x41","nativeSrc":"3170:180:14","nodeType":"YulFunctionDefinition","src":"3170:180:14"},{"body":{"nativeSrc":"3399:238:14","nodeType":"YulBlock","src":"3399:238:14","statements":[{"nativeSrc":"3409:58:14","nodeType":"YulVariableDeclaration","src":"3409:58:14","value":{"arguments":[{"name":"memPtr","nativeSrc":"3431:6:14","nodeType":"YulIdentifier","src":"3431:6:14"},{"arguments":[{"name":"size","nativeSrc":"3461:4:14","nodeType":"YulIdentifier","src":"3461:4:14"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"3439:21:14","nodeType":"YulIdentifier","src":"3439:21:14"},"nativeSrc":"3439:27:14","nodeType":"YulFunctionCall","src":"3439:27:14"}],"functionName":{"name":"add","nativeSrc":"3427:3:14","nodeType":"YulIdentifier","src":"3427:3:14"},"nativeSrc":"3427:40:14","nodeType":"YulFunctionCall","src":"3427:40:14"},"variables":[{"name":"newFreePtr","nativeSrc":"3413:10:14","nodeType":"YulTypedName","src":"3413:10:14","type":""}]},{"body":{"nativeSrc":"3578:22:14","nodeType":"YulBlock","src":"3578:22:14","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"3580:16:14","nodeType":"YulIdentifier","src":"3580:16:14"},"nativeSrc":"3580:18:14","nodeType":"YulFunctionCall","src":"3580:18:14"},"nativeSrc":"3580:18:14","nodeType":"YulExpressionStatement","src":"3580:18:14"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"3521:10:14","nodeType":"YulIdentifier","src":"3521:10:14"},{"kind":"number","nativeSrc":"3533:18:14","nodeType":"YulLiteral","src":"3533:18:14","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3518:2:14","nodeType":"YulIdentifier","src":"3518:2:14"},"nativeSrc":"3518:34:14","nodeType":"YulFunctionCall","src":"3518:34:14"},{"arguments":[{"name":"newFreePtr","nativeSrc":"3557:10:14","nodeType":"YulIdentifier","src":"3557:10:14"},{"name":"memPtr","nativeSrc":"3569:6:14","nodeType":"YulIdentifier","src":"3569:6:14"}],"functionName":{"name":"lt","nativeSrc":"3554:2:14","nodeType":"YulIdentifier","src":"3554:2:14"},"nativeSrc":"3554:22:14","nodeType":"YulFunctionCall","src":"3554:22:14"}],"functionName":{"name":"or","nativeSrc":"3515:2:14","nodeType":"YulIdentifier","src":"3515:2:14"},"nativeSrc":"3515:62:14","nodeType":"YulFunctionCall","src":"3515:62:14"},"nativeSrc":"3512:88:14","nodeType":"YulIf","src":"3512:88:14"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3616:2:14","nodeType":"YulLiteral","src":"3616:2:14","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"3620:10:14","nodeType":"YulIdentifier","src":"3620:10:14"}],"functionName":{"name":"mstore","nativeSrc":"3609:6:14","nodeType":"YulIdentifier","src":"3609:6:14"},"nativeSrc":"3609:22:14","nodeType":"YulFunctionCall","src":"3609:22:14"},"nativeSrc":"3609:22:14","nodeType":"YulExpressionStatement","src":"3609:22:14"}]},"name":"finalize_allocation","nativeSrc":"3356:281:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"3385:6:14","nodeType":"YulTypedName","src":"3385:6:14","type":""},{"name":"size","nativeSrc":"3393:4:14","nodeType":"YulTypedName","src":"3393:4:14","type":""}],"src":"3356:281:14"},{"body":{"nativeSrc":"3684:88:14","nodeType":"YulBlock","src":"3684:88:14","statements":[{"nativeSrc":"3694:30:14","nodeType":"YulAssignment","src":"3694:30:14","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"3704:18:14","nodeType":"YulIdentifier","src":"3704:18:14"},"nativeSrc":"3704:20:14","nodeType":"YulFunctionCall","src":"3704:20:14"},"variableNames":[{"name":"memPtr","nativeSrc":"3694:6:14","nodeType":"YulIdentifier","src":"3694:6:14"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"3753:6:14","nodeType":"YulIdentifier","src":"3753:6:14"},{"name":"size","nativeSrc":"3761:4:14","nodeType":"YulIdentifier","src":"3761:4:14"}],"functionName":{"name":"finalize_allocation","nativeSrc":"3733:19:14","nodeType":"YulIdentifier","src":"3733:19:14"},"nativeSrc":"3733:33:14","nodeType":"YulFunctionCall","src":"3733:33:14"},"nativeSrc":"3733:33:14","nodeType":"YulExpressionStatement","src":"3733:33:14"}]},"name":"allocate_memory","nativeSrc":"3643:129:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"3668:4:14","nodeType":"YulTypedName","src":"3668:4:14","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"3677:6:14","nodeType":"YulTypedName","src":"3677:6:14","type":""}],"src":"3643:129:14"},{"body":{"nativeSrc":"3844:241:14","nodeType":"YulBlock","src":"3844:241:14","statements":[{"body":{"nativeSrc":"3949:22:14","nodeType":"YulBlock","src":"3949:22:14","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"3951:16:14","nodeType":"YulIdentifier","src":"3951:16:14"},"nativeSrc":"3951:18:14","nodeType":"YulFunctionCall","src":"3951:18:14"},"nativeSrc":"3951:18:14","nodeType":"YulExpressionStatement","src":"3951:18:14"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"3921:6:14","nodeType":"YulIdentifier","src":"3921:6:14"},{"kind":"number","nativeSrc":"3929:18:14","nodeType":"YulLiteral","src":"3929:18:14","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3918:2:14","nodeType":"YulIdentifier","src":"3918:2:14"},"nativeSrc":"3918:30:14","nodeType":"YulFunctionCall","src":"3918:30:14"},"nativeSrc":"3915:56:14","nodeType":"YulIf","src":"3915:56:14"},{"nativeSrc":"3981:37:14","nodeType":"YulAssignment","src":"3981:37:14","value":{"arguments":[{"name":"length","nativeSrc":"4011:6:14","nodeType":"YulIdentifier","src":"4011:6:14"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"3989:21:14","nodeType":"YulIdentifier","src":"3989:21:14"},"nativeSrc":"3989:29:14","nodeType":"YulFunctionCall","src":"3989:29:14"},"variableNames":[{"name":"size","nativeSrc":"3981:4:14","nodeType":"YulIdentifier","src":"3981:4:14"}]},{"nativeSrc":"4055:23:14","nodeType":"YulAssignment","src":"4055:23:14","value":{"arguments":[{"name":"size","nativeSrc":"4067:4:14","nodeType":"YulIdentifier","src":"4067:4:14"},{"kind":"number","nativeSrc":"4073:4:14","nodeType":"YulLiteral","src":"4073:4:14","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4063:3:14","nodeType":"YulIdentifier","src":"4063:3:14"},"nativeSrc":"4063:15:14","nodeType":"YulFunctionCall","src":"4063:15:14"},"variableNames":[{"name":"size","nativeSrc":"4055:4:14","nodeType":"YulIdentifier","src":"4055:4:14"}]}]},"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"3778:307:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"3828:6:14","nodeType":"YulTypedName","src":"3828:6:14","type":""}],"returnVariables":[{"name":"size","nativeSrc":"3839:4:14","nodeType":"YulTypedName","src":"3839:4:14","type":""}],"src":"3778:307:14"},{"body":{"nativeSrc":"4155:84:14","nodeType":"YulBlock","src":"4155:84:14","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"4179:3:14","nodeType":"YulIdentifier","src":"4179:3:14"},{"name":"src","nativeSrc":"4184:3:14","nodeType":"YulIdentifier","src":"4184:3:14"},{"name":"length","nativeSrc":"4189:6:14","nodeType":"YulIdentifier","src":"4189:6:14"}],"functionName":{"name":"calldatacopy","nativeSrc":"4166:12:14","nodeType":"YulIdentifier","src":"4166:12:14"},"nativeSrc":"4166:30:14","nodeType":"YulFunctionCall","src":"4166:30:14"},"nativeSrc":"4166:30:14","nodeType":"YulExpressionStatement","src":"4166:30:14"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"4216:3:14","nodeType":"YulIdentifier","src":"4216:3:14"},{"name":"length","nativeSrc":"4221:6:14","nodeType":"YulIdentifier","src":"4221:6:14"}],"functionName":{"name":"add","nativeSrc":"4212:3:14","nodeType":"YulIdentifier","src":"4212:3:14"},"nativeSrc":"4212:16:14","nodeType":"YulFunctionCall","src":"4212:16:14"},{"kind":"number","nativeSrc":"4230:1:14","nodeType":"YulLiteral","src":"4230:1:14","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"4205:6:14","nodeType":"YulIdentifier","src":"4205:6:14"},"nativeSrc":"4205:27:14","nodeType":"YulFunctionCall","src":"4205:27:14"},"nativeSrc":"4205:27:14","nodeType":"YulExpressionStatement","src":"4205:27:14"}]},"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"4091:148:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"4137:3:14","nodeType":"YulTypedName","src":"4137:3:14","type":""},{"name":"dst","nativeSrc":"4142:3:14","nodeType":"YulTypedName","src":"4142:3:14","type":""},{"name":"length","nativeSrc":"4147:6:14","nodeType":"YulTypedName","src":"4147:6:14","type":""}],"src":"4091:148:14"},{"body":{"nativeSrc":"4328:340:14","nodeType":"YulBlock","src":"4328:340:14","statements":[{"nativeSrc":"4338:74:14","nodeType":"YulAssignment","src":"4338:74:14","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"4404:6:14","nodeType":"YulIdentifier","src":"4404:6:14"}],"functionName":{"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"4363:40:14","nodeType":"YulIdentifier","src":"4363:40:14"},"nativeSrc":"4363:48:14","nodeType":"YulFunctionCall","src":"4363:48:14"}],"functionName":{"name":"allocate_memory","nativeSrc":"4347:15:14","nodeType":"YulIdentifier","src":"4347:15:14"},"nativeSrc":"4347:65:14","nodeType":"YulFunctionCall","src":"4347:65:14"},"variableNames":[{"name":"array","nativeSrc":"4338:5:14","nodeType":"YulIdentifier","src":"4338:5:14"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"4428:5:14","nodeType":"YulIdentifier","src":"4428:5:14"},{"name":"length","nativeSrc":"4435:6:14","nodeType":"YulIdentifier","src":"4435:6:14"}],"functionName":{"name":"mstore","nativeSrc":"4421:6:14","nodeType":"YulIdentifier","src":"4421:6:14"},"nativeSrc":"4421:21:14","nodeType":"YulFunctionCall","src":"4421:21:14"},"nativeSrc":"4421:21:14","nodeType":"YulExpressionStatement","src":"4421:21:14"},{"nativeSrc":"4451:27:14","nodeType":"YulVariableDeclaration","src":"4451:27:14","value":{"arguments":[{"name":"array","nativeSrc":"4466:5:14","nodeType":"YulIdentifier","src":"4466:5:14"},{"kind":"number","nativeSrc":"4473:4:14","nodeType":"YulLiteral","src":"4473:4:14","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4462:3:14","nodeType":"YulIdentifier","src":"4462:3:14"},"nativeSrc":"4462:16:14","nodeType":"YulFunctionCall","src":"4462:16:14"},"variables":[{"name":"dst","nativeSrc":"4455:3:14","nodeType":"YulTypedName","src":"4455:3:14","type":""}]},{"body":{"nativeSrc":"4516:83:14","nodeType":"YulBlock","src":"4516:83:14","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"4518:77:14","nodeType":"YulIdentifier","src":"4518:77:14"},"nativeSrc":"4518:79:14","nodeType":"YulFunctionCall","src":"4518:79:14"},"nativeSrc":"4518:79:14","nodeType":"YulExpressionStatement","src":"4518:79:14"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"4497:3:14","nodeType":"YulIdentifier","src":"4497:3:14"},{"name":"length","nativeSrc":"4502:6:14","nodeType":"YulIdentifier","src":"4502:6:14"}],"functionName":{"name":"add","nativeSrc":"4493:3:14","nodeType":"YulIdentifier","src":"4493:3:14"},"nativeSrc":"4493:16:14","nodeType":"YulFunctionCall","src":"4493:16:14"},{"name":"end","nativeSrc":"4511:3:14","nodeType":"YulIdentifier","src":"4511:3:14"}],"functionName":{"name":"gt","nativeSrc":"4490:2:14","nodeType":"YulIdentifier","src":"4490:2:14"},"nativeSrc":"4490:25:14","nodeType":"YulFunctionCall","src":"4490:25:14"},"nativeSrc":"4487:112:14","nodeType":"YulIf","src":"4487:112:14"},{"expression":{"arguments":[{"name":"src","nativeSrc":"4645:3:14","nodeType":"YulIdentifier","src":"4645:3:14"},{"name":"dst","nativeSrc":"4650:3:14","nodeType":"YulIdentifier","src":"4650:3:14"},{"name":"length","nativeSrc":"4655:6:14","nodeType":"YulIdentifier","src":"4655:6:14"}],"functionName":{"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"4608:36:14","nodeType":"YulIdentifier","src":"4608:36:14"},"nativeSrc":"4608:54:14","nodeType":"YulFunctionCall","src":"4608:54:14"},"nativeSrc":"4608:54:14","nodeType":"YulExpressionStatement","src":"4608:54:14"}]},"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"4245:423:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"4301:3:14","nodeType":"YulTypedName","src":"4301:3:14","type":""},{"name":"length","nativeSrc":"4306:6:14","nodeType":"YulTypedName","src":"4306:6:14","type":""},{"name":"end","nativeSrc":"4314:3:14","nodeType":"YulTypedName","src":"4314:3:14","type":""}],"returnVariables":[{"name":"array","nativeSrc":"4322:5:14","nodeType":"YulTypedName","src":"4322:5:14","type":""}],"src":"4245:423:14"},{"body":{"nativeSrc":"4748:277:14","nodeType":"YulBlock","src":"4748:277:14","statements":[{"body":{"nativeSrc":"4797:83:14","nodeType":"YulBlock","src":"4797:83:14","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"4799:77:14","nodeType":"YulIdentifier","src":"4799:77:14"},"nativeSrc":"4799:79:14","nodeType":"YulFunctionCall","src":"4799:79:14"},"nativeSrc":"4799:79:14","nodeType":"YulExpressionStatement","src":"4799:79:14"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"4776:6:14","nodeType":"YulIdentifier","src":"4776:6:14"},{"kind":"number","nativeSrc":"4784:4:14","nodeType":"YulLiteral","src":"4784:4:14","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"4772:3:14","nodeType":"YulIdentifier","src":"4772:3:14"},"nativeSrc":"4772:17:14","nodeType":"YulFunctionCall","src":"4772:17:14"},{"name":"end","nativeSrc":"4791:3:14","nodeType":"YulIdentifier","src":"4791:3:14"}],"functionName":{"name":"slt","nativeSrc":"4768:3:14","nodeType":"YulIdentifier","src":"4768:3:14"},"nativeSrc":"4768:27:14","nodeType":"YulFunctionCall","src":"4768:27:14"}],"functionName":{"name":"iszero","nativeSrc":"4761:6:14","nodeType":"YulIdentifier","src":"4761:6:14"},"nativeSrc":"4761:35:14","nodeType":"YulFunctionCall","src":"4761:35:14"},"nativeSrc":"4758:122:14","nodeType":"YulIf","src":"4758:122:14"},{"nativeSrc":"4889:34:14","nodeType":"YulVariableDeclaration","src":"4889:34:14","value":{"arguments":[{"name":"offset","nativeSrc":"4916:6:14","nodeType":"YulIdentifier","src":"4916:6:14"}],"functionName":{"name":"calldataload","nativeSrc":"4903:12:14","nodeType":"YulIdentifier","src":"4903:12:14"},"nativeSrc":"4903:20:14","nodeType":"YulFunctionCall","src":"4903:20:14"},"variables":[{"name":"length","nativeSrc":"4893:6:14","nodeType":"YulTypedName","src":"4893:6:14","type":""}]},{"nativeSrc":"4932:87:14","nodeType":"YulAssignment","src":"4932:87:14","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"4992:6:14","nodeType":"YulIdentifier","src":"4992:6:14"},{"kind":"number","nativeSrc":"5000:4:14","nodeType":"YulLiteral","src":"5000:4:14","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4988:3:14","nodeType":"YulIdentifier","src":"4988:3:14"},"nativeSrc":"4988:17:14","nodeType":"YulFunctionCall","src":"4988:17:14"},{"name":"length","nativeSrc":"5007:6:14","nodeType":"YulIdentifier","src":"5007:6:14"},{"name":"end","nativeSrc":"5015:3:14","nodeType":"YulIdentifier","src":"5015:3:14"}],"functionName":{"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"4941:46:14","nodeType":"YulIdentifier","src":"4941:46:14"},"nativeSrc":"4941:78:14","nodeType":"YulFunctionCall","src":"4941:78:14"},"variableNames":[{"name":"array","nativeSrc":"4932:5:14","nodeType":"YulIdentifier","src":"4932:5:14"}]}]},"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"4687:338:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"4726:6:14","nodeType":"YulTypedName","src":"4726:6:14","type":""},{"name":"end","nativeSrc":"4734:3:14","nodeType":"YulTypedName","src":"4734:3:14","type":""}],"returnVariables":[{"name":"array","nativeSrc":"4742:5:14","nodeType":"YulTypedName","src":"4742:5:14","type":""}],"src":"4687:338:14"},{"body":{"nativeSrc":"5175:723:14","nodeType":"YulBlock","src":"5175:723:14","statements":[{"body":{"nativeSrc":"5221:83:14","nodeType":"YulBlock","src":"5221:83:14","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"5223:77:14","nodeType":"YulIdentifier","src":"5223:77:14"},"nativeSrc":"5223:79:14","nodeType":"YulFunctionCall","src":"5223:79:14"},"nativeSrc":"5223:79:14","nodeType":"YulExpressionStatement","src":"5223:79:14"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5196:7:14","nodeType":"YulIdentifier","src":"5196:7:14"},{"name":"headStart","nativeSrc":"5205:9:14","nodeType":"YulIdentifier","src":"5205:9:14"}],"functionName":{"name":"sub","nativeSrc":"5192:3:14","nodeType":"YulIdentifier","src":"5192:3:14"},"nativeSrc":"5192:23:14","nodeType":"YulFunctionCall","src":"5192:23:14"},{"kind":"number","nativeSrc":"5217:2:14","nodeType":"YulLiteral","src":"5217:2:14","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"5188:3:14","nodeType":"YulIdentifier","src":"5188:3:14"},"nativeSrc":"5188:32:14","nodeType":"YulFunctionCall","src":"5188:32:14"},"nativeSrc":"5185:119:14","nodeType":"YulIf","src":"5185:119:14"},{"nativeSrc":"5314:152:14","nodeType":"YulBlock","src":"5314:152:14","statements":[{"nativeSrc":"5329:15:14","nodeType":"YulVariableDeclaration","src":"5329:15:14","value":{"kind":"number","nativeSrc":"5343:1:14","nodeType":"YulLiteral","src":"5343:1:14","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"5333:6:14","nodeType":"YulTypedName","src":"5333:6:14","type":""}]},{"nativeSrc":"5358:98:14","nodeType":"YulAssignment","src":"5358:98:14","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5428:9:14","nodeType":"YulIdentifier","src":"5428:9:14"},{"name":"offset","nativeSrc":"5439:6:14","nodeType":"YulIdentifier","src":"5439:6:14"}],"functionName":{"name":"add","nativeSrc":"5424:3:14","nodeType":"YulIdentifier","src":"5424:3:14"},"nativeSrc":"5424:22:14","nodeType":"YulFunctionCall","src":"5424:22:14"},{"name":"dataEnd","nativeSrc":"5448:7:14","nodeType":"YulIdentifier","src":"5448:7:14"}],"functionName":{"name":"abi_decode_t_contract$_TransparentUpgradeableProxy_$863","nativeSrc":"5368:55:14","nodeType":"YulIdentifier","src":"5368:55:14"},"nativeSrc":"5368:88:14","nodeType":"YulFunctionCall","src":"5368:88:14"},"variableNames":[{"name":"value0","nativeSrc":"5358:6:14","nodeType":"YulIdentifier","src":"5358:6:14"}]}]},{"nativeSrc":"5476:118:14","nodeType":"YulBlock","src":"5476:118:14","statements":[{"nativeSrc":"5491:16:14","nodeType":"YulVariableDeclaration","src":"5491:16:14","value":{"kind":"number","nativeSrc":"5505:2:14","nodeType":"YulLiteral","src":"5505:2:14","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"5495:6:14","nodeType":"YulTypedName","src":"5495:6:14","type":""}]},{"nativeSrc":"5521:63:14","nodeType":"YulAssignment","src":"5521:63:14","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5556:9:14","nodeType":"YulIdentifier","src":"5556:9:14"},{"name":"offset","nativeSrc":"5567:6:14","nodeType":"YulIdentifier","src":"5567:6:14"}],"functionName":{"name":"add","nativeSrc":"5552:3:14","nodeType":"YulIdentifier","src":"5552:3:14"},"nativeSrc":"5552:22:14","nodeType":"YulFunctionCall","src":"5552:22:14"},{"name":"dataEnd","nativeSrc":"5576:7:14","nodeType":"YulIdentifier","src":"5576:7:14"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"5531:20:14","nodeType":"YulIdentifier","src":"5531:20:14"},"nativeSrc":"5531:53:14","nodeType":"YulFunctionCall","src":"5531:53:14"},"variableNames":[{"name":"value1","nativeSrc":"5521:6:14","nodeType":"YulIdentifier","src":"5521:6:14"}]}]},{"nativeSrc":"5604:287:14","nodeType":"YulBlock","src":"5604:287:14","statements":[{"nativeSrc":"5619:46:14","nodeType":"YulVariableDeclaration","src":"5619:46:14","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5650:9:14","nodeType":"YulIdentifier","src":"5650:9:14"},{"kind":"number","nativeSrc":"5661:2:14","nodeType":"YulLiteral","src":"5661:2:14","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5646:3:14","nodeType":"YulIdentifier","src":"5646:3:14"},"nativeSrc":"5646:18:14","nodeType":"YulFunctionCall","src":"5646:18:14"}],"functionName":{"name":"calldataload","nativeSrc":"5633:12:14","nodeType":"YulIdentifier","src":"5633:12:14"},"nativeSrc":"5633:32:14","nodeType":"YulFunctionCall","src":"5633:32:14"},"variables":[{"name":"offset","nativeSrc":"5623:6:14","nodeType":"YulTypedName","src":"5623:6:14","type":""}]},{"body":{"nativeSrc":"5712:83:14","nodeType":"YulBlock","src":"5712:83:14","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"5714:77:14","nodeType":"YulIdentifier","src":"5714:77:14"},"nativeSrc":"5714:79:14","nodeType":"YulFunctionCall","src":"5714:79:14"},"nativeSrc":"5714:79:14","nodeType":"YulExpressionStatement","src":"5714:79:14"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"5684:6:14","nodeType":"YulIdentifier","src":"5684:6:14"},{"kind":"number","nativeSrc":"5692:18:14","nodeType":"YulLiteral","src":"5692:18:14","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"5681:2:14","nodeType":"YulIdentifier","src":"5681:2:14"},"nativeSrc":"5681:30:14","nodeType":"YulFunctionCall","src":"5681:30:14"},"nativeSrc":"5678:117:14","nodeType":"YulIf","src":"5678:117:14"},{"nativeSrc":"5809:72:14","nodeType":"YulAssignment","src":"5809:72:14","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5853:9:14","nodeType":"YulIdentifier","src":"5853:9:14"},{"name":"offset","nativeSrc":"5864:6:14","nodeType":"YulIdentifier","src":"5864:6:14"}],"functionName":{"name":"add","nativeSrc":"5849:3:14","nodeType":"YulIdentifier","src":"5849:3:14"},"nativeSrc":"5849:22:14","nodeType":"YulFunctionCall","src":"5849:22:14"},{"name":"dataEnd","nativeSrc":"5873:7:14","nodeType":"YulIdentifier","src":"5873:7:14"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"5819:29:14","nodeType":"YulIdentifier","src":"5819:29:14"},"nativeSrc":"5819:62:14","nodeType":"YulFunctionCall","src":"5819:62:14"},"variableNames":[{"name":"value2","nativeSrc":"5809:6:14","nodeType":"YulIdentifier","src":"5809:6:14"}]}]}]},"name":"abi_decode_tuple_t_contract$_TransparentUpgradeableProxy_$863t_addresst_bytes_memory_ptr","nativeSrc":"5031:867:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5129:9:14","nodeType":"YulTypedName","src":"5129:9:14","type":""},{"name":"dataEnd","nativeSrc":"5140:7:14","nodeType":"YulTypedName","src":"5140:7:14","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5152:6:14","nodeType":"YulTypedName","src":"5152:6:14","type":""},{"name":"value1","nativeSrc":"5160:6:14","nodeType":"YulTypedName","src":"5160:6:14","type":""},{"name":"value2","nativeSrc":"5168:6:14","nodeType":"YulTypedName","src":"5168:6:14","type":""}],"src":"5031:867:14"},{"body":{"nativeSrc":"5970:263:14","nodeType":"YulBlock","src":"5970:263:14","statements":[{"body":{"nativeSrc":"6016:83:14","nodeType":"YulBlock","src":"6016:83:14","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"6018:77:14","nodeType":"YulIdentifier","src":"6018:77:14"},"nativeSrc":"6018:79:14","nodeType":"YulFunctionCall","src":"6018:79:14"},"nativeSrc":"6018:79:14","nodeType":"YulExpressionStatement","src":"6018:79:14"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5991:7:14","nodeType":"YulIdentifier","src":"5991:7:14"},{"name":"headStart","nativeSrc":"6000:9:14","nodeType":"YulIdentifier","src":"6000:9:14"}],"functionName":{"name":"sub","nativeSrc":"5987:3:14","nodeType":"YulIdentifier","src":"5987:3:14"},"nativeSrc":"5987:23:14","nodeType":"YulFunctionCall","src":"5987:23:14"},{"kind":"number","nativeSrc":"6012:2:14","nodeType":"YulLiteral","src":"6012:2:14","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"5983:3:14","nodeType":"YulIdentifier","src":"5983:3:14"},"nativeSrc":"5983:32:14","nodeType":"YulFunctionCall","src":"5983:32:14"},"nativeSrc":"5980:119:14","nodeType":"YulIf","src":"5980:119:14"},{"nativeSrc":"6109:117:14","nodeType":"YulBlock","src":"6109:117:14","statements":[{"nativeSrc":"6124:15:14","nodeType":"YulVariableDeclaration","src":"6124:15:14","value":{"kind":"number","nativeSrc":"6138:1:14","nodeType":"YulLiteral","src":"6138:1:14","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"6128:6:14","nodeType":"YulTypedName","src":"6128:6:14","type":""}]},{"nativeSrc":"6153:63:14","nodeType":"YulAssignment","src":"6153:63:14","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6188:9:14","nodeType":"YulIdentifier","src":"6188:9:14"},{"name":"offset","nativeSrc":"6199:6:14","nodeType":"YulIdentifier","src":"6199:6:14"}],"functionName":{"name":"add","nativeSrc":"6184:3:14","nodeType":"YulIdentifier","src":"6184:3:14"},"nativeSrc":"6184:22:14","nodeType":"YulFunctionCall","src":"6184:22:14"},{"name":"dataEnd","nativeSrc":"6208:7:14","nodeType":"YulIdentifier","src":"6208:7:14"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"6163:20:14","nodeType":"YulIdentifier","src":"6163:20:14"},"nativeSrc":"6163:53:14","nodeType":"YulFunctionCall","src":"6163:53:14"},"variableNames":[{"name":"value0","nativeSrc":"6153:6:14","nodeType":"YulIdentifier","src":"6153:6:14"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"5904:329:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5940:9:14","nodeType":"YulTypedName","src":"5940:9:14","type":""},{"name":"dataEnd","nativeSrc":"5951:7:14","nodeType":"YulTypedName","src":"5951:7:14","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5963:6:14","nodeType":"YulTypedName","src":"5963:6:14","type":""}],"src":"5904:329:14"},{"body":{"nativeSrc":"6352:34:14","nodeType":"YulBlock","src":"6352:34:14","statements":[{"nativeSrc":"6362:18:14","nodeType":"YulAssignment","src":"6362:18:14","value":{"name":"pos","nativeSrc":"6377:3:14","nodeType":"YulIdentifier","src":"6377:3:14"},"variableNames":[{"name":"updated_pos","nativeSrc":"6362:11:14","nodeType":"YulIdentifier","src":"6362:11:14"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"6239:147:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"6324:3:14","nodeType":"YulTypedName","src":"6324:3:14","type":""},{"name":"length","nativeSrc":"6329:6:14","nodeType":"YulTypedName","src":"6329:6:14","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"6340:11:14","nodeType":"YulTypedName","src":"6340:11:14","type":""}],"src":"6239:147:14"},{"body":{"nativeSrc":"6498:108:14","nodeType":"YulBlock","src":"6498:108:14","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"6520:6:14","nodeType":"YulIdentifier","src":"6520:6:14"},{"kind":"number","nativeSrc":"6528:1:14","nodeType":"YulLiteral","src":"6528:1:14","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6516:3:14","nodeType":"YulIdentifier","src":"6516:3:14"},"nativeSrc":"6516:14:14","nodeType":"YulFunctionCall","src":"6516:14:14"},{"kind":"number","nativeSrc":"6532:66:14","nodeType":"YulLiteral","src":"6532:66:14","type":"","value":"0x5c60da1b00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"mstore","nativeSrc":"6509:6:14","nodeType":"YulIdentifier","src":"6509:6:14"},"nativeSrc":"6509:90:14","nodeType":"YulFunctionCall","src":"6509:90:14"},"nativeSrc":"6509:90:14","nodeType":"YulExpressionStatement","src":"6509:90:14"}]},"name":"store_literal_in_memory_96a4c6be7716f5be15d118c16bd1d464cb27f01187d0b9218993a5d488a47c29","nativeSrc":"6392:214:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"6490:6:14","nodeType":"YulTypedName","src":"6490:6:14","type":""}],"src":"6392:214:14"},{"body":{"nativeSrc":"6775:235:14","nodeType":"YulBlock","src":"6775:235:14","statements":[{"nativeSrc":"6785:90:14","nodeType":"YulAssignment","src":"6785:90:14","value":{"arguments":[{"name":"pos","nativeSrc":"6868:3:14","nodeType":"YulIdentifier","src":"6868:3:14"},{"kind":"number","nativeSrc":"6873:1:14","nodeType":"YulLiteral","src":"6873:1:14","type":"","value":"4"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"6792:75:14","nodeType":"YulIdentifier","src":"6792:75:14"},"nativeSrc":"6792:83:14","nodeType":"YulFunctionCall","src":"6792:83:14"},"variableNames":[{"name":"pos","nativeSrc":"6785:3:14","nodeType":"YulIdentifier","src":"6785:3:14"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"6973:3:14","nodeType":"YulIdentifier","src":"6973:3:14"}],"functionName":{"name":"store_literal_in_memory_96a4c6be7716f5be15d118c16bd1d464cb27f01187d0b9218993a5d488a47c29","nativeSrc":"6884:88:14","nodeType":"YulIdentifier","src":"6884:88:14"},"nativeSrc":"6884:93:14","nodeType":"YulFunctionCall","src":"6884:93:14"},"nativeSrc":"6884:93:14","nodeType":"YulExpressionStatement","src":"6884:93:14"},{"nativeSrc":"6986:18:14","nodeType":"YulAssignment","src":"6986:18:14","value":{"arguments":[{"name":"pos","nativeSrc":"6997:3:14","nodeType":"YulIdentifier","src":"6997:3:14"},{"kind":"number","nativeSrc":"7002:1:14","nodeType":"YulLiteral","src":"7002:1:14","type":"","value":"4"}],"functionName":{"name":"add","nativeSrc":"6993:3:14","nodeType":"YulIdentifier","src":"6993:3:14"},"nativeSrc":"6993:11:14","nodeType":"YulFunctionCall","src":"6993:11:14"},"variableNames":[{"name":"end","nativeSrc":"6986:3:14","nodeType":"YulIdentifier","src":"6986:3:14"}]}]},"name":"abi_encode_t_stringliteral_96a4c6be7716f5be15d118c16bd1d464cb27f01187d0b9218993a5d488a47c29_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"6612:398:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"6763:3:14","nodeType":"YulTypedName","src":"6763:3:14","type":""}],"returnVariables":[{"name":"end","nativeSrc":"6771:3:14","nodeType":"YulTypedName","src":"6771:3:14","type":""}],"src":"6612:398:14"},{"body":{"nativeSrc":"7204:191:14","nodeType":"YulBlock","src":"7204:191:14","statements":[{"nativeSrc":"7215:154:14","nodeType":"YulAssignment","src":"7215:154:14","value":{"arguments":[{"name":"pos","nativeSrc":"7365:3:14","nodeType":"YulIdentifier","src":"7365:3:14"}],"functionName":{"name":"abi_encode_t_stringliteral_96a4c6be7716f5be15d118c16bd1d464cb27f01187d0b9218993a5d488a47c29_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"7222:141:14","nodeType":"YulIdentifier","src":"7222:141:14"},"nativeSrc":"7222:147:14","nodeType":"YulFunctionCall","src":"7222:147:14"},"variableNames":[{"name":"pos","nativeSrc":"7215:3:14","nodeType":"YulIdentifier","src":"7215:3:14"}]},{"nativeSrc":"7379:10:14","nodeType":"YulAssignment","src":"7379:10:14","value":{"name":"pos","nativeSrc":"7386:3:14","nodeType":"YulIdentifier","src":"7386:3:14"},"variableNames":[{"name":"end","nativeSrc":"7379:3:14","nodeType":"YulIdentifier","src":"7379:3:14"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_96a4c6be7716f5be15d118c16bd1d464cb27f01187d0b9218993a5d488a47c29__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"7016:379:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"7191:3:14","nodeType":"YulTypedName","src":"7191:3:14","type":""}],"returnVariables":[{"name":"end","nativeSrc":"7200:3:14","nodeType":"YulTypedName","src":"7200:3:14","type":""}],"src":"7016:379:14"},{"body":{"nativeSrc":"7452:87:14","nodeType":"YulBlock","src":"7452:87:14","statements":[{"body":{"nativeSrc":"7517:16:14","nodeType":"YulBlock","src":"7517:16:14","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7526:1:14","nodeType":"YulLiteral","src":"7526:1:14","type":"","value":"0"},{"kind":"number","nativeSrc":"7529:1:14","nodeType":"YulLiteral","src":"7529:1:14","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7519:6:14","nodeType":"YulIdentifier","src":"7519:6:14"},"nativeSrc":"7519:12:14","nodeType":"YulFunctionCall","src":"7519:12:14"},"nativeSrc":"7519:12:14","nodeType":"YulExpressionStatement","src":"7519:12:14"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7475:5:14","nodeType":"YulIdentifier","src":"7475:5:14"},{"arguments":[{"name":"value","nativeSrc":"7508:5:14","nodeType":"YulIdentifier","src":"7508:5:14"}],"functionName":{"name":"cleanup_t_address_payable","nativeSrc":"7482:25:14","nodeType":"YulIdentifier","src":"7482:25:14"},"nativeSrc":"7482:32:14","nodeType":"YulFunctionCall","src":"7482:32:14"}],"functionName":{"name":"eq","nativeSrc":"7472:2:14","nodeType":"YulIdentifier","src":"7472:2:14"},"nativeSrc":"7472:43:14","nodeType":"YulFunctionCall","src":"7472:43:14"}],"functionName":{"name":"iszero","nativeSrc":"7465:6:14","nodeType":"YulIdentifier","src":"7465:6:14"},"nativeSrc":"7465:51:14","nodeType":"YulFunctionCall","src":"7465:51:14"},"nativeSrc":"7462:71:14","nodeType":"YulIf","src":"7462:71:14"}]},"name":"validator_revert_t_address_payable","nativeSrc":"7401:138:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7445:5:14","nodeType":"YulTypedName","src":"7445:5:14","type":""}],"src":"7401:138:14"},{"body":{"nativeSrc":"7616:88:14","nodeType":"YulBlock","src":"7616:88:14","statements":[{"nativeSrc":"7626:22:14","nodeType":"YulAssignment","src":"7626:22:14","value":{"arguments":[{"name":"offset","nativeSrc":"7641:6:14","nodeType":"YulIdentifier","src":"7641:6:14"}],"functionName":{"name":"mload","nativeSrc":"7635:5:14","nodeType":"YulIdentifier","src":"7635:5:14"},"nativeSrc":"7635:13:14","nodeType":"YulFunctionCall","src":"7635:13:14"},"variableNames":[{"name":"value","nativeSrc":"7626:5:14","nodeType":"YulIdentifier","src":"7626:5:14"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"7692:5:14","nodeType":"YulIdentifier","src":"7692:5:14"}],"functionName":{"name":"validator_revert_t_address_payable","nativeSrc":"7657:34:14","nodeType":"YulIdentifier","src":"7657:34:14"},"nativeSrc":"7657:41:14","nodeType":"YulFunctionCall","src":"7657:41:14"},"nativeSrc":"7657:41:14","nodeType":"YulExpressionStatement","src":"7657:41:14"}]},"name":"abi_decode_t_address_payable_fromMemory","nativeSrc":"7545:159:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"7594:6:14","nodeType":"YulTypedName","src":"7594:6:14","type":""},{"name":"end","nativeSrc":"7602:3:14","nodeType":"YulTypedName","src":"7602:3:14","type":""}],"returnVariables":[{"name":"value","nativeSrc":"7610:5:14","nodeType":"YulTypedName","src":"7610:5:14","type":""}],"src":"7545:159:14"},{"body":{"nativeSrc":"7795:282:14","nodeType":"YulBlock","src":"7795:282:14","statements":[{"body":{"nativeSrc":"7841:83:14","nodeType":"YulBlock","src":"7841:83:14","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"7843:77:14","nodeType":"YulIdentifier","src":"7843:77:14"},"nativeSrc":"7843:79:14","nodeType":"YulFunctionCall","src":"7843:79:14"},"nativeSrc":"7843:79:14","nodeType":"YulExpressionStatement","src":"7843:79:14"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7816:7:14","nodeType":"YulIdentifier","src":"7816:7:14"},{"name":"headStart","nativeSrc":"7825:9:14","nodeType":"YulIdentifier","src":"7825:9:14"}],"functionName":{"name":"sub","nativeSrc":"7812:3:14","nodeType":"YulIdentifier","src":"7812:3:14"},"nativeSrc":"7812:23:14","nodeType":"YulFunctionCall","src":"7812:23:14"},{"kind":"number","nativeSrc":"7837:2:14","nodeType":"YulLiteral","src":"7837:2:14","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"7808:3:14","nodeType":"YulIdentifier","src":"7808:3:14"},"nativeSrc":"7808:32:14","nodeType":"YulFunctionCall","src":"7808:32:14"},"nativeSrc":"7805:119:14","nodeType":"YulIf","src":"7805:119:14"},{"nativeSrc":"7934:136:14","nodeType":"YulBlock","src":"7934:136:14","statements":[{"nativeSrc":"7949:15:14","nodeType":"YulVariableDeclaration","src":"7949:15:14","value":{"kind":"number","nativeSrc":"7963:1:14","nodeType":"YulLiteral","src":"7963:1:14","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"7953:6:14","nodeType":"YulTypedName","src":"7953:6:14","type":""}]},{"nativeSrc":"7978:82:14","nodeType":"YulAssignment","src":"7978:82:14","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8032:9:14","nodeType":"YulIdentifier","src":"8032:9:14"},{"name":"offset","nativeSrc":"8043:6:14","nodeType":"YulIdentifier","src":"8043:6:14"}],"functionName":{"name":"add","nativeSrc":"8028:3:14","nodeType":"YulIdentifier","src":"8028:3:14"},"nativeSrc":"8028:22:14","nodeType":"YulFunctionCall","src":"8028:22:14"},{"name":"dataEnd","nativeSrc":"8052:7:14","nodeType":"YulIdentifier","src":"8052:7:14"}],"functionName":{"name":"abi_decode_t_address_payable_fromMemory","nativeSrc":"7988:39:14","nodeType":"YulIdentifier","src":"7988:39:14"},"nativeSrc":"7988:72:14","nodeType":"YulFunctionCall","src":"7988:72:14"},"variableNames":[{"name":"value0","nativeSrc":"7978:6:14","nodeType":"YulIdentifier","src":"7978:6:14"}]}]}]},"name":"abi_decode_tuple_t_address_payable_fromMemory","nativeSrc":"7710:367:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7765:9:14","nodeType":"YulTypedName","src":"7765:9:14","type":""},{"name":"dataEnd","nativeSrc":"7776:7:14","nodeType":"YulTypedName","src":"7776:7:14","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7788:6:14","nodeType":"YulTypedName","src":"7788:6:14","type":""}],"src":"7710:367:14"},{"body":{"nativeSrc":"8179:73:14","nodeType":"YulBlock","src":"8179:73:14","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"8196:3:14","nodeType":"YulIdentifier","src":"8196:3:14"},{"name":"length","nativeSrc":"8201:6:14","nodeType":"YulIdentifier","src":"8201:6:14"}],"functionName":{"name":"mstore","nativeSrc":"8189:6:14","nodeType":"YulIdentifier","src":"8189:6:14"},"nativeSrc":"8189:19:14","nodeType":"YulFunctionCall","src":"8189:19:14"},"nativeSrc":"8189:19:14","nodeType":"YulExpressionStatement","src":"8189:19:14"},{"nativeSrc":"8217:29:14","nodeType":"YulAssignment","src":"8217:29:14","value":{"arguments":[{"name":"pos","nativeSrc":"8236:3:14","nodeType":"YulIdentifier","src":"8236:3:14"},{"kind":"number","nativeSrc":"8241:4:14","nodeType":"YulLiteral","src":"8241:4:14","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8232:3:14","nodeType":"YulIdentifier","src":"8232:3:14"},"nativeSrc":"8232:14:14","nodeType":"YulFunctionCall","src":"8232:14:14"},"variableNames":[{"name":"updated_pos","nativeSrc":"8217:11:14","nodeType":"YulIdentifier","src":"8217:11:14"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"8083:169:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"8151:3:14","nodeType":"YulTypedName","src":"8151:3:14","type":""},{"name":"length","nativeSrc":"8156:6:14","nodeType":"YulTypedName","src":"8156:6:14","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"8167:11:14","nodeType":"YulTypedName","src":"8167:11:14","type":""}],"src":"8083:169:14"},{"body":{"nativeSrc":"8364:76:14","nodeType":"YulBlock","src":"8364:76:14","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"8386:6:14","nodeType":"YulIdentifier","src":"8386:6:14"},{"kind":"number","nativeSrc":"8394:1:14","nodeType":"YulLiteral","src":"8394:1:14","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"8382:3:14","nodeType":"YulIdentifier","src":"8382:3:14"},"nativeSrc":"8382:14:14","nodeType":"YulFunctionCall","src":"8382:14:14"},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","kind":"string","nativeSrc":"8398:34:14","nodeType":"YulLiteral","src":"8398:34:14","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nativeSrc":"8375:6:14","nodeType":"YulIdentifier","src":"8375:6:14"},"nativeSrc":"8375:58:14","nodeType":"YulFunctionCall","src":"8375:58:14"},"nativeSrc":"8375:58:14","nodeType":"YulExpressionStatement","src":"8375:58:14"}]},"name":"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","nativeSrc":"8258:182:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"8356:6:14","nodeType":"YulTypedName","src":"8356:6:14","type":""}],"src":"8258:182:14"},{"body":{"nativeSrc":"8592:220:14","nodeType":"YulBlock","src":"8592:220:14","statements":[{"nativeSrc":"8602:74:14","nodeType":"YulAssignment","src":"8602:74:14","value":{"arguments":[{"name":"pos","nativeSrc":"8668:3:14","nodeType":"YulIdentifier","src":"8668:3:14"},{"kind":"number","nativeSrc":"8673:2:14","nodeType":"YulLiteral","src":"8673:2:14","type":"","value":"32"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"8609:58:14","nodeType":"YulIdentifier","src":"8609:58:14"},"nativeSrc":"8609:67:14","nodeType":"YulFunctionCall","src":"8609:67:14"},"variableNames":[{"name":"pos","nativeSrc":"8602:3:14","nodeType":"YulIdentifier","src":"8602:3:14"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"8774:3:14","nodeType":"YulIdentifier","src":"8774:3:14"}],"functionName":{"name":"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","nativeSrc":"8685:88:14","nodeType":"YulIdentifier","src":"8685:88:14"},"nativeSrc":"8685:93:14","nodeType":"YulFunctionCall","src":"8685:93:14"},"nativeSrc":"8685:93:14","nodeType":"YulExpressionStatement","src":"8685:93:14"},{"nativeSrc":"8787:19:14","nodeType":"YulAssignment","src":"8787:19:14","value":{"arguments":[{"name":"pos","nativeSrc":"8798:3:14","nodeType":"YulIdentifier","src":"8798:3:14"},{"kind":"number","nativeSrc":"8803:2:14","nodeType":"YulLiteral","src":"8803:2:14","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8794:3:14","nodeType":"YulIdentifier","src":"8794:3:14"},"nativeSrc":"8794:12:14","nodeType":"YulFunctionCall","src":"8794:12:14"},"variableNames":[{"name":"end","nativeSrc":"8787:3:14","nodeType":"YulIdentifier","src":"8787:3:14"}]}]},"name":"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack","nativeSrc":"8446:366:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"8580:3:14","nodeType":"YulTypedName","src":"8580:3:14","type":""}],"returnVariables":[{"name":"end","nativeSrc":"8588:3:14","nodeType":"YulTypedName","src":"8588:3:14","type":""}],"src":"8446:366:14"},{"body":{"nativeSrc":"8989:248:14","nodeType":"YulBlock","src":"8989:248:14","statements":[{"nativeSrc":"8999:26:14","nodeType":"YulAssignment","src":"8999:26:14","value":{"arguments":[{"name":"headStart","nativeSrc":"9011:9:14","nodeType":"YulIdentifier","src":"9011:9:14"},{"kind":"number","nativeSrc":"9022:2:14","nodeType":"YulLiteral","src":"9022:2:14","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9007:3:14","nodeType":"YulIdentifier","src":"9007:3:14"},"nativeSrc":"9007:18:14","nodeType":"YulFunctionCall","src":"9007:18:14"},"variableNames":[{"name":"tail","nativeSrc":"8999:4:14","nodeType":"YulIdentifier","src":"8999:4:14"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9046:9:14","nodeType":"YulIdentifier","src":"9046:9:14"},{"kind":"number","nativeSrc":"9057:1:14","nodeType":"YulLiteral","src":"9057:1:14","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"9042:3:14","nodeType":"YulIdentifier","src":"9042:3:14"},"nativeSrc":"9042:17:14","nodeType":"YulFunctionCall","src":"9042:17:14"},{"arguments":[{"name":"tail","nativeSrc":"9065:4:14","nodeType":"YulIdentifier","src":"9065:4:14"},{"name":"headStart","nativeSrc":"9071:9:14","nodeType":"YulIdentifier","src":"9071:9:14"}],"functionName":{"name":"sub","nativeSrc":"9061:3:14","nodeType":"YulIdentifier","src":"9061:3:14"},"nativeSrc":"9061:20:14","nodeType":"YulFunctionCall","src":"9061:20:14"}],"functionName":{"name":"mstore","nativeSrc":"9035:6:14","nodeType":"YulIdentifier","src":"9035:6:14"},"nativeSrc":"9035:47:14","nodeType":"YulFunctionCall","src":"9035:47:14"},"nativeSrc":"9035:47:14","nodeType":"YulExpressionStatement","src":"9035:47:14"},{"nativeSrc":"9091:139:14","nodeType":"YulAssignment","src":"9091:139:14","value":{"arguments":[{"name":"tail","nativeSrc":"9225:4:14","nodeType":"YulIdentifier","src":"9225:4:14"}],"functionName":{"name":"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack","nativeSrc":"9099:124:14","nodeType":"YulIdentifier","src":"9099:124:14"},"nativeSrc":"9099:131:14","nodeType":"YulFunctionCall","src":"9099:131:14"},"variableNames":[{"name":"tail","nativeSrc":"9091:4:14","nodeType":"YulIdentifier","src":"9091:4:14"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"8818:419:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8969:9:14","nodeType":"YulTypedName","src":"8969:9:14","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8984:4:14","nodeType":"YulTypedName","src":"8984:4:14","type":""}],"src":"8818:419:14"},{"body":{"nativeSrc":"9301:40:14","nodeType":"YulBlock","src":"9301:40:14","statements":[{"nativeSrc":"9312:22:14","nodeType":"YulAssignment","src":"9312:22:14","value":{"arguments":[{"name":"value","nativeSrc":"9328:5:14","nodeType":"YulIdentifier","src":"9328:5:14"}],"functionName":{"name":"mload","nativeSrc":"9322:5:14","nodeType":"YulIdentifier","src":"9322:5:14"},"nativeSrc":"9322:12:14","nodeType":"YulFunctionCall","src":"9322:12:14"},"variableNames":[{"name":"length","nativeSrc":"9312:6:14","nodeType":"YulIdentifier","src":"9312:6:14"}]}]},"name":"array_length_t_bytes_memory_ptr","nativeSrc":"9243:98:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9284:5:14","nodeType":"YulTypedName","src":"9284:5:14","type":""}],"returnVariables":[{"name":"length","nativeSrc":"9294:6:14","nodeType":"YulTypedName","src":"9294:6:14","type":""}],"src":"9243:98:14"},{"body":{"nativeSrc":"9442:73:14","nodeType":"YulBlock","src":"9442:73:14","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"9459:3:14","nodeType":"YulIdentifier","src":"9459:3:14"},{"name":"length","nativeSrc":"9464:6:14","nodeType":"YulIdentifier","src":"9464:6:14"}],"functionName":{"name":"mstore","nativeSrc":"9452:6:14","nodeType":"YulIdentifier","src":"9452:6:14"},"nativeSrc":"9452:19:14","nodeType":"YulFunctionCall","src":"9452:19:14"},"nativeSrc":"9452:19:14","nodeType":"YulExpressionStatement","src":"9452:19:14"},{"nativeSrc":"9480:29:14","nodeType":"YulAssignment","src":"9480:29:14","value":{"arguments":[{"name":"pos","nativeSrc":"9499:3:14","nodeType":"YulIdentifier","src":"9499:3:14"},{"kind":"number","nativeSrc":"9504:4:14","nodeType":"YulLiteral","src":"9504:4:14","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9495:3:14","nodeType":"YulIdentifier","src":"9495:3:14"},"nativeSrc":"9495:14:14","nodeType":"YulFunctionCall","src":"9495:14:14"},"variableNames":[{"name":"updated_pos","nativeSrc":"9480:11:14","nodeType":"YulIdentifier","src":"9480:11:14"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"9347:168:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"9414:3:14","nodeType":"YulTypedName","src":"9414:3:14","type":""},{"name":"length","nativeSrc":"9419:6:14","nodeType":"YulTypedName","src":"9419:6:14","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"9430:11:14","nodeType":"YulTypedName","src":"9430:11:14","type":""}],"src":"9347:168:14"},{"body":{"nativeSrc":"9583:77:14","nodeType":"YulBlock","src":"9583:77:14","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"9600:3:14","nodeType":"YulIdentifier","src":"9600:3:14"},{"name":"src","nativeSrc":"9605:3:14","nodeType":"YulIdentifier","src":"9605:3:14"},{"name":"length","nativeSrc":"9610:6:14","nodeType":"YulIdentifier","src":"9610:6:14"}],"functionName":{"name":"mcopy","nativeSrc":"9594:5:14","nodeType":"YulIdentifier","src":"9594:5:14"},"nativeSrc":"9594:23:14","nodeType":"YulFunctionCall","src":"9594:23:14"},"nativeSrc":"9594:23:14","nodeType":"YulExpressionStatement","src":"9594:23:14"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"9637:3:14","nodeType":"YulIdentifier","src":"9637:3:14"},{"name":"length","nativeSrc":"9642:6:14","nodeType":"YulIdentifier","src":"9642:6:14"}],"functionName":{"name":"add","nativeSrc":"9633:3:14","nodeType":"YulIdentifier","src":"9633:3:14"},"nativeSrc":"9633:16:14","nodeType":"YulFunctionCall","src":"9633:16:14"},{"kind":"number","nativeSrc":"9651:1:14","nodeType":"YulLiteral","src":"9651:1:14","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"9626:6:14","nodeType":"YulIdentifier","src":"9626:6:14"},"nativeSrc":"9626:27:14","nodeType":"YulFunctionCall","src":"9626:27:14"},"nativeSrc":"9626:27:14","nodeType":"YulExpressionStatement","src":"9626:27:14"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"9521:139:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"9565:3:14","nodeType":"YulTypedName","src":"9565:3:14","type":""},{"name":"dst","nativeSrc":"9570:3:14","nodeType":"YulTypedName","src":"9570:3:14","type":""},{"name":"length","nativeSrc":"9575:6:14","nodeType":"YulTypedName","src":"9575:6:14","type":""}],"src":"9521:139:14"},{"body":{"nativeSrc":"9756:283:14","nodeType":"YulBlock","src":"9756:283:14","statements":[{"nativeSrc":"9766:52:14","nodeType":"YulVariableDeclaration","src":"9766:52:14","value":{"arguments":[{"name":"value","nativeSrc":"9812:5:14","nodeType":"YulIdentifier","src":"9812:5:14"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"9780:31:14","nodeType":"YulIdentifier","src":"9780:31:14"},"nativeSrc":"9780:38:14","nodeType":"YulFunctionCall","src":"9780:38:14"},"variables":[{"name":"length","nativeSrc":"9770:6:14","nodeType":"YulTypedName","src":"9770:6:14","type":""}]},{"nativeSrc":"9827:77:14","nodeType":"YulAssignment","src":"9827:77:14","value":{"arguments":[{"name":"pos","nativeSrc":"9892:3:14","nodeType":"YulIdentifier","src":"9892:3:14"},{"name":"length","nativeSrc":"9897:6:14","nodeType":"YulIdentifier","src":"9897:6:14"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"9834:57:14","nodeType":"YulIdentifier","src":"9834:57:14"},"nativeSrc":"9834:70:14","nodeType":"YulFunctionCall","src":"9834:70:14"},"variableNames":[{"name":"pos","nativeSrc":"9827:3:14","nodeType":"YulIdentifier","src":"9827:3:14"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9952:5:14","nodeType":"YulIdentifier","src":"9952:5:14"},{"kind":"number","nativeSrc":"9959:4:14","nodeType":"YulLiteral","src":"9959:4:14","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9948:3:14","nodeType":"YulIdentifier","src":"9948:3:14"},"nativeSrc":"9948:16:14","nodeType":"YulFunctionCall","src":"9948:16:14"},{"name":"pos","nativeSrc":"9966:3:14","nodeType":"YulIdentifier","src":"9966:3:14"},{"name":"length","nativeSrc":"9971:6:14","nodeType":"YulIdentifier","src":"9971:6:14"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"9913:34:14","nodeType":"YulIdentifier","src":"9913:34:14"},"nativeSrc":"9913:65:14","nodeType":"YulFunctionCall","src":"9913:65:14"},"nativeSrc":"9913:65:14","nodeType":"YulExpressionStatement","src":"9913:65:14"},{"nativeSrc":"9987:46:14","nodeType":"YulAssignment","src":"9987:46:14","value":{"arguments":[{"name":"pos","nativeSrc":"9998:3:14","nodeType":"YulIdentifier","src":"9998:3:14"},{"arguments":[{"name":"length","nativeSrc":"10025:6:14","nodeType":"YulIdentifier","src":"10025:6:14"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"10003:21:14","nodeType":"YulIdentifier","src":"10003:21:14"},"nativeSrc":"10003:29:14","nodeType":"YulFunctionCall","src":"10003:29:14"}],"functionName":{"name":"add","nativeSrc":"9994:3:14","nodeType":"YulIdentifier","src":"9994:3:14"},"nativeSrc":"9994:39:14","nodeType":"YulFunctionCall","src":"9994:39:14"},"variableNames":[{"name":"end","nativeSrc":"9987:3:14","nodeType":"YulIdentifier","src":"9987:3:14"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"9666:373:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9737:5:14","nodeType":"YulTypedName","src":"9737:5:14","type":""},{"name":"pos","nativeSrc":"9744:3:14","nodeType":"YulTypedName","src":"9744:3:14","type":""}],"returnVariables":[{"name":"end","nativeSrc":"9752:3:14","nodeType":"YulTypedName","src":"9752:3:14","type":""}],"src":"9666:373:14"},{"body":{"nativeSrc":"10189:275:14","nodeType":"YulBlock","src":"10189:275:14","statements":[{"nativeSrc":"10199:26:14","nodeType":"YulAssignment","src":"10199:26:14","value":{"arguments":[{"name":"headStart","nativeSrc":"10211:9:14","nodeType":"YulIdentifier","src":"10211:9:14"},{"kind":"number","nativeSrc":"10222:2:14","nodeType":"YulLiteral","src":"10222:2:14","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"10207:3:14","nodeType":"YulIdentifier","src":"10207:3:14"},"nativeSrc":"10207:18:14","nodeType":"YulFunctionCall","src":"10207:18:14"},"variableNames":[{"name":"tail","nativeSrc":"10199:4:14","nodeType":"YulIdentifier","src":"10199:4:14"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"10279:6:14","nodeType":"YulIdentifier","src":"10279:6:14"},{"arguments":[{"name":"headStart","nativeSrc":"10292:9:14","nodeType":"YulIdentifier","src":"10292:9:14"},{"kind":"number","nativeSrc":"10303:1:14","nodeType":"YulLiteral","src":"10303:1:14","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"10288:3:14","nodeType":"YulIdentifier","src":"10288:3:14"},"nativeSrc":"10288:17:14","nodeType":"YulFunctionCall","src":"10288:17:14"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"10235:43:14","nodeType":"YulIdentifier","src":"10235:43:14"},"nativeSrc":"10235:71:14","nodeType":"YulFunctionCall","src":"10235:71:14"},"nativeSrc":"10235:71:14","nodeType":"YulExpressionStatement","src":"10235:71:14"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10327:9:14","nodeType":"YulIdentifier","src":"10327:9:14"},{"kind":"number","nativeSrc":"10338:2:14","nodeType":"YulLiteral","src":"10338:2:14","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10323:3:14","nodeType":"YulIdentifier","src":"10323:3:14"},"nativeSrc":"10323:18:14","nodeType":"YulFunctionCall","src":"10323:18:14"},{"arguments":[{"name":"tail","nativeSrc":"10347:4:14","nodeType":"YulIdentifier","src":"10347:4:14"},{"name":"headStart","nativeSrc":"10353:9:14","nodeType":"YulIdentifier","src":"10353:9:14"}],"functionName":{"name":"sub","nativeSrc":"10343:3:14","nodeType":"YulIdentifier","src":"10343:3:14"},"nativeSrc":"10343:20:14","nodeType":"YulFunctionCall","src":"10343:20:14"}],"functionName":{"name":"mstore","nativeSrc":"10316:6:14","nodeType":"YulIdentifier","src":"10316:6:14"},"nativeSrc":"10316:48:14","nodeType":"YulFunctionCall","src":"10316:48:14"},"nativeSrc":"10316:48:14","nodeType":"YulExpressionStatement","src":"10316:48:14"},{"nativeSrc":"10373:84:14","nodeType":"YulAssignment","src":"10373:84:14","value":{"arguments":[{"name":"value1","nativeSrc":"10443:6:14","nodeType":"YulIdentifier","src":"10443:6:14"},{"name":"tail","nativeSrc":"10452:4:14","nodeType":"YulIdentifier","src":"10452:4:14"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"10381:61:14","nodeType":"YulIdentifier","src":"10381:61:14"},"nativeSrc":"10381:76:14","nodeType":"YulFunctionCall","src":"10381:76:14"},"variableNames":[{"name":"tail","nativeSrc":"10373:4:14","nodeType":"YulIdentifier","src":"10373:4:14"}]}]},"name":"abi_encode_tuple_t_address_t_bytes_memory_ptr__to_t_address_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"10045:419:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10153:9:14","nodeType":"YulTypedName","src":"10153:9:14","type":""},{"name":"value1","nativeSrc":"10165:6:14","nodeType":"YulTypedName","src":"10165:6:14","type":""},{"name":"value0","nativeSrc":"10173:6:14","nodeType":"YulTypedName","src":"10173:6:14","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"10184:4:14","nodeType":"YulTypedName","src":"10184:4:14","type":""}],"src":"10045:419:14"},{"body":{"nativeSrc":"10576:119:14","nodeType":"YulBlock","src":"10576:119:14","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"10598:6:14","nodeType":"YulIdentifier","src":"10598:6:14"},{"kind":"number","nativeSrc":"10606:1:14","nodeType":"YulLiteral","src":"10606:1:14","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"10594:3:14","nodeType":"YulIdentifier","src":"10594:3:14"},"nativeSrc":"10594:14:14","nodeType":"YulFunctionCall","src":"10594:14:14"},{"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061","kind":"string","nativeSrc":"10610:34:14","nodeType":"YulLiteral","src":"10610:34:14","type":"","value":"Ownable: new owner is the zero a"}],"functionName":{"name":"mstore","nativeSrc":"10587:6:14","nodeType":"YulIdentifier","src":"10587:6:14"},"nativeSrc":"10587:58:14","nodeType":"YulFunctionCall","src":"10587:58:14"},"nativeSrc":"10587:58:14","nodeType":"YulExpressionStatement","src":"10587:58:14"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"10666:6:14","nodeType":"YulIdentifier","src":"10666:6:14"},{"kind":"number","nativeSrc":"10674:2:14","nodeType":"YulLiteral","src":"10674:2:14","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10662:3:14","nodeType":"YulIdentifier","src":"10662:3:14"},"nativeSrc":"10662:15:14","nodeType":"YulFunctionCall","src":"10662:15:14"},{"hexValue":"646472657373","kind":"string","nativeSrc":"10679:8:14","nodeType":"YulLiteral","src":"10679:8:14","type":"","value":"ddress"}],"functionName":{"name":"mstore","nativeSrc":"10655:6:14","nodeType":"YulIdentifier","src":"10655:6:14"},"nativeSrc":"10655:33:14","nodeType":"YulFunctionCall","src":"10655:33:14"},"nativeSrc":"10655:33:14","nodeType":"YulExpressionStatement","src":"10655:33:14"}]},"name":"store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe","nativeSrc":"10470:225:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"10568:6:14","nodeType":"YulTypedName","src":"10568:6:14","type":""}],"src":"10470:225:14"},{"body":{"nativeSrc":"10847:220:14","nodeType":"YulBlock","src":"10847:220:14","statements":[{"nativeSrc":"10857:74:14","nodeType":"YulAssignment","src":"10857:74:14","value":{"arguments":[{"name":"pos","nativeSrc":"10923:3:14","nodeType":"YulIdentifier","src":"10923:3:14"},{"kind":"number","nativeSrc":"10928:2:14","nodeType":"YulLiteral","src":"10928:2:14","type":"","value":"38"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"10864:58:14","nodeType":"YulIdentifier","src":"10864:58:14"},"nativeSrc":"10864:67:14","nodeType":"YulFunctionCall","src":"10864:67:14"},"variableNames":[{"name":"pos","nativeSrc":"10857:3:14","nodeType":"YulIdentifier","src":"10857:3:14"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"11029:3:14","nodeType":"YulIdentifier","src":"11029:3:14"}],"functionName":{"name":"store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe","nativeSrc":"10940:88:14","nodeType":"YulIdentifier","src":"10940:88:14"},"nativeSrc":"10940:93:14","nodeType":"YulFunctionCall","src":"10940:93:14"},"nativeSrc":"10940:93:14","nodeType":"YulExpressionStatement","src":"10940:93:14"},{"nativeSrc":"11042:19:14","nodeType":"YulAssignment","src":"11042:19:14","value":{"arguments":[{"name":"pos","nativeSrc":"11053:3:14","nodeType":"YulIdentifier","src":"11053:3:14"},{"kind":"number","nativeSrc":"11058:2:14","nodeType":"YulLiteral","src":"11058:2:14","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11049:3:14","nodeType":"YulIdentifier","src":"11049:3:14"},"nativeSrc":"11049:12:14","nodeType":"YulFunctionCall","src":"11049:12:14"},"variableNames":[{"name":"end","nativeSrc":"11042:3:14","nodeType":"YulIdentifier","src":"11042:3:14"}]}]},"name":"abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack","nativeSrc":"10701:366:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"10835:3:14","nodeType":"YulTypedName","src":"10835:3:14","type":""}],"returnVariables":[{"name":"end","nativeSrc":"10843:3:14","nodeType":"YulTypedName","src":"10843:3:14","type":""}],"src":"10701:366:14"},{"body":{"nativeSrc":"11244:248:14","nodeType":"YulBlock","src":"11244:248:14","statements":[{"nativeSrc":"11254:26:14","nodeType":"YulAssignment","src":"11254:26:14","value":{"arguments":[{"name":"headStart","nativeSrc":"11266:9:14","nodeType":"YulIdentifier","src":"11266:9:14"},{"kind":"number","nativeSrc":"11277:2:14","nodeType":"YulLiteral","src":"11277:2:14","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11262:3:14","nodeType":"YulIdentifier","src":"11262:3:14"},"nativeSrc":"11262:18:14","nodeType":"YulFunctionCall","src":"11262:18:14"},"variableNames":[{"name":"tail","nativeSrc":"11254:4:14","nodeType":"YulIdentifier","src":"11254:4:14"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11301:9:14","nodeType":"YulIdentifier","src":"11301:9:14"},{"kind":"number","nativeSrc":"11312:1:14","nodeType":"YulLiteral","src":"11312:1:14","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"11297:3:14","nodeType":"YulIdentifier","src":"11297:3:14"},"nativeSrc":"11297:17:14","nodeType":"YulFunctionCall","src":"11297:17:14"},{"arguments":[{"name":"tail","nativeSrc":"11320:4:14","nodeType":"YulIdentifier","src":"11320:4:14"},{"name":"headStart","nativeSrc":"11326:9:14","nodeType":"YulIdentifier","src":"11326:9:14"}],"functionName":{"name":"sub","nativeSrc":"11316:3:14","nodeType":"YulIdentifier","src":"11316:3:14"},"nativeSrc":"11316:20:14","nodeType":"YulFunctionCall","src":"11316:20:14"}],"functionName":{"name":"mstore","nativeSrc":"11290:6:14","nodeType":"YulIdentifier","src":"11290:6:14"},"nativeSrc":"11290:47:14","nodeType":"YulFunctionCall","src":"11290:47:14"},"nativeSrc":"11290:47:14","nodeType":"YulExpressionStatement","src":"11290:47:14"},{"nativeSrc":"11346:139:14","nodeType":"YulAssignment","src":"11346:139:14","value":{"arguments":[{"name":"tail","nativeSrc":"11480:4:14","nodeType":"YulIdentifier","src":"11480:4:14"}],"functionName":{"name":"abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack","nativeSrc":"11354:124:14","nodeType":"YulIdentifier","src":"11354:124:14"},"nativeSrc":"11354:131:14","nodeType":"YulFunctionCall","src":"11354:131:14"},"variableNames":[{"name":"tail","nativeSrc":"11346:4:14","nodeType":"YulIdentifier","src":"11346:4:14"}]}]},"name":"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"11073:419:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11224:9:14","nodeType":"YulTypedName","src":"11224:9:14","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11239:4:14","nodeType":"YulTypedName","src":"11239:4:14","type":""}],"src":"11073:419:14"},{"body":{"nativeSrc":"11604:108:14","nodeType":"YulBlock","src":"11604:108:14","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"11626:6:14","nodeType":"YulIdentifier","src":"11626:6:14"},{"kind":"number","nativeSrc":"11634:1:14","nodeType":"YulLiteral","src":"11634:1:14","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"11622:3:14","nodeType":"YulIdentifier","src":"11622:3:14"},"nativeSrc":"11622:14:14","nodeType":"YulFunctionCall","src":"11622:14:14"},{"kind":"number","nativeSrc":"11638:66:14","nodeType":"YulLiteral","src":"11638:66:14","type":"","value":"0xf851a44000000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"mstore","nativeSrc":"11615:6:14","nodeType":"YulIdentifier","src":"11615:6:14"},"nativeSrc":"11615:90:14","nodeType":"YulFunctionCall","src":"11615:90:14"},"nativeSrc":"11615:90:14","nodeType":"YulExpressionStatement","src":"11615:90:14"}]},"name":"store_literal_in_memory_cb23cf6c353ccb16f0d92c8e6b5c5b425654e65dd07e2d295b394de4cf15afb7","nativeSrc":"11498:214:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"11596:6:14","nodeType":"YulTypedName","src":"11596:6:14","type":""}],"src":"11498:214:14"},{"body":{"nativeSrc":"11881:235:14","nodeType":"YulBlock","src":"11881:235:14","statements":[{"nativeSrc":"11891:90:14","nodeType":"YulAssignment","src":"11891:90:14","value":{"arguments":[{"name":"pos","nativeSrc":"11974:3:14","nodeType":"YulIdentifier","src":"11974:3:14"},{"kind":"number","nativeSrc":"11979:1:14","nodeType":"YulLiteral","src":"11979:1:14","type":"","value":"4"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"11898:75:14","nodeType":"YulIdentifier","src":"11898:75:14"},"nativeSrc":"11898:83:14","nodeType":"YulFunctionCall","src":"11898:83:14"},"variableNames":[{"name":"pos","nativeSrc":"11891:3:14","nodeType":"YulIdentifier","src":"11891:3:14"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"12079:3:14","nodeType":"YulIdentifier","src":"12079:3:14"}],"functionName":{"name":"store_literal_in_memory_cb23cf6c353ccb16f0d92c8e6b5c5b425654e65dd07e2d295b394de4cf15afb7","nativeSrc":"11990:88:14","nodeType":"YulIdentifier","src":"11990:88:14"},"nativeSrc":"11990:93:14","nodeType":"YulFunctionCall","src":"11990:93:14"},"nativeSrc":"11990:93:14","nodeType":"YulExpressionStatement","src":"11990:93:14"},{"nativeSrc":"12092:18:14","nodeType":"YulAssignment","src":"12092:18:14","value":{"arguments":[{"name":"pos","nativeSrc":"12103:3:14","nodeType":"YulIdentifier","src":"12103:3:14"},{"kind":"number","nativeSrc":"12108:1:14","nodeType":"YulLiteral","src":"12108:1:14","type":"","value":"4"}],"functionName":{"name":"add","nativeSrc":"12099:3:14","nodeType":"YulIdentifier","src":"12099:3:14"},"nativeSrc":"12099:11:14","nodeType":"YulFunctionCall","src":"12099:11:14"},"variableNames":[{"name":"end","nativeSrc":"12092:3:14","nodeType":"YulIdentifier","src":"12092:3:14"}]}]},"name":"abi_encode_t_stringliteral_cb23cf6c353ccb16f0d92c8e6b5c5b425654e65dd07e2d295b394de4cf15afb7_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"11718:398:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"11869:3:14","nodeType":"YulTypedName","src":"11869:3:14","type":""}],"returnVariables":[{"name":"end","nativeSrc":"11877:3:14","nodeType":"YulTypedName","src":"11877:3:14","type":""}],"src":"11718:398:14"},{"body":{"nativeSrc":"12310:191:14","nodeType":"YulBlock","src":"12310:191:14","statements":[{"nativeSrc":"12321:154:14","nodeType":"YulAssignment","src":"12321:154:14","value":{"arguments":[{"name":"pos","nativeSrc":"12471:3:14","nodeType":"YulIdentifier","src":"12471:3:14"}],"functionName":{"name":"abi_encode_t_stringliteral_cb23cf6c353ccb16f0d92c8e6b5c5b425654e65dd07e2d295b394de4cf15afb7_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"12328:141:14","nodeType":"YulIdentifier","src":"12328:141:14"},"nativeSrc":"12328:147:14","nodeType":"YulFunctionCall","src":"12328:147:14"},"variableNames":[{"name":"pos","nativeSrc":"12321:3:14","nodeType":"YulIdentifier","src":"12321:3:14"}]},{"nativeSrc":"12485:10:14","nodeType":"YulAssignment","src":"12485:10:14","value":{"name":"pos","nativeSrc":"12492:3:14","nodeType":"YulIdentifier","src":"12492:3:14"},"variableNames":[{"name":"end","nativeSrc":"12485:3:14","nodeType":"YulIdentifier","src":"12485:3:14"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_cb23cf6c353ccb16f0d92c8e6b5c5b425654e65dd07e2d295b394de4cf15afb7__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"12122:379:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"12297:3:14","nodeType":"YulTypedName","src":"12297:3:14","type":""}],"returnVariables":[{"name":"end","nativeSrc":"12306:3:14","nodeType":"YulTypedName","src":"12306:3:14","type":""}],"src":"12122:379:14"}]},"contents":"{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address_payable(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function cleanup_t_contract$_TransparentUpgradeableProxy_$863(value) -> cleaned {\n cleaned := cleanup_t_address_payable(value)\n }\n\n function validator_revert_t_contract$_TransparentUpgradeableProxy_$863(value) {\n if iszero(eq(value, cleanup_t_contract$_TransparentUpgradeableProxy_$863(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_contract$_TransparentUpgradeableProxy_$863(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_contract$_TransparentUpgradeableProxy_$863(value)\n }\n\n function abi_decode_tuple_t_contract$_TransparentUpgradeableProxy_$863(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_contract$_TransparentUpgradeableProxy_$863(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_contract$_TransparentUpgradeableProxy_$863t_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_contract$_TransparentUpgradeableProxy_$863(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_bytes_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_calldata_to_memory_with_cleanup(src, dst, length) {\n\n calldatacopy(dst, src, length)\n mstore(add(dst, length), 0)\n\n }\n\n function abi_decode_available_length_t_bytes_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_bytes_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_calldata_to_memory_with_cleanup(src, dst, length)\n }\n\n // bytes\n function abi_decode_t_bytes_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_bytes_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_contract$_TransparentUpgradeableProxy_$863t_addresst_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_contract$_TransparentUpgradeableProxy_$863(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value2 := abi_decode_t_bytes_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function store_literal_in_memory_96a4c6be7716f5be15d118c16bd1d464cb27f01187d0b9218993a5d488a47c29(memPtr) {\n\n mstore(add(memPtr, 0), 0x5c60da1b00000000000000000000000000000000000000000000000000000000)\n\n }\n\n function abi_encode_t_stringliteral_96a4c6be7716f5be15d118c16bd1d464cb27f01187d0b9218993a5d488a47c29_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, 4)\n store_literal_in_memory_96a4c6be7716f5be15d118c16bd1d464cb27f01187d0b9218993a5d488a47c29(pos)\n end := add(pos, 4)\n }\n\n function abi_encode_tuple_packed_t_stringliteral_96a4c6be7716f5be15d118c16bd1d464cb27f01187d0b9218993a5d488a47c29__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos ) -> end {\n\n pos := abi_encode_t_stringliteral_96a4c6be7716f5be15d118c16bd1d464cb27f01187d0b9218993a5d488a47c29_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n end := pos\n }\n\n function validator_revert_t_address_payable(value) {\n if iszero(eq(value, cleanup_t_address_payable(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address_payable_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_address_payable(value)\n }\n\n function abi_decode_tuple_t_address_payable_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address_payable_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe(memPtr) {\n\n mstore(add(memPtr, 0), \"Ownable: caller is not the owner\")\n\n }\n\n function abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 32)\n store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n mcopy(dst, src, length)\n mstore(add(dst, length), 0)\n\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_address_t_bytes_memory_ptr__to_t_address_t_bytes_memory_ptr__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n mstore(add(headStart, 32), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value1, tail)\n\n }\n\n function store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe(memPtr) {\n\n mstore(add(memPtr, 0), \"Ownable: new owner is the zero a\")\n\n mstore(add(memPtr, 32), \"ddress\")\n\n }\n\n function abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_cb23cf6c353ccb16f0d92c8e6b5c5b425654e65dd07e2d295b394de4cf15afb7(memPtr) {\n\n mstore(add(memPtr, 0), 0xf851a44000000000000000000000000000000000000000000000000000000000)\n\n }\n\n function abi_encode_t_stringliteral_cb23cf6c353ccb16f0d92c8e6b5c5b425654e65dd07e2d295b394de4cf15afb7_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, 4)\n store_literal_in_memory_cb23cf6c353ccb16f0d92c8e6b5c5b425654e65dd07e2d295b394de4cf15afb7(pos)\n end := add(pos, 4)\n }\n\n function abi_encode_tuple_packed_t_stringliteral_cb23cf6c353ccb16f0d92c8e6b5c5b425654e65dd07e2d295b394de4cf15afb7__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos ) -> end {\n\n pos := abi_encode_t_stringliteral_cb23cf6c353ccb16f0d92c8e6b5c5b425654e65dd07e2d295b394de4cf15afb7_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n end := pos\n }\n\n}\n","id":14,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405260043610610079575f3560e01c80639623609d1161004c5780639623609d1461010357806399a88ec414610116578063f2fde38b14610135578063f3b7dead14610154575f80fd5b8063204e1c7a1461007d578063715018a6146100b25780637eff275e146100c85780638da5cb5b146100e7575b5f80fd5b348015610088575f80fd5b5061009c610097366004610494565b610173565b6040516100a991906104c1565b60405180910390f35b3480156100bd575f80fd5b506100c66101f3565b005b3480156100d3575f80fd5b506100c66100e23660046104e3565b610230565b3480156100f2575f80fd5b505f546001600160a01b031661009c565b6100c661011136600461060f565b6102b6565b348015610121575f80fd5b506100c66101303660046104e3565b610342565b348015610140575f80fd5b506100c661014f366004610675565b610397565b34801561015f575f80fd5b5061009c61016e366004610494565b6103f2565b5f805f836001600160a01b031660405161018c906106a6565b5f60405180830381855afa9150503d805f81146101c4576040519150601f19603f3d011682016040523d82523d5f602084013e6101c9565b606091505b5091509150816101d7575f80fd5b808060200190518101906101eb91906106bb565b949350505050565b5f546001600160a01b031633146102255760405162461bcd60e51b815260040161021c906106d9565b60405180910390fd5b61022e5f61040b565b565b5f546001600160a01b031633146102595760405162461bcd60e51b815260040161021c906106d9565b6040516308f2839760e41b81526001600160a01b03831690638f283970906102859084906004016104c1565b5f604051808303815f87803b15801561029c575f80fd5b505af11580156102ae573d5f803e3d5ffd5b505050505050565b5f546001600160a01b031633146102df5760405162461bcd60e51b815260040161021c906106d9565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061030f908690869060040161074f565b5f604051808303818588803b158015610326575f80fd5b505af1158015610338573d5f803e3d5ffd5b5050505050505050565b5f546001600160a01b0316331461036b5760405162461bcd60e51b815260040161021c906106d9565b604051631b2ce7f360e11b81526001600160a01b03831690633659cfe6906102859084906004016104c1565b5f546001600160a01b031633146103c05760405162461bcd60e51b815260040161021c906106d9565b6001600160a01b0381166103e65760405162461bcd60e51b815260040161021c9061076f565b6103ef8161040b565b50565b5f805f836001600160a01b031660405161018c906107c9565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f6001600160a01b0382165b92915050565b5f6104668261045a565b61047f8161046c565b81146103ef575f80fd5b803561046681610476565b5f602082840312156104a7576104a75f80fd5b5f6101eb8484610489565b6104bb8161045a565b82525050565b6020810161046682846104b2565b61047f8161045a565b8035610466816104cf565b5f80604083850312156104f7576104f75f80fd5b5f6105028585610489565b9250506020610513858286016104d8565b9150509250929050565b634e487b7160e01b5f52604160045260245ffd5b601f19601f830116810181811067ffffffffffffffff821117156105575761055761051d565b6040525050565b5f61056860405190565b90506105748282610531565b919050565b5f67ffffffffffffffff8211156105925761059261051d565b601f19601f83011660200192915050565b82818337505f910152565b5f6105c06105bb84610579565b61055e565b9050828152602081018484840111156105da576105da5f80fd5b6105e58482856105a3565b509392505050565b5f82601f8301126105ff576105ff5f80fd5b81356101eb8482602086016105ae565b5f805f60608486031215610624576106245f80fd5b5f61062f8686610489565b9350506020610640868287016104d8565b925050604084013567ffffffffffffffff81111561065f5761065f5f80fd5b61066b868287016105ed565b9150509250925092565b5f60208284031215610688576106885f80fd5b5f6101eb84846104d8565b635c60da1b60e01b81525f5b5060040190565b5f61046682610693565b8051610466816104cf565b5f602082840312156106ce576106ce5f80fd5b5f6101eb84846106b0565b60208082528181019081527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604083015260608201610466565b8281835e505f910152565b5f610727825190565b80845260208401935061073e818560208601610713565b601f01601f19169290920192915050565b6040810161075d82856104b2565b81810360208301526101eb818461071e565b6020808252810161046681602681527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160208201526564647265737360d01b604082015260600190565b6303e1469160e61b81525f61069f565b5f610466826107b956fea264697066735822122052efb9a5616aadc832bd49eff728b329d78d855a8c605912f1e797370d8943ca64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x79 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x9623609D GT PUSH2 0x4C JUMPI DUP1 PUSH4 0x9623609D EQ PUSH2 0x103 JUMPI DUP1 PUSH4 0x99A88EC4 EQ PUSH2 0x116 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x135 JUMPI DUP1 PUSH4 0xF3B7DEAD EQ PUSH2 0x154 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x204E1C7A EQ PUSH2 0x7D JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0xB2 JUMPI DUP1 PUSH4 0x7EFF275E EQ PUSH2 0xC8 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0xE7 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x88 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x9C PUSH2 0x97 CALLDATASIZE PUSH1 0x4 PUSH2 0x494 JUMP JUMPDEST PUSH2 0x173 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x4C1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xBD JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0xC6 PUSH2 0x1F3 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xD3 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0xC6 PUSH2 0xE2 CALLDATASIZE PUSH1 0x4 PUSH2 0x4E3 JUMP JUMPDEST PUSH2 0x230 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xF2 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x9C JUMP JUMPDEST PUSH2 0xC6 PUSH2 0x111 CALLDATASIZE PUSH1 0x4 PUSH2 0x60F JUMP JUMPDEST PUSH2 0x2B6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x121 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0xC6 PUSH2 0x130 CALLDATASIZE PUSH1 0x4 PUSH2 0x4E3 JUMP JUMPDEST PUSH2 0x342 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x140 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0xC6 PUSH2 0x14F CALLDATASIZE PUSH1 0x4 PUSH2 0x675 JUMP JUMPDEST PUSH2 0x397 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x15F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x9C PUSH2 0x16E CALLDATASIZE PUSH1 0x4 PUSH2 0x494 JUMP JUMPDEST PUSH2 0x3F2 JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x40 MLOAD PUSH2 0x18C SWAP1 PUSH2 0x6A6 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS STATICCALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x1C4 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1C9 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0x1D7 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x1EB SWAP2 SWAP1 PUSH2 0x6BB JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x225 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x21C SWAP1 PUSH2 0x6D9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x22E PUSH0 PUSH2 0x40B JUMP JUMPDEST JUMP JUMPDEST PUSH0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x259 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x21C SWAP1 PUSH2 0x6D9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x8F28397 PUSH1 0xE4 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0x8F283970 SWAP1 PUSH2 0x285 SWAP1 DUP5 SWAP1 PUSH1 0x4 ADD PUSH2 0x4C1 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x29C JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2AE JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x2DF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x21C SWAP1 PUSH2 0x6D9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x278F7943 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH4 0x4F1EF286 SWAP1 CALLVALUE SWAP1 PUSH2 0x30F SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x74F JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x326 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x338 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x36B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x21C SWAP1 PUSH2 0x6D9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x1B2CE7F3 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0x3659CFE6 SWAP1 PUSH2 0x285 SWAP1 DUP5 SWAP1 PUSH1 0x4 ADD PUSH2 0x4C1 JUMP JUMPDEST PUSH0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x3C0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x21C SWAP1 PUSH2 0x6D9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x3E6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x21C SWAP1 PUSH2 0x76F JUMP JUMPDEST PUSH2 0x3EF DUP2 PUSH2 0x40B JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x40 MLOAD PUSH2 0x18C SWAP1 PUSH2 0x7C9 JUMP JUMPDEST PUSH0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x466 DUP3 PUSH2 0x45A JUMP JUMPDEST PUSH2 0x47F DUP2 PUSH2 0x46C JUMP JUMPDEST DUP2 EQ PUSH2 0x3EF JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x466 DUP2 PUSH2 0x476 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4A7 JUMPI PUSH2 0x4A7 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x1EB DUP5 DUP5 PUSH2 0x489 JUMP JUMPDEST PUSH2 0x4BB DUP2 PUSH2 0x45A JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x466 DUP3 DUP5 PUSH2 0x4B2 JUMP JUMPDEST PUSH2 0x47F DUP2 PUSH2 0x45A JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x466 DUP2 PUSH2 0x4CF JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x4F7 JUMPI PUSH2 0x4F7 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x502 DUP6 DUP6 PUSH2 0x489 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x513 DUP6 DUP3 DUP7 ADD PUSH2 0x4D8 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x557 JUMPI PUSH2 0x557 PUSH2 0x51D JUMP JUMPDEST PUSH1 0x40 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x568 PUSH1 0x40 MLOAD SWAP1 JUMP JUMPDEST SWAP1 POP PUSH2 0x574 DUP3 DUP3 PUSH2 0x531 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x592 JUMPI PUSH2 0x592 PUSH2 0x51D JUMP JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0x5C0 PUSH2 0x5BB DUP5 PUSH2 0x579 JUMP JUMPDEST PUSH2 0x55E JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x5DA JUMPI PUSH2 0x5DA PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x5E5 DUP5 DUP3 DUP6 PUSH2 0x5A3 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x5FF JUMPI PUSH2 0x5FF PUSH0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1EB DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x5AE JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x624 JUMPI PUSH2 0x624 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x62F DUP7 DUP7 PUSH2 0x489 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x640 DUP7 DUP3 DUP8 ADD PUSH2 0x4D8 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x65F JUMPI PUSH2 0x65F PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x66B DUP7 DUP3 DUP8 ADD PUSH2 0x5ED JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x688 JUMPI PUSH2 0x688 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x1EB DUP5 DUP5 PUSH2 0x4D8 JUMP JUMPDEST PUSH4 0x5C60DA1B PUSH1 0xE0 SHL DUP2 MSTORE PUSH0 JUMPDEST POP PUSH1 0x4 ADD SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x466 DUP3 PUSH2 0x693 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x466 DUP2 PUSH2 0x4CF JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x6CE JUMPI PUSH2 0x6CE PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x1EB DUP5 DUP5 PUSH2 0x6B0 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 DUP2 ADD SWAP1 DUP2 MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP3 ADD PUSH2 0x466 JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0x727 DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x73E DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x713 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x75D DUP3 DUP6 PUSH2 0x4B2 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x1EB DUP2 DUP5 PUSH2 0x71E JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x466 DUP2 PUSH1 0x26 DUP2 MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x20 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH4 0x3E14691 PUSH1 0xE6 SHL DUP2 MSTORE PUSH0 PUSH2 0x69F JUMP JUMPDEST PUSH0 PUSH2 0x466 DUP3 PUSH2 0x7B9 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 MSTORE 0xEF 0xB9 0xA5 PUSH2 0x6AAD 0xC8 ORIGIN 0xBD BLOBHASH 0xEF 0xF7 0x28 0xB3 0x29 0xD7 DUP14 DUP6 GAS DUP13 PUSH1 0x59 SLT CALL 0xE7 SWAP8 CALLDATACOPY 0xD DUP10 NUMBER 0xCA PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"435:2470:8:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;701:437;;;;;;;;;;-1:-1:-1;701:437:8;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1689:101:2;;;;;;;;;;;;;:::i;:::-;;1891:148:8;;;;;;;;;;-1:-1:-1;1891:148:8;;;;;:::i;:::-;;:::i;1057:85:2:-;;;;;;;;;;-1:-1:-1;1103:7:2;1129:6;-1:-1:-1;;;;;1129:6:2;1057:85;;2659:244:8;;;;;;:::i;:::-;;:::i;2244:149::-;;;;;;;;;;-1:-1:-1;2244:149:8;;;;;:::i;:::-;;:::i;1939:198:2:-;;;;;;;;;;-1:-1:-1;1939:198:2;;;;;:::i;:::-;;:::i;1298:419:8:-;;;;;;;;;;-1:-1:-1;1298:419:8;;;;;:::i;:::-;;:::i;701:437::-;797:7;974:12;988:23;1023:5;-1:-1:-1;;;;;1015:25:8;:40;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;973:82;;;;1073:7;1065:16;;;;;;1109:10;1098:33;;;;;;;;;;;;:::i;:::-;1091:40;701:437;-1:-1:-1;;;;701:437:8:o;1689:101:2:-;1103:7;1129:6;-1:-1:-1;;;;;1129:6:2;719:10:11;1269:23:2;1261:68;;;;-1:-1:-1;;;1261:68:2;;;;;;;:::i;:::-;;;;;;;;;1753:30:::1;1780:1;1753:18;:30::i;:::-;1689:101::o:0;1891:148:8:-;1103:7:2;1129:6;-1:-1:-1;;;;;1129:6:2;719:10:11;1269:23:2;1261:68;;;;-1:-1:-1;;;1261:68:2;;;;;;;:::i;:::-;2005:27:8::1;::::0;-1:-1:-1;;;2005:27:8;;-1:-1:-1;;;;;2005:17:8;::::1;::::0;::::1;::::0;:27:::1;::::0;2023:8;;2005:27:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;1891:148:::0;;:::o;2659:244::-;1103:7:2;1129:6;-1:-1:-1;;;;;1129:6:2;719:10:11;1269:23:2;1261:68;;;;-1:-1:-1;;;1261:68:2;;;;;;;:::i;:::-;2834:62:8::1;::::0;-1:-1:-1;;;2834:62:8;;-1:-1:-1;;;;;2834:22:8;::::1;::::0;::::1;::::0;2864:9:::1;::::0;2834:62:::1;::::0;2875:14;;2891:4;;2834:62:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;2659:244:::0;;;:::o;2244:149::-;1103:7:2;1129:6;-1:-1:-1;;;;;1129:6:2;719:10:11;1269:23:2;1261:68;;;;-1:-1:-1;;;1261:68:2;;;;;;;:::i;:::-;2355:31:8::1;::::0;-1:-1:-1;;;2355:31:8;;-1:-1:-1;;;;;2355:15:8;::::1;::::0;::::1;::::0;:31:::1;::::0;2371:14;;2355:31:::1;;;:::i;1939:198:2:-:0;1103:7;1129:6;-1:-1:-1;;;;;1129:6:2;719:10:11;1269:23:2;1261:68;;;;-1:-1:-1;;;1261:68:2;;;;;;;:::i;:::-;-1:-1:-1;;;;;2027:22:2;::::1;2019:73;;;;-1:-1:-1::0;;;2019:73:2::1;;;;;;;:::i;:::-;2102:28;2121:8;2102:18;:28::i;:::-;1939:198:::0;:::o;1298:419:8:-;1385:7;1553:12;1567:23;1602:5;-1:-1:-1;;;;;1594:25:8;:40;;;;;:::i;2291:187:2:-;2364:16;2383:6;;-1:-1:-1;;;;;2399:17:2;;;-1:-1:-1;;;;;;2399:17:2;;;;;;2431:40;;2383:6;;;;;;;2431:40;;2364:16;2431:40;2354:124;2291:187;:::o;466:104:14:-;511:7;-1:-1:-1;;;;;400:54:14;;540:24;529:35;466:104;-1:-1:-1;;466:104:14:o;576:139::-;648:7;677:32;703:5;677:32;:::i;721:192::-;829:59;882:5;829:59;:::i;:::-;822:5;819:70;809:98;;903:1;900;893:12;919:209;1025:20;;1054:68;1025:20;1054:68;:::i;1134:399::-;1228:6;1277:2;1265:9;1256:7;1252:23;1248:32;1245:119;;;1283:79;435:2470:8;;;1283:79:14;1403:1;1428:88;1508:7;1488:9;1428:88;:::i;1641:118::-;1728:24;1746:5;1728:24;:::i;:::-;1723:3;1716:37;1641:118;;:::o;1765:222::-;1896:2;1881:18;;1909:71;1885:9;1953:6;1909:71;:::i;1993:122::-;2066:24;2084:5;2066:24;:::i;2121:139::-;2192:20;;2221:33;2192:20;2221:33;:::i;2266:544::-;2369:6;2377;2426:2;2414:9;2405:7;2401:23;2397:32;2394:119;;;2432:79;435:2470:8;;;2432:79:14;2552:1;2577:88;2657:7;2637:9;2577:88;:::i;:::-;2567:98;;2523:152;2714:2;2740:53;2785:7;2776:6;2765:9;2761:22;2740:53;:::i;:::-;2730:63;;2685:118;2266:544;;;;;:::o;3170:180::-;-1:-1:-1;;;3215:1:14;3208:88;3315:4;3312:1;3305:15;3339:4;3336:1;3329:15;3356:281;-1:-1:-1;;3154:2:14;3134:14;;3130:28;3431:6;3427:40;3569:6;3557:10;3554:22;3533:18;3521:10;3518:34;3515:62;3512:88;;;3580:18;;:::i;:::-;3616:2;3609:22;-1:-1:-1;;3356:281:14:o;3643:129::-;3677:6;3704:20;73:2;67:9;;7:75;3704:20;3694:30;;3733:33;3761:4;3753:6;3733:33;:::i;:::-;3643:129;;;:::o;3778:307::-;3839:4;3929:18;3921:6;3918:30;3915:56;;;3951:18;;:::i;:::-;-1:-1:-1;;3154:2:14;3134:14;;3130:28;4073:4;4063:15;;3778:307;-1:-1:-1;;3778:307:14:o;4091:148::-;4189:6;4184:3;4179;4166:30;-1:-1:-1;4230:1:14;4212:16;;4205:27;4091:148::o;4245:423::-;4322:5;4347:65;4363:48;4404:6;4363:48;:::i;:::-;4347:65;:::i;:::-;4338:74;;4435:6;4428:5;4421:21;4473:4;4466:5;4462:16;4511:3;4502:6;4497:3;4493:16;4490:25;4487:112;;;4518:79;435:2470:8;;;4518:79:14;4608:54;4655:6;4650:3;4645;4608:54;:::i;:::-;4328:340;4245:423;;;;;:::o;4687:338::-;4742:5;4791:3;4784:4;4776:6;4772:17;4768:27;4758:122;;4799:79;435:2470:8;;;4799:79:14;4916:6;4903:20;4941:78;5015:3;5007:6;5000:4;4992:6;4988:17;4941:78;:::i;5031:867::-;5152:6;5160;5168;5217:2;5205:9;5196:7;5192:23;5188:32;5185:119;;;5223:79;435:2470:8;;;5223:79:14;5343:1;5368:88;5448:7;5428:9;5368:88;:::i;:::-;5358:98;;5314:152;5505:2;5531:53;5576:7;5567:6;5556:9;5552:22;5531:53;:::i;:::-;5521:63;;5476:118;5661:2;5650:9;5646:18;5633:32;5692:18;5684:6;5681:30;5678:117;;;5714:79;435:2470:8;;;5714:79:14;5819:62;5873:7;5864:6;5853:9;5849:22;5819:62;:::i;:::-;5809:72;;5604:287;5031:867;;;;;:::o;5904:329::-;5963:6;6012:2;6000:9;5991:7;5987:23;5983:32;5980:119;;;6018:79;435:2470:8;;;6018:79:14;6138:1;6163:53;6208:7;6188:9;6163:53;:::i;6612:398::-;-1:-1:-1;;;6509:90:14;;6771:3;6884:93;-1:-1:-1;7002:1:14;6993:11;;6612:398::o;7016:379::-;7200:3;7222:147;7365:3;7222:147;:::i;7545:159::-;7635:13;;7657:41;7635:13;7657:41;:::i;7710:367::-;7788:6;7837:2;7825:9;7816:7;7812:23;7808:32;7805:119;;;7843:79;435:2470:8;;;7843:79:14;7963:1;7988:72;8052:7;8032:9;7988:72;:::i;8818:419::-;9022:2;9035:47;;;9007:18;;;8189:19;;;8398:34;8232:14;;;8375:58;8794:12;;;9099:131;8446:366;9521:139;9610:6;9605:3;9600;9594:23;-1:-1:-1;9651:1:14;9633:16;;9626:27;9521:139::o;9666:373::-;9752:3;9780:38;9812:5;9322:12;;9243:98;9780:38;8189:19;;;8241:4;8232:14;;9827:77;;9913:65;9971:6;9966:3;9959:4;9952:5;9948:16;9913:65;:::i;:::-;3154:2;3134:14;-1:-1:-1;;3130:28:14;9994:39;;;;;;-1:-1:-1;;9666:373:14:o;10045:419::-;10222:2;10207:18;;10235:71;10211:9;10279:6;10235:71;:::i;:::-;10353:9;10347:4;10343:20;10338:2;10327:9;10323:18;10316:48;10381:76;10452:4;10443:6;10381:76;:::i;11073:419::-;11277:2;11290:47;;;11262:18;;11354:131;11262:18;10928:2;8189:19;;10610:34;8241:4;8232:14;;10587:58;-1:-1:-1;;;10662:15:14;;;10655:33;11049:12;;;10701:366;11718:398;-1:-1:-1;;;11615:90:14;;11877:3;11990:93;11498:214;12122:379;12306:3;12328:147;12471:3;12328:147;:::i"},"gasEstimates":{"creation":{"codeDepositCost":"411400","executionCost":"infinite","totalCost":"infinite"},"external":{"changeProxyAdmin(address,address)":"infinite","getProxyAdmin(address)":"infinite","getProxyImplementation(address)":"infinite","owner()":"infinite","renounceOwnership()":"28133","transferOwnership(address)":"infinite","upgrade(address,address)":"infinite","upgradeAndCall(address,address,bytes)":"infinite"}},"methodIdentifiers":{"changeProxyAdmin(address,address)":"7eff275e","getProxyAdmin(address)":"f3b7dead","getProxyImplementation(address)":"204e1c7a","owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b","upgrade(address,address)":"99a88ec4","upgradeAndCall(address,address,bytes)":"9623609d"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"initialOwner\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"contract TransparentUpgradeableProxy\",\"name\":\"proxy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"changeProxyAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract TransparentUpgradeableProxy\",\"name\":\"proxy\",\"type\":\"address\"}],\"name\":\"getProxyAdmin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract TransparentUpgradeableProxy\",\"name\":\"proxy\",\"type\":\"address\"}],\"name\":\"getProxyImplementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract TransparentUpgradeableProxy\",\"name\":\"proxy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"upgrade\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract TransparentUpgradeableProxy\",\"name\":\"proxy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"This is an auxiliary contract meant to be assigned as the admin of a {TransparentUpgradeableProxy}. For an explanation of why you would want to use this see the documentation for {TransparentUpgradeableProxy}.\",\"kind\":\"dev\",\"methods\":{\"changeProxyAdmin(address,address)\":{\"details\":\"Changes the admin of `proxy` to `newAdmin`. Requirements: - This contract must be the current admin of `proxy`.\"},\"getProxyAdmin(address)\":{\"details\":\"Returns the current admin of `proxy`. Requirements: - This contract must be the admin of `proxy`.\"},\"getProxyImplementation(address)\":{\"details\":\"Returns the current implementation of `proxy`. Requirements: - This contract must be the admin of `proxy`.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"upgrade(address,address)\":{\"details\":\"Upgrades `proxy` to `implementation`. See {TransparentUpgradeableProxy-upgradeTo}. Requirements: - This contract must be the admin of `proxy`.\"},\"upgradeAndCall(address,address,bytes)\":{\"details\":\"Upgrades `proxy` to `implementation` and calls a function on the new implementation. See {TransparentUpgradeableProxy-upgradeToAndCall}. Requirements: - This contract must be the admin of `proxy`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/ProxyAdmin.sol\":\"ProxyAdmin\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"hardhat-deploy/solc_0.8/openzeppelin/access/Ownable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (access/Ownable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../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 * By default, the owner account will be the one that deploys the contract. This\\n * can 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 event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n /**\\n * @dev Initializes the contract setting the deployer as the initial owner.\\n */\\n constructor (address initialOwner) {\\n _transferOwnership(initialOwner);\\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 called by any account other than the owner.\\n */\\n modifier onlyOwner() {\\n require(owner() == _msgSender(), \\\"Ownable: caller is not the owner\\\");\\n _;\\n }\\n\\n /**\\n * @dev Leaves the contract without owner. It will not be possible to call\\n * `onlyOwner` functions anymore. Can only be called by the current owner.\\n *\\n * NOTE: Renouncing ownership will leave the contract without an owner,\\n * thereby removing 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 require(newOwner != address(0), \\\"Ownable: new owner is the zero address\\\");\\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\",\"keccak256\":\"0x9b2bbba5bb04f53f277739c1cdff896ba8b3bf591cfc4eab2098c655e8ac251e\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/interfaces/draft-IERC1822.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (interfaces/draft-IERC1822.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev ERC1822: Universal Upgradeable Proxy Standard (UUPS) documents a method for upgradeability through a simplified\\n * proxy whose upgrades are fully controlled by the current implementation.\\n */\\ninterface IERC1822Proxiable {\\n /**\\n * @dev Returns the storage slot that the proxiable contract assumes is being used to store the implementation\\n * address.\\n *\\n * IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks\\n * bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this\\n * function revert if invoked through a proxy.\\n */\\n function proxiableUUID() external view returns (bytes32);\\n}\\n\",\"keccak256\":\"0x93b4e21c931252739a1ec13ea31d3d35a5c068be3163ccab83e4d70c40355f03\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Proxy.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (proxy/ERC1967/ERC1967Proxy.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../Proxy.sol\\\";\\nimport \\\"./ERC1967Upgrade.sol\\\";\\n\\n/**\\n * @dev This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an\\n * implementation address that can be changed. This address is stored in storage in the location specified by\\n * https://eips.ethereum.org/EIPS/eip-1967[EIP1967], so that it doesn't conflict with the storage layout of the\\n * implementation behind the proxy.\\n */\\ncontract ERC1967Proxy is Proxy, ERC1967Upgrade {\\n /**\\n * @dev Initializes the upgradeable proxy with an initial implementation specified by `_logic`.\\n *\\n * If `_data` is nonempty, it's used as data in a delegate call to `_logic`. This will typically be an encoded\\n * function call, and allows initializating the storage of the proxy like a Solidity constructor.\\n */\\n constructor(address _logic, bytes memory _data) payable {\\n assert(_IMPLEMENTATION_SLOT == bytes32(uint256(keccak256(\\\"eip1967.proxy.implementation\\\")) - 1));\\n _upgradeToAndCall(_logic, _data, false);\\n }\\n\\n /**\\n * @dev Returns the current implementation address.\\n */\\n function _implementation() internal view virtual override returns (address impl) {\\n return ERC1967Upgrade._getImplementation();\\n }\\n}\\n\",\"keccak256\":\"0x6309f9f39dc6f4f45a24f296543867aa358e32946cd6b2874627a996d606b3a0\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Upgrade.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (proxy/ERC1967/ERC1967Upgrade.sol)\\n\\npragma solidity ^0.8.2;\\n\\nimport \\\"../beacon/IBeacon.sol\\\";\\nimport \\\"../../interfaces/draft-IERC1822.sol\\\";\\nimport \\\"../../utils/Address.sol\\\";\\nimport \\\"../../utils/StorageSlot.sol\\\";\\n\\n/**\\n * @dev This abstract contract provides getters and event emitting update functions for\\n * https://eips.ethereum.org/EIPS/eip-1967[EIP1967] slots.\\n *\\n * _Available since v4.1._\\n *\\n * @custom:oz-upgrades-unsafe-allow delegatecall\\n */\\nabstract contract ERC1967Upgrade {\\n // This is the keccak-256 hash of \\\"eip1967.proxy.rollback\\\" subtracted by 1\\n bytes32 private constant _ROLLBACK_SLOT = 0x4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143;\\n\\n /**\\n * @dev Storage slot with the address of the current implementation.\\n * This is the keccak-256 hash of \\\"eip1967.proxy.implementation\\\" subtracted by 1, and is\\n * validated in the constructor.\\n */\\n bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\\n\\n /**\\n * @dev Emitted when the implementation is upgraded.\\n */\\n event Upgraded(address indexed implementation);\\n\\n /**\\n * @dev Returns the current implementation address.\\n */\\n function _getImplementation() internal view returns (address) {\\n return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\\n }\\n\\n /**\\n * @dev Stores a new address in the EIP1967 implementation slot.\\n */\\n function _setImplementation(address newImplementation) private {\\n require(Address.isContract(newImplementation), \\\"ERC1967: new implementation is not a contract\\\");\\n StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\\n }\\n\\n /**\\n * @dev Perform implementation upgrade\\n *\\n * Emits an {Upgraded} event.\\n */\\n function _upgradeTo(address newImplementation) internal {\\n _setImplementation(newImplementation);\\n emit Upgraded(newImplementation);\\n }\\n\\n /**\\n * @dev Perform implementation upgrade with additional setup call.\\n *\\n * Emits an {Upgraded} event.\\n */\\n function _upgradeToAndCall(\\n address newImplementation,\\n bytes memory data,\\n bool forceCall\\n ) internal {\\n _upgradeTo(newImplementation);\\n if (data.length > 0 || forceCall) {\\n Address.functionDelegateCall(newImplementation, data);\\n }\\n }\\n\\n /**\\n * @dev Perform implementation upgrade with security checks for UUPS proxies, and additional setup call.\\n *\\n * Emits an {Upgraded} event.\\n */\\n function _upgradeToAndCallUUPS(\\n address newImplementation,\\n bytes memory data,\\n bool forceCall\\n ) internal {\\n // Upgrades from old implementations will perform a rollback test. This test requires the new\\n // implementation to upgrade back to the old, non-ERC1822 compliant, implementation. Removing\\n // this special case will break upgrade paths from old UUPS implementation to new ones.\\n if (StorageSlot.getBooleanSlot(_ROLLBACK_SLOT).value) {\\n _setImplementation(newImplementation);\\n } else {\\n try IERC1822Proxiable(newImplementation).proxiableUUID() returns (bytes32 slot) {\\n require(slot == _IMPLEMENTATION_SLOT, \\\"ERC1967Upgrade: unsupported proxiableUUID\\\");\\n } catch {\\n revert(\\\"ERC1967Upgrade: new implementation is not UUPS\\\");\\n }\\n _upgradeToAndCall(newImplementation, data, forceCall);\\n }\\n }\\n\\n /**\\n * @dev Storage slot with the admin of the contract.\\n * This is the keccak-256 hash of \\\"eip1967.proxy.admin\\\" subtracted by 1, and is\\n * validated in the constructor.\\n */\\n bytes32 internal constant _ADMIN_SLOT = 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103;\\n\\n /**\\n * @dev Emitted when the admin account has changed.\\n */\\n event AdminChanged(address previousAdmin, address newAdmin);\\n\\n /**\\n * @dev Returns the current admin.\\n */\\n function _getAdmin() internal view virtual returns (address) {\\n return StorageSlot.getAddressSlot(_ADMIN_SLOT).value;\\n }\\n\\n /**\\n * @dev Stores a new address in the EIP1967 admin slot.\\n */\\n function _setAdmin(address newAdmin) private {\\n require(newAdmin != address(0), \\\"ERC1967: new admin is the zero address\\\");\\n StorageSlot.getAddressSlot(_ADMIN_SLOT).value = newAdmin;\\n }\\n\\n /**\\n * @dev Changes the admin of the proxy.\\n *\\n * Emits an {AdminChanged} event.\\n */\\n function _changeAdmin(address newAdmin) internal {\\n emit AdminChanged(_getAdmin(), newAdmin);\\n _setAdmin(newAdmin);\\n }\\n\\n /**\\n * @dev The storage slot of the UpgradeableBeacon contract which defines the implementation for this proxy.\\n * This is bytes32(uint256(keccak256('eip1967.proxy.beacon')) - 1)) and is validated in the constructor.\\n */\\n bytes32 internal constant _BEACON_SLOT = 0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50;\\n\\n /**\\n * @dev Emitted when the beacon is upgraded.\\n */\\n event BeaconUpgraded(address indexed beacon);\\n\\n /**\\n * @dev Returns the current beacon.\\n */\\n function _getBeacon() internal view returns (address) {\\n return StorageSlot.getAddressSlot(_BEACON_SLOT).value;\\n }\\n\\n /**\\n * @dev Stores a new beacon in the EIP1967 beacon slot.\\n */\\n function _setBeacon(address newBeacon) private {\\n require(Address.isContract(newBeacon), \\\"ERC1967: new beacon is not a contract\\\");\\n require(Address.isContract(IBeacon(newBeacon).implementation()), \\\"ERC1967: beacon implementation is not a contract\\\");\\n StorageSlot.getAddressSlot(_BEACON_SLOT).value = newBeacon;\\n }\\n\\n /**\\n * @dev Perform beacon upgrade with additional setup call. Note: This upgrades the address of the beacon, it does\\n * not upgrade the implementation contained in the beacon (see {UpgradeableBeacon-_setImplementation} for that).\\n *\\n * Emits a {BeaconUpgraded} event.\\n */\\n function _upgradeBeaconToAndCall(\\n address newBeacon,\\n bytes memory data,\\n bool forceCall\\n ) internal {\\n _setBeacon(newBeacon);\\n emit BeaconUpgraded(newBeacon);\\n if (data.length > 0 || forceCall) {\\n Address.functionDelegateCall(IBeacon(newBeacon).implementation(), data);\\n }\\n }\\n}\\n\",\"keccak256\":\"0x17668652127feebed0ce8d9431ef95ccc8c4292f03e3b8cf06c6ca16af396633\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/proxy/Proxy.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (proxy/Proxy.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev This abstract contract provides a fallback function that delegates all calls to another contract using the EVM\\n * instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to\\n * be specified by overriding the virtual {_implementation} function.\\n *\\n * Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a\\n * different contract through the {_delegate} function.\\n *\\n * The success and return data of the delegated call will be returned back to the caller of the proxy.\\n */\\nabstract contract Proxy {\\n /**\\n * @dev Delegates the current call to `implementation`.\\n *\\n * This function does not return to its internal call site, it will return directly to the external caller.\\n */\\n function _delegate(address implementation) internal virtual {\\n assembly {\\n // Copy msg.data. We take full control of memory in this inline assembly\\n // block because it will not return to Solidity code. We overwrite the\\n // Solidity scratch pad at memory position 0.\\n calldatacopy(0, 0, calldatasize())\\n\\n // Call the implementation.\\n // out and outsize are 0 because we don't know the size yet.\\n let result := delegatecall(gas(), implementation, 0, calldatasize(), 0, 0)\\n\\n // Copy the returned data.\\n returndatacopy(0, 0, returndatasize())\\n\\n switch result\\n // delegatecall returns 0 on error.\\n case 0 {\\n revert(0, returndatasize())\\n }\\n default {\\n return(0, returndatasize())\\n }\\n }\\n }\\n\\n /**\\n * @dev This is a virtual function that should be overriden so it returns the address to which the fallback function\\n * and {_fallback} should delegate.\\n */\\n function _implementation() internal view virtual returns (address);\\n\\n /**\\n * @dev Delegates the current call to the address returned by `_implementation()`.\\n *\\n * This function does not return to its internall call site, it will return directly to the external caller.\\n */\\n function _fallback() internal virtual {\\n _beforeFallback();\\n _delegate(_implementation());\\n }\\n\\n /**\\n * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if no other\\n * function in the contract matches the call data.\\n */\\n fallback() external payable virtual {\\n _fallback();\\n }\\n\\n /**\\n * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if call data\\n * is empty.\\n */\\n receive() external payable virtual {\\n _fallback();\\n }\\n\\n /**\\n * @dev Hook that is called before falling back to the implementation. Can happen as part of a manual `_fallback`\\n * call, or as part of the Solidity `fallback` or `receive` functions.\\n *\\n * If overriden should call `super._beforeFallback()`.\\n */\\n function _beforeFallback() internal virtual {}\\n}\\n\",\"keccak256\":\"0xd5d1fd16e9faff7fcb3a52e02a8d49156f42a38a03f07b5f1810c21c2149a8ab\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/proxy/beacon/IBeacon.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (proxy/beacon/IBeacon.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev This is the interface that {BeaconProxy} expects of its beacon.\\n */\\ninterface IBeacon {\\n /**\\n * @dev Must return an address that can be used as a delegate call target.\\n *\\n * {BeaconProxy} will check that this address is a contract.\\n */\\n function implementation() external view returns (address);\\n}\\n\",\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/ProxyAdmin.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (proxy/transparent/ProxyAdmin.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./TransparentUpgradeableProxy.sol\\\";\\nimport \\\"../../access/Ownable.sol\\\";\\n\\n/**\\n * @dev This is an auxiliary contract meant to be assigned as the admin of a {TransparentUpgradeableProxy}. For an\\n * explanation of why you would want to use this see the documentation for {TransparentUpgradeableProxy}.\\n */\\ncontract ProxyAdmin is Ownable {\\n\\n constructor (address initialOwner) Ownable(initialOwner) {}\\n\\n /**\\n * @dev Returns the current implementation of `proxy`.\\n *\\n * Requirements:\\n *\\n * - This contract must be the admin of `proxy`.\\n */\\n function getProxyImplementation(TransparentUpgradeableProxy proxy) public view virtual returns (address) {\\n // We need to manually run the static call since the getter cannot be flagged as view\\n // bytes4(keccak256(\\\"implementation()\\\")) == 0x5c60da1b\\n (bool success, bytes memory returndata) = address(proxy).staticcall(hex\\\"5c60da1b\\\");\\n require(success);\\n return abi.decode(returndata, (address));\\n }\\n\\n /**\\n * @dev Returns the current admin of `proxy`.\\n *\\n * Requirements:\\n *\\n * - This contract must be the admin of `proxy`.\\n */\\n function getProxyAdmin(TransparentUpgradeableProxy proxy) public view virtual returns (address) {\\n // We need to manually run the static call since the getter cannot be flagged as view\\n // bytes4(keccak256(\\\"admin()\\\")) == 0xf851a440\\n (bool success, bytes memory returndata) = address(proxy).staticcall(hex\\\"f851a440\\\");\\n require(success);\\n return abi.decode(returndata, (address));\\n }\\n\\n /**\\n * @dev Changes the admin of `proxy` to `newAdmin`.\\n *\\n * Requirements:\\n *\\n * - This contract must be the current admin of `proxy`.\\n */\\n function changeProxyAdmin(TransparentUpgradeableProxy proxy, address newAdmin) public virtual onlyOwner {\\n proxy.changeAdmin(newAdmin);\\n }\\n\\n /**\\n * @dev Upgrades `proxy` to `implementation`. See {TransparentUpgradeableProxy-upgradeTo}.\\n *\\n * Requirements:\\n *\\n * - This contract must be the admin of `proxy`.\\n */\\n function upgrade(TransparentUpgradeableProxy proxy, address implementation) public virtual onlyOwner {\\n proxy.upgradeTo(implementation);\\n }\\n\\n /**\\n * @dev Upgrades `proxy` to `implementation` and calls a function on the new implementation. See\\n * {TransparentUpgradeableProxy-upgradeToAndCall}.\\n *\\n * Requirements:\\n *\\n * - This contract must be the admin of `proxy`.\\n */\\n function upgradeAndCall(\\n TransparentUpgradeableProxy proxy,\\n address implementation,\\n bytes memory data\\n ) public payable virtual onlyOwner {\\n proxy.upgradeToAndCall{value: msg.value}(implementation, data);\\n }\\n}\\n\",\"keccak256\":\"0x754888b9c9ab5525343460b0a4fa2e2f4fca9b6a7e0e7ddea4154e2b1182a45d\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/TransparentUpgradeableProxy.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (proxy/transparent/TransparentUpgradeableProxy.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../ERC1967/ERC1967Proxy.sol\\\";\\n\\n/**\\n * @dev This contract implements a proxy that is upgradeable by an admin.\\n *\\n * To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector\\n * clashing], which can potentially be used in an attack, this contract uses the\\n * https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two\\n * things that go hand in hand:\\n *\\n * 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if\\n * that call matches one of the admin functions exposed by the proxy itself.\\n * 2. If the admin calls the proxy, it can access the admin functions, but its calls will never be forwarded to the\\n * implementation. If the admin tries to call a function on the implementation it will fail with an error that says\\n * \\\"admin cannot fallback to proxy target\\\".\\n *\\n * These properties mean that the admin account can only be used for admin actions like upgrading the proxy or changing\\n * the admin, so it's best if it's a dedicated account that is not used for anything else. This will avoid headaches due\\n * to sudden errors when trying to call a function from the proxy implementation.\\n *\\n * Our recommendation is for the dedicated account to be an instance of the {ProxyAdmin} contract. If set up this way,\\n * you should think of the `ProxyAdmin` instance as the real administrative interface of your proxy.\\n */\\ncontract TransparentUpgradeableProxy is ERC1967Proxy {\\n /**\\n * @dev Initializes an upgradeable proxy managed by `_admin`, backed by the implementation at `_logic`, and\\n * optionally initialized with `_data` as explained in {ERC1967Proxy-constructor}.\\n */\\n constructor(\\n address _logic,\\n address admin_,\\n bytes memory _data\\n ) payable ERC1967Proxy(_logic, _data) {\\n assert(_ADMIN_SLOT == bytes32(uint256(keccak256(\\\"eip1967.proxy.admin\\\")) - 1));\\n _changeAdmin(admin_);\\n }\\n\\n /**\\n * @dev Modifier used internally that will delegate the call to the implementation unless the sender is the admin.\\n */\\n modifier ifAdmin() {\\n if (msg.sender == _getAdmin()) {\\n _;\\n } else {\\n _fallback();\\n }\\n }\\n\\n /**\\n * @dev Returns the current admin.\\n *\\n * NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyAdmin}.\\n *\\n * TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the\\n * https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\\n * `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103`\\n */\\n function admin() external ifAdmin returns (address admin_) {\\n admin_ = _getAdmin();\\n }\\n\\n /**\\n * @dev Returns the current implementation.\\n *\\n * NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyImplementation}.\\n *\\n * TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the\\n * https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\\n * `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc`\\n */\\n function implementation() external ifAdmin returns (address implementation_) {\\n implementation_ = _implementation();\\n }\\n\\n /**\\n * @dev Changes the admin of the proxy.\\n *\\n * Emits an {AdminChanged} event.\\n *\\n * NOTE: Only the admin can call this function. See {ProxyAdmin-changeProxyAdmin}.\\n */\\n function changeAdmin(address newAdmin) external virtual ifAdmin {\\n _changeAdmin(newAdmin);\\n }\\n\\n /**\\n * @dev Upgrade the implementation of the proxy.\\n *\\n * NOTE: Only the admin can call this function. See {ProxyAdmin-upgrade}.\\n */\\n function upgradeTo(address newImplementation) external ifAdmin {\\n _upgradeToAndCall(newImplementation, bytes(\\\"\\\"), false);\\n }\\n\\n /**\\n * @dev Upgrade the implementation of the proxy, and then call a function from the new implementation as specified\\n * by `data`, which should be an encoded function call. This is useful to initialize new storage variables in the\\n * proxied contract.\\n *\\n * NOTE: Only the admin can call this function. See {ProxyAdmin-upgradeAndCall}.\\n */\\n function upgradeToAndCall(address newImplementation, bytes calldata data) external payable ifAdmin {\\n _upgradeToAndCall(newImplementation, data, true);\\n }\\n\\n /**\\n * @dev Returns the current admin.\\n */\\n function _admin() internal view virtual returns (address) {\\n return _getAdmin();\\n }\\n\\n /**\\n * @dev Makes sure the admin cannot access the fallback function. See {Proxy-_beforeFallback}.\\n */\\n function _beforeFallback() internal virtual override {\\n require(msg.sender != _getAdmin(), \\\"TransparentUpgradeableProxy: admin cannot fallback to proxy target\\\");\\n super._beforeFallback();\\n }\\n}\\n\",\"keccak256\":\"0x140055a64cf579d622e04f5a198595832bf2cb193cd0005f4f2d4d61ca906253\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/utils/Address.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (utils/Address.sol)\\n\\npragma solidity ^0.8.1;\\n\\n/**\\n * @dev Collection of functions related to the address type\\n */\\nlibrary Address {\\n /**\\n * @dev Returns true if `account` is a contract.\\n *\\n * [IMPORTANT]\\n * ====\\n * It is unsafe to assume that an address for which this function returns\\n * false is an externally-owned account (EOA) and not a contract.\\n *\\n * Among others, `isContract` will return false for the following\\n * types of addresses:\\n *\\n * - an externally-owned account\\n * - a contract in construction\\n * - an address where a contract will be created\\n * - an address where a contract lived, but was destroyed\\n * ====\\n *\\n * [IMPORTANT]\\n * ====\\n * You shouldn't rely on `isContract` to protect against flash loan attacks!\\n *\\n * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\\n * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\\n * constructor.\\n * ====\\n */\\n function isContract(address account) internal view returns (bool) {\\n // This method relies on extcodesize/address.code.length, which returns 0\\n // for contracts in construction, since the code is only stored at the end\\n // of the constructor execution.\\n\\n return account.code.length > 0;\\n }\\n\\n /**\\n * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\\n * `recipient`, forwarding all available gas and reverting on errors.\\n *\\n * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\\n * of certain opcodes, possibly making contracts go over the 2300 gas limit\\n * imposed by `transfer`, making them unable to receive funds via\\n * `transfer`. {sendValue} removes this limitation.\\n *\\n * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\\n *\\n * IMPORTANT: because control is transferred to `recipient`, care must be\\n * taken to not create reentrancy vulnerabilities. Consider using\\n * {ReentrancyGuard} or the\\n * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\\n */\\n function sendValue(address payable recipient, uint256 amount) internal {\\n require(address(this).balance >= amount, \\\"Address: insufficient balance\\\");\\n\\n (bool success, ) = recipient.call{value: amount}(\\\"\\\");\\n require(success, \\\"Address: unable to send value, recipient may have reverted\\\");\\n }\\n\\n /**\\n * @dev Performs a Solidity function call using a low level `call`. A\\n * plain `call` is an unsafe replacement for a function call: use this\\n * function instead.\\n *\\n * If `target` reverts with a revert reason, it is bubbled up by this\\n * function (like regular Solidity function calls).\\n *\\n * Returns the raw returned data. To convert to the expected return value,\\n * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\\n *\\n * Requirements:\\n *\\n * - `target` must be a contract.\\n * - calling `target` with `data` must not revert.\\n *\\n * _Available since v3.1._\\n */\\n function functionCall(address target, bytes memory data) internal returns (bytes memory) {\\n return functionCall(target, data, \\\"Address: low-level call failed\\\");\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\\n * `errorMessage` as a fallback revert reason when `target` reverts.\\n *\\n * _Available since v3.1._\\n */\\n function functionCall(\\n address target,\\n bytes memory data,\\n string memory errorMessage\\n ) internal returns (bytes memory) {\\n return functionCallWithValue(target, data, 0, errorMessage);\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n * but also transferring `value` wei to `target`.\\n *\\n * Requirements:\\n *\\n * - the calling contract must have an ETH balance of at least `value`.\\n * - the called Solidity function must be `payable`.\\n *\\n * _Available since v3.1._\\n */\\n function functionCallWithValue(\\n address target,\\n bytes memory data,\\n uint256 value\\n ) internal returns (bytes memory) {\\n return functionCallWithValue(target, data, value, \\\"Address: low-level call with value failed\\\");\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\\n * with `errorMessage` as a fallback revert reason when `target` reverts.\\n *\\n * _Available since v3.1._\\n */\\n function functionCallWithValue(\\n address target,\\n bytes memory data,\\n uint256 value,\\n string memory errorMessage\\n ) internal returns (bytes memory) {\\n require(address(this).balance >= value, \\\"Address: insufficient balance for call\\\");\\n require(isContract(target), \\\"Address: call to non-contract\\\");\\n\\n (bool success, bytes memory returndata) = target.call{value: value}(data);\\n return verifyCallResult(success, returndata, errorMessage);\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n * but performing a static call.\\n *\\n * _Available since v3.3._\\n */\\n function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\\n return functionStaticCall(target, data, \\\"Address: low-level static call failed\\\");\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n * but performing a static call.\\n *\\n * _Available since v3.3._\\n */\\n function functionStaticCall(\\n address target,\\n bytes memory data,\\n string memory errorMessage\\n ) internal view returns (bytes memory) {\\n require(isContract(target), \\\"Address: static call to non-contract\\\");\\n\\n (bool success, bytes memory returndata) = target.staticcall(data);\\n return verifyCallResult(success, returndata, errorMessage);\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n * but performing a delegate call.\\n *\\n * _Available since v3.4._\\n */\\n function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\\n return functionDelegateCall(target, data, \\\"Address: low-level delegate call failed\\\");\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n * but performing a delegate call.\\n *\\n * _Available since v3.4._\\n */\\n function functionDelegateCall(\\n address target,\\n bytes memory data,\\n string memory errorMessage\\n ) internal returns (bytes memory) {\\n require(isContract(target), \\\"Address: delegate call to non-contract\\\");\\n\\n (bool success, bytes memory returndata) = target.delegatecall(data);\\n return verifyCallResult(success, returndata, errorMessage);\\n }\\n\\n /**\\n * @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the\\n * revert reason using the provided one.\\n *\\n * _Available since v4.3._\\n */\\n function verifyCallResult(\\n bool success,\\n bytes memory returndata,\\n string memory errorMessage\\n ) internal pure returns (bytes memory) {\\n if (success) {\\n return returndata;\\n } else {\\n // Look for revert reason and bubble it up if present\\n if (returndata.length > 0) {\\n // The easiest way to bubble the revert reason is using memory via assembly\\n\\n assembly {\\n let returndata_size := mload(returndata)\\n revert(add(32, returndata), returndata_size)\\n }\\n } else {\\n revert(errorMessage);\\n }\\n }\\n }\\n}\\n\",\"keccak256\":\"0x3777e696b62134e6177440dbe6e6601c0c156a443f57167194b67e75527439de\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\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\",\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/utils/StorageSlot.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/StorageSlot.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Library for reading and writing primitive types to specific storage slots.\\n *\\n * Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts.\\n * This library helps with reading and writing to such slots without the need for inline assembly.\\n *\\n * The functions in this library return Slot structs that contain a `value` member that can be used to read or write.\\n *\\n * Example usage to set ERC1967 implementation slot:\\n * ```\\n * contract ERC1967 {\\n * bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\\n *\\n * function _getImplementation() internal view returns (address) {\\n * return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\\n * }\\n *\\n * function _setImplementation(address newImplementation) internal {\\n * require(Address.isContract(newImplementation), \\\"ERC1967: new implementation is not a contract\\\");\\n * StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\\n * }\\n * }\\n * ```\\n *\\n * _Available since v4.1 for `address`, `bool`, `bytes32`, and `uint256`._\\n */\\nlibrary StorageSlot {\\n struct AddressSlot {\\n address value;\\n }\\n\\n struct BooleanSlot {\\n bool value;\\n }\\n\\n struct Bytes32Slot {\\n bytes32 value;\\n }\\n\\n struct Uint256Slot {\\n uint256 value;\\n }\\n\\n /**\\n * @dev Returns an `AddressSlot` with member `value` located at `slot`.\\n */\\n function getAddressSlot(bytes32 slot) internal pure returns (AddressSlot storage r) {\\n assembly {\\n r.slot := slot\\n }\\n }\\n\\n /**\\n * @dev Returns an `BooleanSlot` with member `value` located at `slot`.\\n */\\n function getBooleanSlot(bytes32 slot) internal pure returns (BooleanSlot storage r) {\\n assembly {\\n r.slot := slot\\n }\\n }\\n\\n /**\\n * @dev Returns an `Bytes32Slot` with member `value` located at `slot`.\\n */\\n function getBytes32Slot(bytes32 slot) internal pure returns (Bytes32Slot storage r) {\\n assembly {\\n r.slot := slot\\n }\\n }\\n\\n /**\\n * @dev Returns an `Uint256Slot` with member `value` located at `slot`.\\n */\\n function getUint256Slot(bytes32 slot) internal pure returns (Uint256Slot storage r) {\\n assembly {\\n r.slot := slot\\n }\\n }\\n}\\n\",\"keccak256\":\"0xfe1b7a9aa2a530a9e705b220e26cd584e2fbdc9602a3a1066032b12816b46aca\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":13,"contract":"hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/ProxyAdmin.sol:ProxyAdmin","label":"_owner","offset":0,"slot":"0","type":"t_address"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/TransparentUpgradeableProxy.sol":{"TransparentUpgradeableProxy":{"abi":[{"inputs":[{"internalType":"address","name":"_logic","type":"address"},{"internalType":"address","name":"admin_","type":"address"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"beacon","type":"address"}],"name":"BeaconUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"admin_","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAdmin","type":"address"}],"name":"changeAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"implementation_","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"name":"upgradeTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"upgradeToAndCall","outputs":[],"stateMutability":"payable","type":"function"},{"stateMutability":"payable","type":"receive"}],"devdoc":{"details":"This contract implements a proxy that is upgradeable by an admin. To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector clashing], which can potentially be used in an attack, this contract uses the https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two things that go hand in hand: 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if that call matches one of the admin functions exposed by the proxy itself. 2. If the admin calls the proxy, it can access the admin functions, but its calls will never be forwarded to the implementation. If the admin tries to call a function on the implementation it will fail with an error that says \"admin cannot fallback to proxy target\". These properties mean that the admin account can only be used for admin actions like upgrading the proxy or changing the admin, so it's best if it's a dedicated account that is not used for anything else. This will avoid headaches due to sudden errors when trying to call a function from the proxy implementation. Our recommendation is for the dedicated account to be an instance of the {ProxyAdmin} contract. If set up this way, you should think of the `ProxyAdmin` instance as the real administrative interface of your proxy.","events":{"AdminChanged(address,address)":{"details":"Emitted when the admin account has changed."},"BeaconUpgraded(address)":{"details":"Emitted when the beacon is upgraded."},"Upgraded(address)":{"details":"Emitted when the implementation is upgraded."}},"kind":"dev","methods":{"admin()":{"details":"Returns the current admin. NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyAdmin}. TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call. `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103`"},"changeAdmin(address)":{"details":"Changes the admin of the proxy. Emits an {AdminChanged} event. NOTE: Only the admin can call this function. See {ProxyAdmin-changeProxyAdmin}."},"constructor":{"details":"Initializes an upgradeable proxy managed by `_admin`, backed by the implementation at `_logic`, and optionally initialized with `_data` as explained in {ERC1967Proxy-constructor}."},"implementation()":{"details":"Returns the current implementation. NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyImplementation}. TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call. `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc`"},"upgradeTo(address)":{"details":"Upgrade the implementation of the proxy. NOTE: Only the admin can call this function. See {ProxyAdmin-upgrade}."},"upgradeToAndCall(address,bytes)":{"details":"Upgrade the implementation of the proxy, and then call a function from the new implementation as specified by `data`, which should be an encoded function call. This is useful to initialize new storage variables in the proxied contract. NOTE: Only the admin can call this function. See {ProxyAdmin-upgradeAndCall}."}},"version":1},"evm":{"bytecode":{"functionDebugData":{"@_161":{"entryPoint":null,"id":161,"parameterSlots":2,"returnSlots":0},"@_740":{"entryPoint":null,"id":740,"parameterSlots":3,"returnSlots":0},"@_changeAdmin_395":{"entryPoint":250,"id":395,"parameterSlots":1,"returnSlots":0},"@_getAdmin_352":{"entryPoint":null,"id":352,"parameterSlots":0,"returnSlots":1},"@_setAdmin_378":{"entryPoint":457,"id":378,"parameterSlots":1,"returnSlots":0},"@_setImplementation_230":{"entryPoint":553,"id":230,"parameterSlots":1,"returnSlots":0},"@_upgradeToAndCall_275":{"entryPoint":207,"id":275,"parameterSlots":3,"returnSlots":0},"@_upgradeTo_245":{"entryPoint":348,"id":245,"parameterSlots":1,"returnSlots":0},"@functionDelegateCall_1091":{"entryPoint":411,"id":1091,"parameterSlots":2,"returnSlots":1},"@functionDelegateCall_1126":{"entryPoint":612,"id":1126,"parameterSlots":3,"returnSlots":1},"@getAddressSlot_1206":{"entryPoint":null,"id":1206,"parameterSlots":1,"returnSlots":1},"@isContract_881":{"entryPoint":null,"id":881,"parameterSlots":1,"returnSlots":1},"@verifyCallResult_1157":{"entryPoint":769,"id":1157,"parameterSlots":3,"returnSlots":1},"abi_decode_available_length_t_bytes_memory_ptr_fromMemory":{"entryPoint":1015,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address_fromMemory":{"entryPoint":861,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_memory_ptr_fromMemory":{"entryPoint":1078,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_addresst_bytes_memory_ptr_fromMemory":{"entryPoint":1120,"id":null,"parameterSlots":2,"returnSlots":3},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":1280,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":1578,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack":{"entryPoint":1622,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_stringliteral_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5_to_t_string_memory_ptr_fromStack":{"entryPoint":1322,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65_to_t_string_memory_ptr_fromStack":{"entryPoint":1407,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520_to_t_string_memory_ptr_fromStack":{"entryPoint":1496,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":1611,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed":{"entryPoint":1295,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1671,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1391,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1480,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1562,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_memory":{"entryPoint":936,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_bytes_memory_ptr":{"entryPoint":963,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_bytes_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":1241,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":826,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":1004,"id":null,"parameterSlots":3,"returnSlots":0},"finalize_allocation":{"entryPoint":892,"id":null,"parameterSlots":2,"returnSlots":0},"panic_error_0x01":{"entryPoint":1260,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x11":{"entryPoint":1221,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":872,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"store_literal_in_memory_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address":{"entryPoint":842,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:10028:14","nodeType":"YulBlock","src":"0:10028:14","statements":[{"body":{"nativeSrc":"47:35:14","nodeType":"YulBlock","src":"47:35:14","statements":[{"nativeSrc":"57:19:14","nodeType":"YulAssignment","src":"57:19:14","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:14","nodeType":"YulLiteral","src":"73:2:14","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:14","nodeType":"YulIdentifier","src":"67:5:14"},"nativeSrc":"67:9:14","nodeType":"YulFunctionCall","src":"67:9:14"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:14","nodeType":"YulIdentifier","src":"57:6:14"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:14","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:14","nodeType":"YulTypedName","src":"40:6:14","type":""}],"src":"7:75:14"},{"body":{"nativeSrc":"177:28:14","nodeType":"YulBlock","src":"177:28:14","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:14","nodeType":"YulLiteral","src":"194:1:14","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:14","nodeType":"YulLiteral","src":"197:1:14","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:14","nodeType":"YulIdentifier","src":"187:6:14"},"nativeSrc":"187:12:14","nodeType":"YulFunctionCall","src":"187:12:14"},"nativeSrc":"187:12:14","nodeType":"YulExpressionStatement","src":"187:12:14"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:14","nodeType":"YulFunctionDefinition","src":"88:117:14"},{"body":{"nativeSrc":"300:28:14","nodeType":"YulBlock","src":"300:28:14","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:14","nodeType":"YulLiteral","src":"317:1:14","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:14","nodeType":"YulLiteral","src":"320:1:14","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:14","nodeType":"YulIdentifier","src":"310:6:14"},"nativeSrc":"310:12:14","nodeType":"YulFunctionCall","src":"310:12:14"},"nativeSrc":"310:12:14","nodeType":"YulExpressionStatement","src":"310:12:14"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:14","nodeType":"YulFunctionDefinition","src":"211:117:14"},{"body":{"nativeSrc":"379:81:14","nodeType":"YulBlock","src":"379:81:14","statements":[{"nativeSrc":"389:65:14","nodeType":"YulAssignment","src":"389:65:14","value":{"arguments":[{"name":"value","nativeSrc":"404:5:14","nodeType":"YulIdentifier","src":"404:5:14"},{"kind":"number","nativeSrc":"411:42:14","nodeType":"YulLiteral","src":"411:42:14","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"400:3:14","nodeType":"YulIdentifier","src":"400:3:14"},"nativeSrc":"400:54:14","nodeType":"YulFunctionCall","src":"400:54:14"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:14","nodeType":"YulIdentifier","src":"389:7:14"}]}]},"name":"cleanup_t_uint160","nativeSrc":"334:126:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:14","nodeType":"YulTypedName","src":"361:5:14","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:14","nodeType":"YulTypedName","src":"371:7:14","type":""}],"src":"334:126:14"},{"body":{"nativeSrc":"511:51:14","nodeType":"YulBlock","src":"511:51:14","statements":[{"nativeSrc":"521:35:14","nodeType":"YulAssignment","src":"521:35:14","value":{"arguments":[{"name":"value","nativeSrc":"550:5:14","nodeType":"YulIdentifier","src":"550:5:14"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"532:17:14","nodeType":"YulIdentifier","src":"532:17:14"},"nativeSrc":"532:24:14","nodeType":"YulFunctionCall","src":"532:24:14"},"variableNames":[{"name":"cleaned","nativeSrc":"521:7:14","nodeType":"YulIdentifier","src":"521:7:14"}]}]},"name":"cleanup_t_address","nativeSrc":"466:96:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"493:5:14","nodeType":"YulTypedName","src":"493:5:14","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"503:7:14","nodeType":"YulTypedName","src":"503:7:14","type":""}],"src":"466:96:14"},{"body":{"nativeSrc":"611:79:14","nodeType":"YulBlock","src":"611:79:14","statements":[{"body":{"nativeSrc":"668:16:14","nodeType":"YulBlock","src":"668:16:14","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"677:1:14","nodeType":"YulLiteral","src":"677:1:14","type":"","value":"0"},{"kind":"number","nativeSrc":"680:1:14","nodeType":"YulLiteral","src":"680:1:14","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"670:6:14","nodeType":"YulIdentifier","src":"670:6:14"},"nativeSrc":"670:12:14","nodeType":"YulFunctionCall","src":"670:12:14"},"nativeSrc":"670:12:14","nodeType":"YulExpressionStatement","src":"670:12:14"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"634:5:14","nodeType":"YulIdentifier","src":"634:5:14"},{"arguments":[{"name":"value","nativeSrc":"659:5:14","nodeType":"YulIdentifier","src":"659:5:14"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"641:17:14","nodeType":"YulIdentifier","src":"641:17:14"},"nativeSrc":"641:24:14","nodeType":"YulFunctionCall","src":"641:24:14"}],"functionName":{"name":"eq","nativeSrc":"631:2:14","nodeType":"YulIdentifier","src":"631:2:14"},"nativeSrc":"631:35:14","nodeType":"YulFunctionCall","src":"631:35:14"}],"functionName":{"name":"iszero","nativeSrc":"624:6:14","nodeType":"YulIdentifier","src":"624:6:14"},"nativeSrc":"624:43:14","nodeType":"YulFunctionCall","src":"624:43:14"},"nativeSrc":"621:63:14","nodeType":"YulIf","src":"621:63:14"}]},"name":"validator_revert_t_address","nativeSrc":"568:122:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"604:5:14","nodeType":"YulTypedName","src":"604:5:14","type":""}],"src":"568:122:14"},{"body":{"nativeSrc":"759:80:14","nodeType":"YulBlock","src":"759:80:14","statements":[{"nativeSrc":"769:22:14","nodeType":"YulAssignment","src":"769:22:14","value":{"arguments":[{"name":"offset","nativeSrc":"784:6:14","nodeType":"YulIdentifier","src":"784:6:14"}],"functionName":{"name":"mload","nativeSrc":"778:5:14","nodeType":"YulIdentifier","src":"778:5:14"},"nativeSrc":"778:13:14","nodeType":"YulFunctionCall","src":"778:13:14"},"variableNames":[{"name":"value","nativeSrc":"769:5:14","nodeType":"YulIdentifier","src":"769:5:14"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"827:5:14","nodeType":"YulIdentifier","src":"827:5:14"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"800:26:14","nodeType":"YulIdentifier","src":"800:26:14"},"nativeSrc":"800:33:14","nodeType":"YulFunctionCall","src":"800:33:14"},"nativeSrc":"800:33:14","nodeType":"YulExpressionStatement","src":"800:33:14"}]},"name":"abi_decode_t_address_fromMemory","nativeSrc":"696:143:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"737:6:14","nodeType":"YulTypedName","src":"737:6:14","type":""},{"name":"end","nativeSrc":"745:3:14","nodeType":"YulTypedName","src":"745:3:14","type":""}],"returnVariables":[{"name":"value","nativeSrc":"753:5:14","nodeType":"YulTypedName","src":"753:5:14","type":""}],"src":"696:143:14"},{"body":{"nativeSrc":"934:28:14","nodeType":"YulBlock","src":"934:28:14","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"951:1:14","nodeType":"YulLiteral","src":"951:1:14","type":"","value":"0"},{"kind":"number","nativeSrc":"954:1:14","nodeType":"YulLiteral","src":"954:1:14","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"944:6:14","nodeType":"YulIdentifier","src":"944:6:14"},"nativeSrc":"944:12:14","nodeType":"YulFunctionCall","src":"944:12:14"},"nativeSrc":"944:12:14","nodeType":"YulExpressionStatement","src":"944:12:14"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"845:117:14","nodeType":"YulFunctionDefinition","src":"845:117:14"},{"body":{"nativeSrc":"1057:28:14","nodeType":"YulBlock","src":"1057:28:14","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1074:1:14","nodeType":"YulLiteral","src":"1074:1:14","type":"","value":"0"},{"kind":"number","nativeSrc":"1077:1:14","nodeType":"YulLiteral","src":"1077:1:14","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1067:6:14","nodeType":"YulIdentifier","src":"1067:6:14"},"nativeSrc":"1067:12:14","nodeType":"YulFunctionCall","src":"1067:12:14"},"nativeSrc":"1067:12:14","nodeType":"YulExpressionStatement","src":"1067:12:14"}]},"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"968:117:14","nodeType":"YulFunctionDefinition","src":"968:117:14"},{"body":{"nativeSrc":"1139:54:14","nodeType":"YulBlock","src":"1139:54:14","statements":[{"nativeSrc":"1149:38:14","nodeType":"YulAssignment","src":"1149:38:14","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1167:5:14","nodeType":"YulIdentifier","src":"1167:5:14"},{"kind":"number","nativeSrc":"1174:2:14","nodeType":"YulLiteral","src":"1174:2:14","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"1163:3:14","nodeType":"YulIdentifier","src":"1163:3:14"},"nativeSrc":"1163:14:14","nodeType":"YulFunctionCall","src":"1163:14:14"},{"arguments":[{"kind":"number","nativeSrc":"1183:2:14","nodeType":"YulLiteral","src":"1183:2:14","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"1179:3:14","nodeType":"YulIdentifier","src":"1179:3:14"},"nativeSrc":"1179:7:14","nodeType":"YulFunctionCall","src":"1179:7:14"}],"functionName":{"name":"and","nativeSrc":"1159:3:14","nodeType":"YulIdentifier","src":"1159:3:14"},"nativeSrc":"1159:28:14","nodeType":"YulFunctionCall","src":"1159:28:14"},"variableNames":[{"name":"result","nativeSrc":"1149:6:14","nodeType":"YulIdentifier","src":"1149:6:14"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"1091:102:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1122:5:14","nodeType":"YulTypedName","src":"1122:5:14","type":""}],"returnVariables":[{"name":"result","nativeSrc":"1132:6:14","nodeType":"YulTypedName","src":"1132:6:14","type":""}],"src":"1091:102:14"},{"body":{"nativeSrc":"1227:152:14","nodeType":"YulBlock","src":"1227:152:14","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1244:1:14","nodeType":"YulLiteral","src":"1244:1:14","type":"","value":"0"},{"kind":"number","nativeSrc":"1247:77:14","nodeType":"YulLiteral","src":"1247:77:14","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"1237:6:14","nodeType":"YulIdentifier","src":"1237:6:14"},"nativeSrc":"1237:88:14","nodeType":"YulFunctionCall","src":"1237:88:14"},"nativeSrc":"1237:88:14","nodeType":"YulExpressionStatement","src":"1237:88:14"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1341:1:14","nodeType":"YulLiteral","src":"1341:1:14","type":"","value":"4"},{"kind":"number","nativeSrc":"1344:4:14","nodeType":"YulLiteral","src":"1344:4:14","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"1334:6:14","nodeType":"YulIdentifier","src":"1334:6:14"},"nativeSrc":"1334:15:14","nodeType":"YulFunctionCall","src":"1334:15:14"},"nativeSrc":"1334:15:14","nodeType":"YulExpressionStatement","src":"1334:15:14"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1365:1:14","nodeType":"YulLiteral","src":"1365:1:14","type":"","value":"0"},{"kind":"number","nativeSrc":"1368:4:14","nodeType":"YulLiteral","src":"1368:4:14","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"1358:6:14","nodeType":"YulIdentifier","src":"1358:6:14"},"nativeSrc":"1358:15:14","nodeType":"YulFunctionCall","src":"1358:15:14"},"nativeSrc":"1358:15:14","nodeType":"YulExpressionStatement","src":"1358:15:14"}]},"name":"panic_error_0x41","nativeSrc":"1199:180:14","nodeType":"YulFunctionDefinition","src":"1199:180:14"},{"body":{"nativeSrc":"1428:238:14","nodeType":"YulBlock","src":"1428:238:14","statements":[{"nativeSrc":"1438:58:14","nodeType":"YulVariableDeclaration","src":"1438:58:14","value":{"arguments":[{"name":"memPtr","nativeSrc":"1460:6:14","nodeType":"YulIdentifier","src":"1460:6:14"},{"arguments":[{"name":"size","nativeSrc":"1490:4:14","nodeType":"YulIdentifier","src":"1490:4:14"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"1468:21:14","nodeType":"YulIdentifier","src":"1468:21:14"},"nativeSrc":"1468:27:14","nodeType":"YulFunctionCall","src":"1468:27:14"}],"functionName":{"name":"add","nativeSrc":"1456:3:14","nodeType":"YulIdentifier","src":"1456:3:14"},"nativeSrc":"1456:40:14","nodeType":"YulFunctionCall","src":"1456:40:14"},"variables":[{"name":"newFreePtr","nativeSrc":"1442:10:14","nodeType":"YulTypedName","src":"1442:10:14","type":""}]},{"body":{"nativeSrc":"1607:22:14","nodeType":"YulBlock","src":"1607:22:14","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1609:16:14","nodeType":"YulIdentifier","src":"1609:16:14"},"nativeSrc":"1609:18:14","nodeType":"YulFunctionCall","src":"1609:18:14"},"nativeSrc":"1609:18:14","nodeType":"YulExpressionStatement","src":"1609:18:14"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"1550:10:14","nodeType":"YulIdentifier","src":"1550:10:14"},{"kind":"number","nativeSrc":"1562:18:14","nodeType":"YulLiteral","src":"1562:18:14","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1547:2:14","nodeType":"YulIdentifier","src":"1547:2:14"},"nativeSrc":"1547:34:14","nodeType":"YulFunctionCall","src":"1547:34:14"},{"arguments":[{"name":"newFreePtr","nativeSrc":"1586:10:14","nodeType":"YulIdentifier","src":"1586:10:14"},{"name":"memPtr","nativeSrc":"1598:6:14","nodeType":"YulIdentifier","src":"1598:6:14"}],"functionName":{"name":"lt","nativeSrc":"1583:2:14","nodeType":"YulIdentifier","src":"1583:2:14"},"nativeSrc":"1583:22:14","nodeType":"YulFunctionCall","src":"1583:22:14"}],"functionName":{"name":"or","nativeSrc":"1544:2:14","nodeType":"YulIdentifier","src":"1544:2:14"},"nativeSrc":"1544:62:14","nodeType":"YulFunctionCall","src":"1544:62:14"},"nativeSrc":"1541:88:14","nodeType":"YulIf","src":"1541:88:14"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1645:2:14","nodeType":"YulLiteral","src":"1645:2:14","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"1649:10:14","nodeType":"YulIdentifier","src":"1649:10:14"}],"functionName":{"name":"mstore","nativeSrc":"1638:6:14","nodeType":"YulIdentifier","src":"1638:6:14"},"nativeSrc":"1638:22:14","nodeType":"YulFunctionCall","src":"1638:22:14"},"nativeSrc":"1638:22:14","nodeType":"YulExpressionStatement","src":"1638:22:14"}]},"name":"finalize_allocation","nativeSrc":"1385:281:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"1414:6:14","nodeType":"YulTypedName","src":"1414:6:14","type":""},{"name":"size","nativeSrc":"1422:4:14","nodeType":"YulTypedName","src":"1422:4:14","type":""}],"src":"1385:281:14"},{"body":{"nativeSrc":"1713:88:14","nodeType":"YulBlock","src":"1713:88:14","statements":[{"nativeSrc":"1723:30:14","nodeType":"YulAssignment","src":"1723:30:14","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"1733:18:14","nodeType":"YulIdentifier","src":"1733:18:14"},"nativeSrc":"1733:20:14","nodeType":"YulFunctionCall","src":"1733:20:14"},"variableNames":[{"name":"memPtr","nativeSrc":"1723:6:14","nodeType":"YulIdentifier","src":"1723:6:14"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"1782:6:14","nodeType":"YulIdentifier","src":"1782:6:14"},{"name":"size","nativeSrc":"1790:4:14","nodeType":"YulIdentifier","src":"1790:4:14"}],"functionName":{"name":"finalize_allocation","nativeSrc":"1762:19:14","nodeType":"YulIdentifier","src":"1762:19:14"},"nativeSrc":"1762:33:14","nodeType":"YulFunctionCall","src":"1762:33:14"},"nativeSrc":"1762:33:14","nodeType":"YulExpressionStatement","src":"1762:33:14"}]},"name":"allocate_memory","nativeSrc":"1672:129:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"1697:4:14","nodeType":"YulTypedName","src":"1697:4:14","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"1706:6:14","nodeType":"YulTypedName","src":"1706:6:14","type":""}],"src":"1672:129:14"},{"body":{"nativeSrc":"1873:241:14","nodeType":"YulBlock","src":"1873:241:14","statements":[{"body":{"nativeSrc":"1978:22:14","nodeType":"YulBlock","src":"1978:22:14","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1980:16:14","nodeType":"YulIdentifier","src":"1980:16:14"},"nativeSrc":"1980:18:14","nodeType":"YulFunctionCall","src":"1980:18:14"},"nativeSrc":"1980:18:14","nodeType":"YulExpressionStatement","src":"1980:18:14"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"1950:6:14","nodeType":"YulIdentifier","src":"1950:6:14"},{"kind":"number","nativeSrc":"1958:18:14","nodeType":"YulLiteral","src":"1958:18:14","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1947:2:14","nodeType":"YulIdentifier","src":"1947:2:14"},"nativeSrc":"1947:30:14","nodeType":"YulFunctionCall","src":"1947:30:14"},"nativeSrc":"1944:56:14","nodeType":"YulIf","src":"1944:56:14"},{"nativeSrc":"2010:37:14","nodeType":"YulAssignment","src":"2010:37:14","value":{"arguments":[{"name":"length","nativeSrc":"2040:6:14","nodeType":"YulIdentifier","src":"2040:6:14"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"2018:21:14","nodeType":"YulIdentifier","src":"2018:21:14"},"nativeSrc":"2018:29:14","nodeType":"YulFunctionCall","src":"2018:29:14"},"variableNames":[{"name":"size","nativeSrc":"2010:4:14","nodeType":"YulIdentifier","src":"2010:4:14"}]},{"nativeSrc":"2084:23:14","nodeType":"YulAssignment","src":"2084:23:14","value":{"arguments":[{"name":"size","nativeSrc":"2096:4:14","nodeType":"YulIdentifier","src":"2096:4:14"},{"kind":"number","nativeSrc":"2102:4:14","nodeType":"YulLiteral","src":"2102:4:14","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2092:3:14","nodeType":"YulIdentifier","src":"2092:3:14"},"nativeSrc":"2092:15:14","nodeType":"YulFunctionCall","src":"2092:15:14"},"variableNames":[{"name":"size","nativeSrc":"2084:4:14","nodeType":"YulIdentifier","src":"2084:4:14"}]}]},"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"1807:307:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"1857:6:14","nodeType":"YulTypedName","src":"1857:6:14","type":""}],"returnVariables":[{"name":"size","nativeSrc":"1868:4:14","nodeType":"YulTypedName","src":"1868:4:14","type":""}],"src":"1807:307:14"},{"body":{"nativeSrc":"2182:77:14","nodeType":"YulBlock","src":"2182:77:14","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"2199:3:14","nodeType":"YulIdentifier","src":"2199:3:14"},{"name":"src","nativeSrc":"2204:3:14","nodeType":"YulIdentifier","src":"2204:3:14"},{"name":"length","nativeSrc":"2209:6:14","nodeType":"YulIdentifier","src":"2209:6:14"}],"functionName":{"name":"mcopy","nativeSrc":"2193:5:14","nodeType":"YulIdentifier","src":"2193:5:14"},"nativeSrc":"2193:23:14","nodeType":"YulFunctionCall","src":"2193:23:14"},"nativeSrc":"2193:23:14","nodeType":"YulExpressionStatement","src":"2193:23:14"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"2236:3:14","nodeType":"YulIdentifier","src":"2236:3:14"},{"name":"length","nativeSrc":"2241:6:14","nodeType":"YulIdentifier","src":"2241:6:14"}],"functionName":{"name":"add","nativeSrc":"2232:3:14","nodeType":"YulIdentifier","src":"2232:3:14"},"nativeSrc":"2232:16:14","nodeType":"YulFunctionCall","src":"2232:16:14"},{"kind":"number","nativeSrc":"2250:1:14","nodeType":"YulLiteral","src":"2250:1:14","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"2225:6:14","nodeType":"YulIdentifier","src":"2225:6:14"},"nativeSrc":"2225:27:14","nodeType":"YulFunctionCall","src":"2225:27:14"},"nativeSrc":"2225:27:14","nodeType":"YulExpressionStatement","src":"2225:27:14"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"2120:139:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"2164:3:14","nodeType":"YulTypedName","src":"2164:3:14","type":""},{"name":"dst","nativeSrc":"2169:3:14","nodeType":"YulTypedName","src":"2169:3:14","type":""},{"name":"length","nativeSrc":"2174:6:14","nodeType":"YulTypedName","src":"2174:6:14","type":""}],"src":"2120:139:14"},{"body":{"nativeSrc":"2359:338:14","nodeType":"YulBlock","src":"2359:338:14","statements":[{"nativeSrc":"2369:74:14","nodeType":"YulAssignment","src":"2369:74:14","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"2435:6:14","nodeType":"YulIdentifier","src":"2435:6:14"}],"functionName":{"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"2394:40:14","nodeType":"YulIdentifier","src":"2394:40:14"},"nativeSrc":"2394:48:14","nodeType":"YulFunctionCall","src":"2394:48:14"}],"functionName":{"name":"allocate_memory","nativeSrc":"2378:15:14","nodeType":"YulIdentifier","src":"2378:15:14"},"nativeSrc":"2378:65:14","nodeType":"YulFunctionCall","src":"2378:65:14"},"variableNames":[{"name":"array","nativeSrc":"2369:5:14","nodeType":"YulIdentifier","src":"2369:5:14"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"2459:5:14","nodeType":"YulIdentifier","src":"2459:5:14"},{"name":"length","nativeSrc":"2466:6:14","nodeType":"YulIdentifier","src":"2466:6:14"}],"functionName":{"name":"mstore","nativeSrc":"2452:6:14","nodeType":"YulIdentifier","src":"2452:6:14"},"nativeSrc":"2452:21:14","nodeType":"YulFunctionCall","src":"2452:21:14"},"nativeSrc":"2452:21:14","nodeType":"YulExpressionStatement","src":"2452:21:14"},{"nativeSrc":"2482:27:14","nodeType":"YulVariableDeclaration","src":"2482:27:14","value":{"arguments":[{"name":"array","nativeSrc":"2497:5:14","nodeType":"YulIdentifier","src":"2497:5:14"},{"kind":"number","nativeSrc":"2504:4:14","nodeType":"YulLiteral","src":"2504:4:14","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2493:3:14","nodeType":"YulIdentifier","src":"2493:3:14"},"nativeSrc":"2493:16:14","nodeType":"YulFunctionCall","src":"2493:16:14"},"variables":[{"name":"dst","nativeSrc":"2486:3:14","nodeType":"YulTypedName","src":"2486:3:14","type":""}]},{"body":{"nativeSrc":"2547:83:14","nodeType":"YulBlock","src":"2547:83:14","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"2549:77:14","nodeType":"YulIdentifier","src":"2549:77:14"},"nativeSrc":"2549:79:14","nodeType":"YulFunctionCall","src":"2549:79:14"},"nativeSrc":"2549:79:14","nodeType":"YulExpressionStatement","src":"2549:79:14"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"2528:3:14","nodeType":"YulIdentifier","src":"2528:3:14"},{"name":"length","nativeSrc":"2533:6:14","nodeType":"YulIdentifier","src":"2533:6:14"}],"functionName":{"name":"add","nativeSrc":"2524:3:14","nodeType":"YulIdentifier","src":"2524:3:14"},"nativeSrc":"2524:16:14","nodeType":"YulFunctionCall","src":"2524:16:14"},{"name":"end","nativeSrc":"2542:3:14","nodeType":"YulIdentifier","src":"2542:3:14"}],"functionName":{"name":"gt","nativeSrc":"2521:2:14","nodeType":"YulIdentifier","src":"2521:2:14"},"nativeSrc":"2521:25:14","nodeType":"YulFunctionCall","src":"2521:25:14"},"nativeSrc":"2518:112:14","nodeType":"YulIf","src":"2518:112:14"},{"expression":{"arguments":[{"name":"src","nativeSrc":"2674:3:14","nodeType":"YulIdentifier","src":"2674:3:14"},{"name":"dst","nativeSrc":"2679:3:14","nodeType":"YulIdentifier","src":"2679:3:14"},{"name":"length","nativeSrc":"2684:6:14","nodeType":"YulIdentifier","src":"2684:6:14"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"2639:34:14","nodeType":"YulIdentifier","src":"2639:34:14"},"nativeSrc":"2639:52:14","nodeType":"YulFunctionCall","src":"2639:52:14"},"nativeSrc":"2639:52:14","nodeType":"YulExpressionStatement","src":"2639:52:14"}]},"name":"abi_decode_available_length_t_bytes_memory_ptr_fromMemory","nativeSrc":"2265:432:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"2332:3:14","nodeType":"YulTypedName","src":"2332:3:14","type":""},{"name":"length","nativeSrc":"2337:6:14","nodeType":"YulTypedName","src":"2337:6:14","type":""},{"name":"end","nativeSrc":"2345:3:14","nodeType":"YulTypedName","src":"2345:3:14","type":""}],"returnVariables":[{"name":"array","nativeSrc":"2353:5:14","nodeType":"YulTypedName","src":"2353:5:14","type":""}],"src":"2265:432:14"},{"body":{"nativeSrc":"2788:281:14","nodeType":"YulBlock","src":"2788:281:14","statements":[{"body":{"nativeSrc":"2837:83:14","nodeType":"YulBlock","src":"2837:83:14","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"2839:77:14","nodeType":"YulIdentifier","src":"2839:77:14"},"nativeSrc":"2839:79:14","nodeType":"YulFunctionCall","src":"2839:79:14"},"nativeSrc":"2839:79:14","nodeType":"YulExpressionStatement","src":"2839:79:14"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2816:6:14","nodeType":"YulIdentifier","src":"2816:6:14"},{"kind":"number","nativeSrc":"2824:4:14","nodeType":"YulLiteral","src":"2824:4:14","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"2812:3:14","nodeType":"YulIdentifier","src":"2812:3:14"},"nativeSrc":"2812:17:14","nodeType":"YulFunctionCall","src":"2812:17:14"},{"name":"end","nativeSrc":"2831:3:14","nodeType":"YulIdentifier","src":"2831:3:14"}],"functionName":{"name":"slt","nativeSrc":"2808:3:14","nodeType":"YulIdentifier","src":"2808:3:14"},"nativeSrc":"2808:27:14","nodeType":"YulFunctionCall","src":"2808:27:14"}],"functionName":{"name":"iszero","nativeSrc":"2801:6:14","nodeType":"YulIdentifier","src":"2801:6:14"},"nativeSrc":"2801:35:14","nodeType":"YulFunctionCall","src":"2801:35:14"},"nativeSrc":"2798:122:14","nodeType":"YulIf","src":"2798:122:14"},{"nativeSrc":"2929:27:14","nodeType":"YulVariableDeclaration","src":"2929:27:14","value":{"arguments":[{"name":"offset","nativeSrc":"2949:6:14","nodeType":"YulIdentifier","src":"2949:6:14"}],"functionName":{"name":"mload","nativeSrc":"2943:5:14","nodeType":"YulIdentifier","src":"2943:5:14"},"nativeSrc":"2943:13:14","nodeType":"YulFunctionCall","src":"2943:13:14"},"variables":[{"name":"length","nativeSrc":"2933:6:14","nodeType":"YulTypedName","src":"2933:6:14","type":""}]},{"nativeSrc":"2965:98:14","nodeType":"YulAssignment","src":"2965:98:14","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"3036:6:14","nodeType":"YulIdentifier","src":"3036:6:14"},{"kind":"number","nativeSrc":"3044:4:14","nodeType":"YulLiteral","src":"3044:4:14","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3032:3:14","nodeType":"YulIdentifier","src":"3032:3:14"},"nativeSrc":"3032:17:14","nodeType":"YulFunctionCall","src":"3032:17:14"},{"name":"length","nativeSrc":"3051:6:14","nodeType":"YulIdentifier","src":"3051:6:14"},{"name":"end","nativeSrc":"3059:3:14","nodeType":"YulIdentifier","src":"3059:3:14"}],"functionName":{"name":"abi_decode_available_length_t_bytes_memory_ptr_fromMemory","nativeSrc":"2974:57:14","nodeType":"YulIdentifier","src":"2974:57:14"},"nativeSrc":"2974:89:14","nodeType":"YulFunctionCall","src":"2974:89:14"},"variableNames":[{"name":"array","nativeSrc":"2965:5:14","nodeType":"YulIdentifier","src":"2965:5:14"}]}]},"name":"abi_decode_t_bytes_memory_ptr_fromMemory","nativeSrc":"2716:353:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2766:6:14","nodeType":"YulTypedName","src":"2766:6:14","type":""},{"name":"end","nativeSrc":"2774:3:14","nodeType":"YulTypedName","src":"2774:3:14","type":""}],"returnVariables":[{"name":"array","nativeSrc":"2782:5:14","nodeType":"YulTypedName","src":"2782:5:14","type":""}],"src":"2716:353:14"},{"body":{"nativeSrc":"3195:714:14","nodeType":"YulBlock","src":"3195:714:14","statements":[{"body":{"nativeSrc":"3241:83:14","nodeType":"YulBlock","src":"3241:83:14","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3243:77:14","nodeType":"YulIdentifier","src":"3243:77:14"},"nativeSrc":"3243:79:14","nodeType":"YulFunctionCall","src":"3243:79:14"},"nativeSrc":"3243:79:14","nodeType":"YulExpressionStatement","src":"3243:79:14"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3216:7:14","nodeType":"YulIdentifier","src":"3216:7:14"},{"name":"headStart","nativeSrc":"3225:9:14","nodeType":"YulIdentifier","src":"3225:9:14"}],"functionName":{"name":"sub","nativeSrc":"3212:3:14","nodeType":"YulIdentifier","src":"3212:3:14"},"nativeSrc":"3212:23:14","nodeType":"YulFunctionCall","src":"3212:23:14"},{"kind":"number","nativeSrc":"3237:2:14","nodeType":"YulLiteral","src":"3237:2:14","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"3208:3:14","nodeType":"YulIdentifier","src":"3208:3:14"},"nativeSrc":"3208:32:14","nodeType":"YulFunctionCall","src":"3208:32:14"},"nativeSrc":"3205:119:14","nodeType":"YulIf","src":"3205:119:14"},{"nativeSrc":"3334:128:14","nodeType":"YulBlock","src":"3334:128:14","statements":[{"nativeSrc":"3349:15:14","nodeType":"YulVariableDeclaration","src":"3349:15:14","value":{"kind":"number","nativeSrc":"3363:1:14","nodeType":"YulLiteral","src":"3363:1:14","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"3353:6:14","nodeType":"YulTypedName","src":"3353:6:14","type":""}]},{"nativeSrc":"3378:74:14","nodeType":"YulAssignment","src":"3378:74:14","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3424:9:14","nodeType":"YulIdentifier","src":"3424:9:14"},{"name":"offset","nativeSrc":"3435:6:14","nodeType":"YulIdentifier","src":"3435:6:14"}],"functionName":{"name":"add","nativeSrc":"3420:3:14","nodeType":"YulIdentifier","src":"3420:3:14"},"nativeSrc":"3420:22:14","nodeType":"YulFunctionCall","src":"3420:22:14"},{"name":"dataEnd","nativeSrc":"3444:7:14","nodeType":"YulIdentifier","src":"3444:7:14"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"3388:31:14","nodeType":"YulIdentifier","src":"3388:31:14"},"nativeSrc":"3388:64:14","nodeType":"YulFunctionCall","src":"3388:64:14"},"variableNames":[{"name":"value0","nativeSrc":"3378:6:14","nodeType":"YulIdentifier","src":"3378:6:14"}]}]},{"nativeSrc":"3472:129:14","nodeType":"YulBlock","src":"3472:129:14","statements":[{"nativeSrc":"3487:16:14","nodeType":"YulVariableDeclaration","src":"3487:16:14","value":{"kind":"number","nativeSrc":"3501:2:14","nodeType":"YulLiteral","src":"3501:2:14","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"3491:6:14","nodeType":"YulTypedName","src":"3491:6:14","type":""}]},{"nativeSrc":"3517:74:14","nodeType":"YulAssignment","src":"3517:74:14","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3563:9:14","nodeType":"YulIdentifier","src":"3563:9:14"},{"name":"offset","nativeSrc":"3574:6:14","nodeType":"YulIdentifier","src":"3574:6:14"}],"functionName":{"name":"add","nativeSrc":"3559:3:14","nodeType":"YulIdentifier","src":"3559:3:14"},"nativeSrc":"3559:22:14","nodeType":"YulFunctionCall","src":"3559:22:14"},{"name":"dataEnd","nativeSrc":"3583:7:14","nodeType":"YulIdentifier","src":"3583:7:14"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"3527:31:14","nodeType":"YulIdentifier","src":"3527:31:14"},"nativeSrc":"3527:64:14","nodeType":"YulFunctionCall","src":"3527:64:14"},"variableNames":[{"name":"value1","nativeSrc":"3517:6:14","nodeType":"YulIdentifier","src":"3517:6:14"}]}]},{"nativeSrc":"3611:291:14","nodeType":"YulBlock","src":"3611:291:14","statements":[{"nativeSrc":"3626:39:14","nodeType":"YulVariableDeclaration","src":"3626:39:14","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3650:9:14","nodeType":"YulIdentifier","src":"3650:9:14"},{"kind":"number","nativeSrc":"3661:2:14","nodeType":"YulLiteral","src":"3661:2:14","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3646:3:14","nodeType":"YulIdentifier","src":"3646:3:14"},"nativeSrc":"3646:18:14","nodeType":"YulFunctionCall","src":"3646:18:14"}],"functionName":{"name":"mload","nativeSrc":"3640:5:14","nodeType":"YulIdentifier","src":"3640:5:14"},"nativeSrc":"3640:25:14","nodeType":"YulFunctionCall","src":"3640:25:14"},"variables":[{"name":"offset","nativeSrc":"3630:6:14","nodeType":"YulTypedName","src":"3630:6:14","type":""}]},{"body":{"nativeSrc":"3712:83:14","nodeType":"YulBlock","src":"3712:83:14","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"3714:77:14","nodeType":"YulIdentifier","src":"3714:77:14"},"nativeSrc":"3714:79:14","nodeType":"YulFunctionCall","src":"3714:79:14"},"nativeSrc":"3714:79:14","nodeType":"YulExpressionStatement","src":"3714:79:14"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"3684:6:14","nodeType":"YulIdentifier","src":"3684:6:14"},{"kind":"number","nativeSrc":"3692:18:14","nodeType":"YulLiteral","src":"3692:18:14","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3681:2:14","nodeType":"YulIdentifier","src":"3681:2:14"},"nativeSrc":"3681:30:14","nodeType":"YulFunctionCall","src":"3681:30:14"},"nativeSrc":"3678:117:14","nodeType":"YulIf","src":"3678:117:14"},{"nativeSrc":"3809:83:14","nodeType":"YulAssignment","src":"3809:83:14","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3864:9:14","nodeType":"YulIdentifier","src":"3864:9:14"},{"name":"offset","nativeSrc":"3875:6:14","nodeType":"YulIdentifier","src":"3875:6:14"}],"functionName":{"name":"add","nativeSrc":"3860:3:14","nodeType":"YulIdentifier","src":"3860:3:14"},"nativeSrc":"3860:22:14","nodeType":"YulFunctionCall","src":"3860:22:14"},{"name":"dataEnd","nativeSrc":"3884:7:14","nodeType":"YulIdentifier","src":"3884:7:14"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr_fromMemory","nativeSrc":"3819:40:14","nodeType":"YulIdentifier","src":"3819:40:14"},"nativeSrc":"3819:73:14","nodeType":"YulFunctionCall","src":"3819:73:14"},"variableNames":[{"name":"value2","nativeSrc":"3809:6:14","nodeType":"YulIdentifier","src":"3809:6:14"}]}]}]},"name":"abi_decode_tuple_t_addresst_addresst_bytes_memory_ptr_fromMemory","nativeSrc":"3075:834:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3149:9:14","nodeType":"YulTypedName","src":"3149:9:14","type":""},{"name":"dataEnd","nativeSrc":"3160:7:14","nodeType":"YulTypedName","src":"3160:7:14","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3172:6:14","nodeType":"YulTypedName","src":"3172:6:14","type":""},{"name":"value1","nativeSrc":"3180:6:14","nodeType":"YulTypedName","src":"3180:6:14","type":""},{"name":"value2","nativeSrc":"3188:6:14","nodeType":"YulTypedName","src":"3188:6:14","type":""}],"src":"3075:834:14"},{"body":{"nativeSrc":"3960:32:14","nodeType":"YulBlock","src":"3960:32:14","statements":[{"nativeSrc":"3970:16:14","nodeType":"YulAssignment","src":"3970:16:14","value":{"name":"value","nativeSrc":"3981:5:14","nodeType":"YulIdentifier","src":"3981:5:14"},"variableNames":[{"name":"cleaned","nativeSrc":"3970:7:14","nodeType":"YulIdentifier","src":"3970:7:14"}]}]},"name":"cleanup_t_uint256","nativeSrc":"3915:77:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3942:5:14","nodeType":"YulTypedName","src":"3942:5:14","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"3952:7:14","nodeType":"YulTypedName","src":"3952:7:14","type":""}],"src":"3915:77:14"},{"body":{"nativeSrc":"4026:152:14","nodeType":"YulBlock","src":"4026:152:14","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4043:1:14","nodeType":"YulLiteral","src":"4043:1:14","type":"","value":"0"},{"kind":"number","nativeSrc":"4046:77:14","nodeType":"YulLiteral","src":"4046:77:14","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"4036:6:14","nodeType":"YulIdentifier","src":"4036:6:14"},"nativeSrc":"4036:88:14","nodeType":"YulFunctionCall","src":"4036:88:14"},"nativeSrc":"4036:88:14","nodeType":"YulExpressionStatement","src":"4036:88:14"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4140:1:14","nodeType":"YulLiteral","src":"4140:1:14","type":"","value":"4"},{"kind":"number","nativeSrc":"4143:4:14","nodeType":"YulLiteral","src":"4143:4:14","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"4133:6:14","nodeType":"YulIdentifier","src":"4133:6:14"},"nativeSrc":"4133:15:14","nodeType":"YulFunctionCall","src":"4133:15:14"},"nativeSrc":"4133:15:14","nodeType":"YulExpressionStatement","src":"4133:15:14"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4164:1:14","nodeType":"YulLiteral","src":"4164:1:14","type":"","value":"0"},{"kind":"number","nativeSrc":"4167:4:14","nodeType":"YulLiteral","src":"4167:4:14","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"4157:6:14","nodeType":"YulIdentifier","src":"4157:6:14"},"nativeSrc":"4157:15:14","nodeType":"YulFunctionCall","src":"4157:15:14"},"nativeSrc":"4157:15:14","nodeType":"YulExpressionStatement","src":"4157:15:14"}]},"name":"panic_error_0x11","nativeSrc":"3998:180:14","nodeType":"YulFunctionDefinition","src":"3998:180:14"},{"body":{"nativeSrc":"4229:149:14","nodeType":"YulBlock","src":"4229:149:14","statements":[{"nativeSrc":"4239:25:14","nodeType":"YulAssignment","src":"4239:25:14","value":{"arguments":[{"name":"x","nativeSrc":"4262:1:14","nodeType":"YulIdentifier","src":"4262:1:14"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"4244:17:14","nodeType":"YulIdentifier","src":"4244:17:14"},"nativeSrc":"4244:20:14","nodeType":"YulFunctionCall","src":"4244:20:14"},"variableNames":[{"name":"x","nativeSrc":"4239:1:14","nodeType":"YulIdentifier","src":"4239:1:14"}]},{"nativeSrc":"4273:25:14","nodeType":"YulAssignment","src":"4273:25:14","value":{"arguments":[{"name":"y","nativeSrc":"4296:1:14","nodeType":"YulIdentifier","src":"4296:1:14"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"4278:17:14","nodeType":"YulIdentifier","src":"4278:17:14"},"nativeSrc":"4278:20:14","nodeType":"YulFunctionCall","src":"4278:20:14"},"variableNames":[{"name":"y","nativeSrc":"4273:1:14","nodeType":"YulIdentifier","src":"4273:1:14"}]},{"nativeSrc":"4307:17:14","nodeType":"YulAssignment","src":"4307:17:14","value":{"arguments":[{"name":"x","nativeSrc":"4319:1:14","nodeType":"YulIdentifier","src":"4319:1:14"},{"name":"y","nativeSrc":"4322:1:14","nodeType":"YulIdentifier","src":"4322:1:14"}],"functionName":{"name":"sub","nativeSrc":"4315:3:14","nodeType":"YulIdentifier","src":"4315:3:14"},"nativeSrc":"4315:9:14","nodeType":"YulFunctionCall","src":"4315:9:14"},"variableNames":[{"name":"diff","nativeSrc":"4307:4:14","nodeType":"YulIdentifier","src":"4307:4:14"}]},{"body":{"nativeSrc":"4349:22:14","nodeType":"YulBlock","src":"4349:22:14","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"4351:16:14","nodeType":"YulIdentifier","src":"4351:16:14"},"nativeSrc":"4351:18:14","nodeType":"YulFunctionCall","src":"4351:18:14"},"nativeSrc":"4351:18:14","nodeType":"YulExpressionStatement","src":"4351:18:14"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"4340:4:14","nodeType":"YulIdentifier","src":"4340:4:14"},{"name":"x","nativeSrc":"4346:1:14","nodeType":"YulIdentifier","src":"4346:1:14"}],"functionName":{"name":"gt","nativeSrc":"4337:2:14","nodeType":"YulIdentifier","src":"4337:2:14"},"nativeSrc":"4337:11:14","nodeType":"YulFunctionCall","src":"4337:11:14"},"nativeSrc":"4334:37:14","nodeType":"YulIf","src":"4334:37:14"}]},"name":"checked_sub_t_uint256","nativeSrc":"4184:194:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"4215:1:14","nodeType":"YulTypedName","src":"4215:1:14","type":""},{"name":"y","nativeSrc":"4218:1:14","nodeType":"YulTypedName","src":"4218:1:14","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"4224:4:14","nodeType":"YulTypedName","src":"4224:4:14","type":""}],"src":"4184:194:14"},{"body":{"nativeSrc":"4412:152:14","nodeType":"YulBlock","src":"4412:152:14","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4429:1:14","nodeType":"YulLiteral","src":"4429:1:14","type":"","value":"0"},{"kind":"number","nativeSrc":"4432:77:14","nodeType":"YulLiteral","src":"4432:77:14","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"4422:6:14","nodeType":"YulIdentifier","src":"4422:6:14"},"nativeSrc":"4422:88:14","nodeType":"YulFunctionCall","src":"4422:88:14"},"nativeSrc":"4422:88:14","nodeType":"YulExpressionStatement","src":"4422:88:14"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4526:1:14","nodeType":"YulLiteral","src":"4526:1:14","type":"","value":"4"},{"kind":"number","nativeSrc":"4529:4:14","nodeType":"YulLiteral","src":"4529:4:14","type":"","value":"0x01"}],"functionName":{"name":"mstore","nativeSrc":"4519:6:14","nodeType":"YulIdentifier","src":"4519:6:14"},"nativeSrc":"4519:15:14","nodeType":"YulFunctionCall","src":"4519:15:14"},"nativeSrc":"4519:15:14","nodeType":"YulExpressionStatement","src":"4519:15:14"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4550:1:14","nodeType":"YulLiteral","src":"4550:1:14","type":"","value":"0"},{"kind":"number","nativeSrc":"4553:4:14","nodeType":"YulLiteral","src":"4553:4:14","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"4543:6:14","nodeType":"YulIdentifier","src":"4543:6:14"},"nativeSrc":"4543:15:14","nodeType":"YulFunctionCall","src":"4543:15:14"},"nativeSrc":"4543:15:14","nodeType":"YulExpressionStatement","src":"4543:15:14"}]},"name":"panic_error_0x01","nativeSrc":"4384:180:14","nodeType":"YulFunctionDefinition","src":"4384:180:14"},{"body":{"nativeSrc":"4635:53:14","nodeType":"YulBlock","src":"4635:53:14","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4652:3:14","nodeType":"YulIdentifier","src":"4652:3:14"},{"arguments":[{"name":"value","nativeSrc":"4675:5:14","nodeType":"YulIdentifier","src":"4675:5:14"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"4657:17:14","nodeType":"YulIdentifier","src":"4657:17:14"},"nativeSrc":"4657:24:14","nodeType":"YulFunctionCall","src":"4657:24:14"}],"functionName":{"name":"mstore","nativeSrc":"4645:6:14","nodeType":"YulIdentifier","src":"4645:6:14"},"nativeSrc":"4645:37:14","nodeType":"YulFunctionCall","src":"4645:37:14"},"nativeSrc":"4645:37:14","nodeType":"YulExpressionStatement","src":"4645:37:14"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"4570:118:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4623:5:14","nodeType":"YulTypedName","src":"4623:5:14","type":""},{"name":"pos","nativeSrc":"4630:3:14","nodeType":"YulTypedName","src":"4630:3:14","type":""}],"src":"4570:118:14"},{"body":{"nativeSrc":"4820:206:14","nodeType":"YulBlock","src":"4820:206:14","statements":[{"nativeSrc":"4830:26:14","nodeType":"YulAssignment","src":"4830:26:14","value":{"arguments":[{"name":"headStart","nativeSrc":"4842:9:14","nodeType":"YulIdentifier","src":"4842:9:14"},{"kind":"number","nativeSrc":"4853:2:14","nodeType":"YulLiteral","src":"4853:2:14","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4838:3:14","nodeType":"YulIdentifier","src":"4838:3:14"},"nativeSrc":"4838:18:14","nodeType":"YulFunctionCall","src":"4838:18:14"},"variableNames":[{"name":"tail","nativeSrc":"4830:4:14","nodeType":"YulIdentifier","src":"4830:4:14"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"4910:6:14","nodeType":"YulIdentifier","src":"4910:6:14"},{"arguments":[{"name":"headStart","nativeSrc":"4923:9:14","nodeType":"YulIdentifier","src":"4923:9:14"},{"kind":"number","nativeSrc":"4934:1:14","nodeType":"YulLiteral","src":"4934:1:14","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4919:3:14","nodeType":"YulIdentifier","src":"4919:3:14"},"nativeSrc":"4919:17:14","nodeType":"YulFunctionCall","src":"4919:17:14"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"4866:43:14","nodeType":"YulIdentifier","src":"4866:43:14"},"nativeSrc":"4866:71:14","nodeType":"YulFunctionCall","src":"4866:71:14"},"nativeSrc":"4866:71:14","nodeType":"YulExpressionStatement","src":"4866:71:14"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"4991:6:14","nodeType":"YulIdentifier","src":"4991:6:14"},{"arguments":[{"name":"headStart","nativeSrc":"5004:9:14","nodeType":"YulIdentifier","src":"5004:9:14"},{"kind":"number","nativeSrc":"5015:2:14","nodeType":"YulLiteral","src":"5015:2:14","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5000:3:14","nodeType":"YulIdentifier","src":"5000:3:14"},"nativeSrc":"5000:18:14","nodeType":"YulFunctionCall","src":"5000:18:14"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"4947:43:14","nodeType":"YulIdentifier","src":"4947:43:14"},"nativeSrc":"4947:72:14","nodeType":"YulFunctionCall","src":"4947:72:14"},"nativeSrc":"4947:72:14","nodeType":"YulExpressionStatement","src":"4947:72:14"}]},"name":"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed","nativeSrc":"4694:332:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4784:9:14","nodeType":"YulTypedName","src":"4784:9:14","type":""},{"name":"value1","nativeSrc":"4796:6:14","nodeType":"YulTypedName","src":"4796:6:14","type":""},{"name":"value0","nativeSrc":"4804:6:14","nodeType":"YulTypedName","src":"4804:6:14","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4815:4:14","nodeType":"YulTypedName","src":"4815:4:14","type":""}],"src":"4694:332:14"},{"body":{"nativeSrc":"5128:73:14","nodeType":"YulBlock","src":"5128:73:14","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5145:3:14","nodeType":"YulIdentifier","src":"5145:3:14"},{"name":"length","nativeSrc":"5150:6:14","nodeType":"YulIdentifier","src":"5150:6:14"}],"functionName":{"name":"mstore","nativeSrc":"5138:6:14","nodeType":"YulIdentifier","src":"5138:6:14"},"nativeSrc":"5138:19:14","nodeType":"YulFunctionCall","src":"5138:19:14"},"nativeSrc":"5138:19:14","nodeType":"YulExpressionStatement","src":"5138:19:14"},{"nativeSrc":"5166:29:14","nodeType":"YulAssignment","src":"5166:29:14","value":{"arguments":[{"name":"pos","nativeSrc":"5185:3:14","nodeType":"YulIdentifier","src":"5185:3:14"},{"kind":"number","nativeSrc":"5190:4:14","nodeType":"YulLiteral","src":"5190:4:14","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5181:3:14","nodeType":"YulIdentifier","src":"5181:3:14"},"nativeSrc":"5181:14:14","nodeType":"YulFunctionCall","src":"5181:14:14"},"variableNames":[{"name":"updated_pos","nativeSrc":"5166:11:14","nodeType":"YulIdentifier","src":"5166:11:14"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"5032:169:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"5100:3:14","nodeType":"YulTypedName","src":"5100:3:14","type":""},{"name":"length","nativeSrc":"5105:6:14","nodeType":"YulTypedName","src":"5105:6:14","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"5116:11:14","nodeType":"YulTypedName","src":"5116:11:14","type":""}],"src":"5032:169:14"},{"body":{"nativeSrc":"5313:119:14","nodeType":"YulBlock","src":"5313:119:14","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"5335:6:14","nodeType":"YulIdentifier","src":"5335:6:14"},{"kind":"number","nativeSrc":"5343:1:14","nodeType":"YulLiteral","src":"5343:1:14","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5331:3:14","nodeType":"YulIdentifier","src":"5331:3:14"},"nativeSrc":"5331:14:14","nodeType":"YulFunctionCall","src":"5331:14:14"},{"hexValue":"455243313936373a206e65772061646d696e20697320746865207a65726f2061","kind":"string","nativeSrc":"5347:34:14","nodeType":"YulLiteral","src":"5347:34:14","type":"","value":"ERC1967: new admin is the zero a"}],"functionName":{"name":"mstore","nativeSrc":"5324:6:14","nodeType":"YulIdentifier","src":"5324:6:14"},"nativeSrc":"5324:58:14","nodeType":"YulFunctionCall","src":"5324:58:14"},"nativeSrc":"5324:58:14","nodeType":"YulExpressionStatement","src":"5324:58:14"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"5403:6:14","nodeType":"YulIdentifier","src":"5403:6:14"},{"kind":"number","nativeSrc":"5411:2:14","nodeType":"YulLiteral","src":"5411:2:14","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5399:3:14","nodeType":"YulIdentifier","src":"5399:3:14"},"nativeSrc":"5399:15:14","nodeType":"YulFunctionCall","src":"5399:15:14"},{"hexValue":"646472657373","kind":"string","nativeSrc":"5416:8:14","nodeType":"YulLiteral","src":"5416:8:14","type":"","value":"ddress"}],"functionName":{"name":"mstore","nativeSrc":"5392:6:14","nodeType":"YulIdentifier","src":"5392:6:14"},"nativeSrc":"5392:33:14","nodeType":"YulFunctionCall","src":"5392:33:14"},"nativeSrc":"5392:33:14","nodeType":"YulExpressionStatement","src":"5392:33:14"}]},"name":"store_literal_in_memory_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5","nativeSrc":"5207:225:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"5305:6:14","nodeType":"YulTypedName","src":"5305:6:14","type":""}],"src":"5207:225:14"},{"body":{"nativeSrc":"5584:220:14","nodeType":"YulBlock","src":"5584:220:14","statements":[{"nativeSrc":"5594:74:14","nodeType":"YulAssignment","src":"5594:74:14","value":{"arguments":[{"name":"pos","nativeSrc":"5660:3:14","nodeType":"YulIdentifier","src":"5660:3:14"},{"kind":"number","nativeSrc":"5665:2:14","nodeType":"YulLiteral","src":"5665:2:14","type":"","value":"38"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"5601:58:14","nodeType":"YulIdentifier","src":"5601:58:14"},"nativeSrc":"5601:67:14","nodeType":"YulFunctionCall","src":"5601:67:14"},"variableNames":[{"name":"pos","nativeSrc":"5594:3:14","nodeType":"YulIdentifier","src":"5594:3:14"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"5766:3:14","nodeType":"YulIdentifier","src":"5766:3:14"}],"functionName":{"name":"store_literal_in_memory_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5","nativeSrc":"5677:88:14","nodeType":"YulIdentifier","src":"5677:88:14"},"nativeSrc":"5677:93:14","nodeType":"YulFunctionCall","src":"5677:93:14"},"nativeSrc":"5677:93:14","nodeType":"YulExpressionStatement","src":"5677:93:14"},{"nativeSrc":"5779:19:14","nodeType":"YulAssignment","src":"5779:19:14","value":{"arguments":[{"name":"pos","nativeSrc":"5790:3:14","nodeType":"YulIdentifier","src":"5790:3:14"},{"kind":"number","nativeSrc":"5795:2:14","nodeType":"YulLiteral","src":"5795:2:14","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5786:3:14","nodeType":"YulIdentifier","src":"5786:3:14"},"nativeSrc":"5786:12:14","nodeType":"YulFunctionCall","src":"5786:12:14"},"variableNames":[{"name":"end","nativeSrc":"5779:3:14","nodeType":"YulIdentifier","src":"5779:3:14"}]}]},"name":"abi_encode_t_stringliteral_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5_to_t_string_memory_ptr_fromStack","nativeSrc":"5438:366:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"5572:3:14","nodeType":"YulTypedName","src":"5572:3:14","type":""}],"returnVariables":[{"name":"end","nativeSrc":"5580:3:14","nodeType":"YulTypedName","src":"5580:3:14","type":""}],"src":"5438:366:14"},{"body":{"nativeSrc":"5981:248:14","nodeType":"YulBlock","src":"5981:248:14","statements":[{"nativeSrc":"5991:26:14","nodeType":"YulAssignment","src":"5991:26:14","value":{"arguments":[{"name":"headStart","nativeSrc":"6003:9:14","nodeType":"YulIdentifier","src":"6003:9:14"},{"kind":"number","nativeSrc":"6014:2:14","nodeType":"YulLiteral","src":"6014:2:14","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5999:3:14","nodeType":"YulIdentifier","src":"5999:3:14"},"nativeSrc":"5999:18:14","nodeType":"YulFunctionCall","src":"5999:18:14"},"variableNames":[{"name":"tail","nativeSrc":"5991:4:14","nodeType":"YulIdentifier","src":"5991:4:14"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6038:9:14","nodeType":"YulIdentifier","src":"6038:9:14"},{"kind":"number","nativeSrc":"6049:1:14","nodeType":"YulLiteral","src":"6049:1:14","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6034:3:14","nodeType":"YulIdentifier","src":"6034:3:14"},"nativeSrc":"6034:17:14","nodeType":"YulFunctionCall","src":"6034:17:14"},{"arguments":[{"name":"tail","nativeSrc":"6057:4:14","nodeType":"YulIdentifier","src":"6057:4:14"},{"name":"headStart","nativeSrc":"6063:9:14","nodeType":"YulIdentifier","src":"6063:9:14"}],"functionName":{"name":"sub","nativeSrc":"6053:3:14","nodeType":"YulIdentifier","src":"6053:3:14"},"nativeSrc":"6053:20:14","nodeType":"YulFunctionCall","src":"6053:20:14"}],"functionName":{"name":"mstore","nativeSrc":"6027:6:14","nodeType":"YulIdentifier","src":"6027:6:14"},"nativeSrc":"6027:47:14","nodeType":"YulFunctionCall","src":"6027:47:14"},"nativeSrc":"6027:47:14","nodeType":"YulExpressionStatement","src":"6027:47:14"},{"nativeSrc":"6083:139:14","nodeType":"YulAssignment","src":"6083:139:14","value":{"arguments":[{"name":"tail","nativeSrc":"6217:4:14","nodeType":"YulIdentifier","src":"6217:4:14"}],"functionName":{"name":"abi_encode_t_stringliteral_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5_to_t_string_memory_ptr_fromStack","nativeSrc":"6091:124:14","nodeType":"YulIdentifier","src":"6091:124:14"},"nativeSrc":"6091:131:14","nodeType":"YulFunctionCall","src":"6091:131:14"},"variableNames":[{"name":"tail","nativeSrc":"6083:4:14","nodeType":"YulIdentifier","src":"6083:4:14"}]}]},"name":"abi_encode_tuple_t_stringliteral_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"5810:419:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5961:9:14","nodeType":"YulTypedName","src":"5961:9:14","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5976:4:14","nodeType":"YulTypedName","src":"5976:4:14","type":""}],"src":"5810:419:14"},{"body":{"nativeSrc":"6341:126:14","nodeType":"YulBlock","src":"6341:126:14","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"6363:6:14","nodeType":"YulIdentifier","src":"6363:6:14"},{"kind":"number","nativeSrc":"6371:1:14","nodeType":"YulLiteral","src":"6371:1:14","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6359:3:14","nodeType":"YulIdentifier","src":"6359:3:14"},"nativeSrc":"6359:14:14","nodeType":"YulFunctionCall","src":"6359:14:14"},{"hexValue":"455243313936373a206e657720696d706c656d656e746174696f6e206973206e","kind":"string","nativeSrc":"6375:34:14","nodeType":"YulLiteral","src":"6375:34:14","type":"","value":"ERC1967: new implementation is n"}],"functionName":{"name":"mstore","nativeSrc":"6352:6:14","nodeType":"YulIdentifier","src":"6352:6:14"},"nativeSrc":"6352:58:14","nodeType":"YulFunctionCall","src":"6352:58:14"},"nativeSrc":"6352:58:14","nodeType":"YulExpressionStatement","src":"6352:58:14"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"6431:6:14","nodeType":"YulIdentifier","src":"6431:6:14"},{"kind":"number","nativeSrc":"6439:2:14","nodeType":"YulLiteral","src":"6439:2:14","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6427:3:14","nodeType":"YulIdentifier","src":"6427:3:14"},"nativeSrc":"6427:15:14","nodeType":"YulFunctionCall","src":"6427:15:14"},{"hexValue":"6f74206120636f6e7472616374","kind":"string","nativeSrc":"6444:15:14","nodeType":"YulLiteral","src":"6444:15:14","type":"","value":"ot a contract"}],"functionName":{"name":"mstore","nativeSrc":"6420:6:14","nodeType":"YulIdentifier","src":"6420:6:14"},"nativeSrc":"6420:40:14","nodeType":"YulFunctionCall","src":"6420:40:14"},"nativeSrc":"6420:40:14","nodeType":"YulExpressionStatement","src":"6420:40:14"}]},"name":"store_literal_in_memory_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65","nativeSrc":"6235:232:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"6333:6:14","nodeType":"YulTypedName","src":"6333:6:14","type":""}],"src":"6235:232:14"},{"body":{"nativeSrc":"6619:220:14","nodeType":"YulBlock","src":"6619:220:14","statements":[{"nativeSrc":"6629:74:14","nodeType":"YulAssignment","src":"6629:74:14","value":{"arguments":[{"name":"pos","nativeSrc":"6695:3:14","nodeType":"YulIdentifier","src":"6695:3:14"},{"kind":"number","nativeSrc":"6700:2:14","nodeType":"YulLiteral","src":"6700:2:14","type":"","value":"45"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"6636:58:14","nodeType":"YulIdentifier","src":"6636:58:14"},"nativeSrc":"6636:67:14","nodeType":"YulFunctionCall","src":"6636:67:14"},"variableNames":[{"name":"pos","nativeSrc":"6629:3:14","nodeType":"YulIdentifier","src":"6629:3:14"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"6801:3:14","nodeType":"YulIdentifier","src":"6801:3:14"}],"functionName":{"name":"store_literal_in_memory_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65","nativeSrc":"6712:88:14","nodeType":"YulIdentifier","src":"6712:88:14"},"nativeSrc":"6712:93:14","nodeType":"YulFunctionCall","src":"6712:93:14"},"nativeSrc":"6712:93:14","nodeType":"YulExpressionStatement","src":"6712:93:14"},{"nativeSrc":"6814:19:14","nodeType":"YulAssignment","src":"6814:19:14","value":{"arguments":[{"name":"pos","nativeSrc":"6825:3:14","nodeType":"YulIdentifier","src":"6825:3:14"},{"kind":"number","nativeSrc":"6830:2:14","nodeType":"YulLiteral","src":"6830:2:14","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"6821:3:14","nodeType":"YulIdentifier","src":"6821:3:14"},"nativeSrc":"6821:12:14","nodeType":"YulFunctionCall","src":"6821:12:14"},"variableNames":[{"name":"end","nativeSrc":"6814:3:14","nodeType":"YulIdentifier","src":"6814:3:14"}]}]},"name":"abi_encode_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65_to_t_string_memory_ptr_fromStack","nativeSrc":"6473:366:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"6607:3:14","nodeType":"YulTypedName","src":"6607:3:14","type":""}],"returnVariables":[{"name":"end","nativeSrc":"6615:3:14","nodeType":"YulTypedName","src":"6615:3:14","type":""}],"src":"6473:366:14"},{"body":{"nativeSrc":"7016:248:14","nodeType":"YulBlock","src":"7016:248:14","statements":[{"nativeSrc":"7026:26:14","nodeType":"YulAssignment","src":"7026:26:14","value":{"arguments":[{"name":"headStart","nativeSrc":"7038:9:14","nodeType":"YulIdentifier","src":"7038:9:14"},{"kind":"number","nativeSrc":"7049:2:14","nodeType":"YulLiteral","src":"7049:2:14","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7034:3:14","nodeType":"YulIdentifier","src":"7034:3:14"},"nativeSrc":"7034:18:14","nodeType":"YulFunctionCall","src":"7034:18:14"},"variableNames":[{"name":"tail","nativeSrc":"7026:4:14","nodeType":"YulIdentifier","src":"7026:4:14"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7073:9:14","nodeType":"YulIdentifier","src":"7073:9:14"},{"kind":"number","nativeSrc":"7084:1:14","nodeType":"YulLiteral","src":"7084:1:14","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"7069:3:14","nodeType":"YulIdentifier","src":"7069:3:14"},"nativeSrc":"7069:17:14","nodeType":"YulFunctionCall","src":"7069:17:14"},{"arguments":[{"name":"tail","nativeSrc":"7092:4:14","nodeType":"YulIdentifier","src":"7092:4:14"},{"name":"headStart","nativeSrc":"7098:9:14","nodeType":"YulIdentifier","src":"7098:9:14"}],"functionName":{"name":"sub","nativeSrc":"7088:3:14","nodeType":"YulIdentifier","src":"7088:3:14"},"nativeSrc":"7088:20:14","nodeType":"YulFunctionCall","src":"7088:20:14"}],"functionName":{"name":"mstore","nativeSrc":"7062:6:14","nodeType":"YulIdentifier","src":"7062:6:14"},"nativeSrc":"7062:47:14","nodeType":"YulFunctionCall","src":"7062:47:14"},"nativeSrc":"7062:47:14","nodeType":"YulExpressionStatement","src":"7062:47:14"},{"nativeSrc":"7118:139:14","nodeType":"YulAssignment","src":"7118:139:14","value":{"arguments":[{"name":"tail","nativeSrc":"7252:4:14","nodeType":"YulIdentifier","src":"7252:4:14"}],"functionName":{"name":"abi_encode_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65_to_t_string_memory_ptr_fromStack","nativeSrc":"7126:124:14","nodeType":"YulIdentifier","src":"7126:124:14"},"nativeSrc":"7126:131:14","nodeType":"YulFunctionCall","src":"7126:131:14"},"variableNames":[{"name":"tail","nativeSrc":"7118:4:14","nodeType":"YulIdentifier","src":"7118:4:14"}]}]},"name":"abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"6845:419:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6996:9:14","nodeType":"YulTypedName","src":"6996:9:14","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7011:4:14","nodeType":"YulTypedName","src":"7011:4:14","type":""}],"src":"6845:419:14"},{"body":{"nativeSrc":"7376:119:14","nodeType":"YulBlock","src":"7376:119:14","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"7398:6:14","nodeType":"YulIdentifier","src":"7398:6:14"},{"kind":"number","nativeSrc":"7406:1:14","nodeType":"YulLiteral","src":"7406:1:14","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"7394:3:14","nodeType":"YulIdentifier","src":"7394:3:14"},"nativeSrc":"7394:14:14","nodeType":"YulFunctionCall","src":"7394:14:14"},{"hexValue":"416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f","kind":"string","nativeSrc":"7410:34:14","nodeType":"YulLiteral","src":"7410:34:14","type":"","value":"Address: delegate call to non-co"}],"functionName":{"name":"mstore","nativeSrc":"7387:6:14","nodeType":"YulIdentifier","src":"7387:6:14"},"nativeSrc":"7387:58:14","nodeType":"YulFunctionCall","src":"7387:58:14"},"nativeSrc":"7387:58:14","nodeType":"YulExpressionStatement","src":"7387:58:14"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"7466:6:14","nodeType":"YulIdentifier","src":"7466:6:14"},{"kind":"number","nativeSrc":"7474:2:14","nodeType":"YulLiteral","src":"7474:2:14","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7462:3:14","nodeType":"YulIdentifier","src":"7462:3:14"},"nativeSrc":"7462:15:14","nodeType":"YulFunctionCall","src":"7462:15:14"},{"hexValue":"6e7472616374","kind":"string","nativeSrc":"7479:8:14","nodeType":"YulLiteral","src":"7479:8:14","type":"","value":"ntract"}],"functionName":{"name":"mstore","nativeSrc":"7455:6:14","nodeType":"YulIdentifier","src":"7455:6:14"},"nativeSrc":"7455:33:14","nodeType":"YulFunctionCall","src":"7455:33:14"},"nativeSrc":"7455:33:14","nodeType":"YulExpressionStatement","src":"7455:33:14"}]},"name":"store_literal_in_memory_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520","nativeSrc":"7270:225:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"7368:6:14","nodeType":"YulTypedName","src":"7368:6:14","type":""}],"src":"7270:225:14"},{"body":{"nativeSrc":"7647:220:14","nodeType":"YulBlock","src":"7647:220:14","statements":[{"nativeSrc":"7657:74:14","nodeType":"YulAssignment","src":"7657:74:14","value":{"arguments":[{"name":"pos","nativeSrc":"7723:3:14","nodeType":"YulIdentifier","src":"7723:3:14"},{"kind":"number","nativeSrc":"7728:2:14","nodeType":"YulLiteral","src":"7728:2:14","type":"","value":"38"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"7664:58:14","nodeType":"YulIdentifier","src":"7664:58:14"},"nativeSrc":"7664:67:14","nodeType":"YulFunctionCall","src":"7664:67:14"},"variableNames":[{"name":"pos","nativeSrc":"7657:3:14","nodeType":"YulIdentifier","src":"7657:3:14"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"7829:3:14","nodeType":"YulIdentifier","src":"7829:3:14"}],"functionName":{"name":"store_literal_in_memory_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520","nativeSrc":"7740:88:14","nodeType":"YulIdentifier","src":"7740:88:14"},"nativeSrc":"7740:93:14","nodeType":"YulFunctionCall","src":"7740:93:14"},"nativeSrc":"7740:93:14","nodeType":"YulExpressionStatement","src":"7740:93:14"},{"nativeSrc":"7842:19:14","nodeType":"YulAssignment","src":"7842:19:14","value":{"arguments":[{"name":"pos","nativeSrc":"7853:3:14","nodeType":"YulIdentifier","src":"7853:3:14"},{"kind":"number","nativeSrc":"7858:2:14","nodeType":"YulLiteral","src":"7858:2:14","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"7849:3:14","nodeType":"YulIdentifier","src":"7849:3:14"},"nativeSrc":"7849:12:14","nodeType":"YulFunctionCall","src":"7849:12:14"},"variableNames":[{"name":"end","nativeSrc":"7842:3:14","nodeType":"YulIdentifier","src":"7842:3:14"}]}]},"name":"abi_encode_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520_to_t_string_memory_ptr_fromStack","nativeSrc":"7501:366:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"7635:3:14","nodeType":"YulTypedName","src":"7635:3:14","type":""}],"returnVariables":[{"name":"end","nativeSrc":"7643:3:14","nodeType":"YulTypedName","src":"7643:3:14","type":""}],"src":"7501:366:14"},{"body":{"nativeSrc":"8044:248:14","nodeType":"YulBlock","src":"8044:248:14","statements":[{"nativeSrc":"8054:26:14","nodeType":"YulAssignment","src":"8054:26:14","value":{"arguments":[{"name":"headStart","nativeSrc":"8066:9:14","nodeType":"YulIdentifier","src":"8066:9:14"},{"kind":"number","nativeSrc":"8077:2:14","nodeType":"YulLiteral","src":"8077:2:14","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8062:3:14","nodeType":"YulIdentifier","src":"8062:3:14"},"nativeSrc":"8062:18:14","nodeType":"YulFunctionCall","src":"8062:18:14"},"variableNames":[{"name":"tail","nativeSrc":"8054:4:14","nodeType":"YulIdentifier","src":"8054:4:14"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8101:9:14","nodeType":"YulIdentifier","src":"8101:9:14"},{"kind":"number","nativeSrc":"8112:1:14","nodeType":"YulLiteral","src":"8112:1:14","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"8097:3:14","nodeType":"YulIdentifier","src":"8097:3:14"},"nativeSrc":"8097:17:14","nodeType":"YulFunctionCall","src":"8097:17:14"},{"arguments":[{"name":"tail","nativeSrc":"8120:4:14","nodeType":"YulIdentifier","src":"8120:4:14"},{"name":"headStart","nativeSrc":"8126:9:14","nodeType":"YulIdentifier","src":"8126:9:14"}],"functionName":{"name":"sub","nativeSrc":"8116:3:14","nodeType":"YulIdentifier","src":"8116:3:14"},"nativeSrc":"8116:20:14","nodeType":"YulFunctionCall","src":"8116:20:14"}],"functionName":{"name":"mstore","nativeSrc":"8090:6:14","nodeType":"YulIdentifier","src":"8090:6:14"},"nativeSrc":"8090:47:14","nodeType":"YulFunctionCall","src":"8090:47:14"},"nativeSrc":"8090:47:14","nodeType":"YulExpressionStatement","src":"8090:47:14"},{"nativeSrc":"8146:139:14","nodeType":"YulAssignment","src":"8146:139:14","value":{"arguments":[{"name":"tail","nativeSrc":"8280:4:14","nodeType":"YulIdentifier","src":"8280:4:14"}],"functionName":{"name":"abi_encode_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520_to_t_string_memory_ptr_fromStack","nativeSrc":"8154:124:14","nodeType":"YulIdentifier","src":"8154:124:14"},"nativeSrc":"8154:131:14","nodeType":"YulFunctionCall","src":"8154:131:14"},"variableNames":[{"name":"tail","nativeSrc":"8146:4:14","nodeType":"YulIdentifier","src":"8146:4:14"}]}]},"name":"abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"7873:419:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8024:9:14","nodeType":"YulTypedName","src":"8024:9:14","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8039:4:14","nodeType":"YulTypedName","src":"8039:4:14","type":""}],"src":"7873:419:14"},{"body":{"nativeSrc":"8356:40:14","nodeType":"YulBlock","src":"8356:40:14","statements":[{"nativeSrc":"8367:22:14","nodeType":"YulAssignment","src":"8367:22:14","value":{"arguments":[{"name":"value","nativeSrc":"8383:5:14","nodeType":"YulIdentifier","src":"8383:5:14"}],"functionName":{"name":"mload","nativeSrc":"8377:5:14","nodeType":"YulIdentifier","src":"8377:5:14"},"nativeSrc":"8377:12:14","nodeType":"YulFunctionCall","src":"8377:12:14"},"variableNames":[{"name":"length","nativeSrc":"8367:6:14","nodeType":"YulIdentifier","src":"8367:6:14"}]}]},"name":"array_length_t_bytes_memory_ptr","nativeSrc":"8298:98:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8339:5:14","nodeType":"YulTypedName","src":"8339:5:14","type":""}],"returnVariables":[{"name":"length","nativeSrc":"8349:6:14","nodeType":"YulTypedName","src":"8349:6:14","type":""}],"src":"8298:98:14"},{"body":{"nativeSrc":"8515:34:14","nodeType":"YulBlock","src":"8515:34:14","statements":[{"nativeSrc":"8525:18:14","nodeType":"YulAssignment","src":"8525:18:14","value":{"name":"pos","nativeSrc":"8540:3:14","nodeType":"YulIdentifier","src":"8540:3:14"},"variableNames":[{"name":"updated_pos","nativeSrc":"8525:11:14","nodeType":"YulIdentifier","src":"8525:11:14"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"8402:147:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"8487:3:14","nodeType":"YulTypedName","src":"8487:3:14","type":""},{"name":"length","nativeSrc":"8492:6:14","nodeType":"YulTypedName","src":"8492:6:14","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"8503:11:14","nodeType":"YulTypedName","src":"8503:11:14","type":""}],"src":"8402:147:14"},{"body":{"nativeSrc":"8663:278:14","nodeType":"YulBlock","src":"8663:278:14","statements":[{"nativeSrc":"8673:52:14","nodeType":"YulVariableDeclaration","src":"8673:52:14","value":{"arguments":[{"name":"value","nativeSrc":"8719:5:14","nodeType":"YulIdentifier","src":"8719:5:14"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"8687:31:14","nodeType":"YulIdentifier","src":"8687:31:14"},"nativeSrc":"8687:38:14","nodeType":"YulFunctionCall","src":"8687:38:14"},"variables":[{"name":"length","nativeSrc":"8677:6:14","nodeType":"YulTypedName","src":"8677:6:14","type":""}]},{"nativeSrc":"8734:95:14","nodeType":"YulAssignment","src":"8734:95:14","value":{"arguments":[{"name":"pos","nativeSrc":"8817:3:14","nodeType":"YulIdentifier","src":"8817:3:14"},{"name":"length","nativeSrc":"8822:6:14","nodeType":"YulIdentifier","src":"8822:6:14"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"8741:75:14","nodeType":"YulIdentifier","src":"8741:75:14"},"nativeSrc":"8741:88:14","nodeType":"YulFunctionCall","src":"8741:88:14"},"variableNames":[{"name":"pos","nativeSrc":"8734:3:14","nodeType":"YulIdentifier","src":"8734:3:14"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"8877:5:14","nodeType":"YulIdentifier","src":"8877:5:14"},{"kind":"number","nativeSrc":"8884:4:14","nodeType":"YulLiteral","src":"8884:4:14","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8873:3:14","nodeType":"YulIdentifier","src":"8873:3:14"},"nativeSrc":"8873:16:14","nodeType":"YulFunctionCall","src":"8873:16:14"},{"name":"pos","nativeSrc":"8891:3:14","nodeType":"YulIdentifier","src":"8891:3:14"},{"name":"length","nativeSrc":"8896:6:14","nodeType":"YulIdentifier","src":"8896:6:14"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"8838:34:14","nodeType":"YulIdentifier","src":"8838:34:14"},"nativeSrc":"8838:65:14","nodeType":"YulFunctionCall","src":"8838:65:14"},"nativeSrc":"8838:65:14","nodeType":"YulExpressionStatement","src":"8838:65:14"},{"nativeSrc":"8912:23:14","nodeType":"YulAssignment","src":"8912:23:14","value":{"arguments":[{"name":"pos","nativeSrc":"8923:3:14","nodeType":"YulIdentifier","src":"8923:3:14"},{"name":"length","nativeSrc":"8928:6:14","nodeType":"YulIdentifier","src":"8928:6:14"}],"functionName":{"name":"add","nativeSrc":"8919:3:14","nodeType":"YulIdentifier","src":"8919:3:14"},"nativeSrc":"8919:16:14","nodeType":"YulFunctionCall","src":"8919:16:14"},"variableNames":[{"name":"end","nativeSrc":"8912:3:14","nodeType":"YulIdentifier","src":"8912:3:14"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"8555:386:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8644:5:14","nodeType":"YulTypedName","src":"8644:5:14","type":""},{"name":"pos","nativeSrc":"8651:3:14","nodeType":"YulTypedName","src":"8651:3:14","type":""}],"returnVariables":[{"name":"end","nativeSrc":"8659:3:14","nodeType":"YulTypedName","src":"8659:3:14","type":""}],"src":"8555:386:14"},{"body":{"nativeSrc":"9081:137:14","nodeType":"YulBlock","src":"9081:137:14","statements":[{"nativeSrc":"9092:100:14","nodeType":"YulAssignment","src":"9092:100:14","value":{"arguments":[{"name":"value0","nativeSrc":"9179:6:14","nodeType":"YulIdentifier","src":"9179:6:14"},{"name":"pos","nativeSrc":"9188:3:14","nodeType":"YulIdentifier","src":"9188:3:14"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"9099:79:14","nodeType":"YulIdentifier","src":"9099:79:14"},"nativeSrc":"9099:93:14","nodeType":"YulFunctionCall","src":"9099:93:14"},"variableNames":[{"name":"pos","nativeSrc":"9092:3:14","nodeType":"YulIdentifier","src":"9092:3:14"}]},{"nativeSrc":"9202:10:14","nodeType":"YulAssignment","src":"9202:10:14","value":{"name":"pos","nativeSrc":"9209:3:14","nodeType":"YulIdentifier","src":"9209:3:14"},"variableNames":[{"name":"end","nativeSrc":"9202:3:14","nodeType":"YulIdentifier","src":"9202:3:14"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"8947:271:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"9060:3:14","nodeType":"YulTypedName","src":"9060:3:14","type":""},{"name":"value0","nativeSrc":"9066:6:14","nodeType":"YulTypedName","src":"9066:6:14","type":""}],"returnVariables":[{"name":"end","nativeSrc":"9077:3:14","nodeType":"YulTypedName","src":"9077:3:14","type":""}],"src":"8947:271:14"},{"body":{"nativeSrc":"9283:40:14","nodeType":"YulBlock","src":"9283:40:14","statements":[{"nativeSrc":"9294:22:14","nodeType":"YulAssignment","src":"9294:22:14","value":{"arguments":[{"name":"value","nativeSrc":"9310:5:14","nodeType":"YulIdentifier","src":"9310:5:14"}],"functionName":{"name":"mload","nativeSrc":"9304:5:14","nodeType":"YulIdentifier","src":"9304:5:14"},"nativeSrc":"9304:12:14","nodeType":"YulFunctionCall","src":"9304:12:14"},"variableNames":[{"name":"length","nativeSrc":"9294:6:14","nodeType":"YulIdentifier","src":"9294:6:14"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"9224:99:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9266:5:14","nodeType":"YulTypedName","src":"9266:5:14","type":""}],"returnVariables":[{"name":"length","nativeSrc":"9276:6:14","nodeType":"YulTypedName","src":"9276:6:14","type":""}],"src":"9224:99:14"},{"body":{"nativeSrc":"9421:285:14","nodeType":"YulBlock","src":"9421:285:14","statements":[{"nativeSrc":"9431:53:14","nodeType":"YulVariableDeclaration","src":"9431:53:14","value":{"arguments":[{"name":"value","nativeSrc":"9478:5:14","nodeType":"YulIdentifier","src":"9478:5:14"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"9445:32:14","nodeType":"YulIdentifier","src":"9445:32:14"},"nativeSrc":"9445:39:14","nodeType":"YulFunctionCall","src":"9445:39:14"},"variables":[{"name":"length","nativeSrc":"9435:6:14","nodeType":"YulTypedName","src":"9435:6:14","type":""}]},{"nativeSrc":"9493:78:14","nodeType":"YulAssignment","src":"9493:78:14","value":{"arguments":[{"name":"pos","nativeSrc":"9559:3:14","nodeType":"YulIdentifier","src":"9559:3:14"},{"name":"length","nativeSrc":"9564:6:14","nodeType":"YulIdentifier","src":"9564:6:14"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"9500:58:14","nodeType":"YulIdentifier","src":"9500:58:14"},"nativeSrc":"9500:71:14","nodeType":"YulFunctionCall","src":"9500:71:14"},"variableNames":[{"name":"pos","nativeSrc":"9493:3:14","nodeType":"YulIdentifier","src":"9493:3:14"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9619:5:14","nodeType":"YulIdentifier","src":"9619:5:14"},{"kind":"number","nativeSrc":"9626:4:14","nodeType":"YulLiteral","src":"9626:4:14","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9615:3:14","nodeType":"YulIdentifier","src":"9615:3:14"},"nativeSrc":"9615:16:14","nodeType":"YulFunctionCall","src":"9615:16:14"},{"name":"pos","nativeSrc":"9633:3:14","nodeType":"YulIdentifier","src":"9633:3:14"},{"name":"length","nativeSrc":"9638:6:14","nodeType":"YulIdentifier","src":"9638:6:14"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"9580:34:14","nodeType":"YulIdentifier","src":"9580:34:14"},"nativeSrc":"9580:65:14","nodeType":"YulFunctionCall","src":"9580:65:14"},"nativeSrc":"9580:65:14","nodeType":"YulExpressionStatement","src":"9580:65:14"},{"nativeSrc":"9654:46:14","nodeType":"YulAssignment","src":"9654:46:14","value":{"arguments":[{"name":"pos","nativeSrc":"9665:3:14","nodeType":"YulIdentifier","src":"9665:3:14"},{"arguments":[{"name":"length","nativeSrc":"9692:6:14","nodeType":"YulIdentifier","src":"9692:6:14"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"9670:21:14","nodeType":"YulIdentifier","src":"9670:21:14"},"nativeSrc":"9670:29:14","nodeType":"YulFunctionCall","src":"9670:29:14"}],"functionName":{"name":"add","nativeSrc":"9661:3:14","nodeType":"YulIdentifier","src":"9661:3:14"},"nativeSrc":"9661:39:14","nodeType":"YulFunctionCall","src":"9661:39:14"},"variableNames":[{"name":"end","nativeSrc":"9654:3:14","nodeType":"YulIdentifier","src":"9654:3:14"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"9329:377:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9402:5:14","nodeType":"YulTypedName","src":"9402:5:14","type":""},{"name":"pos","nativeSrc":"9409:3:14","nodeType":"YulTypedName","src":"9409:3:14","type":""}],"returnVariables":[{"name":"end","nativeSrc":"9417:3:14","nodeType":"YulTypedName","src":"9417:3:14","type":""}],"src":"9329:377:14"},{"body":{"nativeSrc":"9830:195:14","nodeType":"YulBlock","src":"9830:195:14","statements":[{"nativeSrc":"9840:26:14","nodeType":"YulAssignment","src":"9840:26:14","value":{"arguments":[{"name":"headStart","nativeSrc":"9852:9:14","nodeType":"YulIdentifier","src":"9852:9:14"},{"kind":"number","nativeSrc":"9863:2:14","nodeType":"YulLiteral","src":"9863:2:14","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9848:3:14","nodeType":"YulIdentifier","src":"9848:3:14"},"nativeSrc":"9848:18:14","nodeType":"YulFunctionCall","src":"9848:18:14"},"variableNames":[{"name":"tail","nativeSrc":"9840:4:14","nodeType":"YulIdentifier","src":"9840:4:14"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9887:9:14","nodeType":"YulIdentifier","src":"9887:9:14"},{"kind":"number","nativeSrc":"9898:1:14","nodeType":"YulLiteral","src":"9898:1:14","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"9883:3:14","nodeType":"YulIdentifier","src":"9883:3:14"},"nativeSrc":"9883:17:14","nodeType":"YulFunctionCall","src":"9883:17:14"},{"arguments":[{"name":"tail","nativeSrc":"9906:4:14","nodeType":"YulIdentifier","src":"9906:4:14"},{"name":"headStart","nativeSrc":"9912:9:14","nodeType":"YulIdentifier","src":"9912:9:14"}],"functionName":{"name":"sub","nativeSrc":"9902:3:14","nodeType":"YulIdentifier","src":"9902:3:14"},"nativeSrc":"9902:20:14","nodeType":"YulFunctionCall","src":"9902:20:14"}],"functionName":{"name":"mstore","nativeSrc":"9876:6:14","nodeType":"YulIdentifier","src":"9876:6:14"},"nativeSrc":"9876:47:14","nodeType":"YulFunctionCall","src":"9876:47:14"},"nativeSrc":"9876:47:14","nodeType":"YulExpressionStatement","src":"9876:47:14"},{"nativeSrc":"9932:86:14","nodeType":"YulAssignment","src":"9932:86:14","value":{"arguments":[{"name":"value0","nativeSrc":"10004:6:14","nodeType":"YulIdentifier","src":"10004:6:14"},{"name":"tail","nativeSrc":"10013:4:14","nodeType":"YulIdentifier","src":"10013:4:14"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"9940:63:14","nodeType":"YulIdentifier","src":"9940:63:14"},"nativeSrc":"9940:78:14","nodeType":"YulFunctionCall","src":"9940:78:14"},"variableNames":[{"name":"tail","nativeSrc":"9932:4:14","nodeType":"YulIdentifier","src":"9932:4:14"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"9712:313:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9802:9:14","nodeType":"YulTypedName","src":"9802:9:14","type":""},{"name":"value0","nativeSrc":"9814:6:14","nodeType":"YulTypedName","src":"9814:6:14","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9825:4:14","nodeType":"YulTypedName","src":"9825:4:14","type":""}],"src":"9712:313:14"}]},"contents":"{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_address(value)\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_bytes_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n mcopy(dst, src, length)\n mstore(add(dst, length), 0)\n\n }\n\n function abi_decode_available_length_t_bytes_memory_ptr_fromMemory(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_bytes_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_memory_to_memory_with_cleanup(src, dst, length)\n }\n\n // bytes\n function abi_decode_t_bytes_memory_ptr_fromMemory(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := mload(offset)\n array := abi_decode_available_length_t_bytes_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_addresst_addresst_bytes_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := mload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value2 := abi_decode_t_bytes_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n diff := sub(x, y)\n\n if gt(diff, x) { panic_error_0x11() }\n\n }\n\n function panic_error_0x01() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x01)\n revert(0, 0x24)\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function store_literal_in_memory_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC1967: new admin is the zero a\")\n\n mstore(add(memPtr, 32), \"ddress\")\n\n }\n\n function abi_encode_t_stringliteral_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n store_literal_in_memory_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC1967: new implementation is n\")\n\n mstore(add(memPtr, 32), \"ot a contract\")\n\n }\n\n function abi_encode_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 45)\n store_literal_in_memory_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520(memPtr) {\n\n mstore(add(memPtr, 0), \"Address: delegate call to non-co\")\n\n mstore(add(memPtr, 32), \"ntract\")\n\n }\n\n function abi_encode_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n store_literal_in_memory_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, length)\n }\n\n function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value0) -> end {\n\n pos := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n end := pos\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n}\n","id":14,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"6080604052604051610fc2380380610fc283398101604081905261002291610460565b828161004f60017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd6104d9565b5f80516020610f7b8339815191521461006a5761006a6104ec565b61007582825f6100cf565b506100a3905060017fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61046104d9565b5f80516020610f5b833981519152146100be576100be6104ec565b6100c7826100fa565b505050610698565b6100d88361015c565b5f825111806100e45750805b156100f5576100f3838361019b565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6101395f80516020610f5b833981519152546001600160a01b031690565b8260405161014892919061050f565b60405180910390a1610159816101c9565b50565b61016581610229565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606101c08383604051806060016040528060278152602001610f9b60279139610264565b90505b92915050565b6001600160a01b0381166101f85760405162461bcd60e51b81526004016101ef9061056f565b60405180910390fd5b805f80516020610f5b8339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102505760405162461bcd60e51b81526004016101ef906105c8565b805f80516020610f7b833981519152610208565b60606001600160a01b0384163b61028d5760405162461bcd60e51b81526004016101ef9061061a565b5f80856001600160a01b0316856040516102a7919061064b565b5f60405180830381855af49150503d805f81146102df576040519150601f19603f3d011682016040523d82523d5f602084013e6102e4565b606091505b5090925090506102f5828286610301565b925050505b9392505050565b606083156103105750816102fa565b8251156103205782518084602001fd5b8160405162461bcd60e51b81526004016101ef9190610687565b5f6001600160a01b0382166101c3565b6103538161033a565b8114610159575f80fd5b80516101c38161034a565b634e487b7160e01b5f52604160045260245ffd5b601f19601f83011681018181106001600160401b03821117156103a1576103a1610368565b6040525050565b5f6103b260405190565b90506103be828261037c565b919050565b5f6001600160401b038211156103db576103db610368565b601f19601f83011660200192915050565b8281835e505f910152565b5f610409610404846103c3565b6103a8565b905082815260208101848484011115610423576104235f80fd5b61042e8482856103ec565b509392505050565b5f82601f830112610448576104485f80fd5b81516104588482602086016103f7565b949350505050565b5f805f60608486031215610475576104755f80fd5b5f610480868661035d565b93505060206104918682870161035d565b92505060408401516001600160401b038111156104af576104af5f80fd5b6104bb86828701610436565b9150509250925092565b634e487b7160e01b5f52601160045260245ffd5b818103818111156101c3576101c36104c5565b634e487b7160e01b5f52600160045260245ffd5b6105098161033a565b82525050565b6040810161051d8285610500565b6102fa6020830184610500565b602681525f602082017f455243313936373a206e65772061646d696e20697320746865207a65726f206181526564647265737360d01b602082015291505b5060400190565b602080825281016101c38161052a565b602d81525f602082017f455243313936373a206e657720696d706c656d656e746174696f6e206973206e81526c1bdd08184818dbdb9d1c9858dd609a1b60208201529150610568565b602080825281016101c38161057f565b602681525f602082017f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f8152651b9d1c9858dd60d21b60208201529150610568565b602080825281016101c3816105d8565b5f610633825190565b6106418185602086016103ec565b9290920192915050565b5f6102fa828461062a565b5f61065f825190565b8084526020840193506106768185602086016103ec565b601f01601f19169290920192915050565b602080825281016101c08184610656565b6108b6806106a55f395ff3fe60806040526004361061004d575f3560e01c80633659cfe6146100645780634f1ef286146100835780635c60da1b146100965780638f283970146100c0578063f851a440146100df5761005c565b3661005c5761005a6100f3565b005b61005a6100f3565b34801561006f575f80fd5b5061005a61007e366004610571565b61010d565b61005a6100913660046105e5565b610148565b3480156100a1575f80fd5b506100aa6101ae565b6040516100b7919061064b565b60405180910390f35b3480156100cb575f80fd5b5061005a6100da366004610571565b6101de565b3480156100ea575f80fd5b506100aa6101fe565b6100fb61021e565b61010b610106610256565b61025f565b565b61011561027d565b6001600160a01b031633036101405761013d8160405180602001604052805f8152505f6102af565b50565b61013d6100f3565b61015061027d565b6001600160a01b031633036101a6576101a18383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250600192506102af915050565b505050565b6101a16100f3565b5f6101b761027d565b6001600160a01b031633036101d3576101ce610256565b905090565b6101db6100f3565b90565b6101e661027d565b6001600160a01b031633036101405761013d816102d9565b5f61020761027d565b6001600160a01b031633036101d3576101ce61027d565b61022661027d565b6001600160a01b0316330361010b5760405162461bcd60e51b815260040161024d90610659565b60405180910390fd5b5f6101ce610322565b365f80375f80365f845af43d5f803e808015610279573d5ff35b3d5ffd5b5f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b6102b883610349565b5f825111806102c45750805b156101a1576102d38383610388565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61030261027d565b826040516103119291906106c5565b60405180910390a161013d816103b6565b5f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6102a0565b61035281610420565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606103ad838360405180606001604052806027815260200161085a6027913961046e565b90505b92915050565b6001600160a01b0381166103dc5760405162461bcd60e51b815260040161024d90610725565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6104475760405162461bcd60e51b815260040161024d9061077e565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6103ff565b60606001600160a01b0384163b6104975760405162461bcd60e51b815260040161024d906107d0565b5f80856001600160a01b0316856040516104b1919061080c565b5f60405180830381855af49150503d805f81146104e9576040519150601f19603f3d011682016040523d82523d5f602084013e6104ee565b606091505b50915091506104fe82828661050a565b925050505b9392505050565b60608315610519575081610503565b8251156105295782518084602001fd5b8160405162461bcd60e51b815260040161024d9190610848565b5f6001600160a01b0382166103b0565b61055c81610543565b811461013d575f80fd5b80356103b081610553565b5f60208284031215610584576105845f80fd5b5f61058f8484610566565b949350505050565b5f8083601f8401126105aa576105aa5f80fd5b50813567ffffffffffffffff8111156105c4576105c45f80fd5b6020830191508360018202830111156105de576105de5f80fd5b9250929050565b5f805f604084860312156105fa576105fa5f80fd5b5f6106058686610566565b935050602084013567ffffffffffffffff811115610624576106245f80fd5b61063086828701610597565b92509250509250925092565b61064581610543565b82525050565b602081016103b0828461063c565b602080825281016103b081604281527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60208201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267604082015261195d60f21b606082015260800190565b604081016106d3828561063c565b610503602083018461063c565b602681525f602082017f455243313936373a206e65772061646d696e20697320746865207a65726f206181526564647265737360d01b602082015291505b5060400190565b602080825281016103b0816106e0565b602d81525f602082017f455243313936373a206e657720696d706c656d656e746174696f6e206973206e81526c1bdd08184818dbdb9d1c9858dd609a1b6020820152915061071e565b602080825281016103b081610735565b602681525f602082017f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f8152651b9d1c9858dd60d21b6020820152915061071e565b602080825281016103b08161078e565b8281835e505f910152565b5f6107f4825190565b6108028185602086016107e0565b9290920192915050565b5f61050382846107eb565b5f610820825190565b8084526020840193506108378185602086016107e0565b601f01601f19169290920192915050565b602080825281016103ad818461081756fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212205c293cb82dd5d5b7228e518d5479dbf5bd70b6685ce9647aa6d360a311c6735064736f6c63430008190033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0xFC2 CODESIZE SUB DUP1 PUSH2 0xFC2 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x22 SWAP2 PUSH2 0x460 JUMP JUMPDEST DUP3 DUP2 PUSH2 0x4F PUSH1 0x1 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBD PUSH2 0x4D9 JUMP JUMPDEST PUSH0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF7B DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ PUSH2 0x6A JUMPI PUSH2 0x6A PUSH2 0x4EC JUMP JUMPDEST PUSH2 0x75 DUP3 DUP3 PUSH0 PUSH2 0xCF JUMP JUMPDEST POP PUSH2 0xA3 SWAP1 POP PUSH1 0x1 PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6104 PUSH2 0x4D9 JUMP JUMPDEST PUSH0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF5B DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ PUSH2 0xBE JUMPI PUSH2 0xBE PUSH2 0x4EC JUMP JUMPDEST PUSH2 0xC7 DUP3 PUSH2 0xFA JUMP JUMPDEST POP POP POP PUSH2 0x698 JUMP JUMPDEST PUSH2 0xD8 DUP4 PUSH2 0x15C JUMP JUMPDEST PUSH0 DUP3 MLOAD GT DUP1 PUSH2 0xE4 JUMPI POP DUP1 JUMPDEST ISZERO PUSH2 0xF5 JUMPI PUSH2 0xF3 DUP4 DUP4 PUSH2 0x19B JUMP JUMPDEST POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH32 0x7E644D79422F17C01E4894B5F4F588D331EBFA28653D42AE832DC59E38C9798F PUSH2 0x139 PUSH0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF5B DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST DUP3 PUSH1 0x40 MLOAD PUSH2 0x148 SWAP3 SWAP2 SWAP1 PUSH2 0x50F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH2 0x159 DUP2 PUSH2 0x1C9 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x165 DUP2 PUSH2 0x229 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1C0 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xF9B PUSH1 0x27 SWAP2 CODECOPY PUSH2 0x264 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1F8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1EF SWAP1 PUSH2 0x56F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF5B DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE PUSH2 0x250 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1EF SWAP1 PUSH2 0x5C8 JUMP JUMPDEST DUP1 PUSH0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xF7B DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x208 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE PUSH2 0x28D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1EF SWAP1 PUSH2 0x61A JUMP JUMPDEST PUSH0 DUP1 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x40 MLOAD PUSH2 0x2A7 SWAP2 SWAP1 PUSH2 0x64B JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x2DF JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x2E4 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP1 SWAP3 POP SWAP1 POP PUSH2 0x2F5 DUP3 DUP3 DUP7 PUSH2 0x301 JUMP JUMPDEST SWAP3 POP POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x310 JUMPI POP DUP2 PUSH2 0x2FA JUMP JUMPDEST DUP3 MLOAD ISZERO PUSH2 0x320 JUMPI DUP3 MLOAD DUP1 DUP5 PUSH1 0x20 ADD REVERT JUMPDEST DUP2 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1EF SWAP2 SWAP1 PUSH2 0x687 JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x1C3 JUMP JUMPDEST PUSH2 0x353 DUP2 PUSH2 0x33A JUMP JUMPDEST DUP2 EQ PUSH2 0x159 JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH2 0x1C3 DUP2 PUSH2 0x34A JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT OR ISZERO PUSH2 0x3A1 JUMPI PUSH2 0x3A1 PUSH2 0x368 JUMP JUMPDEST PUSH1 0x40 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x3B2 PUSH1 0x40 MLOAD SWAP1 JUMP JUMPDEST SWAP1 POP PUSH2 0x3BE DUP3 DUP3 PUSH2 0x37C JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x3DB JUMPI PUSH2 0x3DB PUSH2 0x368 JUMP JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0x409 PUSH2 0x404 DUP5 PUSH2 0x3C3 JUMP JUMPDEST PUSH2 0x3A8 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x423 JUMPI PUSH2 0x423 PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x42E DUP5 DUP3 DUP6 PUSH2 0x3EC JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x448 JUMPI PUSH2 0x448 PUSH0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x458 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x3F7 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x475 JUMPI PUSH2 0x475 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x480 DUP7 DUP7 PUSH2 0x35D JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x491 DUP7 DUP3 DUP8 ADD PUSH2 0x35D JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4AF JUMPI PUSH2 0x4AF PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x4BB DUP7 DUP3 DUP8 ADD PUSH2 0x436 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x1C3 JUMPI PUSH2 0x1C3 PUSH2 0x4C5 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x509 DUP2 PUSH2 0x33A JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x51D DUP3 DUP6 PUSH2 0x500 JUMP JUMPDEST PUSH2 0x2FA PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x500 JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x455243313936373A206E65772061646D696E20697320746865207A65726F2061 DUP2 MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C3 DUP2 PUSH2 0x52A JUMP JUMPDEST PUSH1 0x2D DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x455243313936373A206E657720696D706C656D656E746174696F6E206973206E DUP2 MSTORE PUSH13 0x1BDD08184818DBDB9D1C9858DD PUSH1 0x9A SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x568 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C3 DUP2 PUSH2 0x57F JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x416464726573733A2064656C65676174652063616C6C20746F206E6F6E2D636F DUP2 MSTORE PUSH6 0x1B9D1C9858DD PUSH1 0xD2 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x568 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C3 DUP2 PUSH2 0x5D8 JUMP JUMPDEST PUSH0 PUSH2 0x633 DUP3 MLOAD SWAP1 JUMP JUMPDEST PUSH2 0x641 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x3EC JUMP JUMPDEST SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x2FA DUP3 DUP5 PUSH2 0x62A JUMP JUMPDEST PUSH0 PUSH2 0x65F DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x676 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x3EC JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C0 DUP2 DUP5 PUSH2 0x656 JUMP JUMPDEST PUSH2 0x8B6 DUP1 PUSH2 0x6A5 PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4D JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3659CFE6 EQ PUSH2 0x64 JUMPI DUP1 PUSH4 0x4F1EF286 EQ PUSH2 0x83 JUMPI DUP1 PUSH4 0x5C60DA1B EQ PUSH2 0x96 JUMPI DUP1 PUSH4 0x8F283970 EQ PUSH2 0xC0 JUMPI DUP1 PUSH4 0xF851A440 EQ PUSH2 0xDF JUMPI PUSH2 0x5C JUMP JUMPDEST CALLDATASIZE PUSH2 0x5C JUMPI PUSH2 0x5A PUSH2 0xF3 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x5A PUSH2 0xF3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x5A PUSH2 0x7E CALLDATASIZE PUSH1 0x4 PUSH2 0x571 JUMP JUMPDEST PUSH2 0x10D JUMP JUMPDEST PUSH2 0x5A PUSH2 0x91 CALLDATASIZE PUSH1 0x4 PUSH2 0x5E5 JUMP JUMPDEST PUSH2 0x148 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA1 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0xAA PUSH2 0x1AE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB7 SWAP2 SWAP1 PUSH2 0x64B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xCB JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x5A PUSH2 0xDA CALLDATASIZE PUSH1 0x4 PUSH2 0x571 JUMP JUMPDEST PUSH2 0x1DE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xEA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0xAA PUSH2 0x1FE JUMP JUMPDEST PUSH2 0xFB PUSH2 0x21E JUMP JUMPDEST PUSH2 0x10B PUSH2 0x106 PUSH2 0x256 JUMP JUMPDEST PUSH2 0x25F JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x115 PUSH2 0x27D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER SUB PUSH2 0x140 JUMPI PUSH2 0x13D DUP2 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP2 MSTORE POP PUSH0 PUSH2 0x2AF JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x13D PUSH2 0xF3 JUMP JUMPDEST PUSH2 0x150 PUSH2 0x27D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER SUB PUSH2 0x1A6 JUMPI PUSH2 0x1A1 DUP4 DUP4 DUP4 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH1 0x1 SWAP3 POP PUSH2 0x2AF SWAP2 POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x1A1 PUSH2 0xF3 JUMP JUMPDEST PUSH0 PUSH2 0x1B7 PUSH2 0x27D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER SUB PUSH2 0x1D3 JUMPI PUSH2 0x1CE PUSH2 0x256 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x1DB PUSH2 0xF3 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0x1E6 PUSH2 0x27D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER SUB PUSH2 0x140 JUMPI PUSH2 0x13D DUP2 PUSH2 0x2D9 JUMP JUMPDEST PUSH0 PUSH2 0x207 PUSH2 0x27D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER SUB PUSH2 0x1D3 JUMPI PUSH2 0x1CE PUSH2 0x27D JUMP JUMPDEST PUSH2 0x226 PUSH2 0x27D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER SUB PUSH2 0x10B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x24D SWAP1 PUSH2 0x659 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH2 0x1CE PUSH2 0x322 JUMP JUMPDEST CALLDATASIZE PUSH0 DUP1 CALLDATACOPY PUSH0 DUP1 CALLDATASIZE PUSH0 DUP5 GAS DELEGATECALL RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY DUP1 DUP1 ISZERO PUSH2 0x279 JUMPI RETURNDATASIZE PUSH0 RETURN JUMPDEST RETURNDATASIZE PUSH0 REVERT JUMPDEST PUSH0 PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 JUMPDEST SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2B8 DUP4 PUSH2 0x349 JUMP JUMPDEST PUSH0 DUP3 MLOAD GT DUP1 PUSH2 0x2C4 JUMPI POP DUP1 JUMPDEST ISZERO PUSH2 0x1A1 JUMPI PUSH2 0x2D3 DUP4 DUP4 PUSH2 0x388 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH32 0x7E644D79422F17C01E4894B5F4F588D331EBFA28653D42AE832DC59E38C9798F PUSH2 0x302 PUSH2 0x27D JUMP JUMPDEST DUP3 PUSH1 0x40 MLOAD PUSH2 0x311 SWAP3 SWAP2 SWAP1 PUSH2 0x6C5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH2 0x13D DUP2 PUSH2 0x3B6 JUMP JUMPDEST PUSH0 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC PUSH2 0x2A0 JUMP JUMPDEST PUSH2 0x352 DUP2 PUSH2 0x420 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x3AD DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x85A PUSH1 0x27 SWAP2 CODECOPY PUSH2 0x46E JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x3DC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x24D SWAP1 PUSH2 0x725 JUMP JUMPDEST DUP1 PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE PUSH2 0x447 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x24D SWAP1 PUSH2 0x77E JUMP JUMPDEST DUP1 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC PUSH2 0x3FF JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE PUSH2 0x497 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x24D SWAP1 PUSH2 0x7D0 JUMP JUMPDEST PUSH0 DUP1 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x40 MLOAD PUSH2 0x4B1 SWAP2 SWAP1 PUSH2 0x80C JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x4E9 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x4EE JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x4FE DUP3 DUP3 DUP7 PUSH2 0x50A JUMP JUMPDEST SWAP3 POP POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x519 JUMPI POP DUP2 PUSH2 0x503 JUMP JUMPDEST DUP3 MLOAD ISZERO PUSH2 0x529 JUMPI DUP3 MLOAD DUP1 DUP5 PUSH1 0x20 ADD REVERT JUMPDEST DUP2 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x24D SWAP2 SWAP1 PUSH2 0x848 JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x3B0 JUMP JUMPDEST PUSH2 0x55C DUP2 PUSH2 0x543 JUMP JUMPDEST DUP2 EQ PUSH2 0x13D JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x3B0 DUP2 PUSH2 0x553 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x584 JUMPI PUSH2 0x584 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x58F DUP5 DUP5 PUSH2 0x566 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x5AA JUMPI PUSH2 0x5AA PUSH0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x5C4 JUMPI PUSH2 0x5C4 PUSH0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x5DE JUMPI PUSH2 0x5DE PUSH0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x5FA JUMPI PUSH2 0x5FA PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x605 DUP7 DUP7 PUSH2 0x566 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x624 JUMPI PUSH2 0x624 PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x630 DUP7 DUP3 DUP8 ADD PUSH2 0x597 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH2 0x645 DUP2 PUSH2 0x543 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x3B0 DUP3 DUP5 PUSH2 0x63C JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x3B0 DUP2 PUSH1 0x42 DUP2 MSTORE PUSH32 0x5472616E73706172656E745570677261646561626C6550726F78793A2061646D PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x696E2063616E6E6F742066616C6C6261636B20746F2070726F78792074617267 PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x195D PUSH1 0xF2 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x6D3 DUP3 DUP6 PUSH2 0x63C JUMP JUMPDEST PUSH2 0x503 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x63C JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x455243313936373A206E65772061646D696E20697320746865207A65726F2061 DUP2 MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x3B0 DUP2 PUSH2 0x6E0 JUMP JUMPDEST PUSH1 0x2D DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x455243313936373A206E657720696D706C656D656E746174696F6E206973206E DUP2 MSTORE PUSH13 0x1BDD08184818DBDB9D1C9858DD PUSH1 0x9A SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x71E JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x3B0 DUP2 PUSH2 0x735 JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x416464726573733A2064656C65676174652063616C6C20746F206E6F6E2D636F DUP2 MSTORE PUSH6 0x1B9D1C9858DD PUSH1 0xD2 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x71E JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x3B0 DUP2 PUSH2 0x78E JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0x7F4 DUP3 MLOAD SWAP1 JUMP JUMPDEST PUSH2 0x802 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x7E0 JUMP JUMPDEST SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x503 DUP3 DUP5 PUSH2 0x7EB JUMP JUMPDEST PUSH0 PUSH2 0x820 DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x837 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x7E0 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x3AD DUP2 DUP5 PUSH2 0x817 JUMP INVALID COINBASE PUSH5 0x6472657373 GASPRICE KECCAK256 PUSH13 0x6F772D6C6576656C2064656C65 PUSH8 0x6174652063616C6C KECCAK256 PUSH7 0x61696C6564A264 PUSH10 0x706673582212205C293C 0xB8 0x2D 0xD5 0xD5 0xB7 0x22 DUP15 MLOAD DUP14 SLOAD PUSH26 0xDBF5BD70B6685CE9647AA6D360A311C6735064736F6C63430008 NOT STOP CALLER 0xB5 BALANCE 0x27 PUSH9 0x4A568B3173AE13B9F8 0xA6 ADD PUSH15 0x243E63B6E8EE1178D6A717850B5D61 SUB CALLDATASIZE ADDMOD SWAP5 LOG1 EXTCODESIZE LOG1 LOG3 0x21 MOD PUSH8 0xC828492DB98DCA3E KECCAK256 PUSH23 0xCC3735A920A3CA505D382BBC416464726573733A206C6F PUSH24 0x2D6C6576656C2064656C65676174652063616C6C20666169 PUSH13 0x65640000000000000000000000 ","sourceMap":"1634:3556:9:-:0;;;1908:254;;;;;;;;;;;;;;;;;;:::i;:::-;2023:6;2031:5;1050:54:4;1103:1;1058:41;1050:54;:::i;:::-;-1:-1:-1;;;;;;;;;;;1018:87:4;1011:95;;;;:::i;:::-;1116:39;1134:6;1142:5;1149;1116:17;:39::i;:::-;-1:-1:-1;2078:45:9::1;::::0;-1:-1:-1;2122:1:9::1;2086:32;2078:45;:::i;:::-;-1:-1:-1::0;;;;;;;;;;;2055:69:9::1;2048:77;;;;:::i;:::-;2135:20;2148:6:::0;2135:12:::1;:20::i;:::-;1908:254:::0;;;1634:3556;;2188:295:5;2326:29;2337:17;2326:10;:29::i;:::-;2383:1;2369:4;:11;:15;:28;;;;2388:9;2369:28;2365:112;;;2413:53;2442:17;2461:4;2413:28;:53::i;:::-;;2365:112;2188:295;;;:::o;4637:135::-;4701:35;4714:11;-1:-1:-1;;;;;;;;;;;4191:45:5;-1:-1:-1;;;;;4191:45:5;;4113:130;4714:11;4727:8;4701:35;;;;;;;:::i;:::-;;;;;;;;4746:19;4756:8;4746:9;:19::i;:::-;4637:135;:::o;1902:152::-;1968:37;1987:17;1968:18;:37::i;:::-;2020:27;;-1:-1:-1;;;;;2020:27:5;;;;;;;;1902:152;:::o;6575:198:10:-;6658:12;6689:77;6710:6;6718:4;6689:77;;;;;;;;;;;;;;;;;:20;:77::i;:::-;6682:84;;6575:198;;;;;:::o;4325:201:5:-;-1:-1:-1;;;;;4388:22:5;;4380:73;;;;-1:-1:-1;;;4380:73:5;;;;;;;:::i;:::-;;;;;;;;;4511:8;-1:-1:-1;;;;;;;;;;;4463:39:5;:56;;-1:-1:-1;;;;;;4463:56:5;-1:-1:-1;;;;;4463:56:5;;;;;;;;;;-1:-1:-1;4325:201:5:o;1537:259::-;-1:-1:-1;;;;;1470:19:10;;;1610:95:5;;;;-1:-1:-1;;;1610:95:5;;;;;;;:::i;:::-;1772:17;-1:-1:-1;;;;;;;;;;;1715:48:5;1599:147:12;6959:387:10;7100:12;-1:-1:-1;;;;;1470:19:10;;;7124:69;;;;-1:-1:-1;;;7124:69:10;;;;;;;:::i;:::-;7205:12;7219:23;7246:6;-1:-1:-1;;;;;7246:19:10;7266:4;7246:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7204:67:10;;-1:-1:-1;7204:67:10;-1:-1:-1;7288:51:10;7204:67;;7326:12;7288:16;:51::i;:::-;7281:58;;;;6959:387;;;;;;:::o;7566:692::-;7712:12;7740:7;7736:516;;;-1:-1:-1;7770:10:10;7763:17;;7736:516;7881:17;;:21;7877:365;;8075:10;8069:17;8135:15;8122:10;8118:2;8114:19;8107:44;7877:365;8214:12;8207:20;;-1:-1:-1;;;8207:20:10;;;;;;;;:::i;466:96:14:-;503:7;-1:-1:-1;;;;;400:54:14;;532:24;334:126;568:122;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;696:143;778:13;;800:33;778:13;800:33;:::i;1199:180::-;-1:-1:-1;;;1244:1:14;1237:88;1344:4;1341:1;1334:15;1368:4;1365:1;1358:15;1385:281;-1:-1:-1;;1183:2:14;1163:14;;1159:28;1460:6;1456:40;1598:6;1586:10;1583:22;-1:-1:-1;;;;;1550:10:14;1547:34;1544:62;1541:88;;;1609:18;;:::i;:::-;1645:2;1638:22;-1:-1:-1;;1385:281:14:o;1672:129::-;1706:6;1733:20;73:2;67:9;;7:75;1733:20;1723:30;;1762:33;1790:4;1782:6;1762:33;:::i;:::-;1672:129;;;:::o;1807:307::-;1868:4;-1:-1:-1;;;;;1950:6:14;1947:30;1944:56;;;1980:18;;:::i;:::-;-1:-1:-1;;1183:2:14;1163:14;;1159:28;2102:4;2092:15;;1807:307;-1:-1:-1;;1807:307:14:o;2120:139::-;2209:6;2204:3;2199;2193:23;-1:-1:-1;2250:1:14;2232:16;;2225:27;2120:139::o;2265:432::-;2353:5;2378:65;2394:48;2435:6;2394:48;:::i;:::-;2378:65;:::i;:::-;2369:74;;2466:6;2459:5;2452:21;2504:4;2497:5;2493:16;2542:3;2533:6;2528:3;2524:16;2521:25;2518:112;;;2549:79;197:1;194;187:12;2549:79;2639:52;2684:6;2679:3;2674;2639:52;:::i;:::-;2359:338;2265:432;;;;;:::o;2716:353::-;2782:5;2831:3;2824:4;2816:6;2812:17;2808:27;2798:122;;2839:79;197:1;194;187:12;2839:79;2949:6;2943:13;2974:89;3059:3;3051:6;3044:4;3036:6;3032:17;2974:89;:::i;:::-;2965:98;2716:353;-1:-1:-1;;;;2716:353:14:o;3075:834::-;3172:6;3180;3188;3237:2;3225:9;3216:7;3212:23;3208:32;3205:119;;;3243:79;197:1;194;187:12;3243:79;3363:1;3388:64;3444:7;3424:9;3388:64;:::i;:::-;3378:74;;3334:128;3501:2;3527:64;3583:7;3574:6;3563:9;3559:22;3527:64;:::i;:::-;3517:74;;3472:129;3661:2;3650:9;3646:18;3640:25;-1:-1:-1;;;;;3684:6:14;3681:30;3678:117;;;3714:79;197:1;194;187:12;3714:79;3819:73;3884:7;3875:6;3864:9;3860:22;3819:73;:::i;:::-;3809:83;;3611:291;3075:834;;;;;:::o;3998:180::-;-1:-1:-1;;;4043:1:14;4036:88;4143:4;4140:1;4133:15;4167:4;4164:1;4157:15;4184:194;4315:9;;;4337:11;;;4334:37;;;4351:18;;:::i;4384:180::-;-1:-1:-1;;;4429:1:14;4422:88;4529:4;4526:1;4519:15;4553:4;4550:1;4543:15;4570:118;4657:24;4675:5;4657:24;:::i;:::-;4652:3;4645:37;4570:118;;:::o;4694:332::-;4853:2;4838:18;;4866:71;4842:9;4910:6;4866:71;:::i;:::-;4947:72;5015:2;5004:9;5000:18;4991:6;4947:72;:::i;5438:366::-;5665:2;5138:19;;5580:3;5190:4;5181:14;;5347:34;5324:58;;-1:-1:-1;;;5411:2:14;5399:15;;5392:33;5594:74;-1:-1:-1;5677:93:14;-1:-1:-1;5795:2:14;5786:12;;5438:366::o;5810:419::-;6014:2;6027:47;;;5999:18;;6091:131;5999:18;6091:131;:::i;6473:366::-;6700:2;5138:19;;6615:3;5190:4;5181:14;;6375:34;6352:58;;-1:-1:-1;;;6439:2:14;6427:15;;6420:40;6629:74;-1:-1:-1;6712:93:14;6235:232;6845:419;7049:2;7062:47;;;7034:18;;7126:131;7034:18;7126:131;:::i;7501:366::-;7728:2;5138:19;;7643:3;5190:4;5181:14;;7410:34;7387:58;;-1:-1:-1;;;7474:2:14;7462:15;;7455:33;7657:74;-1:-1:-1;7740:93:14;7270:225;7873:419;8077:2;8090:47;;;8062:18;;8154:131;8062:18;8154:131;:::i;8555:386::-;8659:3;8687:38;8719:5;8377:12;;8298:98;8687:38;8838:65;8896:6;8891:3;8884:4;8877:5;8873:16;8838:65;:::i;:::-;8919:16;;;;;8555:386;-1:-1:-1;;8555:386:14:o;8947:271::-;9077:3;9099:93;9188:3;9179:6;9099:93;:::i;9329:377::-;9417:3;9445:39;9478:5;8377:12;;8298:98;9445:39;5138:19;;;5190:4;5181:14;;9493:78;;9580:65;9638:6;9633:3;9626:4;9619:5;9615:16;9580:65;:::i;:::-;1183:2;1163:14;-1:-1:-1;;1159:28:14;9661:39;;;;;;-1:-1:-1;;9329:377:14:o;9712:313::-;9863:2;9876:47;;;9848:18;;9940:78;9848:18;10004:6;9940:78;:::i;9712:313::-;1634:3556:9;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_530":{"entryPoint":null,"id":530,"parameterSlots":0,"returnSlots":0},"@_538":{"entryPoint":null,"id":538,"parameterSlots":0,"returnSlots":0},"@_beforeFallback_543":{"entryPoint":null,"id":543,"parameterSlots":0,"returnSlots":0},"@_beforeFallback_862":{"entryPoint":542,"id":862,"parameterSlots":0,"returnSlots":0},"@_changeAdmin_395":{"entryPoint":729,"id":395,"parameterSlots":1,"returnSlots":0},"@_delegate_503":{"entryPoint":607,"id":503,"parameterSlots":1,"returnSlots":0},"@_fallback_522":{"entryPoint":243,"id":522,"parameterSlots":0,"returnSlots":0},"@_getAdmin_352":{"entryPoint":637,"id":352,"parameterSlots":0,"returnSlots":1},"@_getImplementation_206":{"entryPoint":802,"id":206,"parameterSlots":0,"returnSlots":1},"@_implementation_173":{"entryPoint":598,"id":173,"parameterSlots":0,"returnSlots":1},"@_setAdmin_378":{"entryPoint":950,"id":378,"parameterSlots":1,"returnSlots":0},"@_setImplementation_230":{"entryPoint":1056,"id":230,"parameterSlots":1,"returnSlots":0},"@_upgradeToAndCall_275":{"entryPoint":687,"id":275,"parameterSlots":3,"returnSlots":0},"@_upgradeTo_245":{"entryPoint":841,"id":245,"parameterSlots":1,"returnSlots":0},"@admin_770":{"entryPoint":510,"id":770,"parameterSlots":0,"returnSlots":1},"@changeAdmin_797":{"entryPoint":478,"id":797,"parameterSlots":1,"returnSlots":0},"@functionDelegateCall_1091":{"entryPoint":904,"id":1091,"parameterSlots":2,"returnSlots":1},"@functionDelegateCall_1126":{"entryPoint":1134,"id":1126,"parameterSlots":3,"returnSlots":1},"@getAddressSlot_1206":{"entryPoint":null,"id":1206,"parameterSlots":1,"returnSlots":1},"@implementation_784":{"entryPoint":430,"id":784,"parameterSlots":0,"returnSlots":1},"@isContract_881":{"entryPoint":null,"id":881,"parameterSlots":1,"returnSlots":1},"@upgradeToAndCall_832":{"entryPoint":328,"id":832,"parameterSlots":3,"returnSlots":0},"@upgradeTo_815":{"entryPoint":269,"id":815,"parameterSlots":1,"returnSlots":0},"@verifyCallResult_1157":{"entryPoint":1290,"id":1157,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address":{"entryPoint":1382,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_calldata_ptr":{"entryPoint":1431,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_address":{"entryPoint":1393,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_bytes_calldata_ptr":{"entryPoint":1509,"id":null,"parameterSlots":2,"returnSlots":3},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":1596,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":2027,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack":{"entryPoint":2071,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_stringliteral_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5_to_t_string_memory_ptr_fromStack":{"entryPoint":1760,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65_to_t_string_memory_ptr_fromStack":{"entryPoint":1845,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520_to_t_string_memory_ptr_fromStack":{"entryPoint":1934,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d_to_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":2060,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":1611,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed":{"entryPoint":1733,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2120,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1829,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1918,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2000,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1625,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_length_t_bytes_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":1347,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":2016,"id":null,"parameterSlots":3,"returnSlots":0},"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"store_literal_in_memory_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address":{"entryPoint":1363,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:9826:14","nodeType":"YulBlock","src":"0:9826:14","statements":[{"body":{"nativeSrc":"47:35:14","nodeType":"YulBlock","src":"47:35:14","statements":[{"nativeSrc":"57:19:14","nodeType":"YulAssignment","src":"57:19:14","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:14","nodeType":"YulLiteral","src":"73:2:14","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:14","nodeType":"YulIdentifier","src":"67:5:14"},"nativeSrc":"67:9:14","nodeType":"YulFunctionCall","src":"67:9:14"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:14","nodeType":"YulIdentifier","src":"57:6:14"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:14","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:14","nodeType":"YulTypedName","src":"40:6:14","type":""}],"src":"7:75:14"},{"body":{"nativeSrc":"177:28:14","nodeType":"YulBlock","src":"177:28:14","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:14","nodeType":"YulLiteral","src":"194:1:14","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:14","nodeType":"YulLiteral","src":"197:1:14","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:14","nodeType":"YulIdentifier","src":"187:6:14"},"nativeSrc":"187:12:14","nodeType":"YulFunctionCall","src":"187:12:14"},"nativeSrc":"187:12:14","nodeType":"YulExpressionStatement","src":"187:12:14"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:14","nodeType":"YulFunctionDefinition","src":"88:117:14"},{"body":{"nativeSrc":"300:28:14","nodeType":"YulBlock","src":"300:28:14","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:14","nodeType":"YulLiteral","src":"317:1:14","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:14","nodeType":"YulLiteral","src":"320:1:14","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:14","nodeType":"YulIdentifier","src":"310:6:14"},"nativeSrc":"310:12:14","nodeType":"YulFunctionCall","src":"310:12:14"},"nativeSrc":"310:12:14","nodeType":"YulExpressionStatement","src":"310:12:14"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:14","nodeType":"YulFunctionDefinition","src":"211:117:14"},{"body":{"nativeSrc":"379:81:14","nodeType":"YulBlock","src":"379:81:14","statements":[{"nativeSrc":"389:65:14","nodeType":"YulAssignment","src":"389:65:14","value":{"arguments":[{"name":"value","nativeSrc":"404:5:14","nodeType":"YulIdentifier","src":"404:5:14"},{"kind":"number","nativeSrc":"411:42:14","nodeType":"YulLiteral","src":"411:42:14","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"400:3:14","nodeType":"YulIdentifier","src":"400:3:14"},"nativeSrc":"400:54:14","nodeType":"YulFunctionCall","src":"400:54:14"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:14","nodeType":"YulIdentifier","src":"389:7:14"}]}]},"name":"cleanup_t_uint160","nativeSrc":"334:126:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:14","nodeType":"YulTypedName","src":"361:5:14","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:14","nodeType":"YulTypedName","src":"371:7:14","type":""}],"src":"334:126:14"},{"body":{"nativeSrc":"511:51:14","nodeType":"YulBlock","src":"511:51:14","statements":[{"nativeSrc":"521:35:14","nodeType":"YulAssignment","src":"521:35:14","value":{"arguments":[{"name":"value","nativeSrc":"550:5:14","nodeType":"YulIdentifier","src":"550:5:14"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"532:17:14","nodeType":"YulIdentifier","src":"532:17:14"},"nativeSrc":"532:24:14","nodeType":"YulFunctionCall","src":"532:24:14"},"variableNames":[{"name":"cleaned","nativeSrc":"521:7:14","nodeType":"YulIdentifier","src":"521:7:14"}]}]},"name":"cleanup_t_address","nativeSrc":"466:96:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"493:5:14","nodeType":"YulTypedName","src":"493:5:14","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"503:7:14","nodeType":"YulTypedName","src":"503:7:14","type":""}],"src":"466:96:14"},{"body":{"nativeSrc":"611:79:14","nodeType":"YulBlock","src":"611:79:14","statements":[{"body":{"nativeSrc":"668:16:14","nodeType":"YulBlock","src":"668:16:14","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"677:1:14","nodeType":"YulLiteral","src":"677:1:14","type":"","value":"0"},{"kind":"number","nativeSrc":"680:1:14","nodeType":"YulLiteral","src":"680:1:14","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"670:6:14","nodeType":"YulIdentifier","src":"670:6:14"},"nativeSrc":"670:12:14","nodeType":"YulFunctionCall","src":"670:12:14"},"nativeSrc":"670:12:14","nodeType":"YulExpressionStatement","src":"670:12:14"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"634:5:14","nodeType":"YulIdentifier","src":"634:5:14"},{"arguments":[{"name":"value","nativeSrc":"659:5:14","nodeType":"YulIdentifier","src":"659:5:14"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"641:17:14","nodeType":"YulIdentifier","src":"641:17:14"},"nativeSrc":"641:24:14","nodeType":"YulFunctionCall","src":"641:24:14"}],"functionName":{"name":"eq","nativeSrc":"631:2:14","nodeType":"YulIdentifier","src":"631:2:14"},"nativeSrc":"631:35:14","nodeType":"YulFunctionCall","src":"631:35:14"}],"functionName":{"name":"iszero","nativeSrc":"624:6:14","nodeType":"YulIdentifier","src":"624:6:14"},"nativeSrc":"624:43:14","nodeType":"YulFunctionCall","src":"624:43:14"},"nativeSrc":"621:63:14","nodeType":"YulIf","src":"621:63:14"}]},"name":"validator_revert_t_address","nativeSrc":"568:122:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"604:5:14","nodeType":"YulTypedName","src":"604:5:14","type":""}],"src":"568:122:14"},{"body":{"nativeSrc":"748:87:14","nodeType":"YulBlock","src":"748:87:14","statements":[{"nativeSrc":"758:29:14","nodeType":"YulAssignment","src":"758:29:14","value":{"arguments":[{"name":"offset","nativeSrc":"780:6:14","nodeType":"YulIdentifier","src":"780:6:14"}],"functionName":{"name":"calldataload","nativeSrc":"767:12:14","nodeType":"YulIdentifier","src":"767:12:14"},"nativeSrc":"767:20:14","nodeType":"YulFunctionCall","src":"767:20:14"},"variableNames":[{"name":"value","nativeSrc":"758:5:14","nodeType":"YulIdentifier","src":"758:5:14"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"823:5:14","nodeType":"YulIdentifier","src":"823:5:14"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"796:26:14","nodeType":"YulIdentifier","src":"796:26:14"},"nativeSrc":"796:33:14","nodeType":"YulFunctionCall","src":"796:33:14"},"nativeSrc":"796:33:14","nodeType":"YulExpressionStatement","src":"796:33:14"}]},"name":"abi_decode_t_address","nativeSrc":"696:139:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"726:6:14","nodeType":"YulTypedName","src":"726:6:14","type":""},{"name":"end","nativeSrc":"734:3:14","nodeType":"YulTypedName","src":"734:3:14","type":""}],"returnVariables":[{"name":"value","nativeSrc":"742:5:14","nodeType":"YulTypedName","src":"742:5:14","type":""}],"src":"696:139:14"},{"body":{"nativeSrc":"907:263:14","nodeType":"YulBlock","src":"907:263:14","statements":[{"body":{"nativeSrc":"953:83:14","nodeType":"YulBlock","src":"953:83:14","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"955:77:14","nodeType":"YulIdentifier","src":"955:77:14"},"nativeSrc":"955:79:14","nodeType":"YulFunctionCall","src":"955:79:14"},"nativeSrc":"955:79:14","nodeType":"YulExpressionStatement","src":"955:79:14"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"928:7:14","nodeType":"YulIdentifier","src":"928:7:14"},{"name":"headStart","nativeSrc":"937:9:14","nodeType":"YulIdentifier","src":"937:9:14"}],"functionName":{"name":"sub","nativeSrc":"924:3:14","nodeType":"YulIdentifier","src":"924:3:14"},"nativeSrc":"924:23:14","nodeType":"YulFunctionCall","src":"924:23:14"},{"kind":"number","nativeSrc":"949:2:14","nodeType":"YulLiteral","src":"949:2:14","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"920:3:14","nodeType":"YulIdentifier","src":"920:3:14"},"nativeSrc":"920:32:14","nodeType":"YulFunctionCall","src":"920:32:14"},"nativeSrc":"917:119:14","nodeType":"YulIf","src":"917:119:14"},{"nativeSrc":"1046:117:14","nodeType":"YulBlock","src":"1046:117:14","statements":[{"nativeSrc":"1061:15:14","nodeType":"YulVariableDeclaration","src":"1061:15:14","value":{"kind":"number","nativeSrc":"1075:1:14","nodeType":"YulLiteral","src":"1075:1:14","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1065:6:14","nodeType":"YulTypedName","src":"1065:6:14","type":""}]},{"nativeSrc":"1090:63:14","nodeType":"YulAssignment","src":"1090:63:14","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1125:9:14","nodeType":"YulIdentifier","src":"1125:9:14"},{"name":"offset","nativeSrc":"1136:6:14","nodeType":"YulIdentifier","src":"1136:6:14"}],"functionName":{"name":"add","nativeSrc":"1121:3:14","nodeType":"YulIdentifier","src":"1121:3:14"},"nativeSrc":"1121:22:14","nodeType":"YulFunctionCall","src":"1121:22:14"},{"name":"dataEnd","nativeSrc":"1145:7:14","nodeType":"YulIdentifier","src":"1145:7:14"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"1100:20:14","nodeType":"YulIdentifier","src":"1100:20:14"},"nativeSrc":"1100:53:14","nodeType":"YulFunctionCall","src":"1100:53:14"},"variableNames":[{"name":"value0","nativeSrc":"1090:6:14","nodeType":"YulIdentifier","src":"1090:6:14"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"841:329:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"877:9:14","nodeType":"YulTypedName","src":"877:9:14","type":""},{"name":"dataEnd","nativeSrc":"888:7:14","nodeType":"YulTypedName","src":"888:7:14","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"900:6:14","nodeType":"YulTypedName","src":"900:6:14","type":""}],"src":"841:329:14"},{"body":{"nativeSrc":"1265:28:14","nodeType":"YulBlock","src":"1265:28:14","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1282:1:14","nodeType":"YulLiteral","src":"1282:1:14","type":"","value":"0"},{"kind":"number","nativeSrc":"1285:1:14","nodeType":"YulLiteral","src":"1285:1:14","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1275:6:14","nodeType":"YulIdentifier","src":"1275:6:14"},"nativeSrc":"1275:12:14","nodeType":"YulFunctionCall","src":"1275:12:14"},"nativeSrc":"1275:12:14","nodeType":"YulExpressionStatement","src":"1275:12:14"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"1176:117:14","nodeType":"YulFunctionDefinition","src":"1176:117:14"},{"body":{"nativeSrc":"1388:28:14","nodeType":"YulBlock","src":"1388:28:14","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1405:1:14","nodeType":"YulLiteral","src":"1405:1:14","type":"","value":"0"},{"kind":"number","nativeSrc":"1408:1:14","nodeType":"YulLiteral","src":"1408:1:14","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1398:6:14","nodeType":"YulIdentifier","src":"1398:6:14"},"nativeSrc":"1398:12:14","nodeType":"YulFunctionCall","src":"1398:12:14"},"nativeSrc":"1398:12:14","nodeType":"YulExpressionStatement","src":"1398:12:14"}]},"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"1299:117:14","nodeType":"YulFunctionDefinition","src":"1299:117:14"},{"body":{"nativeSrc":"1511:28:14","nodeType":"YulBlock","src":"1511:28:14","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1528:1:14","nodeType":"YulLiteral","src":"1528:1:14","type":"","value":"0"},{"kind":"number","nativeSrc":"1531:1:14","nodeType":"YulLiteral","src":"1531:1:14","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1521:6:14","nodeType":"YulIdentifier","src":"1521:6:14"},"nativeSrc":"1521:12:14","nodeType":"YulFunctionCall","src":"1521:12:14"},"nativeSrc":"1521:12:14","nodeType":"YulExpressionStatement","src":"1521:12:14"}]},"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"1422:117:14","nodeType":"YulFunctionDefinition","src":"1422:117:14"},{"body":{"nativeSrc":"1632:478:14","nodeType":"YulBlock","src":"1632:478:14","statements":[{"body":{"nativeSrc":"1681:83:14","nodeType":"YulBlock","src":"1681:83:14","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"1683:77:14","nodeType":"YulIdentifier","src":"1683:77:14"},"nativeSrc":"1683:79:14","nodeType":"YulFunctionCall","src":"1683:79:14"},"nativeSrc":"1683:79:14","nodeType":"YulExpressionStatement","src":"1683:79:14"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"1660:6:14","nodeType":"YulIdentifier","src":"1660:6:14"},{"kind":"number","nativeSrc":"1668:4:14","nodeType":"YulLiteral","src":"1668:4:14","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"1656:3:14","nodeType":"YulIdentifier","src":"1656:3:14"},"nativeSrc":"1656:17:14","nodeType":"YulFunctionCall","src":"1656:17:14"},{"name":"end","nativeSrc":"1675:3:14","nodeType":"YulIdentifier","src":"1675:3:14"}],"functionName":{"name":"slt","nativeSrc":"1652:3:14","nodeType":"YulIdentifier","src":"1652:3:14"},"nativeSrc":"1652:27:14","nodeType":"YulFunctionCall","src":"1652:27:14"}],"functionName":{"name":"iszero","nativeSrc":"1645:6:14","nodeType":"YulIdentifier","src":"1645:6:14"},"nativeSrc":"1645:35:14","nodeType":"YulFunctionCall","src":"1645:35:14"},"nativeSrc":"1642:122:14","nodeType":"YulIf","src":"1642:122:14"},{"nativeSrc":"1773:30:14","nodeType":"YulAssignment","src":"1773:30:14","value":{"arguments":[{"name":"offset","nativeSrc":"1796:6:14","nodeType":"YulIdentifier","src":"1796:6:14"}],"functionName":{"name":"calldataload","nativeSrc":"1783:12:14","nodeType":"YulIdentifier","src":"1783:12:14"},"nativeSrc":"1783:20:14","nodeType":"YulFunctionCall","src":"1783:20:14"},"variableNames":[{"name":"length","nativeSrc":"1773:6:14","nodeType":"YulIdentifier","src":"1773:6:14"}]},{"body":{"nativeSrc":"1846:83:14","nodeType":"YulBlock","src":"1846:83:14","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"1848:77:14","nodeType":"YulIdentifier","src":"1848:77:14"},"nativeSrc":"1848:79:14","nodeType":"YulFunctionCall","src":"1848:79:14"},"nativeSrc":"1848:79:14","nodeType":"YulExpressionStatement","src":"1848:79:14"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"1818:6:14","nodeType":"YulIdentifier","src":"1818:6:14"},{"kind":"number","nativeSrc":"1826:18:14","nodeType":"YulLiteral","src":"1826:18:14","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1815:2:14","nodeType":"YulIdentifier","src":"1815:2:14"},"nativeSrc":"1815:30:14","nodeType":"YulFunctionCall","src":"1815:30:14"},"nativeSrc":"1812:117:14","nodeType":"YulIf","src":"1812:117:14"},{"nativeSrc":"1938:29:14","nodeType":"YulAssignment","src":"1938:29:14","value":{"arguments":[{"name":"offset","nativeSrc":"1954:6:14","nodeType":"YulIdentifier","src":"1954:6:14"},{"kind":"number","nativeSrc":"1962:4:14","nodeType":"YulLiteral","src":"1962:4:14","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1950:3:14","nodeType":"YulIdentifier","src":"1950:3:14"},"nativeSrc":"1950:17:14","nodeType":"YulFunctionCall","src":"1950:17:14"},"variableNames":[{"name":"arrayPos","nativeSrc":"1938:8:14","nodeType":"YulIdentifier","src":"1938:8:14"}]},{"body":{"nativeSrc":"2021:83:14","nodeType":"YulBlock","src":"2021:83:14","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"2023:77:14","nodeType":"YulIdentifier","src":"2023:77:14"},"nativeSrc":"2023:79:14","nodeType":"YulFunctionCall","src":"2023:79:14"},"nativeSrc":"2023:79:14","nodeType":"YulExpressionStatement","src":"2023:79:14"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"1986:8:14","nodeType":"YulIdentifier","src":"1986:8:14"},{"arguments":[{"name":"length","nativeSrc":"2000:6:14","nodeType":"YulIdentifier","src":"2000:6:14"},{"kind":"number","nativeSrc":"2008:4:14","nodeType":"YulLiteral","src":"2008:4:14","type":"","value":"0x01"}],"functionName":{"name":"mul","nativeSrc":"1996:3:14","nodeType":"YulIdentifier","src":"1996:3:14"},"nativeSrc":"1996:17:14","nodeType":"YulFunctionCall","src":"1996:17:14"}],"functionName":{"name":"add","nativeSrc":"1982:3:14","nodeType":"YulIdentifier","src":"1982:3:14"},"nativeSrc":"1982:32:14","nodeType":"YulFunctionCall","src":"1982:32:14"},{"name":"end","nativeSrc":"2016:3:14","nodeType":"YulIdentifier","src":"2016:3:14"}],"functionName":{"name":"gt","nativeSrc":"1979:2:14","nodeType":"YulIdentifier","src":"1979:2:14"},"nativeSrc":"1979:41:14","nodeType":"YulFunctionCall","src":"1979:41:14"},"nativeSrc":"1976:128:14","nodeType":"YulIf","src":"1976:128:14"}]},"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"1558:552:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1599:6:14","nodeType":"YulTypedName","src":"1599:6:14","type":""},{"name":"end","nativeSrc":"1607:3:14","nodeType":"YulTypedName","src":"1607:3:14","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"1615:8:14","nodeType":"YulTypedName","src":"1615:8:14","type":""},{"name":"length","nativeSrc":"1625:6:14","nodeType":"YulTypedName","src":"1625:6:14","type":""}],"src":"1558:552:14"},{"body":{"nativeSrc":"2218:570:14","nodeType":"YulBlock","src":"2218:570:14","statements":[{"body":{"nativeSrc":"2264:83:14","nodeType":"YulBlock","src":"2264:83:14","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"2266:77:14","nodeType":"YulIdentifier","src":"2266:77:14"},"nativeSrc":"2266:79:14","nodeType":"YulFunctionCall","src":"2266:79:14"},"nativeSrc":"2266:79:14","nodeType":"YulExpressionStatement","src":"2266:79:14"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2239:7:14","nodeType":"YulIdentifier","src":"2239:7:14"},{"name":"headStart","nativeSrc":"2248:9:14","nodeType":"YulIdentifier","src":"2248:9:14"}],"functionName":{"name":"sub","nativeSrc":"2235:3:14","nodeType":"YulIdentifier","src":"2235:3:14"},"nativeSrc":"2235:23:14","nodeType":"YulFunctionCall","src":"2235:23:14"},{"kind":"number","nativeSrc":"2260:2:14","nodeType":"YulLiteral","src":"2260:2:14","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"2231:3:14","nodeType":"YulIdentifier","src":"2231:3:14"},"nativeSrc":"2231:32:14","nodeType":"YulFunctionCall","src":"2231:32:14"},"nativeSrc":"2228:119:14","nodeType":"YulIf","src":"2228:119:14"},{"nativeSrc":"2357:117:14","nodeType":"YulBlock","src":"2357:117:14","statements":[{"nativeSrc":"2372:15:14","nodeType":"YulVariableDeclaration","src":"2372:15:14","value":{"kind":"number","nativeSrc":"2386:1:14","nodeType":"YulLiteral","src":"2386:1:14","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"2376:6:14","nodeType":"YulTypedName","src":"2376:6:14","type":""}]},{"nativeSrc":"2401:63:14","nodeType":"YulAssignment","src":"2401:63:14","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2436:9:14","nodeType":"YulIdentifier","src":"2436:9:14"},{"name":"offset","nativeSrc":"2447:6:14","nodeType":"YulIdentifier","src":"2447:6:14"}],"functionName":{"name":"add","nativeSrc":"2432:3:14","nodeType":"YulIdentifier","src":"2432:3:14"},"nativeSrc":"2432:22:14","nodeType":"YulFunctionCall","src":"2432:22:14"},{"name":"dataEnd","nativeSrc":"2456:7:14","nodeType":"YulIdentifier","src":"2456:7:14"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"2411:20:14","nodeType":"YulIdentifier","src":"2411:20:14"},"nativeSrc":"2411:53:14","nodeType":"YulFunctionCall","src":"2411:53:14"},"variableNames":[{"name":"value0","nativeSrc":"2401:6:14","nodeType":"YulIdentifier","src":"2401:6:14"}]}]},{"nativeSrc":"2484:297:14","nodeType":"YulBlock","src":"2484:297:14","statements":[{"nativeSrc":"2499:46:14","nodeType":"YulVariableDeclaration","src":"2499:46:14","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2530:9:14","nodeType":"YulIdentifier","src":"2530:9:14"},{"kind":"number","nativeSrc":"2541:2:14","nodeType":"YulLiteral","src":"2541:2:14","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2526:3:14","nodeType":"YulIdentifier","src":"2526:3:14"},"nativeSrc":"2526:18:14","nodeType":"YulFunctionCall","src":"2526:18:14"}],"functionName":{"name":"calldataload","nativeSrc":"2513:12:14","nodeType":"YulIdentifier","src":"2513:12:14"},"nativeSrc":"2513:32:14","nodeType":"YulFunctionCall","src":"2513:32:14"},"variables":[{"name":"offset","nativeSrc":"2503:6:14","nodeType":"YulTypedName","src":"2503:6:14","type":""}]},{"body":{"nativeSrc":"2592:83:14","nodeType":"YulBlock","src":"2592:83:14","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"2594:77:14","nodeType":"YulIdentifier","src":"2594:77:14"},"nativeSrc":"2594:79:14","nodeType":"YulFunctionCall","src":"2594:79:14"},"nativeSrc":"2594:79:14","nodeType":"YulExpressionStatement","src":"2594:79:14"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"2564:6:14","nodeType":"YulIdentifier","src":"2564:6:14"},{"kind":"number","nativeSrc":"2572:18:14","nodeType":"YulLiteral","src":"2572:18:14","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2561:2:14","nodeType":"YulIdentifier","src":"2561:2:14"},"nativeSrc":"2561:30:14","nodeType":"YulFunctionCall","src":"2561:30:14"},"nativeSrc":"2558:117:14","nodeType":"YulIf","src":"2558:117:14"},{"nativeSrc":"2689:82:14","nodeType":"YulAssignment","src":"2689:82:14","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2743:9:14","nodeType":"YulIdentifier","src":"2743:9:14"},{"name":"offset","nativeSrc":"2754:6:14","nodeType":"YulIdentifier","src":"2754:6:14"}],"functionName":{"name":"add","nativeSrc":"2739:3:14","nodeType":"YulIdentifier","src":"2739:3:14"},"nativeSrc":"2739:22:14","nodeType":"YulFunctionCall","src":"2739:22:14"},{"name":"dataEnd","nativeSrc":"2763:7:14","nodeType":"YulIdentifier","src":"2763:7:14"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"2707:31:14","nodeType":"YulIdentifier","src":"2707:31:14"},"nativeSrc":"2707:64:14","nodeType":"YulFunctionCall","src":"2707:64:14"},"variableNames":[{"name":"value1","nativeSrc":"2689:6:14","nodeType":"YulIdentifier","src":"2689:6:14"},{"name":"value2","nativeSrc":"2697:6:14","nodeType":"YulIdentifier","src":"2697:6:14"}]}]}]},"name":"abi_decode_tuple_t_addresst_bytes_calldata_ptr","nativeSrc":"2116:672:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2172:9:14","nodeType":"YulTypedName","src":"2172:9:14","type":""},{"name":"dataEnd","nativeSrc":"2183:7:14","nodeType":"YulTypedName","src":"2183:7:14","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2195:6:14","nodeType":"YulTypedName","src":"2195:6:14","type":""},{"name":"value1","nativeSrc":"2203:6:14","nodeType":"YulTypedName","src":"2203:6:14","type":""},{"name":"value2","nativeSrc":"2211:6:14","nodeType":"YulTypedName","src":"2211:6:14","type":""}],"src":"2116:672:14"},{"body":{"nativeSrc":"2859:53:14","nodeType":"YulBlock","src":"2859:53:14","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2876:3:14","nodeType":"YulIdentifier","src":"2876:3:14"},{"arguments":[{"name":"value","nativeSrc":"2899:5:14","nodeType":"YulIdentifier","src":"2899:5:14"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"2881:17:14","nodeType":"YulIdentifier","src":"2881:17:14"},"nativeSrc":"2881:24:14","nodeType":"YulFunctionCall","src":"2881:24:14"}],"functionName":{"name":"mstore","nativeSrc":"2869:6:14","nodeType":"YulIdentifier","src":"2869:6:14"},"nativeSrc":"2869:37:14","nodeType":"YulFunctionCall","src":"2869:37:14"},"nativeSrc":"2869:37:14","nodeType":"YulExpressionStatement","src":"2869:37:14"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"2794:118:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2847:5:14","nodeType":"YulTypedName","src":"2847:5:14","type":""},{"name":"pos","nativeSrc":"2854:3:14","nodeType":"YulTypedName","src":"2854:3:14","type":""}],"src":"2794:118:14"},{"body":{"nativeSrc":"3016:124:14","nodeType":"YulBlock","src":"3016:124:14","statements":[{"nativeSrc":"3026:26:14","nodeType":"YulAssignment","src":"3026:26:14","value":{"arguments":[{"name":"headStart","nativeSrc":"3038:9:14","nodeType":"YulIdentifier","src":"3038:9:14"},{"kind":"number","nativeSrc":"3049:2:14","nodeType":"YulLiteral","src":"3049:2:14","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3034:3:14","nodeType":"YulIdentifier","src":"3034:3:14"},"nativeSrc":"3034:18:14","nodeType":"YulFunctionCall","src":"3034:18:14"},"variableNames":[{"name":"tail","nativeSrc":"3026:4:14","nodeType":"YulIdentifier","src":"3026:4:14"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"3106:6:14","nodeType":"YulIdentifier","src":"3106:6:14"},{"arguments":[{"name":"headStart","nativeSrc":"3119:9:14","nodeType":"YulIdentifier","src":"3119:9:14"},{"kind":"number","nativeSrc":"3130:1:14","nodeType":"YulLiteral","src":"3130:1:14","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3115:3:14","nodeType":"YulIdentifier","src":"3115:3:14"},"nativeSrc":"3115:17:14","nodeType":"YulFunctionCall","src":"3115:17:14"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"3062:43:14","nodeType":"YulIdentifier","src":"3062:43:14"},"nativeSrc":"3062:71:14","nodeType":"YulFunctionCall","src":"3062:71:14"},"nativeSrc":"3062:71:14","nodeType":"YulExpressionStatement","src":"3062:71:14"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"2918:222:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2988:9:14","nodeType":"YulTypedName","src":"2988:9:14","type":""},{"name":"value0","nativeSrc":"3000:6:14","nodeType":"YulTypedName","src":"3000:6:14","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3011:4:14","nodeType":"YulTypedName","src":"3011:4:14","type":""}],"src":"2918:222:14"},{"body":{"nativeSrc":"3242:73:14","nodeType":"YulBlock","src":"3242:73:14","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3259:3:14","nodeType":"YulIdentifier","src":"3259:3:14"},{"name":"length","nativeSrc":"3264:6:14","nodeType":"YulIdentifier","src":"3264:6:14"}],"functionName":{"name":"mstore","nativeSrc":"3252:6:14","nodeType":"YulIdentifier","src":"3252:6:14"},"nativeSrc":"3252:19:14","nodeType":"YulFunctionCall","src":"3252:19:14"},"nativeSrc":"3252:19:14","nodeType":"YulExpressionStatement","src":"3252:19:14"},{"nativeSrc":"3280:29:14","nodeType":"YulAssignment","src":"3280:29:14","value":{"arguments":[{"name":"pos","nativeSrc":"3299:3:14","nodeType":"YulIdentifier","src":"3299:3:14"},{"kind":"number","nativeSrc":"3304:4:14","nodeType":"YulLiteral","src":"3304:4:14","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3295:3:14","nodeType":"YulIdentifier","src":"3295:3:14"},"nativeSrc":"3295:14:14","nodeType":"YulFunctionCall","src":"3295:14:14"},"variableNames":[{"name":"updated_pos","nativeSrc":"3280:11:14","nodeType":"YulIdentifier","src":"3280:11:14"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"3146:169:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"3214:3:14","nodeType":"YulTypedName","src":"3214:3:14","type":""},{"name":"length","nativeSrc":"3219:6:14","nodeType":"YulTypedName","src":"3219:6:14","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"3230:11:14","nodeType":"YulTypedName","src":"3230:11:14","type":""}],"src":"3146:169:14"},{"body":{"nativeSrc":"3427:184:14","nodeType":"YulBlock","src":"3427:184:14","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"3449:6:14","nodeType":"YulIdentifier","src":"3449:6:14"},{"kind":"number","nativeSrc":"3457:1:14","nodeType":"YulLiteral","src":"3457:1:14","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3445:3:14","nodeType":"YulIdentifier","src":"3445:3:14"},"nativeSrc":"3445:14:14","nodeType":"YulFunctionCall","src":"3445:14:14"},{"hexValue":"5472616e73706172656e745570677261646561626c6550726f78793a2061646d","kind":"string","nativeSrc":"3461:34:14","nodeType":"YulLiteral","src":"3461:34:14","type":"","value":"TransparentUpgradeableProxy: adm"}],"functionName":{"name":"mstore","nativeSrc":"3438:6:14","nodeType":"YulIdentifier","src":"3438:6:14"},"nativeSrc":"3438:58:14","nodeType":"YulFunctionCall","src":"3438:58:14"},"nativeSrc":"3438:58:14","nodeType":"YulExpressionStatement","src":"3438:58:14"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"3517:6:14","nodeType":"YulIdentifier","src":"3517:6:14"},{"kind":"number","nativeSrc":"3525:2:14","nodeType":"YulLiteral","src":"3525:2:14","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3513:3:14","nodeType":"YulIdentifier","src":"3513:3:14"},"nativeSrc":"3513:15:14","nodeType":"YulFunctionCall","src":"3513:15:14"},{"hexValue":"696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267","kind":"string","nativeSrc":"3530:34:14","nodeType":"YulLiteral","src":"3530:34:14","type":"","value":"in cannot fallback to proxy targ"}],"functionName":{"name":"mstore","nativeSrc":"3506:6:14","nodeType":"YulIdentifier","src":"3506:6:14"},"nativeSrc":"3506:59:14","nodeType":"YulFunctionCall","src":"3506:59:14"},"nativeSrc":"3506:59:14","nodeType":"YulExpressionStatement","src":"3506:59:14"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"3586:6:14","nodeType":"YulIdentifier","src":"3586:6:14"},{"kind":"number","nativeSrc":"3594:2:14","nodeType":"YulLiteral","src":"3594:2:14","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3582:3:14","nodeType":"YulIdentifier","src":"3582:3:14"},"nativeSrc":"3582:15:14","nodeType":"YulFunctionCall","src":"3582:15:14"},{"hexValue":"6574","kind":"string","nativeSrc":"3599:4:14","nodeType":"YulLiteral","src":"3599:4:14","type":"","value":"et"}],"functionName":{"name":"mstore","nativeSrc":"3575:6:14","nodeType":"YulIdentifier","src":"3575:6:14"},"nativeSrc":"3575:29:14","nodeType":"YulFunctionCall","src":"3575:29:14"},"nativeSrc":"3575:29:14","nodeType":"YulExpressionStatement","src":"3575:29:14"}]},"name":"store_literal_in_memory_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d","nativeSrc":"3321:290:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"3419:6:14","nodeType":"YulTypedName","src":"3419:6:14","type":""}],"src":"3321:290:14"},{"body":{"nativeSrc":"3763:220:14","nodeType":"YulBlock","src":"3763:220:14","statements":[{"nativeSrc":"3773:74:14","nodeType":"YulAssignment","src":"3773:74:14","value":{"arguments":[{"name":"pos","nativeSrc":"3839:3:14","nodeType":"YulIdentifier","src":"3839:3:14"},{"kind":"number","nativeSrc":"3844:2:14","nodeType":"YulLiteral","src":"3844:2:14","type":"","value":"66"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"3780:58:14","nodeType":"YulIdentifier","src":"3780:58:14"},"nativeSrc":"3780:67:14","nodeType":"YulFunctionCall","src":"3780:67:14"},"variableNames":[{"name":"pos","nativeSrc":"3773:3:14","nodeType":"YulIdentifier","src":"3773:3:14"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"3945:3:14","nodeType":"YulIdentifier","src":"3945:3:14"}],"functionName":{"name":"store_literal_in_memory_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d","nativeSrc":"3856:88:14","nodeType":"YulIdentifier","src":"3856:88:14"},"nativeSrc":"3856:93:14","nodeType":"YulFunctionCall","src":"3856:93:14"},"nativeSrc":"3856:93:14","nodeType":"YulExpressionStatement","src":"3856:93:14"},{"nativeSrc":"3958:19:14","nodeType":"YulAssignment","src":"3958:19:14","value":{"arguments":[{"name":"pos","nativeSrc":"3969:3:14","nodeType":"YulIdentifier","src":"3969:3:14"},{"kind":"number","nativeSrc":"3974:2:14","nodeType":"YulLiteral","src":"3974:2:14","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"3965:3:14","nodeType":"YulIdentifier","src":"3965:3:14"},"nativeSrc":"3965:12:14","nodeType":"YulFunctionCall","src":"3965:12:14"},"variableNames":[{"name":"end","nativeSrc":"3958:3:14","nodeType":"YulIdentifier","src":"3958:3:14"}]}]},"name":"abi_encode_t_stringliteral_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d_to_t_string_memory_ptr_fromStack","nativeSrc":"3617:366:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"3751:3:14","nodeType":"YulTypedName","src":"3751:3:14","type":""}],"returnVariables":[{"name":"end","nativeSrc":"3759:3:14","nodeType":"YulTypedName","src":"3759:3:14","type":""}],"src":"3617:366:14"},{"body":{"nativeSrc":"4160:248:14","nodeType":"YulBlock","src":"4160:248:14","statements":[{"nativeSrc":"4170:26:14","nodeType":"YulAssignment","src":"4170:26:14","value":{"arguments":[{"name":"headStart","nativeSrc":"4182:9:14","nodeType":"YulIdentifier","src":"4182:9:14"},{"kind":"number","nativeSrc":"4193:2:14","nodeType":"YulLiteral","src":"4193:2:14","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4178:3:14","nodeType":"YulIdentifier","src":"4178:3:14"},"nativeSrc":"4178:18:14","nodeType":"YulFunctionCall","src":"4178:18:14"},"variableNames":[{"name":"tail","nativeSrc":"4170:4:14","nodeType":"YulIdentifier","src":"4170:4:14"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4217:9:14","nodeType":"YulIdentifier","src":"4217:9:14"},{"kind":"number","nativeSrc":"4228:1:14","nodeType":"YulLiteral","src":"4228:1:14","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4213:3:14","nodeType":"YulIdentifier","src":"4213:3:14"},"nativeSrc":"4213:17:14","nodeType":"YulFunctionCall","src":"4213:17:14"},{"arguments":[{"name":"tail","nativeSrc":"4236:4:14","nodeType":"YulIdentifier","src":"4236:4:14"},{"name":"headStart","nativeSrc":"4242:9:14","nodeType":"YulIdentifier","src":"4242:9:14"}],"functionName":{"name":"sub","nativeSrc":"4232:3:14","nodeType":"YulIdentifier","src":"4232:3:14"},"nativeSrc":"4232:20:14","nodeType":"YulFunctionCall","src":"4232:20:14"}],"functionName":{"name":"mstore","nativeSrc":"4206:6:14","nodeType":"YulIdentifier","src":"4206:6:14"},"nativeSrc":"4206:47:14","nodeType":"YulFunctionCall","src":"4206:47:14"},"nativeSrc":"4206:47:14","nodeType":"YulExpressionStatement","src":"4206:47:14"},{"nativeSrc":"4262:139:14","nodeType":"YulAssignment","src":"4262:139:14","value":{"arguments":[{"name":"tail","nativeSrc":"4396:4:14","nodeType":"YulIdentifier","src":"4396:4:14"}],"functionName":{"name":"abi_encode_t_stringliteral_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d_to_t_string_memory_ptr_fromStack","nativeSrc":"4270:124:14","nodeType":"YulIdentifier","src":"4270:124:14"},"nativeSrc":"4270:131:14","nodeType":"YulFunctionCall","src":"4270:131:14"},"variableNames":[{"name":"tail","nativeSrc":"4262:4:14","nodeType":"YulIdentifier","src":"4262:4:14"}]}]},"name":"abi_encode_tuple_t_stringliteral_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"3989:419:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4140:9:14","nodeType":"YulTypedName","src":"4140:9:14","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4155:4:14","nodeType":"YulTypedName","src":"4155:4:14","type":""}],"src":"3989:419:14"},{"body":{"nativeSrc":"4540:206:14","nodeType":"YulBlock","src":"4540:206:14","statements":[{"nativeSrc":"4550:26:14","nodeType":"YulAssignment","src":"4550:26:14","value":{"arguments":[{"name":"headStart","nativeSrc":"4562:9:14","nodeType":"YulIdentifier","src":"4562:9:14"},{"kind":"number","nativeSrc":"4573:2:14","nodeType":"YulLiteral","src":"4573:2:14","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4558:3:14","nodeType":"YulIdentifier","src":"4558:3:14"},"nativeSrc":"4558:18:14","nodeType":"YulFunctionCall","src":"4558:18:14"},"variableNames":[{"name":"tail","nativeSrc":"4550:4:14","nodeType":"YulIdentifier","src":"4550:4:14"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"4630:6:14","nodeType":"YulIdentifier","src":"4630:6:14"},{"arguments":[{"name":"headStart","nativeSrc":"4643:9:14","nodeType":"YulIdentifier","src":"4643:9:14"},{"kind":"number","nativeSrc":"4654:1:14","nodeType":"YulLiteral","src":"4654:1:14","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4639:3:14","nodeType":"YulIdentifier","src":"4639:3:14"},"nativeSrc":"4639:17:14","nodeType":"YulFunctionCall","src":"4639:17:14"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"4586:43:14","nodeType":"YulIdentifier","src":"4586:43:14"},"nativeSrc":"4586:71:14","nodeType":"YulFunctionCall","src":"4586:71:14"},"nativeSrc":"4586:71:14","nodeType":"YulExpressionStatement","src":"4586:71:14"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"4711:6:14","nodeType":"YulIdentifier","src":"4711:6:14"},{"arguments":[{"name":"headStart","nativeSrc":"4724:9:14","nodeType":"YulIdentifier","src":"4724:9:14"},{"kind":"number","nativeSrc":"4735:2:14","nodeType":"YulLiteral","src":"4735:2:14","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4720:3:14","nodeType":"YulIdentifier","src":"4720:3:14"},"nativeSrc":"4720:18:14","nodeType":"YulFunctionCall","src":"4720:18:14"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"4667:43:14","nodeType":"YulIdentifier","src":"4667:43:14"},"nativeSrc":"4667:72:14","nodeType":"YulFunctionCall","src":"4667:72:14"},"nativeSrc":"4667:72:14","nodeType":"YulExpressionStatement","src":"4667:72:14"}]},"name":"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed","nativeSrc":"4414:332:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4504:9:14","nodeType":"YulTypedName","src":"4504:9:14","type":""},{"name":"value1","nativeSrc":"4516:6:14","nodeType":"YulTypedName","src":"4516:6:14","type":""},{"name":"value0","nativeSrc":"4524:6:14","nodeType":"YulTypedName","src":"4524:6:14","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4535:4:14","nodeType":"YulTypedName","src":"4535:4:14","type":""}],"src":"4414:332:14"},{"body":{"nativeSrc":"4858:119:14","nodeType":"YulBlock","src":"4858:119:14","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"4880:6:14","nodeType":"YulIdentifier","src":"4880:6:14"},{"kind":"number","nativeSrc":"4888:1:14","nodeType":"YulLiteral","src":"4888:1:14","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4876:3:14","nodeType":"YulIdentifier","src":"4876:3:14"},"nativeSrc":"4876:14:14","nodeType":"YulFunctionCall","src":"4876:14:14"},{"hexValue":"455243313936373a206e65772061646d696e20697320746865207a65726f2061","kind":"string","nativeSrc":"4892:34:14","nodeType":"YulLiteral","src":"4892:34:14","type":"","value":"ERC1967: new admin is the zero a"}],"functionName":{"name":"mstore","nativeSrc":"4869:6:14","nodeType":"YulIdentifier","src":"4869:6:14"},"nativeSrc":"4869:58:14","nodeType":"YulFunctionCall","src":"4869:58:14"},"nativeSrc":"4869:58:14","nodeType":"YulExpressionStatement","src":"4869:58:14"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"4948:6:14","nodeType":"YulIdentifier","src":"4948:6:14"},{"kind":"number","nativeSrc":"4956:2:14","nodeType":"YulLiteral","src":"4956:2:14","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4944:3:14","nodeType":"YulIdentifier","src":"4944:3:14"},"nativeSrc":"4944:15:14","nodeType":"YulFunctionCall","src":"4944:15:14"},{"hexValue":"646472657373","kind":"string","nativeSrc":"4961:8:14","nodeType":"YulLiteral","src":"4961:8:14","type":"","value":"ddress"}],"functionName":{"name":"mstore","nativeSrc":"4937:6:14","nodeType":"YulIdentifier","src":"4937:6:14"},"nativeSrc":"4937:33:14","nodeType":"YulFunctionCall","src":"4937:33:14"},"nativeSrc":"4937:33:14","nodeType":"YulExpressionStatement","src":"4937:33:14"}]},"name":"store_literal_in_memory_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5","nativeSrc":"4752:225:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"4850:6:14","nodeType":"YulTypedName","src":"4850:6:14","type":""}],"src":"4752:225:14"},{"body":{"nativeSrc":"5129:220:14","nodeType":"YulBlock","src":"5129:220:14","statements":[{"nativeSrc":"5139:74:14","nodeType":"YulAssignment","src":"5139:74:14","value":{"arguments":[{"name":"pos","nativeSrc":"5205:3:14","nodeType":"YulIdentifier","src":"5205:3:14"},{"kind":"number","nativeSrc":"5210:2:14","nodeType":"YulLiteral","src":"5210:2:14","type":"","value":"38"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"5146:58:14","nodeType":"YulIdentifier","src":"5146:58:14"},"nativeSrc":"5146:67:14","nodeType":"YulFunctionCall","src":"5146:67:14"},"variableNames":[{"name":"pos","nativeSrc":"5139:3:14","nodeType":"YulIdentifier","src":"5139:3:14"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"5311:3:14","nodeType":"YulIdentifier","src":"5311:3:14"}],"functionName":{"name":"store_literal_in_memory_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5","nativeSrc":"5222:88:14","nodeType":"YulIdentifier","src":"5222:88:14"},"nativeSrc":"5222:93:14","nodeType":"YulFunctionCall","src":"5222:93:14"},"nativeSrc":"5222:93:14","nodeType":"YulExpressionStatement","src":"5222:93:14"},{"nativeSrc":"5324:19:14","nodeType":"YulAssignment","src":"5324:19:14","value":{"arguments":[{"name":"pos","nativeSrc":"5335:3:14","nodeType":"YulIdentifier","src":"5335:3:14"},{"kind":"number","nativeSrc":"5340:2:14","nodeType":"YulLiteral","src":"5340:2:14","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5331:3:14","nodeType":"YulIdentifier","src":"5331:3:14"},"nativeSrc":"5331:12:14","nodeType":"YulFunctionCall","src":"5331:12:14"},"variableNames":[{"name":"end","nativeSrc":"5324:3:14","nodeType":"YulIdentifier","src":"5324:3:14"}]}]},"name":"abi_encode_t_stringliteral_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5_to_t_string_memory_ptr_fromStack","nativeSrc":"4983:366:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"5117:3:14","nodeType":"YulTypedName","src":"5117:3:14","type":""}],"returnVariables":[{"name":"end","nativeSrc":"5125:3:14","nodeType":"YulTypedName","src":"5125:3:14","type":""}],"src":"4983:366:14"},{"body":{"nativeSrc":"5526:248:14","nodeType":"YulBlock","src":"5526:248:14","statements":[{"nativeSrc":"5536:26:14","nodeType":"YulAssignment","src":"5536:26:14","value":{"arguments":[{"name":"headStart","nativeSrc":"5548:9:14","nodeType":"YulIdentifier","src":"5548:9:14"},{"kind":"number","nativeSrc":"5559:2:14","nodeType":"YulLiteral","src":"5559:2:14","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5544:3:14","nodeType":"YulIdentifier","src":"5544:3:14"},"nativeSrc":"5544:18:14","nodeType":"YulFunctionCall","src":"5544:18:14"},"variableNames":[{"name":"tail","nativeSrc":"5536:4:14","nodeType":"YulIdentifier","src":"5536:4:14"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5583:9:14","nodeType":"YulIdentifier","src":"5583:9:14"},{"kind":"number","nativeSrc":"5594:1:14","nodeType":"YulLiteral","src":"5594:1:14","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5579:3:14","nodeType":"YulIdentifier","src":"5579:3:14"},"nativeSrc":"5579:17:14","nodeType":"YulFunctionCall","src":"5579:17:14"},{"arguments":[{"name":"tail","nativeSrc":"5602:4:14","nodeType":"YulIdentifier","src":"5602:4:14"},{"name":"headStart","nativeSrc":"5608:9:14","nodeType":"YulIdentifier","src":"5608:9:14"}],"functionName":{"name":"sub","nativeSrc":"5598:3:14","nodeType":"YulIdentifier","src":"5598:3:14"},"nativeSrc":"5598:20:14","nodeType":"YulFunctionCall","src":"5598:20:14"}],"functionName":{"name":"mstore","nativeSrc":"5572:6:14","nodeType":"YulIdentifier","src":"5572:6:14"},"nativeSrc":"5572:47:14","nodeType":"YulFunctionCall","src":"5572:47:14"},"nativeSrc":"5572:47:14","nodeType":"YulExpressionStatement","src":"5572:47:14"},{"nativeSrc":"5628:139:14","nodeType":"YulAssignment","src":"5628:139:14","value":{"arguments":[{"name":"tail","nativeSrc":"5762:4:14","nodeType":"YulIdentifier","src":"5762:4:14"}],"functionName":{"name":"abi_encode_t_stringliteral_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5_to_t_string_memory_ptr_fromStack","nativeSrc":"5636:124:14","nodeType":"YulIdentifier","src":"5636:124:14"},"nativeSrc":"5636:131:14","nodeType":"YulFunctionCall","src":"5636:131:14"},"variableNames":[{"name":"tail","nativeSrc":"5628:4:14","nodeType":"YulIdentifier","src":"5628:4:14"}]}]},"name":"abi_encode_tuple_t_stringliteral_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"5355:419:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5506:9:14","nodeType":"YulTypedName","src":"5506:9:14","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5521:4:14","nodeType":"YulTypedName","src":"5521:4:14","type":""}],"src":"5355:419:14"},{"body":{"nativeSrc":"5886:126:14","nodeType":"YulBlock","src":"5886:126:14","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"5908:6:14","nodeType":"YulIdentifier","src":"5908:6:14"},{"kind":"number","nativeSrc":"5916:1:14","nodeType":"YulLiteral","src":"5916:1:14","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5904:3:14","nodeType":"YulIdentifier","src":"5904:3:14"},"nativeSrc":"5904:14:14","nodeType":"YulFunctionCall","src":"5904:14:14"},{"hexValue":"455243313936373a206e657720696d706c656d656e746174696f6e206973206e","kind":"string","nativeSrc":"5920:34:14","nodeType":"YulLiteral","src":"5920:34:14","type":"","value":"ERC1967: new implementation is n"}],"functionName":{"name":"mstore","nativeSrc":"5897:6:14","nodeType":"YulIdentifier","src":"5897:6:14"},"nativeSrc":"5897:58:14","nodeType":"YulFunctionCall","src":"5897:58:14"},"nativeSrc":"5897:58:14","nodeType":"YulExpressionStatement","src":"5897:58:14"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"5976:6:14","nodeType":"YulIdentifier","src":"5976:6:14"},{"kind":"number","nativeSrc":"5984:2:14","nodeType":"YulLiteral","src":"5984:2:14","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5972:3:14","nodeType":"YulIdentifier","src":"5972:3:14"},"nativeSrc":"5972:15:14","nodeType":"YulFunctionCall","src":"5972:15:14"},{"hexValue":"6f74206120636f6e7472616374","kind":"string","nativeSrc":"5989:15:14","nodeType":"YulLiteral","src":"5989:15:14","type":"","value":"ot a contract"}],"functionName":{"name":"mstore","nativeSrc":"5965:6:14","nodeType":"YulIdentifier","src":"5965:6:14"},"nativeSrc":"5965:40:14","nodeType":"YulFunctionCall","src":"5965:40:14"},"nativeSrc":"5965:40:14","nodeType":"YulExpressionStatement","src":"5965:40:14"}]},"name":"store_literal_in_memory_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65","nativeSrc":"5780:232:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"5878:6:14","nodeType":"YulTypedName","src":"5878:6:14","type":""}],"src":"5780:232:14"},{"body":{"nativeSrc":"6164:220:14","nodeType":"YulBlock","src":"6164:220:14","statements":[{"nativeSrc":"6174:74:14","nodeType":"YulAssignment","src":"6174:74:14","value":{"arguments":[{"name":"pos","nativeSrc":"6240:3:14","nodeType":"YulIdentifier","src":"6240:3:14"},{"kind":"number","nativeSrc":"6245:2:14","nodeType":"YulLiteral","src":"6245:2:14","type":"","value":"45"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"6181:58:14","nodeType":"YulIdentifier","src":"6181:58:14"},"nativeSrc":"6181:67:14","nodeType":"YulFunctionCall","src":"6181:67:14"},"variableNames":[{"name":"pos","nativeSrc":"6174:3:14","nodeType":"YulIdentifier","src":"6174:3:14"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"6346:3:14","nodeType":"YulIdentifier","src":"6346:3:14"}],"functionName":{"name":"store_literal_in_memory_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65","nativeSrc":"6257:88:14","nodeType":"YulIdentifier","src":"6257:88:14"},"nativeSrc":"6257:93:14","nodeType":"YulFunctionCall","src":"6257:93:14"},"nativeSrc":"6257:93:14","nodeType":"YulExpressionStatement","src":"6257:93:14"},{"nativeSrc":"6359:19:14","nodeType":"YulAssignment","src":"6359:19:14","value":{"arguments":[{"name":"pos","nativeSrc":"6370:3:14","nodeType":"YulIdentifier","src":"6370:3:14"},{"kind":"number","nativeSrc":"6375:2:14","nodeType":"YulLiteral","src":"6375:2:14","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"6366:3:14","nodeType":"YulIdentifier","src":"6366:3:14"},"nativeSrc":"6366:12:14","nodeType":"YulFunctionCall","src":"6366:12:14"},"variableNames":[{"name":"end","nativeSrc":"6359:3:14","nodeType":"YulIdentifier","src":"6359:3:14"}]}]},"name":"abi_encode_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65_to_t_string_memory_ptr_fromStack","nativeSrc":"6018:366:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"6152:3:14","nodeType":"YulTypedName","src":"6152:3:14","type":""}],"returnVariables":[{"name":"end","nativeSrc":"6160:3:14","nodeType":"YulTypedName","src":"6160:3:14","type":""}],"src":"6018:366:14"},{"body":{"nativeSrc":"6561:248:14","nodeType":"YulBlock","src":"6561:248:14","statements":[{"nativeSrc":"6571:26:14","nodeType":"YulAssignment","src":"6571:26:14","value":{"arguments":[{"name":"headStart","nativeSrc":"6583:9:14","nodeType":"YulIdentifier","src":"6583:9:14"},{"kind":"number","nativeSrc":"6594:2:14","nodeType":"YulLiteral","src":"6594:2:14","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6579:3:14","nodeType":"YulIdentifier","src":"6579:3:14"},"nativeSrc":"6579:18:14","nodeType":"YulFunctionCall","src":"6579:18:14"},"variableNames":[{"name":"tail","nativeSrc":"6571:4:14","nodeType":"YulIdentifier","src":"6571:4:14"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6618:9:14","nodeType":"YulIdentifier","src":"6618:9:14"},{"kind":"number","nativeSrc":"6629:1:14","nodeType":"YulLiteral","src":"6629:1:14","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6614:3:14","nodeType":"YulIdentifier","src":"6614:3:14"},"nativeSrc":"6614:17:14","nodeType":"YulFunctionCall","src":"6614:17:14"},{"arguments":[{"name":"tail","nativeSrc":"6637:4:14","nodeType":"YulIdentifier","src":"6637:4:14"},{"name":"headStart","nativeSrc":"6643:9:14","nodeType":"YulIdentifier","src":"6643:9:14"}],"functionName":{"name":"sub","nativeSrc":"6633:3:14","nodeType":"YulIdentifier","src":"6633:3:14"},"nativeSrc":"6633:20:14","nodeType":"YulFunctionCall","src":"6633:20:14"}],"functionName":{"name":"mstore","nativeSrc":"6607:6:14","nodeType":"YulIdentifier","src":"6607:6:14"},"nativeSrc":"6607:47:14","nodeType":"YulFunctionCall","src":"6607:47:14"},"nativeSrc":"6607:47:14","nodeType":"YulExpressionStatement","src":"6607:47:14"},{"nativeSrc":"6663:139:14","nodeType":"YulAssignment","src":"6663:139:14","value":{"arguments":[{"name":"tail","nativeSrc":"6797:4:14","nodeType":"YulIdentifier","src":"6797:4:14"}],"functionName":{"name":"abi_encode_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65_to_t_string_memory_ptr_fromStack","nativeSrc":"6671:124:14","nodeType":"YulIdentifier","src":"6671:124:14"},"nativeSrc":"6671:131:14","nodeType":"YulFunctionCall","src":"6671:131:14"},"variableNames":[{"name":"tail","nativeSrc":"6663:4:14","nodeType":"YulIdentifier","src":"6663:4:14"}]}]},"name":"abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"6390:419:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6541:9:14","nodeType":"YulTypedName","src":"6541:9:14","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6556:4:14","nodeType":"YulTypedName","src":"6556:4:14","type":""}],"src":"6390:419:14"},{"body":{"nativeSrc":"6921:119:14","nodeType":"YulBlock","src":"6921:119:14","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"6943:6:14","nodeType":"YulIdentifier","src":"6943:6:14"},{"kind":"number","nativeSrc":"6951:1:14","nodeType":"YulLiteral","src":"6951:1:14","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6939:3:14","nodeType":"YulIdentifier","src":"6939:3:14"},"nativeSrc":"6939:14:14","nodeType":"YulFunctionCall","src":"6939:14:14"},{"hexValue":"416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f","kind":"string","nativeSrc":"6955:34:14","nodeType":"YulLiteral","src":"6955:34:14","type":"","value":"Address: delegate call to non-co"}],"functionName":{"name":"mstore","nativeSrc":"6932:6:14","nodeType":"YulIdentifier","src":"6932:6:14"},"nativeSrc":"6932:58:14","nodeType":"YulFunctionCall","src":"6932:58:14"},"nativeSrc":"6932:58:14","nodeType":"YulExpressionStatement","src":"6932:58:14"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"7011:6:14","nodeType":"YulIdentifier","src":"7011:6:14"},{"kind":"number","nativeSrc":"7019:2:14","nodeType":"YulLiteral","src":"7019:2:14","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7007:3:14","nodeType":"YulIdentifier","src":"7007:3:14"},"nativeSrc":"7007:15:14","nodeType":"YulFunctionCall","src":"7007:15:14"},{"hexValue":"6e7472616374","kind":"string","nativeSrc":"7024:8:14","nodeType":"YulLiteral","src":"7024:8:14","type":"","value":"ntract"}],"functionName":{"name":"mstore","nativeSrc":"7000:6:14","nodeType":"YulIdentifier","src":"7000:6:14"},"nativeSrc":"7000:33:14","nodeType":"YulFunctionCall","src":"7000:33:14"},"nativeSrc":"7000:33:14","nodeType":"YulExpressionStatement","src":"7000:33:14"}]},"name":"store_literal_in_memory_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520","nativeSrc":"6815:225:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"6913:6:14","nodeType":"YulTypedName","src":"6913:6:14","type":""}],"src":"6815:225:14"},{"body":{"nativeSrc":"7192:220:14","nodeType":"YulBlock","src":"7192:220:14","statements":[{"nativeSrc":"7202:74:14","nodeType":"YulAssignment","src":"7202:74:14","value":{"arguments":[{"name":"pos","nativeSrc":"7268:3:14","nodeType":"YulIdentifier","src":"7268:3:14"},{"kind":"number","nativeSrc":"7273:2:14","nodeType":"YulLiteral","src":"7273:2:14","type":"","value":"38"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"7209:58:14","nodeType":"YulIdentifier","src":"7209:58:14"},"nativeSrc":"7209:67:14","nodeType":"YulFunctionCall","src":"7209:67:14"},"variableNames":[{"name":"pos","nativeSrc":"7202:3:14","nodeType":"YulIdentifier","src":"7202:3:14"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"7374:3:14","nodeType":"YulIdentifier","src":"7374:3:14"}],"functionName":{"name":"store_literal_in_memory_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520","nativeSrc":"7285:88:14","nodeType":"YulIdentifier","src":"7285:88:14"},"nativeSrc":"7285:93:14","nodeType":"YulFunctionCall","src":"7285:93:14"},"nativeSrc":"7285:93:14","nodeType":"YulExpressionStatement","src":"7285:93:14"},{"nativeSrc":"7387:19:14","nodeType":"YulAssignment","src":"7387:19:14","value":{"arguments":[{"name":"pos","nativeSrc":"7398:3:14","nodeType":"YulIdentifier","src":"7398:3:14"},{"kind":"number","nativeSrc":"7403:2:14","nodeType":"YulLiteral","src":"7403:2:14","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"7394:3:14","nodeType":"YulIdentifier","src":"7394:3:14"},"nativeSrc":"7394:12:14","nodeType":"YulFunctionCall","src":"7394:12:14"},"variableNames":[{"name":"end","nativeSrc":"7387:3:14","nodeType":"YulIdentifier","src":"7387:3:14"}]}]},"name":"abi_encode_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520_to_t_string_memory_ptr_fromStack","nativeSrc":"7046:366:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"7180:3:14","nodeType":"YulTypedName","src":"7180:3:14","type":""}],"returnVariables":[{"name":"end","nativeSrc":"7188:3:14","nodeType":"YulTypedName","src":"7188:3:14","type":""}],"src":"7046:366:14"},{"body":{"nativeSrc":"7589:248:14","nodeType":"YulBlock","src":"7589:248:14","statements":[{"nativeSrc":"7599:26:14","nodeType":"YulAssignment","src":"7599:26:14","value":{"arguments":[{"name":"headStart","nativeSrc":"7611:9:14","nodeType":"YulIdentifier","src":"7611:9:14"},{"kind":"number","nativeSrc":"7622:2:14","nodeType":"YulLiteral","src":"7622:2:14","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7607:3:14","nodeType":"YulIdentifier","src":"7607:3:14"},"nativeSrc":"7607:18:14","nodeType":"YulFunctionCall","src":"7607:18:14"},"variableNames":[{"name":"tail","nativeSrc":"7599:4:14","nodeType":"YulIdentifier","src":"7599:4:14"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7646:9:14","nodeType":"YulIdentifier","src":"7646:9:14"},{"kind":"number","nativeSrc":"7657:1:14","nodeType":"YulLiteral","src":"7657:1:14","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"7642:3:14","nodeType":"YulIdentifier","src":"7642:3:14"},"nativeSrc":"7642:17:14","nodeType":"YulFunctionCall","src":"7642:17:14"},{"arguments":[{"name":"tail","nativeSrc":"7665:4:14","nodeType":"YulIdentifier","src":"7665:4:14"},{"name":"headStart","nativeSrc":"7671:9:14","nodeType":"YulIdentifier","src":"7671:9:14"}],"functionName":{"name":"sub","nativeSrc":"7661:3:14","nodeType":"YulIdentifier","src":"7661:3:14"},"nativeSrc":"7661:20:14","nodeType":"YulFunctionCall","src":"7661:20:14"}],"functionName":{"name":"mstore","nativeSrc":"7635:6:14","nodeType":"YulIdentifier","src":"7635:6:14"},"nativeSrc":"7635:47:14","nodeType":"YulFunctionCall","src":"7635:47:14"},"nativeSrc":"7635:47:14","nodeType":"YulExpressionStatement","src":"7635:47:14"},{"nativeSrc":"7691:139:14","nodeType":"YulAssignment","src":"7691:139:14","value":{"arguments":[{"name":"tail","nativeSrc":"7825:4:14","nodeType":"YulIdentifier","src":"7825:4:14"}],"functionName":{"name":"abi_encode_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520_to_t_string_memory_ptr_fromStack","nativeSrc":"7699:124:14","nodeType":"YulIdentifier","src":"7699:124:14"},"nativeSrc":"7699:131:14","nodeType":"YulFunctionCall","src":"7699:131:14"},"variableNames":[{"name":"tail","nativeSrc":"7691:4:14","nodeType":"YulIdentifier","src":"7691:4:14"}]}]},"name":"abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"7418:419:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7569:9:14","nodeType":"YulTypedName","src":"7569:9:14","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7584:4:14","nodeType":"YulTypedName","src":"7584:4:14","type":""}],"src":"7418:419:14"},{"body":{"nativeSrc":"7901:40:14","nodeType":"YulBlock","src":"7901:40:14","statements":[{"nativeSrc":"7912:22:14","nodeType":"YulAssignment","src":"7912:22:14","value":{"arguments":[{"name":"value","nativeSrc":"7928:5:14","nodeType":"YulIdentifier","src":"7928:5:14"}],"functionName":{"name":"mload","nativeSrc":"7922:5:14","nodeType":"YulIdentifier","src":"7922:5:14"},"nativeSrc":"7922:12:14","nodeType":"YulFunctionCall","src":"7922:12:14"},"variableNames":[{"name":"length","nativeSrc":"7912:6:14","nodeType":"YulIdentifier","src":"7912:6:14"}]}]},"name":"array_length_t_bytes_memory_ptr","nativeSrc":"7843:98:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7884:5:14","nodeType":"YulTypedName","src":"7884:5:14","type":""}],"returnVariables":[{"name":"length","nativeSrc":"7894:6:14","nodeType":"YulTypedName","src":"7894:6:14","type":""}],"src":"7843:98:14"},{"body":{"nativeSrc":"8060:34:14","nodeType":"YulBlock","src":"8060:34:14","statements":[{"nativeSrc":"8070:18:14","nodeType":"YulAssignment","src":"8070:18:14","value":{"name":"pos","nativeSrc":"8085:3:14","nodeType":"YulIdentifier","src":"8085:3:14"},"variableNames":[{"name":"updated_pos","nativeSrc":"8070:11:14","nodeType":"YulIdentifier","src":"8070:11:14"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"7947:147:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"8032:3:14","nodeType":"YulTypedName","src":"8032:3:14","type":""},{"name":"length","nativeSrc":"8037:6:14","nodeType":"YulTypedName","src":"8037:6:14","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"8048:11:14","nodeType":"YulTypedName","src":"8048:11:14","type":""}],"src":"7947:147:14"},{"body":{"nativeSrc":"8162:77:14","nodeType":"YulBlock","src":"8162:77:14","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"8179:3:14","nodeType":"YulIdentifier","src":"8179:3:14"},{"name":"src","nativeSrc":"8184:3:14","nodeType":"YulIdentifier","src":"8184:3:14"},{"name":"length","nativeSrc":"8189:6:14","nodeType":"YulIdentifier","src":"8189:6:14"}],"functionName":{"name":"mcopy","nativeSrc":"8173:5:14","nodeType":"YulIdentifier","src":"8173:5:14"},"nativeSrc":"8173:23:14","nodeType":"YulFunctionCall","src":"8173:23:14"},"nativeSrc":"8173:23:14","nodeType":"YulExpressionStatement","src":"8173:23:14"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"8216:3:14","nodeType":"YulIdentifier","src":"8216:3:14"},{"name":"length","nativeSrc":"8221:6:14","nodeType":"YulIdentifier","src":"8221:6:14"}],"functionName":{"name":"add","nativeSrc":"8212:3:14","nodeType":"YulIdentifier","src":"8212:3:14"},"nativeSrc":"8212:16:14","nodeType":"YulFunctionCall","src":"8212:16:14"},{"kind":"number","nativeSrc":"8230:1:14","nodeType":"YulLiteral","src":"8230:1:14","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"8205:6:14","nodeType":"YulIdentifier","src":"8205:6:14"},"nativeSrc":"8205:27:14","nodeType":"YulFunctionCall","src":"8205:27:14"},"nativeSrc":"8205:27:14","nodeType":"YulExpressionStatement","src":"8205:27:14"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"8100:139:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"8144:3:14","nodeType":"YulTypedName","src":"8144:3:14","type":""},{"name":"dst","nativeSrc":"8149:3:14","nodeType":"YulTypedName","src":"8149:3:14","type":""},{"name":"length","nativeSrc":"8154:6:14","nodeType":"YulTypedName","src":"8154:6:14","type":""}],"src":"8100:139:14"},{"body":{"nativeSrc":"8353:278:14","nodeType":"YulBlock","src":"8353:278:14","statements":[{"nativeSrc":"8363:52:14","nodeType":"YulVariableDeclaration","src":"8363:52:14","value":{"arguments":[{"name":"value","nativeSrc":"8409:5:14","nodeType":"YulIdentifier","src":"8409:5:14"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"8377:31:14","nodeType":"YulIdentifier","src":"8377:31:14"},"nativeSrc":"8377:38:14","nodeType":"YulFunctionCall","src":"8377:38:14"},"variables":[{"name":"length","nativeSrc":"8367:6:14","nodeType":"YulTypedName","src":"8367:6:14","type":""}]},{"nativeSrc":"8424:95:14","nodeType":"YulAssignment","src":"8424:95:14","value":{"arguments":[{"name":"pos","nativeSrc":"8507:3:14","nodeType":"YulIdentifier","src":"8507:3:14"},{"name":"length","nativeSrc":"8512:6:14","nodeType":"YulIdentifier","src":"8512:6:14"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"8431:75:14","nodeType":"YulIdentifier","src":"8431:75:14"},"nativeSrc":"8431:88:14","nodeType":"YulFunctionCall","src":"8431:88:14"},"variableNames":[{"name":"pos","nativeSrc":"8424:3:14","nodeType":"YulIdentifier","src":"8424:3:14"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"8567:5:14","nodeType":"YulIdentifier","src":"8567:5:14"},{"kind":"number","nativeSrc":"8574:4:14","nodeType":"YulLiteral","src":"8574:4:14","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8563:3:14","nodeType":"YulIdentifier","src":"8563:3:14"},"nativeSrc":"8563:16:14","nodeType":"YulFunctionCall","src":"8563:16:14"},{"name":"pos","nativeSrc":"8581:3:14","nodeType":"YulIdentifier","src":"8581:3:14"},{"name":"length","nativeSrc":"8586:6:14","nodeType":"YulIdentifier","src":"8586:6:14"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"8528:34:14","nodeType":"YulIdentifier","src":"8528:34:14"},"nativeSrc":"8528:65:14","nodeType":"YulFunctionCall","src":"8528:65:14"},"nativeSrc":"8528:65:14","nodeType":"YulExpressionStatement","src":"8528:65:14"},{"nativeSrc":"8602:23:14","nodeType":"YulAssignment","src":"8602:23:14","value":{"arguments":[{"name":"pos","nativeSrc":"8613:3:14","nodeType":"YulIdentifier","src":"8613:3:14"},{"name":"length","nativeSrc":"8618:6:14","nodeType":"YulIdentifier","src":"8618:6:14"}],"functionName":{"name":"add","nativeSrc":"8609:3:14","nodeType":"YulIdentifier","src":"8609:3:14"},"nativeSrc":"8609:16:14","nodeType":"YulFunctionCall","src":"8609:16:14"},"variableNames":[{"name":"end","nativeSrc":"8602:3:14","nodeType":"YulIdentifier","src":"8602:3:14"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"8245:386:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8334:5:14","nodeType":"YulTypedName","src":"8334:5:14","type":""},{"name":"pos","nativeSrc":"8341:3:14","nodeType":"YulTypedName","src":"8341:3:14","type":""}],"returnVariables":[{"name":"end","nativeSrc":"8349:3:14","nodeType":"YulTypedName","src":"8349:3:14","type":""}],"src":"8245:386:14"},{"body":{"nativeSrc":"8771:137:14","nodeType":"YulBlock","src":"8771:137:14","statements":[{"nativeSrc":"8782:100:14","nodeType":"YulAssignment","src":"8782:100:14","value":{"arguments":[{"name":"value0","nativeSrc":"8869:6:14","nodeType":"YulIdentifier","src":"8869:6:14"},{"name":"pos","nativeSrc":"8878:3:14","nodeType":"YulIdentifier","src":"8878:3:14"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"8789:79:14","nodeType":"YulIdentifier","src":"8789:79:14"},"nativeSrc":"8789:93:14","nodeType":"YulFunctionCall","src":"8789:93:14"},"variableNames":[{"name":"pos","nativeSrc":"8782:3:14","nodeType":"YulIdentifier","src":"8782:3:14"}]},{"nativeSrc":"8892:10:14","nodeType":"YulAssignment","src":"8892:10:14","value":{"name":"pos","nativeSrc":"8899:3:14","nodeType":"YulIdentifier","src":"8899:3:14"},"variableNames":[{"name":"end","nativeSrc":"8892:3:14","nodeType":"YulIdentifier","src":"8892:3:14"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"8637:271:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"8750:3:14","nodeType":"YulTypedName","src":"8750:3:14","type":""},{"name":"value0","nativeSrc":"8756:6:14","nodeType":"YulTypedName","src":"8756:6:14","type":""}],"returnVariables":[{"name":"end","nativeSrc":"8767:3:14","nodeType":"YulTypedName","src":"8767:3:14","type":""}],"src":"8637:271:14"},{"body":{"nativeSrc":"8973:40:14","nodeType":"YulBlock","src":"8973:40:14","statements":[{"nativeSrc":"8984:22:14","nodeType":"YulAssignment","src":"8984:22:14","value":{"arguments":[{"name":"value","nativeSrc":"9000:5:14","nodeType":"YulIdentifier","src":"9000:5:14"}],"functionName":{"name":"mload","nativeSrc":"8994:5:14","nodeType":"YulIdentifier","src":"8994:5:14"},"nativeSrc":"8994:12:14","nodeType":"YulFunctionCall","src":"8994:12:14"},"variableNames":[{"name":"length","nativeSrc":"8984:6:14","nodeType":"YulIdentifier","src":"8984:6:14"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"8914:99:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8956:5:14","nodeType":"YulTypedName","src":"8956:5:14","type":""}],"returnVariables":[{"name":"length","nativeSrc":"8966:6:14","nodeType":"YulTypedName","src":"8966:6:14","type":""}],"src":"8914:99:14"},{"body":{"nativeSrc":"9067:54:14","nodeType":"YulBlock","src":"9067:54:14","statements":[{"nativeSrc":"9077:38:14","nodeType":"YulAssignment","src":"9077:38:14","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9095:5:14","nodeType":"YulIdentifier","src":"9095:5:14"},{"kind":"number","nativeSrc":"9102:2:14","nodeType":"YulLiteral","src":"9102:2:14","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"9091:3:14","nodeType":"YulIdentifier","src":"9091:3:14"},"nativeSrc":"9091:14:14","nodeType":"YulFunctionCall","src":"9091:14:14"},{"arguments":[{"kind":"number","nativeSrc":"9111:2:14","nodeType":"YulLiteral","src":"9111:2:14","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"9107:3:14","nodeType":"YulIdentifier","src":"9107:3:14"},"nativeSrc":"9107:7:14","nodeType":"YulFunctionCall","src":"9107:7:14"}],"functionName":{"name":"and","nativeSrc":"9087:3:14","nodeType":"YulIdentifier","src":"9087:3:14"},"nativeSrc":"9087:28:14","nodeType":"YulFunctionCall","src":"9087:28:14"},"variableNames":[{"name":"result","nativeSrc":"9077:6:14","nodeType":"YulIdentifier","src":"9077:6:14"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"9019:102:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9050:5:14","nodeType":"YulTypedName","src":"9050:5:14","type":""}],"returnVariables":[{"name":"result","nativeSrc":"9060:6:14","nodeType":"YulTypedName","src":"9060:6:14","type":""}],"src":"9019:102:14"},{"body":{"nativeSrc":"9219:285:14","nodeType":"YulBlock","src":"9219:285:14","statements":[{"nativeSrc":"9229:53:14","nodeType":"YulVariableDeclaration","src":"9229:53:14","value":{"arguments":[{"name":"value","nativeSrc":"9276:5:14","nodeType":"YulIdentifier","src":"9276:5:14"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"9243:32:14","nodeType":"YulIdentifier","src":"9243:32:14"},"nativeSrc":"9243:39:14","nodeType":"YulFunctionCall","src":"9243:39:14"},"variables":[{"name":"length","nativeSrc":"9233:6:14","nodeType":"YulTypedName","src":"9233:6:14","type":""}]},{"nativeSrc":"9291:78:14","nodeType":"YulAssignment","src":"9291:78:14","value":{"arguments":[{"name":"pos","nativeSrc":"9357:3:14","nodeType":"YulIdentifier","src":"9357:3:14"},{"name":"length","nativeSrc":"9362:6:14","nodeType":"YulIdentifier","src":"9362:6:14"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"9298:58:14","nodeType":"YulIdentifier","src":"9298:58:14"},"nativeSrc":"9298:71:14","nodeType":"YulFunctionCall","src":"9298:71:14"},"variableNames":[{"name":"pos","nativeSrc":"9291:3:14","nodeType":"YulIdentifier","src":"9291:3:14"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9417:5:14","nodeType":"YulIdentifier","src":"9417:5:14"},{"kind":"number","nativeSrc":"9424:4:14","nodeType":"YulLiteral","src":"9424:4:14","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9413:3:14","nodeType":"YulIdentifier","src":"9413:3:14"},"nativeSrc":"9413:16:14","nodeType":"YulFunctionCall","src":"9413:16:14"},{"name":"pos","nativeSrc":"9431:3:14","nodeType":"YulIdentifier","src":"9431:3:14"},{"name":"length","nativeSrc":"9436:6:14","nodeType":"YulIdentifier","src":"9436:6:14"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"9378:34:14","nodeType":"YulIdentifier","src":"9378:34:14"},"nativeSrc":"9378:65:14","nodeType":"YulFunctionCall","src":"9378:65:14"},"nativeSrc":"9378:65:14","nodeType":"YulExpressionStatement","src":"9378:65:14"},{"nativeSrc":"9452:46:14","nodeType":"YulAssignment","src":"9452:46:14","value":{"arguments":[{"name":"pos","nativeSrc":"9463:3:14","nodeType":"YulIdentifier","src":"9463:3:14"},{"arguments":[{"name":"length","nativeSrc":"9490:6:14","nodeType":"YulIdentifier","src":"9490:6:14"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"9468:21:14","nodeType":"YulIdentifier","src":"9468:21:14"},"nativeSrc":"9468:29:14","nodeType":"YulFunctionCall","src":"9468:29:14"}],"functionName":{"name":"add","nativeSrc":"9459:3:14","nodeType":"YulIdentifier","src":"9459:3:14"},"nativeSrc":"9459:39:14","nodeType":"YulFunctionCall","src":"9459:39:14"},"variableNames":[{"name":"end","nativeSrc":"9452:3:14","nodeType":"YulIdentifier","src":"9452:3:14"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"9127:377:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9200:5:14","nodeType":"YulTypedName","src":"9200:5:14","type":""},{"name":"pos","nativeSrc":"9207:3:14","nodeType":"YulTypedName","src":"9207:3:14","type":""}],"returnVariables":[{"name":"end","nativeSrc":"9215:3:14","nodeType":"YulTypedName","src":"9215:3:14","type":""}],"src":"9127:377:14"},{"body":{"nativeSrc":"9628:195:14","nodeType":"YulBlock","src":"9628:195:14","statements":[{"nativeSrc":"9638:26:14","nodeType":"YulAssignment","src":"9638:26:14","value":{"arguments":[{"name":"headStart","nativeSrc":"9650:9:14","nodeType":"YulIdentifier","src":"9650:9:14"},{"kind":"number","nativeSrc":"9661:2:14","nodeType":"YulLiteral","src":"9661:2:14","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9646:3:14","nodeType":"YulIdentifier","src":"9646:3:14"},"nativeSrc":"9646:18:14","nodeType":"YulFunctionCall","src":"9646:18:14"},"variableNames":[{"name":"tail","nativeSrc":"9638:4:14","nodeType":"YulIdentifier","src":"9638:4:14"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9685:9:14","nodeType":"YulIdentifier","src":"9685:9:14"},{"kind":"number","nativeSrc":"9696:1:14","nodeType":"YulLiteral","src":"9696:1:14","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"9681:3:14","nodeType":"YulIdentifier","src":"9681:3:14"},"nativeSrc":"9681:17:14","nodeType":"YulFunctionCall","src":"9681:17:14"},{"arguments":[{"name":"tail","nativeSrc":"9704:4:14","nodeType":"YulIdentifier","src":"9704:4:14"},{"name":"headStart","nativeSrc":"9710:9:14","nodeType":"YulIdentifier","src":"9710:9:14"}],"functionName":{"name":"sub","nativeSrc":"9700:3:14","nodeType":"YulIdentifier","src":"9700:3:14"},"nativeSrc":"9700:20:14","nodeType":"YulFunctionCall","src":"9700:20:14"}],"functionName":{"name":"mstore","nativeSrc":"9674:6:14","nodeType":"YulIdentifier","src":"9674:6:14"},"nativeSrc":"9674:47:14","nodeType":"YulFunctionCall","src":"9674:47:14"},"nativeSrc":"9674:47:14","nodeType":"YulExpressionStatement","src":"9674:47:14"},{"nativeSrc":"9730:86:14","nodeType":"YulAssignment","src":"9730:86:14","value":{"arguments":[{"name":"value0","nativeSrc":"9802:6:14","nodeType":"YulIdentifier","src":"9802:6:14"},{"name":"tail","nativeSrc":"9811:4:14","nodeType":"YulIdentifier","src":"9811:4:14"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"9738:63:14","nodeType":"YulIdentifier","src":"9738:63:14"},"nativeSrc":"9738:78:14","nodeType":"YulFunctionCall","src":"9738:78:14"},"variableNames":[{"name":"tail","nativeSrc":"9730:4:14","nodeType":"YulIdentifier","src":"9730:4:14"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"9510:313:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9600:9:14","nodeType":"YulTypedName","src":"9600:9:14","type":""},{"name":"value0","nativeSrc":"9612:6:14","nodeType":"YulTypedName","src":"9612:6:14","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9623:4:14","nodeType":"YulTypedName","src":"9623:4:14","type":""}],"src":"9510:313:14"}]},"contents":"{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n revert(0, 0)\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n // bytes\n function abi_decode_t_bytes_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x01)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_addresst_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1, value2 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function store_literal_in_memory_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d(memPtr) {\n\n mstore(add(memPtr, 0), \"TransparentUpgradeableProxy: adm\")\n\n mstore(add(memPtr, 32), \"in cannot fallback to proxy targ\")\n\n mstore(add(memPtr, 64), \"et\")\n\n }\n\n function abi_encode_t_stringliteral_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 66)\n store_literal_in_memory_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d(pos)\n end := add(pos, 96)\n }\n\n function abi_encode_tuple_t_stringliteral_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n }\n\n function store_literal_in_memory_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC1967: new admin is the zero a\")\n\n mstore(add(memPtr, 32), \"ddress\")\n\n }\n\n function abi_encode_t_stringliteral_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n store_literal_in_memory_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC1967: new implementation is n\")\n\n mstore(add(memPtr, 32), \"ot a contract\")\n\n }\n\n function abi_encode_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 45)\n store_literal_in_memory_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520(memPtr) {\n\n mstore(add(memPtr, 0), \"Address: delegate call to non-co\")\n\n mstore(add(memPtr, 32), \"ntract\")\n\n }\n\n function abi_encode_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n store_literal_in_memory_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n mcopy(dst, src, length)\n mstore(add(dst, length), 0)\n\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, length)\n }\n\n function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value0) -> end {\n\n pos := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n end := pos\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n}\n","id":14,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"60806040526004361061004d575f3560e01c80633659cfe6146100645780634f1ef286146100835780635c60da1b146100965780638f283970146100c0578063f851a440146100df5761005c565b3661005c5761005a6100f3565b005b61005a6100f3565b34801561006f575f80fd5b5061005a61007e366004610571565b61010d565b61005a6100913660046105e5565b610148565b3480156100a1575f80fd5b506100aa6101ae565b6040516100b7919061064b565b60405180910390f35b3480156100cb575f80fd5b5061005a6100da366004610571565b6101de565b3480156100ea575f80fd5b506100aa6101fe565b6100fb61021e565b61010b610106610256565b61025f565b565b61011561027d565b6001600160a01b031633036101405761013d8160405180602001604052805f8152505f6102af565b50565b61013d6100f3565b61015061027d565b6001600160a01b031633036101a6576101a18383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250600192506102af915050565b505050565b6101a16100f3565b5f6101b761027d565b6001600160a01b031633036101d3576101ce610256565b905090565b6101db6100f3565b90565b6101e661027d565b6001600160a01b031633036101405761013d816102d9565b5f61020761027d565b6001600160a01b031633036101d3576101ce61027d565b61022661027d565b6001600160a01b0316330361010b5760405162461bcd60e51b815260040161024d90610659565b60405180910390fd5b5f6101ce610322565b365f80375f80365f845af43d5f803e808015610279573d5ff35b3d5ffd5b5f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b6102b883610349565b5f825111806102c45750805b156101a1576102d38383610388565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61030261027d565b826040516103119291906106c5565b60405180910390a161013d816103b6565b5f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6102a0565b61035281610420565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606103ad838360405180606001604052806027815260200161085a6027913961046e565b90505b92915050565b6001600160a01b0381166103dc5760405162461bcd60e51b815260040161024d90610725565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6104475760405162461bcd60e51b815260040161024d9061077e565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6103ff565b60606001600160a01b0384163b6104975760405162461bcd60e51b815260040161024d906107d0565b5f80856001600160a01b0316856040516104b1919061080c565b5f60405180830381855af49150503d805f81146104e9576040519150601f19603f3d011682016040523d82523d5f602084013e6104ee565b606091505b50915091506104fe82828661050a565b925050505b9392505050565b60608315610519575081610503565b8251156105295782518084602001fd5b8160405162461bcd60e51b815260040161024d9190610848565b5f6001600160a01b0382166103b0565b61055c81610543565b811461013d575f80fd5b80356103b081610553565b5f60208284031215610584576105845f80fd5b5f61058f8484610566565b949350505050565b5f8083601f8401126105aa576105aa5f80fd5b50813567ffffffffffffffff8111156105c4576105c45f80fd5b6020830191508360018202830111156105de576105de5f80fd5b9250929050565b5f805f604084860312156105fa576105fa5f80fd5b5f6106058686610566565b935050602084013567ffffffffffffffff811115610624576106245f80fd5b61063086828701610597565b92509250509250925092565b61064581610543565b82525050565b602081016103b0828461063c565b602080825281016103b081604281527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60208201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267604082015261195d60f21b606082015260800190565b604081016106d3828561063c565b610503602083018461063c565b602681525f602082017f455243313936373a206e65772061646d696e20697320746865207a65726f206181526564647265737360d01b602082015291505b5060400190565b602080825281016103b0816106e0565b602d81525f602082017f455243313936373a206e657720696d706c656d656e746174696f6e206973206e81526c1bdd08184818dbdb9d1c9858dd609a1b6020820152915061071e565b602080825281016103b081610735565b602681525f602082017f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f8152651b9d1c9858dd60d21b6020820152915061071e565b602080825281016103b08161078e565b8281835e505f910152565b5f6107f4825190565b6108028185602086016107e0565b9290920192915050565b5f61050382846107eb565b5f610820825190565b8084526020840193506108378185602086016107e0565b601f01601f19169290920192915050565b602080825281016103ad818461081756fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212205c293cb82dd5d5b7228e518d5479dbf5bd70b6685ce9647aa6d360a311c6735064736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4D JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3659CFE6 EQ PUSH2 0x64 JUMPI DUP1 PUSH4 0x4F1EF286 EQ PUSH2 0x83 JUMPI DUP1 PUSH4 0x5C60DA1B EQ PUSH2 0x96 JUMPI DUP1 PUSH4 0x8F283970 EQ PUSH2 0xC0 JUMPI DUP1 PUSH4 0xF851A440 EQ PUSH2 0xDF JUMPI PUSH2 0x5C JUMP JUMPDEST CALLDATASIZE PUSH2 0x5C JUMPI PUSH2 0x5A PUSH2 0xF3 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x5A PUSH2 0xF3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x5A PUSH2 0x7E CALLDATASIZE PUSH1 0x4 PUSH2 0x571 JUMP JUMPDEST PUSH2 0x10D JUMP JUMPDEST PUSH2 0x5A PUSH2 0x91 CALLDATASIZE PUSH1 0x4 PUSH2 0x5E5 JUMP JUMPDEST PUSH2 0x148 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA1 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0xAA PUSH2 0x1AE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB7 SWAP2 SWAP1 PUSH2 0x64B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xCB JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x5A PUSH2 0xDA CALLDATASIZE PUSH1 0x4 PUSH2 0x571 JUMP JUMPDEST PUSH2 0x1DE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xEA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0xAA PUSH2 0x1FE JUMP JUMPDEST PUSH2 0xFB PUSH2 0x21E JUMP JUMPDEST PUSH2 0x10B PUSH2 0x106 PUSH2 0x256 JUMP JUMPDEST PUSH2 0x25F JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x115 PUSH2 0x27D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER SUB PUSH2 0x140 JUMPI PUSH2 0x13D DUP2 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP2 MSTORE POP PUSH0 PUSH2 0x2AF JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x13D PUSH2 0xF3 JUMP JUMPDEST PUSH2 0x150 PUSH2 0x27D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER SUB PUSH2 0x1A6 JUMPI PUSH2 0x1A1 DUP4 DUP4 DUP4 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH1 0x1 SWAP3 POP PUSH2 0x2AF SWAP2 POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x1A1 PUSH2 0xF3 JUMP JUMPDEST PUSH0 PUSH2 0x1B7 PUSH2 0x27D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER SUB PUSH2 0x1D3 JUMPI PUSH2 0x1CE PUSH2 0x256 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x1DB PUSH2 0xF3 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0x1E6 PUSH2 0x27D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER SUB PUSH2 0x140 JUMPI PUSH2 0x13D DUP2 PUSH2 0x2D9 JUMP JUMPDEST PUSH0 PUSH2 0x207 PUSH2 0x27D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER SUB PUSH2 0x1D3 JUMPI PUSH2 0x1CE PUSH2 0x27D JUMP JUMPDEST PUSH2 0x226 PUSH2 0x27D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER SUB PUSH2 0x10B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x24D SWAP1 PUSH2 0x659 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH2 0x1CE PUSH2 0x322 JUMP JUMPDEST CALLDATASIZE PUSH0 DUP1 CALLDATACOPY PUSH0 DUP1 CALLDATASIZE PUSH0 DUP5 GAS DELEGATECALL RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY DUP1 DUP1 ISZERO PUSH2 0x279 JUMPI RETURNDATASIZE PUSH0 RETURN JUMPDEST RETURNDATASIZE PUSH0 REVERT JUMPDEST PUSH0 PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 JUMPDEST SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2B8 DUP4 PUSH2 0x349 JUMP JUMPDEST PUSH0 DUP3 MLOAD GT DUP1 PUSH2 0x2C4 JUMPI POP DUP1 JUMPDEST ISZERO PUSH2 0x1A1 JUMPI PUSH2 0x2D3 DUP4 DUP4 PUSH2 0x388 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH32 0x7E644D79422F17C01E4894B5F4F588D331EBFA28653D42AE832DC59E38C9798F PUSH2 0x302 PUSH2 0x27D JUMP JUMPDEST DUP3 PUSH1 0x40 MLOAD PUSH2 0x311 SWAP3 SWAP2 SWAP1 PUSH2 0x6C5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH2 0x13D DUP2 PUSH2 0x3B6 JUMP JUMPDEST PUSH0 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC PUSH2 0x2A0 JUMP JUMPDEST PUSH2 0x352 DUP2 PUSH2 0x420 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x3AD DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x85A PUSH1 0x27 SWAP2 CODECOPY PUSH2 0x46E JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x3DC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x24D SWAP1 PUSH2 0x725 JUMP JUMPDEST DUP1 PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE PUSH2 0x447 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x24D SWAP1 PUSH2 0x77E JUMP JUMPDEST DUP1 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC PUSH2 0x3FF JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE PUSH2 0x497 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x24D SWAP1 PUSH2 0x7D0 JUMP JUMPDEST PUSH0 DUP1 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x40 MLOAD PUSH2 0x4B1 SWAP2 SWAP1 PUSH2 0x80C JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x4E9 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x4EE JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x4FE DUP3 DUP3 DUP7 PUSH2 0x50A JUMP JUMPDEST SWAP3 POP POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x519 JUMPI POP DUP2 PUSH2 0x503 JUMP JUMPDEST DUP3 MLOAD ISZERO PUSH2 0x529 JUMPI DUP3 MLOAD DUP1 DUP5 PUSH1 0x20 ADD REVERT JUMPDEST DUP2 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x24D SWAP2 SWAP1 PUSH2 0x848 JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x3B0 JUMP JUMPDEST PUSH2 0x55C DUP2 PUSH2 0x543 JUMP JUMPDEST DUP2 EQ PUSH2 0x13D JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x3B0 DUP2 PUSH2 0x553 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x584 JUMPI PUSH2 0x584 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x58F DUP5 DUP5 PUSH2 0x566 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x5AA JUMPI PUSH2 0x5AA PUSH0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x5C4 JUMPI PUSH2 0x5C4 PUSH0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x5DE JUMPI PUSH2 0x5DE PUSH0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x5FA JUMPI PUSH2 0x5FA PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x605 DUP7 DUP7 PUSH2 0x566 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x624 JUMPI PUSH2 0x624 PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x630 DUP7 DUP3 DUP8 ADD PUSH2 0x597 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH2 0x645 DUP2 PUSH2 0x543 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x3B0 DUP3 DUP5 PUSH2 0x63C JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x3B0 DUP2 PUSH1 0x42 DUP2 MSTORE PUSH32 0x5472616E73706172656E745570677261646561626C6550726F78793A2061646D PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x696E2063616E6E6F742066616C6C6261636B20746F2070726F78792074617267 PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x195D PUSH1 0xF2 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x6D3 DUP3 DUP6 PUSH2 0x63C JUMP JUMPDEST PUSH2 0x503 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x63C JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x455243313936373A206E65772061646D696E20697320746865207A65726F2061 DUP2 MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x3B0 DUP2 PUSH2 0x6E0 JUMP JUMPDEST PUSH1 0x2D DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x455243313936373A206E657720696D706C656D656E746174696F6E206973206E DUP2 MSTORE PUSH13 0x1BDD08184818DBDB9D1C9858DD PUSH1 0x9A SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x71E JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x3B0 DUP2 PUSH2 0x735 JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x416464726573733A2064656C65676174652063616C6C20746F206E6F6E2D636F DUP2 MSTORE PUSH6 0x1B9D1C9858DD PUSH1 0xD2 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x71E JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x3B0 DUP2 PUSH2 0x78E JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0x7F4 DUP3 MLOAD SWAP1 JUMP JUMPDEST PUSH2 0x802 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x7E0 JUMP JUMPDEST SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x503 DUP3 DUP5 PUSH2 0x7EB JUMP JUMPDEST PUSH0 PUSH2 0x820 DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x837 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x7E0 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x3AD DUP2 DUP5 PUSH2 0x817 JUMP INVALID COINBASE PUSH5 0x6472657373 GASPRICE KECCAK256 PUSH13 0x6F772D6C6576656C2064656C65 PUSH8 0x6174652063616C6C KECCAK256 PUSH7 0x61696C6564A264 PUSH10 0x706673582212205C293C 0xB8 0x2D 0xD5 0xD5 0xB7 0x22 DUP15 MLOAD DUP14 SLOAD PUSH26 0xDBF5BD70B6685CE9647AA6D360A311C6735064736F6C63430008 NOT STOP CALLER ","sourceMap":"1634:3556:9:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2903:11:6;:9;:11::i;:::-;1634:3556:9;;2680:11:6;:9;:11::i;4032:134:9:-;;;;;;;;;;-1:-1:-1;4032:134:9;;;;;:::i;:::-;;:::i;4542:164::-;;;;;;:::i;:::-;;:::i;3435:129::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3769:103;;;;;;;;;;-1:-1:-1;3769:103:9;;;;;:::i;:::-;;:::i;2879:96::-;;;;;;;;;;;;;:::i;2327:110:6:-;2375:17;:15;:17::i;:::-;2402:28;2412:17;:15;:17::i;:::-;2402:9;:28::i;:::-;2327:110::o;4032:134:9:-;2350:11;:9;:11::i;:::-;-1:-1:-1;;;;;2336:25:9;:10;:25;2332:99;;4105:54:::1;4123:17;4142:9;;;;;;;;;;;::::0;4153:5:::1;4105:17;:54::i;:::-;4032:134:::0;:::o;2332:99::-;2409:11;:9;:11::i;4542:164::-;2350:11;:9;:11::i;:::-;-1:-1:-1;;;;;2336:25:9;:10;:25;2332:99;;4651:48:::1;4669:17;4688:4;;4651:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;4694:4:9::1;::::0;-1:-1:-1;4651:17:9::1;::::0;-1:-1:-1;;4651:48:9:i:1;:::-;4542:164:::0;;;:::o;2332:99::-;2409:11;:9;:11::i;3435:129::-;3487:23;2350:11;:9;:11::i;:::-;-1:-1:-1;;;;;2336:25:9;:10;:25;2332:99;;3540:17:::1;:15;:17::i;:::-;3522:35;;3435:129:::0;:::o;2332:99::-;2409:11;:9;:11::i;:::-;3435:129;:::o;3769:103::-;2350:11;:9;:11::i;:::-;-1:-1:-1;;;;;2336:25:9;:10;:25;2332:99;;3843:22:::1;3856:8;3843:12;:22::i;2879:96::-:0;2922:14;2350:11;:9;:11::i;:::-;-1:-1:-1;;;;;2336:25:9;:10;:25;2332:99;;2957:11:::1;:9;:11::i;4981:207::-:0;5066:11;:9;:11::i;:::-;-1:-1:-1;;;;;5052:25:9;:10;:25;5044:104;;;;-1:-1:-1;;;5044:104:9;;;;;;;:::i;:::-;;;;;;;;1240:140:4;1307:12;1338:35;:33;:35::i;953:895:6:-;1291:14;1288:1;1285;1272:34;1505:1;1502;1486:14;1483:1;1467:14;1460:5;1447:60;1581:16;1578:1;1575;1560:38;1619:6;1686:66;;;;1801:16;1798:1;1791:27;1686:66;1721:16;1718:1;1711:27;4113:130:5;4165:7;3847:66;4191:39;:45;-1:-1:-1;;;;;4191:45:5;;4113:130;-1:-1:-1;4113:130:5:o;2188:295::-;2326:29;2337:17;2326:10;:29::i;:::-;2383:1;2369:4;:11;:15;:28;;;;2388:9;2369:28;2365:112;;;2413:53;2442:17;2461:4;2413:28;:53::i;:::-;;2188:295;;;:::o;4637:135::-;4701:35;4714:11;:9;:11::i;:::-;4727:8;4701:35;;;;;;;:::i;:::-;;;;;;;;4746:19;4756:8;4746:9;:19::i;1306:140::-;1359:7;1035:66;1385:48;1599:147:12;1902:152:5;1968:37;1987:17;1968:18;:37::i;:::-;2020:27;;-1:-1:-1;;;;;2020:27:5;;;;;;;;1902:152;:::o;6575:198:10:-;6658:12;6689:77;6710:6;6718:4;6689:77;;;;;;;;;;;;;;;;;:20;:77::i;:::-;6682:84;;6575:198;;;;;:::o;4325:201:5:-;-1:-1:-1;;;;;4388:22:5;;4380:73;;;;-1:-1:-1;;;4380:73:5;;;;;;;:::i;:::-;4511:8;3847:66;4463:39;:56;;-1:-1:-1;;;;;;4463:56:5;-1:-1:-1;;;;;4463:56:5;;;;;;;;;;-1:-1:-1;4325:201:5:o;1537:259::-;-1:-1:-1;;;;;1470:19:10;;;1610:95:5;;;;-1:-1:-1;;;1610:95:5;;;;;;;:::i;:::-;1772:17;1035:66;1715:48;1599:147:12;6959:387:10;7100:12;-1:-1:-1;;;;;1470:19:10;;;7124:69;;;;-1:-1:-1;;;7124:69:10;;;;;;;:::i;:::-;7205:12;7219:23;7246:6;-1:-1:-1;;;;;7246:19:10;7266:4;7246:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7204:67;;;;7288:51;7305:7;7314:10;7326:12;7288:16;:51::i;:::-;7281:58;;;;6959:387;;;;;;:::o;7566:692::-;7712:12;7740:7;7736:516;;;-1:-1:-1;7770:10:10;7763:17;;7736:516;7881:17;;:21;7877:365;;8075:10;8069:17;8135:15;8122:10;8118:2;8114:19;8107:44;7877:365;8214:12;8207:20;;-1:-1:-1;;;8207:20:10;;;;;;;;:::i;466:96:14:-;503:7;-1:-1:-1;;;;;400:54:14;;532:24;334:126;568:122;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;696:139;767:20;;796:33;767:20;796:33;:::i;841:329::-;900:6;949:2;937:9;928:7;924:23;920:32;917:119;;;955:79;197:1;194;187:12;955:79;1075:1;1100:53;1145:7;1125:9;1100:53;:::i;:::-;1090:63;841:329;-1:-1:-1;;;;841:329:14:o;1558:552::-;1615:8;1625:6;1675:3;1668:4;1660:6;1656:17;1652:27;1642:122;;1683:79;197:1;194;187:12;1683:79;-1:-1:-1;1783:20:14;;1826:18;1815:30;;1812:117;;;1848:79;197:1;194;187:12;1848:79;1962:4;1954:6;1950:17;1938:29;;2016:3;2008:4;2000:6;1996:17;1986:8;1982:32;1979:41;1976:128;;;2023:79;197:1;194;187:12;2023:79;1558:552;;;;;:::o;2116:672::-;2195:6;2203;2211;2260:2;2248:9;2239:7;2235:23;2231:32;2228:119;;;2266:79;197:1;194;187:12;2266:79;2386:1;2411:53;2456:7;2436:9;2411:53;:::i;:::-;2401:63;;2357:117;2541:2;2530:9;2526:18;2513:32;2572:18;2564:6;2561:30;2558:117;;;2594:79;197:1;194;187:12;2594:79;2707:64;2763:7;2754:6;2743:9;2739:22;2707:64;:::i;:::-;2689:82;;;;2484:297;2116:672;;;;;:::o;2794:118::-;2881:24;2899:5;2881:24;:::i;:::-;2876:3;2869:37;2794:118;;:::o;2918:222::-;3049:2;3034:18;;3062:71;3038:9;3106:6;3062:71;:::i;3989:419::-;4193:2;4206:47;;;4178:18;;4270:131;4178:18;3844:2;3252:19;;3461:34;3304:4;3295:14;;3438:58;3530:34;3513:15;;;3506:59;-1:-1:-1;;;3582:15:14;;;3575:29;3965:12;;;3617:366;4414:332;4573:2;4558:18;;4586:71;4562:9;4630:6;4586:71;:::i;:::-;4667:72;4735:2;4724:9;4720:18;4711:6;4667:72;:::i;4983:366::-;5210:2;3252:19;;5125:3;3304:4;3295:14;;4892:34;4869:58;;-1:-1:-1;;;4956:2:14;4944:15;;4937:33;5139:74;-1:-1:-1;5222:93:14;-1:-1:-1;5340:2:14;5331:12;;4983:366::o;5355:419::-;5559:2;5572:47;;;5544:18;;5636:131;5544:18;5636:131;:::i;6018:366::-;6245:2;3252:19;;6160:3;3304:4;3295:14;;5920:34;5897:58;;-1:-1:-1;;;5984:2:14;5972:15;;5965:40;6174:74;-1:-1:-1;6257:93:14;5780:232;6390:419;6594:2;6607:47;;;6579:18;;6671:131;6579:18;6671:131;:::i;7046:366::-;7273:2;3252:19;;7188:3;3304:4;3295:14;;6955:34;6932:58;;-1:-1:-1;;;7019:2:14;7007:15;;7000:33;7202:74;-1:-1:-1;7285:93:14;6815:225;7418:419;7622:2;7635:47;;;7607:18;;7699:131;7607:18;7699:131;:::i;8100:139::-;8189:6;8184:3;8179;8173:23;-1:-1:-1;8230:1:14;8212:16;;8205:27;8100:139::o;8245:386::-;8349:3;8377:38;8409:5;7922:12;;7843:98;8377:38;8528:65;8586:6;8581:3;8574:4;8567:5;8563:16;8528:65;:::i;:::-;8609:16;;;;;8245:386;-1:-1:-1;;8245:386:14:o;8637:271::-;8767:3;8789:93;8878:3;8869:6;8789:93;:::i;9127:377::-;9215:3;9243:39;9276:5;7922:12;;7843:98;9243:39;3252:19;;;3304:4;3295:14;;9291:78;;9378:65;9436:6;9431:3;9424:4;9417:5;9413:16;9378:65;:::i;:::-;9111:2;9091:14;-1:-1:-1;;9087:28:14;9459:39;;;;;;-1:-1:-1;;9127:377:14:o;9510:313::-;9661:2;9674:47;;;9646:18;;9738:78;9646:18;9802:6;9738:78;:::i"},"gasEstimates":{"creation":{"codeDepositCost":"446000","executionCost":"infinite","totalCost":"infinite"},"external":{"":"infinite","admin()":"infinite","changeAdmin(address)":"infinite","implementation()":"infinite","upgradeTo(address)":"infinite","upgradeToAndCall(address,bytes)":"infinite"},"internal":{"_admin()":"infinite","_beforeFallback()":"infinite"}},"methodIdentifiers":{"admin()":"f851a440","changeAdmin(address)":"8f283970","implementation()":"5c60da1b","upgradeTo(address)":"3659cfe6","upgradeToAndCall(address,bytes)":"4f1ef286"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_logic\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"admin_\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"admin_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"changeAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"implementation_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgradeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"details\":\"This contract implements a proxy that is upgradeable by an admin. To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector clashing], which can potentially be used in an attack, this contract uses the https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two things that go hand in hand: 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if that call matches one of the admin functions exposed by the proxy itself. 2. If the admin calls the proxy, it can access the admin functions, but its calls will never be forwarded to the implementation. If the admin tries to call a function on the implementation it will fail with an error that says \\\"admin cannot fallback to proxy target\\\". These properties mean that the admin account can only be used for admin actions like upgrading the proxy or changing the admin, so it's best if it's a dedicated account that is not used for anything else. This will avoid headaches due to sudden errors when trying to call a function from the proxy implementation. Our recommendation is for the dedicated account to be an instance of the {ProxyAdmin} contract. If set up this way, you should think of the `ProxyAdmin` instance as the real administrative interface of your proxy.\",\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is upgraded.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"admin()\":{\"details\":\"Returns the current admin. NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyAdmin}. TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call. `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103`\"},\"changeAdmin(address)\":{\"details\":\"Changes the admin of the proxy. Emits an {AdminChanged} event. NOTE: Only the admin can call this function. See {ProxyAdmin-changeProxyAdmin}.\"},\"constructor\":{\"details\":\"Initializes an upgradeable proxy managed by `_admin`, backed by the implementation at `_logic`, and optionally initialized with `_data` as explained in {ERC1967Proxy-constructor}.\"},\"implementation()\":{\"details\":\"Returns the current implementation. NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyImplementation}. TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call. `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc`\"},\"upgradeTo(address)\":{\"details\":\"Upgrade the implementation of the proxy. NOTE: Only the admin can call this function. See {ProxyAdmin-upgrade}.\"},\"upgradeToAndCall(address,bytes)\":{\"details\":\"Upgrade the implementation of the proxy, and then call a function from the new implementation as specified by `data`, which should be an encoded function call. This is useful to initialize new storage variables in the proxied contract. NOTE: Only the admin can call this function. See {ProxyAdmin-upgradeAndCall}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/TransparentUpgradeableProxy.sol\":\"TransparentUpgradeableProxy\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"hardhat-deploy/solc_0.8/openzeppelin/interfaces/draft-IERC1822.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (interfaces/draft-IERC1822.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev ERC1822: Universal Upgradeable Proxy Standard (UUPS) documents a method for upgradeability through a simplified\\n * proxy whose upgrades are fully controlled by the current implementation.\\n */\\ninterface IERC1822Proxiable {\\n /**\\n * @dev Returns the storage slot that the proxiable contract assumes is being used to store the implementation\\n * address.\\n *\\n * IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks\\n * bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this\\n * function revert if invoked through a proxy.\\n */\\n function proxiableUUID() external view returns (bytes32);\\n}\\n\",\"keccak256\":\"0x93b4e21c931252739a1ec13ea31d3d35a5c068be3163ccab83e4d70c40355f03\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Proxy.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (proxy/ERC1967/ERC1967Proxy.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../Proxy.sol\\\";\\nimport \\\"./ERC1967Upgrade.sol\\\";\\n\\n/**\\n * @dev This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an\\n * implementation address that can be changed. This address is stored in storage in the location specified by\\n * https://eips.ethereum.org/EIPS/eip-1967[EIP1967], so that it doesn't conflict with the storage layout of the\\n * implementation behind the proxy.\\n */\\ncontract ERC1967Proxy is Proxy, ERC1967Upgrade {\\n /**\\n * @dev Initializes the upgradeable proxy with an initial implementation specified by `_logic`.\\n *\\n * If `_data` is nonempty, it's used as data in a delegate call to `_logic`. This will typically be an encoded\\n * function call, and allows initializating the storage of the proxy like a Solidity constructor.\\n */\\n constructor(address _logic, bytes memory _data) payable {\\n assert(_IMPLEMENTATION_SLOT == bytes32(uint256(keccak256(\\\"eip1967.proxy.implementation\\\")) - 1));\\n _upgradeToAndCall(_logic, _data, false);\\n }\\n\\n /**\\n * @dev Returns the current implementation address.\\n */\\n function _implementation() internal view virtual override returns (address impl) {\\n return ERC1967Upgrade._getImplementation();\\n }\\n}\\n\",\"keccak256\":\"0x6309f9f39dc6f4f45a24f296543867aa358e32946cd6b2874627a996d606b3a0\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Upgrade.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (proxy/ERC1967/ERC1967Upgrade.sol)\\n\\npragma solidity ^0.8.2;\\n\\nimport \\\"../beacon/IBeacon.sol\\\";\\nimport \\\"../../interfaces/draft-IERC1822.sol\\\";\\nimport \\\"../../utils/Address.sol\\\";\\nimport \\\"../../utils/StorageSlot.sol\\\";\\n\\n/**\\n * @dev This abstract contract provides getters and event emitting update functions for\\n * https://eips.ethereum.org/EIPS/eip-1967[EIP1967] slots.\\n *\\n * _Available since v4.1._\\n *\\n * @custom:oz-upgrades-unsafe-allow delegatecall\\n */\\nabstract contract ERC1967Upgrade {\\n // This is the keccak-256 hash of \\\"eip1967.proxy.rollback\\\" subtracted by 1\\n bytes32 private constant _ROLLBACK_SLOT = 0x4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143;\\n\\n /**\\n * @dev Storage slot with the address of the current implementation.\\n * This is the keccak-256 hash of \\\"eip1967.proxy.implementation\\\" subtracted by 1, and is\\n * validated in the constructor.\\n */\\n bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\\n\\n /**\\n * @dev Emitted when the implementation is upgraded.\\n */\\n event Upgraded(address indexed implementation);\\n\\n /**\\n * @dev Returns the current implementation address.\\n */\\n function _getImplementation() internal view returns (address) {\\n return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\\n }\\n\\n /**\\n * @dev Stores a new address in the EIP1967 implementation slot.\\n */\\n function _setImplementation(address newImplementation) private {\\n require(Address.isContract(newImplementation), \\\"ERC1967: new implementation is not a contract\\\");\\n StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\\n }\\n\\n /**\\n * @dev Perform implementation upgrade\\n *\\n * Emits an {Upgraded} event.\\n */\\n function _upgradeTo(address newImplementation) internal {\\n _setImplementation(newImplementation);\\n emit Upgraded(newImplementation);\\n }\\n\\n /**\\n * @dev Perform implementation upgrade with additional setup call.\\n *\\n * Emits an {Upgraded} event.\\n */\\n function _upgradeToAndCall(\\n address newImplementation,\\n bytes memory data,\\n bool forceCall\\n ) internal {\\n _upgradeTo(newImplementation);\\n if (data.length > 0 || forceCall) {\\n Address.functionDelegateCall(newImplementation, data);\\n }\\n }\\n\\n /**\\n * @dev Perform implementation upgrade with security checks for UUPS proxies, and additional setup call.\\n *\\n * Emits an {Upgraded} event.\\n */\\n function _upgradeToAndCallUUPS(\\n address newImplementation,\\n bytes memory data,\\n bool forceCall\\n ) internal {\\n // Upgrades from old implementations will perform a rollback test. This test requires the new\\n // implementation to upgrade back to the old, non-ERC1822 compliant, implementation. Removing\\n // this special case will break upgrade paths from old UUPS implementation to new ones.\\n if (StorageSlot.getBooleanSlot(_ROLLBACK_SLOT).value) {\\n _setImplementation(newImplementation);\\n } else {\\n try IERC1822Proxiable(newImplementation).proxiableUUID() returns (bytes32 slot) {\\n require(slot == _IMPLEMENTATION_SLOT, \\\"ERC1967Upgrade: unsupported proxiableUUID\\\");\\n } catch {\\n revert(\\\"ERC1967Upgrade: new implementation is not UUPS\\\");\\n }\\n _upgradeToAndCall(newImplementation, data, forceCall);\\n }\\n }\\n\\n /**\\n * @dev Storage slot with the admin of the contract.\\n * This is the keccak-256 hash of \\\"eip1967.proxy.admin\\\" subtracted by 1, and is\\n * validated in the constructor.\\n */\\n bytes32 internal constant _ADMIN_SLOT = 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103;\\n\\n /**\\n * @dev Emitted when the admin account has changed.\\n */\\n event AdminChanged(address previousAdmin, address newAdmin);\\n\\n /**\\n * @dev Returns the current admin.\\n */\\n function _getAdmin() internal view virtual returns (address) {\\n return StorageSlot.getAddressSlot(_ADMIN_SLOT).value;\\n }\\n\\n /**\\n * @dev Stores a new address in the EIP1967 admin slot.\\n */\\n function _setAdmin(address newAdmin) private {\\n require(newAdmin != address(0), \\\"ERC1967: new admin is the zero address\\\");\\n StorageSlot.getAddressSlot(_ADMIN_SLOT).value = newAdmin;\\n }\\n\\n /**\\n * @dev Changes the admin of the proxy.\\n *\\n * Emits an {AdminChanged} event.\\n */\\n function _changeAdmin(address newAdmin) internal {\\n emit AdminChanged(_getAdmin(), newAdmin);\\n _setAdmin(newAdmin);\\n }\\n\\n /**\\n * @dev The storage slot of the UpgradeableBeacon contract which defines the implementation for this proxy.\\n * This is bytes32(uint256(keccak256('eip1967.proxy.beacon')) - 1)) and is validated in the constructor.\\n */\\n bytes32 internal constant _BEACON_SLOT = 0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50;\\n\\n /**\\n * @dev Emitted when the beacon is upgraded.\\n */\\n event BeaconUpgraded(address indexed beacon);\\n\\n /**\\n * @dev Returns the current beacon.\\n */\\n function _getBeacon() internal view returns (address) {\\n return StorageSlot.getAddressSlot(_BEACON_SLOT).value;\\n }\\n\\n /**\\n * @dev Stores a new beacon in the EIP1967 beacon slot.\\n */\\n function _setBeacon(address newBeacon) private {\\n require(Address.isContract(newBeacon), \\\"ERC1967: new beacon is not a contract\\\");\\n require(Address.isContract(IBeacon(newBeacon).implementation()), \\\"ERC1967: beacon implementation is not a contract\\\");\\n StorageSlot.getAddressSlot(_BEACON_SLOT).value = newBeacon;\\n }\\n\\n /**\\n * @dev Perform beacon upgrade with additional setup call. Note: This upgrades the address of the beacon, it does\\n * not upgrade the implementation contained in the beacon (see {UpgradeableBeacon-_setImplementation} for that).\\n *\\n * Emits a {BeaconUpgraded} event.\\n */\\n function _upgradeBeaconToAndCall(\\n address newBeacon,\\n bytes memory data,\\n bool forceCall\\n ) internal {\\n _setBeacon(newBeacon);\\n emit BeaconUpgraded(newBeacon);\\n if (data.length > 0 || forceCall) {\\n Address.functionDelegateCall(IBeacon(newBeacon).implementation(), data);\\n }\\n }\\n}\\n\",\"keccak256\":\"0x17668652127feebed0ce8d9431ef95ccc8c4292f03e3b8cf06c6ca16af396633\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/proxy/Proxy.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (proxy/Proxy.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev This abstract contract provides a fallback function that delegates all calls to another contract using the EVM\\n * instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to\\n * be specified by overriding the virtual {_implementation} function.\\n *\\n * Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a\\n * different contract through the {_delegate} function.\\n *\\n * The success and return data of the delegated call will be returned back to the caller of the proxy.\\n */\\nabstract contract Proxy {\\n /**\\n * @dev Delegates the current call to `implementation`.\\n *\\n * This function does not return to its internal call site, it will return directly to the external caller.\\n */\\n function _delegate(address implementation) internal virtual {\\n assembly {\\n // Copy msg.data. We take full control of memory in this inline assembly\\n // block because it will not return to Solidity code. We overwrite the\\n // Solidity scratch pad at memory position 0.\\n calldatacopy(0, 0, calldatasize())\\n\\n // Call the implementation.\\n // out and outsize are 0 because we don't know the size yet.\\n let result := delegatecall(gas(), implementation, 0, calldatasize(), 0, 0)\\n\\n // Copy the returned data.\\n returndatacopy(0, 0, returndatasize())\\n\\n switch result\\n // delegatecall returns 0 on error.\\n case 0 {\\n revert(0, returndatasize())\\n }\\n default {\\n return(0, returndatasize())\\n }\\n }\\n }\\n\\n /**\\n * @dev This is a virtual function that should be overriden so it returns the address to which the fallback function\\n * and {_fallback} should delegate.\\n */\\n function _implementation() internal view virtual returns (address);\\n\\n /**\\n * @dev Delegates the current call to the address returned by `_implementation()`.\\n *\\n * This function does not return to its internall call site, it will return directly to the external caller.\\n */\\n function _fallback() internal virtual {\\n _beforeFallback();\\n _delegate(_implementation());\\n }\\n\\n /**\\n * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if no other\\n * function in the contract matches the call data.\\n */\\n fallback() external payable virtual {\\n _fallback();\\n }\\n\\n /**\\n * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if call data\\n * is empty.\\n */\\n receive() external payable virtual {\\n _fallback();\\n }\\n\\n /**\\n * @dev Hook that is called before falling back to the implementation. Can happen as part of a manual `_fallback`\\n * call, or as part of the Solidity `fallback` or `receive` functions.\\n *\\n * If overriden should call `super._beforeFallback()`.\\n */\\n function _beforeFallback() internal virtual {}\\n}\\n\",\"keccak256\":\"0xd5d1fd16e9faff7fcb3a52e02a8d49156f42a38a03f07b5f1810c21c2149a8ab\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/proxy/beacon/IBeacon.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (proxy/beacon/IBeacon.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev This is the interface that {BeaconProxy} expects of its beacon.\\n */\\ninterface IBeacon {\\n /**\\n * @dev Must return an address that can be used as a delegate call target.\\n *\\n * {BeaconProxy} will check that this address is a contract.\\n */\\n function implementation() external view returns (address);\\n}\\n\",\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/TransparentUpgradeableProxy.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (proxy/transparent/TransparentUpgradeableProxy.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../ERC1967/ERC1967Proxy.sol\\\";\\n\\n/**\\n * @dev This contract implements a proxy that is upgradeable by an admin.\\n *\\n * To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector\\n * clashing], which can potentially be used in an attack, this contract uses the\\n * https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two\\n * things that go hand in hand:\\n *\\n * 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if\\n * that call matches one of the admin functions exposed by the proxy itself.\\n * 2. If the admin calls the proxy, it can access the admin functions, but its calls will never be forwarded to the\\n * implementation. If the admin tries to call a function on the implementation it will fail with an error that says\\n * \\\"admin cannot fallback to proxy target\\\".\\n *\\n * These properties mean that the admin account can only be used for admin actions like upgrading the proxy or changing\\n * the admin, so it's best if it's a dedicated account that is not used for anything else. This will avoid headaches due\\n * to sudden errors when trying to call a function from the proxy implementation.\\n *\\n * Our recommendation is for the dedicated account to be an instance of the {ProxyAdmin} contract. If set up this way,\\n * you should think of the `ProxyAdmin` instance as the real administrative interface of your proxy.\\n */\\ncontract TransparentUpgradeableProxy is ERC1967Proxy {\\n /**\\n * @dev Initializes an upgradeable proxy managed by `_admin`, backed by the implementation at `_logic`, and\\n * optionally initialized with `_data` as explained in {ERC1967Proxy-constructor}.\\n */\\n constructor(\\n address _logic,\\n address admin_,\\n bytes memory _data\\n ) payable ERC1967Proxy(_logic, _data) {\\n assert(_ADMIN_SLOT == bytes32(uint256(keccak256(\\\"eip1967.proxy.admin\\\")) - 1));\\n _changeAdmin(admin_);\\n }\\n\\n /**\\n * @dev Modifier used internally that will delegate the call to the implementation unless the sender is the admin.\\n */\\n modifier ifAdmin() {\\n if (msg.sender == _getAdmin()) {\\n _;\\n } else {\\n _fallback();\\n }\\n }\\n\\n /**\\n * @dev Returns the current admin.\\n *\\n * NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyAdmin}.\\n *\\n * TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the\\n * https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\\n * `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103`\\n */\\n function admin() external ifAdmin returns (address admin_) {\\n admin_ = _getAdmin();\\n }\\n\\n /**\\n * @dev Returns the current implementation.\\n *\\n * NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyImplementation}.\\n *\\n * TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the\\n * https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\\n * `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc`\\n */\\n function implementation() external ifAdmin returns (address implementation_) {\\n implementation_ = _implementation();\\n }\\n\\n /**\\n * @dev Changes the admin of the proxy.\\n *\\n * Emits an {AdminChanged} event.\\n *\\n * NOTE: Only the admin can call this function. See {ProxyAdmin-changeProxyAdmin}.\\n */\\n function changeAdmin(address newAdmin) external virtual ifAdmin {\\n _changeAdmin(newAdmin);\\n }\\n\\n /**\\n * @dev Upgrade the implementation of the proxy.\\n *\\n * NOTE: Only the admin can call this function. See {ProxyAdmin-upgrade}.\\n */\\n function upgradeTo(address newImplementation) external ifAdmin {\\n _upgradeToAndCall(newImplementation, bytes(\\\"\\\"), false);\\n }\\n\\n /**\\n * @dev Upgrade the implementation of the proxy, and then call a function from the new implementation as specified\\n * by `data`, which should be an encoded function call. This is useful to initialize new storage variables in the\\n * proxied contract.\\n *\\n * NOTE: Only the admin can call this function. See {ProxyAdmin-upgradeAndCall}.\\n */\\n function upgradeToAndCall(address newImplementation, bytes calldata data) external payable ifAdmin {\\n _upgradeToAndCall(newImplementation, data, true);\\n }\\n\\n /**\\n * @dev Returns the current admin.\\n */\\n function _admin() internal view virtual returns (address) {\\n return _getAdmin();\\n }\\n\\n /**\\n * @dev Makes sure the admin cannot access the fallback function. See {Proxy-_beforeFallback}.\\n */\\n function _beforeFallback() internal virtual override {\\n require(msg.sender != _getAdmin(), \\\"TransparentUpgradeableProxy: admin cannot fallback to proxy target\\\");\\n super._beforeFallback();\\n }\\n}\\n\",\"keccak256\":\"0x140055a64cf579d622e04f5a198595832bf2cb193cd0005f4f2d4d61ca906253\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/utils/Address.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (utils/Address.sol)\\n\\npragma solidity ^0.8.1;\\n\\n/**\\n * @dev Collection of functions related to the address type\\n */\\nlibrary Address {\\n /**\\n * @dev Returns true if `account` is a contract.\\n *\\n * [IMPORTANT]\\n * ====\\n * It is unsafe to assume that an address for which this function returns\\n * false is an externally-owned account (EOA) and not a contract.\\n *\\n * Among others, `isContract` will return false for the following\\n * types of addresses:\\n *\\n * - an externally-owned account\\n * - a contract in construction\\n * - an address where a contract will be created\\n * - an address where a contract lived, but was destroyed\\n * ====\\n *\\n * [IMPORTANT]\\n * ====\\n * You shouldn't rely on `isContract` to protect against flash loan attacks!\\n *\\n * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\\n * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\\n * constructor.\\n * ====\\n */\\n function isContract(address account) internal view returns (bool) {\\n // This method relies on extcodesize/address.code.length, which returns 0\\n // for contracts in construction, since the code is only stored at the end\\n // of the constructor execution.\\n\\n return account.code.length > 0;\\n }\\n\\n /**\\n * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\\n * `recipient`, forwarding all available gas and reverting on errors.\\n *\\n * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\\n * of certain opcodes, possibly making contracts go over the 2300 gas limit\\n * imposed by `transfer`, making them unable to receive funds via\\n * `transfer`. {sendValue} removes this limitation.\\n *\\n * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\\n *\\n * IMPORTANT: because control is transferred to `recipient`, care must be\\n * taken to not create reentrancy vulnerabilities. Consider using\\n * {ReentrancyGuard} or the\\n * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\\n */\\n function sendValue(address payable recipient, uint256 amount) internal {\\n require(address(this).balance >= amount, \\\"Address: insufficient balance\\\");\\n\\n (bool success, ) = recipient.call{value: amount}(\\\"\\\");\\n require(success, \\\"Address: unable to send value, recipient may have reverted\\\");\\n }\\n\\n /**\\n * @dev Performs a Solidity function call using a low level `call`. A\\n * plain `call` is an unsafe replacement for a function call: use this\\n * function instead.\\n *\\n * If `target` reverts with a revert reason, it is bubbled up by this\\n * function (like regular Solidity function calls).\\n *\\n * Returns the raw returned data. To convert to the expected return value,\\n * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\\n *\\n * Requirements:\\n *\\n * - `target` must be a contract.\\n * - calling `target` with `data` must not revert.\\n *\\n * _Available since v3.1._\\n */\\n function functionCall(address target, bytes memory data) internal returns (bytes memory) {\\n return functionCall(target, data, \\\"Address: low-level call failed\\\");\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\\n * `errorMessage` as a fallback revert reason when `target` reverts.\\n *\\n * _Available since v3.1._\\n */\\n function functionCall(\\n address target,\\n bytes memory data,\\n string memory errorMessage\\n ) internal returns (bytes memory) {\\n return functionCallWithValue(target, data, 0, errorMessage);\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n * but also transferring `value` wei to `target`.\\n *\\n * Requirements:\\n *\\n * - the calling contract must have an ETH balance of at least `value`.\\n * - the called Solidity function must be `payable`.\\n *\\n * _Available since v3.1._\\n */\\n function functionCallWithValue(\\n address target,\\n bytes memory data,\\n uint256 value\\n ) internal returns (bytes memory) {\\n return functionCallWithValue(target, data, value, \\\"Address: low-level call with value failed\\\");\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\\n * with `errorMessage` as a fallback revert reason when `target` reverts.\\n *\\n * _Available since v3.1._\\n */\\n function functionCallWithValue(\\n address target,\\n bytes memory data,\\n uint256 value,\\n string memory errorMessage\\n ) internal returns (bytes memory) {\\n require(address(this).balance >= value, \\\"Address: insufficient balance for call\\\");\\n require(isContract(target), \\\"Address: call to non-contract\\\");\\n\\n (bool success, bytes memory returndata) = target.call{value: value}(data);\\n return verifyCallResult(success, returndata, errorMessage);\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n * but performing a static call.\\n *\\n * _Available since v3.3._\\n */\\n function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\\n return functionStaticCall(target, data, \\\"Address: low-level static call failed\\\");\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n * but performing a static call.\\n *\\n * _Available since v3.3._\\n */\\n function functionStaticCall(\\n address target,\\n bytes memory data,\\n string memory errorMessage\\n ) internal view returns (bytes memory) {\\n require(isContract(target), \\\"Address: static call to non-contract\\\");\\n\\n (bool success, bytes memory returndata) = target.staticcall(data);\\n return verifyCallResult(success, returndata, errorMessage);\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n * but performing a delegate call.\\n *\\n * _Available since v3.4._\\n */\\n function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\\n return functionDelegateCall(target, data, \\\"Address: low-level delegate call failed\\\");\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n * but performing a delegate call.\\n *\\n * _Available since v3.4._\\n */\\n function functionDelegateCall(\\n address target,\\n bytes memory data,\\n string memory errorMessage\\n ) internal returns (bytes memory) {\\n require(isContract(target), \\\"Address: delegate call to non-contract\\\");\\n\\n (bool success, bytes memory returndata) = target.delegatecall(data);\\n return verifyCallResult(success, returndata, errorMessage);\\n }\\n\\n /**\\n * @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the\\n * revert reason using the provided one.\\n *\\n * _Available since v4.3._\\n */\\n function verifyCallResult(\\n bool success,\\n bytes memory returndata,\\n string memory errorMessage\\n ) internal pure returns (bytes memory) {\\n if (success) {\\n return returndata;\\n } else {\\n // Look for revert reason and bubble it up if present\\n if (returndata.length > 0) {\\n // The easiest way to bubble the revert reason is using memory via assembly\\n\\n assembly {\\n let returndata_size := mload(returndata)\\n revert(add(32, returndata), returndata_size)\\n }\\n } else {\\n revert(errorMessage);\\n }\\n }\\n }\\n}\\n\",\"keccak256\":\"0x3777e696b62134e6177440dbe6e6601c0c156a443f57167194b67e75527439de\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/utils/StorageSlot.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/StorageSlot.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Library for reading and writing primitive types to specific storage slots.\\n *\\n * Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts.\\n * This library helps with reading and writing to such slots without the need for inline assembly.\\n *\\n * The functions in this library return Slot structs that contain a `value` member that can be used to read or write.\\n *\\n * Example usage to set ERC1967 implementation slot:\\n * ```\\n * contract ERC1967 {\\n * bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\\n *\\n * function _getImplementation() internal view returns (address) {\\n * return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\\n * }\\n *\\n * function _setImplementation(address newImplementation) internal {\\n * require(Address.isContract(newImplementation), \\\"ERC1967: new implementation is not a contract\\\");\\n * StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\\n * }\\n * }\\n * ```\\n *\\n * _Available since v4.1 for `address`, `bool`, `bytes32`, and `uint256`._\\n */\\nlibrary StorageSlot {\\n struct AddressSlot {\\n address value;\\n }\\n\\n struct BooleanSlot {\\n bool value;\\n }\\n\\n struct Bytes32Slot {\\n bytes32 value;\\n }\\n\\n struct Uint256Slot {\\n uint256 value;\\n }\\n\\n /**\\n * @dev Returns an `AddressSlot` with member `value` located at `slot`.\\n */\\n function getAddressSlot(bytes32 slot) internal pure returns (AddressSlot storage r) {\\n assembly {\\n r.slot := slot\\n }\\n }\\n\\n /**\\n * @dev Returns an `BooleanSlot` with member `value` located at `slot`.\\n */\\n function getBooleanSlot(bytes32 slot) internal pure returns (BooleanSlot storage r) {\\n assembly {\\n r.slot := slot\\n }\\n }\\n\\n /**\\n * @dev Returns an `Bytes32Slot` with member `value` located at `slot`.\\n */\\n function getBytes32Slot(bytes32 slot) internal pure returns (Bytes32Slot storage r) {\\n assembly {\\n r.slot := slot\\n }\\n }\\n\\n /**\\n * @dev Returns an `Uint256Slot` with member `value` located at `slot`.\\n */\\n function getUint256Slot(bytes32 slot) internal pure returns (Uint256Slot storage r) {\\n assembly {\\n r.slot := slot\\n }\\n }\\n}\\n\",\"keccak256\":\"0xfe1b7a9aa2a530a9e705b220e26cd584e2fbdc9602a3a1066032b12816b46aca\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"hardhat-deploy/solc_0.8/openzeppelin/utils/Address.sol":{"Address":{"abi":[],"devdoc":{"details":"Collection of functions related to the address type","kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea26469706673582212205c768d1ab1fcb877a584e313c755c7cecca6f4bc56649d3ee4218c3dccc27e0064736f6c63430008190033","opcodes":"PUSH1 0x55 PUSH1 0x32 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH0 BYTE PUSH1 0x73 EQ PUSH1 0x26 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST ADDRESS PUSH0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 TLOAD PUSH23 0x8D1AB1FCB877A584E313C755C7CECCA6F4BC56649D3EE4 0x21 DUP13 RETURNDATASIZE 0xCC 0xC2 PUSH31 0x64736F6C6343000819003300000000000000000000000000000000000000 ","sourceMap":"199:8061:10:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;199:8061:10;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"730000000000000000000000000000000000000000301460806040525f80fdfea26469706673582212205c768d1ab1fcb877a584e313c755c7cecca6f4bc56649d3ee4218c3dccc27e0064736f6c63430008190033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 TLOAD PUSH23 0x8D1AB1FCB877A584E313C755C7CECCA6F4BC56649D3EE4 0x21 DUP13 RETURNDATASIZE 0xCC 0xC2 PUSH31 0x64736F6C6343000819003300000000000000000000000000000000000000 ","sourceMap":"199:8061:10:-:0;;;;;;;;"},"gasEstimates":{"creation":{"codeDepositCost":"17000","executionCost":"96","totalCost":"17096"},"internal":{"functionCall(address,bytes memory)":"infinite","functionCall(address,bytes memory,string memory)":"infinite","functionCallWithValue(address,bytes memory,uint256)":"infinite","functionCallWithValue(address,bytes memory,uint256,string memory)":"infinite","functionDelegateCall(address,bytes memory)":"infinite","functionDelegateCall(address,bytes memory,string memory)":"infinite","functionStaticCall(address,bytes memory)":"infinite","functionStaticCall(address,bytes memory,string memory)":"infinite","isContract(address)":"infinite","sendValue(address payable,uint256)":"infinite","verifyCallResult(bool,bytes memory,string memory)":"infinite"}},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Collection of functions related to the address type\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"hardhat-deploy/solc_0.8/openzeppelin/utils/Address.sol\":\"Address\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"hardhat-deploy/solc_0.8/openzeppelin/utils/Address.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (utils/Address.sol)\\n\\npragma solidity ^0.8.1;\\n\\n/**\\n * @dev Collection of functions related to the address type\\n */\\nlibrary Address {\\n /**\\n * @dev Returns true if `account` is a contract.\\n *\\n * [IMPORTANT]\\n * ====\\n * It is unsafe to assume that an address for which this function returns\\n * false is an externally-owned account (EOA) and not a contract.\\n *\\n * Among others, `isContract` will return false for the following\\n * types of addresses:\\n *\\n * - an externally-owned account\\n * - a contract in construction\\n * - an address where a contract will be created\\n * - an address where a contract lived, but was destroyed\\n * ====\\n *\\n * [IMPORTANT]\\n * ====\\n * You shouldn't rely on `isContract` to protect against flash loan attacks!\\n *\\n * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\\n * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\\n * constructor.\\n * ====\\n */\\n function isContract(address account) internal view returns (bool) {\\n // This method relies on extcodesize/address.code.length, which returns 0\\n // for contracts in construction, since the code is only stored at the end\\n // of the constructor execution.\\n\\n return account.code.length > 0;\\n }\\n\\n /**\\n * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\\n * `recipient`, forwarding all available gas and reverting on errors.\\n *\\n * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\\n * of certain opcodes, possibly making contracts go over the 2300 gas limit\\n * imposed by `transfer`, making them unable to receive funds via\\n * `transfer`. {sendValue} removes this limitation.\\n *\\n * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\\n *\\n * IMPORTANT: because control is transferred to `recipient`, care must be\\n * taken to not create reentrancy vulnerabilities. Consider using\\n * {ReentrancyGuard} or the\\n * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\\n */\\n function sendValue(address payable recipient, uint256 amount) internal {\\n require(address(this).balance >= amount, \\\"Address: insufficient balance\\\");\\n\\n (bool success, ) = recipient.call{value: amount}(\\\"\\\");\\n require(success, \\\"Address: unable to send value, recipient may have reverted\\\");\\n }\\n\\n /**\\n * @dev Performs a Solidity function call using a low level `call`. A\\n * plain `call` is an unsafe replacement for a function call: use this\\n * function instead.\\n *\\n * If `target` reverts with a revert reason, it is bubbled up by this\\n * function (like regular Solidity function calls).\\n *\\n * Returns the raw returned data. To convert to the expected return value,\\n * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\\n *\\n * Requirements:\\n *\\n * - `target` must be a contract.\\n * - calling `target` with `data` must not revert.\\n *\\n * _Available since v3.1._\\n */\\n function functionCall(address target, bytes memory data) internal returns (bytes memory) {\\n return functionCall(target, data, \\\"Address: low-level call failed\\\");\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\\n * `errorMessage` as a fallback revert reason when `target` reverts.\\n *\\n * _Available since v3.1._\\n */\\n function functionCall(\\n address target,\\n bytes memory data,\\n string memory errorMessage\\n ) internal returns (bytes memory) {\\n return functionCallWithValue(target, data, 0, errorMessage);\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n * but also transferring `value` wei to `target`.\\n *\\n * Requirements:\\n *\\n * - the calling contract must have an ETH balance of at least `value`.\\n * - the called Solidity function must be `payable`.\\n *\\n * _Available since v3.1._\\n */\\n function functionCallWithValue(\\n address target,\\n bytes memory data,\\n uint256 value\\n ) internal returns (bytes memory) {\\n return functionCallWithValue(target, data, value, \\\"Address: low-level call with value failed\\\");\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\\n * with `errorMessage` as a fallback revert reason when `target` reverts.\\n *\\n * _Available since v3.1._\\n */\\n function functionCallWithValue(\\n address target,\\n bytes memory data,\\n uint256 value,\\n string memory errorMessage\\n ) internal returns (bytes memory) {\\n require(address(this).balance >= value, \\\"Address: insufficient balance for call\\\");\\n require(isContract(target), \\\"Address: call to non-contract\\\");\\n\\n (bool success, bytes memory returndata) = target.call{value: value}(data);\\n return verifyCallResult(success, returndata, errorMessage);\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n * but performing a static call.\\n *\\n * _Available since v3.3._\\n */\\n function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\\n return functionStaticCall(target, data, \\\"Address: low-level static call failed\\\");\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n * but performing a static call.\\n *\\n * _Available since v3.3._\\n */\\n function functionStaticCall(\\n address target,\\n bytes memory data,\\n string memory errorMessage\\n ) internal view returns (bytes memory) {\\n require(isContract(target), \\\"Address: static call to non-contract\\\");\\n\\n (bool success, bytes memory returndata) = target.staticcall(data);\\n return verifyCallResult(success, returndata, errorMessage);\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n * but performing a delegate call.\\n *\\n * _Available since v3.4._\\n */\\n function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\\n return functionDelegateCall(target, data, \\\"Address: low-level delegate call failed\\\");\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n * but performing a delegate call.\\n *\\n * _Available since v3.4._\\n */\\n function functionDelegateCall(\\n address target,\\n bytes memory data,\\n string memory errorMessage\\n ) internal returns (bytes memory) {\\n require(isContract(target), \\\"Address: delegate call to non-contract\\\");\\n\\n (bool success, bytes memory returndata) = target.delegatecall(data);\\n return verifyCallResult(success, returndata, errorMessage);\\n }\\n\\n /**\\n * @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the\\n * revert reason using the provided one.\\n *\\n * _Available since v4.3._\\n */\\n function verifyCallResult(\\n bool success,\\n bytes memory returndata,\\n string memory errorMessage\\n ) internal pure returns (bytes memory) {\\n if (success) {\\n return returndata;\\n } else {\\n // Look for revert reason and bubble it up if present\\n if (returndata.length > 0) {\\n // The easiest way to bubble the revert reason is using memory via assembly\\n\\n assembly {\\n let returndata_size := mload(returndata)\\n revert(add(32, returndata), returndata_size)\\n }\\n } else {\\n revert(errorMessage);\\n }\\n }\\n }\\n}\\n\",\"keccak256\":\"0x3777e696b62134e6177440dbe6e6601c0c156a443f57167194b67e75527439de\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"hardhat-deploy/solc_0.8/openzeppelin/utils/Context.sol":{"Context":{"abi":[],"devdoc":{"details":"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.","kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"hardhat-deploy/solc_0.8/openzeppelin/utils/Context.sol\":\"Context\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"hardhat-deploy/solc_0.8/openzeppelin/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\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\",\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"hardhat-deploy/solc_0.8/openzeppelin/utils/StorageSlot.sol":{"StorageSlot":{"abi":[],"devdoc":{"details":"Library for reading and writing primitive types to specific storage slots. Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts. This library helps with reading and writing to such slots without the need for inline assembly. The functions in this library return Slot structs that contain a `value` member that can be used to read or write. Example usage to set ERC1967 implementation slot: ``` contract ERC1967 { bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc; function _getImplementation() internal view returns (address) { return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value; } function _setImplementation(address newImplementation) internal { require(Address.isContract(newImplementation), \"ERC1967: new implementation is not a contract\"); StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation; } } ``` _Available since v4.1 for `address`, `bool`, `bytes32`, and `uint256`._","kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220d32d7c56d2e04212c059bcf647456ad34541dac7ac40fccab9210dc4638ab2db64736f6c63430008190033","opcodes":"PUSH1 0x55 PUSH1 0x32 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH0 BYTE PUSH1 0x73 EQ PUSH1 0x26 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST ADDRESS PUSH0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD3 0x2D PUSH29 0x56D2E04212C059BCF647456AD34541DAC7AC40FCCAB9210DC4638AB2DB PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"1264:1219:12:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;1264:1219:12;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220d32d7c56d2e04212c059bcf647456ad34541dac7ac40fccab9210dc4638ab2db64736f6c63430008190033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD3 0x2D PUSH29 0x56D2E04212C059BCF647456AD34541DAC7AC40FCCAB9210DC4638AB2DB PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"1264:1219:12:-:0;;;;;;;;"},"gasEstimates":{"creation":{"codeDepositCost":"17000","executionCost":"96","totalCost":"17096"},"internal":{"getAddressSlot(bytes32)":"infinite","getBooleanSlot(bytes32)":"infinite","getBytes32Slot(bytes32)":"infinite","getUint256Slot(bytes32)":"infinite"}},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library for reading and writing primitive types to specific storage slots. Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts. This library helps with reading and writing to such slots without the need for inline assembly. The functions in this library return Slot structs that contain a `value` member that can be used to read or write. Example usage to set ERC1967 implementation slot: ``` contract ERC1967 { bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc; function _getImplementation() internal view returns (address) { return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value; } function _setImplementation(address newImplementation) internal { require(Address.isContract(newImplementation), \\\"ERC1967: new implementation is not a contract\\\"); StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation; } } ``` _Available since v4.1 for `address`, `bool`, `bytes32`, and `uint256`._\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"hardhat-deploy/solc_0.8/openzeppelin/utils/StorageSlot.sol\":\"StorageSlot\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"hardhat-deploy/solc_0.8/openzeppelin/utils/StorageSlot.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/StorageSlot.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Library for reading and writing primitive types to specific storage slots.\\n *\\n * Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts.\\n * This library helps with reading and writing to such slots without the need for inline assembly.\\n *\\n * The functions in this library return Slot structs that contain a `value` member that can be used to read or write.\\n *\\n * Example usage to set ERC1967 implementation slot:\\n * ```\\n * contract ERC1967 {\\n * bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\\n *\\n * function _getImplementation() internal view returns (address) {\\n * return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\\n * }\\n *\\n * function _setImplementation(address newImplementation) internal {\\n * require(Address.isContract(newImplementation), \\\"ERC1967: new implementation is not a contract\\\");\\n * StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\\n * }\\n * }\\n * ```\\n *\\n * _Available since v4.1 for `address`, `bool`, `bytes32`, and `uint256`._\\n */\\nlibrary StorageSlot {\\n struct AddressSlot {\\n address value;\\n }\\n\\n struct BooleanSlot {\\n bool value;\\n }\\n\\n struct Bytes32Slot {\\n bytes32 value;\\n }\\n\\n struct Uint256Slot {\\n uint256 value;\\n }\\n\\n /**\\n * @dev Returns an `AddressSlot` with member `value` located at `slot`.\\n */\\n function getAddressSlot(bytes32 slot) internal pure returns (AddressSlot storage r) {\\n assembly {\\n r.slot := slot\\n }\\n }\\n\\n /**\\n * @dev Returns an `BooleanSlot` with member `value` located at `slot`.\\n */\\n function getBooleanSlot(bytes32 slot) internal pure returns (BooleanSlot storage r) {\\n assembly {\\n r.slot := slot\\n }\\n }\\n\\n /**\\n * @dev Returns an `Bytes32Slot` with member `value` located at `slot`.\\n */\\n function getBytes32Slot(bytes32 slot) internal pure returns (Bytes32Slot storage r) {\\n assembly {\\n r.slot := slot\\n }\\n }\\n\\n /**\\n * @dev Returns an `Uint256Slot` with member `value` located at `slot`.\\n */\\n function getUint256Slot(bytes32 slot) internal pure returns (Uint256Slot storage r) {\\n assembly {\\n r.slot := slot\\n }\\n }\\n}\\n\",\"keccak256\":\"0xfe1b7a9aa2a530a9e705b220e26cd584e2fbdc9602a3a1066032b12816b46aca\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"hardhat-deploy/solc_0.8/proxy/OptimizedTransparentUpgradeableProxy.sol":{"OptimizedTransparentUpgradeableProxy":{"abi":[{"inputs":[{"internalType":"address","name":"_logic","type":"address"},{"internalType":"address","name":"admin_","type":"address"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"beacon","type":"address"}],"name":"BeaconUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"admin_","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"implementation_","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"name":"upgradeTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"upgradeToAndCall","outputs":[],"stateMutability":"payable","type":"function"},{"stateMutability":"payable","type":"receive"}],"devdoc":{"details":"This contract implements a proxy that is upgradeable by an admin. To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector clashing], which can potentially be used in an attack, this contract uses the https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two things that go hand in hand: 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if that call matches one of the admin functions exposed by the proxy itself. 2. If the admin calls the proxy, it can access the admin functions, but its calls will never be forwarded to the implementation. If the admin tries to call a function on the implementation it will fail with an error that says \"admin cannot fallback to proxy target\". These properties mean that the admin account can only be used for admin actions like upgrading the proxy or changing the admin, so it's best if it's a dedicated account that is not used for anything else. This will avoid headaches due to sudden errors when trying to call a function from the proxy implementation. Our recommendation is for the dedicated account to be an instance of the {ProxyAdmin} contract. If set up this way, you should think of the `ProxyAdmin` instance as the real administrative interface of your proxy.","events":{"AdminChanged(address,address)":{"details":"Emitted when the admin account has changed."},"BeaconUpgraded(address)":{"details":"Emitted when the beacon is upgraded."},"Upgraded(address)":{"details":"Emitted when the implementation is upgraded."}},"kind":"dev","methods":{"admin()":{"details":"Returns the current admin. NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyAdmin}. TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call. `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103`"},"constructor":{"details":"Initializes an upgradeable proxy managed by `_admin`, backed by the implementation at `_logic`, and optionally initialized with `_data` as explained in {ERC1967Proxy-constructor}."},"implementation()":{"details":"Returns the current implementation. NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyImplementation}. TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call. `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc`"},"upgradeTo(address)":{"details":"Upgrade the implementation of the proxy. NOTE: Only the admin can call this function. See {ProxyAdmin-upgrade}."},"upgradeToAndCall(address,bytes)":{"details":"Upgrade the implementation of the proxy, and then call a function from the new implementation as specified by `data`, which should be an encoded function call. This is useful to initialize new storage variables in the proxied contract. NOTE: Only the admin can call this function. See {ProxyAdmin-upgradeAndCall}."}},"version":1},"evm":{"bytecode":{"functionDebugData":{"@_1296":{"entryPoint":null,"id":1296,"parameterSlots":3,"returnSlots":0},"@_161":{"entryPoint":null,"id":161,"parameterSlots":2,"returnSlots":0},"@_setImplementation_230":{"entryPoint":439,"id":230,"parameterSlots":1,"returnSlots":0},"@_upgradeToAndCall_275":{"entryPoint":287,"id":275,"parameterSlots":3,"returnSlots":0},"@_upgradeTo_245":{"entryPoint":330,"id":245,"parameterSlots":1,"returnSlots":0},"@functionDelegateCall_1091":{"entryPoint":393,"id":1091,"parameterSlots":2,"returnSlots":1},"@functionDelegateCall_1126":{"entryPoint":533,"id":1126,"parameterSlots":3,"returnSlots":1},"@getAddressSlot_1206":{"entryPoint":null,"id":1206,"parameterSlots":1,"returnSlots":1},"@isContract_881":{"entryPoint":null,"id":881,"parameterSlots":1,"returnSlots":1},"@verifyCallResult_1157":{"entryPoint":690,"id":1157,"parameterSlots":3,"returnSlots":1},"abi_decode_available_length_t_bytes_memory_ptr_fromMemory":{"entryPoint":939,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address_fromMemory":{"entryPoint":785,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_memory_ptr_fromMemory":{"entryPoint":1002,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_addresst_bytes_memory_ptr_fromMemory":{"entryPoint":1044,"id":null,"parameterSlots":2,"returnSlots":3},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":1204,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":1420,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack":{"entryPoint":1464,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65_to_t_string_memory_ptr_fromStack":{"entryPoint":1246,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520_to_t_string_memory_ptr_fromStack":{"entryPoint":1338,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":1453,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed":{"entryPoint":1219,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1513,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1322,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1404,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_memory":{"entryPoint":860,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_bytes_memory_ptr":{"entryPoint":887,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_bytes_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":1165,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":747,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":928,"id":null,"parameterSlots":3,"returnSlots":0},"finalize_allocation":{"entryPoint":816,"id":null,"parameterSlots":2,"returnSlots":0},"panic_error_0x01":{"entryPoint":1184,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x11":{"entryPoint":1145,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":796,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"store_literal_in_memory_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address":{"entryPoint":763,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:9000:14","nodeType":"YulBlock","src":"0:9000:14","statements":[{"body":{"nativeSrc":"47:35:14","nodeType":"YulBlock","src":"47:35:14","statements":[{"nativeSrc":"57:19:14","nodeType":"YulAssignment","src":"57:19:14","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:14","nodeType":"YulLiteral","src":"73:2:14","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:14","nodeType":"YulIdentifier","src":"67:5:14"},"nativeSrc":"67:9:14","nodeType":"YulFunctionCall","src":"67:9:14"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:14","nodeType":"YulIdentifier","src":"57:6:14"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:14","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:14","nodeType":"YulTypedName","src":"40:6:14","type":""}],"src":"7:75:14"},{"body":{"nativeSrc":"177:28:14","nodeType":"YulBlock","src":"177:28:14","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:14","nodeType":"YulLiteral","src":"194:1:14","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:14","nodeType":"YulLiteral","src":"197:1:14","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:14","nodeType":"YulIdentifier","src":"187:6:14"},"nativeSrc":"187:12:14","nodeType":"YulFunctionCall","src":"187:12:14"},"nativeSrc":"187:12:14","nodeType":"YulExpressionStatement","src":"187:12:14"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:14","nodeType":"YulFunctionDefinition","src":"88:117:14"},{"body":{"nativeSrc":"300:28:14","nodeType":"YulBlock","src":"300:28:14","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:14","nodeType":"YulLiteral","src":"317:1:14","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:14","nodeType":"YulLiteral","src":"320:1:14","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:14","nodeType":"YulIdentifier","src":"310:6:14"},"nativeSrc":"310:12:14","nodeType":"YulFunctionCall","src":"310:12:14"},"nativeSrc":"310:12:14","nodeType":"YulExpressionStatement","src":"310:12:14"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:14","nodeType":"YulFunctionDefinition","src":"211:117:14"},{"body":{"nativeSrc":"379:81:14","nodeType":"YulBlock","src":"379:81:14","statements":[{"nativeSrc":"389:65:14","nodeType":"YulAssignment","src":"389:65:14","value":{"arguments":[{"name":"value","nativeSrc":"404:5:14","nodeType":"YulIdentifier","src":"404:5:14"},{"kind":"number","nativeSrc":"411:42:14","nodeType":"YulLiteral","src":"411:42:14","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"400:3:14","nodeType":"YulIdentifier","src":"400:3:14"},"nativeSrc":"400:54:14","nodeType":"YulFunctionCall","src":"400:54:14"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:14","nodeType":"YulIdentifier","src":"389:7:14"}]}]},"name":"cleanup_t_uint160","nativeSrc":"334:126:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:14","nodeType":"YulTypedName","src":"361:5:14","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:14","nodeType":"YulTypedName","src":"371:7:14","type":""}],"src":"334:126:14"},{"body":{"nativeSrc":"511:51:14","nodeType":"YulBlock","src":"511:51:14","statements":[{"nativeSrc":"521:35:14","nodeType":"YulAssignment","src":"521:35:14","value":{"arguments":[{"name":"value","nativeSrc":"550:5:14","nodeType":"YulIdentifier","src":"550:5:14"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"532:17:14","nodeType":"YulIdentifier","src":"532:17:14"},"nativeSrc":"532:24:14","nodeType":"YulFunctionCall","src":"532:24:14"},"variableNames":[{"name":"cleaned","nativeSrc":"521:7:14","nodeType":"YulIdentifier","src":"521:7:14"}]}]},"name":"cleanup_t_address","nativeSrc":"466:96:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"493:5:14","nodeType":"YulTypedName","src":"493:5:14","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"503:7:14","nodeType":"YulTypedName","src":"503:7:14","type":""}],"src":"466:96:14"},{"body":{"nativeSrc":"611:79:14","nodeType":"YulBlock","src":"611:79:14","statements":[{"body":{"nativeSrc":"668:16:14","nodeType":"YulBlock","src":"668:16:14","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"677:1:14","nodeType":"YulLiteral","src":"677:1:14","type":"","value":"0"},{"kind":"number","nativeSrc":"680:1:14","nodeType":"YulLiteral","src":"680:1:14","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"670:6:14","nodeType":"YulIdentifier","src":"670:6:14"},"nativeSrc":"670:12:14","nodeType":"YulFunctionCall","src":"670:12:14"},"nativeSrc":"670:12:14","nodeType":"YulExpressionStatement","src":"670:12:14"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"634:5:14","nodeType":"YulIdentifier","src":"634:5:14"},{"arguments":[{"name":"value","nativeSrc":"659:5:14","nodeType":"YulIdentifier","src":"659:5:14"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"641:17:14","nodeType":"YulIdentifier","src":"641:17:14"},"nativeSrc":"641:24:14","nodeType":"YulFunctionCall","src":"641:24:14"}],"functionName":{"name":"eq","nativeSrc":"631:2:14","nodeType":"YulIdentifier","src":"631:2:14"},"nativeSrc":"631:35:14","nodeType":"YulFunctionCall","src":"631:35:14"}],"functionName":{"name":"iszero","nativeSrc":"624:6:14","nodeType":"YulIdentifier","src":"624:6:14"},"nativeSrc":"624:43:14","nodeType":"YulFunctionCall","src":"624:43:14"},"nativeSrc":"621:63:14","nodeType":"YulIf","src":"621:63:14"}]},"name":"validator_revert_t_address","nativeSrc":"568:122:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"604:5:14","nodeType":"YulTypedName","src":"604:5:14","type":""}],"src":"568:122:14"},{"body":{"nativeSrc":"759:80:14","nodeType":"YulBlock","src":"759:80:14","statements":[{"nativeSrc":"769:22:14","nodeType":"YulAssignment","src":"769:22:14","value":{"arguments":[{"name":"offset","nativeSrc":"784:6:14","nodeType":"YulIdentifier","src":"784:6:14"}],"functionName":{"name":"mload","nativeSrc":"778:5:14","nodeType":"YulIdentifier","src":"778:5:14"},"nativeSrc":"778:13:14","nodeType":"YulFunctionCall","src":"778:13:14"},"variableNames":[{"name":"value","nativeSrc":"769:5:14","nodeType":"YulIdentifier","src":"769:5:14"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"827:5:14","nodeType":"YulIdentifier","src":"827:5:14"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"800:26:14","nodeType":"YulIdentifier","src":"800:26:14"},"nativeSrc":"800:33:14","nodeType":"YulFunctionCall","src":"800:33:14"},"nativeSrc":"800:33:14","nodeType":"YulExpressionStatement","src":"800:33:14"}]},"name":"abi_decode_t_address_fromMemory","nativeSrc":"696:143:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"737:6:14","nodeType":"YulTypedName","src":"737:6:14","type":""},{"name":"end","nativeSrc":"745:3:14","nodeType":"YulTypedName","src":"745:3:14","type":""}],"returnVariables":[{"name":"value","nativeSrc":"753:5:14","nodeType":"YulTypedName","src":"753:5:14","type":""}],"src":"696:143:14"},{"body":{"nativeSrc":"934:28:14","nodeType":"YulBlock","src":"934:28:14","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"951:1:14","nodeType":"YulLiteral","src":"951:1:14","type":"","value":"0"},{"kind":"number","nativeSrc":"954:1:14","nodeType":"YulLiteral","src":"954:1:14","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"944:6:14","nodeType":"YulIdentifier","src":"944:6:14"},"nativeSrc":"944:12:14","nodeType":"YulFunctionCall","src":"944:12:14"},"nativeSrc":"944:12:14","nodeType":"YulExpressionStatement","src":"944:12:14"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"845:117:14","nodeType":"YulFunctionDefinition","src":"845:117:14"},{"body":{"nativeSrc":"1057:28:14","nodeType":"YulBlock","src":"1057:28:14","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1074:1:14","nodeType":"YulLiteral","src":"1074:1:14","type":"","value":"0"},{"kind":"number","nativeSrc":"1077:1:14","nodeType":"YulLiteral","src":"1077:1:14","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1067:6:14","nodeType":"YulIdentifier","src":"1067:6:14"},"nativeSrc":"1067:12:14","nodeType":"YulFunctionCall","src":"1067:12:14"},"nativeSrc":"1067:12:14","nodeType":"YulExpressionStatement","src":"1067:12:14"}]},"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"968:117:14","nodeType":"YulFunctionDefinition","src":"968:117:14"},{"body":{"nativeSrc":"1139:54:14","nodeType":"YulBlock","src":"1139:54:14","statements":[{"nativeSrc":"1149:38:14","nodeType":"YulAssignment","src":"1149:38:14","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1167:5:14","nodeType":"YulIdentifier","src":"1167:5:14"},{"kind":"number","nativeSrc":"1174:2:14","nodeType":"YulLiteral","src":"1174:2:14","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"1163:3:14","nodeType":"YulIdentifier","src":"1163:3:14"},"nativeSrc":"1163:14:14","nodeType":"YulFunctionCall","src":"1163:14:14"},{"arguments":[{"kind":"number","nativeSrc":"1183:2:14","nodeType":"YulLiteral","src":"1183:2:14","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"1179:3:14","nodeType":"YulIdentifier","src":"1179:3:14"},"nativeSrc":"1179:7:14","nodeType":"YulFunctionCall","src":"1179:7:14"}],"functionName":{"name":"and","nativeSrc":"1159:3:14","nodeType":"YulIdentifier","src":"1159:3:14"},"nativeSrc":"1159:28:14","nodeType":"YulFunctionCall","src":"1159:28:14"},"variableNames":[{"name":"result","nativeSrc":"1149:6:14","nodeType":"YulIdentifier","src":"1149:6:14"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"1091:102:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1122:5:14","nodeType":"YulTypedName","src":"1122:5:14","type":""}],"returnVariables":[{"name":"result","nativeSrc":"1132:6:14","nodeType":"YulTypedName","src":"1132:6:14","type":""}],"src":"1091:102:14"},{"body":{"nativeSrc":"1227:152:14","nodeType":"YulBlock","src":"1227:152:14","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1244:1:14","nodeType":"YulLiteral","src":"1244:1:14","type":"","value":"0"},{"kind":"number","nativeSrc":"1247:77:14","nodeType":"YulLiteral","src":"1247:77:14","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"1237:6:14","nodeType":"YulIdentifier","src":"1237:6:14"},"nativeSrc":"1237:88:14","nodeType":"YulFunctionCall","src":"1237:88:14"},"nativeSrc":"1237:88:14","nodeType":"YulExpressionStatement","src":"1237:88:14"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1341:1:14","nodeType":"YulLiteral","src":"1341:1:14","type":"","value":"4"},{"kind":"number","nativeSrc":"1344:4:14","nodeType":"YulLiteral","src":"1344:4:14","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"1334:6:14","nodeType":"YulIdentifier","src":"1334:6:14"},"nativeSrc":"1334:15:14","nodeType":"YulFunctionCall","src":"1334:15:14"},"nativeSrc":"1334:15:14","nodeType":"YulExpressionStatement","src":"1334:15:14"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1365:1:14","nodeType":"YulLiteral","src":"1365:1:14","type":"","value":"0"},{"kind":"number","nativeSrc":"1368:4:14","nodeType":"YulLiteral","src":"1368:4:14","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"1358:6:14","nodeType":"YulIdentifier","src":"1358:6:14"},"nativeSrc":"1358:15:14","nodeType":"YulFunctionCall","src":"1358:15:14"},"nativeSrc":"1358:15:14","nodeType":"YulExpressionStatement","src":"1358:15:14"}]},"name":"panic_error_0x41","nativeSrc":"1199:180:14","nodeType":"YulFunctionDefinition","src":"1199:180:14"},{"body":{"nativeSrc":"1428:238:14","nodeType":"YulBlock","src":"1428:238:14","statements":[{"nativeSrc":"1438:58:14","nodeType":"YulVariableDeclaration","src":"1438:58:14","value":{"arguments":[{"name":"memPtr","nativeSrc":"1460:6:14","nodeType":"YulIdentifier","src":"1460:6:14"},{"arguments":[{"name":"size","nativeSrc":"1490:4:14","nodeType":"YulIdentifier","src":"1490:4:14"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"1468:21:14","nodeType":"YulIdentifier","src":"1468:21:14"},"nativeSrc":"1468:27:14","nodeType":"YulFunctionCall","src":"1468:27:14"}],"functionName":{"name":"add","nativeSrc":"1456:3:14","nodeType":"YulIdentifier","src":"1456:3:14"},"nativeSrc":"1456:40:14","nodeType":"YulFunctionCall","src":"1456:40:14"},"variables":[{"name":"newFreePtr","nativeSrc":"1442:10:14","nodeType":"YulTypedName","src":"1442:10:14","type":""}]},{"body":{"nativeSrc":"1607:22:14","nodeType":"YulBlock","src":"1607:22:14","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1609:16:14","nodeType":"YulIdentifier","src":"1609:16:14"},"nativeSrc":"1609:18:14","nodeType":"YulFunctionCall","src":"1609:18:14"},"nativeSrc":"1609:18:14","nodeType":"YulExpressionStatement","src":"1609:18:14"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"1550:10:14","nodeType":"YulIdentifier","src":"1550:10:14"},{"kind":"number","nativeSrc":"1562:18:14","nodeType":"YulLiteral","src":"1562:18:14","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1547:2:14","nodeType":"YulIdentifier","src":"1547:2:14"},"nativeSrc":"1547:34:14","nodeType":"YulFunctionCall","src":"1547:34:14"},{"arguments":[{"name":"newFreePtr","nativeSrc":"1586:10:14","nodeType":"YulIdentifier","src":"1586:10:14"},{"name":"memPtr","nativeSrc":"1598:6:14","nodeType":"YulIdentifier","src":"1598:6:14"}],"functionName":{"name":"lt","nativeSrc":"1583:2:14","nodeType":"YulIdentifier","src":"1583:2:14"},"nativeSrc":"1583:22:14","nodeType":"YulFunctionCall","src":"1583:22:14"}],"functionName":{"name":"or","nativeSrc":"1544:2:14","nodeType":"YulIdentifier","src":"1544:2:14"},"nativeSrc":"1544:62:14","nodeType":"YulFunctionCall","src":"1544:62:14"},"nativeSrc":"1541:88:14","nodeType":"YulIf","src":"1541:88:14"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1645:2:14","nodeType":"YulLiteral","src":"1645:2:14","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"1649:10:14","nodeType":"YulIdentifier","src":"1649:10:14"}],"functionName":{"name":"mstore","nativeSrc":"1638:6:14","nodeType":"YulIdentifier","src":"1638:6:14"},"nativeSrc":"1638:22:14","nodeType":"YulFunctionCall","src":"1638:22:14"},"nativeSrc":"1638:22:14","nodeType":"YulExpressionStatement","src":"1638:22:14"}]},"name":"finalize_allocation","nativeSrc":"1385:281:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"1414:6:14","nodeType":"YulTypedName","src":"1414:6:14","type":""},{"name":"size","nativeSrc":"1422:4:14","nodeType":"YulTypedName","src":"1422:4:14","type":""}],"src":"1385:281:14"},{"body":{"nativeSrc":"1713:88:14","nodeType":"YulBlock","src":"1713:88:14","statements":[{"nativeSrc":"1723:30:14","nodeType":"YulAssignment","src":"1723:30:14","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"1733:18:14","nodeType":"YulIdentifier","src":"1733:18:14"},"nativeSrc":"1733:20:14","nodeType":"YulFunctionCall","src":"1733:20:14"},"variableNames":[{"name":"memPtr","nativeSrc":"1723:6:14","nodeType":"YulIdentifier","src":"1723:6:14"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"1782:6:14","nodeType":"YulIdentifier","src":"1782:6:14"},{"name":"size","nativeSrc":"1790:4:14","nodeType":"YulIdentifier","src":"1790:4:14"}],"functionName":{"name":"finalize_allocation","nativeSrc":"1762:19:14","nodeType":"YulIdentifier","src":"1762:19:14"},"nativeSrc":"1762:33:14","nodeType":"YulFunctionCall","src":"1762:33:14"},"nativeSrc":"1762:33:14","nodeType":"YulExpressionStatement","src":"1762:33:14"}]},"name":"allocate_memory","nativeSrc":"1672:129:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"1697:4:14","nodeType":"YulTypedName","src":"1697:4:14","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"1706:6:14","nodeType":"YulTypedName","src":"1706:6:14","type":""}],"src":"1672:129:14"},{"body":{"nativeSrc":"1873:241:14","nodeType":"YulBlock","src":"1873:241:14","statements":[{"body":{"nativeSrc":"1978:22:14","nodeType":"YulBlock","src":"1978:22:14","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1980:16:14","nodeType":"YulIdentifier","src":"1980:16:14"},"nativeSrc":"1980:18:14","nodeType":"YulFunctionCall","src":"1980:18:14"},"nativeSrc":"1980:18:14","nodeType":"YulExpressionStatement","src":"1980:18:14"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"1950:6:14","nodeType":"YulIdentifier","src":"1950:6:14"},{"kind":"number","nativeSrc":"1958:18:14","nodeType":"YulLiteral","src":"1958:18:14","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1947:2:14","nodeType":"YulIdentifier","src":"1947:2:14"},"nativeSrc":"1947:30:14","nodeType":"YulFunctionCall","src":"1947:30:14"},"nativeSrc":"1944:56:14","nodeType":"YulIf","src":"1944:56:14"},{"nativeSrc":"2010:37:14","nodeType":"YulAssignment","src":"2010:37:14","value":{"arguments":[{"name":"length","nativeSrc":"2040:6:14","nodeType":"YulIdentifier","src":"2040:6:14"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"2018:21:14","nodeType":"YulIdentifier","src":"2018:21:14"},"nativeSrc":"2018:29:14","nodeType":"YulFunctionCall","src":"2018:29:14"},"variableNames":[{"name":"size","nativeSrc":"2010:4:14","nodeType":"YulIdentifier","src":"2010:4:14"}]},{"nativeSrc":"2084:23:14","nodeType":"YulAssignment","src":"2084:23:14","value":{"arguments":[{"name":"size","nativeSrc":"2096:4:14","nodeType":"YulIdentifier","src":"2096:4:14"},{"kind":"number","nativeSrc":"2102:4:14","nodeType":"YulLiteral","src":"2102:4:14","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2092:3:14","nodeType":"YulIdentifier","src":"2092:3:14"},"nativeSrc":"2092:15:14","nodeType":"YulFunctionCall","src":"2092:15:14"},"variableNames":[{"name":"size","nativeSrc":"2084:4:14","nodeType":"YulIdentifier","src":"2084:4:14"}]}]},"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"1807:307:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"1857:6:14","nodeType":"YulTypedName","src":"1857:6:14","type":""}],"returnVariables":[{"name":"size","nativeSrc":"1868:4:14","nodeType":"YulTypedName","src":"1868:4:14","type":""}],"src":"1807:307:14"},{"body":{"nativeSrc":"2182:77:14","nodeType":"YulBlock","src":"2182:77:14","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"2199:3:14","nodeType":"YulIdentifier","src":"2199:3:14"},{"name":"src","nativeSrc":"2204:3:14","nodeType":"YulIdentifier","src":"2204:3:14"},{"name":"length","nativeSrc":"2209:6:14","nodeType":"YulIdentifier","src":"2209:6:14"}],"functionName":{"name":"mcopy","nativeSrc":"2193:5:14","nodeType":"YulIdentifier","src":"2193:5:14"},"nativeSrc":"2193:23:14","nodeType":"YulFunctionCall","src":"2193:23:14"},"nativeSrc":"2193:23:14","nodeType":"YulExpressionStatement","src":"2193:23:14"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"2236:3:14","nodeType":"YulIdentifier","src":"2236:3:14"},{"name":"length","nativeSrc":"2241:6:14","nodeType":"YulIdentifier","src":"2241:6:14"}],"functionName":{"name":"add","nativeSrc":"2232:3:14","nodeType":"YulIdentifier","src":"2232:3:14"},"nativeSrc":"2232:16:14","nodeType":"YulFunctionCall","src":"2232:16:14"},{"kind":"number","nativeSrc":"2250:1:14","nodeType":"YulLiteral","src":"2250:1:14","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"2225:6:14","nodeType":"YulIdentifier","src":"2225:6:14"},"nativeSrc":"2225:27:14","nodeType":"YulFunctionCall","src":"2225:27:14"},"nativeSrc":"2225:27:14","nodeType":"YulExpressionStatement","src":"2225:27:14"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"2120:139:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"2164:3:14","nodeType":"YulTypedName","src":"2164:3:14","type":""},{"name":"dst","nativeSrc":"2169:3:14","nodeType":"YulTypedName","src":"2169:3:14","type":""},{"name":"length","nativeSrc":"2174:6:14","nodeType":"YulTypedName","src":"2174:6:14","type":""}],"src":"2120:139:14"},{"body":{"nativeSrc":"2359:338:14","nodeType":"YulBlock","src":"2359:338:14","statements":[{"nativeSrc":"2369:74:14","nodeType":"YulAssignment","src":"2369:74:14","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"2435:6:14","nodeType":"YulIdentifier","src":"2435:6:14"}],"functionName":{"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"2394:40:14","nodeType":"YulIdentifier","src":"2394:40:14"},"nativeSrc":"2394:48:14","nodeType":"YulFunctionCall","src":"2394:48:14"}],"functionName":{"name":"allocate_memory","nativeSrc":"2378:15:14","nodeType":"YulIdentifier","src":"2378:15:14"},"nativeSrc":"2378:65:14","nodeType":"YulFunctionCall","src":"2378:65:14"},"variableNames":[{"name":"array","nativeSrc":"2369:5:14","nodeType":"YulIdentifier","src":"2369:5:14"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"2459:5:14","nodeType":"YulIdentifier","src":"2459:5:14"},{"name":"length","nativeSrc":"2466:6:14","nodeType":"YulIdentifier","src":"2466:6:14"}],"functionName":{"name":"mstore","nativeSrc":"2452:6:14","nodeType":"YulIdentifier","src":"2452:6:14"},"nativeSrc":"2452:21:14","nodeType":"YulFunctionCall","src":"2452:21:14"},"nativeSrc":"2452:21:14","nodeType":"YulExpressionStatement","src":"2452:21:14"},{"nativeSrc":"2482:27:14","nodeType":"YulVariableDeclaration","src":"2482:27:14","value":{"arguments":[{"name":"array","nativeSrc":"2497:5:14","nodeType":"YulIdentifier","src":"2497:5:14"},{"kind":"number","nativeSrc":"2504:4:14","nodeType":"YulLiteral","src":"2504:4:14","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2493:3:14","nodeType":"YulIdentifier","src":"2493:3:14"},"nativeSrc":"2493:16:14","nodeType":"YulFunctionCall","src":"2493:16:14"},"variables":[{"name":"dst","nativeSrc":"2486:3:14","nodeType":"YulTypedName","src":"2486:3:14","type":""}]},{"body":{"nativeSrc":"2547:83:14","nodeType":"YulBlock","src":"2547:83:14","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"2549:77:14","nodeType":"YulIdentifier","src":"2549:77:14"},"nativeSrc":"2549:79:14","nodeType":"YulFunctionCall","src":"2549:79:14"},"nativeSrc":"2549:79:14","nodeType":"YulExpressionStatement","src":"2549:79:14"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"2528:3:14","nodeType":"YulIdentifier","src":"2528:3:14"},{"name":"length","nativeSrc":"2533:6:14","nodeType":"YulIdentifier","src":"2533:6:14"}],"functionName":{"name":"add","nativeSrc":"2524:3:14","nodeType":"YulIdentifier","src":"2524:3:14"},"nativeSrc":"2524:16:14","nodeType":"YulFunctionCall","src":"2524:16:14"},{"name":"end","nativeSrc":"2542:3:14","nodeType":"YulIdentifier","src":"2542:3:14"}],"functionName":{"name":"gt","nativeSrc":"2521:2:14","nodeType":"YulIdentifier","src":"2521:2:14"},"nativeSrc":"2521:25:14","nodeType":"YulFunctionCall","src":"2521:25:14"},"nativeSrc":"2518:112:14","nodeType":"YulIf","src":"2518:112:14"},{"expression":{"arguments":[{"name":"src","nativeSrc":"2674:3:14","nodeType":"YulIdentifier","src":"2674:3:14"},{"name":"dst","nativeSrc":"2679:3:14","nodeType":"YulIdentifier","src":"2679:3:14"},{"name":"length","nativeSrc":"2684:6:14","nodeType":"YulIdentifier","src":"2684:6:14"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"2639:34:14","nodeType":"YulIdentifier","src":"2639:34:14"},"nativeSrc":"2639:52:14","nodeType":"YulFunctionCall","src":"2639:52:14"},"nativeSrc":"2639:52:14","nodeType":"YulExpressionStatement","src":"2639:52:14"}]},"name":"abi_decode_available_length_t_bytes_memory_ptr_fromMemory","nativeSrc":"2265:432:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"2332:3:14","nodeType":"YulTypedName","src":"2332:3:14","type":""},{"name":"length","nativeSrc":"2337:6:14","nodeType":"YulTypedName","src":"2337:6:14","type":""},{"name":"end","nativeSrc":"2345:3:14","nodeType":"YulTypedName","src":"2345:3:14","type":""}],"returnVariables":[{"name":"array","nativeSrc":"2353:5:14","nodeType":"YulTypedName","src":"2353:5:14","type":""}],"src":"2265:432:14"},{"body":{"nativeSrc":"2788:281:14","nodeType":"YulBlock","src":"2788:281:14","statements":[{"body":{"nativeSrc":"2837:83:14","nodeType":"YulBlock","src":"2837:83:14","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"2839:77:14","nodeType":"YulIdentifier","src":"2839:77:14"},"nativeSrc":"2839:79:14","nodeType":"YulFunctionCall","src":"2839:79:14"},"nativeSrc":"2839:79:14","nodeType":"YulExpressionStatement","src":"2839:79:14"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2816:6:14","nodeType":"YulIdentifier","src":"2816:6:14"},{"kind":"number","nativeSrc":"2824:4:14","nodeType":"YulLiteral","src":"2824:4:14","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"2812:3:14","nodeType":"YulIdentifier","src":"2812:3:14"},"nativeSrc":"2812:17:14","nodeType":"YulFunctionCall","src":"2812:17:14"},{"name":"end","nativeSrc":"2831:3:14","nodeType":"YulIdentifier","src":"2831:3:14"}],"functionName":{"name":"slt","nativeSrc":"2808:3:14","nodeType":"YulIdentifier","src":"2808:3:14"},"nativeSrc":"2808:27:14","nodeType":"YulFunctionCall","src":"2808:27:14"}],"functionName":{"name":"iszero","nativeSrc":"2801:6:14","nodeType":"YulIdentifier","src":"2801:6:14"},"nativeSrc":"2801:35:14","nodeType":"YulFunctionCall","src":"2801:35:14"},"nativeSrc":"2798:122:14","nodeType":"YulIf","src":"2798:122:14"},{"nativeSrc":"2929:27:14","nodeType":"YulVariableDeclaration","src":"2929:27:14","value":{"arguments":[{"name":"offset","nativeSrc":"2949:6:14","nodeType":"YulIdentifier","src":"2949:6:14"}],"functionName":{"name":"mload","nativeSrc":"2943:5:14","nodeType":"YulIdentifier","src":"2943:5:14"},"nativeSrc":"2943:13:14","nodeType":"YulFunctionCall","src":"2943:13:14"},"variables":[{"name":"length","nativeSrc":"2933:6:14","nodeType":"YulTypedName","src":"2933:6:14","type":""}]},{"nativeSrc":"2965:98:14","nodeType":"YulAssignment","src":"2965:98:14","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"3036:6:14","nodeType":"YulIdentifier","src":"3036:6:14"},{"kind":"number","nativeSrc":"3044:4:14","nodeType":"YulLiteral","src":"3044:4:14","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3032:3:14","nodeType":"YulIdentifier","src":"3032:3:14"},"nativeSrc":"3032:17:14","nodeType":"YulFunctionCall","src":"3032:17:14"},{"name":"length","nativeSrc":"3051:6:14","nodeType":"YulIdentifier","src":"3051:6:14"},{"name":"end","nativeSrc":"3059:3:14","nodeType":"YulIdentifier","src":"3059:3:14"}],"functionName":{"name":"abi_decode_available_length_t_bytes_memory_ptr_fromMemory","nativeSrc":"2974:57:14","nodeType":"YulIdentifier","src":"2974:57:14"},"nativeSrc":"2974:89:14","nodeType":"YulFunctionCall","src":"2974:89:14"},"variableNames":[{"name":"array","nativeSrc":"2965:5:14","nodeType":"YulIdentifier","src":"2965:5:14"}]}]},"name":"abi_decode_t_bytes_memory_ptr_fromMemory","nativeSrc":"2716:353:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2766:6:14","nodeType":"YulTypedName","src":"2766:6:14","type":""},{"name":"end","nativeSrc":"2774:3:14","nodeType":"YulTypedName","src":"2774:3:14","type":""}],"returnVariables":[{"name":"array","nativeSrc":"2782:5:14","nodeType":"YulTypedName","src":"2782:5:14","type":""}],"src":"2716:353:14"},{"body":{"nativeSrc":"3195:714:14","nodeType":"YulBlock","src":"3195:714:14","statements":[{"body":{"nativeSrc":"3241:83:14","nodeType":"YulBlock","src":"3241:83:14","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3243:77:14","nodeType":"YulIdentifier","src":"3243:77:14"},"nativeSrc":"3243:79:14","nodeType":"YulFunctionCall","src":"3243:79:14"},"nativeSrc":"3243:79:14","nodeType":"YulExpressionStatement","src":"3243:79:14"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3216:7:14","nodeType":"YulIdentifier","src":"3216:7:14"},{"name":"headStart","nativeSrc":"3225:9:14","nodeType":"YulIdentifier","src":"3225:9:14"}],"functionName":{"name":"sub","nativeSrc":"3212:3:14","nodeType":"YulIdentifier","src":"3212:3:14"},"nativeSrc":"3212:23:14","nodeType":"YulFunctionCall","src":"3212:23:14"},{"kind":"number","nativeSrc":"3237:2:14","nodeType":"YulLiteral","src":"3237:2:14","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"3208:3:14","nodeType":"YulIdentifier","src":"3208:3:14"},"nativeSrc":"3208:32:14","nodeType":"YulFunctionCall","src":"3208:32:14"},"nativeSrc":"3205:119:14","nodeType":"YulIf","src":"3205:119:14"},{"nativeSrc":"3334:128:14","nodeType":"YulBlock","src":"3334:128:14","statements":[{"nativeSrc":"3349:15:14","nodeType":"YulVariableDeclaration","src":"3349:15:14","value":{"kind":"number","nativeSrc":"3363:1:14","nodeType":"YulLiteral","src":"3363:1:14","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"3353:6:14","nodeType":"YulTypedName","src":"3353:6:14","type":""}]},{"nativeSrc":"3378:74:14","nodeType":"YulAssignment","src":"3378:74:14","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3424:9:14","nodeType":"YulIdentifier","src":"3424:9:14"},{"name":"offset","nativeSrc":"3435:6:14","nodeType":"YulIdentifier","src":"3435:6:14"}],"functionName":{"name":"add","nativeSrc":"3420:3:14","nodeType":"YulIdentifier","src":"3420:3:14"},"nativeSrc":"3420:22:14","nodeType":"YulFunctionCall","src":"3420:22:14"},{"name":"dataEnd","nativeSrc":"3444:7:14","nodeType":"YulIdentifier","src":"3444:7:14"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"3388:31:14","nodeType":"YulIdentifier","src":"3388:31:14"},"nativeSrc":"3388:64:14","nodeType":"YulFunctionCall","src":"3388:64:14"},"variableNames":[{"name":"value0","nativeSrc":"3378:6:14","nodeType":"YulIdentifier","src":"3378:6:14"}]}]},{"nativeSrc":"3472:129:14","nodeType":"YulBlock","src":"3472:129:14","statements":[{"nativeSrc":"3487:16:14","nodeType":"YulVariableDeclaration","src":"3487:16:14","value":{"kind":"number","nativeSrc":"3501:2:14","nodeType":"YulLiteral","src":"3501:2:14","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"3491:6:14","nodeType":"YulTypedName","src":"3491:6:14","type":""}]},{"nativeSrc":"3517:74:14","nodeType":"YulAssignment","src":"3517:74:14","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3563:9:14","nodeType":"YulIdentifier","src":"3563:9:14"},{"name":"offset","nativeSrc":"3574:6:14","nodeType":"YulIdentifier","src":"3574:6:14"}],"functionName":{"name":"add","nativeSrc":"3559:3:14","nodeType":"YulIdentifier","src":"3559:3:14"},"nativeSrc":"3559:22:14","nodeType":"YulFunctionCall","src":"3559:22:14"},{"name":"dataEnd","nativeSrc":"3583:7:14","nodeType":"YulIdentifier","src":"3583:7:14"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"3527:31:14","nodeType":"YulIdentifier","src":"3527:31:14"},"nativeSrc":"3527:64:14","nodeType":"YulFunctionCall","src":"3527:64:14"},"variableNames":[{"name":"value1","nativeSrc":"3517:6:14","nodeType":"YulIdentifier","src":"3517:6:14"}]}]},{"nativeSrc":"3611:291:14","nodeType":"YulBlock","src":"3611:291:14","statements":[{"nativeSrc":"3626:39:14","nodeType":"YulVariableDeclaration","src":"3626:39:14","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3650:9:14","nodeType":"YulIdentifier","src":"3650:9:14"},{"kind":"number","nativeSrc":"3661:2:14","nodeType":"YulLiteral","src":"3661:2:14","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3646:3:14","nodeType":"YulIdentifier","src":"3646:3:14"},"nativeSrc":"3646:18:14","nodeType":"YulFunctionCall","src":"3646:18:14"}],"functionName":{"name":"mload","nativeSrc":"3640:5:14","nodeType":"YulIdentifier","src":"3640:5:14"},"nativeSrc":"3640:25:14","nodeType":"YulFunctionCall","src":"3640:25:14"},"variables":[{"name":"offset","nativeSrc":"3630:6:14","nodeType":"YulTypedName","src":"3630:6:14","type":""}]},{"body":{"nativeSrc":"3712:83:14","nodeType":"YulBlock","src":"3712:83:14","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"3714:77:14","nodeType":"YulIdentifier","src":"3714:77:14"},"nativeSrc":"3714:79:14","nodeType":"YulFunctionCall","src":"3714:79:14"},"nativeSrc":"3714:79:14","nodeType":"YulExpressionStatement","src":"3714:79:14"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"3684:6:14","nodeType":"YulIdentifier","src":"3684:6:14"},{"kind":"number","nativeSrc":"3692:18:14","nodeType":"YulLiteral","src":"3692:18:14","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3681:2:14","nodeType":"YulIdentifier","src":"3681:2:14"},"nativeSrc":"3681:30:14","nodeType":"YulFunctionCall","src":"3681:30:14"},"nativeSrc":"3678:117:14","nodeType":"YulIf","src":"3678:117:14"},{"nativeSrc":"3809:83:14","nodeType":"YulAssignment","src":"3809:83:14","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3864:9:14","nodeType":"YulIdentifier","src":"3864:9:14"},{"name":"offset","nativeSrc":"3875:6:14","nodeType":"YulIdentifier","src":"3875:6:14"}],"functionName":{"name":"add","nativeSrc":"3860:3:14","nodeType":"YulIdentifier","src":"3860:3:14"},"nativeSrc":"3860:22:14","nodeType":"YulFunctionCall","src":"3860:22:14"},{"name":"dataEnd","nativeSrc":"3884:7:14","nodeType":"YulIdentifier","src":"3884:7:14"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr_fromMemory","nativeSrc":"3819:40:14","nodeType":"YulIdentifier","src":"3819:40:14"},"nativeSrc":"3819:73:14","nodeType":"YulFunctionCall","src":"3819:73:14"},"variableNames":[{"name":"value2","nativeSrc":"3809:6:14","nodeType":"YulIdentifier","src":"3809:6:14"}]}]}]},"name":"abi_decode_tuple_t_addresst_addresst_bytes_memory_ptr_fromMemory","nativeSrc":"3075:834:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3149:9:14","nodeType":"YulTypedName","src":"3149:9:14","type":""},{"name":"dataEnd","nativeSrc":"3160:7:14","nodeType":"YulTypedName","src":"3160:7:14","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3172:6:14","nodeType":"YulTypedName","src":"3172:6:14","type":""},{"name":"value1","nativeSrc":"3180:6:14","nodeType":"YulTypedName","src":"3180:6:14","type":""},{"name":"value2","nativeSrc":"3188:6:14","nodeType":"YulTypedName","src":"3188:6:14","type":""}],"src":"3075:834:14"},{"body":{"nativeSrc":"3960:32:14","nodeType":"YulBlock","src":"3960:32:14","statements":[{"nativeSrc":"3970:16:14","nodeType":"YulAssignment","src":"3970:16:14","value":{"name":"value","nativeSrc":"3981:5:14","nodeType":"YulIdentifier","src":"3981:5:14"},"variableNames":[{"name":"cleaned","nativeSrc":"3970:7:14","nodeType":"YulIdentifier","src":"3970:7:14"}]}]},"name":"cleanup_t_uint256","nativeSrc":"3915:77:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3942:5:14","nodeType":"YulTypedName","src":"3942:5:14","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"3952:7:14","nodeType":"YulTypedName","src":"3952:7:14","type":""}],"src":"3915:77:14"},{"body":{"nativeSrc":"4026:152:14","nodeType":"YulBlock","src":"4026:152:14","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4043:1:14","nodeType":"YulLiteral","src":"4043:1:14","type":"","value":"0"},{"kind":"number","nativeSrc":"4046:77:14","nodeType":"YulLiteral","src":"4046:77:14","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"4036:6:14","nodeType":"YulIdentifier","src":"4036:6:14"},"nativeSrc":"4036:88:14","nodeType":"YulFunctionCall","src":"4036:88:14"},"nativeSrc":"4036:88:14","nodeType":"YulExpressionStatement","src":"4036:88:14"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4140:1:14","nodeType":"YulLiteral","src":"4140:1:14","type":"","value":"4"},{"kind":"number","nativeSrc":"4143:4:14","nodeType":"YulLiteral","src":"4143:4:14","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"4133:6:14","nodeType":"YulIdentifier","src":"4133:6:14"},"nativeSrc":"4133:15:14","nodeType":"YulFunctionCall","src":"4133:15:14"},"nativeSrc":"4133:15:14","nodeType":"YulExpressionStatement","src":"4133:15:14"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4164:1:14","nodeType":"YulLiteral","src":"4164:1:14","type":"","value":"0"},{"kind":"number","nativeSrc":"4167:4:14","nodeType":"YulLiteral","src":"4167:4:14","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"4157:6:14","nodeType":"YulIdentifier","src":"4157:6:14"},"nativeSrc":"4157:15:14","nodeType":"YulFunctionCall","src":"4157:15:14"},"nativeSrc":"4157:15:14","nodeType":"YulExpressionStatement","src":"4157:15:14"}]},"name":"panic_error_0x11","nativeSrc":"3998:180:14","nodeType":"YulFunctionDefinition","src":"3998:180:14"},{"body":{"nativeSrc":"4229:149:14","nodeType":"YulBlock","src":"4229:149:14","statements":[{"nativeSrc":"4239:25:14","nodeType":"YulAssignment","src":"4239:25:14","value":{"arguments":[{"name":"x","nativeSrc":"4262:1:14","nodeType":"YulIdentifier","src":"4262:1:14"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"4244:17:14","nodeType":"YulIdentifier","src":"4244:17:14"},"nativeSrc":"4244:20:14","nodeType":"YulFunctionCall","src":"4244:20:14"},"variableNames":[{"name":"x","nativeSrc":"4239:1:14","nodeType":"YulIdentifier","src":"4239:1:14"}]},{"nativeSrc":"4273:25:14","nodeType":"YulAssignment","src":"4273:25:14","value":{"arguments":[{"name":"y","nativeSrc":"4296:1:14","nodeType":"YulIdentifier","src":"4296:1:14"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"4278:17:14","nodeType":"YulIdentifier","src":"4278:17:14"},"nativeSrc":"4278:20:14","nodeType":"YulFunctionCall","src":"4278:20:14"},"variableNames":[{"name":"y","nativeSrc":"4273:1:14","nodeType":"YulIdentifier","src":"4273:1:14"}]},{"nativeSrc":"4307:17:14","nodeType":"YulAssignment","src":"4307:17:14","value":{"arguments":[{"name":"x","nativeSrc":"4319:1:14","nodeType":"YulIdentifier","src":"4319:1:14"},{"name":"y","nativeSrc":"4322:1:14","nodeType":"YulIdentifier","src":"4322:1:14"}],"functionName":{"name":"sub","nativeSrc":"4315:3:14","nodeType":"YulIdentifier","src":"4315:3:14"},"nativeSrc":"4315:9:14","nodeType":"YulFunctionCall","src":"4315:9:14"},"variableNames":[{"name":"diff","nativeSrc":"4307:4:14","nodeType":"YulIdentifier","src":"4307:4:14"}]},{"body":{"nativeSrc":"4349:22:14","nodeType":"YulBlock","src":"4349:22:14","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"4351:16:14","nodeType":"YulIdentifier","src":"4351:16:14"},"nativeSrc":"4351:18:14","nodeType":"YulFunctionCall","src":"4351:18:14"},"nativeSrc":"4351:18:14","nodeType":"YulExpressionStatement","src":"4351:18:14"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"4340:4:14","nodeType":"YulIdentifier","src":"4340:4:14"},{"name":"x","nativeSrc":"4346:1:14","nodeType":"YulIdentifier","src":"4346:1:14"}],"functionName":{"name":"gt","nativeSrc":"4337:2:14","nodeType":"YulIdentifier","src":"4337:2:14"},"nativeSrc":"4337:11:14","nodeType":"YulFunctionCall","src":"4337:11:14"},"nativeSrc":"4334:37:14","nodeType":"YulIf","src":"4334:37:14"}]},"name":"checked_sub_t_uint256","nativeSrc":"4184:194:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"4215:1:14","nodeType":"YulTypedName","src":"4215:1:14","type":""},{"name":"y","nativeSrc":"4218:1:14","nodeType":"YulTypedName","src":"4218:1:14","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"4224:4:14","nodeType":"YulTypedName","src":"4224:4:14","type":""}],"src":"4184:194:14"},{"body":{"nativeSrc":"4412:152:14","nodeType":"YulBlock","src":"4412:152:14","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4429:1:14","nodeType":"YulLiteral","src":"4429:1:14","type":"","value":"0"},{"kind":"number","nativeSrc":"4432:77:14","nodeType":"YulLiteral","src":"4432:77:14","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"4422:6:14","nodeType":"YulIdentifier","src":"4422:6:14"},"nativeSrc":"4422:88:14","nodeType":"YulFunctionCall","src":"4422:88:14"},"nativeSrc":"4422:88:14","nodeType":"YulExpressionStatement","src":"4422:88:14"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4526:1:14","nodeType":"YulLiteral","src":"4526:1:14","type":"","value":"4"},{"kind":"number","nativeSrc":"4529:4:14","nodeType":"YulLiteral","src":"4529:4:14","type":"","value":"0x01"}],"functionName":{"name":"mstore","nativeSrc":"4519:6:14","nodeType":"YulIdentifier","src":"4519:6:14"},"nativeSrc":"4519:15:14","nodeType":"YulFunctionCall","src":"4519:15:14"},"nativeSrc":"4519:15:14","nodeType":"YulExpressionStatement","src":"4519:15:14"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4550:1:14","nodeType":"YulLiteral","src":"4550:1:14","type":"","value":"0"},{"kind":"number","nativeSrc":"4553:4:14","nodeType":"YulLiteral","src":"4553:4:14","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"4543:6:14","nodeType":"YulIdentifier","src":"4543:6:14"},"nativeSrc":"4543:15:14","nodeType":"YulFunctionCall","src":"4543:15:14"},"nativeSrc":"4543:15:14","nodeType":"YulExpressionStatement","src":"4543:15:14"}]},"name":"panic_error_0x01","nativeSrc":"4384:180:14","nodeType":"YulFunctionDefinition","src":"4384:180:14"},{"body":{"nativeSrc":"4635:53:14","nodeType":"YulBlock","src":"4635:53:14","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4652:3:14","nodeType":"YulIdentifier","src":"4652:3:14"},{"arguments":[{"name":"value","nativeSrc":"4675:5:14","nodeType":"YulIdentifier","src":"4675:5:14"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"4657:17:14","nodeType":"YulIdentifier","src":"4657:17:14"},"nativeSrc":"4657:24:14","nodeType":"YulFunctionCall","src":"4657:24:14"}],"functionName":{"name":"mstore","nativeSrc":"4645:6:14","nodeType":"YulIdentifier","src":"4645:6:14"},"nativeSrc":"4645:37:14","nodeType":"YulFunctionCall","src":"4645:37:14"},"nativeSrc":"4645:37:14","nodeType":"YulExpressionStatement","src":"4645:37:14"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"4570:118:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4623:5:14","nodeType":"YulTypedName","src":"4623:5:14","type":""},{"name":"pos","nativeSrc":"4630:3:14","nodeType":"YulTypedName","src":"4630:3:14","type":""}],"src":"4570:118:14"},{"body":{"nativeSrc":"4820:206:14","nodeType":"YulBlock","src":"4820:206:14","statements":[{"nativeSrc":"4830:26:14","nodeType":"YulAssignment","src":"4830:26:14","value":{"arguments":[{"name":"headStart","nativeSrc":"4842:9:14","nodeType":"YulIdentifier","src":"4842:9:14"},{"kind":"number","nativeSrc":"4853:2:14","nodeType":"YulLiteral","src":"4853:2:14","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4838:3:14","nodeType":"YulIdentifier","src":"4838:3:14"},"nativeSrc":"4838:18:14","nodeType":"YulFunctionCall","src":"4838:18:14"},"variableNames":[{"name":"tail","nativeSrc":"4830:4:14","nodeType":"YulIdentifier","src":"4830:4:14"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"4910:6:14","nodeType":"YulIdentifier","src":"4910:6:14"},{"arguments":[{"name":"headStart","nativeSrc":"4923:9:14","nodeType":"YulIdentifier","src":"4923:9:14"},{"kind":"number","nativeSrc":"4934:1:14","nodeType":"YulLiteral","src":"4934:1:14","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4919:3:14","nodeType":"YulIdentifier","src":"4919:3:14"},"nativeSrc":"4919:17:14","nodeType":"YulFunctionCall","src":"4919:17:14"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"4866:43:14","nodeType":"YulIdentifier","src":"4866:43:14"},"nativeSrc":"4866:71:14","nodeType":"YulFunctionCall","src":"4866:71:14"},"nativeSrc":"4866:71:14","nodeType":"YulExpressionStatement","src":"4866:71:14"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"4991:6:14","nodeType":"YulIdentifier","src":"4991:6:14"},{"arguments":[{"name":"headStart","nativeSrc":"5004:9:14","nodeType":"YulIdentifier","src":"5004:9:14"},{"kind":"number","nativeSrc":"5015:2:14","nodeType":"YulLiteral","src":"5015:2:14","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5000:3:14","nodeType":"YulIdentifier","src":"5000:3:14"},"nativeSrc":"5000:18:14","nodeType":"YulFunctionCall","src":"5000:18:14"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"4947:43:14","nodeType":"YulIdentifier","src":"4947:43:14"},"nativeSrc":"4947:72:14","nodeType":"YulFunctionCall","src":"4947:72:14"},"nativeSrc":"4947:72:14","nodeType":"YulExpressionStatement","src":"4947:72:14"}]},"name":"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed","nativeSrc":"4694:332:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4784:9:14","nodeType":"YulTypedName","src":"4784:9:14","type":""},{"name":"value1","nativeSrc":"4796:6:14","nodeType":"YulTypedName","src":"4796:6:14","type":""},{"name":"value0","nativeSrc":"4804:6:14","nodeType":"YulTypedName","src":"4804:6:14","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4815:4:14","nodeType":"YulTypedName","src":"4815:4:14","type":""}],"src":"4694:332:14"},{"body":{"nativeSrc":"5128:73:14","nodeType":"YulBlock","src":"5128:73:14","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5145:3:14","nodeType":"YulIdentifier","src":"5145:3:14"},{"name":"length","nativeSrc":"5150:6:14","nodeType":"YulIdentifier","src":"5150:6:14"}],"functionName":{"name":"mstore","nativeSrc":"5138:6:14","nodeType":"YulIdentifier","src":"5138:6:14"},"nativeSrc":"5138:19:14","nodeType":"YulFunctionCall","src":"5138:19:14"},"nativeSrc":"5138:19:14","nodeType":"YulExpressionStatement","src":"5138:19:14"},{"nativeSrc":"5166:29:14","nodeType":"YulAssignment","src":"5166:29:14","value":{"arguments":[{"name":"pos","nativeSrc":"5185:3:14","nodeType":"YulIdentifier","src":"5185:3:14"},{"kind":"number","nativeSrc":"5190:4:14","nodeType":"YulLiteral","src":"5190:4:14","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5181:3:14","nodeType":"YulIdentifier","src":"5181:3:14"},"nativeSrc":"5181:14:14","nodeType":"YulFunctionCall","src":"5181:14:14"},"variableNames":[{"name":"updated_pos","nativeSrc":"5166:11:14","nodeType":"YulIdentifier","src":"5166:11:14"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"5032:169:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"5100:3:14","nodeType":"YulTypedName","src":"5100:3:14","type":""},{"name":"length","nativeSrc":"5105:6:14","nodeType":"YulTypedName","src":"5105:6:14","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"5116:11:14","nodeType":"YulTypedName","src":"5116:11:14","type":""}],"src":"5032:169:14"},{"body":{"nativeSrc":"5313:126:14","nodeType":"YulBlock","src":"5313:126:14","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"5335:6:14","nodeType":"YulIdentifier","src":"5335:6:14"},{"kind":"number","nativeSrc":"5343:1:14","nodeType":"YulLiteral","src":"5343:1:14","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5331:3:14","nodeType":"YulIdentifier","src":"5331:3:14"},"nativeSrc":"5331:14:14","nodeType":"YulFunctionCall","src":"5331:14:14"},{"hexValue":"455243313936373a206e657720696d706c656d656e746174696f6e206973206e","kind":"string","nativeSrc":"5347:34:14","nodeType":"YulLiteral","src":"5347:34:14","type":"","value":"ERC1967: new implementation is n"}],"functionName":{"name":"mstore","nativeSrc":"5324:6:14","nodeType":"YulIdentifier","src":"5324:6:14"},"nativeSrc":"5324:58:14","nodeType":"YulFunctionCall","src":"5324:58:14"},"nativeSrc":"5324:58:14","nodeType":"YulExpressionStatement","src":"5324:58:14"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"5403:6:14","nodeType":"YulIdentifier","src":"5403:6:14"},{"kind":"number","nativeSrc":"5411:2:14","nodeType":"YulLiteral","src":"5411:2:14","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5399:3:14","nodeType":"YulIdentifier","src":"5399:3:14"},"nativeSrc":"5399:15:14","nodeType":"YulFunctionCall","src":"5399:15:14"},{"hexValue":"6f74206120636f6e7472616374","kind":"string","nativeSrc":"5416:15:14","nodeType":"YulLiteral","src":"5416:15:14","type":"","value":"ot a contract"}],"functionName":{"name":"mstore","nativeSrc":"5392:6:14","nodeType":"YulIdentifier","src":"5392:6:14"},"nativeSrc":"5392:40:14","nodeType":"YulFunctionCall","src":"5392:40:14"},"nativeSrc":"5392:40:14","nodeType":"YulExpressionStatement","src":"5392:40:14"}]},"name":"store_literal_in_memory_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65","nativeSrc":"5207:232:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"5305:6:14","nodeType":"YulTypedName","src":"5305:6:14","type":""}],"src":"5207:232:14"},{"body":{"nativeSrc":"5591:220:14","nodeType":"YulBlock","src":"5591:220:14","statements":[{"nativeSrc":"5601:74:14","nodeType":"YulAssignment","src":"5601:74:14","value":{"arguments":[{"name":"pos","nativeSrc":"5667:3:14","nodeType":"YulIdentifier","src":"5667:3:14"},{"kind":"number","nativeSrc":"5672:2:14","nodeType":"YulLiteral","src":"5672:2:14","type":"","value":"45"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"5608:58:14","nodeType":"YulIdentifier","src":"5608:58:14"},"nativeSrc":"5608:67:14","nodeType":"YulFunctionCall","src":"5608:67:14"},"variableNames":[{"name":"pos","nativeSrc":"5601:3:14","nodeType":"YulIdentifier","src":"5601:3:14"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"5773:3:14","nodeType":"YulIdentifier","src":"5773:3:14"}],"functionName":{"name":"store_literal_in_memory_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65","nativeSrc":"5684:88:14","nodeType":"YulIdentifier","src":"5684:88:14"},"nativeSrc":"5684:93:14","nodeType":"YulFunctionCall","src":"5684:93:14"},"nativeSrc":"5684:93:14","nodeType":"YulExpressionStatement","src":"5684:93:14"},{"nativeSrc":"5786:19:14","nodeType":"YulAssignment","src":"5786:19:14","value":{"arguments":[{"name":"pos","nativeSrc":"5797:3:14","nodeType":"YulIdentifier","src":"5797:3:14"},{"kind":"number","nativeSrc":"5802:2:14","nodeType":"YulLiteral","src":"5802:2:14","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5793:3:14","nodeType":"YulIdentifier","src":"5793:3:14"},"nativeSrc":"5793:12:14","nodeType":"YulFunctionCall","src":"5793:12:14"},"variableNames":[{"name":"end","nativeSrc":"5786:3:14","nodeType":"YulIdentifier","src":"5786:3:14"}]}]},"name":"abi_encode_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65_to_t_string_memory_ptr_fromStack","nativeSrc":"5445:366:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"5579:3:14","nodeType":"YulTypedName","src":"5579:3:14","type":""}],"returnVariables":[{"name":"end","nativeSrc":"5587:3:14","nodeType":"YulTypedName","src":"5587:3:14","type":""}],"src":"5445:366:14"},{"body":{"nativeSrc":"5988:248:14","nodeType":"YulBlock","src":"5988:248:14","statements":[{"nativeSrc":"5998:26:14","nodeType":"YulAssignment","src":"5998:26:14","value":{"arguments":[{"name":"headStart","nativeSrc":"6010:9:14","nodeType":"YulIdentifier","src":"6010:9:14"},{"kind":"number","nativeSrc":"6021:2:14","nodeType":"YulLiteral","src":"6021:2:14","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6006:3:14","nodeType":"YulIdentifier","src":"6006:3:14"},"nativeSrc":"6006:18:14","nodeType":"YulFunctionCall","src":"6006:18:14"},"variableNames":[{"name":"tail","nativeSrc":"5998:4:14","nodeType":"YulIdentifier","src":"5998:4:14"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6045:9:14","nodeType":"YulIdentifier","src":"6045:9:14"},{"kind":"number","nativeSrc":"6056:1:14","nodeType":"YulLiteral","src":"6056:1:14","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6041:3:14","nodeType":"YulIdentifier","src":"6041:3:14"},"nativeSrc":"6041:17:14","nodeType":"YulFunctionCall","src":"6041:17:14"},{"arguments":[{"name":"tail","nativeSrc":"6064:4:14","nodeType":"YulIdentifier","src":"6064:4:14"},{"name":"headStart","nativeSrc":"6070:9:14","nodeType":"YulIdentifier","src":"6070:9:14"}],"functionName":{"name":"sub","nativeSrc":"6060:3:14","nodeType":"YulIdentifier","src":"6060:3:14"},"nativeSrc":"6060:20:14","nodeType":"YulFunctionCall","src":"6060:20:14"}],"functionName":{"name":"mstore","nativeSrc":"6034:6:14","nodeType":"YulIdentifier","src":"6034:6:14"},"nativeSrc":"6034:47:14","nodeType":"YulFunctionCall","src":"6034:47:14"},"nativeSrc":"6034:47:14","nodeType":"YulExpressionStatement","src":"6034:47:14"},{"nativeSrc":"6090:139:14","nodeType":"YulAssignment","src":"6090:139:14","value":{"arguments":[{"name":"tail","nativeSrc":"6224:4:14","nodeType":"YulIdentifier","src":"6224:4:14"}],"functionName":{"name":"abi_encode_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65_to_t_string_memory_ptr_fromStack","nativeSrc":"6098:124:14","nodeType":"YulIdentifier","src":"6098:124:14"},"nativeSrc":"6098:131:14","nodeType":"YulFunctionCall","src":"6098:131:14"},"variableNames":[{"name":"tail","nativeSrc":"6090:4:14","nodeType":"YulIdentifier","src":"6090:4:14"}]}]},"name":"abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"5817:419:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5968:9:14","nodeType":"YulTypedName","src":"5968:9:14","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5983:4:14","nodeType":"YulTypedName","src":"5983:4:14","type":""}],"src":"5817:419:14"},{"body":{"nativeSrc":"6348:119:14","nodeType":"YulBlock","src":"6348:119:14","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"6370:6:14","nodeType":"YulIdentifier","src":"6370:6:14"},{"kind":"number","nativeSrc":"6378:1:14","nodeType":"YulLiteral","src":"6378:1:14","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6366:3:14","nodeType":"YulIdentifier","src":"6366:3:14"},"nativeSrc":"6366:14:14","nodeType":"YulFunctionCall","src":"6366:14:14"},{"hexValue":"416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f","kind":"string","nativeSrc":"6382:34:14","nodeType":"YulLiteral","src":"6382:34:14","type":"","value":"Address: delegate call to non-co"}],"functionName":{"name":"mstore","nativeSrc":"6359:6:14","nodeType":"YulIdentifier","src":"6359:6:14"},"nativeSrc":"6359:58:14","nodeType":"YulFunctionCall","src":"6359:58:14"},"nativeSrc":"6359:58:14","nodeType":"YulExpressionStatement","src":"6359:58:14"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"6438:6:14","nodeType":"YulIdentifier","src":"6438:6:14"},{"kind":"number","nativeSrc":"6446:2:14","nodeType":"YulLiteral","src":"6446:2:14","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6434:3:14","nodeType":"YulIdentifier","src":"6434:3:14"},"nativeSrc":"6434:15:14","nodeType":"YulFunctionCall","src":"6434:15:14"},{"hexValue":"6e7472616374","kind":"string","nativeSrc":"6451:8:14","nodeType":"YulLiteral","src":"6451:8:14","type":"","value":"ntract"}],"functionName":{"name":"mstore","nativeSrc":"6427:6:14","nodeType":"YulIdentifier","src":"6427:6:14"},"nativeSrc":"6427:33:14","nodeType":"YulFunctionCall","src":"6427:33:14"},"nativeSrc":"6427:33:14","nodeType":"YulExpressionStatement","src":"6427:33:14"}]},"name":"store_literal_in_memory_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520","nativeSrc":"6242:225:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"6340:6:14","nodeType":"YulTypedName","src":"6340:6:14","type":""}],"src":"6242:225:14"},{"body":{"nativeSrc":"6619:220:14","nodeType":"YulBlock","src":"6619:220:14","statements":[{"nativeSrc":"6629:74:14","nodeType":"YulAssignment","src":"6629:74:14","value":{"arguments":[{"name":"pos","nativeSrc":"6695:3:14","nodeType":"YulIdentifier","src":"6695:3:14"},{"kind":"number","nativeSrc":"6700:2:14","nodeType":"YulLiteral","src":"6700:2:14","type":"","value":"38"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"6636:58:14","nodeType":"YulIdentifier","src":"6636:58:14"},"nativeSrc":"6636:67:14","nodeType":"YulFunctionCall","src":"6636:67:14"},"variableNames":[{"name":"pos","nativeSrc":"6629:3:14","nodeType":"YulIdentifier","src":"6629:3:14"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"6801:3:14","nodeType":"YulIdentifier","src":"6801:3:14"}],"functionName":{"name":"store_literal_in_memory_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520","nativeSrc":"6712:88:14","nodeType":"YulIdentifier","src":"6712:88:14"},"nativeSrc":"6712:93:14","nodeType":"YulFunctionCall","src":"6712:93:14"},"nativeSrc":"6712:93:14","nodeType":"YulExpressionStatement","src":"6712:93:14"},{"nativeSrc":"6814:19:14","nodeType":"YulAssignment","src":"6814:19:14","value":{"arguments":[{"name":"pos","nativeSrc":"6825:3:14","nodeType":"YulIdentifier","src":"6825:3:14"},{"kind":"number","nativeSrc":"6830:2:14","nodeType":"YulLiteral","src":"6830:2:14","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"6821:3:14","nodeType":"YulIdentifier","src":"6821:3:14"},"nativeSrc":"6821:12:14","nodeType":"YulFunctionCall","src":"6821:12:14"},"variableNames":[{"name":"end","nativeSrc":"6814:3:14","nodeType":"YulIdentifier","src":"6814:3:14"}]}]},"name":"abi_encode_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520_to_t_string_memory_ptr_fromStack","nativeSrc":"6473:366:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"6607:3:14","nodeType":"YulTypedName","src":"6607:3:14","type":""}],"returnVariables":[{"name":"end","nativeSrc":"6615:3:14","nodeType":"YulTypedName","src":"6615:3:14","type":""}],"src":"6473:366:14"},{"body":{"nativeSrc":"7016:248:14","nodeType":"YulBlock","src":"7016:248:14","statements":[{"nativeSrc":"7026:26:14","nodeType":"YulAssignment","src":"7026:26:14","value":{"arguments":[{"name":"headStart","nativeSrc":"7038:9:14","nodeType":"YulIdentifier","src":"7038:9:14"},{"kind":"number","nativeSrc":"7049:2:14","nodeType":"YulLiteral","src":"7049:2:14","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7034:3:14","nodeType":"YulIdentifier","src":"7034:3:14"},"nativeSrc":"7034:18:14","nodeType":"YulFunctionCall","src":"7034:18:14"},"variableNames":[{"name":"tail","nativeSrc":"7026:4:14","nodeType":"YulIdentifier","src":"7026:4:14"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7073:9:14","nodeType":"YulIdentifier","src":"7073:9:14"},{"kind":"number","nativeSrc":"7084:1:14","nodeType":"YulLiteral","src":"7084:1:14","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"7069:3:14","nodeType":"YulIdentifier","src":"7069:3:14"},"nativeSrc":"7069:17:14","nodeType":"YulFunctionCall","src":"7069:17:14"},{"arguments":[{"name":"tail","nativeSrc":"7092:4:14","nodeType":"YulIdentifier","src":"7092:4:14"},{"name":"headStart","nativeSrc":"7098:9:14","nodeType":"YulIdentifier","src":"7098:9:14"}],"functionName":{"name":"sub","nativeSrc":"7088:3:14","nodeType":"YulIdentifier","src":"7088:3:14"},"nativeSrc":"7088:20:14","nodeType":"YulFunctionCall","src":"7088:20:14"}],"functionName":{"name":"mstore","nativeSrc":"7062:6:14","nodeType":"YulIdentifier","src":"7062:6:14"},"nativeSrc":"7062:47:14","nodeType":"YulFunctionCall","src":"7062:47:14"},"nativeSrc":"7062:47:14","nodeType":"YulExpressionStatement","src":"7062:47:14"},{"nativeSrc":"7118:139:14","nodeType":"YulAssignment","src":"7118:139:14","value":{"arguments":[{"name":"tail","nativeSrc":"7252:4:14","nodeType":"YulIdentifier","src":"7252:4:14"}],"functionName":{"name":"abi_encode_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520_to_t_string_memory_ptr_fromStack","nativeSrc":"7126:124:14","nodeType":"YulIdentifier","src":"7126:124:14"},"nativeSrc":"7126:131:14","nodeType":"YulFunctionCall","src":"7126:131:14"},"variableNames":[{"name":"tail","nativeSrc":"7118:4:14","nodeType":"YulIdentifier","src":"7118:4:14"}]}]},"name":"abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"6845:419:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6996:9:14","nodeType":"YulTypedName","src":"6996:9:14","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7011:4:14","nodeType":"YulTypedName","src":"7011:4:14","type":""}],"src":"6845:419:14"},{"body":{"nativeSrc":"7328:40:14","nodeType":"YulBlock","src":"7328:40:14","statements":[{"nativeSrc":"7339:22:14","nodeType":"YulAssignment","src":"7339:22:14","value":{"arguments":[{"name":"value","nativeSrc":"7355:5:14","nodeType":"YulIdentifier","src":"7355:5:14"}],"functionName":{"name":"mload","nativeSrc":"7349:5:14","nodeType":"YulIdentifier","src":"7349:5:14"},"nativeSrc":"7349:12:14","nodeType":"YulFunctionCall","src":"7349:12:14"},"variableNames":[{"name":"length","nativeSrc":"7339:6:14","nodeType":"YulIdentifier","src":"7339:6:14"}]}]},"name":"array_length_t_bytes_memory_ptr","nativeSrc":"7270:98:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7311:5:14","nodeType":"YulTypedName","src":"7311:5:14","type":""}],"returnVariables":[{"name":"length","nativeSrc":"7321:6:14","nodeType":"YulTypedName","src":"7321:6:14","type":""}],"src":"7270:98:14"},{"body":{"nativeSrc":"7487:34:14","nodeType":"YulBlock","src":"7487:34:14","statements":[{"nativeSrc":"7497:18:14","nodeType":"YulAssignment","src":"7497:18:14","value":{"name":"pos","nativeSrc":"7512:3:14","nodeType":"YulIdentifier","src":"7512:3:14"},"variableNames":[{"name":"updated_pos","nativeSrc":"7497:11:14","nodeType":"YulIdentifier","src":"7497:11:14"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"7374:147:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"7459:3:14","nodeType":"YulTypedName","src":"7459:3:14","type":""},{"name":"length","nativeSrc":"7464:6:14","nodeType":"YulTypedName","src":"7464:6:14","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"7475:11:14","nodeType":"YulTypedName","src":"7475:11:14","type":""}],"src":"7374:147:14"},{"body":{"nativeSrc":"7635:278:14","nodeType":"YulBlock","src":"7635:278:14","statements":[{"nativeSrc":"7645:52:14","nodeType":"YulVariableDeclaration","src":"7645:52:14","value":{"arguments":[{"name":"value","nativeSrc":"7691:5:14","nodeType":"YulIdentifier","src":"7691:5:14"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"7659:31:14","nodeType":"YulIdentifier","src":"7659:31:14"},"nativeSrc":"7659:38:14","nodeType":"YulFunctionCall","src":"7659:38:14"},"variables":[{"name":"length","nativeSrc":"7649:6:14","nodeType":"YulTypedName","src":"7649:6:14","type":""}]},{"nativeSrc":"7706:95:14","nodeType":"YulAssignment","src":"7706:95:14","value":{"arguments":[{"name":"pos","nativeSrc":"7789:3:14","nodeType":"YulIdentifier","src":"7789:3:14"},{"name":"length","nativeSrc":"7794:6:14","nodeType":"YulIdentifier","src":"7794:6:14"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"7713:75:14","nodeType":"YulIdentifier","src":"7713:75:14"},"nativeSrc":"7713:88:14","nodeType":"YulFunctionCall","src":"7713:88:14"},"variableNames":[{"name":"pos","nativeSrc":"7706:3:14","nodeType":"YulIdentifier","src":"7706:3:14"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7849:5:14","nodeType":"YulIdentifier","src":"7849:5:14"},{"kind":"number","nativeSrc":"7856:4:14","nodeType":"YulLiteral","src":"7856:4:14","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7845:3:14","nodeType":"YulIdentifier","src":"7845:3:14"},"nativeSrc":"7845:16:14","nodeType":"YulFunctionCall","src":"7845:16:14"},{"name":"pos","nativeSrc":"7863:3:14","nodeType":"YulIdentifier","src":"7863:3:14"},{"name":"length","nativeSrc":"7868:6:14","nodeType":"YulIdentifier","src":"7868:6:14"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"7810:34:14","nodeType":"YulIdentifier","src":"7810:34:14"},"nativeSrc":"7810:65:14","nodeType":"YulFunctionCall","src":"7810:65:14"},"nativeSrc":"7810:65:14","nodeType":"YulExpressionStatement","src":"7810:65:14"},{"nativeSrc":"7884:23:14","nodeType":"YulAssignment","src":"7884:23:14","value":{"arguments":[{"name":"pos","nativeSrc":"7895:3:14","nodeType":"YulIdentifier","src":"7895:3:14"},{"name":"length","nativeSrc":"7900:6:14","nodeType":"YulIdentifier","src":"7900:6:14"}],"functionName":{"name":"add","nativeSrc":"7891:3:14","nodeType":"YulIdentifier","src":"7891:3:14"},"nativeSrc":"7891:16:14","nodeType":"YulFunctionCall","src":"7891:16:14"},"variableNames":[{"name":"end","nativeSrc":"7884:3:14","nodeType":"YulIdentifier","src":"7884:3:14"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"7527:386:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7616:5:14","nodeType":"YulTypedName","src":"7616:5:14","type":""},{"name":"pos","nativeSrc":"7623:3:14","nodeType":"YulTypedName","src":"7623:3:14","type":""}],"returnVariables":[{"name":"end","nativeSrc":"7631:3:14","nodeType":"YulTypedName","src":"7631:3:14","type":""}],"src":"7527:386:14"},{"body":{"nativeSrc":"8053:137:14","nodeType":"YulBlock","src":"8053:137:14","statements":[{"nativeSrc":"8064:100:14","nodeType":"YulAssignment","src":"8064:100:14","value":{"arguments":[{"name":"value0","nativeSrc":"8151:6:14","nodeType":"YulIdentifier","src":"8151:6:14"},{"name":"pos","nativeSrc":"8160:3:14","nodeType":"YulIdentifier","src":"8160:3:14"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"8071:79:14","nodeType":"YulIdentifier","src":"8071:79:14"},"nativeSrc":"8071:93:14","nodeType":"YulFunctionCall","src":"8071:93:14"},"variableNames":[{"name":"pos","nativeSrc":"8064:3:14","nodeType":"YulIdentifier","src":"8064:3:14"}]},{"nativeSrc":"8174:10:14","nodeType":"YulAssignment","src":"8174:10:14","value":{"name":"pos","nativeSrc":"8181:3:14","nodeType":"YulIdentifier","src":"8181:3:14"},"variableNames":[{"name":"end","nativeSrc":"8174:3:14","nodeType":"YulIdentifier","src":"8174:3:14"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"7919:271:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"8032:3:14","nodeType":"YulTypedName","src":"8032:3:14","type":""},{"name":"value0","nativeSrc":"8038:6:14","nodeType":"YulTypedName","src":"8038:6:14","type":""}],"returnVariables":[{"name":"end","nativeSrc":"8049:3:14","nodeType":"YulTypedName","src":"8049:3:14","type":""}],"src":"7919:271:14"},{"body":{"nativeSrc":"8255:40:14","nodeType":"YulBlock","src":"8255:40:14","statements":[{"nativeSrc":"8266:22:14","nodeType":"YulAssignment","src":"8266:22:14","value":{"arguments":[{"name":"value","nativeSrc":"8282:5:14","nodeType":"YulIdentifier","src":"8282:5:14"}],"functionName":{"name":"mload","nativeSrc":"8276:5:14","nodeType":"YulIdentifier","src":"8276:5:14"},"nativeSrc":"8276:12:14","nodeType":"YulFunctionCall","src":"8276:12:14"},"variableNames":[{"name":"length","nativeSrc":"8266:6:14","nodeType":"YulIdentifier","src":"8266:6:14"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"8196:99:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8238:5:14","nodeType":"YulTypedName","src":"8238:5:14","type":""}],"returnVariables":[{"name":"length","nativeSrc":"8248:6:14","nodeType":"YulTypedName","src":"8248:6:14","type":""}],"src":"8196:99:14"},{"body":{"nativeSrc":"8393:285:14","nodeType":"YulBlock","src":"8393:285:14","statements":[{"nativeSrc":"8403:53:14","nodeType":"YulVariableDeclaration","src":"8403:53:14","value":{"arguments":[{"name":"value","nativeSrc":"8450:5:14","nodeType":"YulIdentifier","src":"8450:5:14"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"8417:32:14","nodeType":"YulIdentifier","src":"8417:32:14"},"nativeSrc":"8417:39:14","nodeType":"YulFunctionCall","src":"8417:39:14"},"variables":[{"name":"length","nativeSrc":"8407:6:14","nodeType":"YulTypedName","src":"8407:6:14","type":""}]},{"nativeSrc":"8465:78:14","nodeType":"YulAssignment","src":"8465:78:14","value":{"arguments":[{"name":"pos","nativeSrc":"8531:3:14","nodeType":"YulIdentifier","src":"8531:3:14"},{"name":"length","nativeSrc":"8536:6:14","nodeType":"YulIdentifier","src":"8536:6:14"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"8472:58:14","nodeType":"YulIdentifier","src":"8472:58:14"},"nativeSrc":"8472:71:14","nodeType":"YulFunctionCall","src":"8472:71:14"},"variableNames":[{"name":"pos","nativeSrc":"8465:3:14","nodeType":"YulIdentifier","src":"8465:3:14"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"8591:5:14","nodeType":"YulIdentifier","src":"8591:5:14"},{"kind":"number","nativeSrc":"8598:4:14","nodeType":"YulLiteral","src":"8598:4:14","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8587:3:14","nodeType":"YulIdentifier","src":"8587:3:14"},"nativeSrc":"8587:16:14","nodeType":"YulFunctionCall","src":"8587:16:14"},{"name":"pos","nativeSrc":"8605:3:14","nodeType":"YulIdentifier","src":"8605:3:14"},{"name":"length","nativeSrc":"8610:6:14","nodeType":"YulIdentifier","src":"8610:6:14"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"8552:34:14","nodeType":"YulIdentifier","src":"8552:34:14"},"nativeSrc":"8552:65:14","nodeType":"YulFunctionCall","src":"8552:65:14"},"nativeSrc":"8552:65:14","nodeType":"YulExpressionStatement","src":"8552:65:14"},{"nativeSrc":"8626:46:14","nodeType":"YulAssignment","src":"8626:46:14","value":{"arguments":[{"name":"pos","nativeSrc":"8637:3:14","nodeType":"YulIdentifier","src":"8637:3:14"},{"arguments":[{"name":"length","nativeSrc":"8664:6:14","nodeType":"YulIdentifier","src":"8664:6:14"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"8642:21:14","nodeType":"YulIdentifier","src":"8642:21:14"},"nativeSrc":"8642:29:14","nodeType":"YulFunctionCall","src":"8642:29:14"}],"functionName":{"name":"add","nativeSrc":"8633:3:14","nodeType":"YulIdentifier","src":"8633:3:14"},"nativeSrc":"8633:39:14","nodeType":"YulFunctionCall","src":"8633:39:14"},"variableNames":[{"name":"end","nativeSrc":"8626:3:14","nodeType":"YulIdentifier","src":"8626:3:14"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"8301:377:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8374:5:14","nodeType":"YulTypedName","src":"8374:5:14","type":""},{"name":"pos","nativeSrc":"8381:3:14","nodeType":"YulTypedName","src":"8381:3:14","type":""}],"returnVariables":[{"name":"end","nativeSrc":"8389:3:14","nodeType":"YulTypedName","src":"8389:3:14","type":""}],"src":"8301:377:14"},{"body":{"nativeSrc":"8802:195:14","nodeType":"YulBlock","src":"8802:195:14","statements":[{"nativeSrc":"8812:26:14","nodeType":"YulAssignment","src":"8812:26:14","value":{"arguments":[{"name":"headStart","nativeSrc":"8824:9:14","nodeType":"YulIdentifier","src":"8824:9:14"},{"kind":"number","nativeSrc":"8835:2:14","nodeType":"YulLiteral","src":"8835:2:14","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8820:3:14","nodeType":"YulIdentifier","src":"8820:3:14"},"nativeSrc":"8820:18:14","nodeType":"YulFunctionCall","src":"8820:18:14"},"variableNames":[{"name":"tail","nativeSrc":"8812:4:14","nodeType":"YulIdentifier","src":"8812:4:14"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8859:9:14","nodeType":"YulIdentifier","src":"8859:9:14"},{"kind":"number","nativeSrc":"8870:1:14","nodeType":"YulLiteral","src":"8870:1:14","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"8855:3:14","nodeType":"YulIdentifier","src":"8855:3:14"},"nativeSrc":"8855:17:14","nodeType":"YulFunctionCall","src":"8855:17:14"},{"arguments":[{"name":"tail","nativeSrc":"8878:4:14","nodeType":"YulIdentifier","src":"8878:4:14"},{"name":"headStart","nativeSrc":"8884:9:14","nodeType":"YulIdentifier","src":"8884:9:14"}],"functionName":{"name":"sub","nativeSrc":"8874:3:14","nodeType":"YulIdentifier","src":"8874:3:14"},"nativeSrc":"8874:20:14","nodeType":"YulFunctionCall","src":"8874:20:14"}],"functionName":{"name":"mstore","nativeSrc":"8848:6:14","nodeType":"YulIdentifier","src":"8848:6:14"},"nativeSrc":"8848:47:14","nodeType":"YulFunctionCall","src":"8848:47:14"},"nativeSrc":"8848:47:14","nodeType":"YulExpressionStatement","src":"8848:47:14"},{"nativeSrc":"8904:86:14","nodeType":"YulAssignment","src":"8904:86:14","value":{"arguments":[{"name":"value0","nativeSrc":"8976:6:14","nodeType":"YulIdentifier","src":"8976:6:14"},{"name":"tail","nativeSrc":"8985:4:14","nodeType":"YulIdentifier","src":"8985:4:14"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"8912:63:14","nodeType":"YulIdentifier","src":"8912:63:14"},"nativeSrc":"8912:78:14","nodeType":"YulFunctionCall","src":"8912:78:14"},"variableNames":[{"name":"tail","nativeSrc":"8904:4:14","nodeType":"YulIdentifier","src":"8904:4:14"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"8684:313:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8774:9:14","nodeType":"YulTypedName","src":"8774:9:14","type":""},{"name":"value0","nativeSrc":"8786:6:14","nodeType":"YulTypedName","src":"8786:6:14","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8797:4:14","nodeType":"YulTypedName","src":"8797:4:14","type":""}],"src":"8684:313:14"}]},"contents":"{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_address(value)\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_bytes_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n mcopy(dst, src, length)\n mstore(add(dst, length), 0)\n\n }\n\n function abi_decode_available_length_t_bytes_memory_ptr_fromMemory(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_bytes_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_memory_to_memory_with_cleanup(src, dst, length)\n }\n\n // bytes\n function abi_decode_t_bytes_memory_ptr_fromMemory(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := mload(offset)\n array := abi_decode_available_length_t_bytes_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_addresst_addresst_bytes_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := mload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value2 := abi_decode_t_bytes_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n diff := sub(x, y)\n\n if gt(diff, x) { panic_error_0x11() }\n\n }\n\n function panic_error_0x01() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x01)\n revert(0, 0x24)\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function store_literal_in_memory_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC1967: new implementation is n\")\n\n mstore(add(memPtr, 32), \"ot a contract\")\n\n }\n\n function abi_encode_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 45)\n store_literal_in_memory_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520(memPtr) {\n\n mstore(add(memPtr, 0), \"Address: delegate call to non-co\")\n\n mstore(add(memPtr, 32), \"ntract\")\n\n }\n\n function abi_encode_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n store_literal_in_memory_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, length)\n }\n\n function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value0) -> end {\n\n pos := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n end := pos\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n}\n","id":14,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60a0604052604051610e6b380380610e6b83398101604081905261002291610414565b828161004f60017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd61048d565b5f80516020610e248339815191521461006a5761006a6104a0565b61007582825f61011f565b506100a3905060017fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610461048d565b5f80516020610e04833981519152146100be576100be6104a0565b6001600160a01b0382166080525f80516020610e048339815191528281556040517f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f9061010e905f9086906104c3565b60405180910390a1505050506105fa565b6101288361014a565b5f825111806101345750805b15610145576101438383610189565b505b505050565b610153816101b7565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606101ae8383604051806060016040528060278152602001610e4460279139610215565b90505b92915050565b6001600160a01b0381163b6101e75760405162461bcd60e51b81526004016101de9061052a565b60405180910390fd5b5f80516020610e2483398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b60606001600160a01b0384163b61023e5760405162461bcd60e51b81526004016101de9061057c565b5f80856001600160a01b03168560405161025891906105ad565b5f60405180830381855af49150503d805f8114610290576040519150601f19603f3d011682016040523d82523d5f602084013e610295565b606091505b5090925090506102a68282866102b2565b925050505b9392505050565b606083156102c15750816102ab565b8251156102d15782518084602001fd5b8160405162461bcd60e51b81526004016101de91906105e9565b5f6001600160a01b0382166101b1565b610304816102eb565b811461030e575f80fd5b50565b80516101b1816102fb565b634e487b7160e01b5f52604160045260245ffd5b601f19601f83011681018181106001600160401b03821117156103555761035561031c565b6040525050565b5f61036660405190565b90506103728282610330565b919050565b5f6001600160401b0382111561038f5761038f61031c565b601f19601f83011660200192915050565b8281835e505f910152565b5f6103bd6103b884610377565b61035c565b9050828152602081018484840111156103d7576103d75f80fd5b6103e28482856103a0565b509392505050565b5f82601f8301126103fc576103fc5f80fd5b815161040c8482602086016103ab565b949350505050565b5f805f60608486031215610429576104295f80fd5b5f6104348686610311565b935050602061044586828701610311565b92505060408401516001600160401b03811115610463576104635f80fd5b61046f868287016103ea565b9150509250925092565b634e487b7160e01b5f52601160045260245ffd5b818103818111156101b1576101b1610479565b634e487b7160e01b5f52600160045260245ffd5b6104bd816102eb565b82525050565b604081016104d182856104b4565b6102ab60208301846104b4565b602d81525f602082017f455243313936373a206e657720696d706c656d656e746174696f6e206973206e81526c1bdd08184818dbdb9d1c9858dd609a1b602082015291505b5060400190565b602080825281016101b1816104de565b602681525f602082017f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f8152651b9d1c9858dd60d21b60208201529150610523565b602080825281016101b18161053a565b5f610595825190565b6105a38185602086016103a0565b9290920192915050565b5f6102ab828461058c565b5f6105c1825190565b8084526020840193506105d88185602086016103a0565b601f01601f19169290920192915050565b602080825281016101ae81846105b8565b6080516107d06106345f395f818160e501528181610139015281816101b90152818161020201528181610233015261025701526107d05ff3fe608060405260043610610042575f3560e01c80633659cfe6146100595780634f1ef286146100785780635c60da1b1461008b578063f851a440146100b557610051565b366100515761004f6100c9565b005b61004f6100c9565b348015610064575f80fd5b5061004f6100733660046104f8565b6100e3565b61004f61008636600461056c565b610137565b348015610096575f80fd5b5061009f6101b6565b6040516100ac91906105d2565b60405180910390f35b3480156100c0575f80fd5b5061009f6101ff565b6100d1610255565b6100e16100dc6102a6565b6102d8565b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361012f5761012c8160405180602001604052805f8152505f6102f6565b50565b61012c6100c9565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036101ae576101a98383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250600192506102f6915050565b505050565b6101a96100c9565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036101f4576101ef6102a6565b905090565b6101fc6100c9565b90565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036101f457507f000000000000000000000000000000000000000000000000000000000000000090565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036100e15760405162461bcd60e51b815260040161029d906105e0565b60405180910390fd5b5f6101ef7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b365f80375f80365f845af43d5f803e8080156102f2573d5ff35b3d5ffd5b6102ff83610320565b5f8251118061030b5750805b156101a95761031a838361035f565b50505050565b6103298161038d565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606103848383604051806060016040528060278152602001610774602791396103f5565b90505b92915050565b6001600160a01b0381163b6103b45760405162461bcd60e51b815260040161029d90610698565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b60606001600160a01b0384163b61041e5760405162461bcd60e51b815260040161029d906106ea565b5f80856001600160a01b0316856040516104389190610726565b5f60405180830381855af49150503d805f8114610470576040519150601f19603f3d011682016040523d82523d5f602084013e610475565b606091505b5091509150610485828286610491565b925050505b9392505050565b606083156104a057508161048a565b8251156104b05782518084602001fd5b8160405162461bcd60e51b815260040161029d9190610762565b5f6001600160a01b038216610387565b6104e3816104ca565b811461012c575f80fd5b8035610387816104da565b5f6020828403121561050b5761050b5f80fd5b5f61051684846104ed565b949350505050565b5f8083601f840112610531576105315f80fd5b50813567ffffffffffffffff81111561054b5761054b5f80fd5b602083019150836001820283011115610565576105655f80fd5b9250929050565b5f805f60408486031215610581576105815f80fd5b5f61058c86866104ed565b935050602084013567ffffffffffffffff8111156105ab576105ab5f80fd5b6105b78682870161051e565b92509250509250925092565b6105cc816104ca565b82525050565b6020810161038782846105c3565b6020808252810161038781604281527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60208201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267604082015261195d60f21b606082015260800190565b602d81525f602082017f455243313936373a206e657720696d706c656d656e746174696f6e206973206e81526c1bdd08184818dbdb9d1c9858dd609a1b602082015291505b5060400190565b602080825281016103878161064c565b602681525f602082017f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f8152651b9d1c9858dd60d21b60208201529150610691565b60208082528101610387816106a8565b8281835e505f910152565b5f61070e825190565b61071c8185602086016106fa565b9290920192915050565b5f61048a8284610705565b5f61073a825190565b8084526020840193506107518185602086016106fa565b601f01601f19169290920192915050565b60208082528101610384818461073156fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122070dadc04f09b7d1888a2301532e36ca47743df400bf011def63b2d9d260ee30e64736f6c63430008190033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564","opcodes":"PUSH1 0xA0 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0xE6B CODESIZE SUB DUP1 PUSH2 0xE6B DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x22 SWAP2 PUSH2 0x414 JUMP JUMPDEST DUP3 DUP2 PUSH2 0x4F PUSH1 0x1 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBD PUSH2 0x48D JUMP JUMPDEST PUSH0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xE24 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ PUSH2 0x6A JUMPI PUSH2 0x6A PUSH2 0x4A0 JUMP JUMPDEST PUSH2 0x75 DUP3 DUP3 PUSH0 PUSH2 0x11F JUMP JUMPDEST POP PUSH2 0xA3 SWAP1 POP PUSH1 0x1 PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6104 PUSH2 0x48D JUMP JUMPDEST PUSH0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xE04 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ PUSH2 0xBE JUMPI PUSH2 0xBE PUSH2 0x4A0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x80 MSTORE PUSH0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xE04 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP3 DUP2 SSTORE PUSH1 0x40 MLOAD PUSH32 0x7E644D79422F17C01E4894B5F4F588D331EBFA28653D42AE832DC59E38C9798F SWAP1 PUSH2 0x10E SWAP1 PUSH0 SWAP1 DUP7 SWAP1 PUSH2 0x4C3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP PUSH2 0x5FA JUMP JUMPDEST PUSH2 0x128 DUP4 PUSH2 0x14A JUMP JUMPDEST PUSH0 DUP3 MLOAD GT DUP1 PUSH2 0x134 JUMPI POP DUP1 JUMPDEST ISZERO PUSH2 0x145 JUMPI PUSH2 0x143 DUP4 DUP4 PUSH2 0x189 JUMP JUMPDEST POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x153 DUP2 PUSH2 0x1B7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1AE DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xE44 PUSH1 0x27 SWAP2 CODECOPY PUSH2 0x215 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE PUSH2 0x1E7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1DE SWAP1 PUSH2 0x52A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xE24 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE PUSH2 0x23E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1DE SWAP1 PUSH2 0x57C JUMP JUMPDEST PUSH0 DUP1 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x40 MLOAD PUSH2 0x258 SWAP2 SWAP1 PUSH2 0x5AD JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x290 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x295 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP1 SWAP3 POP SWAP1 POP PUSH2 0x2A6 DUP3 DUP3 DUP7 PUSH2 0x2B2 JUMP JUMPDEST SWAP3 POP POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x2C1 JUMPI POP DUP2 PUSH2 0x2AB JUMP JUMPDEST DUP3 MLOAD ISZERO PUSH2 0x2D1 JUMPI DUP3 MLOAD DUP1 DUP5 PUSH1 0x20 ADD REVERT JUMPDEST DUP2 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1DE SWAP2 SWAP1 PUSH2 0x5E9 JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x1B1 JUMP JUMPDEST PUSH2 0x304 DUP2 PUSH2 0x2EB JUMP JUMPDEST DUP2 EQ PUSH2 0x30E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 MLOAD PUSH2 0x1B1 DUP2 PUSH2 0x2FB JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT OR ISZERO PUSH2 0x355 JUMPI PUSH2 0x355 PUSH2 0x31C JUMP JUMPDEST PUSH1 0x40 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x366 PUSH1 0x40 MLOAD SWAP1 JUMP JUMPDEST SWAP1 POP PUSH2 0x372 DUP3 DUP3 PUSH2 0x330 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x38F JUMPI PUSH2 0x38F PUSH2 0x31C JUMP JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0x3BD PUSH2 0x3B8 DUP5 PUSH2 0x377 JUMP JUMPDEST PUSH2 0x35C JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x3D7 JUMPI PUSH2 0x3D7 PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x3E2 DUP5 DUP3 DUP6 PUSH2 0x3A0 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x3FC JUMPI PUSH2 0x3FC PUSH0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x40C DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x3AB JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x429 JUMPI PUSH2 0x429 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x434 DUP7 DUP7 PUSH2 0x311 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x445 DUP7 DUP3 DUP8 ADD PUSH2 0x311 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x463 JUMPI PUSH2 0x463 PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x46F DUP7 DUP3 DUP8 ADD PUSH2 0x3EA JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x1B1 JUMPI PUSH2 0x1B1 PUSH2 0x479 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x4BD DUP2 PUSH2 0x2EB JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x4D1 DUP3 DUP6 PUSH2 0x4B4 JUMP JUMPDEST PUSH2 0x2AB PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x4B4 JUMP JUMPDEST PUSH1 0x2D DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x455243313936373A206E657720696D706C656D656E746174696F6E206973206E DUP2 MSTORE PUSH13 0x1BDD08184818DBDB9D1C9858DD PUSH1 0x9A SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B1 DUP2 PUSH2 0x4DE JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x416464726573733A2064656C65676174652063616C6C20746F206E6F6E2D636F DUP2 MSTORE PUSH6 0x1B9D1C9858DD PUSH1 0xD2 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x523 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B1 DUP2 PUSH2 0x53A JUMP JUMPDEST PUSH0 PUSH2 0x595 DUP3 MLOAD SWAP1 JUMP JUMPDEST PUSH2 0x5A3 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x3A0 JUMP JUMPDEST SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x2AB DUP3 DUP5 PUSH2 0x58C JUMP JUMPDEST PUSH0 PUSH2 0x5C1 DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x5D8 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x3A0 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1AE DUP2 DUP5 PUSH2 0x5B8 JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0x7D0 PUSH2 0x634 PUSH0 CODECOPY PUSH0 DUP2 DUP2 PUSH1 0xE5 ADD MSTORE DUP2 DUP2 PUSH2 0x139 ADD MSTORE DUP2 DUP2 PUSH2 0x1B9 ADD MSTORE DUP2 DUP2 PUSH2 0x202 ADD MSTORE DUP2 DUP2 PUSH2 0x233 ADD MSTORE PUSH2 0x257 ADD MSTORE PUSH2 0x7D0 PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x42 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3659CFE6 EQ PUSH2 0x59 JUMPI DUP1 PUSH4 0x4F1EF286 EQ PUSH2 0x78 JUMPI DUP1 PUSH4 0x5C60DA1B EQ PUSH2 0x8B JUMPI DUP1 PUSH4 0xF851A440 EQ PUSH2 0xB5 JUMPI PUSH2 0x51 JUMP JUMPDEST CALLDATASIZE PUSH2 0x51 JUMPI PUSH2 0x4F PUSH2 0xC9 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x4F PUSH2 0xC9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x64 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x4F PUSH2 0x73 CALLDATASIZE PUSH1 0x4 PUSH2 0x4F8 JUMP JUMPDEST PUSH2 0xE3 JUMP JUMPDEST PUSH2 0x4F PUSH2 0x86 CALLDATASIZE PUSH1 0x4 PUSH2 0x56C JUMP JUMPDEST PUSH2 0x137 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x96 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x9F PUSH2 0x1B6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xAC SWAP2 SWAP1 PUSH2 0x5D2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC0 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x9F PUSH2 0x1FF JUMP JUMPDEST PUSH2 0xD1 PUSH2 0x255 JUMP JUMPDEST PUSH2 0xE1 PUSH2 0xDC PUSH2 0x2A6 JUMP JUMPDEST PUSH2 0x2D8 JUMP JUMPDEST JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER SUB PUSH2 0x12F JUMPI PUSH2 0x12C DUP2 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP2 MSTORE POP PUSH0 PUSH2 0x2F6 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x12C PUSH2 0xC9 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER SUB PUSH2 0x1AE JUMPI PUSH2 0x1A9 DUP4 DUP4 DUP4 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH1 0x1 SWAP3 POP PUSH2 0x2F6 SWAP2 POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x1A9 PUSH2 0xC9 JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER SUB PUSH2 0x1F4 JUMPI PUSH2 0x1EF PUSH2 0x2A6 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x1FC PUSH2 0xC9 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER SUB PUSH2 0x1F4 JUMPI POP PUSH32 0x0 SWAP1 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER SUB PUSH2 0xE1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x29D SWAP1 PUSH2 0x5E0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH2 0x1EF PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST CALLDATASIZE PUSH0 DUP1 CALLDATACOPY PUSH0 DUP1 CALLDATASIZE PUSH0 DUP5 GAS DELEGATECALL RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY DUP1 DUP1 ISZERO PUSH2 0x2F2 JUMPI RETURNDATASIZE PUSH0 RETURN JUMPDEST RETURNDATASIZE PUSH0 REVERT JUMPDEST PUSH2 0x2FF DUP4 PUSH2 0x320 JUMP JUMPDEST PUSH0 DUP3 MLOAD GT DUP1 PUSH2 0x30B JUMPI POP DUP1 JUMPDEST ISZERO PUSH2 0x1A9 JUMPI PUSH2 0x31A DUP4 DUP4 PUSH2 0x35F JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x329 DUP2 PUSH2 0x38D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x384 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x774 PUSH1 0x27 SWAP2 CODECOPY PUSH2 0x3F5 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE PUSH2 0x3B4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x29D SWAP1 PUSH2 0x698 JUMP JUMPDEST PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE PUSH2 0x41E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x29D SWAP1 PUSH2 0x6EA JUMP JUMPDEST PUSH0 DUP1 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x40 MLOAD PUSH2 0x438 SWAP2 SWAP1 PUSH2 0x726 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x470 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x475 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x485 DUP3 DUP3 DUP7 PUSH2 0x491 JUMP JUMPDEST SWAP3 POP POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x4A0 JUMPI POP DUP2 PUSH2 0x48A JUMP JUMPDEST DUP3 MLOAD ISZERO PUSH2 0x4B0 JUMPI DUP3 MLOAD DUP1 DUP5 PUSH1 0x20 ADD REVERT JUMPDEST DUP2 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x29D SWAP2 SWAP1 PUSH2 0x762 JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x387 JUMP JUMPDEST PUSH2 0x4E3 DUP2 PUSH2 0x4CA JUMP JUMPDEST DUP2 EQ PUSH2 0x12C JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x387 DUP2 PUSH2 0x4DA JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x50B JUMPI PUSH2 0x50B PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x516 DUP5 DUP5 PUSH2 0x4ED JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x531 JUMPI PUSH2 0x531 PUSH0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x54B JUMPI PUSH2 0x54B PUSH0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x565 JUMPI PUSH2 0x565 PUSH0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x581 JUMPI PUSH2 0x581 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x58C DUP7 DUP7 PUSH2 0x4ED JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x5AB JUMPI PUSH2 0x5AB PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x5B7 DUP7 DUP3 DUP8 ADD PUSH2 0x51E JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH2 0x5CC DUP2 PUSH2 0x4CA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x387 DUP3 DUP5 PUSH2 0x5C3 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x387 DUP2 PUSH1 0x42 DUP2 MSTORE PUSH32 0x5472616E73706172656E745570677261646561626C6550726F78793A2061646D PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x696E2063616E6E6F742066616C6C6261636B20746F2070726F78792074617267 PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x195D PUSH1 0xF2 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x2D DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x455243313936373A206E657720696D706C656D656E746174696F6E206973206E DUP2 MSTORE PUSH13 0x1BDD08184818DBDB9D1C9858DD PUSH1 0x9A SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x387 DUP2 PUSH2 0x64C JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x416464726573733A2064656C65676174652063616C6C20746F206E6F6E2D636F DUP2 MSTORE PUSH6 0x1B9D1C9858DD PUSH1 0xD2 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x691 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x387 DUP2 PUSH2 0x6A8 JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0x70E DUP3 MLOAD SWAP1 JUMP JUMPDEST PUSH2 0x71C DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x6FA JUMP JUMPDEST SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x48A DUP3 DUP5 PUSH2 0x705 JUMP JUMPDEST PUSH0 PUSH2 0x73A DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x751 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x384 DUP2 DUP5 PUSH2 0x731 JUMP INVALID COINBASE PUSH5 0x6472657373 GASPRICE KECCAK256 PUSH13 0x6F772D6C6576656C2064656C65 PUSH8 0x6174652063616C6C KECCAK256 PUSH7 0x61696C6564A264 PUSH10 0x7066735822122070DADC DIV CREATE SWAP12 PUSH30 0x1888A2301532E36CA47743DF400BF011DEF63B2D9D260EE30E64736F6C63 NUMBER STOP ADDMOD NOT STOP CALLER 0xB5 BALANCE 0x27 PUSH9 0x4A568B3173AE13B9F8 0xA6 ADD PUSH15 0x243E63B6E8EE1178D6A717850B5D61 SUB CALLDATASIZE ADDMOD SWAP5 LOG1 EXTCODESIZE LOG1 LOG3 0x21 MOD PUSH8 0xC828492DB98DCA3E KECCAK256 PUSH23 0xCC3735A920A3CA505D382BBC416464726573733A206C6F PUSH24 0x2D6C6576656C2064656C65676174652063616C6C20666169 PUSH13 0x65640000000000000000000000 ","sourceMap":"1653:3648:13:-:0;;;1976:499;;;;;;;;;;;;;;;;;;:::i;:::-;2091:6;2099:5;1050:54:4;1103:1;1058:41;1050:54;:::i;:::-;-1:-1:-1;;;;;;;;;;;1018:87:4;1011:95;;;;:::i;:::-;1116:39;1134:6;1142:5;1149;1116:17;:39::i;:::-;-1:-1:-1;2146:45:13::1;::::0;-1:-1:-1;2190:1:13::1;2154:32;2146:45;:::i;:::-;-1:-1:-1::0;;;;;;;;;;;2123:69:13::1;2116:77;;;;:::i;:::-;-1:-1:-1::0;;;;;2203:15:13;::::1;;::::0;-1:-1:-1;;;;;;;;;;;2392:20:13;;;2436:32:::1;::::0;::::1;::::0;::::1;::::0;2277:12:::1;::::0;2212:6;;2436:32:::1;:::i;:::-;;;;;;;;2106:369;1976:499:::0;;;1653:3648;;2188:295:5;2326:29;2337:17;2326:10;:29::i;:::-;2383:1;2369:4;:11;:15;:28;;;;2388:9;2369:28;2365:112;;;2413:53;2442:17;2461:4;2413:28;:53::i;:::-;;2365:112;2188:295;;;:::o;1902:152::-;1968:37;1987:17;1968:18;:37::i;:::-;2020:27;;-1:-1:-1;;;;;2020:27:5;;;;;;;;1902:152;:::o;6575:198:10:-;6658:12;6689:77;6710:6;6718:4;6689:77;;;;;;;;;;;;;;;;;:20;:77::i;:::-;6682:84;;6575:198;;;;;:::o;1537:259:5:-;-1:-1:-1;;;;;1470:19:10;;;1610:95:5;;;;-1:-1:-1;;;1610:95:5;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;;;;;;;1715:74:5;;-1:-1:-1;;;;;;1715:74:5;-1:-1:-1;;;;;1715:74:5;;;;;;;;;;1537:259::o;6959:387:10:-;7100:12;-1:-1:-1;;;;;1470:19:10;;;7124:69;;;;-1:-1:-1;;;7124:69:10;;;;;;;:::i;:::-;7205:12;7219:23;7246:6;-1:-1:-1;;;;;7246:19:10;7266:4;7246:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7204:67:10;;-1:-1:-1;7204:67:10;-1:-1:-1;7288:51:10;7204:67;;7326:12;7288:16;:51::i;:::-;7281:58;;;;6959:387;;;;;;:::o;7566:692::-;7712:12;7740:7;7736:516;;;-1:-1:-1;7770:10:10;7763:17;;7736:516;7881:17;;:21;7877:365;;8075:10;8069:17;8135:15;8122:10;8118:2;8114:19;8107:44;7877:365;8214:12;8207:20;;-1:-1:-1;;;8207:20:10;;;;;;;;:::i;466:96:14:-;503:7;-1:-1:-1;;;;;400:54:14;;532:24;334:126;568:122;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:143::-;778:13;;800:33;778:13;800:33;:::i;1199:180::-;-1:-1:-1;;;1244:1:14;1237:88;1344:4;1341:1;1334:15;1368:4;1365:1;1358:15;1385:281;-1:-1:-1;;1183:2:14;1163:14;;1159:28;1460:6;1456:40;1598:6;1586:10;1583:22;-1:-1:-1;;;;;1550:10:14;1547:34;1544:62;1541:88;;;1609:18;;:::i;:::-;1645:2;1638:22;-1:-1:-1;;1385:281:14:o;1672:129::-;1706:6;1733:20;73:2;67:9;;7:75;1733:20;1723:30;;1762:33;1790:4;1782:6;1762:33;:::i;:::-;1672:129;;;:::o;1807:307::-;1868:4;-1:-1:-1;;;;;1950:6:14;1947:30;1944:56;;;1980:18;;:::i;:::-;-1:-1:-1;;1183:2:14;1163:14;;1159:28;2102:4;2092:15;;1807:307;-1:-1:-1;;1807:307:14:o;2120:139::-;2209:6;2204:3;2199;2193:23;-1:-1:-1;2250:1:14;2232:16;;2225:27;2120:139::o;2265:432::-;2353:5;2378:65;2394:48;2435:6;2394:48;:::i;:::-;2378:65;:::i;:::-;2369:74;;2466:6;2459:5;2452:21;2504:4;2497:5;2493:16;2542:3;2533:6;2528:3;2524:16;2521:25;2518:112;;;2549:79;197:1;194;187:12;2549:79;2639:52;2684:6;2679:3;2674;2639:52;:::i;:::-;2359:338;2265:432;;;;;:::o;2716:353::-;2782:5;2831:3;2824:4;2816:6;2812:17;2808:27;2798:122;;2839:79;197:1;194;187:12;2839:79;2949:6;2943:13;2974:89;3059:3;3051:6;3044:4;3036:6;3032:17;2974:89;:::i;:::-;2965:98;2716:353;-1:-1:-1;;;;2716:353:14:o;3075:834::-;3172:6;3180;3188;3237:2;3225:9;3216:7;3212:23;3208:32;3205:119;;;3243:79;197:1;194;187:12;3243:79;3363:1;3388:64;3444:7;3424:9;3388:64;:::i;:::-;3378:74;;3334:128;3501:2;3527:64;3583:7;3574:6;3563:9;3559:22;3527:64;:::i;:::-;3517:74;;3472:129;3661:2;3650:9;3646:18;3640:25;-1:-1:-1;;;;;3684:6:14;3681:30;3678:117;;;3714:79;197:1;194;187:12;3714:79;3819:73;3884:7;3875:6;3864:9;3860:22;3819:73;:::i;:::-;3809:83;;3611:291;3075:834;;;;;:::o;3998:180::-;-1:-1:-1;;;4043:1:14;4036:88;4143:4;4140:1;4133:15;4167:4;4164:1;4157:15;4184:194;4315:9;;;4337:11;;;4334:37;;;4351:18;;:::i;4384:180::-;-1:-1:-1;;;4429:1:14;4422:88;4529:4;4526:1;4519:15;4553:4;4550:1;4543:15;4570:118;4657:24;4675:5;4657:24;:::i;:::-;4652:3;4645:37;4570:118;;:::o;4694:332::-;4853:2;4838:18;;4866:71;4842:9;4910:6;4866:71;:::i;:::-;4947:72;5015:2;5004:9;5000:18;4991:6;4947:72;:::i;5445:366::-;5672:2;5138:19;;5587:3;5190:4;5181:14;;5347:34;5324:58;;-1:-1:-1;;;5411:2:14;5399:15;;5392:40;5601:74;-1:-1:-1;5684:93:14;-1:-1:-1;5802:2:14;5793:12;;5445:366::o;5817:419::-;6021:2;6034:47;;;6006:18;;6098:131;6006:18;6098:131;:::i;6473:366::-;6700:2;5138:19;;6615:3;5190:4;5181:14;;6382:34;6359:58;;-1:-1:-1;;;6446:2:14;6434:15;;6427:33;6629:74;-1:-1:-1;6712:93:14;6242:225;6845:419;7049:2;7062:47;;;7034:18;;7126:131;7034:18;7126:131;:::i;7527:386::-;7631:3;7659:38;7691:5;7349:12;;7270:98;7659:38;7810:65;7868:6;7863:3;7856:4;7849:5;7845:16;7810:65;:::i;:::-;7891:16;;;;;7527:386;-1:-1:-1;;7527:386:14:o;7919:271::-;8049:3;8071:93;8160:3;8151:6;8071:93;:::i;8301:377::-;8389:3;8417:39;8450:5;7349:12;;7270:98;8417:39;5138:19;;;5190:4;5181:14;;8465:78;;8552:65;8610:6;8605:3;8598:4;8591:5;8587:16;8552:65;:::i;:::-;1183:2;1163:14;-1:-1:-1;;1159:28:14;8633:39;;;;;;-1:-1:-1;;8301:377:14:o;8684:313::-;8835:2;8848:47;;;8820:18;;8912:78;8820:18;8976:6;8912:78;:::i;8684:313::-;1653:3648:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_530":{"entryPoint":null,"id":530,"parameterSlots":0,"returnSlots":0},"@_538":{"entryPoint":null,"id":538,"parameterSlots":0,"returnSlots":0},"@_beforeFallback_1405":{"entryPoint":597,"id":1405,"parameterSlots":0,"returnSlots":0},"@_beforeFallback_543":{"entryPoint":null,"id":543,"parameterSlots":0,"returnSlots":0},"@_delegate_503":{"entryPoint":728,"id":503,"parameterSlots":1,"returnSlots":0},"@_fallback_522":{"entryPoint":201,"id":522,"parameterSlots":0,"returnSlots":0},"@_getAdmin_1414":{"entryPoint":null,"id":1414,"parameterSlots":0,"returnSlots":1},"@_getImplementation_206":{"entryPoint":null,"id":206,"parameterSlots":0,"returnSlots":1},"@_implementation_173":{"entryPoint":678,"id":173,"parameterSlots":0,"returnSlots":1},"@_setImplementation_230":{"entryPoint":909,"id":230,"parameterSlots":1,"returnSlots":0},"@_upgradeToAndCall_275":{"entryPoint":758,"id":275,"parameterSlots":3,"returnSlots":0},"@_upgradeTo_245":{"entryPoint":800,"id":245,"parameterSlots":1,"returnSlots":0},"@admin_1326":{"entryPoint":511,"id":1326,"parameterSlots":0,"returnSlots":1},"@functionDelegateCall_1091":{"entryPoint":863,"id":1091,"parameterSlots":2,"returnSlots":1},"@functionDelegateCall_1126":{"entryPoint":1013,"id":1126,"parameterSlots":3,"returnSlots":1},"@getAddressSlot_1206":{"entryPoint":null,"id":1206,"parameterSlots":1,"returnSlots":1},"@implementation_1340":{"entryPoint":438,"id":1340,"parameterSlots":0,"returnSlots":1},"@isContract_881":{"entryPoint":null,"id":881,"parameterSlots":1,"returnSlots":1},"@upgradeToAndCall_1375":{"entryPoint":311,"id":1375,"parameterSlots":3,"returnSlots":0},"@upgradeTo_1358":{"entryPoint":227,"id":1358,"parameterSlots":1,"returnSlots":0},"@verifyCallResult_1157":{"entryPoint":1169,"id":1157,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address":{"entryPoint":1261,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_calldata_ptr":{"entryPoint":1310,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_address":{"entryPoint":1272,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_bytes_calldata_ptr":{"entryPoint":1388,"id":null,"parameterSlots":2,"returnSlots":3},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":1475,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":1797,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack":{"entryPoint":1841,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65_to_t_string_memory_ptr_fromStack":{"entryPoint":1612,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520_to_t_string_memory_ptr_fromStack":{"entryPoint":1704,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d_to_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":1830,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":1490,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1890,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1688,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1770,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1504,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_length_t_bytes_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":1226,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":1786,"id":null,"parameterSlots":3,"returnSlots":0},"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"store_literal_in_memory_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address":{"entryPoint":1242,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:8460:14","nodeType":"YulBlock","src":"0:8460:14","statements":[{"body":{"nativeSrc":"47:35:14","nodeType":"YulBlock","src":"47:35:14","statements":[{"nativeSrc":"57:19:14","nodeType":"YulAssignment","src":"57:19:14","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:14","nodeType":"YulLiteral","src":"73:2:14","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:14","nodeType":"YulIdentifier","src":"67:5:14"},"nativeSrc":"67:9:14","nodeType":"YulFunctionCall","src":"67:9:14"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:14","nodeType":"YulIdentifier","src":"57:6:14"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:14","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:14","nodeType":"YulTypedName","src":"40:6:14","type":""}],"src":"7:75:14"},{"body":{"nativeSrc":"177:28:14","nodeType":"YulBlock","src":"177:28:14","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:14","nodeType":"YulLiteral","src":"194:1:14","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:14","nodeType":"YulLiteral","src":"197:1:14","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:14","nodeType":"YulIdentifier","src":"187:6:14"},"nativeSrc":"187:12:14","nodeType":"YulFunctionCall","src":"187:12:14"},"nativeSrc":"187:12:14","nodeType":"YulExpressionStatement","src":"187:12:14"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:14","nodeType":"YulFunctionDefinition","src":"88:117:14"},{"body":{"nativeSrc":"300:28:14","nodeType":"YulBlock","src":"300:28:14","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:14","nodeType":"YulLiteral","src":"317:1:14","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:14","nodeType":"YulLiteral","src":"320:1:14","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:14","nodeType":"YulIdentifier","src":"310:6:14"},"nativeSrc":"310:12:14","nodeType":"YulFunctionCall","src":"310:12:14"},"nativeSrc":"310:12:14","nodeType":"YulExpressionStatement","src":"310:12:14"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:14","nodeType":"YulFunctionDefinition","src":"211:117:14"},{"body":{"nativeSrc":"379:81:14","nodeType":"YulBlock","src":"379:81:14","statements":[{"nativeSrc":"389:65:14","nodeType":"YulAssignment","src":"389:65:14","value":{"arguments":[{"name":"value","nativeSrc":"404:5:14","nodeType":"YulIdentifier","src":"404:5:14"},{"kind":"number","nativeSrc":"411:42:14","nodeType":"YulLiteral","src":"411:42:14","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"400:3:14","nodeType":"YulIdentifier","src":"400:3:14"},"nativeSrc":"400:54:14","nodeType":"YulFunctionCall","src":"400:54:14"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:14","nodeType":"YulIdentifier","src":"389:7:14"}]}]},"name":"cleanup_t_uint160","nativeSrc":"334:126:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:14","nodeType":"YulTypedName","src":"361:5:14","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:14","nodeType":"YulTypedName","src":"371:7:14","type":""}],"src":"334:126:14"},{"body":{"nativeSrc":"511:51:14","nodeType":"YulBlock","src":"511:51:14","statements":[{"nativeSrc":"521:35:14","nodeType":"YulAssignment","src":"521:35:14","value":{"arguments":[{"name":"value","nativeSrc":"550:5:14","nodeType":"YulIdentifier","src":"550:5:14"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"532:17:14","nodeType":"YulIdentifier","src":"532:17:14"},"nativeSrc":"532:24:14","nodeType":"YulFunctionCall","src":"532:24:14"},"variableNames":[{"name":"cleaned","nativeSrc":"521:7:14","nodeType":"YulIdentifier","src":"521:7:14"}]}]},"name":"cleanup_t_address","nativeSrc":"466:96:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"493:5:14","nodeType":"YulTypedName","src":"493:5:14","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"503:7:14","nodeType":"YulTypedName","src":"503:7:14","type":""}],"src":"466:96:14"},{"body":{"nativeSrc":"611:79:14","nodeType":"YulBlock","src":"611:79:14","statements":[{"body":{"nativeSrc":"668:16:14","nodeType":"YulBlock","src":"668:16:14","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"677:1:14","nodeType":"YulLiteral","src":"677:1:14","type":"","value":"0"},{"kind":"number","nativeSrc":"680:1:14","nodeType":"YulLiteral","src":"680:1:14","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"670:6:14","nodeType":"YulIdentifier","src":"670:6:14"},"nativeSrc":"670:12:14","nodeType":"YulFunctionCall","src":"670:12:14"},"nativeSrc":"670:12:14","nodeType":"YulExpressionStatement","src":"670:12:14"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"634:5:14","nodeType":"YulIdentifier","src":"634:5:14"},{"arguments":[{"name":"value","nativeSrc":"659:5:14","nodeType":"YulIdentifier","src":"659:5:14"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"641:17:14","nodeType":"YulIdentifier","src":"641:17:14"},"nativeSrc":"641:24:14","nodeType":"YulFunctionCall","src":"641:24:14"}],"functionName":{"name":"eq","nativeSrc":"631:2:14","nodeType":"YulIdentifier","src":"631:2:14"},"nativeSrc":"631:35:14","nodeType":"YulFunctionCall","src":"631:35:14"}],"functionName":{"name":"iszero","nativeSrc":"624:6:14","nodeType":"YulIdentifier","src":"624:6:14"},"nativeSrc":"624:43:14","nodeType":"YulFunctionCall","src":"624:43:14"},"nativeSrc":"621:63:14","nodeType":"YulIf","src":"621:63:14"}]},"name":"validator_revert_t_address","nativeSrc":"568:122:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"604:5:14","nodeType":"YulTypedName","src":"604:5:14","type":""}],"src":"568:122:14"},{"body":{"nativeSrc":"748:87:14","nodeType":"YulBlock","src":"748:87:14","statements":[{"nativeSrc":"758:29:14","nodeType":"YulAssignment","src":"758:29:14","value":{"arguments":[{"name":"offset","nativeSrc":"780:6:14","nodeType":"YulIdentifier","src":"780:6:14"}],"functionName":{"name":"calldataload","nativeSrc":"767:12:14","nodeType":"YulIdentifier","src":"767:12:14"},"nativeSrc":"767:20:14","nodeType":"YulFunctionCall","src":"767:20:14"},"variableNames":[{"name":"value","nativeSrc":"758:5:14","nodeType":"YulIdentifier","src":"758:5:14"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"823:5:14","nodeType":"YulIdentifier","src":"823:5:14"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"796:26:14","nodeType":"YulIdentifier","src":"796:26:14"},"nativeSrc":"796:33:14","nodeType":"YulFunctionCall","src":"796:33:14"},"nativeSrc":"796:33:14","nodeType":"YulExpressionStatement","src":"796:33:14"}]},"name":"abi_decode_t_address","nativeSrc":"696:139:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"726:6:14","nodeType":"YulTypedName","src":"726:6:14","type":""},{"name":"end","nativeSrc":"734:3:14","nodeType":"YulTypedName","src":"734:3:14","type":""}],"returnVariables":[{"name":"value","nativeSrc":"742:5:14","nodeType":"YulTypedName","src":"742:5:14","type":""}],"src":"696:139:14"},{"body":{"nativeSrc":"907:263:14","nodeType":"YulBlock","src":"907:263:14","statements":[{"body":{"nativeSrc":"953:83:14","nodeType":"YulBlock","src":"953:83:14","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"955:77:14","nodeType":"YulIdentifier","src":"955:77:14"},"nativeSrc":"955:79:14","nodeType":"YulFunctionCall","src":"955:79:14"},"nativeSrc":"955:79:14","nodeType":"YulExpressionStatement","src":"955:79:14"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"928:7:14","nodeType":"YulIdentifier","src":"928:7:14"},{"name":"headStart","nativeSrc":"937:9:14","nodeType":"YulIdentifier","src":"937:9:14"}],"functionName":{"name":"sub","nativeSrc":"924:3:14","nodeType":"YulIdentifier","src":"924:3:14"},"nativeSrc":"924:23:14","nodeType":"YulFunctionCall","src":"924:23:14"},{"kind":"number","nativeSrc":"949:2:14","nodeType":"YulLiteral","src":"949:2:14","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"920:3:14","nodeType":"YulIdentifier","src":"920:3:14"},"nativeSrc":"920:32:14","nodeType":"YulFunctionCall","src":"920:32:14"},"nativeSrc":"917:119:14","nodeType":"YulIf","src":"917:119:14"},{"nativeSrc":"1046:117:14","nodeType":"YulBlock","src":"1046:117:14","statements":[{"nativeSrc":"1061:15:14","nodeType":"YulVariableDeclaration","src":"1061:15:14","value":{"kind":"number","nativeSrc":"1075:1:14","nodeType":"YulLiteral","src":"1075:1:14","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1065:6:14","nodeType":"YulTypedName","src":"1065:6:14","type":""}]},{"nativeSrc":"1090:63:14","nodeType":"YulAssignment","src":"1090:63:14","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1125:9:14","nodeType":"YulIdentifier","src":"1125:9:14"},{"name":"offset","nativeSrc":"1136:6:14","nodeType":"YulIdentifier","src":"1136:6:14"}],"functionName":{"name":"add","nativeSrc":"1121:3:14","nodeType":"YulIdentifier","src":"1121:3:14"},"nativeSrc":"1121:22:14","nodeType":"YulFunctionCall","src":"1121:22:14"},{"name":"dataEnd","nativeSrc":"1145:7:14","nodeType":"YulIdentifier","src":"1145:7:14"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"1100:20:14","nodeType":"YulIdentifier","src":"1100:20:14"},"nativeSrc":"1100:53:14","nodeType":"YulFunctionCall","src":"1100:53:14"},"variableNames":[{"name":"value0","nativeSrc":"1090:6:14","nodeType":"YulIdentifier","src":"1090:6:14"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"841:329:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"877:9:14","nodeType":"YulTypedName","src":"877:9:14","type":""},{"name":"dataEnd","nativeSrc":"888:7:14","nodeType":"YulTypedName","src":"888:7:14","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"900:6:14","nodeType":"YulTypedName","src":"900:6:14","type":""}],"src":"841:329:14"},{"body":{"nativeSrc":"1265:28:14","nodeType":"YulBlock","src":"1265:28:14","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1282:1:14","nodeType":"YulLiteral","src":"1282:1:14","type":"","value":"0"},{"kind":"number","nativeSrc":"1285:1:14","nodeType":"YulLiteral","src":"1285:1:14","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1275:6:14","nodeType":"YulIdentifier","src":"1275:6:14"},"nativeSrc":"1275:12:14","nodeType":"YulFunctionCall","src":"1275:12:14"},"nativeSrc":"1275:12:14","nodeType":"YulExpressionStatement","src":"1275:12:14"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"1176:117:14","nodeType":"YulFunctionDefinition","src":"1176:117:14"},{"body":{"nativeSrc":"1388:28:14","nodeType":"YulBlock","src":"1388:28:14","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1405:1:14","nodeType":"YulLiteral","src":"1405:1:14","type":"","value":"0"},{"kind":"number","nativeSrc":"1408:1:14","nodeType":"YulLiteral","src":"1408:1:14","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1398:6:14","nodeType":"YulIdentifier","src":"1398:6:14"},"nativeSrc":"1398:12:14","nodeType":"YulFunctionCall","src":"1398:12:14"},"nativeSrc":"1398:12:14","nodeType":"YulExpressionStatement","src":"1398:12:14"}]},"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"1299:117:14","nodeType":"YulFunctionDefinition","src":"1299:117:14"},{"body":{"nativeSrc":"1511:28:14","nodeType":"YulBlock","src":"1511:28:14","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1528:1:14","nodeType":"YulLiteral","src":"1528:1:14","type":"","value":"0"},{"kind":"number","nativeSrc":"1531:1:14","nodeType":"YulLiteral","src":"1531:1:14","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1521:6:14","nodeType":"YulIdentifier","src":"1521:6:14"},"nativeSrc":"1521:12:14","nodeType":"YulFunctionCall","src":"1521:12:14"},"nativeSrc":"1521:12:14","nodeType":"YulExpressionStatement","src":"1521:12:14"}]},"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"1422:117:14","nodeType":"YulFunctionDefinition","src":"1422:117:14"},{"body":{"nativeSrc":"1632:478:14","nodeType":"YulBlock","src":"1632:478:14","statements":[{"body":{"nativeSrc":"1681:83:14","nodeType":"YulBlock","src":"1681:83:14","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"1683:77:14","nodeType":"YulIdentifier","src":"1683:77:14"},"nativeSrc":"1683:79:14","nodeType":"YulFunctionCall","src":"1683:79:14"},"nativeSrc":"1683:79:14","nodeType":"YulExpressionStatement","src":"1683:79:14"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"1660:6:14","nodeType":"YulIdentifier","src":"1660:6:14"},{"kind":"number","nativeSrc":"1668:4:14","nodeType":"YulLiteral","src":"1668:4:14","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"1656:3:14","nodeType":"YulIdentifier","src":"1656:3:14"},"nativeSrc":"1656:17:14","nodeType":"YulFunctionCall","src":"1656:17:14"},{"name":"end","nativeSrc":"1675:3:14","nodeType":"YulIdentifier","src":"1675:3:14"}],"functionName":{"name":"slt","nativeSrc":"1652:3:14","nodeType":"YulIdentifier","src":"1652:3:14"},"nativeSrc":"1652:27:14","nodeType":"YulFunctionCall","src":"1652:27:14"}],"functionName":{"name":"iszero","nativeSrc":"1645:6:14","nodeType":"YulIdentifier","src":"1645:6:14"},"nativeSrc":"1645:35:14","nodeType":"YulFunctionCall","src":"1645:35:14"},"nativeSrc":"1642:122:14","nodeType":"YulIf","src":"1642:122:14"},{"nativeSrc":"1773:30:14","nodeType":"YulAssignment","src":"1773:30:14","value":{"arguments":[{"name":"offset","nativeSrc":"1796:6:14","nodeType":"YulIdentifier","src":"1796:6:14"}],"functionName":{"name":"calldataload","nativeSrc":"1783:12:14","nodeType":"YulIdentifier","src":"1783:12:14"},"nativeSrc":"1783:20:14","nodeType":"YulFunctionCall","src":"1783:20:14"},"variableNames":[{"name":"length","nativeSrc":"1773:6:14","nodeType":"YulIdentifier","src":"1773:6:14"}]},{"body":{"nativeSrc":"1846:83:14","nodeType":"YulBlock","src":"1846:83:14","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"1848:77:14","nodeType":"YulIdentifier","src":"1848:77:14"},"nativeSrc":"1848:79:14","nodeType":"YulFunctionCall","src":"1848:79:14"},"nativeSrc":"1848:79:14","nodeType":"YulExpressionStatement","src":"1848:79:14"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"1818:6:14","nodeType":"YulIdentifier","src":"1818:6:14"},{"kind":"number","nativeSrc":"1826:18:14","nodeType":"YulLiteral","src":"1826:18:14","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1815:2:14","nodeType":"YulIdentifier","src":"1815:2:14"},"nativeSrc":"1815:30:14","nodeType":"YulFunctionCall","src":"1815:30:14"},"nativeSrc":"1812:117:14","nodeType":"YulIf","src":"1812:117:14"},{"nativeSrc":"1938:29:14","nodeType":"YulAssignment","src":"1938:29:14","value":{"arguments":[{"name":"offset","nativeSrc":"1954:6:14","nodeType":"YulIdentifier","src":"1954:6:14"},{"kind":"number","nativeSrc":"1962:4:14","nodeType":"YulLiteral","src":"1962:4:14","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1950:3:14","nodeType":"YulIdentifier","src":"1950:3:14"},"nativeSrc":"1950:17:14","nodeType":"YulFunctionCall","src":"1950:17:14"},"variableNames":[{"name":"arrayPos","nativeSrc":"1938:8:14","nodeType":"YulIdentifier","src":"1938:8:14"}]},{"body":{"nativeSrc":"2021:83:14","nodeType":"YulBlock","src":"2021:83:14","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"2023:77:14","nodeType":"YulIdentifier","src":"2023:77:14"},"nativeSrc":"2023:79:14","nodeType":"YulFunctionCall","src":"2023:79:14"},"nativeSrc":"2023:79:14","nodeType":"YulExpressionStatement","src":"2023:79:14"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"1986:8:14","nodeType":"YulIdentifier","src":"1986:8:14"},{"arguments":[{"name":"length","nativeSrc":"2000:6:14","nodeType":"YulIdentifier","src":"2000:6:14"},{"kind":"number","nativeSrc":"2008:4:14","nodeType":"YulLiteral","src":"2008:4:14","type":"","value":"0x01"}],"functionName":{"name":"mul","nativeSrc":"1996:3:14","nodeType":"YulIdentifier","src":"1996:3:14"},"nativeSrc":"1996:17:14","nodeType":"YulFunctionCall","src":"1996:17:14"}],"functionName":{"name":"add","nativeSrc":"1982:3:14","nodeType":"YulIdentifier","src":"1982:3:14"},"nativeSrc":"1982:32:14","nodeType":"YulFunctionCall","src":"1982:32:14"},{"name":"end","nativeSrc":"2016:3:14","nodeType":"YulIdentifier","src":"2016:3:14"}],"functionName":{"name":"gt","nativeSrc":"1979:2:14","nodeType":"YulIdentifier","src":"1979:2:14"},"nativeSrc":"1979:41:14","nodeType":"YulFunctionCall","src":"1979:41:14"},"nativeSrc":"1976:128:14","nodeType":"YulIf","src":"1976:128:14"}]},"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"1558:552:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1599:6:14","nodeType":"YulTypedName","src":"1599:6:14","type":""},{"name":"end","nativeSrc":"1607:3:14","nodeType":"YulTypedName","src":"1607:3:14","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"1615:8:14","nodeType":"YulTypedName","src":"1615:8:14","type":""},{"name":"length","nativeSrc":"1625:6:14","nodeType":"YulTypedName","src":"1625:6:14","type":""}],"src":"1558:552:14"},{"body":{"nativeSrc":"2218:570:14","nodeType":"YulBlock","src":"2218:570:14","statements":[{"body":{"nativeSrc":"2264:83:14","nodeType":"YulBlock","src":"2264:83:14","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"2266:77:14","nodeType":"YulIdentifier","src":"2266:77:14"},"nativeSrc":"2266:79:14","nodeType":"YulFunctionCall","src":"2266:79:14"},"nativeSrc":"2266:79:14","nodeType":"YulExpressionStatement","src":"2266:79:14"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2239:7:14","nodeType":"YulIdentifier","src":"2239:7:14"},{"name":"headStart","nativeSrc":"2248:9:14","nodeType":"YulIdentifier","src":"2248:9:14"}],"functionName":{"name":"sub","nativeSrc":"2235:3:14","nodeType":"YulIdentifier","src":"2235:3:14"},"nativeSrc":"2235:23:14","nodeType":"YulFunctionCall","src":"2235:23:14"},{"kind":"number","nativeSrc":"2260:2:14","nodeType":"YulLiteral","src":"2260:2:14","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"2231:3:14","nodeType":"YulIdentifier","src":"2231:3:14"},"nativeSrc":"2231:32:14","nodeType":"YulFunctionCall","src":"2231:32:14"},"nativeSrc":"2228:119:14","nodeType":"YulIf","src":"2228:119:14"},{"nativeSrc":"2357:117:14","nodeType":"YulBlock","src":"2357:117:14","statements":[{"nativeSrc":"2372:15:14","nodeType":"YulVariableDeclaration","src":"2372:15:14","value":{"kind":"number","nativeSrc":"2386:1:14","nodeType":"YulLiteral","src":"2386:1:14","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"2376:6:14","nodeType":"YulTypedName","src":"2376:6:14","type":""}]},{"nativeSrc":"2401:63:14","nodeType":"YulAssignment","src":"2401:63:14","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2436:9:14","nodeType":"YulIdentifier","src":"2436:9:14"},{"name":"offset","nativeSrc":"2447:6:14","nodeType":"YulIdentifier","src":"2447:6:14"}],"functionName":{"name":"add","nativeSrc":"2432:3:14","nodeType":"YulIdentifier","src":"2432:3:14"},"nativeSrc":"2432:22:14","nodeType":"YulFunctionCall","src":"2432:22:14"},{"name":"dataEnd","nativeSrc":"2456:7:14","nodeType":"YulIdentifier","src":"2456:7:14"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"2411:20:14","nodeType":"YulIdentifier","src":"2411:20:14"},"nativeSrc":"2411:53:14","nodeType":"YulFunctionCall","src":"2411:53:14"},"variableNames":[{"name":"value0","nativeSrc":"2401:6:14","nodeType":"YulIdentifier","src":"2401:6:14"}]}]},{"nativeSrc":"2484:297:14","nodeType":"YulBlock","src":"2484:297:14","statements":[{"nativeSrc":"2499:46:14","nodeType":"YulVariableDeclaration","src":"2499:46:14","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2530:9:14","nodeType":"YulIdentifier","src":"2530:9:14"},{"kind":"number","nativeSrc":"2541:2:14","nodeType":"YulLiteral","src":"2541:2:14","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2526:3:14","nodeType":"YulIdentifier","src":"2526:3:14"},"nativeSrc":"2526:18:14","nodeType":"YulFunctionCall","src":"2526:18:14"}],"functionName":{"name":"calldataload","nativeSrc":"2513:12:14","nodeType":"YulIdentifier","src":"2513:12:14"},"nativeSrc":"2513:32:14","nodeType":"YulFunctionCall","src":"2513:32:14"},"variables":[{"name":"offset","nativeSrc":"2503:6:14","nodeType":"YulTypedName","src":"2503:6:14","type":""}]},{"body":{"nativeSrc":"2592:83:14","nodeType":"YulBlock","src":"2592:83:14","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"2594:77:14","nodeType":"YulIdentifier","src":"2594:77:14"},"nativeSrc":"2594:79:14","nodeType":"YulFunctionCall","src":"2594:79:14"},"nativeSrc":"2594:79:14","nodeType":"YulExpressionStatement","src":"2594:79:14"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"2564:6:14","nodeType":"YulIdentifier","src":"2564:6:14"},{"kind":"number","nativeSrc":"2572:18:14","nodeType":"YulLiteral","src":"2572:18:14","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2561:2:14","nodeType":"YulIdentifier","src":"2561:2:14"},"nativeSrc":"2561:30:14","nodeType":"YulFunctionCall","src":"2561:30:14"},"nativeSrc":"2558:117:14","nodeType":"YulIf","src":"2558:117:14"},{"nativeSrc":"2689:82:14","nodeType":"YulAssignment","src":"2689:82:14","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2743:9:14","nodeType":"YulIdentifier","src":"2743:9:14"},{"name":"offset","nativeSrc":"2754:6:14","nodeType":"YulIdentifier","src":"2754:6:14"}],"functionName":{"name":"add","nativeSrc":"2739:3:14","nodeType":"YulIdentifier","src":"2739:3:14"},"nativeSrc":"2739:22:14","nodeType":"YulFunctionCall","src":"2739:22:14"},{"name":"dataEnd","nativeSrc":"2763:7:14","nodeType":"YulIdentifier","src":"2763:7:14"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"2707:31:14","nodeType":"YulIdentifier","src":"2707:31:14"},"nativeSrc":"2707:64:14","nodeType":"YulFunctionCall","src":"2707:64:14"},"variableNames":[{"name":"value1","nativeSrc":"2689:6:14","nodeType":"YulIdentifier","src":"2689:6:14"},{"name":"value2","nativeSrc":"2697:6:14","nodeType":"YulIdentifier","src":"2697:6:14"}]}]}]},"name":"abi_decode_tuple_t_addresst_bytes_calldata_ptr","nativeSrc":"2116:672:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2172:9:14","nodeType":"YulTypedName","src":"2172:9:14","type":""},{"name":"dataEnd","nativeSrc":"2183:7:14","nodeType":"YulTypedName","src":"2183:7:14","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2195:6:14","nodeType":"YulTypedName","src":"2195:6:14","type":""},{"name":"value1","nativeSrc":"2203:6:14","nodeType":"YulTypedName","src":"2203:6:14","type":""},{"name":"value2","nativeSrc":"2211:6:14","nodeType":"YulTypedName","src":"2211:6:14","type":""}],"src":"2116:672:14"},{"body":{"nativeSrc":"2859:53:14","nodeType":"YulBlock","src":"2859:53:14","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2876:3:14","nodeType":"YulIdentifier","src":"2876:3:14"},{"arguments":[{"name":"value","nativeSrc":"2899:5:14","nodeType":"YulIdentifier","src":"2899:5:14"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"2881:17:14","nodeType":"YulIdentifier","src":"2881:17:14"},"nativeSrc":"2881:24:14","nodeType":"YulFunctionCall","src":"2881:24:14"}],"functionName":{"name":"mstore","nativeSrc":"2869:6:14","nodeType":"YulIdentifier","src":"2869:6:14"},"nativeSrc":"2869:37:14","nodeType":"YulFunctionCall","src":"2869:37:14"},"nativeSrc":"2869:37:14","nodeType":"YulExpressionStatement","src":"2869:37:14"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"2794:118:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2847:5:14","nodeType":"YulTypedName","src":"2847:5:14","type":""},{"name":"pos","nativeSrc":"2854:3:14","nodeType":"YulTypedName","src":"2854:3:14","type":""}],"src":"2794:118:14"},{"body":{"nativeSrc":"3016:124:14","nodeType":"YulBlock","src":"3016:124:14","statements":[{"nativeSrc":"3026:26:14","nodeType":"YulAssignment","src":"3026:26:14","value":{"arguments":[{"name":"headStart","nativeSrc":"3038:9:14","nodeType":"YulIdentifier","src":"3038:9:14"},{"kind":"number","nativeSrc":"3049:2:14","nodeType":"YulLiteral","src":"3049:2:14","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3034:3:14","nodeType":"YulIdentifier","src":"3034:3:14"},"nativeSrc":"3034:18:14","nodeType":"YulFunctionCall","src":"3034:18:14"},"variableNames":[{"name":"tail","nativeSrc":"3026:4:14","nodeType":"YulIdentifier","src":"3026:4:14"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"3106:6:14","nodeType":"YulIdentifier","src":"3106:6:14"},{"arguments":[{"name":"headStart","nativeSrc":"3119:9:14","nodeType":"YulIdentifier","src":"3119:9:14"},{"kind":"number","nativeSrc":"3130:1:14","nodeType":"YulLiteral","src":"3130:1:14","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3115:3:14","nodeType":"YulIdentifier","src":"3115:3:14"},"nativeSrc":"3115:17:14","nodeType":"YulFunctionCall","src":"3115:17:14"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"3062:43:14","nodeType":"YulIdentifier","src":"3062:43:14"},"nativeSrc":"3062:71:14","nodeType":"YulFunctionCall","src":"3062:71:14"},"nativeSrc":"3062:71:14","nodeType":"YulExpressionStatement","src":"3062:71:14"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"2918:222:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2988:9:14","nodeType":"YulTypedName","src":"2988:9:14","type":""},{"name":"value0","nativeSrc":"3000:6:14","nodeType":"YulTypedName","src":"3000:6:14","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3011:4:14","nodeType":"YulTypedName","src":"3011:4:14","type":""}],"src":"2918:222:14"},{"body":{"nativeSrc":"3242:73:14","nodeType":"YulBlock","src":"3242:73:14","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3259:3:14","nodeType":"YulIdentifier","src":"3259:3:14"},{"name":"length","nativeSrc":"3264:6:14","nodeType":"YulIdentifier","src":"3264:6:14"}],"functionName":{"name":"mstore","nativeSrc":"3252:6:14","nodeType":"YulIdentifier","src":"3252:6:14"},"nativeSrc":"3252:19:14","nodeType":"YulFunctionCall","src":"3252:19:14"},"nativeSrc":"3252:19:14","nodeType":"YulExpressionStatement","src":"3252:19:14"},{"nativeSrc":"3280:29:14","nodeType":"YulAssignment","src":"3280:29:14","value":{"arguments":[{"name":"pos","nativeSrc":"3299:3:14","nodeType":"YulIdentifier","src":"3299:3:14"},{"kind":"number","nativeSrc":"3304:4:14","nodeType":"YulLiteral","src":"3304:4:14","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3295:3:14","nodeType":"YulIdentifier","src":"3295:3:14"},"nativeSrc":"3295:14:14","nodeType":"YulFunctionCall","src":"3295:14:14"},"variableNames":[{"name":"updated_pos","nativeSrc":"3280:11:14","nodeType":"YulIdentifier","src":"3280:11:14"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"3146:169:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"3214:3:14","nodeType":"YulTypedName","src":"3214:3:14","type":""},{"name":"length","nativeSrc":"3219:6:14","nodeType":"YulTypedName","src":"3219:6:14","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"3230:11:14","nodeType":"YulTypedName","src":"3230:11:14","type":""}],"src":"3146:169:14"},{"body":{"nativeSrc":"3427:184:14","nodeType":"YulBlock","src":"3427:184:14","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"3449:6:14","nodeType":"YulIdentifier","src":"3449:6:14"},{"kind":"number","nativeSrc":"3457:1:14","nodeType":"YulLiteral","src":"3457:1:14","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3445:3:14","nodeType":"YulIdentifier","src":"3445:3:14"},"nativeSrc":"3445:14:14","nodeType":"YulFunctionCall","src":"3445:14:14"},{"hexValue":"5472616e73706172656e745570677261646561626c6550726f78793a2061646d","kind":"string","nativeSrc":"3461:34:14","nodeType":"YulLiteral","src":"3461:34:14","type":"","value":"TransparentUpgradeableProxy: adm"}],"functionName":{"name":"mstore","nativeSrc":"3438:6:14","nodeType":"YulIdentifier","src":"3438:6:14"},"nativeSrc":"3438:58:14","nodeType":"YulFunctionCall","src":"3438:58:14"},"nativeSrc":"3438:58:14","nodeType":"YulExpressionStatement","src":"3438:58:14"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"3517:6:14","nodeType":"YulIdentifier","src":"3517:6:14"},{"kind":"number","nativeSrc":"3525:2:14","nodeType":"YulLiteral","src":"3525:2:14","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3513:3:14","nodeType":"YulIdentifier","src":"3513:3:14"},"nativeSrc":"3513:15:14","nodeType":"YulFunctionCall","src":"3513:15:14"},{"hexValue":"696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267","kind":"string","nativeSrc":"3530:34:14","nodeType":"YulLiteral","src":"3530:34:14","type":"","value":"in cannot fallback to proxy targ"}],"functionName":{"name":"mstore","nativeSrc":"3506:6:14","nodeType":"YulIdentifier","src":"3506:6:14"},"nativeSrc":"3506:59:14","nodeType":"YulFunctionCall","src":"3506:59:14"},"nativeSrc":"3506:59:14","nodeType":"YulExpressionStatement","src":"3506:59:14"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"3586:6:14","nodeType":"YulIdentifier","src":"3586:6:14"},{"kind":"number","nativeSrc":"3594:2:14","nodeType":"YulLiteral","src":"3594:2:14","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3582:3:14","nodeType":"YulIdentifier","src":"3582:3:14"},"nativeSrc":"3582:15:14","nodeType":"YulFunctionCall","src":"3582:15:14"},{"hexValue":"6574","kind":"string","nativeSrc":"3599:4:14","nodeType":"YulLiteral","src":"3599:4:14","type":"","value":"et"}],"functionName":{"name":"mstore","nativeSrc":"3575:6:14","nodeType":"YulIdentifier","src":"3575:6:14"},"nativeSrc":"3575:29:14","nodeType":"YulFunctionCall","src":"3575:29:14"},"nativeSrc":"3575:29:14","nodeType":"YulExpressionStatement","src":"3575:29:14"}]},"name":"store_literal_in_memory_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d","nativeSrc":"3321:290:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"3419:6:14","nodeType":"YulTypedName","src":"3419:6:14","type":""}],"src":"3321:290:14"},{"body":{"nativeSrc":"3763:220:14","nodeType":"YulBlock","src":"3763:220:14","statements":[{"nativeSrc":"3773:74:14","nodeType":"YulAssignment","src":"3773:74:14","value":{"arguments":[{"name":"pos","nativeSrc":"3839:3:14","nodeType":"YulIdentifier","src":"3839:3:14"},{"kind":"number","nativeSrc":"3844:2:14","nodeType":"YulLiteral","src":"3844:2:14","type":"","value":"66"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"3780:58:14","nodeType":"YulIdentifier","src":"3780:58:14"},"nativeSrc":"3780:67:14","nodeType":"YulFunctionCall","src":"3780:67:14"},"variableNames":[{"name":"pos","nativeSrc":"3773:3:14","nodeType":"YulIdentifier","src":"3773:3:14"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"3945:3:14","nodeType":"YulIdentifier","src":"3945:3:14"}],"functionName":{"name":"store_literal_in_memory_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d","nativeSrc":"3856:88:14","nodeType":"YulIdentifier","src":"3856:88:14"},"nativeSrc":"3856:93:14","nodeType":"YulFunctionCall","src":"3856:93:14"},"nativeSrc":"3856:93:14","nodeType":"YulExpressionStatement","src":"3856:93:14"},{"nativeSrc":"3958:19:14","nodeType":"YulAssignment","src":"3958:19:14","value":{"arguments":[{"name":"pos","nativeSrc":"3969:3:14","nodeType":"YulIdentifier","src":"3969:3:14"},{"kind":"number","nativeSrc":"3974:2:14","nodeType":"YulLiteral","src":"3974:2:14","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"3965:3:14","nodeType":"YulIdentifier","src":"3965:3:14"},"nativeSrc":"3965:12:14","nodeType":"YulFunctionCall","src":"3965:12:14"},"variableNames":[{"name":"end","nativeSrc":"3958:3:14","nodeType":"YulIdentifier","src":"3958:3:14"}]}]},"name":"abi_encode_t_stringliteral_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d_to_t_string_memory_ptr_fromStack","nativeSrc":"3617:366:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"3751:3:14","nodeType":"YulTypedName","src":"3751:3:14","type":""}],"returnVariables":[{"name":"end","nativeSrc":"3759:3:14","nodeType":"YulTypedName","src":"3759:3:14","type":""}],"src":"3617:366:14"},{"body":{"nativeSrc":"4160:248:14","nodeType":"YulBlock","src":"4160:248:14","statements":[{"nativeSrc":"4170:26:14","nodeType":"YulAssignment","src":"4170:26:14","value":{"arguments":[{"name":"headStart","nativeSrc":"4182:9:14","nodeType":"YulIdentifier","src":"4182:9:14"},{"kind":"number","nativeSrc":"4193:2:14","nodeType":"YulLiteral","src":"4193:2:14","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4178:3:14","nodeType":"YulIdentifier","src":"4178:3:14"},"nativeSrc":"4178:18:14","nodeType":"YulFunctionCall","src":"4178:18:14"},"variableNames":[{"name":"tail","nativeSrc":"4170:4:14","nodeType":"YulIdentifier","src":"4170:4:14"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4217:9:14","nodeType":"YulIdentifier","src":"4217:9:14"},{"kind":"number","nativeSrc":"4228:1:14","nodeType":"YulLiteral","src":"4228:1:14","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4213:3:14","nodeType":"YulIdentifier","src":"4213:3:14"},"nativeSrc":"4213:17:14","nodeType":"YulFunctionCall","src":"4213:17:14"},{"arguments":[{"name":"tail","nativeSrc":"4236:4:14","nodeType":"YulIdentifier","src":"4236:4:14"},{"name":"headStart","nativeSrc":"4242:9:14","nodeType":"YulIdentifier","src":"4242:9:14"}],"functionName":{"name":"sub","nativeSrc":"4232:3:14","nodeType":"YulIdentifier","src":"4232:3:14"},"nativeSrc":"4232:20:14","nodeType":"YulFunctionCall","src":"4232:20:14"}],"functionName":{"name":"mstore","nativeSrc":"4206:6:14","nodeType":"YulIdentifier","src":"4206:6:14"},"nativeSrc":"4206:47:14","nodeType":"YulFunctionCall","src":"4206:47:14"},"nativeSrc":"4206:47:14","nodeType":"YulExpressionStatement","src":"4206:47:14"},{"nativeSrc":"4262:139:14","nodeType":"YulAssignment","src":"4262:139:14","value":{"arguments":[{"name":"tail","nativeSrc":"4396:4:14","nodeType":"YulIdentifier","src":"4396:4:14"}],"functionName":{"name":"abi_encode_t_stringliteral_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d_to_t_string_memory_ptr_fromStack","nativeSrc":"4270:124:14","nodeType":"YulIdentifier","src":"4270:124:14"},"nativeSrc":"4270:131:14","nodeType":"YulFunctionCall","src":"4270:131:14"},"variableNames":[{"name":"tail","nativeSrc":"4262:4:14","nodeType":"YulIdentifier","src":"4262:4:14"}]}]},"name":"abi_encode_tuple_t_stringliteral_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"3989:419:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4140:9:14","nodeType":"YulTypedName","src":"4140:9:14","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4155:4:14","nodeType":"YulTypedName","src":"4155:4:14","type":""}],"src":"3989:419:14"},{"body":{"nativeSrc":"4520:126:14","nodeType":"YulBlock","src":"4520:126:14","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"4542:6:14","nodeType":"YulIdentifier","src":"4542:6:14"},{"kind":"number","nativeSrc":"4550:1:14","nodeType":"YulLiteral","src":"4550:1:14","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4538:3:14","nodeType":"YulIdentifier","src":"4538:3:14"},"nativeSrc":"4538:14:14","nodeType":"YulFunctionCall","src":"4538:14:14"},{"hexValue":"455243313936373a206e657720696d706c656d656e746174696f6e206973206e","kind":"string","nativeSrc":"4554:34:14","nodeType":"YulLiteral","src":"4554:34:14","type":"","value":"ERC1967: new implementation is n"}],"functionName":{"name":"mstore","nativeSrc":"4531:6:14","nodeType":"YulIdentifier","src":"4531:6:14"},"nativeSrc":"4531:58:14","nodeType":"YulFunctionCall","src":"4531:58:14"},"nativeSrc":"4531:58:14","nodeType":"YulExpressionStatement","src":"4531:58:14"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"4610:6:14","nodeType":"YulIdentifier","src":"4610:6:14"},{"kind":"number","nativeSrc":"4618:2:14","nodeType":"YulLiteral","src":"4618:2:14","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4606:3:14","nodeType":"YulIdentifier","src":"4606:3:14"},"nativeSrc":"4606:15:14","nodeType":"YulFunctionCall","src":"4606:15:14"},{"hexValue":"6f74206120636f6e7472616374","kind":"string","nativeSrc":"4623:15:14","nodeType":"YulLiteral","src":"4623:15:14","type":"","value":"ot a contract"}],"functionName":{"name":"mstore","nativeSrc":"4599:6:14","nodeType":"YulIdentifier","src":"4599:6:14"},"nativeSrc":"4599:40:14","nodeType":"YulFunctionCall","src":"4599:40:14"},"nativeSrc":"4599:40:14","nodeType":"YulExpressionStatement","src":"4599:40:14"}]},"name":"store_literal_in_memory_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65","nativeSrc":"4414:232:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"4512:6:14","nodeType":"YulTypedName","src":"4512:6:14","type":""}],"src":"4414:232:14"},{"body":{"nativeSrc":"4798:220:14","nodeType":"YulBlock","src":"4798:220:14","statements":[{"nativeSrc":"4808:74:14","nodeType":"YulAssignment","src":"4808:74:14","value":{"arguments":[{"name":"pos","nativeSrc":"4874:3:14","nodeType":"YulIdentifier","src":"4874:3:14"},{"kind":"number","nativeSrc":"4879:2:14","nodeType":"YulLiteral","src":"4879:2:14","type":"","value":"45"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"4815:58:14","nodeType":"YulIdentifier","src":"4815:58:14"},"nativeSrc":"4815:67:14","nodeType":"YulFunctionCall","src":"4815:67:14"},"variableNames":[{"name":"pos","nativeSrc":"4808:3:14","nodeType":"YulIdentifier","src":"4808:3:14"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"4980:3:14","nodeType":"YulIdentifier","src":"4980:3:14"}],"functionName":{"name":"store_literal_in_memory_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65","nativeSrc":"4891:88:14","nodeType":"YulIdentifier","src":"4891:88:14"},"nativeSrc":"4891:93:14","nodeType":"YulFunctionCall","src":"4891:93:14"},"nativeSrc":"4891:93:14","nodeType":"YulExpressionStatement","src":"4891:93:14"},{"nativeSrc":"4993:19:14","nodeType":"YulAssignment","src":"4993:19:14","value":{"arguments":[{"name":"pos","nativeSrc":"5004:3:14","nodeType":"YulIdentifier","src":"5004:3:14"},{"kind":"number","nativeSrc":"5009:2:14","nodeType":"YulLiteral","src":"5009:2:14","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5000:3:14","nodeType":"YulIdentifier","src":"5000:3:14"},"nativeSrc":"5000:12:14","nodeType":"YulFunctionCall","src":"5000:12:14"},"variableNames":[{"name":"end","nativeSrc":"4993:3:14","nodeType":"YulIdentifier","src":"4993:3:14"}]}]},"name":"abi_encode_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65_to_t_string_memory_ptr_fromStack","nativeSrc":"4652:366:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"4786:3:14","nodeType":"YulTypedName","src":"4786:3:14","type":""}],"returnVariables":[{"name":"end","nativeSrc":"4794:3:14","nodeType":"YulTypedName","src":"4794:3:14","type":""}],"src":"4652:366:14"},{"body":{"nativeSrc":"5195:248:14","nodeType":"YulBlock","src":"5195:248:14","statements":[{"nativeSrc":"5205:26:14","nodeType":"YulAssignment","src":"5205:26:14","value":{"arguments":[{"name":"headStart","nativeSrc":"5217:9:14","nodeType":"YulIdentifier","src":"5217:9:14"},{"kind":"number","nativeSrc":"5228:2:14","nodeType":"YulLiteral","src":"5228:2:14","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5213:3:14","nodeType":"YulIdentifier","src":"5213:3:14"},"nativeSrc":"5213:18:14","nodeType":"YulFunctionCall","src":"5213:18:14"},"variableNames":[{"name":"tail","nativeSrc":"5205:4:14","nodeType":"YulIdentifier","src":"5205:4:14"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5252:9:14","nodeType":"YulIdentifier","src":"5252:9:14"},{"kind":"number","nativeSrc":"5263:1:14","nodeType":"YulLiteral","src":"5263:1:14","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5248:3:14","nodeType":"YulIdentifier","src":"5248:3:14"},"nativeSrc":"5248:17:14","nodeType":"YulFunctionCall","src":"5248:17:14"},{"arguments":[{"name":"tail","nativeSrc":"5271:4:14","nodeType":"YulIdentifier","src":"5271:4:14"},{"name":"headStart","nativeSrc":"5277:9:14","nodeType":"YulIdentifier","src":"5277:9:14"}],"functionName":{"name":"sub","nativeSrc":"5267:3:14","nodeType":"YulIdentifier","src":"5267:3:14"},"nativeSrc":"5267:20:14","nodeType":"YulFunctionCall","src":"5267:20:14"}],"functionName":{"name":"mstore","nativeSrc":"5241:6:14","nodeType":"YulIdentifier","src":"5241:6:14"},"nativeSrc":"5241:47:14","nodeType":"YulFunctionCall","src":"5241:47:14"},"nativeSrc":"5241:47:14","nodeType":"YulExpressionStatement","src":"5241:47:14"},{"nativeSrc":"5297:139:14","nodeType":"YulAssignment","src":"5297:139:14","value":{"arguments":[{"name":"tail","nativeSrc":"5431:4:14","nodeType":"YulIdentifier","src":"5431:4:14"}],"functionName":{"name":"abi_encode_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65_to_t_string_memory_ptr_fromStack","nativeSrc":"5305:124:14","nodeType":"YulIdentifier","src":"5305:124:14"},"nativeSrc":"5305:131:14","nodeType":"YulFunctionCall","src":"5305:131:14"},"variableNames":[{"name":"tail","nativeSrc":"5297:4:14","nodeType":"YulIdentifier","src":"5297:4:14"}]}]},"name":"abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"5024:419:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5175:9:14","nodeType":"YulTypedName","src":"5175:9:14","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5190:4:14","nodeType":"YulTypedName","src":"5190:4:14","type":""}],"src":"5024:419:14"},{"body":{"nativeSrc":"5555:119:14","nodeType":"YulBlock","src":"5555:119:14","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"5577:6:14","nodeType":"YulIdentifier","src":"5577:6:14"},{"kind":"number","nativeSrc":"5585:1:14","nodeType":"YulLiteral","src":"5585:1:14","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5573:3:14","nodeType":"YulIdentifier","src":"5573:3:14"},"nativeSrc":"5573:14:14","nodeType":"YulFunctionCall","src":"5573:14:14"},{"hexValue":"416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f","kind":"string","nativeSrc":"5589:34:14","nodeType":"YulLiteral","src":"5589:34:14","type":"","value":"Address: delegate call to non-co"}],"functionName":{"name":"mstore","nativeSrc":"5566:6:14","nodeType":"YulIdentifier","src":"5566:6:14"},"nativeSrc":"5566:58:14","nodeType":"YulFunctionCall","src":"5566:58:14"},"nativeSrc":"5566:58:14","nodeType":"YulExpressionStatement","src":"5566:58:14"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"5645:6:14","nodeType":"YulIdentifier","src":"5645:6:14"},{"kind":"number","nativeSrc":"5653:2:14","nodeType":"YulLiteral","src":"5653:2:14","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5641:3:14","nodeType":"YulIdentifier","src":"5641:3:14"},"nativeSrc":"5641:15:14","nodeType":"YulFunctionCall","src":"5641:15:14"},{"hexValue":"6e7472616374","kind":"string","nativeSrc":"5658:8:14","nodeType":"YulLiteral","src":"5658:8:14","type":"","value":"ntract"}],"functionName":{"name":"mstore","nativeSrc":"5634:6:14","nodeType":"YulIdentifier","src":"5634:6:14"},"nativeSrc":"5634:33:14","nodeType":"YulFunctionCall","src":"5634:33:14"},"nativeSrc":"5634:33:14","nodeType":"YulExpressionStatement","src":"5634:33:14"}]},"name":"store_literal_in_memory_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520","nativeSrc":"5449:225:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"5547:6:14","nodeType":"YulTypedName","src":"5547:6:14","type":""}],"src":"5449:225:14"},{"body":{"nativeSrc":"5826:220:14","nodeType":"YulBlock","src":"5826:220:14","statements":[{"nativeSrc":"5836:74:14","nodeType":"YulAssignment","src":"5836:74:14","value":{"arguments":[{"name":"pos","nativeSrc":"5902:3:14","nodeType":"YulIdentifier","src":"5902:3:14"},{"kind":"number","nativeSrc":"5907:2:14","nodeType":"YulLiteral","src":"5907:2:14","type":"","value":"38"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"5843:58:14","nodeType":"YulIdentifier","src":"5843:58:14"},"nativeSrc":"5843:67:14","nodeType":"YulFunctionCall","src":"5843:67:14"},"variableNames":[{"name":"pos","nativeSrc":"5836:3:14","nodeType":"YulIdentifier","src":"5836:3:14"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"6008:3:14","nodeType":"YulIdentifier","src":"6008:3:14"}],"functionName":{"name":"store_literal_in_memory_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520","nativeSrc":"5919:88:14","nodeType":"YulIdentifier","src":"5919:88:14"},"nativeSrc":"5919:93:14","nodeType":"YulFunctionCall","src":"5919:93:14"},"nativeSrc":"5919:93:14","nodeType":"YulExpressionStatement","src":"5919:93:14"},{"nativeSrc":"6021:19:14","nodeType":"YulAssignment","src":"6021:19:14","value":{"arguments":[{"name":"pos","nativeSrc":"6032:3:14","nodeType":"YulIdentifier","src":"6032:3:14"},{"kind":"number","nativeSrc":"6037:2:14","nodeType":"YulLiteral","src":"6037:2:14","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"6028:3:14","nodeType":"YulIdentifier","src":"6028:3:14"},"nativeSrc":"6028:12:14","nodeType":"YulFunctionCall","src":"6028:12:14"},"variableNames":[{"name":"end","nativeSrc":"6021:3:14","nodeType":"YulIdentifier","src":"6021:3:14"}]}]},"name":"abi_encode_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520_to_t_string_memory_ptr_fromStack","nativeSrc":"5680:366:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"5814:3:14","nodeType":"YulTypedName","src":"5814:3:14","type":""}],"returnVariables":[{"name":"end","nativeSrc":"5822:3:14","nodeType":"YulTypedName","src":"5822:3:14","type":""}],"src":"5680:366:14"},{"body":{"nativeSrc":"6223:248:14","nodeType":"YulBlock","src":"6223:248:14","statements":[{"nativeSrc":"6233:26:14","nodeType":"YulAssignment","src":"6233:26:14","value":{"arguments":[{"name":"headStart","nativeSrc":"6245:9:14","nodeType":"YulIdentifier","src":"6245:9:14"},{"kind":"number","nativeSrc":"6256:2:14","nodeType":"YulLiteral","src":"6256:2:14","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6241:3:14","nodeType":"YulIdentifier","src":"6241:3:14"},"nativeSrc":"6241:18:14","nodeType":"YulFunctionCall","src":"6241:18:14"},"variableNames":[{"name":"tail","nativeSrc":"6233:4:14","nodeType":"YulIdentifier","src":"6233:4:14"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6280:9:14","nodeType":"YulIdentifier","src":"6280:9:14"},{"kind":"number","nativeSrc":"6291:1:14","nodeType":"YulLiteral","src":"6291:1:14","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6276:3:14","nodeType":"YulIdentifier","src":"6276:3:14"},"nativeSrc":"6276:17:14","nodeType":"YulFunctionCall","src":"6276:17:14"},{"arguments":[{"name":"tail","nativeSrc":"6299:4:14","nodeType":"YulIdentifier","src":"6299:4:14"},{"name":"headStart","nativeSrc":"6305:9:14","nodeType":"YulIdentifier","src":"6305:9:14"}],"functionName":{"name":"sub","nativeSrc":"6295:3:14","nodeType":"YulIdentifier","src":"6295:3:14"},"nativeSrc":"6295:20:14","nodeType":"YulFunctionCall","src":"6295:20:14"}],"functionName":{"name":"mstore","nativeSrc":"6269:6:14","nodeType":"YulIdentifier","src":"6269:6:14"},"nativeSrc":"6269:47:14","nodeType":"YulFunctionCall","src":"6269:47:14"},"nativeSrc":"6269:47:14","nodeType":"YulExpressionStatement","src":"6269:47:14"},{"nativeSrc":"6325:139:14","nodeType":"YulAssignment","src":"6325:139:14","value":{"arguments":[{"name":"tail","nativeSrc":"6459:4:14","nodeType":"YulIdentifier","src":"6459:4:14"}],"functionName":{"name":"abi_encode_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520_to_t_string_memory_ptr_fromStack","nativeSrc":"6333:124:14","nodeType":"YulIdentifier","src":"6333:124:14"},"nativeSrc":"6333:131:14","nodeType":"YulFunctionCall","src":"6333:131:14"},"variableNames":[{"name":"tail","nativeSrc":"6325:4:14","nodeType":"YulIdentifier","src":"6325:4:14"}]}]},"name":"abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"6052:419:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6203:9:14","nodeType":"YulTypedName","src":"6203:9:14","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6218:4:14","nodeType":"YulTypedName","src":"6218:4:14","type":""}],"src":"6052:419:14"},{"body":{"nativeSrc":"6535:40:14","nodeType":"YulBlock","src":"6535:40:14","statements":[{"nativeSrc":"6546:22:14","nodeType":"YulAssignment","src":"6546:22:14","value":{"arguments":[{"name":"value","nativeSrc":"6562:5:14","nodeType":"YulIdentifier","src":"6562:5:14"}],"functionName":{"name":"mload","nativeSrc":"6556:5:14","nodeType":"YulIdentifier","src":"6556:5:14"},"nativeSrc":"6556:12:14","nodeType":"YulFunctionCall","src":"6556:12:14"},"variableNames":[{"name":"length","nativeSrc":"6546:6:14","nodeType":"YulIdentifier","src":"6546:6:14"}]}]},"name":"array_length_t_bytes_memory_ptr","nativeSrc":"6477:98:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6518:5:14","nodeType":"YulTypedName","src":"6518:5:14","type":""}],"returnVariables":[{"name":"length","nativeSrc":"6528:6:14","nodeType":"YulTypedName","src":"6528:6:14","type":""}],"src":"6477:98:14"},{"body":{"nativeSrc":"6694:34:14","nodeType":"YulBlock","src":"6694:34:14","statements":[{"nativeSrc":"6704:18:14","nodeType":"YulAssignment","src":"6704:18:14","value":{"name":"pos","nativeSrc":"6719:3:14","nodeType":"YulIdentifier","src":"6719:3:14"},"variableNames":[{"name":"updated_pos","nativeSrc":"6704:11:14","nodeType":"YulIdentifier","src":"6704:11:14"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"6581:147:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"6666:3:14","nodeType":"YulTypedName","src":"6666:3:14","type":""},{"name":"length","nativeSrc":"6671:6:14","nodeType":"YulTypedName","src":"6671:6:14","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"6682:11:14","nodeType":"YulTypedName","src":"6682:11:14","type":""}],"src":"6581:147:14"},{"body":{"nativeSrc":"6796:77:14","nodeType":"YulBlock","src":"6796:77:14","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"6813:3:14","nodeType":"YulIdentifier","src":"6813:3:14"},{"name":"src","nativeSrc":"6818:3:14","nodeType":"YulIdentifier","src":"6818:3:14"},{"name":"length","nativeSrc":"6823:6:14","nodeType":"YulIdentifier","src":"6823:6:14"}],"functionName":{"name":"mcopy","nativeSrc":"6807:5:14","nodeType":"YulIdentifier","src":"6807:5:14"},"nativeSrc":"6807:23:14","nodeType":"YulFunctionCall","src":"6807:23:14"},"nativeSrc":"6807:23:14","nodeType":"YulExpressionStatement","src":"6807:23:14"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"6850:3:14","nodeType":"YulIdentifier","src":"6850:3:14"},{"name":"length","nativeSrc":"6855:6:14","nodeType":"YulIdentifier","src":"6855:6:14"}],"functionName":{"name":"add","nativeSrc":"6846:3:14","nodeType":"YulIdentifier","src":"6846:3:14"},"nativeSrc":"6846:16:14","nodeType":"YulFunctionCall","src":"6846:16:14"},{"kind":"number","nativeSrc":"6864:1:14","nodeType":"YulLiteral","src":"6864:1:14","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"6839:6:14","nodeType":"YulIdentifier","src":"6839:6:14"},"nativeSrc":"6839:27:14","nodeType":"YulFunctionCall","src":"6839:27:14"},"nativeSrc":"6839:27:14","nodeType":"YulExpressionStatement","src":"6839:27:14"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"6734:139:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"6778:3:14","nodeType":"YulTypedName","src":"6778:3:14","type":""},{"name":"dst","nativeSrc":"6783:3:14","nodeType":"YulTypedName","src":"6783:3:14","type":""},{"name":"length","nativeSrc":"6788:6:14","nodeType":"YulTypedName","src":"6788:6:14","type":""}],"src":"6734:139:14"},{"body":{"nativeSrc":"6987:278:14","nodeType":"YulBlock","src":"6987:278:14","statements":[{"nativeSrc":"6997:52:14","nodeType":"YulVariableDeclaration","src":"6997:52:14","value":{"arguments":[{"name":"value","nativeSrc":"7043:5:14","nodeType":"YulIdentifier","src":"7043:5:14"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"7011:31:14","nodeType":"YulIdentifier","src":"7011:31:14"},"nativeSrc":"7011:38:14","nodeType":"YulFunctionCall","src":"7011:38:14"},"variables":[{"name":"length","nativeSrc":"7001:6:14","nodeType":"YulTypedName","src":"7001:6:14","type":""}]},{"nativeSrc":"7058:95:14","nodeType":"YulAssignment","src":"7058:95:14","value":{"arguments":[{"name":"pos","nativeSrc":"7141:3:14","nodeType":"YulIdentifier","src":"7141:3:14"},{"name":"length","nativeSrc":"7146:6:14","nodeType":"YulIdentifier","src":"7146:6:14"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"7065:75:14","nodeType":"YulIdentifier","src":"7065:75:14"},"nativeSrc":"7065:88:14","nodeType":"YulFunctionCall","src":"7065:88:14"},"variableNames":[{"name":"pos","nativeSrc":"7058:3:14","nodeType":"YulIdentifier","src":"7058:3:14"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7201:5:14","nodeType":"YulIdentifier","src":"7201:5:14"},{"kind":"number","nativeSrc":"7208:4:14","nodeType":"YulLiteral","src":"7208:4:14","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7197:3:14","nodeType":"YulIdentifier","src":"7197:3:14"},"nativeSrc":"7197:16:14","nodeType":"YulFunctionCall","src":"7197:16:14"},{"name":"pos","nativeSrc":"7215:3:14","nodeType":"YulIdentifier","src":"7215:3:14"},{"name":"length","nativeSrc":"7220:6:14","nodeType":"YulIdentifier","src":"7220:6:14"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"7162:34:14","nodeType":"YulIdentifier","src":"7162:34:14"},"nativeSrc":"7162:65:14","nodeType":"YulFunctionCall","src":"7162:65:14"},"nativeSrc":"7162:65:14","nodeType":"YulExpressionStatement","src":"7162:65:14"},{"nativeSrc":"7236:23:14","nodeType":"YulAssignment","src":"7236:23:14","value":{"arguments":[{"name":"pos","nativeSrc":"7247:3:14","nodeType":"YulIdentifier","src":"7247:3:14"},{"name":"length","nativeSrc":"7252:6:14","nodeType":"YulIdentifier","src":"7252:6:14"}],"functionName":{"name":"add","nativeSrc":"7243:3:14","nodeType":"YulIdentifier","src":"7243:3:14"},"nativeSrc":"7243:16:14","nodeType":"YulFunctionCall","src":"7243:16:14"},"variableNames":[{"name":"end","nativeSrc":"7236:3:14","nodeType":"YulIdentifier","src":"7236:3:14"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"6879:386:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6968:5:14","nodeType":"YulTypedName","src":"6968:5:14","type":""},{"name":"pos","nativeSrc":"6975:3:14","nodeType":"YulTypedName","src":"6975:3:14","type":""}],"returnVariables":[{"name":"end","nativeSrc":"6983:3:14","nodeType":"YulTypedName","src":"6983:3:14","type":""}],"src":"6879:386:14"},{"body":{"nativeSrc":"7405:137:14","nodeType":"YulBlock","src":"7405:137:14","statements":[{"nativeSrc":"7416:100:14","nodeType":"YulAssignment","src":"7416:100:14","value":{"arguments":[{"name":"value0","nativeSrc":"7503:6:14","nodeType":"YulIdentifier","src":"7503:6:14"},{"name":"pos","nativeSrc":"7512:3:14","nodeType":"YulIdentifier","src":"7512:3:14"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"7423:79:14","nodeType":"YulIdentifier","src":"7423:79:14"},"nativeSrc":"7423:93:14","nodeType":"YulFunctionCall","src":"7423:93:14"},"variableNames":[{"name":"pos","nativeSrc":"7416:3:14","nodeType":"YulIdentifier","src":"7416:3:14"}]},{"nativeSrc":"7526:10:14","nodeType":"YulAssignment","src":"7526:10:14","value":{"name":"pos","nativeSrc":"7533:3:14","nodeType":"YulIdentifier","src":"7533:3:14"},"variableNames":[{"name":"end","nativeSrc":"7526:3:14","nodeType":"YulIdentifier","src":"7526:3:14"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"7271:271:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"7384:3:14","nodeType":"YulTypedName","src":"7384:3:14","type":""},{"name":"value0","nativeSrc":"7390:6:14","nodeType":"YulTypedName","src":"7390:6:14","type":""}],"returnVariables":[{"name":"end","nativeSrc":"7401:3:14","nodeType":"YulTypedName","src":"7401:3:14","type":""}],"src":"7271:271:14"},{"body":{"nativeSrc":"7607:40:14","nodeType":"YulBlock","src":"7607:40:14","statements":[{"nativeSrc":"7618:22:14","nodeType":"YulAssignment","src":"7618:22:14","value":{"arguments":[{"name":"value","nativeSrc":"7634:5:14","nodeType":"YulIdentifier","src":"7634:5:14"}],"functionName":{"name":"mload","nativeSrc":"7628:5:14","nodeType":"YulIdentifier","src":"7628:5:14"},"nativeSrc":"7628:12:14","nodeType":"YulFunctionCall","src":"7628:12:14"},"variableNames":[{"name":"length","nativeSrc":"7618:6:14","nodeType":"YulIdentifier","src":"7618:6:14"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"7548:99:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7590:5:14","nodeType":"YulTypedName","src":"7590:5:14","type":""}],"returnVariables":[{"name":"length","nativeSrc":"7600:6:14","nodeType":"YulTypedName","src":"7600:6:14","type":""}],"src":"7548:99:14"},{"body":{"nativeSrc":"7701:54:14","nodeType":"YulBlock","src":"7701:54:14","statements":[{"nativeSrc":"7711:38:14","nodeType":"YulAssignment","src":"7711:38:14","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7729:5:14","nodeType":"YulIdentifier","src":"7729:5:14"},{"kind":"number","nativeSrc":"7736:2:14","nodeType":"YulLiteral","src":"7736:2:14","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"7725:3:14","nodeType":"YulIdentifier","src":"7725:3:14"},"nativeSrc":"7725:14:14","nodeType":"YulFunctionCall","src":"7725:14:14"},{"arguments":[{"kind":"number","nativeSrc":"7745:2:14","nodeType":"YulLiteral","src":"7745:2:14","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"7741:3:14","nodeType":"YulIdentifier","src":"7741:3:14"},"nativeSrc":"7741:7:14","nodeType":"YulFunctionCall","src":"7741:7:14"}],"functionName":{"name":"and","nativeSrc":"7721:3:14","nodeType":"YulIdentifier","src":"7721:3:14"},"nativeSrc":"7721:28:14","nodeType":"YulFunctionCall","src":"7721:28:14"},"variableNames":[{"name":"result","nativeSrc":"7711:6:14","nodeType":"YulIdentifier","src":"7711:6:14"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"7653:102:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7684:5:14","nodeType":"YulTypedName","src":"7684:5:14","type":""}],"returnVariables":[{"name":"result","nativeSrc":"7694:6:14","nodeType":"YulTypedName","src":"7694:6:14","type":""}],"src":"7653:102:14"},{"body":{"nativeSrc":"7853:285:14","nodeType":"YulBlock","src":"7853:285:14","statements":[{"nativeSrc":"7863:53:14","nodeType":"YulVariableDeclaration","src":"7863:53:14","value":{"arguments":[{"name":"value","nativeSrc":"7910:5:14","nodeType":"YulIdentifier","src":"7910:5:14"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"7877:32:14","nodeType":"YulIdentifier","src":"7877:32:14"},"nativeSrc":"7877:39:14","nodeType":"YulFunctionCall","src":"7877:39:14"},"variables":[{"name":"length","nativeSrc":"7867:6:14","nodeType":"YulTypedName","src":"7867:6:14","type":""}]},{"nativeSrc":"7925:78:14","nodeType":"YulAssignment","src":"7925:78:14","value":{"arguments":[{"name":"pos","nativeSrc":"7991:3:14","nodeType":"YulIdentifier","src":"7991:3:14"},{"name":"length","nativeSrc":"7996:6:14","nodeType":"YulIdentifier","src":"7996:6:14"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"7932:58:14","nodeType":"YulIdentifier","src":"7932:58:14"},"nativeSrc":"7932:71:14","nodeType":"YulFunctionCall","src":"7932:71:14"},"variableNames":[{"name":"pos","nativeSrc":"7925:3:14","nodeType":"YulIdentifier","src":"7925:3:14"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"8051:5:14","nodeType":"YulIdentifier","src":"8051:5:14"},{"kind":"number","nativeSrc":"8058:4:14","nodeType":"YulLiteral","src":"8058:4:14","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8047:3:14","nodeType":"YulIdentifier","src":"8047:3:14"},"nativeSrc":"8047:16:14","nodeType":"YulFunctionCall","src":"8047:16:14"},{"name":"pos","nativeSrc":"8065:3:14","nodeType":"YulIdentifier","src":"8065:3:14"},{"name":"length","nativeSrc":"8070:6:14","nodeType":"YulIdentifier","src":"8070:6:14"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"8012:34:14","nodeType":"YulIdentifier","src":"8012:34:14"},"nativeSrc":"8012:65:14","nodeType":"YulFunctionCall","src":"8012:65:14"},"nativeSrc":"8012:65:14","nodeType":"YulExpressionStatement","src":"8012:65:14"},{"nativeSrc":"8086:46:14","nodeType":"YulAssignment","src":"8086:46:14","value":{"arguments":[{"name":"pos","nativeSrc":"8097:3:14","nodeType":"YulIdentifier","src":"8097:3:14"},{"arguments":[{"name":"length","nativeSrc":"8124:6:14","nodeType":"YulIdentifier","src":"8124:6:14"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"8102:21:14","nodeType":"YulIdentifier","src":"8102:21:14"},"nativeSrc":"8102:29:14","nodeType":"YulFunctionCall","src":"8102:29:14"}],"functionName":{"name":"add","nativeSrc":"8093:3:14","nodeType":"YulIdentifier","src":"8093:3:14"},"nativeSrc":"8093:39:14","nodeType":"YulFunctionCall","src":"8093:39:14"},"variableNames":[{"name":"end","nativeSrc":"8086:3:14","nodeType":"YulIdentifier","src":"8086:3:14"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"7761:377:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7834:5:14","nodeType":"YulTypedName","src":"7834:5:14","type":""},{"name":"pos","nativeSrc":"7841:3:14","nodeType":"YulTypedName","src":"7841:3:14","type":""}],"returnVariables":[{"name":"end","nativeSrc":"7849:3:14","nodeType":"YulTypedName","src":"7849:3:14","type":""}],"src":"7761:377:14"},{"body":{"nativeSrc":"8262:195:14","nodeType":"YulBlock","src":"8262:195:14","statements":[{"nativeSrc":"8272:26:14","nodeType":"YulAssignment","src":"8272:26:14","value":{"arguments":[{"name":"headStart","nativeSrc":"8284:9:14","nodeType":"YulIdentifier","src":"8284:9:14"},{"kind":"number","nativeSrc":"8295:2:14","nodeType":"YulLiteral","src":"8295:2:14","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8280:3:14","nodeType":"YulIdentifier","src":"8280:3:14"},"nativeSrc":"8280:18:14","nodeType":"YulFunctionCall","src":"8280:18:14"},"variableNames":[{"name":"tail","nativeSrc":"8272:4:14","nodeType":"YulIdentifier","src":"8272:4:14"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8319:9:14","nodeType":"YulIdentifier","src":"8319:9:14"},{"kind":"number","nativeSrc":"8330:1:14","nodeType":"YulLiteral","src":"8330:1:14","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"8315:3:14","nodeType":"YulIdentifier","src":"8315:3:14"},"nativeSrc":"8315:17:14","nodeType":"YulFunctionCall","src":"8315:17:14"},{"arguments":[{"name":"tail","nativeSrc":"8338:4:14","nodeType":"YulIdentifier","src":"8338:4:14"},{"name":"headStart","nativeSrc":"8344:9:14","nodeType":"YulIdentifier","src":"8344:9:14"}],"functionName":{"name":"sub","nativeSrc":"8334:3:14","nodeType":"YulIdentifier","src":"8334:3:14"},"nativeSrc":"8334:20:14","nodeType":"YulFunctionCall","src":"8334:20:14"}],"functionName":{"name":"mstore","nativeSrc":"8308:6:14","nodeType":"YulIdentifier","src":"8308:6:14"},"nativeSrc":"8308:47:14","nodeType":"YulFunctionCall","src":"8308:47:14"},"nativeSrc":"8308:47:14","nodeType":"YulExpressionStatement","src":"8308:47:14"},{"nativeSrc":"8364:86:14","nodeType":"YulAssignment","src":"8364:86:14","value":{"arguments":[{"name":"value0","nativeSrc":"8436:6:14","nodeType":"YulIdentifier","src":"8436:6:14"},{"name":"tail","nativeSrc":"8445:4:14","nodeType":"YulIdentifier","src":"8445:4:14"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"8372:63:14","nodeType":"YulIdentifier","src":"8372:63:14"},"nativeSrc":"8372:78:14","nodeType":"YulFunctionCall","src":"8372:78:14"},"variableNames":[{"name":"tail","nativeSrc":"8364:4:14","nodeType":"YulIdentifier","src":"8364:4:14"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"8144:313:14","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8234:9:14","nodeType":"YulTypedName","src":"8234:9:14","type":""},{"name":"value0","nativeSrc":"8246:6:14","nodeType":"YulTypedName","src":"8246:6:14","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8257:4:14","nodeType":"YulTypedName","src":"8257:4:14","type":""}],"src":"8144:313:14"}]},"contents":"{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n revert(0, 0)\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n // bytes\n function abi_decode_t_bytes_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x01)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_addresst_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1, value2 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function store_literal_in_memory_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d(memPtr) {\n\n mstore(add(memPtr, 0), \"TransparentUpgradeableProxy: adm\")\n\n mstore(add(memPtr, 32), \"in cannot fallback to proxy targ\")\n\n mstore(add(memPtr, 64), \"et\")\n\n }\n\n function abi_encode_t_stringliteral_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 66)\n store_literal_in_memory_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d(pos)\n end := add(pos, 96)\n }\n\n function abi_encode_tuple_t_stringliteral_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC1967: new implementation is n\")\n\n mstore(add(memPtr, 32), \"ot a contract\")\n\n }\n\n function abi_encode_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 45)\n store_literal_in_memory_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520(memPtr) {\n\n mstore(add(memPtr, 0), \"Address: delegate call to non-co\")\n\n mstore(add(memPtr, 32), \"ntract\")\n\n }\n\n function abi_encode_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n store_literal_in_memory_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n mcopy(dst, src, length)\n mstore(add(dst, length), 0)\n\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, length)\n }\n\n function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value0) -> end {\n\n pos := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n end := pos\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n}\n","id":14,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"1248":[{"length":32,"start":229},{"length":32,"start":313},{"length":32,"start":441},{"length":32,"start":514},{"length":32,"start":563},{"length":32,"start":599}]},"linkReferences":{},"object":"608060405260043610610042575f3560e01c80633659cfe6146100595780634f1ef286146100785780635c60da1b1461008b578063f851a440146100b557610051565b366100515761004f6100c9565b005b61004f6100c9565b348015610064575f80fd5b5061004f6100733660046104f8565b6100e3565b61004f61008636600461056c565b610137565b348015610096575f80fd5b5061009f6101b6565b6040516100ac91906105d2565b60405180910390f35b3480156100c0575f80fd5b5061009f6101ff565b6100d1610255565b6100e16100dc6102a6565b6102d8565b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361012f5761012c8160405180602001604052805f8152505f6102f6565b50565b61012c6100c9565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036101ae576101a98383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250600192506102f6915050565b505050565b6101a96100c9565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036101f4576101ef6102a6565b905090565b6101fc6100c9565b90565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036101f457507f000000000000000000000000000000000000000000000000000000000000000090565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036100e15760405162461bcd60e51b815260040161029d906105e0565b60405180910390fd5b5f6101ef7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b365f80375f80365f845af43d5f803e8080156102f2573d5ff35b3d5ffd5b6102ff83610320565b5f8251118061030b5750805b156101a95761031a838361035f565b50505050565b6103298161038d565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606103848383604051806060016040528060278152602001610774602791396103f5565b90505b92915050565b6001600160a01b0381163b6103b45760405162461bcd60e51b815260040161029d90610698565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b60606001600160a01b0384163b61041e5760405162461bcd60e51b815260040161029d906106ea565b5f80856001600160a01b0316856040516104389190610726565b5f60405180830381855af49150503d805f8114610470576040519150601f19603f3d011682016040523d82523d5f602084013e610475565b606091505b5091509150610485828286610491565b925050505b9392505050565b606083156104a057508161048a565b8251156104b05782518084602001fd5b8160405162461bcd60e51b815260040161029d9190610762565b5f6001600160a01b038216610387565b6104e3816104ca565b811461012c575f80fd5b8035610387816104da565b5f6020828403121561050b5761050b5f80fd5b5f61051684846104ed565b949350505050565b5f8083601f840112610531576105315f80fd5b50813567ffffffffffffffff81111561054b5761054b5f80fd5b602083019150836001820283011115610565576105655f80fd5b9250929050565b5f805f60408486031215610581576105815f80fd5b5f61058c86866104ed565b935050602084013567ffffffffffffffff8111156105ab576105ab5f80fd5b6105b78682870161051e565b92509250509250925092565b6105cc816104ca565b82525050565b6020810161038782846105c3565b6020808252810161038781604281527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60208201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267604082015261195d60f21b606082015260800190565b602d81525f602082017f455243313936373a206e657720696d706c656d656e746174696f6e206973206e81526c1bdd08184818dbdb9d1c9858dd609a1b602082015291505b5060400190565b602080825281016103878161064c565b602681525f602082017f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f8152651b9d1c9858dd60d21b60208201529150610691565b60208082528101610387816106a8565b8281835e505f910152565b5f61070e825190565b61071c8185602086016106fa565b9290920192915050565b5f61048a8284610705565b5f61073a825190565b8084526020840193506107518185602086016106fa565b601f01601f19169290920192915050565b60208082528101610384818461073156fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122070dadc04f09b7d1888a2301532e36ca47743df400bf011def63b2d9d260ee30e64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x42 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3659CFE6 EQ PUSH2 0x59 JUMPI DUP1 PUSH4 0x4F1EF286 EQ PUSH2 0x78 JUMPI DUP1 PUSH4 0x5C60DA1B EQ PUSH2 0x8B JUMPI DUP1 PUSH4 0xF851A440 EQ PUSH2 0xB5 JUMPI PUSH2 0x51 JUMP JUMPDEST CALLDATASIZE PUSH2 0x51 JUMPI PUSH2 0x4F PUSH2 0xC9 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x4F PUSH2 0xC9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x64 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x4F PUSH2 0x73 CALLDATASIZE PUSH1 0x4 PUSH2 0x4F8 JUMP JUMPDEST PUSH2 0xE3 JUMP JUMPDEST PUSH2 0x4F PUSH2 0x86 CALLDATASIZE PUSH1 0x4 PUSH2 0x56C JUMP JUMPDEST PUSH2 0x137 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x96 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x9F PUSH2 0x1B6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xAC SWAP2 SWAP1 PUSH2 0x5D2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC0 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x9F PUSH2 0x1FF JUMP JUMPDEST PUSH2 0xD1 PUSH2 0x255 JUMP JUMPDEST PUSH2 0xE1 PUSH2 0xDC PUSH2 0x2A6 JUMP JUMPDEST PUSH2 0x2D8 JUMP JUMPDEST JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER SUB PUSH2 0x12F JUMPI PUSH2 0x12C DUP2 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP2 MSTORE POP PUSH0 PUSH2 0x2F6 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x12C PUSH2 0xC9 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER SUB PUSH2 0x1AE JUMPI PUSH2 0x1A9 DUP4 DUP4 DUP4 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH1 0x1 SWAP3 POP PUSH2 0x2F6 SWAP2 POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x1A9 PUSH2 0xC9 JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER SUB PUSH2 0x1F4 JUMPI PUSH2 0x1EF PUSH2 0x2A6 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x1FC PUSH2 0xC9 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER SUB PUSH2 0x1F4 JUMPI POP PUSH32 0x0 SWAP1 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER SUB PUSH2 0xE1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x29D SWAP1 PUSH2 0x5E0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH2 0x1EF PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST CALLDATASIZE PUSH0 DUP1 CALLDATACOPY PUSH0 DUP1 CALLDATASIZE PUSH0 DUP5 GAS DELEGATECALL RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY DUP1 DUP1 ISZERO PUSH2 0x2F2 JUMPI RETURNDATASIZE PUSH0 RETURN JUMPDEST RETURNDATASIZE PUSH0 REVERT JUMPDEST PUSH2 0x2FF DUP4 PUSH2 0x320 JUMP JUMPDEST PUSH0 DUP3 MLOAD GT DUP1 PUSH2 0x30B JUMPI POP DUP1 JUMPDEST ISZERO PUSH2 0x1A9 JUMPI PUSH2 0x31A DUP4 DUP4 PUSH2 0x35F JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x329 DUP2 PUSH2 0x38D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x384 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x774 PUSH1 0x27 SWAP2 CODECOPY PUSH2 0x3F5 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE PUSH2 0x3B4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x29D SWAP1 PUSH2 0x698 JUMP JUMPDEST PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE PUSH2 0x41E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x29D SWAP1 PUSH2 0x6EA JUMP JUMPDEST PUSH0 DUP1 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x40 MLOAD PUSH2 0x438 SWAP2 SWAP1 PUSH2 0x726 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x470 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x475 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x485 DUP3 DUP3 DUP7 PUSH2 0x491 JUMP JUMPDEST SWAP3 POP POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x4A0 JUMPI POP DUP2 PUSH2 0x48A JUMP JUMPDEST DUP3 MLOAD ISZERO PUSH2 0x4B0 JUMPI DUP3 MLOAD DUP1 DUP5 PUSH1 0x20 ADD REVERT JUMPDEST DUP2 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x29D SWAP2 SWAP1 PUSH2 0x762 JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x387 JUMP JUMPDEST PUSH2 0x4E3 DUP2 PUSH2 0x4CA JUMP JUMPDEST DUP2 EQ PUSH2 0x12C JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x387 DUP2 PUSH2 0x4DA JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x50B JUMPI PUSH2 0x50B PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x516 DUP5 DUP5 PUSH2 0x4ED JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x531 JUMPI PUSH2 0x531 PUSH0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x54B JUMPI PUSH2 0x54B PUSH0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x565 JUMPI PUSH2 0x565 PUSH0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x581 JUMPI PUSH2 0x581 PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x58C DUP7 DUP7 PUSH2 0x4ED JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x5AB JUMPI PUSH2 0x5AB PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x5B7 DUP7 DUP3 DUP8 ADD PUSH2 0x51E JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH2 0x5CC DUP2 PUSH2 0x4CA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x387 DUP3 DUP5 PUSH2 0x5C3 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x387 DUP2 PUSH1 0x42 DUP2 MSTORE PUSH32 0x5472616E73706172656E745570677261646561626C6550726F78793A2061646D PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x696E2063616E6E6F742066616C6C6261636B20746F2070726F78792074617267 PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x195D PUSH1 0xF2 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x2D DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x455243313936373A206E657720696D706C656D656E746174696F6E206973206E DUP2 MSTORE PUSH13 0x1BDD08184818DBDB9D1C9858DD PUSH1 0x9A SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x387 DUP2 PUSH2 0x64C JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH0 PUSH1 0x20 DUP3 ADD PUSH32 0x416464726573733A2064656C65676174652063616C6C20746F206E6F6E2D636F DUP2 MSTORE PUSH6 0x1B9D1C9858DD PUSH1 0xD2 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x691 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x387 DUP2 PUSH2 0x6A8 JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY POP PUSH0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH0 PUSH2 0x70E DUP3 MLOAD SWAP1 JUMP JUMPDEST PUSH2 0x71C DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x6FA JUMP JUMPDEST SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x48A DUP3 DUP5 PUSH2 0x705 JUMP JUMPDEST PUSH0 PUSH2 0x73A DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x751 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x6FA JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x384 DUP2 DUP5 PUSH2 0x731 JUMP INVALID COINBASE PUSH5 0x6472657373 GASPRICE KECCAK256 PUSH13 0x6F772D6C6576656C2064656C65 PUSH8 0x6174652063616C6C KECCAK256 PUSH7 0x61696C6564A264 PUSH10 0x7066735822122070DADC DIV CREATE SWAP12 PUSH30 0x1888A2301532E36CA47743DF400BF011DEF63B2D9D260EE30E64736F6C63 NUMBER STOP ADDMOD NOT STOP CALLER ","sourceMap":"1653:3648:13:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2903:11:6;:9;:11::i;:::-;1653:3648:13;;2680:11:6;:9;:11::i;4037:134:13:-;;;;;;;;;;-1:-1:-1;4037:134:13;;;;;:::i;:::-;;:::i;4547:164::-;;;;;;:::i;:::-;;:::i;3748:129::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3192:96;;;;;;;;;;;;;:::i;2327:110:6:-;2375:17;:15;:17::i;:::-;2402:28;2412:17;:15;:17::i;:::-;2402:9;:28::i;:::-;2327:110::o;4037:134:13:-;5286:6;-1:-1:-1;;;;;2649:25:13;:10;:25;2645:99;;4110:54:::1;4128:17;4147:9;;;;;;;;;;;::::0;4158:5:::1;4110:17;:54::i;:::-;4037:134:::0;:::o;2645:99::-;2722:11;:9;:11::i;4547:164::-;5286:6;-1:-1:-1;;;;;2649:25:13;:10;:25;2645:99;;4656:48:::1;4674:17;4693:4;;4656:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;4699:4:13::1;::::0;-1:-1:-1;4656:17:13::1;::::0;-1:-1:-1;;4656:48:13:i:1;:::-;4547:164:::0;;;:::o;2645:99::-;2722:11;:9;:11::i;3748:129::-;3800:23;5286:6;-1:-1:-1;;;;;2649:25:13;:10;:25;2645:99;;3853:17:::1;:15;:17::i;:::-;3835:35;;3748:129:::0;:::o;2645:99::-;2722:11;:9;:11::i;:::-;3748:129;:::o;3192:96::-;3235:14;5286:6;-1:-1:-1;;;;;2649:25:13;:10;:25;2645:99;;-1:-1:-1;5286:6:13;;3748:129::o;4986:207::-;5286:6;-1:-1:-1;;;;;5057:25:13;:10;:25;5049:104;;;;-1:-1:-1;;;5049:104:13;;;;;;;:::i;:::-;;;;;;;;1240:140:4;1307:12;1338:35;1035:66:5;1385:54;-1:-1:-1;;;;;1385:54:5;;1306:140;953:895:6;1291:14;1288:1;1285;1272:34;1505:1;1502;1486:14;1483:1;1467:14;1460:5;1447:60;1581:16;1578:1;1575;1560:38;1619:6;1686:66;;;;1801:16;1798:1;1791:27;1686:66;1721:16;1718:1;1711:27;2188:295:5;2326:29;2337:17;2326:10;:29::i;:::-;2383:1;2369:4;:11;:15;:28;;;;2388:9;2369:28;2365:112;;;2413:53;2442:17;2461:4;2413:28;:53::i;:::-;;2188:295;;;:::o;1902:152::-;1968:37;1987:17;1968:18;:37::i;:::-;2020:27;;-1:-1:-1;;;;;2020:27:5;;;;;;;;1902:152;:::o;6575:198:10:-;6658:12;6689:77;6710:6;6718:4;6689:77;;;;;;;;;;;;;;;;;:20;:77::i;:::-;6682:84;;6575:198;;;;;:::o;1537:259:5:-;-1:-1:-1;;;;;1470:19:10;;;1610:95:5;;;;-1:-1:-1;;;1610:95:5;;;;;;;:::i;:::-;1035:66;1715:74;;-1:-1:-1;;;;;;1715:74:5;-1:-1:-1;;;;;1715:74:5;;;;;;;;;;1537:259::o;6959:387:10:-;7100:12;-1:-1:-1;;;;;1470:19:10;;;7124:69;;;;-1:-1:-1;;;7124:69:10;;;;;;;:::i;:::-;7205:12;7219:23;7246:6;-1:-1:-1;;;;;7246:19:10;7266:4;7246:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7204:67;;;;7288:51;7305:7;7314:10;7326:12;7288:16;:51::i;:::-;7281:58;;;;6959:387;;;;;;:::o;7566:692::-;7712:12;7740:7;7736:516;;;-1:-1:-1;7770:10:10;7763:17;;7736:516;7881:17;;:21;7877:365;;8075:10;8069:17;8135:15;8122:10;8118:2;8114:19;8107:44;7877:365;8214:12;8207:20;;-1:-1:-1;;;8207:20:10;;;;;;;;:::i;466:96:14:-;503:7;-1:-1:-1;;;;;400:54:14;;532:24;334:126;568:122;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;696:139;767:20;;796:33;767:20;796:33;:::i;841:329::-;900:6;949:2;937:9;928:7;924:23;920:32;917:119;;;955:79;197:1;194;187:12;955:79;1075:1;1100:53;1145:7;1125:9;1100:53;:::i;:::-;1090:63;841:329;-1:-1:-1;;;;841:329:14:o;1558:552::-;1615:8;1625:6;1675:3;1668:4;1660:6;1656:17;1652:27;1642:122;;1683:79;197:1;194;187:12;1683:79;-1:-1:-1;1783:20:14;;1826:18;1815:30;;1812:117;;;1848:79;197:1;194;187:12;1848:79;1962:4;1954:6;1950:17;1938:29;;2016:3;2008:4;2000:6;1996:17;1986:8;1982:32;1979:41;1976:128;;;2023:79;197:1;194;187:12;2023:79;1558:552;;;;;:::o;2116:672::-;2195:6;2203;2211;2260:2;2248:9;2239:7;2235:23;2231:32;2228:119;;;2266:79;197:1;194;187:12;2266:79;2386:1;2411:53;2456:7;2436:9;2411:53;:::i;:::-;2401:63;;2357:117;2541:2;2530:9;2526:18;2513:32;2572:18;2564:6;2561:30;2558:117;;;2594:79;197:1;194;187:12;2594:79;2707:64;2763:7;2754:6;2743:9;2739:22;2707:64;:::i;:::-;2689:82;;;;2484:297;2116:672;;;;;:::o;2794:118::-;2881:24;2899:5;2881:24;:::i;:::-;2876:3;2869:37;2794:118;;:::o;2918:222::-;3049:2;3034:18;;3062:71;3038:9;3106:6;3062:71;:::i;3989:419::-;4193:2;4206:47;;;4178:18;;4270:131;4178:18;3844:2;3252:19;;3461:34;3304:4;3295:14;;3438:58;3530:34;3513:15;;;3506:59;-1:-1:-1;;;3582:15:14;;;3575:29;3965:12;;;3617:366;4652;4879:2;3252:19;;4794:3;3304:4;3295:14;;4554:34;4531:58;;-1:-1:-1;;;4618:2:14;4606:15;;4599:40;4808:74;-1:-1:-1;4891:93:14;-1:-1:-1;5009:2:14;5000:12;;4652:366::o;5024:419::-;5228:2;5241:47;;;5213:18;;5305:131;5213:18;5305:131;:::i;5680:366::-;5907:2;3252:19;;5822:3;3304:4;3295:14;;5589:34;5566:58;;-1:-1:-1;;;5653:2:14;5641:15;;5634:33;5836:74;-1:-1:-1;5919:93:14;5449:225;6052:419;6256:2;6269:47;;;6241:18;;6333:131;6241:18;6333:131;:::i;6734:139::-;6823:6;6818:3;6813;6807:23;-1:-1:-1;6864:1:14;6846:16;;6839:27;6734:139::o;6879:386::-;6983:3;7011:38;7043:5;6556:12;;6477:98;7011:38;7162:65;7220:6;7215:3;7208:4;7201:5;7197:16;7162:65;:::i;:::-;7243:16;;;;;6879:386;-1:-1:-1;;6879:386:14:o;7271:271::-;7401:3;7423:93;7512:3;7503:6;7423:93;:::i;7761:377::-;7849:3;7877:39;7910:5;6556:12;;6477:98;7877:39;3252:19;;;3304:4;3295:14;;7925:78;;8012:65;8070:6;8065:3;8058:4;8051:5;8047:16;8012:65;:::i;:::-;7745:2;7725:14;-1:-1:-1;;7721:28:14;8093:39;;;;;;-1:-1:-1;;7761:377:14:o;8144:313::-;8295:2;8308:47;;;8280:18;;8372:78;8280:18;8436:6;8372:78;:::i"},"gasEstimates":{"creation":{"codeDepositCost":"400000","executionCost":"infinite","totalCost":"infinite"},"external":{"":"infinite","admin()":"infinite","implementation()":"infinite","upgradeTo(address)":"infinite","upgradeToAndCall(address,bytes)":"infinite"},"internal":{"_admin()":"infinite","_beforeFallback()":"infinite","_getAdmin()":"infinite"}},"methodIdentifiers":{"admin()":"f851a440","implementation()":"5c60da1b","upgradeTo(address)":"3659cfe6","upgradeToAndCall(address,bytes)":"4f1ef286"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_logic\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"admin_\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"admin_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"implementation_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgradeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"details\":\"This contract implements a proxy that is upgradeable by an admin. To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector clashing], which can potentially be used in an attack, this contract uses the https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two things that go hand in hand: 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if that call matches one of the admin functions exposed by the proxy itself. 2. If the admin calls the proxy, it can access the admin functions, but its calls will never be forwarded to the implementation. If the admin tries to call a function on the implementation it will fail with an error that says \\\"admin cannot fallback to proxy target\\\". These properties mean that the admin account can only be used for admin actions like upgrading the proxy or changing the admin, so it's best if it's a dedicated account that is not used for anything else. This will avoid headaches due to sudden errors when trying to call a function from the proxy implementation. Our recommendation is for the dedicated account to be an instance of the {ProxyAdmin} contract. If set up this way, you should think of the `ProxyAdmin` instance as the real administrative interface of your proxy.\",\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is upgraded.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"admin()\":{\"details\":\"Returns the current admin. NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyAdmin}. TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call. `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103`\"},\"constructor\":{\"details\":\"Initializes an upgradeable proxy managed by `_admin`, backed by the implementation at `_logic`, and optionally initialized with `_data` as explained in {ERC1967Proxy-constructor}.\"},\"implementation()\":{\"details\":\"Returns the current implementation. NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyImplementation}. TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call. `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc`\"},\"upgradeTo(address)\":{\"details\":\"Upgrade the implementation of the proxy. NOTE: Only the admin can call this function. See {ProxyAdmin-upgrade}.\"},\"upgradeToAndCall(address,bytes)\":{\"details\":\"Upgrade the implementation of the proxy, and then call a function from the new implementation as specified by `data`, which should be an encoded function call. This is useful to initialize new storage variables in the proxied contract. NOTE: Only the admin can call this function. See {ProxyAdmin-upgradeAndCall}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"hardhat-deploy/solc_0.8/proxy/OptimizedTransparentUpgradeableProxy.sol\":\"OptimizedTransparentUpgradeableProxy\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"hardhat-deploy/solc_0.8/openzeppelin/interfaces/draft-IERC1822.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (interfaces/draft-IERC1822.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev ERC1822: Universal Upgradeable Proxy Standard (UUPS) documents a method for upgradeability through a simplified\\n * proxy whose upgrades are fully controlled by the current implementation.\\n */\\ninterface IERC1822Proxiable {\\n /**\\n * @dev Returns the storage slot that the proxiable contract assumes is being used to store the implementation\\n * address.\\n *\\n * IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks\\n * bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this\\n * function revert if invoked through a proxy.\\n */\\n function proxiableUUID() external view returns (bytes32);\\n}\\n\",\"keccak256\":\"0x93b4e21c931252739a1ec13ea31d3d35a5c068be3163ccab83e4d70c40355f03\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Proxy.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (proxy/ERC1967/ERC1967Proxy.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../Proxy.sol\\\";\\nimport \\\"./ERC1967Upgrade.sol\\\";\\n\\n/**\\n * @dev This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an\\n * implementation address that can be changed. This address is stored in storage in the location specified by\\n * https://eips.ethereum.org/EIPS/eip-1967[EIP1967], so that it doesn't conflict with the storage layout of the\\n * implementation behind the proxy.\\n */\\ncontract ERC1967Proxy is Proxy, ERC1967Upgrade {\\n /**\\n * @dev Initializes the upgradeable proxy with an initial implementation specified by `_logic`.\\n *\\n * If `_data` is nonempty, it's used as data in a delegate call to `_logic`. This will typically be an encoded\\n * function call, and allows initializating the storage of the proxy like a Solidity constructor.\\n */\\n constructor(address _logic, bytes memory _data) payable {\\n assert(_IMPLEMENTATION_SLOT == bytes32(uint256(keccak256(\\\"eip1967.proxy.implementation\\\")) - 1));\\n _upgradeToAndCall(_logic, _data, false);\\n }\\n\\n /**\\n * @dev Returns the current implementation address.\\n */\\n function _implementation() internal view virtual override returns (address impl) {\\n return ERC1967Upgrade._getImplementation();\\n }\\n}\\n\",\"keccak256\":\"0x6309f9f39dc6f4f45a24f296543867aa358e32946cd6b2874627a996d606b3a0\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Upgrade.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (proxy/ERC1967/ERC1967Upgrade.sol)\\n\\npragma solidity ^0.8.2;\\n\\nimport \\\"../beacon/IBeacon.sol\\\";\\nimport \\\"../../interfaces/draft-IERC1822.sol\\\";\\nimport \\\"../../utils/Address.sol\\\";\\nimport \\\"../../utils/StorageSlot.sol\\\";\\n\\n/**\\n * @dev This abstract contract provides getters and event emitting update functions for\\n * https://eips.ethereum.org/EIPS/eip-1967[EIP1967] slots.\\n *\\n * _Available since v4.1._\\n *\\n * @custom:oz-upgrades-unsafe-allow delegatecall\\n */\\nabstract contract ERC1967Upgrade {\\n // This is the keccak-256 hash of \\\"eip1967.proxy.rollback\\\" subtracted by 1\\n bytes32 private constant _ROLLBACK_SLOT = 0x4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143;\\n\\n /**\\n * @dev Storage slot with the address of the current implementation.\\n * This is the keccak-256 hash of \\\"eip1967.proxy.implementation\\\" subtracted by 1, and is\\n * validated in the constructor.\\n */\\n bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\\n\\n /**\\n * @dev Emitted when the implementation is upgraded.\\n */\\n event Upgraded(address indexed implementation);\\n\\n /**\\n * @dev Returns the current implementation address.\\n */\\n function _getImplementation() internal view returns (address) {\\n return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\\n }\\n\\n /**\\n * @dev Stores a new address in the EIP1967 implementation slot.\\n */\\n function _setImplementation(address newImplementation) private {\\n require(Address.isContract(newImplementation), \\\"ERC1967: new implementation is not a contract\\\");\\n StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\\n }\\n\\n /**\\n * @dev Perform implementation upgrade\\n *\\n * Emits an {Upgraded} event.\\n */\\n function _upgradeTo(address newImplementation) internal {\\n _setImplementation(newImplementation);\\n emit Upgraded(newImplementation);\\n }\\n\\n /**\\n * @dev Perform implementation upgrade with additional setup call.\\n *\\n * Emits an {Upgraded} event.\\n */\\n function _upgradeToAndCall(\\n address newImplementation,\\n bytes memory data,\\n bool forceCall\\n ) internal {\\n _upgradeTo(newImplementation);\\n if (data.length > 0 || forceCall) {\\n Address.functionDelegateCall(newImplementation, data);\\n }\\n }\\n\\n /**\\n * @dev Perform implementation upgrade with security checks for UUPS proxies, and additional setup call.\\n *\\n * Emits an {Upgraded} event.\\n */\\n function _upgradeToAndCallUUPS(\\n address newImplementation,\\n bytes memory data,\\n bool forceCall\\n ) internal {\\n // Upgrades from old implementations will perform a rollback test. This test requires the new\\n // implementation to upgrade back to the old, non-ERC1822 compliant, implementation. Removing\\n // this special case will break upgrade paths from old UUPS implementation to new ones.\\n if (StorageSlot.getBooleanSlot(_ROLLBACK_SLOT).value) {\\n _setImplementation(newImplementation);\\n } else {\\n try IERC1822Proxiable(newImplementation).proxiableUUID() returns (bytes32 slot) {\\n require(slot == _IMPLEMENTATION_SLOT, \\\"ERC1967Upgrade: unsupported proxiableUUID\\\");\\n } catch {\\n revert(\\\"ERC1967Upgrade: new implementation is not UUPS\\\");\\n }\\n _upgradeToAndCall(newImplementation, data, forceCall);\\n }\\n }\\n\\n /**\\n * @dev Storage slot with the admin of the contract.\\n * This is the keccak-256 hash of \\\"eip1967.proxy.admin\\\" subtracted by 1, and is\\n * validated in the constructor.\\n */\\n bytes32 internal constant _ADMIN_SLOT = 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103;\\n\\n /**\\n * @dev Emitted when the admin account has changed.\\n */\\n event AdminChanged(address previousAdmin, address newAdmin);\\n\\n /**\\n * @dev Returns the current admin.\\n */\\n function _getAdmin() internal view virtual returns (address) {\\n return StorageSlot.getAddressSlot(_ADMIN_SLOT).value;\\n }\\n\\n /**\\n * @dev Stores a new address in the EIP1967 admin slot.\\n */\\n function _setAdmin(address newAdmin) private {\\n require(newAdmin != address(0), \\\"ERC1967: new admin is the zero address\\\");\\n StorageSlot.getAddressSlot(_ADMIN_SLOT).value = newAdmin;\\n }\\n\\n /**\\n * @dev Changes the admin of the proxy.\\n *\\n * Emits an {AdminChanged} event.\\n */\\n function _changeAdmin(address newAdmin) internal {\\n emit AdminChanged(_getAdmin(), newAdmin);\\n _setAdmin(newAdmin);\\n }\\n\\n /**\\n * @dev The storage slot of the UpgradeableBeacon contract which defines the implementation for this proxy.\\n * This is bytes32(uint256(keccak256('eip1967.proxy.beacon')) - 1)) and is validated in the constructor.\\n */\\n bytes32 internal constant _BEACON_SLOT = 0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50;\\n\\n /**\\n * @dev Emitted when the beacon is upgraded.\\n */\\n event BeaconUpgraded(address indexed beacon);\\n\\n /**\\n * @dev Returns the current beacon.\\n */\\n function _getBeacon() internal view returns (address) {\\n return StorageSlot.getAddressSlot(_BEACON_SLOT).value;\\n }\\n\\n /**\\n * @dev Stores a new beacon in the EIP1967 beacon slot.\\n */\\n function _setBeacon(address newBeacon) private {\\n require(Address.isContract(newBeacon), \\\"ERC1967: new beacon is not a contract\\\");\\n require(Address.isContract(IBeacon(newBeacon).implementation()), \\\"ERC1967: beacon implementation is not a contract\\\");\\n StorageSlot.getAddressSlot(_BEACON_SLOT).value = newBeacon;\\n }\\n\\n /**\\n * @dev Perform beacon upgrade with additional setup call. Note: This upgrades the address of the beacon, it does\\n * not upgrade the implementation contained in the beacon (see {UpgradeableBeacon-_setImplementation} for that).\\n *\\n * Emits a {BeaconUpgraded} event.\\n */\\n function _upgradeBeaconToAndCall(\\n address newBeacon,\\n bytes memory data,\\n bool forceCall\\n ) internal {\\n _setBeacon(newBeacon);\\n emit BeaconUpgraded(newBeacon);\\n if (data.length > 0 || forceCall) {\\n Address.functionDelegateCall(IBeacon(newBeacon).implementation(), data);\\n }\\n }\\n}\\n\",\"keccak256\":\"0x17668652127feebed0ce8d9431ef95ccc8c4292f03e3b8cf06c6ca16af396633\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/proxy/Proxy.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (proxy/Proxy.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev This abstract contract provides a fallback function that delegates all calls to another contract using the EVM\\n * instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to\\n * be specified by overriding the virtual {_implementation} function.\\n *\\n * Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a\\n * different contract through the {_delegate} function.\\n *\\n * The success and return data of the delegated call will be returned back to the caller of the proxy.\\n */\\nabstract contract Proxy {\\n /**\\n * @dev Delegates the current call to `implementation`.\\n *\\n * This function does not return to its internal call site, it will return directly to the external caller.\\n */\\n function _delegate(address implementation) internal virtual {\\n assembly {\\n // Copy msg.data. We take full control of memory in this inline assembly\\n // block because it will not return to Solidity code. We overwrite the\\n // Solidity scratch pad at memory position 0.\\n calldatacopy(0, 0, calldatasize())\\n\\n // Call the implementation.\\n // out and outsize are 0 because we don't know the size yet.\\n let result := delegatecall(gas(), implementation, 0, calldatasize(), 0, 0)\\n\\n // Copy the returned data.\\n returndatacopy(0, 0, returndatasize())\\n\\n switch result\\n // delegatecall returns 0 on error.\\n case 0 {\\n revert(0, returndatasize())\\n }\\n default {\\n return(0, returndatasize())\\n }\\n }\\n }\\n\\n /**\\n * @dev This is a virtual function that should be overriden so it returns the address to which the fallback function\\n * and {_fallback} should delegate.\\n */\\n function _implementation() internal view virtual returns (address);\\n\\n /**\\n * @dev Delegates the current call to the address returned by `_implementation()`.\\n *\\n * This function does not return to its internall call site, it will return directly to the external caller.\\n */\\n function _fallback() internal virtual {\\n _beforeFallback();\\n _delegate(_implementation());\\n }\\n\\n /**\\n * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if no other\\n * function in the contract matches the call data.\\n */\\n fallback() external payable virtual {\\n _fallback();\\n }\\n\\n /**\\n * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if call data\\n * is empty.\\n */\\n receive() external payable virtual {\\n _fallback();\\n }\\n\\n /**\\n * @dev Hook that is called before falling back to the implementation. Can happen as part of a manual `_fallback`\\n * call, or as part of the Solidity `fallback` or `receive` functions.\\n *\\n * If overriden should call `super._beforeFallback()`.\\n */\\n function _beforeFallback() internal virtual {}\\n}\\n\",\"keccak256\":\"0xd5d1fd16e9faff7fcb3a52e02a8d49156f42a38a03f07b5f1810c21c2149a8ab\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/proxy/beacon/IBeacon.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (proxy/beacon/IBeacon.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev This is the interface that {BeaconProxy} expects of its beacon.\\n */\\ninterface IBeacon {\\n /**\\n * @dev Must return an address that can be used as a delegate call target.\\n *\\n * {BeaconProxy} will check that this address is a contract.\\n */\\n function implementation() external view returns (address);\\n}\\n\",\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/utils/Address.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (utils/Address.sol)\\n\\npragma solidity ^0.8.1;\\n\\n/**\\n * @dev Collection of functions related to the address type\\n */\\nlibrary Address {\\n /**\\n * @dev Returns true if `account` is a contract.\\n *\\n * [IMPORTANT]\\n * ====\\n * It is unsafe to assume that an address for which this function returns\\n * false is an externally-owned account (EOA) and not a contract.\\n *\\n * Among others, `isContract` will return false for the following\\n * types of addresses:\\n *\\n * - an externally-owned account\\n * - a contract in construction\\n * - an address where a contract will be created\\n * - an address where a contract lived, but was destroyed\\n * ====\\n *\\n * [IMPORTANT]\\n * ====\\n * You shouldn't rely on `isContract` to protect against flash loan attacks!\\n *\\n * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\\n * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\\n * constructor.\\n * ====\\n */\\n function isContract(address account) internal view returns (bool) {\\n // This method relies on extcodesize/address.code.length, which returns 0\\n // for contracts in construction, since the code is only stored at the end\\n // of the constructor execution.\\n\\n return account.code.length > 0;\\n }\\n\\n /**\\n * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\\n * `recipient`, forwarding all available gas and reverting on errors.\\n *\\n * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\\n * of certain opcodes, possibly making contracts go over the 2300 gas limit\\n * imposed by `transfer`, making them unable to receive funds via\\n * `transfer`. {sendValue} removes this limitation.\\n *\\n * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\\n *\\n * IMPORTANT: because control is transferred to `recipient`, care must be\\n * taken to not create reentrancy vulnerabilities. Consider using\\n * {ReentrancyGuard} or the\\n * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\\n */\\n function sendValue(address payable recipient, uint256 amount) internal {\\n require(address(this).balance >= amount, \\\"Address: insufficient balance\\\");\\n\\n (bool success, ) = recipient.call{value: amount}(\\\"\\\");\\n require(success, \\\"Address: unable to send value, recipient may have reverted\\\");\\n }\\n\\n /**\\n * @dev Performs a Solidity function call using a low level `call`. A\\n * plain `call` is an unsafe replacement for a function call: use this\\n * function instead.\\n *\\n * If `target` reverts with a revert reason, it is bubbled up by this\\n * function (like regular Solidity function calls).\\n *\\n * Returns the raw returned data. To convert to the expected return value,\\n * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\\n *\\n * Requirements:\\n *\\n * - `target` must be a contract.\\n * - calling `target` with `data` must not revert.\\n *\\n * _Available since v3.1._\\n */\\n function functionCall(address target, bytes memory data) internal returns (bytes memory) {\\n return functionCall(target, data, \\\"Address: low-level call failed\\\");\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\\n * `errorMessage` as a fallback revert reason when `target` reverts.\\n *\\n * _Available since v3.1._\\n */\\n function functionCall(\\n address target,\\n bytes memory data,\\n string memory errorMessage\\n ) internal returns (bytes memory) {\\n return functionCallWithValue(target, data, 0, errorMessage);\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n * but also transferring `value` wei to `target`.\\n *\\n * Requirements:\\n *\\n * - the calling contract must have an ETH balance of at least `value`.\\n * - the called Solidity function must be `payable`.\\n *\\n * _Available since v3.1._\\n */\\n function functionCallWithValue(\\n address target,\\n bytes memory data,\\n uint256 value\\n ) internal returns (bytes memory) {\\n return functionCallWithValue(target, data, value, \\\"Address: low-level call with value failed\\\");\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\\n * with `errorMessage` as a fallback revert reason when `target` reverts.\\n *\\n * _Available since v3.1._\\n */\\n function functionCallWithValue(\\n address target,\\n bytes memory data,\\n uint256 value,\\n string memory errorMessage\\n ) internal returns (bytes memory) {\\n require(address(this).balance >= value, \\\"Address: insufficient balance for call\\\");\\n require(isContract(target), \\\"Address: call to non-contract\\\");\\n\\n (bool success, bytes memory returndata) = target.call{value: value}(data);\\n return verifyCallResult(success, returndata, errorMessage);\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n * but performing a static call.\\n *\\n * _Available since v3.3._\\n */\\n function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\\n return functionStaticCall(target, data, \\\"Address: low-level static call failed\\\");\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n * but performing a static call.\\n *\\n * _Available since v3.3._\\n */\\n function functionStaticCall(\\n address target,\\n bytes memory data,\\n string memory errorMessage\\n ) internal view returns (bytes memory) {\\n require(isContract(target), \\\"Address: static call to non-contract\\\");\\n\\n (bool success, bytes memory returndata) = target.staticcall(data);\\n return verifyCallResult(success, returndata, errorMessage);\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n * but performing a delegate call.\\n *\\n * _Available since v3.4._\\n */\\n function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\\n return functionDelegateCall(target, data, \\\"Address: low-level delegate call failed\\\");\\n }\\n\\n /**\\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n * but performing a delegate call.\\n *\\n * _Available since v3.4._\\n */\\n function functionDelegateCall(\\n address target,\\n bytes memory data,\\n string memory errorMessage\\n ) internal returns (bytes memory) {\\n require(isContract(target), \\\"Address: delegate call to non-contract\\\");\\n\\n (bool success, bytes memory returndata) = target.delegatecall(data);\\n return verifyCallResult(success, returndata, errorMessage);\\n }\\n\\n /**\\n * @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the\\n * revert reason using the provided one.\\n *\\n * _Available since v4.3._\\n */\\n function verifyCallResult(\\n bool success,\\n bytes memory returndata,\\n string memory errorMessage\\n ) internal pure returns (bytes memory) {\\n if (success) {\\n return returndata;\\n } else {\\n // Look for revert reason and bubble it up if present\\n if (returndata.length > 0) {\\n // The easiest way to bubble the revert reason is using memory via assembly\\n\\n assembly {\\n let returndata_size := mload(returndata)\\n revert(add(32, returndata), returndata_size)\\n }\\n } else {\\n revert(errorMessage);\\n }\\n }\\n }\\n}\\n\",\"keccak256\":\"0x3777e696b62134e6177440dbe6e6601c0c156a443f57167194b67e75527439de\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/utils/StorageSlot.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/StorageSlot.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Library for reading and writing primitive types to specific storage slots.\\n *\\n * Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts.\\n * This library helps with reading and writing to such slots without the need for inline assembly.\\n *\\n * The functions in this library return Slot structs that contain a `value` member that can be used to read or write.\\n *\\n * Example usage to set ERC1967 implementation slot:\\n * ```\\n * contract ERC1967 {\\n * bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\\n *\\n * function _getImplementation() internal view returns (address) {\\n * return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\\n * }\\n *\\n * function _setImplementation(address newImplementation) internal {\\n * require(Address.isContract(newImplementation), \\\"ERC1967: new implementation is not a contract\\\");\\n * StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\\n * }\\n * }\\n * ```\\n *\\n * _Available since v4.1 for `address`, `bool`, `bytes32`, and `uint256`._\\n */\\nlibrary StorageSlot {\\n struct AddressSlot {\\n address value;\\n }\\n\\n struct BooleanSlot {\\n bool value;\\n }\\n\\n struct Bytes32Slot {\\n bytes32 value;\\n }\\n\\n struct Uint256Slot {\\n uint256 value;\\n }\\n\\n /**\\n * @dev Returns an `AddressSlot` with member `value` located at `slot`.\\n */\\n function getAddressSlot(bytes32 slot) internal pure returns (AddressSlot storage r) {\\n assembly {\\n r.slot := slot\\n }\\n }\\n\\n /**\\n * @dev Returns an `BooleanSlot` with member `value` located at `slot`.\\n */\\n function getBooleanSlot(bytes32 slot) internal pure returns (BooleanSlot storage r) {\\n assembly {\\n r.slot := slot\\n }\\n }\\n\\n /**\\n * @dev Returns an `Bytes32Slot` with member `value` located at `slot`.\\n */\\n function getBytes32Slot(bytes32 slot) internal pure returns (Bytes32Slot storage r) {\\n assembly {\\n r.slot := slot\\n }\\n }\\n\\n /**\\n * @dev Returns an `Uint256Slot` with member `value` located at `slot`.\\n */\\n function getUint256Slot(bytes32 slot) internal pure returns (Uint256Slot storage r) {\\n assembly {\\n r.slot := slot\\n }\\n }\\n}\\n\",\"keccak256\":\"0xfe1b7a9aa2a530a9e705b220e26cd584e2fbdc9602a3a1066032b12816b46aca\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/proxy/OptimizedTransparentUpgradeableProxy.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (proxy/transparent/TransparentUpgradeableProxy.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../openzeppelin/proxy/ERC1967/ERC1967Proxy.sol\\\";\\n\\n/**\\n * @dev This contract implements a proxy that is upgradeable by an admin.\\n *\\n * To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector\\n * clashing], which can potentially be used in an attack, this contract uses the\\n * https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two\\n * things that go hand in hand:\\n *\\n * 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if\\n * that call matches one of the admin functions exposed by the proxy itself.\\n * 2. If the admin calls the proxy, it can access the admin functions, but its calls will never be forwarded to the\\n * implementation. If the admin tries to call a function on the implementation it will fail with an error that says\\n * \\\"admin cannot fallback to proxy target\\\".\\n *\\n * These properties mean that the admin account can only be used for admin actions like upgrading the proxy or changing\\n * the admin, so it's best if it's a dedicated account that is not used for anything else. This will avoid headaches due\\n * to sudden errors when trying to call a function from the proxy implementation.\\n *\\n * Our recommendation is for the dedicated account to be an instance of the {ProxyAdmin} contract. If set up this way,\\n * you should think of the `ProxyAdmin` instance as the real administrative interface of your proxy.\\n */\\ncontract OptimizedTransparentUpgradeableProxy is ERC1967Proxy {\\n address internal immutable _ADMIN;\\n\\n /**\\n * @dev Initializes an upgradeable proxy managed by `_admin`, backed by the implementation at `_logic`, and\\n * optionally initialized with `_data` as explained in {ERC1967Proxy-constructor}.\\n */\\n constructor(\\n address _logic,\\n address admin_,\\n bytes memory _data\\n ) payable ERC1967Proxy(_logic, _data) {\\n assert(_ADMIN_SLOT == bytes32(uint256(keccak256(\\\"eip1967.proxy.admin\\\")) - 1));\\n _ADMIN = admin_;\\n\\n // still store it to work with EIP-1967\\n bytes32 slot = _ADMIN_SLOT;\\n // solhint-disable-next-line no-inline-assembly\\n assembly {\\n sstore(slot, admin_)\\n }\\n emit AdminChanged(address(0), admin_);\\n }\\n\\n /**\\n * @dev Modifier used internally that will delegate the call to the implementation unless the sender is the admin.\\n */\\n modifier ifAdmin() {\\n if (msg.sender == _getAdmin()) {\\n _;\\n } else {\\n _fallback();\\n }\\n }\\n\\n /**\\n * @dev Returns the current admin.\\n *\\n * NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyAdmin}.\\n *\\n * TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the\\n * https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\\n * `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103`\\n */\\n function admin() external ifAdmin returns (address admin_) {\\n admin_ = _getAdmin();\\n }\\n\\n /**\\n * @dev Returns the current implementation.\\n *\\n * NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyImplementation}.\\n *\\n * TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the\\n * https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\\n * `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc`\\n */\\n function implementation() external ifAdmin returns (address implementation_) {\\n implementation_ = _implementation();\\n }\\n\\n /**\\n * @dev Upgrade the implementation of the proxy.\\n *\\n * NOTE: Only the admin can call this function. See {ProxyAdmin-upgrade}.\\n */\\n function upgradeTo(address newImplementation) external ifAdmin {\\n _upgradeToAndCall(newImplementation, bytes(\\\"\\\"), false);\\n }\\n\\n /**\\n * @dev Upgrade the implementation of the proxy, and then call a function from the new implementation as specified\\n * by `data`, which should be an encoded function call. This is useful to initialize new storage variables in the\\n * proxied contract.\\n *\\n * NOTE: Only the admin can call this function. See {ProxyAdmin-upgradeAndCall}.\\n */\\n function upgradeToAndCall(address newImplementation, bytes calldata data) external payable ifAdmin {\\n _upgradeToAndCall(newImplementation, data, true);\\n }\\n\\n /**\\n * @dev Returns the current admin.\\n */\\n function _admin() internal view virtual returns (address) {\\n return _getAdmin();\\n }\\n\\n /**\\n * @dev Makes sure the admin cannot access the fallback function. See {Proxy-_beforeFallback}.\\n */\\n function _beforeFallback() internal virtual override {\\n require(msg.sender != _getAdmin(), \\\"TransparentUpgradeableProxy: admin cannot fallback to proxy target\\\");\\n super._beforeFallback();\\n }\\n\\n function _getAdmin() internal view virtual override returns (address) {\\n return _ADMIN;\\n }\\n}\\n\",\"keccak256\":\"0xa30117644e27fa5b49e162aae2f62b36c1aca02f801b8c594d46e2024963a534\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}}}}}