{
  "_format": "hh-sol-artifact-1",
  "contractName": "OptimizedTransparentUpgradeableProxy",
  "sourceName": "hardhat-deploy/solc_0.8/proxy/OptimizedTransparentUpgradeableProxy.sol",
  "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"
    }
  ],
  "bytecode": "0x60a0604052604051610e6b380380610e6b83398101604081905261002291610414565b828161004f60017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd61048d565b5f80516020610e248339815191521461006a5761006a6104a0565b61007582825f61011f565b506100a3905060017fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610461048d565b5f80516020610e04833981519152146100be576100be6104a0565b6001600160a01b0382166080525f80516020610e048339815191528281556040517f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f9061010e905f9086906104c3565b60405180910390a1505050506105fa565b6101288361014a565b5f825111806101345750805b15610145576101438383610189565b505b505050565b610153816101b7565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606101ae8383604051806060016040528060278152602001610e4460279139610215565b90505b92915050565b6001600160a01b0381163b6101e75760405162461bcd60e51b81526004016101de9061052a565b60405180910390fd5b5f80516020610e2483398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b60606001600160a01b0384163b61023e5760405162461bcd60e51b81526004016101de9061057c565b5f80856001600160a01b03168560405161025891906105ad565b5f60405180830381855af49150503d805f8114610290576040519150601f19603f3d011682016040523d82523d5f602084013e610295565b606091505b5090925090506102a68282866102b2565b925050505b9392505050565b606083156102c15750816102ab565b8251156102d15782518084602001fd5b8160405162461bcd60e51b81526004016101de91906105e9565b5f6001600160a01b0382166101b1565b610304816102eb565b811461030e575f80fd5b50565b80516101b1816102fb565b634e487b7160e01b5f52604160045260245ffd5b601f19601f83011681018181106001600160401b03821117156103555761035561031c565b6040525050565b5f61036660405190565b90506103728282610330565b919050565b5f6001600160401b0382111561038f5761038f61031c565b601f19601f83011660200192915050565b8281835e505f910152565b5f6103bd6103b884610377565b61035c565b9050828152602081018484840111156103d7576103d75f80fd5b6103e28482856103a0565b509392505050565b5f82601f8301126103fc576103fc5f80fd5b815161040c8482602086016103ab565b949350505050565b5f805f60608486031215610429576104295f80fd5b5f6104348686610311565b935050602061044586828701610311565b92505060408401516001600160401b03811115610463576104635f80fd5b61046f868287016103ea565b9150509250925092565b634e487b7160e01b5f52601160045260245ffd5b818103818111156101b1576101b1610479565b634e487b7160e01b5f52600160045260245ffd5b6104bd816102eb565b82525050565b604081016104d182856104b4565b6102ab60208301846104b4565b602d81525f602082017f455243313936373a206e657720696d706c656d656e746174696f6e206973206e81526c1bdd08184818dbdb9d1c9858dd609a1b602082015291505b5060400190565b602080825281016101b1816104de565b602681525f602082017f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f8152651b9d1c9858dd60d21b60208201529150610523565b602080825281016101b18161053a565b5f610595825190565b6105a38185602086016103a0565b9290920192915050565b5f6102ab828461058c565b5f6105c1825190565b8084526020840193506105d88185602086016103a0565b601f01601f19169290920192915050565b602080825281016101ae81846105b8565b6080516107d06106345f395f818160e501528181610139015281816101b90152818161020201528181610233015261025701526107d05ff3fe608060405260043610610042575f3560e01c80633659cfe6146100595780634f1ef286146100785780635c60da1b1461008b578063f851a440146100b557610051565b366100515761004f6100c9565b005b61004f6100c9565b348015610064575f80fd5b5061004f6100733660046104f8565b6100e3565b61004f61008636600461056c565b610137565b348015610096575f80fd5b5061009f6101b6565b6040516100ac91906105d2565b60405180910390f35b3480156100c0575f80fd5b5061009f6101ff565b6100d1610255565b6100e16100dc6102a6565b6102d8565b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361012f5761012c8160405180602001604052805f8152505f6102f6565b50565b61012c6100c9565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036101ae576101a98383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250600192506102f6915050565b505050565b6101a96100c9565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036101f4576101ef6102a6565b905090565b6101fc6100c9565b90565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036101f457507f000000000000000000000000000000000000000000000000000000000000000090565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036100e15760405162461bcd60e51b815260040161029d906105e0565b60405180910390fd5b5f6101ef7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b365f80375f80365f845af43d5f803e8080156102f2573d5ff35b3d5ffd5b6102ff83610320565b5f8251118061030b5750805b156101a95761031a838361035f565b50505050565b6103298161038d565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606103848383604051806060016040528060278152602001610774602791396103f5565b90505b92915050565b6001600160a01b0381163b6103b45760405162461bcd60e51b815260040161029d90610698565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b60606001600160a01b0384163b61041e5760405162461bcd60e51b815260040161029d906106ea565b5f80856001600160a01b0316856040516104389190610726565b5f60405180830381855af49150503d805f8114610470576040519150601f19603f3d011682016040523d82523d5f602084013e610475565b606091505b5091509150610485828286610491565b925050505b9392505050565b606083156104a057508161048a565b8251156104b05782518084602001fd5b8160405162461bcd60e51b815260040161029d9190610762565b5f6001600160a01b038216610387565b6104e3816104ca565b811461012c575f80fd5b8035610387816104da565b5f6020828403121561050b5761050b5f80fd5b5f61051684846104ed565b949350505050565b5f8083601f840112610531576105315f80fd5b50813567ffffffffffffffff81111561054b5761054b5f80fd5b602083019150836001820283011115610565576105655f80fd5b9250929050565b5f805f60408486031215610581576105815f80fd5b5f61058c86866104ed565b935050602084013567ffffffffffffffff8111156105ab576105ab5f80fd5b6105b78682870161051e565b92509250509250925092565b6105cc816104ca565b82525050565b6020810161038782846105c3565b6020808252810161038781604281527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60208201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267604082015261195d60f21b606082015260800190565b602d81525f602082017f455243313936373a206e657720696d706c656d656e746174696f6e206973206e81526c1bdd08184818dbdb9d1c9858dd609a1b602082015291505b5060400190565b602080825281016103878161064c565b602681525f602082017f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f8152651b9d1c9858dd60d21b60208201529150610691565b60208082528101610387816106a8565b8281835e505f910152565b5f61070e825190565b61071c8185602086016106fa565b9290920192915050565b5f61048a8284610705565b5f61073a825190565b8084526020840193506107518185602086016106fa565b601f01601f19169290920192915050565b60208082528101610384818461073156fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122070dadc04f09b7d1888a2301532e36ca47743df400bf011def63b2d9d260ee30e64736f6c63430008190033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564",
  "deployedBytecode": "0x608060405260043610610042575f3560e01c80633659cfe6146100595780634f1ef286146100785780635c60da1b1461008b578063f851a440146100b557610051565b366100515761004f6100c9565b005b61004f6100c9565b348015610064575f80fd5b5061004f6100733660046104f8565b6100e3565b61004f61008636600461056c565b610137565b348015610096575f80fd5b5061009f6101b6565b6040516100ac91906105d2565b60405180910390f35b3480156100c0575f80fd5b5061009f6101ff565b6100d1610255565b6100e16100dc6102a6565b6102d8565b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361012f5761012c8160405180602001604052805f8152505f6102f6565b50565b61012c6100c9565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036101ae576101a98383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250600192506102f6915050565b505050565b6101a96100c9565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036101f4576101ef6102a6565b905090565b6101fc6100c9565b90565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036101f457507f000000000000000000000000000000000000000000000000000000000000000090565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036100e15760405162461bcd60e51b815260040161029d906105e0565b60405180910390fd5b5f6101ef7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b365f80375f80365f845af43d5f803e8080156102f2573d5ff35b3d5ffd5b6102ff83610320565b5f8251118061030b5750805b156101a95761031a838361035f565b50505050565b6103298161038d565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606103848383604051806060016040528060278152602001610774602791396103f5565b90505b92915050565b6001600160a01b0381163b6103b45760405162461bcd60e51b815260040161029d90610698565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b60606001600160a01b0384163b61041e5760405162461bcd60e51b815260040161029d906106ea565b5f80856001600160a01b0316856040516104389190610726565b5f60405180830381855af49150503d805f8114610470576040519150601f19603f3d011682016040523d82523d5f602084013e610475565b606091505b5091509150610485828286610491565b925050505b9392505050565b606083156104a057508161048a565b8251156104b05782518084602001fd5b8160405162461bcd60e51b815260040161029d9190610762565b5f6001600160a01b038216610387565b6104e3816104ca565b811461012c575f80fd5b8035610387816104da565b5f6020828403121561050b5761050b5f80fd5b5f61051684846104ed565b949350505050565b5f8083601f840112610531576105315f80fd5b50813567ffffffffffffffff81111561054b5761054b5f80fd5b602083019150836001820283011115610565576105655f80fd5b9250929050565b5f805f60408486031215610581576105815f80fd5b5f61058c86866104ed565b935050602084013567ffffffffffffffff8111156105ab576105ab5f80fd5b6105b78682870161051e565b92509250509250925092565b6105cc816104ca565b82525050565b6020810161038782846105c3565b6020808252810161038781604281527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60208201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267604082015261195d60f21b606082015260800190565b602d81525f602082017f455243313936373a206e657720696d706c656d656e746174696f6e206973206e81526c1bdd08184818dbdb9d1c9858dd609a1b602082015291505b5060400190565b602080825281016103878161064c565b602681525f602082017f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f8152651b9d1c9858dd60d21b60208201529150610691565b60208082528101610387816106a8565b8281835e505f910152565b5f61070e825190565b61071c8185602086016106fa565b9290920192915050565b5f61048a8284610705565b5f61073a825190565b8084526020840193506107518185602086016106fa565b601f01601f19169290920192915050565b60208082528101610384818461073156fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122070dadc04f09b7d1888a2301532e36ca47743df400bf011def63b2d9d260ee30e64736f6c63430008190033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
