{
  "compiler": {
    "version": "0.8.27+commit.40a35a09"
  },
  "language": "Solidity",
  "output": {
    "abi": [
      {
        "inputs": [
          {
            "internalType": "contract ISchemaRegistry",
            "name": "registry",
            "type": "address"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "constructor"
      },
      {
        "inputs": [],
        "type": "error",
        "name": "AccessDenied"
      },
      {
        "inputs": [],
        "type": "error",
        "name": "AlreadyRevoked"
      },
      {
        "inputs": [],
        "type": "error",
        "name": "AlreadyRevokedOffchain"
      },
      {
        "inputs": [],
        "type": "error",
        "name": "AlreadyTimestamped"
      },
      {
        "inputs": [],
        "type": "error",
        "name": "DeadlineExpired"
      },
      {
        "inputs": [],
        "type": "error",
        "name": "FailedCall"
      },
      {
        "inputs": [
          {
            "internalType": "uint256",
            "name": "balance",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "needed",
            "type": "uint256"
          }
        ],
        "type": "error",
        "name": "InsufficientBalance"
      },
      {
        "inputs": [],
        "type": "error",
        "name": "InsufficientValue"
      },
      {
        "inputs": [],
        "type": "error",
        "name": "InvalidAttestation"
      },
      {
        "inputs": [],
        "type": "error",
        "name": "InvalidAttestations"
      },
      {
        "inputs": [],
        "type": "error",
        "name": "InvalidExpirationTime"
      },
      {
        "inputs": [],
        "type": "error",
        "name": "InvalidLength"
      },
      {
        "inputs": [],
        "type": "error",
        "name": "InvalidNonce"
      },
      {
        "inputs": [],
        "type": "error",
        "name": "InvalidOffset"
      },
      {
        "inputs": [],
        "type": "error",
        "name": "InvalidRegistry"
      },
      {
        "inputs": [],
        "type": "error",
        "name": "InvalidRevocation"
      },
      {
        "inputs": [],
        "type": "error",
        "name": "InvalidRevocations"
      },
      {
        "inputs": [],
        "type": "error",
        "name": "InvalidSchema"
      },
      {
        "inputs": [],
        "type": "error",
        "name": "InvalidShortString"
      },
      {
        "inputs": [],
        "type": "error",
        "name": "InvalidSignature"
      },
      {
        "inputs": [],
        "type": "error",
        "name": "InvalidVerifier"
      },
      {
        "inputs": [],
        "type": "error",
        "name": "Irrevocable"
      },
      {
        "inputs": [],
        "type": "error",
        "name": "NotFound"
      },
      {
        "inputs": [],
        "type": "error",
        "name": "NotPayable"
      },
      {
        "inputs": [
          {
            "internalType": "string",
            "name": "str",
            "type": "string"
          }
        ],
        "type": "error",
        "name": "StringTooLong"
      },
      {
        "inputs": [],
        "type": "error",
        "name": "WrongSchema"
      },
      {
        "inputs": [
          {
            "internalType": "address",
            "name": "recipient",
            "type": "address",
            "indexed": true
          },
          {
            "internalType": "address",
            "name": "attester",
            "type": "address",
            "indexed": true
          },
          {
            "internalType": "bytes32",
            "name": "uid",
            "type": "bytes32",
            "indexed": false
          },
          {
            "internalType": "bytes32",
            "name": "schemaUID",
            "type": "bytes32",
            "indexed": true
          }
        ],
        "type": "event",
        "name": "Attested",
        "anonymous": false
      },
      {
        "inputs": [],
        "type": "event",
        "name": "EIP712DomainChanged",
        "anonymous": false
      },
      {
        "inputs": [
          {
            "internalType": "uint256",
            "name": "oldNonce",
            "type": "uint256",
            "indexed": false
          },
          {
            "internalType": "uint256",
            "name": "newNonce",
            "type": "uint256",
            "indexed": false
          }
        ],
        "type": "event",
        "name": "NonceIncreased",
        "anonymous": false
      },
      {
        "inputs": [
          {
            "internalType": "address",
            "name": "recipient",
            "type": "address",
            "indexed": true
          },
          {
            "internalType": "address",
            "name": "attester",
            "type": "address",
            "indexed": true
          },
          {
            "internalType": "bytes32",
            "name": "uid",
            "type": "bytes32",
            "indexed": false
          },
          {
            "internalType": "bytes32",
            "name": "schemaUID",
            "type": "bytes32",
            "indexed": true
          }
        ],
        "type": "event",
        "name": "Revoked",
        "anonymous": false
      },
      {
        "inputs": [
          {
            "internalType": "address",
            "name": "revoker",
            "type": "address",
            "indexed": true
          },
          {
            "internalType": "bytes32",
            "name": "data",
            "type": "bytes32",
            "indexed": true
          },
          {
            "internalType": "uint64",
            "name": "timestamp",
            "type": "uint64",
            "indexed": true
          }
        ],
        "type": "event",
        "name": "RevokedOffchain",
        "anonymous": false
      },
      {
        "inputs": [
          {
            "internalType": "bytes32",
            "name": "data",
            "type": "bytes32",
            "indexed": true
          },
          {
            "internalType": "uint64",
            "name": "timestamp",
            "type": "uint64",
            "indexed": true
          }
        ],
        "type": "event",
        "name": "Timestamped",
        "anonymous": false
      },
      {
        "inputs": [
          {
            "internalType": "struct AttestationRequest",
            "name": "request",
            "type": "tuple",
            "components": [
              {
                "internalType": "bytes32",
                "name": "schema",
                "type": "bytes32"
              },
              {
                "internalType": "struct AttestationRequestData",
                "name": "data",
                "type": "tuple",
                "components": [
                  {
                    "internalType": "address",
                    "name": "recipient",
                    "type": "address"
                  },
                  {
                    "internalType": "uint64",
                    "name": "expirationTime",
                    "type": "uint64"
                  },
                  {
                    "internalType": "bool",
                    "name": "revocable",
                    "type": "bool"
                  },
                  {
                    "internalType": "bytes32",
                    "name": "refUID",
                    "type": "bytes32"
                  },
                  {
                    "internalType": "bytes",
                    "name": "data",
                    "type": "bytes"
                  },
                  {
                    "internalType": "uint256",
                    "name": "value",
                    "type": "uint256"
                  }
                ]
              }
            ]
          }
        ],
        "stateMutability": "payable",
        "type": "function",
        "name": "attest",
        "outputs": [
          {
            "internalType": "bytes32",
            "name": "",
            "type": "bytes32"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "struct DelegatedAttestationRequest",
            "name": "delegatedRequest",
            "type": "tuple",
            "components": [
              {
                "internalType": "bytes32",
                "name": "schema",
                "type": "bytes32"
              },
              {
                "internalType": "struct AttestationRequestData",
                "name": "data",
                "type": "tuple",
                "components": [
                  {
                    "internalType": "address",
                    "name": "recipient",
                    "type": "address"
                  },
                  {
                    "internalType": "uint64",
                    "name": "expirationTime",
                    "type": "uint64"
                  },
                  {
                    "internalType": "bool",
                    "name": "revocable",
                    "type": "bool"
                  },
                  {
                    "internalType": "bytes32",
                    "name": "refUID",
                    "type": "bytes32"
                  },
                  {
                    "internalType": "bytes",
                    "name": "data",
                    "type": "bytes"
                  },
                  {
                    "internalType": "uint256",
                    "name": "value",
                    "type": "uint256"
                  }
                ]
              },
              {
                "internalType": "struct Signature",
                "name": "signature",
                "type": "tuple",
                "components": [
                  {
                    "internalType": "uint8",
                    "name": "v",
                    "type": "uint8"
                  },
                  {
                    "internalType": "bytes32",
                    "name": "r",
                    "type": "bytes32"
                  },
                  {
                    "internalType": "bytes32",
                    "name": "s",
                    "type": "bytes32"
                  }
                ]
              },
              {
                "internalType": "address",
                "name": "attester",
                "type": "address"
              },
              {
                "internalType": "uint64",
                "name": "deadline",
                "type": "uint64"
              }
            ]
          }
        ],
        "stateMutability": "payable",
        "type": "function",
        "name": "attestByDelegation",
        "outputs": [
          {
            "internalType": "bytes32",
            "name": "",
            "type": "bytes32"
          }
        ]
      },
      {
        "inputs": [],
        "stateMutability": "view",
        "type": "function",
        "name": "eip712Domain",
        "outputs": [
          {
            "internalType": "bytes1",
            "name": "fields",
            "type": "bytes1"
          },
          {
            "internalType": "string",
            "name": "name",
            "type": "string"
          },
          {
            "internalType": "string",
            "name": "version",
            "type": "string"
          },
          {
            "internalType": "uint256",
            "name": "chainId",
            "type": "uint256"
          },
          {
            "internalType": "address",
            "name": "verifyingContract",
            "type": "address"
          },
          {
            "internalType": "bytes32",
            "name": "salt",
            "type": "bytes32"
          },
          {
            "internalType": "uint256[]",
            "name": "extensions",
            "type": "uint256[]"
          }
        ]
      },
      {
        "inputs": [],
        "stateMutability": "pure",
        "type": "function",
        "name": "getAttestTypeHash",
        "outputs": [
          {
            "internalType": "bytes32",
            "name": "",
            "type": "bytes32"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "bytes32",
            "name": "uid",
            "type": "bytes32"
          }
        ],
        "stateMutability": "view",
        "type": "function",
        "name": "getAttestation",
        "outputs": [
          {
            "internalType": "struct Attestation",
            "name": "",
            "type": "tuple",
            "components": [
              {
                "internalType": "bytes32",
                "name": "uid",
                "type": "bytes32"
              },
              {
                "internalType": "bytes32",
                "name": "schema",
                "type": "bytes32"
              },
              {
                "internalType": "uint64",
                "name": "time",
                "type": "uint64"
              },
              {
                "internalType": "uint64",
                "name": "expirationTime",
                "type": "uint64"
              },
              {
                "internalType": "uint64",
                "name": "revocationTime",
                "type": "uint64"
              },
              {
                "internalType": "bytes32",
                "name": "refUID",
                "type": "bytes32"
              },
              {
                "internalType": "address",
                "name": "recipient",
                "type": "address"
              },
              {
                "internalType": "address",
                "name": "attester",
                "type": "address"
              },
              {
                "internalType": "bool",
                "name": "revocable",
                "type": "bool"
              },
              {
                "internalType": "bytes",
                "name": "data",
                "type": "bytes"
              }
            ]
          }
        ]
      },
      {
        "inputs": [],
        "stateMutability": "view",
        "type": "function",
        "name": "getDomainSeparator",
        "outputs": [
          {
            "internalType": "bytes32",
            "name": "",
            "type": "bytes32"
          }
        ]
      },
      {
        "inputs": [],
        "stateMutability": "view",
        "type": "function",
        "name": "getName",
        "outputs": [
          {
            "internalType": "string",
            "name": "",
            "type": "string"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "address",
            "name": "account",
            "type": "address"
          }
        ],
        "stateMutability": "view",
        "type": "function",
        "name": "getNonce",
        "outputs": [
          {
            "internalType": "uint256",
            "name": "",
            "type": "uint256"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "address",
            "name": "revoker",
            "type": "address"
          },
          {
            "internalType": "bytes32",
            "name": "data",
            "type": "bytes32"
          }
        ],
        "stateMutability": "view",
        "type": "function",
        "name": "getRevokeOffchain",
        "outputs": [
          {
            "internalType": "uint64",
            "name": "",
            "type": "uint64"
          }
        ]
      },
      {
        "inputs": [],
        "stateMutability": "pure",
        "type": "function",
        "name": "getRevokeTypeHash",
        "outputs": [
          {
            "internalType": "bytes32",
            "name": "",
            "type": "bytes32"
          }
        ]
      },
      {
        "inputs": [],
        "stateMutability": "view",
        "type": "function",
        "name": "getSchemaRegistry",
        "outputs": [
          {
            "internalType": "contract ISchemaRegistry",
            "name": "",
            "type": "address"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "bytes32",
            "name": "data",
            "type": "bytes32"
          }
        ],
        "stateMutability": "view",
        "type": "function",
        "name": "getTimestamp",
        "outputs": [
          {
            "internalType": "uint64",
            "name": "",
            "type": "uint64"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "uint256",
            "name": "newNonce",
            "type": "uint256"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "increaseNonce"
      },
      {
        "inputs": [
          {
            "internalType": "bytes32",
            "name": "uid",
            "type": "bytes32"
          }
        ],
        "stateMutability": "view",
        "type": "function",
        "name": "isAttestationValid",
        "outputs": [
          {
            "internalType": "bool",
            "name": "",
            "type": "bool"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "struct MultiAttestationRequest[]",
            "name": "multiRequests",
            "type": "tuple[]",
            "components": [
              {
                "internalType": "bytes32",
                "name": "schema",
                "type": "bytes32"
              },
              {
                "internalType": "struct AttestationRequestData[]",
                "name": "data",
                "type": "tuple[]",
                "components": [
                  {
                    "internalType": "address",
                    "name": "recipient",
                    "type": "address"
                  },
                  {
                    "internalType": "uint64",
                    "name": "expirationTime",
                    "type": "uint64"
                  },
                  {
                    "internalType": "bool",
                    "name": "revocable",
                    "type": "bool"
                  },
                  {
                    "internalType": "bytes32",
                    "name": "refUID",
                    "type": "bytes32"
                  },
                  {
                    "internalType": "bytes",
                    "name": "data",
                    "type": "bytes"
                  },
                  {
                    "internalType": "uint256",
                    "name": "value",
                    "type": "uint256"
                  }
                ]
              }
            ]
          }
        ],
        "stateMutability": "payable",
        "type": "function",
        "name": "multiAttest",
        "outputs": [
          {
            "internalType": "bytes32[]",
            "name": "",
            "type": "bytes32[]"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "struct MultiDelegatedAttestationRequest[]",
            "name": "multiDelegatedRequests",
            "type": "tuple[]",
            "components": [
              {
                "internalType": "bytes32",
                "name": "schema",
                "type": "bytes32"
              },
              {
                "internalType": "struct AttestationRequestData[]",
                "name": "data",
                "type": "tuple[]",
                "components": [
                  {
                    "internalType": "address",
                    "name": "recipient",
                    "type": "address"
                  },
                  {
                    "internalType": "uint64",
                    "name": "expirationTime",
                    "type": "uint64"
                  },
                  {
                    "internalType": "bool",
                    "name": "revocable",
                    "type": "bool"
                  },
                  {
                    "internalType": "bytes32",
                    "name": "refUID",
                    "type": "bytes32"
                  },
                  {
                    "internalType": "bytes",
                    "name": "data",
                    "type": "bytes"
                  },
                  {
                    "internalType": "uint256",
                    "name": "value",
                    "type": "uint256"
                  }
                ]
              },
              {
                "internalType": "struct Signature[]",
                "name": "signatures",
                "type": "tuple[]",
                "components": [
                  {
                    "internalType": "uint8",
                    "name": "v",
                    "type": "uint8"
                  },
                  {
                    "internalType": "bytes32",
                    "name": "r",
                    "type": "bytes32"
                  },
                  {
                    "internalType": "bytes32",
                    "name": "s",
                    "type": "bytes32"
                  }
                ]
              },
              {
                "internalType": "address",
                "name": "attester",
                "type": "address"
              },
              {
                "internalType": "uint64",
                "name": "deadline",
                "type": "uint64"
              }
            ]
          }
        ],
        "stateMutability": "payable",
        "type": "function",
        "name": "multiAttestByDelegation",
        "outputs": [
          {
            "internalType": "bytes32[]",
            "name": "",
            "type": "bytes32[]"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "struct MultiRevocationRequest[]",
            "name": "multiRequests",
            "type": "tuple[]",
            "components": [
              {
                "internalType": "bytes32",
                "name": "schema",
                "type": "bytes32"
              },
              {
                "internalType": "struct RevocationRequestData[]",
                "name": "data",
                "type": "tuple[]",
                "components": [
                  {
                    "internalType": "bytes32",
                    "name": "uid",
                    "type": "bytes32"
                  },
                  {
                    "internalType": "uint256",
                    "name": "value",
                    "type": "uint256"
                  }
                ]
              }
            ]
          }
        ],
        "stateMutability": "payable",
        "type": "function",
        "name": "multiRevoke"
      },
      {
        "inputs": [
          {
            "internalType": "struct MultiDelegatedRevocationRequest[]",
            "name": "multiDelegatedRequests",
            "type": "tuple[]",
            "components": [
              {
                "internalType": "bytes32",
                "name": "schema",
                "type": "bytes32"
              },
              {
                "internalType": "struct RevocationRequestData[]",
                "name": "data",
                "type": "tuple[]",
                "components": [
                  {
                    "internalType": "bytes32",
                    "name": "uid",
                    "type": "bytes32"
                  },
                  {
                    "internalType": "uint256",
                    "name": "value",
                    "type": "uint256"
                  }
                ]
              },
              {
                "internalType": "struct Signature[]",
                "name": "signatures",
                "type": "tuple[]",
                "components": [
                  {
                    "internalType": "uint8",
                    "name": "v",
                    "type": "uint8"
                  },
                  {
                    "internalType": "bytes32",
                    "name": "r",
                    "type": "bytes32"
                  },
                  {
                    "internalType": "bytes32",
                    "name": "s",
                    "type": "bytes32"
                  }
                ]
              },
              {
                "internalType": "address",
                "name": "revoker",
                "type": "address"
              },
              {
                "internalType": "uint64",
                "name": "deadline",
                "type": "uint64"
              }
            ]
          }
        ],
        "stateMutability": "payable",
        "type": "function",
        "name": "multiRevokeByDelegation"
      },
      {
        "inputs": [
          {
            "internalType": "bytes32[]",
            "name": "data",
            "type": "bytes32[]"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "multiRevokeOffchain",
        "outputs": [
          {
            "internalType": "uint64",
            "name": "",
            "type": "uint64"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "bytes32[]",
            "name": "data",
            "type": "bytes32[]"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "multiTimestamp",
        "outputs": [
          {
            "internalType": "uint64",
            "name": "",
            "type": "uint64"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "struct RevocationRequest",
            "name": "request",
            "type": "tuple",
            "components": [
              {
                "internalType": "bytes32",
                "name": "schema",
                "type": "bytes32"
              },
              {
                "internalType": "struct RevocationRequestData",
                "name": "data",
                "type": "tuple",
                "components": [
                  {
                    "internalType": "bytes32",
                    "name": "uid",
                    "type": "bytes32"
                  },
                  {
                    "internalType": "uint256",
                    "name": "value",
                    "type": "uint256"
                  }
                ]
              }
            ]
          }
        ],
        "stateMutability": "payable",
        "type": "function",
        "name": "revoke"
      },
      {
        "inputs": [
          {
            "internalType": "struct DelegatedRevocationRequest",
            "name": "delegatedRequest",
            "type": "tuple",
            "components": [
              {
                "internalType": "bytes32",
                "name": "schema",
                "type": "bytes32"
              },
              {
                "internalType": "struct RevocationRequestData",
                "name": "data",
                "type": "tuple",
                "components": [
                  {
                    "internalType": "bytes32",
                    "name": "uid",
                    "type": "bytes32"
                  },
                  {
                    "internalType": "uint256",
                    "name": "value",
                    "type": "uint256"
                  }
                ]
              },
              {
                "internalType": "struct Signature",
                "name": "signature",
                "type": "tuple",
                "components": [
                  {
                    "internalType": "uint8",
                    "name": "v",
                    "type": "uint8"
                  },
                  {
                    "internalType": "bytes32",
                    "name": "r",
                    "type": "bytes32"
                  },
                  {
                    "internalType": "bytes32",
                    "name": "s",
                    "type": "bytes32"
                  }
                ]
              },
              {
                "internalType": "address",
                "name": "revoker",
                "type": "address"
              },
              {
                "internalType": "uint64",
                "name": "deadline",
                "type": "uint64"
              }
            ]
          }
        ],
        "stateMutability": "payable",
        "type": "function",
        "name": "revokeByDelegation"
      },
      {
        "inputs": [
          {
            "internalType": "bytes32",
            "name": "data",
            "type": "bytes32"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "revokeOffchain",
        "outputs": [
          {
            "internalType": "uint64",
            "name": "",
            "type": "uint64"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "bytes32",
            "name": "data",
            "type": "bytes32"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "timestamp",
        "outputs": [
          {
            "internalType": "uint64",
            "name": "",
            "type": "uint64"
          }
        ]
      },
      {
        "inputs": [],
        "stateMutability": "view",
        "type": "function",
        "name": "version",
        "outputs": [
          {
            "internalType": "string",
            "name": "",
            "type": "string"
          }
        ]
      }
    ],
    "devdoc": {
      "kind": "dev",
      "methods": {
        "attest((bytes32,(address,uint64,bool,bytes32,bytes,uint256)))": {
          "params": {
            "request": "The arguments of the attestation request."
          },
          "returns": {
            "_0": "The UID of the new attestation. Example:     attest({         schema: \"0facc36681cbe2456019c1b0d1e7bedd6d1d40f6f324bf3dd3a4cef2999200a0\",         data: {             recipient: \"0xdEADBeAFdeAdbEafdeadbeafDeAdbEAFdeadbeaf\",             expirationTime: 0,             revocable: true,             refUID: \"0x0000000000000000000000000000000000000000000000000000000000000000\",             data: \"0xF00D\",             value: 0         }     })"
          }
        },
        "attestByDelegation((bytes32,(address,uint64,bool,bytes32,bytes,uint256),(uint8,bytes32,bytes32),address,uint64))": {
          "params": {
            "delegatedRequest": "The arguments of the delegated attestation request."
          },
          "returns": {
            "_0": "The UID of the new attestation. Example:     attestByDelegation({         schema: '0x8e72f5bc0a8d4be6aa98360baa889040c50a0e51f32dbf0baa5199bd93472ebc',         data: {             recipient: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266',             expirationTime: 1673891048,             revocable: true,             refUID: '0x0000000000000000000000000000000000000000000000000000000000000000',             data: '0x1234',             value: 0         },         signature: {             v: 28,             r: '0x148c...b25b',             s: '0x5a72...be22'         },         attester: '0xc5E8740aD971409492b1A63Db8d83025e0Fc427e',         deadline: 1673891048     })"
          }
        },
        "eip712Domain()": {
          "details": "returns the fields and values that describe the domain separator used by this contract for EIP-712 signature."
        },
        "getAttestTypeHash()": {
          "returns": {
            "_0": "The EIP712 type hash for the attest function."
          }
        },
        "getAttestation(bytes32)": {
          "params": {
            "uid": "The UID of the attestation to retrieve."
          },
          "returns": {
            "_0": "The attestation data members."
          }
        },
        "getDomainSeparator()": {
          "returns": {
            "_0": "The domain separator used in the encoding of the signatures for attest, and revoke."
          }
        },
        "getName()": {
          "returns": {
            "_0": "The EIP712 name."
          }
        },
        "getNonce(address)": {
          "params": {
            "account": "The requested account."
          },
          "returns": {
            "_0": "The current nonce."
          }
        },
        "getRevokeOffchain(address,bytes32)": {
          "params": {
            "data": "The data to query."
          },
          "returns": {
            "_0": "The timestamp the data was timestamped with."
          }
        },
        "getRevokeTypeHash()": {
          "returns": {
            "_0": "The EIP712 type hash for the revoke function."
          }
        },
        "getSchemaRegistry()": {
          "returns": {
            "_0": "The address of the global schema registry."
          }
        },
        "getTimestamp(bytes32)": {
          "params": {
            "data": "The data to query."
          },
          "returns": {
            "_0": "The timestamp the data was timestamped with."
          }
        },
        "increaseNonce(uint256)": {
          "params": {
            "newNonce": "The (higher) new value."
          }
        },
        "isAttestationValid(bytes32)": {
          "params": {
            "uid": "The UID of the attestation to retrieve."
          },
          "returns": {
            "_0": "Whether an attestation exists."
          }
        },
        "multiAttest((bytes32,(address,uint64,bool,bytes32,bytes,uint256)[])[])": {
          "params": {
            "multiRequests": "The arguments of the multi attestation requests. The requests should be grouped by distinct     schema ids to benefit from the best batching optimization."
          },
          "returns": {
            "_0": "The UIDs of the new attestations. Example:     multiAttest([{         schema: '0x33e9094830a5cba5554d1954310e4fbed2ef5f859ec1404619adea4207f391fd',         data: [{             recipient: '0xdEADBeAFdeAdbEafdeadbeafDeAdbEAFdeadbeaf',             expirationTime: 1673891048,             revocable: true,             refUID: '0x0000000000000000000000000000000000000000000000000000000000000000',             data: '0x1234',             value: 1000         },         {             recipient: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266',             expirationTime: 0,             revocable: false,             refUID: '0x480df4a039efc31b11bfdf491b383ca138b6bde160988222a2a3509c02cee174',             data: '0x00',             value: 0         }],     },     {         schema: '0x5ac273ce41e3c8bfa383efe7c03e54c5f0bff29c9f11ef6ffa930fc84ca32425',         data: [{             recipient: '0xdEADBeAFdeAdbEafdeadbeafDeAdbEAFdeadbeaf',             expirationTime: 0,             revocable: true,             refUID: '0x75bf2ed8dca25a8190c50c52db136664de25b2449535839008ccfdab469b214f',             data: '0x12345678',             value: 0         },     }])"
          }
        },
        "multiAttestByDelegation((bytes32,(address,uint64,bool,bytes32,bytes,uint256)[],(uint8,bytes32,bytes32)[],address,uint64)[])": {
          "params": {
            "multiDelegatedRequests": "The arguments of the delegated multi attestation requests. The requests should be     grouped by distinct schema ids to benefit from the best batching optimization."
          },
          "returns": {
            "_0": "The UIDs of the new attestations. Example:     multiAttestByDelegation([{         schema: '0x8e72f5bc0a8d4be6aa98360baa889040c50a0e51f32dbf0baa5199bd93472ebc',         data: [{             recipient: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266',             expirationTime: 1673891048,             revocable: true,             refUID: '0x0000000000000000000000000000000000000000000000000000000000000000',             data: '0x1234',             value: 0         },         {             recipient: '0xdEADBeAFdeAdbEafdeadbeafDeAdbEAFdeadbeaf',             expirationTime: 0,             revocable: false,             refUID: '0x0000000000000000000000000000000000000000000000000000000000000000',             data: '0x00',             value: 0         }],         signatures: [{             v: 28,             r: '0x148c...b25b',             s: '0x5a72...be22'         },         {             v: 28,             r: '0x487s...67bb',             s: '0x12ad...2366'         }],         attester: '0x1D86495b2A7B524D747d2839b3C645Bed32e8CF4',         deadline: 1673891048     }])"
          }
        },
        "multiRevoke((bytes32,(bytes32,uint256)[])[])": {
          "params": {
            "multiRequests": "The arguments of the multi revocation requests. The requests should be grouped by distinct     schema ids to benefit from the best batching optimization. Example:     multiRevoke([{         schema: '0x8e72f5bc0a8d4be6aa98360baa889040c50a0e51f32dbf0baa5199bd93472ebc',         data: [{             uid: '0x211296a1ca0d7f9f2cfebf0daaa575bea9b20e968d81aef4e743d699c6ac4b25',             value: 1000         },         {             uid: '0xe160ac1bd3606a287b4d53d5d1d6da5895f65b4b4bab6d93aaf5046e48167ade',             value: 0         }],     },     {         schema: '0x5ac273ce41e3c8bfa383efe7c03e54c5f0bff29c9f11ef6ffa930fc84ca32425',         data: [{             uid: '0x053d42abce1fd7c8fcddfae21845ad34dae287b2c326220b03ba241bc5a8f019',             value: 0         },     }])"
          }
        },
        "multiRevokeByDelegation((bytes32,(bytes32,uint256)[],(uint8,bytes32,bytes32)[],address,uint64)[])": {
          "params": {
            "multiDelegatedRequests": "The arguments of the delegated multi revocation attestation requests. The requests     should be grouped by distinct schema ids to benefit from the best batching optimization. Example:     multiRevokeByDelegation([{         schema: '0x8e72f5bc0a8d4be6aa98360baa889040c50a0e51f32dbf0baa5199bd93472ebc',         data: [{             uid: '0x211296a1ca0d7f9f2cfebf0daaa575bea9b20e968d81aef4e743d699c6ac4b25',             value: 1000         },         {             uid: '0xe160ac1bd3606a287b4d53d5d1d6da5895f65b4b4bab6d93aaf5046e48167ade',             value: 0         }],         signatures: [{             v: 28,             r: '0x148c...b25b',             s: '0x5a72...be22'         },         {             v: 28,             r: '0x487s...67bb',             s: '0x12ad...2366'         }],         revoker: '0x244934dd3e31bE2c81f84ECf0b3E6329F5381992',         deadline: 1673891048     }])"
          }
        },
        "multiRevokeOffchain(bytes32[])": {
          "params": {
            "data": "The data to timestamp."
          },
          "returns": {
            "_0": "The timestamp the data was revoked with."
          }
        },
        "multiTimestamp(bytes32[])": {
          "params": {
            "data": "The data to timestamp."
          },
          "returns": {
            "_0": "The timestamp the data was timestamped with."
          }
        },
        "revoke((bytes32,(bytes32,uint256)))": {
          "params": {
            "request": "The arguments of the revocation request. Example:     revoke({         schema: '0x8e72f5bc0a8d4be6aa98360baa889040c50a0e51f32dbf0baa5199bd93472ebc',         data: {             uid: '0x101032e487642ee04ee17049f99a70590c735b8614079fc9275f9dd57c00966d',             value: 0         }     })"
          }
        },
        "revokeByDelegation((bytes32,(bytes32,uint256),(uint8,bytes32,bytes32),address,uint64))": {
          "params": {
            "delegatedRequest": "The arguments of the delegated revocation request. Example:     revokeByDelegation({         schema: '0x8e72f5bc0a8d4be6aa98360baa889040c50a0e51f32dbf0baa5199bd93472ebc',         data: {             uid: '0xcbbc12102578c642a0f7b34fe7111e41afa25683b6cd7b5a14caf90fa14d24ba',             value: 0         },         signature: {             v: 27,             r: '0xb593...7142',             s: '0x0f5b...2cce'         },         revoker: '0x244934dd3e31bE2c81f84ECf0b3E6329F5381992',         deadline: 1673891048     })"
          }
        },
        "revokeOffchain(bytes32)": {
          "params": {
            "data": "The data to timestamp."
          },
          "returns": {
            "_0": "The timestamp the data was revoked with."
          }
        },
        "timestamp(bytes32)": {
          "params": {
            "data": "The data to timestamp."
          },
          "returns": {
            "_0": "The timestamp the data was timestamped with."
          }
        },
        "version()": {
          "returns": {
            "_0": "Semver contract version as a string."
          }
        }
      },
      "version": 1
    },
    "userdoc": {
      "kind": "user",
      "methods": {
        "attest((bytes32,(address,uint64,bool,bytes32,bytes,uint256)))": {
          "notice": "Attests to a specific schema."
        },
        "attestByDelegation((bytes32,(address,uint64,bool,bytes32,bytes,uint256),(uint8,bytes32,bytes32),address,uint64))": {
          "notice": "Attests to a specific schema via the provided ECDSA signature."
        },
        "getAttestTypeHash()": {
          "notice": "Returns the EIP712 type hash for the attest function."
        },
        "getAttestation(bytes32)": {
          "notice": "Returns an existing attestation by UID."
        },
        "getDomainSeparator()": {
          "notice": "Returns the domain separator used in the encoding of the signatures for attest, and revoke."
        },
        "getName()": {
          "notice": "Returns the EIP712 name."
        },
        "getNonce(address)": {
          "notice": "Returns the current nonce per-account."
        },
        "getRevokeOffchain(address,bytes32)": {
          "notice": "Returns the timestamp that the specified data was timestamped with."
        },
        "getRevokeTypeHash()": {
          "notice": "Returns the EIP712 type hash for the revoke function."
        },
        "getSchemaRegistry()": {
          "notice": "Returns the address of the global schema registry."
        },
        "getTimestamp(bytes32)": {
          "notice": "Returns the timestamp that the specified data was timestamped with."
        },
        "increaseNonce(uint256)": {
          "notice": "Provides users an option to invalidate nonces by increasing their nonces to (higher) new values."
        },
        "isAttestationValid(bytes32)": {
          "notice": "Checks whether an attestation exists."
        },
        "multiAttest((bytes32,(address,uint64,bool,bytes32,bytes,uint256)[])[])": {
          "notice": "Attests to multiple schemas."
        },
        "multiAttestByDelegation((bytes32,(address,uint64,bool,bytes32,bytes,uint256)[],(uint8,bytes32,bytes32)[],address,uint64)[])": {
          "notice": "Attests to multiple schemas using via provided ECDSA signatures."
        },
        "multiRevoke((bytes32,(bytes32,uint256)[])[])": {
          "notice": "Revokes existing attestations to multiple schemas."
        },
        "multiRevokeByDelegation((bytes32,(bytes32,uint256)[],(uint8,bytes32,bytes32)[],address,uint64)[])": {
          "notice": "Revokes existing attestations to multiple schemas via provided ECDSA signatures."
        },
        "multiRevokeOffchain(bytes32[])": {
          "notice": "Revokes the specified multiple bytes32 data."
        },
        "multiTimestamp(bytes32[])": {
          "notice": "Timestamps the specified multiple bytes32 data."
        },
        "revoke((bytes32,(bytes32,uint256)))": {
          "notice": "Revokes an existing attestation to a specific schema."
        },
        "revokeByDelegation((bytes32,(bytes32,uint256),(uint8,bytes32,bytes32),address,uint64))": {
          "notice": "Revokes an existing attestation to a specific schema via the provided ECDSA signature."
        },
        "revokeOffchain(bytes32)": {
          "notice": "Revokes the specified bytes32 data."
        },
        "timestamp(bytes32)": {
          "notice": "Timestamps the specified bytes32 data."
        },
        "version()": {
          "notice": "Returns the full semver contract version."
        }
      },
      "version": 1
    }
  },
  "settings": {
    "remappings": [
      "@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/",
      "@openzeppelin/=node_modules/@openzeppelin/",
      "forge-std/=lib/forge-std/src/",
      "hardhat/=node_modules/hardhat/"
    ],
    "optimizer": {
      "enabled": true,
      "runs": 200
    },
    "metadata": {
      "bytecodeHash": "ipfs"
    },
    "compilationTarget": {
      "contracts/CustomEAS.sol": "CustomEAS"
    },
    "evmVersion": "cancun",
    "libraries": {},
    "viaIR": true
  },
  "sources": {
    "contracts/CustomEAS.sol": {
      "keccak256": "0xf4ade198ec0e78b9b9db3f9d9e7d0695a244cd29b8fa5ebe6a72e2c24f006e74",
      "urls": [
        "bzz-raw://223853f1d30fc85de32548d47e9ed977851200afc3daa6cf9a88d419b42db806",
        "dweb:/ipfs/QmTJEDpWT4LnXw8LQwSuZGHsSY8tSHpEk7x29Nqkn3tMvX"
      ],
      "license": "FSL-1.1-MIT"
    },
    "node_modules/@ethereum-attestation-service/eas-contracts/contracts/Common.sol": {
      "keccak256": "0x957bd2e6d0d6d637f86208b135c29fbaf4412cb08e5e7a61ede16b80561bf685",
      "urls": [
        "bzz-raw://da1dc9aedbb1d4d39c46c2235918d3adfbc5741dd34a46010cf425d134e7936d",
        "dweb:/ipfs/QmWUk6bXnLaghS2riF3GTFEeURCzgYFMA5woa6AsgPwEgc"
      ],
      "license": "MIT"
    },
    "node_modules/@ethereum-attestation-service/eas-contracts/contracts/EAS.sol": {
      "keccak256": "0x60d59e039e6ec40887e8a946f516b55997d689212c44a89f434119535dd9a3c4",
      "urls": [
        "bzz-raw://b5234ba00beaf7a43005c0759e883c6878eecc4d0efeb42c10be8c9e8b17ba21",
        "dweb:/ipfs/QmPdUaubX2Yr9kMSyyYxkY3ueHiGzPfqTq5ubzbmQiQA6B"
      ],
      "license": "MIT"
    },
    "node_modules/@ethereum-attestation-service/eas-contracts/contracts/IEAS.sol": {
      "keccak256": "0xdad0674defce04905dc7935f2756d6c477a6e876c0b1b7094b112a862f164c12",
      "urls": [
        "bzz-raw://49e448c26c08952df034692d2ab3519dd40a1ebbeae4ce68b294567441933880",
        "dweb:/ipfs/QmWHcudjskUSCjgqsNWE65LVfWvcYB2vBn8RB1SmzvRLNR"
      ],
      "license": "MIT"
    },
    "node_modules/@ethereum-attestation-service/eas-contracts/contracts/ISchemaRegistry.sol": {
      "keccak256": "0xea97dcd36a0c422169cbaac06698249e199049b627c16bff93fb8ab829058754",
      "urls": [
        "bzz-raw://d453a929ef64a69cd31195ec2ee5ed1193bfa29f633e13c960e92154c37ad158",
        "dweb:/ipfs/QmXs1Z3njbHs2EMgHonrZDfcwdog4kozHY5tYNrhZK5yqz"
      ],
      "license": "MIT"
    },
    "node_modules/@ethereum-attestation-service/eas-contracts/contracts/ISemver.sol": {
      "keccak256": "0x04a67939b4e1a8d0a51101b8f69f8882930bbdc66319f38023828625b5d1ff18",
      "urls": [
        "bzz-raw://3dd543fa0e33cef1ea757627f9c2a10a66ee1ce17aa9087f437c5b53a903c7f0",
        "dweb:/ipfs/QmXsy6UsGBzF9zPCCjmiwPpCcX3tHqU13TmR67B69tKnR6"
      ],
      "license": "MIT"
    },
    "node_modules/@ethereum-attestation-service/eas-contracts/contracts/Semver.sol": {
      "keccak256": "0x4f23442d048661b6aaa188ddc16b69cb310c2e44066b3852026afcb4201d61a9",
      "urls": [
        "bzz-raw://30c36e580cd93d9acb13e1a11e833946a8bd0bd2a8d1b2be049f0d96e0989808",
        "dweb:/ipfs/QmXmQTxKjSrUWutafQsqkbGufXqtzxuDAiMMJjXCHXiEqh"
      ],
      "license": "MIT"
    },
    "node_modules/@ethereum-attestation-service/eas-contracts/contracts/eip1271/EIP1271Verifier.sol": {
      "keccak256": "0x590977110db1256cc00416bdf74eb8264a0eda358ccded303610369a2930b614",
      "urls": [
        "bzz-raw://ef015b3bee8859e6658c0eac6471d05f2991a5f4b6b5c2aa5571bbdab622d6e9",
        "dweb:/ipfs/QmUHriGkixE62c5qWjyM9DWZFykDcjQ7T6Tbfi3DPD38ym"
      ],
      "license": "MIT"
    },
    "node_modules/@ethereum-attestation-service/eas-contracts/contracts/resolver/ISchemaResolver.sol": {
      "keccak256": "0xb7d1961ed928c620cddf35c2bf46845b10828bc5d73145214630202ed355b6bb",
      "urls": [
        "bzz-raw://cf1cabacfb15c9bace8280b540b52e5aa440e1b4eba675f9782c34ce0f03902f",
        "dweb:/ipfs/QmakYcK4xbrijzvoaBCmBJK6HeaBqbXxWKtDQ1z62aXwCR"
      ],
      "license": "MIT"
    },
    "node_modules/@openzeppelin/contracts/interfaces/IERC1271.sol": {
      "keccak256": "0x66c7ec42c6c43712be2107a50ab4529379bc76a632b425babec698d9da921ac6",
      "urls": [
        "bzz-raw://dce2778f0b638adfc5ba29c2c618c855fe725fa74a16846386aa1d56a834aa04",
        "dweb:/ipfs/QmPV9oWnzQdi58od266j62xvviavLNHqKLZfm6k2K1qy9E"
      ],
      "license": "MIT"
    },
    "node_modules/@openzeppelin/contracts/interfaces/IERC5267.sol": {
      "keccak256": "0xfb223a85dd0b2175cfbbaa325a744e2cd74ecd17c3df2b77b0722f991d2725ee",
      "urls": [
        "bzz-raw://84bf1dea0589ec49c8d15d559cc6d86ee493048a89b2d4adb60fbe705a3d89ae",
        "dweb:/ipfs/Qmd56n556d529wk2pRMhYhm5nhMDhviwereodDikjs68w1"
      ],
      "license": "MIT"
    },
    "node_modules/@openzeppelin/contracts/interfaces/IERC7913.sol": {
      "keccak256": "0xe5a126930df1d54e4a6dd5fea09010c4a7db0ea974c6c17a1e6082879f5a032b",
      "urls": [
        "bzz-raw://2f58f5a90328536a6c68289916bfa4ed653d871319c7b2a416ab3f6263c4f2f5",
        "dweb:/ipfs/Qmaa9DmgUA16Urz5fuF4RbFz2NaVpNLV41ddwykSdasFUd"
      ],
      "license": "MIT"
    },
    "node_modules/@openzeppelin/contracts/utils/Address.sol": {
      "keccak256": "0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0",
      "urls": [
        "bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f",
        "dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD"
      ],
      "license": "MIT"
    },
    "node_modules/@openzeppelin/contracts/utils/Bytes.sol": {
      "keccak256": "0x1613f93e376ab96791fd29f79da754e253c3d766831bc8c42f50545662f49065",
      "urls": [
        "bzz-raw://e88ee314d50d0f323616f88d0ccf5e4110dbdec2775d8d42523bcc8b76ed36eb",
        "dweb:/ipfs/QmQ18ygHRrDdz4AEZXy5PASUHvJk1SNWWKM3TyC1xvDedP"
      ],
      "license": "MIT"
    },
    "node_modules/@openzeppelin/contracts/utils/Errors.sol": {
      "keccak256": "0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123",
      "urls": [
        "bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf",
        "dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"
      ],
      "license": "MIT"
    },
    "node_modules/@openzeppelin/contracts/utils/Panic.sol": {
      "keccak256": "0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a",
      "urls": [
        "bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a",
        "dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"
      ],
      "license": "MIT"
    },
    "node_modules/@openzeppelin/contracts/utils/ShortStrings.sol": {
      "keccak256": "0x1fcf8cceb1a67e6c8512267e780933c4a3f63ef44756e6c818fda79be51c8402",
      "urls": [
        "bzz-raw://617d7d57f6f9cd449068b4d23daf485676d083aae648e038d05eb3a13291de35",
        "dweb:/ipfs/QmPADWPiGaSzZDFNpFEUx4ZPqhzPkYncBpHyTfAGcfsqzy"
      ],
      "license": "MIT"
    },
    "node_modules/@openzeppelin/contracts/utils/StorageSlot.sol": {
      "keccak256": "0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97",
      "urls": [
        "bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b",
        "dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"
      ],
      "license": "MIT"
    },
    "node_modules/@openzeppelin/contracts/utils/Strings.sol": {
      "keccak256": "0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4",
      "urls": [
        "bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e",
        "dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS"
      ],
      "license": "MIT"
    },
    "node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol": {
      "keccak256": "0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84",
      "urls": [
        "bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9",
        "dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n"
      ],
      "license": "MIT"
    },
    "node_modules/@openzeppelin/contracts/utils/cryptography/EIP712.sol": {
      "keccak256": "0x17fc4574e07105b0180ef61f1b3cacd1820a3d37f29a4af1018d0a253c6399b5",
      "urls": [
        "bzz-raw://be46b3e1362dbcadbbb45ec92cdea849dceccea3e2795237f00c123aeae44746",
        "dweb:/ipfs/QmSpyB8mud6xKiZaQnVtEPrxtTHGtyBgjs1PCYk4f2gesd"
      ],
      "license": "MIT"
    },
    "node_modules/@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol": {
      "keccak256": "0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631",
      "urls": [
        "bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59",
        "dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux"
      ],
      "license": "MIT"
    },
    "node_modules/@openzeppelin/contracts/utils/cryptography/SignatureChecker.sol": {
      "keccak256": "0x0f39d23ae345355f0913470b15d00c0434754302077ac97cdc038b5c000fc5cc",
      "urls": [
        "bzz-raw://d5ebc3233ff506c43e0f9960d2459403f878bbb63b7c71c318f16839564919ac",
        "dweb:/ipfs/QmbctngFd6aQkHVqZeFAL3iHfw4X7wNgfsgUxX8t26U2m4"
      ],
      "license": "MIT"
    },
    "node_modules/@openzeppelin/contracts/utils/math/Math.sol": {
      "keccak256": "0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6",
      "urls": [
        "bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3",
        "dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB"
      ],
      "license": "MIT"
    },
    "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol": {
      "keccak256": "0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54",
      "urls": [
        "bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8",
        "dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"
      ],
      "license": "MIT"
    },
    "node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol": {
      "keccak256": "0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3",
      "urls": [
        "bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03",
        "dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"
      ],
      "license": "MIT"
    }
  },
  "version": 1
}