{
  "abi": [
    {
      "inputs": [],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [],
      "name": "EIP712_DOMAIN_NAME",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "EIP712_DOMAIN_VERSION",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "EIP712_POLICY_TYPE",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "EIP712_TYPE_HASH",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "policyHolder",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "protectedWallet",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "protectedBalance",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "duration",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "bundleId",
          "type": "uint256"
        },
        {
          "internalType": "bytes32",
          "name": "signatureId",
          "type": "bytes32"
        },
        {
          "internalType": "bytes",
          "name": "signature",
          "type": "bytes"
        }
      ],
      "name": "checkAndRegisterSignature",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "digest",
          "type": "bytes32"
        },
        {
          "internalType": "bytes",
          "name": "signature",
          "type": "bytes"
        }
      ],
      "name": "getSigner",
      "outputs": [
        {
          "internalType": "address",
          "name": "signer",
          "type": "address"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "protectedWallet",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "protectedBalance",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "duration",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "bundleId",
          "type": "uint256"
        },
        {
          "internalType": "bytes32",
          "name": "signatureId",
          "type": "bytes32"
        },
        {
          "internalType": "bytes",
          "name": "signature",
          "type": "bytes"
        }
      ],
      "name": "getSignerFromDigestAndSignature",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "structHash",
          "type": "bytes32"
        }
      ],
      "name": "getTypedDataV4Hash",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "allSourcePaths": {
    "12": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/utils/Strings.sol",
    "13": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/utils/cryptography/ECDSA.sol",
    "51": "contracts/DepegMessageHelper.sol",
    "54": "contracts/EIP712.sol"
  },
  "ast": {
    "absolutePath": "contracts/DepegMessageHelper.sol",
    "exportedSymbols": {
      "DepegMessageHelper": [
        773
      ],
      "ECDSA": [
        13816
      ],
      "EIP712": [
        4683
      ]
    },
    "id": 774,
    "license": "Apache-2.0",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 614,
        "literals": [
          "solidity",
          "0.8",
          ".2"
        ],
        "nodeType": "PragmaDirective",
        "src": "39:22:51"
      },
      {
        "absolutePath": "contracts/EIP712.sol",
        "file": "./EIP712.sol",
        "id": 615,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 774,
        "sourceUnit": 4684,
        "src": "63:22:51",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "abstract": false,
        "baseContracts": [
          {
            "baseName": {
              "id": 616,
              "name": "EIP712",
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 4683,
              "src": "124:6:51"
            },
            "id": 617,
            "nodeType": "InheritanceSpecifier",
            "src": "124:6:51"
          }
        ],
        "contractDependencies": [
          4683
        ],
        "contractKind": "contract",
        "fullyImplemented": true,
        "id": 773,
        "linearizedBaseContracts": [
          773,
          4683
        ],
        "name": "DepegMessageHelper",
        "nameLocation": "97:18:51",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": true,
            "functionSelector": "fd070296",
            "id": 620,
            "mutability": "constant",
            "name": "EIP712_DOMAIN_NAME",
            "nameLocation": "191:18:51",
            "nodeType": "VariableDeclaration",
            "scope": 773,
            "src": "168:59:51",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory_ptr",
              "typeString": "string"
            },
            "typeName": {
              "id": 618,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "168:6:51",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "hexValue": "45746865726973634465706567",
              "id": 619,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "212:15:51",
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_55d9572bc870968148d64559e3f054afe52848f22a50302a667bf2b58a0c131b",
                "typeString": "literal_string \"EtheriscDepeg\""
              },
              "value": "EtheriscDepeg"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "functionSelector": "5cc33321",
            "id": 623,
            "mutability": "constant",
            "name": "EIP712_DOMAIN_VERSION",
            "nameLocation": "256:21:51",
            "nodeType": "VariableDeclaration",
            "scope": 773,
            "src": "233:50:51",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory_ptr",
              "typeString": "string"
            },
            "typeName": {
              "id": 621,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "233:6:51",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "hexValue": "31",
              "id": 622,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "280:3:51",
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_c89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6",
                "typeString": "literal_string \"1\""
              },
              "value": "1"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "functionSelector": "3e52fa7d",
            "id": 626,
            "mutability": "constant",
            "name": "EIP712_POLICY_TYPE",
            "nameLocation": "313:18:51",
            "nodeType": "VariableDeclaration",
            "scope": 773,
            "src": "290:147:51",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory_ptr",
              "typeString": "string"
            },
            "typeName": {
              "id": 624,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "290:6:51",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "hexValue": "506f6c69637928616464726573732077616c6c65742c75696e743235362070726f74656374656442616c616e63652c75696e74323536206475726174696f6e2c75696e743235362062756e646c6549642c62797465733332207369676e6174757265496429",
              "id": 625,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "334:103:51",
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_b6dd538ff87d5c91deec48f5de8217be49503aae080311a8c657fadf3bc6e9ba",
                "typeString": "literal_string \"Policy(address wallet,uint256 protectedBalance,uint256 duration,uint256 bundleId,bytes32 signatureId)\""
              },
              "value": "Policy(address wallet,uint256 protectedBalance,uint256 duration,uint256 bundleId,bytes32 signatureId)"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 634,
            "mutability": "constant",
            "name": "EIP712_POLICY_TYPE_HASH",
            "nameLocation": "468:23:51",
            "nodeType": "VariableDeclaration",
            "scope": 773,
            "src": "443:98:51",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 627,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "443:7:51",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": {
              "arguments": [
                {
                  "arguments": [
                    {
                      "id": 631,
                      "name": "EIP712_POLICY_TYPE",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 626,
                      "src": "521:18:51",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string memory"
                      }
                    }
                  ],
                  "expression": {
                    "argumentTypes": [
                      {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string memory"
                      }
                    ],
                    "expression": {
                      "id": 629,
                      "name": "abi",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": -1,
                      "src": "504:3:51",
                      "typeDescriptions": {
                        "typeIdentifier": "t_magic_abi",
                        "typeString": "abi"
                      }
                    },
                    "id": 630,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberName": "encodePacked",
                    "nodeType": "MemberAccess",
                    "src": "504:16:51",
                    "typeDescriptions": {
                      "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                      "typeString": "function () pure returns (bytes memory)"
                    }
                  },
                  "id": 632,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "functionCall",
                  "lValueRequested": false,
                  "names": [],
                  "nodeType": "FunctionCall",
                  "src": "504:36:51",
                  "tryCall": false,
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes memory"
                  }
                }
              ],
              "expression": {
                "argumentTypes": [
                  {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes memory"
                  }
                ],
                "id": 628,
                "name": "keccak256",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": -8,
                "src": "494:9:51",
                "typeDescriptions": {
                  "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                  "typeString": "function (bytes memory) pure returns (bytes32)"
                }
              },
              "id": 633,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "functionCall",
              "lValueRequested": false,
              "names": [],
              "nodeType": "FunctionCall",
              "src": "494:47:51",
              "tryCall": false,
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "visibility": "private"
          },
          {
            "constant": false,
            "id": 638,
            "mutability": "mutable",
            "name": "_signatureIsUsed",
            "nameLocation": "643:16:51",
            "nodeType": "VariableDeclaration",
            "scope": 773,
            "src": "578:81:51",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
              "typeString": "mapping(bytes32 => bool)"
            },
            "typeName": {
              "id": 637,
              "keyType": {
                "id": 635,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "586:7:51",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "578:56:51",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
                "typeString": "mapping(bytes32 => bool)"
              },
              "valueType": {
                "id": 636,
                "name": "bool",
                "nodeType": "ElementaryTypeName",
                "src": "618:4:51",
                "typeDescriptions": {
                  "typeIdentifier": "t_bool",
                  "typeString": "bool"
                }
              }
            },
            "visibility": "private"
          },
          {
            "body": {
              "id": 645,
              "nodeType": "Block",
              "src": "743:3:51",
              "statements": []
            },
            "id": 646,
            "implemented": true,
            "kind": "constructor",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 641,
                    "name": "EIP712_DOMAIN_NAME",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 620,
                    "src": "696:18:51",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  },
                  {
                    "id": 642,
                    "name": "EIP712_DOMAIN_VERSION",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 623,
                    "src": "716:21:51",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  }
                ],
                "id": 643,
                "modifierName": {
                  "id": 640,
                  "name": "EIP712",
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 4683,
                  "src": "689:6:51"
                },
                "nodeType": "ModifierInvocation",
                "src": "689:49:51"
              }
            ],
            "name": "",
            "nameLocation": "-1:-1:-1",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 639,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "678:2:51"
            },
            "returnParameters": {
              "id": 644,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "743:0:51"
            },
            "scope": 773,
            "src": "667:79:51",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 704,
              "nodeType": "Block",
              "src": "1028:493:51",
              "statements": [
                {
                  "assignments": [
                    664
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 664,
                      "mutability": "mutable",
                      "name": "signatureHash",
                      "nameLocation": "1046:13:51",
                      "nodeType": "VariableDeclaration",
                      "scope": 704,
                      "src": "1038:21:51",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 663,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "1038:7:51",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 671,
                  "initialValue": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "id": 668,
                            "name": "signature",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 660,
                            "src": "1083:9:51",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_calldata_ptr",
                              "typeString": "bytes calldata"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes_calldata_ptr",
                              "typeString": "bytes calldata"
                            }
                          ],
                          "expression": {
                            "id": 666,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": -1,
                            "src": "1072:3:51",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 667,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encode",
                          "nodeType": "MemberAccess",
                          "src": "1072:10:51",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 669,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1072:21:51",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 665,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": -8,
                      "src": "1062:9:51",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (bytes memory) pure returns (bytes32)"
                      }
                    },
                    "id": 670,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1062:32:51",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1038:56:51"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 676,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "UnaryOperation",
                        "operator": "!",
                        "prefix": true,
                        "src": "1112:32:51",
                        "subExpression": {
                          "baseExpression": {
                            "id": 673,
                            "name": "_signatureIsUsed",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 638,
                            "src": "1113:16:51",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
                              "typeString": "mapping(bytes32 => bool)"
                            }
                          },
                          "id": 675,
                          "indexExpression": {
                            "id": 674,
                            "name": "signatureHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 664,
                            "src": "1130:13:51",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "1113:31:51",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "4552524f523a444d482d3030313a5349474e41545552455f55534544",
                        "id": 677,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1146:30:51",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_8e53c88cc77be3290241c20586460c6c59763706498c6a6505712649ae69e75c",
                          "typeString": "literal_string \"ERROR:DMH-001:SIGNATURE_USED\""
                        },
                        "value": "ERROR:DMH-001:SIGNATURE_USED"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_8e53c88cc77be3290241c20586460c6c59763706498c6a6505712649ae69e75c",
                          "typeString": "literal_string \"ERROR:DMH-001:SIGNATURE_USED\""
                        }
                      ],
                      "id": 672,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "1104:7:51",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 678,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1104:73:51",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 679,
                  "nodeType": "ExpressionStatement",
                  "src": "1104:73:51"
                },
                {
                  "assignments": [
                    681
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 681,
                      "mutability": "mutable",
                      "name": "signer",
                      "nameLocation": "1196:6:51",
                      "nodeType": "VariableDeclaration",
                      "scope": 704,
                      "src": "1188:14:51",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 680,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "1188:7:51",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 690,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 683,
                        "name": "protectedWallet",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 650,
                        "src": "1250:15:51",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 684,
                        "name": "protectedBalance",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 652,
                        "src": "1279:16:51",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 685,
                        "name": "duration",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 654,
                        "src": "1309:8:51",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 686,
                        "name": "bundleId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 656,
                        "src": "1331:8:51",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 687,
                        "name": "signatureId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 658,
                        "src": "1353:11:51",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "id": 688,
                        "name": "signature",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 660,
                        "src": "1378:9:51",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes calldata"
                        }
                      ],
                      "id": 682,
                      "name": "getSignerFromDigestAndSignature",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 738,
                      "src": "1205:31:51",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_bytes32_$_t_bytes_calldata_ptr_$returns$_t_address_$",
                        "typeString": "function (address,uint256,uint256,uint256,bytes32,bytes calldata) view returns (address)"
                      }
                    },
                    "id": 689,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1205:183:51",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1188:200:51"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 694,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 692,
                          "name": "policyHolder",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 648,
                          "src": "1407:12:51",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "id": 693,
                          "name": "signer",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 681,
                          "src": "1423:6:51",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "1407:22:51",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "4552524f523a444d482d3030323a5349474e41545552455f494e56414c4944",
                        "id": 695,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1431:33:51",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_8b27aaec7de31e49e9b26ba7b77713fb4abf609e8173566afc0f2ab28c206d9e",
                          "typeString": "literal_string \"ERROR:DMH-002:SIGNATURE_INVALID\""
                        },
                        "value": "ERROR:DMH-002:SIGNATURE_INVALID"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_8b27aaec7de31e49e9b26ba7b77713fb4abf609e8173566afc0f2ab28c206d9e",
                          "typeString": "literal_string \"ERROR:DMH-002:SIGNATURE_INVALID\""
                        }
                      ],
                      "id": 691,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "1399:7:51",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 696,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1399:66:51",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 697,
                  "nodeType": "ExpressionStatement",
                  "src": "1399:66:51"
                },
                {
                  "expression": {
                    "id": 702,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 698,
                        "name": "_signatureIsUsed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 638,
                        "src": "1476:16:51",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
                          "typeString": "mapping(bytes32 => bool)"
                        }
                      },
                      "id": 700,
                      "indexExpression": {
                        "id": 699,
                        "name": "signatureHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 664,
                        "src": "1493:13:51",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "1476:31:51",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "hexValue": "74727565",
                      "id": 701,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "1510:4:51",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "true"
                    },
                    "src": "1476:38:51",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 703,
                  "nodeType": "ExpressionStatement",
                  "src": "1476:38:51"
                }
              ]
            },
            "functionSelector": "12435abc",
            "id": 705,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "checkAndRegisterSignature",
            "nameLocation": "761:25:51",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 661,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 648,
                  "mutability": "mutable",
                  "name": "policyHolder",
                  "nameLocation": "805:12:51",
                  "nodeType": "VariableDeclaration",
                  "scope": 705,
                  "src": "797:20:51",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 647,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "797:7:51",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 650,
                  "mutability": "mutable",
                  "name": "protectedWallet",
                  "nameLocation": "835:15:51",
                  "nodeType": "VariableDeclaration",
                  "scope": 705,
                  "src": "827:23:51",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 649,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "827:7:51",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 652,
                  "mutability": "mutable",
                  "name": "protectedBalance",
                  "nameLocation": "868:16:51",
                  "nodeType": "VariableDeclaration",
                  "scope": 705,
                  "src": "860:24:51",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 651,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "860:7:51",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 654,
                  "mutability": "mutable",
                  "name": "duration",
                  "nameLocation": "902:8:51",
                  "nodeType": "VariableDeclaration",
                  "scope": 705,
                  "src": "894:16:51",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 653,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "894:7:51",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 656,
                  "mutability": "mutable",
                  "name": "bundleId",
                  "nameLocation": "928:8:51",
                  "nodeType": "VariableDeclaration",
                  "scope": 705,
                  "src": "920:16:51",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 655,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "920:7:51",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 658,
                  "mutability": "mutable",
                  "name": "signatureId",
                  "nameLocation": "954:11:51",
                  "nodeType": "VariableDeclaration",
                  "scope": 705,
                  "src": "946:19:51",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 657,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "946:7:51",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 660,
                  "mutability": "mutable",
                  "name": "signature",
                  "nameLocation": "990:9:51",
                  "nodeType": "VariableDeclaration",
                  "scope": 705,
                  "src": "975:24:51",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 659,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "975:5:51",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "787:218:51"
            },
            "returnParameters": {
              "id": 662,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1028:0:51"
            },
            "scope": 773,
            "src": "752:769:51",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 737,
              "nodeType": "Block",
              "src": "1813:251:51",
              "statements": [
                {
                  "assignments": [
                    723
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 723,
                      "mutability": "mutable",
                      "name": "digest",
                      "nameLocation": "1831:6:51",
                      "nodeType": "VariableDeclaration",
                      "scope": 737,
                      "src": "1823:14:51",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 722,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "1823:7:51",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 731,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 725,
                        "name": "protectedWallet",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 707,
                        "src": "1867:15:51",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 726,
                        "name": "protectedBalance",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 709,
                        "src": "1900:16:51",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 727,
                        "name": "duration",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 711,
                        "src": "1934:8:51",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 728,
                        "name": "bundleId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 713,
                        "src": "1960:8:51",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 729,
                        "name": "signatureId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 715,
                        "src": "1986:11:51",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 724,
                      "name": "getDigest",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 772,
                      "src": "1840:9:51",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_bytes32_$returns$_t_bytes32_$",
                        "typeString": "function (address,uint256,uint256,uint256,bytes32) view returns (bytes32)"
                      }
                    },
                    "id": 730,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1840:171:51",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1823:188:51"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 733,
                        "name": "digest",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 723,
                        "src": "2039:6:51",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "id": 734,
                        "name": "signature",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 717,
                        "src": "2047:9:51",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes calldata"
                        }
                      ],
                      "id": 732,
                      "name": "getSigner",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4646,
                      "src": "2029:9:51",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_calldata_ptr_$returns$_t_address_$",
                        "typeString": "function (bytes32,bytes calldata) pure returns (address)"
                      }
                    },
                    "id": 735,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2029:28:51",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 721,
                  "id": 736,
                  "nodeType": "Return",
                  "src": "2022:35:51"
                }
              ]
            },
            "functionSelector": "ed7607fd",
            "id": 738,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getSignerFromDigestAndSignature",
            "nameLocation": "1536:31:51",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 718,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 707,
                  "mutability": "mutable",
                  "name": "protectedWallet",
                  "nameLocation": "1585:15:51",
                  "nodeType": "VariableDeclaration",
                  "scope": 738,
                  "src": "1577:23:51",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 706,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1577:7:51",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 709,
                  "mutability": "mutable",
                  "name": "protectedBalance",
                  "nameLocation": "1618:16:51",
                  "nodeType": "VariableDeclaration",
                  "scope": 738,
                  "src": "1610:24:51",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 708,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1610:7:51",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 711,
                  "mutability": "mutable",
                  "name": "duration",
                  "nameLocation": "1652:8:51",
                  "nodeType": "VariableDeclaration",
                  "scope": 738,
                  "src": "1644:16:51",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 710,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1644:7:51",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 713,
                  "mutability": "mutable",
                  "name": "bundleId",
                  "nameLocation": "1678:8:51",
                  "nodeType": "VariableDeclaration",
                  "scope": 738,
                  "src": "1670:16:51",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 712,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1670:7:51",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 715,
                  "mutability": "mutable",
                  "name": "signatureId",
                  "nameLocation": "1704:11:51",
                  "nodeType": "VariableDeclaration",
                  "scope": 738,
                  "src": "1696:19:51",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 714,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1696:7:51",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 717,
                  "mutability": "mutable",
                  "name": "signature",
                  "nameLocation": "1740:9:51",
                  "nodeType": "VariableDeclaration",
                  "scope": 738,
                  "src": "1725:24:51",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 716,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "1725:5:51",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1567:188:51"
            },
            "returnParameters": {
              "id": 721,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 720,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 738,
                  "src": "1800:7:51",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 719,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1800:7:51",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1799:9:51"
            },
            "scope": 773,
            "src": "1527:537:51",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 771,
              "nodeType": "Block",
              "src": "2303:332:51",
              "statements": [
                {
                  "assignments": [
                    754
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 754,
                      "mutability": "mutable",
                      "name": "structHash",
                      "nameLocation": "2321:10:51",
                      "nodeType": "VariableDeclaration",
                      "scope": 771,
                      "src": "2313:18:51",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 753,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "2313:7:51",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 766,
                  "initialValue": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "id": 758,
                            "name": "EIP712_POLICY_TYPE_HASH",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 634,
                            "src": "2385:23:51",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "id": 759,
                            "name": "protectedWallet",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 740,
                            "src": "2426:15:51",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "id": 760,
                            "name": "protectedBalance",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 742,
                            "src": "2459:16:51",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "id": 761,
                            "name": "duration",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 744,
                            "src": "2493:8:51",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "id": 762,
                            "name": "bundleId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 746,
                            "src": "2519:8:51",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "id": 763,
                            "name": "signatureId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 748,
                            "src": "2545:11:51",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "expression": {
                            "id": 756,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": -1,
                            "src": "2357:3:51",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 757,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encode",
                          "nodeType": "MemberAccess",
                          "src": "2357:10:51",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 764,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2357:213:51",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 755,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": -8,
                      "src": "2334:9:51",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (bytes memory) pure returns (bytes32)"
                      }
                    },
                    "id": 765,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2334:246:51",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2313:267:51"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 768,
                        "name": "structHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 754,
                        "src": "2617:10:51",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 767,
                      "name": "getTypedDataV4Hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4661,
                      "src": "2598:18:51",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$",
                        "typeString": "function (bytes32) view returns (bytes32)"
                      }
                    },
                    "id": 769,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2598:30:51",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 752,
                  "id": 770,
                  "nodeType": "Return",
                  "src": "2591:37:51"
                }
              ]
            },
            "id": 772,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getDigest",
            "nameLocation": "2080:9:51",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 749,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 740,
                  "mutability": "mutable",
                  "name": "protectedWallet",
                  "nameLocation": "2107:15:51",
                  "nodeType": "VariableDeclaration",
                  "scope": 772,
                  "src": "2099:23:51",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 739,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2099:7:51",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 742,
                  "mutability": "mutable",
                  "name": "protectedBalance",
                  "nameLocation": "2140:16:51",
                  "nodeType": "VariableDeclaration",
                  "scope": 772,
                  "src": "2132:24:51",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 741,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2132:7:51",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 744,
                  "mutability": "mutable",
                  "name": "duration",
                  "nameLocation": "2174:8:51",
                  "nodeType": "VariableDeclaration",
                  "scope": 772,
                  "src": "2166:16:51",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 743,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2166:7:51",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 746,
                  "mutability": "mutable",
                  "name": "bundleId",
                  "nameLocation": "2200:8:51",
                  "nodeType": "VariableDeclaration",
                  "scope": 772,
                  "src": "2192:16:51",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 745,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2192:7:51",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 748,
                  "mutability": "mutable",
                  "name": "signatureId",
                  "nameLocation": "2226:11:51",
                  "nodeType": "VariableDeclaration",
                  "scope": 772,
                  "src": "2218:19:51",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 747,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2218:7:51",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2089:154:51"
            },
            "returnParameters": {
              "id": 752,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 751,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 772,
                  "src": "2290:7:51",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 750,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2290:7:51",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2289:9:51"
            },
            "scope": 773,
            "src": "2071:564:51",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          }
        ],
        "scope": 774,
        "src": "88:2549:51"
      }
    ],
    "src": "39:2599:51"
  },
  "bytecode": "608060405234801561001057600080fd5b50604080518082018252600d81526c4574686572697363446570656760981b6020808301918252835180850190945260018452603160f81b90840152815191929161005d9160009161008a565b50805161007190600190602084019061008a565b508151602092830120600255805191012060035561015e565b82805461009690610123565b90600052602060002090601f0160209004810192826100b857600085556100fe565b82601f106100d157805160ff19168380011785556100fe565b828001600101855582156100fe579182015b828111156100fe5782518255916020019190600101906100e3565b5061010a92915061010e565b5090565b5b8082111561010a576000815560010161010f565b60028104600182168061013757607f821691505b6020821081141561015857634e487b7160e01b600052602260045260246000fd5b50919050565b610b048061016d6000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c806374a640ff1161005b57806374a640ff146100fd578063ed7607fd14610124578063f7b2ec0d1461014f578063fd0702961461016257610088565b80630ff28b0c1461008d57806312435abc146100b35780633e52fa7d146100c85780635cc33321146100dd575b600080fd5b6100a061009b366004610959565b61018e565b6040519081526020015b60405180910390f35b6100c66100c1366004610857565b610248565b005b6100d0610372565b6040516100aa9190610a06565b6100d0604051806040016040528060018152602001603160f81b81525081565b6100a07f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81565b6101376101323660046108e0565b61038e565b6040516001600160a01b0390911681526020016100aa565b61013761015d366004610971565b6103b8565b6100d06040518060400160405280600d81526020016c4574686572697363446570656760981b81525081565b60006102406101ff600254600354604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201529081019290925260608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b90505b919050565b6000828260405160200161025d9291906109d7565b60408051601f1981840301815291815281516020928301206000818152600490935291205490915060ff16156102da5760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a444d482d3030313a5349474e41545552455f555345440000000060448201526064015b60405180910390fd5b60006102eb8989898989898961038e565b9050806001600160a01b03168a6001600160a01b03161461034e5760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a444d482d3030323a5349474e41545552455f494e56414c49440060448201526064016102d1565b506000908152600460205260409020805460ff191660011790555050505050505050565b6040518060a0016040528060658152602001610a6a6065913981565b60008061039e8989898989610402565b90506103ab8185856103b8565b9998505050505050505050565b60006103fa8484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506104a392505050565b949350505050565b6000806040518060a0016040528060658152602001610a6a6065913960405160200161042e91906109bb565b60408051601f198184030181528282528051602091820120908301526001600160a01b03891690820152606081018790526080810186905260a0810185905260c0810184905260e0016040516020818303038152906040528051906020012090506104988161018e565b979650505050505050565b60008060006104b285856104c7565b915091506104bf8161050d565b509392505050565b6000808251604114156104fe5760208301516040840151606085015160001a6104f287828585610713565b94509450505050610506565b506000905060025b9250929050565b600081600481111561052f57634e487b7160e01b600052602160045260246000fd5b141561053a57610710565b600181600481111561055c57634e487b7160e01b600052602160045260246000fd5b14156105aa5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016102d1565b60028160048111156105cc57634e487b7160e01b600052602160045260246000fd5b141561061a5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016102d1565b600381600481111561063c57634e487b7160e01b600052602160045260246000fd5b14156106955760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b60648201526084016102d1565b60048160048111156106b757634e487b7160e01b600052602160045260246000fd5b14156107105760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b60648201526084016102d1565b50565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561074a57506000905060036107f7565b8460ff16601b1415801561076257508460ff16601c14155b1561077357506000905060046107f7565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156107c7573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166107f0576000600192509250506107f7565b9150600090505b94509492505050565b80356001600160a01b038116811461024357600080fd5b60008083601f840112610828578182fd5b50813567ffffffffffffffff81111561083f578182fd5b60208301915083602082850101111561050657600080fd5b60008060008060008060008060e0898b031215610872578384fd5b61087b89610800565b975061088960208a01610800565b965060408901359550606089013594506080890135935060a0890135925060c089013567ffffffffffffffff8111156108c0578283fd5b6108cc8b828c01610817565b999c989b5096995094979396929594505050565b600080600080600080600060c0888a0312156108fa578283fd5b61090388610800565b96506020880135955060408801359450606088013593506080880135925060a088013567ffffffffffffffff81111561093a578283fd5b6109468a828b01610817565b989b979a50959850939692959293505050565b60006020828403121561096a578081fd5b5035919050565b600080600060408486031215610985578283fd5b83359250602084013567ffffffffffffffff8111156109a2578283fd5b6109ae86828701610817565b9497909650939450505050565b600082516109cd818460208701610a39565b9190910192915050565b60006020825282602083015282846040840137818301604090810191909152601f909201601f19160101919050565b6000602082528251806020840152610a25816040850160208701610a39565b601f01601f19169190910160400192915050565b60005b83811015610a54578181015183820152602001610a3c565b83811115610a63576000848401525b5050505056fe506f6c69637928616464726573732077616c6c65742c75696e743235362070726f74656374656442616c616e63652c75696e74323536206475726174696f6e2c75696e743235362062756e646c6549642c62797465733332207369676e6174757265496429a2646970667358221220ab486b720743b4ec7909d0bd019200bb96ffa69a8f0081c8bf44c222ab62d5d764736f6c63430008020033",
  "bytecodeSha1": "9c5e1d6b51aba4fe14f09216d72fe3b137b8d554",
  "compiler": {
    "evm_version": "istanbul",
    "optimizer": {
      "enabled": true,
      "runs": 200
    },
    "version": "0.8.2+commit.661d1103"
  },
  "contractName": "DepegMessageHelper",
  "coverageMap": {
    "branches": {
      "12": {},
      "13": {
        "ECDSA._throwError": {
          "25": [
            616,
            645,
            false
          ],
          "26": [
            712,
            750,
            false
          ],
          "27": [
            821,
            865,
            false
          ],
          "28": [
            943,
            982,
            false
          ],
          "29": [
            1063,
            1102,
            false
          ]
        },
        "ECDSA.tryRecover": {
          "24": [
            2361,
            2383,
            false
          ],
          "30": [
            6204,
            6283,
            false
          ],
          "31": [
            6374,
            6381,
            false
          ],
          "32": [
            6385,
            6392,
            false
          ],
          "33": [
            6619,
            6639,
            false
          ]
        }
      },
      "51": {
        "DepegMessageHelper.checkAndRegisterSignature": {
          "22": [
            1112,
            1144,
            true
          ],
          "23": [
            1407,
            1429,
            true
          ]
        }
      },
      "54": {}
    },
    "statements": {
      "12": {},
      "13": {
        "ECDSA._throwError": {
          "13": [
            661,
            668
          ],
          "14": [
            766,
            800
          ],
          "15": [
            881,
            922
          ],
          "16": [
            998,
            1042
          ],
          "17": [
            1118,
            1162
          ]
        },
        "ECDSA.recover": {
          "9": [
            3935,
            3953
          ],
          "10": [
            3963,
            3979
          ]
        },
        "ECDSA.toTypedDataHash": {
          "2": [
            8660,
            8735
          ]
        },
        "ECDSA.tryRecover": {
          "11": [
            2837,
            2869
          ],
          "12": [
            2900,
            2956
          ],
          "18": [
            6299,
            6350
          ],
          "19": [
            6408,
            6459
          ],
          "20": [
            6655,
            6705
          ],
          "21": [
            6726,
            6763
          ]
        }
      },
      "51": {
        "DepegMessageHelper.checkAndRegisterSignature": {
          "3": [
            1104,
            1177
          ],
          "4": [
            1399,
            1465
          ],
          "5": [
            1476,
            1514
          ]
        },
        "DepegMessageHelper.getDigest": {
          "8": [
            2591,
            2628
          ]
        },
        "DepegMessageHelper.getSignerFromDigestAndSignature": {
          "6": [
            2022,
            2057
          ]
        }
      },
      "54": {
        "EIP712._buildDomainSeparator": {
          "1": [
            1271,
            1474
          ]
        },
        "EIP712.getSigner": {
          "7": [
            817,
            856
          ]
        },
        "EIP712.getTypedDataV4Hash": {
          "0": [
            1118,
            1183
          ]
        }
      }
    }
  },
  "dependencies": [
    "OpenZeppelin/openzeppelin-contracts@4.7.3/ECDSA",
    "EIP712",
    "OpenZeppelin/openzeppelin-contracts@4.7.3/Strings"
  ],
  "deployedBytecode": "608060405234801561001057600080fd5b50600436106100885760003560e01c806374a640ff1161005b57806374a640ff146100fd578063ed7607fd14610124578063f7b2ec0d1461014f578063fd0702961461016257610088565b80630ff28b0c1461008d57806312435abc146100b35780633e52fa7d146100c85780635cc33321146100dd575b600080fd5b6100a061009b366004610959565b61018e565b6040519081526020015b60405180910390f35b6100c66100c1366004610857565b610248565b005b6100d0610372565b6040516100aa9190610a06565b6100d0604051806040016040528060018152602001603160f81b81525081565b6100a07f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81565b6101376101323660046108e0565b61038e565b6040516001600160a01b0390911681526020016100aa565b61013761015d366004610971565b6103b8565b6100d06040518060400160405280600d81526020016c4574686572697363446570656760981b81525081565b60006102406101ff600254600354604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201529081019290925260608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b90505b919050565b6000828260405160200161025d9291906109d7565b60408051601f1981840301815291815281516020928301206000818152600490935291205490915060ff16156102da5760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a444d482d3030313a5349474e41545552455f555345440000000060448201526064015b60405180910390fd5b60006102eb8989898989898961038e565b9050806001600160a01b03168a6001600160a01b03161461034e5760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a444d482d3030323a5349474e41545552455f494e56414c49440060448201526064016102d1565b506000908152600460205260409020805460ff191660011790555050505050505050565b6040518060a0016040528060658152602001610a6a6065913981565b60008061039e8989898989610402565b90506103ab8185856103b8565b9998505050505050505050565b60006103fa8484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506104a392505050565b949350505050565b6000806040518060a0016040528060658152602001610a6a6065913960405160200161042e91906109bb565b60408051601f198184030181528282528051602091820120908301526001600160a01b03891690820152606081018790526080810186905260a0810185905260c0810184905260e0016040516020818303038152906040528051906020012090506104988161018e565b979650505050505050565b60008060006104b285856104c7565b915091506104bf8161050d565b509392505050565b6000808251604114156104fe5760208301516040840151606085015160001a6104f287828585610713565b94509450505050610506565b506000905060025b9250929050565b600081600481111561052f57634e487b7160e01b600052602160045260246000fd5b141561053a57610710565b600181600481111561055c57634e487b7160e01b600052602160045260246000fd5b14156105aa5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016102d1565b60028160048111156105cc57634e487b7160e01b600052602160045260246000fd5b141561061a5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016102d1565b600381600481111561063c57634e487b7160e01b600052602160045260246000fd5b14156106955760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b60648201526084016102d1565b60048160048111156106b757634e487b7160e01b600052602160045260246000fd5b14156107105760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b60648201526084016102d1565b50565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561074a57506000905060036107f7565b8460ff16601b1415801561076257508460ff16601c14155b1561077357506000905060046107f7565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156107c7573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166107f0576000600192509250506107f7565b9150600090505b94509492505050565b80356001600160a01b038116811461024357600080fd5b60008083601f840112610828578182fd5b50813567ffffffffffffffff81111561083f578182fd5b60208301915083602082850101111561050657600080fd5b60008060008060008060008060e0898b031215610872578384fd5b61087b89610800565b975061088960208a01610800565b965060408901359550606089013594506080890135935060a0890135925060c089013567ffffffffffffffff8111156108c0578283fd5b6108cc8b828c01610817565b999c989b5096995094979396929594505050565b600080600080600080600060c0888a0312156108fa578283fd5b61090388610800565b96506020880135955060408801359450606088013593506080880135925060a088013567ffffffffffffffff81111561093a578283fd5b6109468a828b01610817565b989b979a50959850939692959293505050565b60006020828403121561096a578081fd5b5035919050565b600080600060408486031215610985578283fd5b83359250602084013567ffffffffffffffff8111156109a2578283fd5b6109ae86828701610817565b9497909650939450505050565b600082516109cd818460208701610a39565b9190910192915050565b60006020825282602083015282846040840137818301604090810191909152601f909201601f19160101919050565b6000602082528251806020840152610a25816040850160208701610a39565b601f01601f19169190910160400192915050565b60005b83811015610a54578181015183820152602001610a3c565b83811115610a63576000848401525b5050505056fe506f6c69637928616464726573732077616c6c65742c75696e743235362070726f74656374656442616c616e63652c75696e74323536206475726174696f6e2c75696e743235362062756e646c6549642c62797465733332207369676e6174757265496429a2646970667358221220ab486b720743b4ec7909d0bd019200bb96ffa69a8f0081c8bf44c222ab62d5d764736f6c63430008020033",
  "deployedSourceMap": "88:2549:51:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1030:160:54;;;;;;:::i;:::-;;:::i;:::-;;;3942:25:67;;;3930:2;3915:18;1030:160:54;;;;;;;;752:769:51;;;;;;:::i;:::-;;:::i;:::-;;290:147;;;:::i;:::-;;;;;;;:::i;233:50::-;;;;;;;;;;;;;;;-1:-1:-1;;;233:50:51;;;;;163:146:54;;214:95;163:146;;1527:537:51;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;3752:32:67;;;3734:51;;3722:2;3707:18;1527:537:51;3689:102:67;660:203:54;;;;;;:::i;:::-;;:::i;168:59:51:-;;;;;;;;;;;;;;;-1:-1:-1;;;168:59:51;;;;;1030:160:54;1099:7;1125:58;1147:23;1364:11;;1394:14;;1301:172;;;214:95;1301:172;;;4803:25:67;4844:18;;;4837:34;;;;4887:18;;;4880:34;1427:13:54;4930:18:67;;;4923:34;1467:4:54;4973:19:67;;;4966:61;1252:7:54;;4775:19:67;;1301:172:54;;;;;;;;;;;;1278:196;;;;;;1271:203;;1197:284;;1147:23;1172:10;8677:57:13;;-1:-1:-1;;;8677:57:13;;;3449:27:67;3492:11;;;3485:27;;;3528:12;;;3521:28;;;8641:7:13;;3565:12:67;;8677:57:13;;;;;;;;;;;;8667:68;;;;;;8660:75;;8548:194;;;;;1125:58:54;1118:65;;1030:160;;;;:::o;752:769:51:-;1038:21;1083:9;;1072:21;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;1072:21:51;;;;;;;;;1062:32;;1072:21;1062:32;;;;1113:31;;;;:16;:31;;;;;;1062:32;;-1:-1:-1;1113:31:51;;1112:32;1104:73;;;;-1:-1:-1;;;1104:73:51;;8306:2:67;1104:73:51;;;8288:21:67;8345:2;8325:18;;;8318:30;8384;8364:18;;;8357:58;8432:18;;1104:73:51;;;;;;;;;1188:14;1205:183;1250:15;1279:16;1309:8;1331;1353:11;1378:9;;1205:31;:183::i;:::-;1188:200;;1423:6;-1:-1:-1;;;;;1407:22:51;:12;-1:-1:-1;;;;;1407:22:51;;1399:66;;;;-1:-1:-1;;;1399:66:51;;7946:2:67;1399:66:51;;;7928:21:67;7985:2;7965:18;;;7958:30;8024:33;8004:18;;;7997:61;8075:18;;1399:66:51;7918:181:67;1399:66:51;-1:-1:-1;1476:31:51;;;;:16;:31;;;;;:38;;-1:-1:-1;;1476:38:51;1510:4;1476:38;;;-1:-1:-1;;;;;;;;752:769:51:o;290:147::-;;;;;;;;;;;;;;;;;;;:::o;1527:537::-;1800:7;1823:14;1840:171;1867:15;1900:16;1934:8;1960;1986:11;1840:9;:171::i;:::-;1823:188;;2029:28;2039:6;2047:9;;2029;:28::i;:::-;2022:35;1527:537;-1:-1:-1;;;;;;;;;1527:537:51:o;660:203:54:-;787:14;824:32;838:6;846:9;;824:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;824:13:54;;-1:-1:-1;;;824:32:54:i;:::-;817:39;660:203;-1:-1:-1;;;;660:203:54:o;2071:564:51:-;2290:7;2313:18;521;;;;;;;;;;;;;;;;;504:36;;;;;;;;:::i;:::-;;;;-1:-1:-1;;504:36:51;;;;;;;;;494:47;;504:36;494:47;;;;2357:213;;;4265:25:67;-1:-1:-1;;;;;4326:32:67;;4306:18;;;4299:60;4375:18;;;4368:34;;;4418:18;;;4411:34;;;4461:19;;;4454:35;;;4505:19;;;4498:35;;;4237:19;;2357:213:51;;;;;;;;;;;;2334:246;;;;;;2313:267;;2598:30;2617:10;2598:18;:30::i;:::-;2591:37;2071:564;-1:-1:-1;;;;;;;2071:564:51:o;3759:227:13:-;3837:7;3857:17;3876:18;3898:27;3909:4;3915:9;3898:10;:27::i;:::-;3856:69;;;;3935:18;3947:5;3935:11;:18::i;:::-;-1:-1:-1;3970:9:13;3759:227;-1:-1:-1;;;3759:227:13:o;2243:730::-;2324:7;2333:12;2361:9;:16;2381:2;2361:22;2357:610;;;2697:4;2682:20;;2676:27;2746:4;2731:20;;2725:27;2803:4;2788:20;;2782:27;2399:9;2774:36;2844:25;2855:4;2774:36;2676:27;2725;2844:10;:25::i;:::-;2837:32;;;;;;;;;2357:610;-1:-1:-1;2916:1:13;;-1:-1:-1;2920:35:13;2357:610;2243:730;;;;;:::o;548:631::-;625:20;616:5;:29;;;;;;-1:-1:-1;;;616:29:13;;;;;;;;;;612:561;;;661:7;;612:561;721:29;712:5;:38;;;;;;-1:-1:-1;;;712:38:13;;;;;;;;;;708:465;;;766:34;;-1:-1:-1;;;766:34:13;;6427:2:67;766:34:13;;;6409:21:67;6466:2;6446:18;;;6439:30;6505:26;6485:18;;;6478:54;6549:18;;766:34:13;6399:174:67;708:465:13;830:35;821:5;:44;;;;;;-1:-1:-1;;;821:44:13;;;;;;;;;;817:356;;;881:41;;-1:-1:-1;;;881:41:13;;6780:2:67;881:41:13;;;6762:21:67;6819:2;6799:18;;;6792:30;6858:33;6838:18;;;6831:61;6909:18;;881:41:13;6752:181:67;817:356:13;952:30;943:5;:39;;;;;;-1:-1:-1;;;943:39:13;;;;;;;;;;939:234;;;998:44;;-1:-1:-1;;;998:44:13;;7140:2:67;998:44:13;;;7122:21:67;7179:2;7159:18;;;7152:30;7218:34;7198:18;;;7191:62;-1:-1:-1;;;7269:18:67;;;7262:32;7311:19;;998:44:13;7112:224:67;939:234:13;1072:30;1063:5;:39;;;;;;-1:-1:-1;;;1063:39:13;;;;;;;;;;1059:114;;;1118:44;;-1:-1:-1;;;1118:44:13;;7543:2:67;1118:44:13;;;7525:21:67;7582:2;7562:18;;;7555:30;7621:34;7601:18;;;7594:62;-1:-1:-1;;;7672:18:67;;;7665:32;7714:19;;1118:44:13;7515:224:67;1059:114:13;548:631;:::o;5167:1603::-;5293:7;;6217:66;6204:79;;6200:161;;;-1:-1:-1;6315:1:13;;-1:-1:-1;6319:30:13;6299:51;;6200:161;6374:1;:7;;6379:2;6374:7;;:18;;;;;6385:1;:7;;6390:2;6385:7;;6374:18;6370:100;;;-1:-1:-1;6424:1:13;;-1:-1:-1;6428:30:13;6408:51;;6370:100;6581:24;;;6564:14;6581:24;;;;;;;;;5265:25:67;;;5338:4;5326:17;;5306:18;;;5299:45;;;;5360:18;;;5353:34;;;5403:18;;;5396:34;;;6581:24:13;;5237:19:67;;6581:24:13;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6581:24:13;;-1:-1:-1;;6581:24:13;;;-1:-1:-1;;;;;;;6619:20:13;;6615:101;;6671:1;6675:29;6655:50;;;;;;;6615:101;6734:6;-1:-1:-1;6742:20:13;;-1:-1:-1;5167:1603:13;;;;;;;;:::o;14:173:67:-;82:20;;-1:-1:-1;;;;;131:31:67;;121:42;;111:2;;177:1;174;167:12;192:375;;;307:3;300:4;292:6;288:17;284:27;274:2;;332:8;322;315:26;274:2;-1:-1:-1;362:20:67;;405:18;394:30;;391:2;;;444:8;434;427:26;391:2;488:4;480:6;476:17;464:29;;540:3;533:4;524:6;516;512:19;508:30;505:39;502:2;;;557:1;554;547:12;572:853;;;;;;;;;805:3;793:9;784:7;780:23;776:33;773:2;;;827:6;819;812:22;773:2;855:29;874:9;855:29;:::i;:::-;845:39;;903:38;937:2;926:9;922:18;903:38;:::i;:::-;893:48;;988:2;977:9;973:18;960:32;950:42;;1039:2;1028:9;1024:18;1011:32;1001:42;;1090:3;1079:9;1075:19;1062:33;1052:43;;1142:3;1131:9;1127:19;1114:33;1104:43;;1198:3;1187:9;1183:19;1170:33;1226:18;1218:6;1215:30;1212:2;;;1263:6;1255;1248:22;1212:2;1307:58;1357:7;1348:6;1337:9;1333:22;1307:58;:::i;:::-;763:662;;;;-1:-1:-1;763:662:67;;-1:-1:-1;763:662:67;;;;;;1384:8;-1:-1:-1;;;763:662:67:o;1430:778::-;;;;;;;;1646:3;1634:9;1625:7;1621:23;1617:33;1614:2;;;1668:6;1660;1653:22;1614:2;1696:29;1715:9;1696:29;:::i;:::-;1686:39;;1772:2;1761:9;1757:18;1744:32;1734:42;;1823:2;1812:9;1808:18;1795:32;1785:42;;1874:2;1863:9;1859:18;1846:32;1836:42;;1925:3;1914:9;1910:19;1897:33;1887:43;;1981:3;1970:9;1966:19;1953:33;2009:18;2001:6;1998:30;1995:2;;;2046:6;2038;2031:22;1995:2;2090:58;2140:7;2131:6;2120:9;2116:22;2090:58;:::i;:::-;1604:604;;;;-1:-1:-1;1604:604:67;;-1:-1:-1;1604:604:67;;;;2064:84;;-1:-1:-1;;;1604:604:67:o;2213:190::-;;2325:2;2313:9;2304:7;2300:23;2296:32;2293:2;;;2346:6;2338;2331:22;2293:2;-1:-1:-1;2374:23:67;;2283:120;-1:-1:-1;2283:120:67:o;2408:497::-;;;;2556:2;2544:9;2535:7;2531:23;2527:32;2524:2;;;2577:6;2569;2562:22;2524:2;2618:9;2605:23;2595:33;;2679:2;2668:9;2664:18;2651:32;2706:18;2698:6;2695:30;2692:2;;;2743:6;2735;2728:22;2692:2;2787:58;2837:7;2828:6;2817:9;2813:22;2787:58;:::i;:::-;2514:391;;2864:8;;-1:-1:-1;2761:84:67;;-1:-1:-1;;;;2514:391:67:o;2910:276::-;;3079:6;3073:13;3095:53;3141:6;3136:3;3129:4;3121:6;3117:17;3095:53;:::i;:::-;3164:16;;;;;3049:137;-1:-1:-1;;3049:137:67:o;5441:391::-;;5598:2;5587:9;5580:21;5637:6;5632:2;5621:9;5617:18;5610:34;5694:6;5686;5681:2;5670:9;5666:18;5653:48;5721:22;;;5745:2;5717:31;;;5710:45;;;;5816:2;5795:15;;;-1:-1:-1;;5791:29:67;5776:45;5772:54;;5570:262;-1:-1:-1;5570:262:67:o;5837:383::-;;5986:2;5975:9;5968:21;6018:6;6012:13;6061:6;6056:2;6045:9;6041:18;6034:34;6077:66;6136:6;6131:2;6120:9;6116:18;6111:2;6103:6;6099:15;6077:66;:::i;:::-;6204:2;6183:15;-1:-1:-1;;6179:29:67;6164:45;;;;6211:2;6160:54;;5958:262;-1:-1:-1;;5958:262:67:o;8461:258::-;8533:1;8543:113;8557:6;8554:1;8551:13;8543:113;;;8633:11;;;8627:18;8614:11;;;8607:39;8579:2;8572:10;8543:113;;;8674:6;8671:1;8668:13;8665:2;;;8709:1;8700:6;8695:3;8691:16;8684:27;8665:2;;8514:205;;;:::o",
  "language": "Solidity",
  "natspec": {
    "kind": "dev",
    "methods": {},
    "version": 1
  },
  "offset": [
    88,
    2637
  ],
  "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x88 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x74A640FF GT PUSH2 0x5B JUMPI DUP1 PUSH4 0x74A640FF EQ PUSH2 0xFD JUMPI DUP1 PUSH4 0xED7607FD EQ PUSH2 0x124 JUMPI DUP1 PUSH4 0xF7B2EC0D EQ PUSH2 0x14F JUMPI DUP1 PUSH4 0xFD070296 EQ PUSH2 0x162 JUMPI PUSH2 0x88 JUMP JUMPDEST DUP1 PUSH4 0xFF28B0C EQ PUSH2 0x8D JUMPI DUP1 PUSH4 0x12435ABC EQ PUSH2 0xB3 JUMPI DUP1 PUSH4 0x3E52FA7D EQ PUSH2 0xC8 JUMPI DUP1 PUSH4 0x5CC33321 EQ PUSH2 0xDD JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xA0 PUSH2 0x9B CALLDATASIZE PUSH1 0x4 PUSH2 0x959 JUMP JUMPDEST PUSH2 0x18E JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xC6 PUSH2 0xC1 CALLDATASIZE PUSH1 0x4 PUSH2 0x857 JUMP JUMPDEST PUSH2 0x248 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xD0 PUSH2 0x372 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xAA SWAP2 SWAP1 PUSH2 0xA06 JUMP JUMPDEST PUSH2 0xD0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x31 PUSH1 0xF8 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH2 0xA0 PUSH32 0x8B73C3C69BB8FE3D512ECC4CF759CC79239F7B179B0FFACAA9A75D522B39400F DUP2 JUMP JUMPDEST PUSH2 0x137 PUSH2 0x132 CALLDATASIZE PUSH1 0x4 PUSH2 0x8E0 JUMP JUMPDEST PUSH2 0x38E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xAA JUMP JUMPDEST PUSH2 0x137 PUSH2 0x15D CALLDATASIZE PUSH1 0x4 PUSH2 0x971 JUMP JUMPDEST PUSH2 0x3B8 JUMP JUMPDEST PUSH2 0xD0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xD DUP2 MSTORE PUSH1 0x20 ADD PUSH13 0x45746865726973634465706567 PUSH1 0x98 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x240 PUSH2 0x1FF PUSH1 0x2 SLOAD PUSH1 0x3 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x8B73C3C69BB8FE3D512ECC4CF759CC79239F7B179B0FFACAA9A75D522B39400F PUSH1 0x20 DUP3 ADD MSTORE SWAP1 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x60 DUP3 ADD MSTORE CHAINID PUSH1 0x80 DUP3 ADD MSTORE ADDRESS PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 PUSH1 0xC0 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP1 JUMP JUMPDEST DUP4 PUSH1 0x40 MLOAD PUSH2 0x1901 PUSH1 0xF0 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x22 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x42 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH1 0x62 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x25D SWAP3 SWAP2 SWAP1 PUSH2 0x9D7 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 SWAP3 DUP4 ADD KECCAK256 PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 SWAP1 SWAP4 MSTORE SWAP2 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF AND ISZERO PUSH2 0x2DA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A444D482D3030313A5349474E41545552455F5553454400000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2EB DUP10 DUP10 DUP10 DUP10 DUP10 DUP10 DUP10 PUSH2 0x38E JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP11 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x34E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A444D482D3030323A5349474E41545552455F494E56414C494400 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x2D1 JUMP JUMPDEST POP PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x65 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xA6A PUSH1 0x65 SWAP2 CODECOPY DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x39E DUP10 DUP10 DUP10 DUP10 DUP10 PUSH2 0x402 JUMP JUMPDEST SWAP1 POP PUSH2 0x3AB DUP2 DUP6 DUP6 PUSH2 0x3B8 JUMP JUMPDEST SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3FA DUP5 DUP5 DUP5 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 PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x4A3 SWAP3 POP POP POP JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x65 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xA6A PUSH1 0x65 SWAP2 CODECOPY PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x42E SWAP2 SWAP1 PUSH2 0x9BB JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE DUP3 DUP3 MSTORE DUP1 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD KECCAK256 SWAP1 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND SWAP1 DUP3 ADD MSTORE PUSH1 0x60 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0xA0 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0xC0 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0xE0 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH2 0x498 DUP2 PUSH2 0x18E JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x4B2 DUP6 DUP6 PUSH2 0x4C7 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x4BF DUP2 PUSH2 0x50D JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 MLOAD PUSH1 0x41 EQ ISZERO PUSH2 0x4FE JUMPI PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x40 DUP5 ADD MLOAD PUSH1 0x60 DUP6 ADD MLOAD PUSH1 0x0 BYTE PUSH2 0x4F2 DUP8 DUP3 DUP6 DUP6 PUSH2 0x713 JUMP JUMPDEST SWAP5 POP SWAP5 POP POP POP POP PUSH2 0x506 JUMP JUMPDEST POP PUSH1 0x0 SWAP1 POP PUSH1 0x2 JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x52F JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x53A JUMPI PUSH2 0x710 JUMP JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x55C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x5AA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45434453413A20696E76616C6964207369676E61747572650000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x2D1 JUMP JUMPDEST PUSH1 0x2 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x5CC JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x61A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45434453413A20696E76616C6964207369676E6174757265206C656E67746800 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x2D1 JUMP JUMPDEST PUSH1 0x3 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x63C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x695 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45434453413A20696E76616C6964207369676E6174757265202773272076616C PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7565 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x2D1 JUMP JUMPDEST PUSH1 0x4 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x6B7 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x710 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45434453413A20696E76616C6964207369676E6174757265202776272076616C PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7565 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x2D1 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0 DUP4 GT ISZERO PUSH2 0x74A JUMPI POP PUSH1 0x0 SWAP1 POP PUSH1 0x3 PUSH2 0x7F7 JUMP JUMPDEST DUP5 PUSH1 0xFF AND PUSH1 0x1B EQ ISZERO DUP1 ISZERO PUSH2 0x762 JUMPI POP DUP5 PUSH1 0xFF AND PUSH1 0x1C EQ ISZERO JUMPDEST ISZERO PUSH2 0x773 JUMPI POP PUSH1 0x0 SWAP1 POP PUSH1 0x4 PUSH2 0x7F7 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP1 DUP5 MSTORE DUP10 SWAP1 MSTORE PUSH1 0xFF DUP9 AND SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x60 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 SWAP1 PUSH1 0xA0 ADD PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x7C7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1F NOT ADD MLOAD SWAP2 POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x7F0 JUMPI PUSH1 0x0 PUSH1 0x1 SWAP3 POP SWAP3 POP POP PUSH2 0x7F7 JUMP JUMPDEST SWAP2 POP PUSH1 0x0 SWAP1 POP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x243 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x828 JUMPI DUP2 DUP3 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x83F JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x506 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xE0 DUP10 DUP12 SUB SLT ISZERO PUSH2 0x872 JUMPI DUP4 DUP5 REVERT JUMPDEST PUSH2 0x87B DUP10 PUSH2 0x800 JUMP JUMPDEST SWAP8 POP PUSH2 0x889 PUSH1 0x20 DUP11 ADD PUSH2 0x800 JUMP JUMPDEST SWAP7 POP PUSH1 0x40 DUP10 ADD CALLDATALOAD SWAP6 POP PUSH1 0x60 DUP10 ADD CALLDATALOAD SWAP5 POP PUSH1 0x80 DUP10 ADD CALLDATALOAD SWAP4 POP PUSH1 0xA0 DUP10 ADD CALLDATALOAD SWAP3 POP PUSH1 0xC0 DUP10 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x8C0 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x8CC DUP12 DUP3 DUP13 ADD PUSH2 0x817 JUMP JUMPDEST SWAP10 SWAP13 SWAP9 SWAP12 POP SWAP7 SWAP10 POP SWAP5 SWAP8 SWAP4 SWAP7 SWAP3 SWAP6 SWAP5 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xC0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x8FA JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x903 DUP9 PUSH2 0x800 JUMP JUMPDEST SWAP7 POP PUSH1 0x20 DUP9 ADD CALLDATALOAD SWAP6 POP PUSH1 0x40 DUP9 ADD CALLDATALOAD SWAP5 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP4 POP PUSH1 0x80 DUP9 ADD CALLDATALOAD SWAP3 POP PUSH1 0xA0 DUP9 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x93A JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x946 DUP11 DUP3 DUP12 ADD PUSH2 0x817 JUMP JUMPDEST SWAP9 SWAP12 SWAP8 SWAP11 POP SWAP6 SWAP9 POP SWAP4 SWAP7 SWAP3 SWAP6 SWAP3 SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x96A JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x985 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x9A2 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x9AE DUP7 DUP3 DUP8 ADD PUSH2 0x817 JUMP JUMPDEST SWAP5 SWAP8 SWAP1 SWAP7 POP SWAP4 SWAP5 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x9CD DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0xA39 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE DUP3 PUSH1 0x20 DUP4 ADD MSTORE DUP3 DUP5 PUSH1 0x40 DUP5 ADD CALLDATACOPY DUP2 DUP4 ADD PUSH1 0x40 SWAP1 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1F SWAP1 SWAP3 ADD PUSH1 0x1F NOT AND ADD ADD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0xA25 DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0xA39 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xA54 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xA3C JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0xA63 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP INVALID POP PUSH16 0x6C69637928616464726573732077616C PUSH13 0x65742C75696E74323536207072 PUSH16 0x74656374656442616C616E63652C7569 PUSH15 0x74323536206475726174696F6E2C75 PUSH10 0x6E743235362062756E64 PUSH13 0x6549642C627974657333322073 PUSH10 0x676E6174757265496429 LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xAB 0x48 PUSH12 0x720743B4EC7909D0BD019200 0xBB SWAP7 SELFDESTRUCT 0xA6 SWAP11 DUP16 STOP DUP2 0xC8 0xBF DIFFICULTY 0xC2 0x22 0xAB PUSH3 0xD5D764 PUSH20 0x6F6C634300080200330000000000000000000000 ",
  "pcMap": {
    "0": {
      "offset": [
        88,
        2637
      ],
      "op": "PUSH1",
      "path": "51",
      "value": "0x80"
    },
    "2": {
      "fn": null,
      "offset": [
        88,
        2637
      ],
      "op": "PUSH1",
      "path": "51",
      "value": "0x40"
    },
    "4": {
      "fn": null,
      "offset": [
        88,
        2637
      ],
      "op": "MSTORE",
      "path": "51"
    },
    "5": {
      "fn": null,
      "offset": [
        88,
        2637
      ],
      "op": "CALLVALUE",
      "path": "51"
    },
    "6": {
      "fn": null,
      "offset": [
        88,
        2637
      ],
      "op": "DUP1",
      "path": "51"
    },
    "7": {
      "fn": null,
      "offset": [
        88,
        2637
      ],
      "op": "ISZERO",
      "path": "51"
    },
    "8": {
      "fn": null,
      "offset": [
        88,
        2637
      ],
      "op": "PUSH2",
      "path": "51",
      "value": "0x10"
    },
    "11": {
      "fn": null,
      "offset": [
        88,
        2637
      ],
      "op": "JUMPI",
      "path": "51"
    },
    "12": {
      "fn": null,
      "offset": [
        88,
        2637
      ],
      "op": "PUSH1",
      "path": "51",
      "value": "0x0"
    },
    "14": {
      "fn": null,
      "offset": [
        88,
        2637
      ],
      "op": "DUP1",
      "path": "51"
    },
    "15": {
      "dev": "Cannot send ether to nonpayable function",
      "fn": null,
      "offset": [
        88,
        2637
      ],
      "op": "REVERT",
      "path": "51"
    },
    "16": {
      "fn": null,
      "offset": [
        88,
        2637
      ],
      "op": "JUMPDEST",
      "path": "51"
    },
    "17": {
      "fn": null,
      "offset": [
        88,
        2637
      ],
      "op": "POP",
      "path": "51"
    },
    "18": {
      "fn": null,
      "offset": [
        88,
        2637
      ],
      "op": "PUSH1",
      "path": "51",
      "value": "0x4"
    },
    "20": {
      "fn": null,
      "offset": [
        88,
        2637
      ],
      "op": "CALLDATASIZE",
      "path": "51"
    },
    "21": {
      "fn": null,
      "offset": [
        88,
        2637
      ],
      "op": "LT",
      "path": "51"
    },
    "22": {
      "fn": null,
      "offset": [
        88,
        2637
      ],
      "op": "PUSH2",
      "path": "51",
      "value": "0x88"
    },
    "25": {
      "fn": null,
      "offset": [
        88,
        2637
      ],
      "op": "JUMPI",
      "path": "51"
    },
    "26": {
      "fn": null,
      "offset": [
        88,
        2637
      ],
      "op": "PUSH1",
      "path": "51",
      "value": "0x0"
    },
    "28": {
      "fn": null,
      "offset": [
        88,
        2637
      ],
      "op": "CALLDATALOAD",
      "path": "51"
    },
    "29": {
      "fn": null,
      "offset": [
        88,
        2637
      ],
      "op": "PUSH1",
      "path": "51",
      "value": "0xE0"
    },
    "31": {
      "fn": null,
      "offset": [
        88,
        2637
      ],
      "op": "SHR",
      "path": "51"
    },
    "32": {
      "fn": null,
      "offset": [
        88,
        2637
      ],
      "op": "DUP1",
      "path": "51"
    },
    "33": {
      "fn": null,
      "offset": [
        88,
        2637
      ],
      "op": "PUSH4",
      "path": "51",
      "value": "0x74A640FF"
    },
    "38": {
      "fn": null,
      "offset": [
        88,
        2637
      ],
      "op": "GT",
      "path": "51"
    },
    "39": {
      "fn": null,
      "offset": [
        88,
        2637
      ],
      "op": "PUSH2",
      "path": "51",
      "value": "0x5B"
    },
    "42": {
      "fn": null,
      "offset": [
        88,
        2637
      ],
      "op": "JUMPI",
      "path": "51"
    },
    "43": {
      "fn": null,
      "offset": [
        88,
        2637
      ],
      "op": "DUP1",
      "path": "51"
    },
    "44": {
      "fn": null,
      "offset": [
        88,
        2637
      ],
      "op": "PUSH4",
      "path": "51",
      "value": "0x74A640FF"
    },
    "49": {
      "fn": null,
      "offset": [
        88,
        2637
      ],
      "op": "EQ",
      "path": "51"
    },
    "50": {
      "fn": null,
      "offset": [
        88,
        2637
      ],
      "op": "PUSH2",
      "path": "51",
      "value": "0xFD"
    },
    "53": {
      "fn": null,
      "offset": [
        88,
        2637
      ],
      "op": "JUMPI",
      "path": "51"
    },
    "54": {
      "fn": null,
      "offset": [
        88,
        2637
      ],
      "op": "DUP1",
      "path": "51"
    },
    "55": {
      "fn": null,
      "offset": [
        88,
        2637
      ],
      "op": "PUSH4",
      "path": "51",
      "value": "0xED7607FD"
    },
    "60": {
      "fn": null,
      "offset": [
        88,
        2637
      ],
      "op": "EQ",
      "path": "51"
    },
    "61": {
      "fn": null,
      "offset": [
        88,
        2637
      ],
      "op": "PUSH2",
      "path": "51",
      "value": "0x124"
    },
    "64": {
      "fn": null,
      "offset": [
        88,
        2637
      ],
      "op": "JUMPI",
      "path": "51"
    },
    "65": {
      "fn": null,
      "offset": [
        88,
        2637
      ],
      "op": "DUP1",
      "path": "51"
    },
    "66": {
      "fn": null,
      "offset": [
        88,
        2637
      ],
      "op": "PUSH4",
      "path": "51",
      "value": "0xF7B2EC0D"
    },
    "71": {
      "fn": null,
      "offset": [
        88,
        2637
      ],
      "op": "EQ",
      "path": "51"
    },
    "72": {
      "fn": null,
      "offset": [
        88,
        2637
      ],
      "op": "PUSH2",
      "path": "51",
      "value": "0x14F"
    },
    "75": {
      "fn": null,
      "offset": [
        88,
        2637
      ],
      "op": "JUMPI",
      "path": "51"
    },
    "76": {
      "fn": null,
      "offset": [
        88,
        2637
      ],
      "op": "DUP1",
      "path": "51"
    },
    "77": {
      "fn": null,
      "offset": [
        88,
        2637
      ],
      "op": "PUSH4",
      "path": "51",
      "value": "0xFD070296"
    },
    "82": {
      "fn": null,
      "offset": [
        88,
        2637
      ],
      "op": "EQ",
      "path": "51"
    },
    "83": {
      "fn": null,
      "offset": [
        88,
        2637
      ],
      "op": "PUSH2",
      "path": "51",
      "value": "0x162"
    },
    "86": {
      "fn": null,
      "offset": [
        88,
        2637
      ],
      "op": "JUMPI",
      "path": "51"
    },
    "87": {
      "fn": null,
      "offset": [
        88,
        2637
      ],
      "op": "PUSH2",
      "path": "51",
      "value": "0x88"
    },
    "90": {
      "fn": null,
      "offset": [
        88,
        2637
      ],
      "op": "JUMP",
      "path": "51"
    },
    "91": {
      "fn": null,
      "offset": [
        88,
        2637
      ],
      "op": "JUMPDEST",
      "path": "51"
    },
    "92": {
      "fn": null,
      "offset": [
        88,
        2637
      ],
      "op": "DUP1",
      "path": "51"
    },
    "93": {
      "fn": null,
      "offset": [
        88,
        2637
      ],
      "op": "PUSH4",
      "path": "51",
      "value": "0xFF28B0C"
    },
    "98": {
      "fn": null,
      "offset": [
        88,
        2637
      ],
      "op": "EQ",
      "path": "51"
    },
    "99": {
      "fn": null,
      "offset": [
        88,
        2637
      ],
      "op": "PUSH2",
      "path": "51",
      "value": "0x8D"
    },
    "102": {
      "fn": null,
      "offset": [
        88,
        2637
      ],
      "op": "JUMPI",
      "path": "51"
    },
    "103": {
      "fn": null,
      "offset": [
        88,
        2637
      ],
      "op": "DUP1",
      "path": "51"
    },
    "104": {
      "fn": null,
      "offset": [
        88,
        2637
      ],
      "op": "PUSH4",
      "path": "51",
      "value": "0x12435ABC"
    },
    "109": {
      "fn": null,
      "offset": [
        88,
        2637
      ],
      "op": "EQ",
      "path": "51"
    },
    "110": {
      "fn": null,
      "offset": [
        88,
        2637
      ],
      "op": "PUSH2",
      "path": "51",
      "value": "0xB3"
    },
    "113": {
      "fn": null,
      "offset": [
        88,
        2637
      ],
      "op": "JUMPI",
      "path": "51"
    },
    "114": {
      "fn": null,
      "offset": [
        88,
        2637
      ],
      "op": "DUP1",
      "path": "51"
    },
    "115": {
      "fn": null,
      "offset": [
        88,
        2637
      ],
      "op": "PUSH4",
      "path": "51",
      "value": "0x3E52FA7D"
    },
    "120": {
      "fn": null,
      "offset": [
        88,
        2637
      ],
      "op": "EQ",
      "path": "51"
    },
    "121": {
      "fn": null,
      "offset": [
        88,
        2637
      ],
      "op": "PUSH2",
      "path": "51",
      "value": "0xC8"
    },
    "124": {
      "fn": null,
      "offset": [
        88,
        2637
      ],
      "op": "JUMPI",
      "path": "51"
    },
    "125": {
      "fn": null,
      "offset": [
        88,
        2637
      ],
      "op": "DUP1",
      "path": "51"
    },
    "126": {
      "fn": null,
      "offset": [
        88,
        2637
      ],
      "op": "PUSH4",
      "path": "51",
      "value": "0x5CC33321"
    },
    "131": {
      "fn": null,
      "offset": [
        88,
        2637
      ],
      "op": "EQ",
      "path": "51"
    },
    "132": {
      "fn": null,
      "offset": [
        88,
        2637
      ],
      "op": "PUSH2",
      "path": "51",
      "value": "0xDD"
    },
    "135": {
      "fn": null,
      "offset": [
        88,
        2637
      ],
      "op": "JUMPI",
      "path": "51"
    },
    "136": {
      "fn": null,
      "offset": [
        88,
        2637
      ],
      "op": "JUMPDEST",
      "path": "51"
    },
    "137": {
      "fn": null,
      "offset": [
        88,
        2637
      ],
      "op": "PUSH1",
      "path": "51",
      "value": "0x0"
    },
    "139": {
      "fn": null,
      "offset": [
        88,
        2637
      ],
      "op": "DUP1",
      "path": "51"
    },
    "140": {
      "first_revert": true,
      "fn": null,
      "offset": [
        88,
        2637
      ],
      "op": "REVERT",
      "path": "51"
    },
    "141": {
      "fn": "EIP712.getTypedDataV4Hash",
      "offset": [
        1030,
        1190
      ],
      "op": "JUMPDEST",
      "path": "54"
    },
    "142": {
      "fn": "EIP712.getTypedDataV4Hash",
      "offset": [
        1030,
        1190
      ],
      "op": "PUSH2",
      "path": "54",
      "value": "0xA0"
    },
    "145": {
      "fn": "EIP712.getTypedDataV4Hash",
      "offset": [
        1030,
        1190
      ],
      "op": "PUSH2",
      "path": "54",
      "value": "0x9B"
    },
    "148": {
      "fn": "EIP712.getTypedDataV4Hash",
      "offset": [
        1030,
        1190
      ],
      "op": "CALLDATASIZE",
      "path": "54"
    },
    "149": {
      "fn": "EIP712.getTypedDataV4Hash",
      "offset": [
        1030,
        1190
      ],
      "op": "PUSH1",
      "path": "54",
      "value": "0x4"
    },
    "151": {
      "fn": "EIP712.getTypedDataV4Hash",
      "offset": [
        1030,
        1190
      ],
      "op": "PUSH2",
      "path": "54",
      "value": "0x959"
    },
    "154": {
      "fn": "EIP712.getTypedDataV4Hash",
      "jump": "i",
      "offset": [
        1030,
        1190
      ],
      "op": "JUMP",
      "path": "54"
    },
    "155": {
      "fn": "EIP712.getTypedDataV4Hash",
      "offset": [
        1030,
        1190
      ],
      "op": "JUMPDEST",
      "path": "54"
    },
    "156": {
      "fn": "EIP712.getTypedDataV4Hash",
      "offset": [
        1030,
        1190
      ],
      "op": "PUSH2",
      "path": "54",
      "value": "0x18E"
    },
    "159": {
      "fn": "EIP712.getTypedDataV4Hash",
      "jump": "i",
      "offset": [
        1030,
        1190
      ],
      "op": "JUMP",
      "path": "54"
    },
    "160": {
      "fn": "EIP712.getTypedDataV4Hash",
      "offset": [
        1030,
        1190
      ],
      "op": "JUMPDEST",
      "path": "54"
    },
    "161": {
      "fn": "EIP712.getTypedDataV4Hash",
      "offset": [
        1030,
        1190
      ],
      "op": "PUSH1",
      "path": "54",
      "value": "0x40"
    },
    "163": {
      "fn": "EIP712.getTypedDataV4Hash",
      "offset": [
        1030,
        1190
      ],
      "op": "MLOAD",
      "path": "54"
    },
    "164": {
      "op": "SWAP1"
    },
    "165": {
      "op": "DUP2"
    },
    "166": {
      "op": "MSTORE"
    },
    "167": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "169": {
      "op": "ADD"
    },
    "170": {
      "fn": "EIP712.getTypedDataV4Hash",
      "offset": [
        1030,
        1190
      ],
      "op": "JUMPDEST",
      "path": "54"
    },
    "171": {
      "fn": "EIP712.getTypedDataV4Hash",
      "offset": [
        1030,
        1190
      ],
      "op": "PUSH1",
      "path": "54",
      "value": "0x40"
    },
    "173": {
      "fn": "EIP712.getTypedDataV4Hash",
      "offset": [
        1030,
        1190
      ],
      "op": "MLOAD",
      "path": "54"
    },
    "174": {
      "fn": "EIP712.getTypedDataV4Hash",
      "offset": [
        1030,
        1190
      ],
      "op": "DUP1",
      "path": "54"
    },
    "175": {
      "fn": "EIP712.getTypedDataV4Hash",
      "offset": [
        1030,
        1190
      ],
      "op": "SWAP2",
      "path": "54"
    },
    "176": {
      "fn": "EIP712.getTypedDataV4Hash",
      "offset": [
        1030,
        1190
      ],
      "op": "SUB",
      "path": "54"
    },
    "177": {
      "fn": "EIP712.getTypedDataV4Hash",
      "offset": [
        1030,
        1190
      ],
      "op": "SWAP1",
      "path": "54"
    },
    "178": {
      "fn": "EIP712.getTypedDataV4Hash",
      "offset": [
        1030,
        1190
      ],
      "op": "RETURN",
      "path": "54"
    },
    "179": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        752,
        1521
      ],
      "op": "JUMPDEST",
      "path": "51"
    },
    "180": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        752,
        1521
      ],
      "op": "PUSH2",
      "path": "51",
      "value": "0xC6"
    },
    "183": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        752,
        1521
      ],
      "op": "PUSH2",
      "path": "51",
      "value": "0xC1"
    },
    "186": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        752,
        1521
      ],
      "op": "CALLDATASIZE",
      "path": "51"
    },
    "187": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        752,
        1521
      ],
      "op": "PUSH1",
      "path": "51",
      "value": "0x4"
    },
    "189": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        752,
        1521
      ],
      "op": "PUSH2",
      "path": "51",
      "value": "0x857"
    },
    "192": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "jump": "i",
      "offset": [
        752,
        1521
      ],
      "op": "JUMP",
      "path": "51"
    },
    "193": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        752,
        1521
      ],
      "op": "JUMPDEST",
      "path": "51"
    },
    "194": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        752,
        1521
      ],
      "op": "PUSH2",
      "path": "51",
      "value": "0x248"
    },
    "197": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "jump": "i",
      "offset": [
        752,
        1521
      ],
      "op": "JUMP",
      "path": "51"
    },
    "198": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        752,
        1521
      ],
      "op": "JUMPDEST",
      "path": "51"
    },
    "199": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        752,
        1521
      ],
      "op": "STOP",
      "path": "51"
    },
    "200": {
      "offset": [
        290,
        437
      ],
      "op": "JUMPDEST",
      "path": "51"
    },
    "201": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        290,
        437
      ],
      "op": "PUSH2",
      "path": "51",
      "value": "0xD0"
    },
    "204": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        290,
        437
      ],
      "op": "PUSH2",
      "path": "51",
      "value": "0x372"
    },
    "207": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "jump": "i",
      "offset": [
        290,
        437
      ],
      "op": "JUMP",
      "path": "51"
    },
    "208": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        290,
        437
      ],
      "op": "JUMPDEST",
      "path": "51"
    },
    "209": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        290,
        437
      ],
      "op": "PUSH1",
      "path": "51",
      "value": "0x40"
    },
    "211": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        290,
        437
      ],
      "op": "MLOAD",
      "path": "51"
    },
    "212": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        290,
        437
      ],
      "op": "PUSH2",
      "path": "51",
      "value": "0xAA"
    },
    "215": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        290,
        437
      ],
      "op": "SWAP2",
      "path": "51"
    },
    "216": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        290,
        437
      ],
      "op": "SWAP1",
      "path": "51"
    },
    "217": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        290,
        437
      ],
      "op": "PUSH2",
      "path": "51",
      "value": "0xA06"
    },
    "220": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "jump": "i",
      "offset": [
        290,
        437
      ],
      "op": "JUMP",
      "path": "51"
    },
    "221": {
      "offset": [
        233,
        283
      ],
      "op": "JUMPDEST",
      "path": "51"
    },
    "222": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        233,
        283
      ],
      "op": "PUSH2",
      "path": "51",
      "value": "0xD0"
    },
    "225": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        233,
        283
      ],
      "op": "PUSH1",
      "path": "51",
      "value": "0x40"
    },
    "227": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        233,
        283
      ],
      "op": "MLOAD",
      "path": "51"
    },
    "228": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        233,
        283
      ],
      "op": "DUP1",
      "path": "51"
    },
    "229": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        233,
        283
      ],
      "op": "PUSH1",
      "path": "51",
      "value": "0x40"
    },
    "231": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        233,
        283
      ],
      "op": "ADD",
      "path": "51"
    },
    "232": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        233,
        283
      ],
      "op": "PUSH1",
      "path": "51",
      "value": "0x40"
    },
    "234": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        233,
        283
      ],
      "op": "MSTORE",
      "path": "51"
    },
    "235": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        233,
        283
      ],
      "op": "DUP1",
      "path": "51"
    },
    "236": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        233,
        283
      ],
      "op": "PUSH1",
      "path": "51",
      "value": "0x1"
    },
    "238": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        233,
        283
      ],
      "op": "DUP2",
      "path": "51"
    },
    "239": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        233,
        283
      ],
      "op": "MSTORE",
      "path": "51"
    },
    "240": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        233,
        283
      ],
      "op": "PUSH1",
      "path": "51",
      "value": "0x20"
    },
    "242": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        233,
        283
      ],
      "op": "ADD",
      "path": "51"
    },
    "243": {
      "op": "PUSH1",
      "value": "0x31"
    },
    "245": {
      "op": "PUSH1",
      "value": "0xF8"
    },
    "247": {
      "op": "SHL"
    },
    "248": {
      "offset": [
        233,
        283
      ],
      "op": "DUP2",
      "path": "51"
    },
    "249": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        233,
        283
      ],
      "op": "MSTORE",
      "path": "51"
    },
    "250": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        233,
        283
      ],
      "op": "POP",
      "path": "51"
    },
    "251": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        233,
        283
      ],
      "op": "DUP2",
      "path": "51"
    },
    "252": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        233,
        283
      ],
      "op": "JUMP",
      "path": "51"
    },
    "253": {
      "offset": [
        163,
        309
      ],
      "op": "JUMPDEST",
      "path": "54"
    },
    "254": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        163,
        309
      ],
      "op": "PUSH2",
      "path": "54",
      "value": "0xA0"
    },
    "257": {
      "offset": [
        214,
        309
      ],
      "op": "PUSH32",
      "path": "54",
      "value": "0x8B73C3C69BB8FE3D512ECC4CF759CC79239F7B179B0FFACAA9A75D522B39400F"
    },
    "290": {
      "offset": [
        163,
        309
      ],
      "op": "DUP2",
      "path": "54"
    },
    "291": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        163,
        309
      ],
      "op": "JUMP",
      "path": "54"
    },
    "292": {
      "fn": "DepegMessageHelper.getSignerFromDigestAndSignature",
      "offset": [
        1527,
        2064
      ],
      "op": "JUMPDEST",
      "path": "51"
    },
    "293": {
      "fn": "DepegMessageHelper.getSignerFromDigestAndSignature",
      "offset": [
        1527,
        2064
      ],
      "op": "PUSH2",
      "path": "51",
      "value": "0x137"
    },
    "296": {
      "fn": "DepegMessageHelper.getSignerFromDigestAndSignature",
      "offset": [
        1527,
        2064
      ],
      "op": "PUSH2",
      "path": "51",
      "value": "0x132"
    },
    "299": {
      "fn": "DepegMessageHelper.getSignerFromDigestAndSignature",
      "offset": [
        1527,
        2064
      ],
      "op": "CALLDATASIZE",
      "path": "51"
    },
    "300": {
      "fn": "DepegMessageHelper.getSignerFromDigestAndSignature",
      "offset": [
        1527,
        2064
      ],
      "op": "PUSH1",
      "path": "51",
      "value": "0x4"
    },
    "302": {
      "fn": "DepegMessageHelper.getSignerFromDigestAndSignature",
      "offset": [
        1527,
        2064
      ],
      "op": "PUSH2",
      "path": "51",
      "value": "0x8E0"
    },
    "305": {
      "fn": "DepegMessageHelper.getSignerFromDigestAndSignature",
      "jump": "i",
      "offset": [
        1527,
        2064
      ],
      "op": "JUMP",
      "path": "51"
    },
    "306": {
      "fn": "DepegMessageHelper.getSignerFromDigestAndSignature",
      "offset": [
        1527,
        2064
      ],
      "op": "JUMPDEST",
      "path": "51"
    },
    "307": {
      "fn": "DepegMessageHelper.getSignerFromDigestAndSignature",
      "offset": [
        1527,
        2064
      ],
      "op": "PUSH2",
      "path": "51",
      "value": "0x38E"
    },
    "310": {
      "fn": "DepegMessageHelper.getSignerFromDigestAndSignature",
      "jump": "i",
      "offset": [
        1527,
        2064
      ],
      "op": "JUMP",
      "path": "51"
    },
    "311": {
      "fn": "DepegMessageHelper.getSignerFromDigestAndSignature",
      "offset": [
        1527,
        2064
      ],
      "op": "JUMPDEST",
      "path": "51"
    },
    "312": {
      "fn": "DepegMessageHelper.getSignerFromDigestAndSignature",
      "offset": [
        1527,
        2064
      ],
      "op": "PUSH1",
      "path": "51",
      "value": "0x40"
    },
    "314": {
      "fn": "DepegMessageHelper.getSignerFromDigestAndSignature",
      "offset": [
        1527,
        2064
      ],
      "op": "MLOAD",
      "path": "51"
    },
    "315": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "317": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "319": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "321": {
      "op": "SHL"
    },
    "322": {
      "op": "SUB"
    },
    "323": {
      "op": "SWAP1"
    },
    "324": {
      "op": "SWAP2"
    },
    "325": {
      "op": "AND"
    },
    "326": {
      "op": "DUP2"
    },
    "327": {
      "op": "MSTORE"
    },
    "328": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "330": {
      "op": "ADD"
    },
    "331": {
      "fn": "DepegMessageHelper.getSignerFromDigestAndSignature",
      "offset": [
        1527,
        2064
      ],
      "op": "PUSH2",
      "path": "51",
      "value": "0xAA"
    },
    "334": {
      "op": "JUMP"
    },
    "335": {
      "fn": "EIP712.getSigner",
      "offset": [
        660,
        863
      ],
      "op": "JUMPDEST",
      "path": "54"
    },
    "336": {
      "fn": "EIP712.getSigner",
      "offset": [
        660,
        863
      ],
      "op": "PUSH2",
      "path": "54",
      "value": "0x137"
    },
    "339": {
      "fn": "EIP712.getSigner",
      "offset": [
        660,
        863
      ],
      "op": "PUSH2",
      "path": "54",
      "value": "0x15D"
    },
    "342": {
      "fn": "EIP712.getSigner",
      "offset": [
        660,
        863
      ],
      "op": "CALLDATASIZE",
      "path": "54"
    },
    "343": {
      "fn": "EIP712.getSigner",
      "offset": [
        660,
        863
      ],
      "op": "PUSH1",
      "path": "54",
      "value": "0x4"
    },
    "345": {
      "fn": "EIP712.getSigner",
      "offset": [
        660,
        863
      ],
      "op": "PUSH2",
      "path": "54",
      "value": "0x971"
    },
    "348": {
      "fn": "EIP712.getSigner",
      "jump": "i",
      "offset": [
        660,
        863
      ],
      "op": "JUMP",
      "path": "54"
    },
    "349": {
      "fn": "EIP712.getSigner",
      "offset": [
        660,
        863
      ],
      "op": "JUMPDEST",
      "path": "54"
    },
    "350": {
      "fn": "EIP712.getSigner",
      "offset": [
        660,
        863
      ],
      "op": "PUSH2",
      "path": "54",
      "value": "0x3B8"
    },
    "353": {
      "fn": "EIP712.getSigner",
      "jump": "i",
      "offset": [
        660,
        863
      ],
      "op": "JUMP",
      "path": "54"
    },
    "354": {
      "offset": [
        168,
        227
      ],
      "op": "JUMPDEST",
      "path": "51"
    },
    "355": {
      "fn": "EIP712.getSigner",
      "offset": [
        168,
        227
      ],
      "op": "PUSH2",
      "path": "51",
      "value": "0xD0"
    },
    "358": {
      "fn": "EIP712.getSigner",
      "offset": [
        168,
        227
      ],
      "op": "PUSH1",
      "path": "51",
      "value": "0x40"
    },
    "360": {
      "fn": "EIP712.getSigner",
      "offset": [
        168,
        227
      ],
      "op": "MLOAD",
      "path": "51"
    },
    "361": {
      "fn": "EIP712.getSigner",
      "offset": [
        168,
        227
      ],
      "op": "DUP1",
      "path": "51"
    },
    "362": {
      "fn": "EIP712.getSigner",
      "offset": [
        168,
        227
      ],
      "op": "PUSH1",
      "path": "51",
      "value": "0x40"
    },
    "364": {
      "fn": "EIP712.getSigner",
      "offset": [
        168,
        227
      ],
      "op": "ADD",
      "path": "51"
    },
    "365": {
      "fn": "EIP712.getSigner",
      "offset": [
        168,
        227
      ],
      "op": "PUSH1",
      "path": "51",
      "value": "0x40"
    },
    "367": {
      "fn": "EIP712.getSigner",
      "offset": [
        168,
        227
      ],
      "op": "MSTORE",
      "path": "51"
    },
    "368": {
      "fn": "EIP712.getSigner",
      "offset": [
        168,
        227
      ],
      "op": "DUP1",
      "path": "51"
    },
    "369": {
      "fn": "EIP712.getSigner",
      "offset": [
        168,
        227
      ],
      "op": "PUSH1",
      "path": "51",
      "value": "0xD"
    },
    "371": {
      "fn": "EIP712.getSigner",
      "offset": [
        168,
        227
      ],
      "op": "DUP2",
      "path": "51"
    },
    "372": {
      "fn": "EIP712.getSigner",
      "offset": [
        168,
        227
      ],
      "op": "MSTORE",
      "path": "51"
    },
    "373": {
      "fn": "EIP712.getSigner",
      "offset": [
        168,
        227
      ],
      "op": "PUSH1",
      "path": "51",
      "value": "0x20"
    },
    "375": {
      "fn": "EIP712.getSigner",
      "offset": [
        168,
        227
      ],
      "op": "ADD",
      "path": "51"
    },
    "376": {
      "op": "PUSH13",
      "value": "0x45746865726973634465706567"
    },
    "390": {
      "op": "PUSH1",
      "value": "0x98"
    },
    "392": {
      "op": "SHL"
    },
    "393": {
      "offset": [
        168,
        227
      ],
      "op": "DUP2",
      "path": "51"
    },
    "394": {
      "fn": "EIP712.getSigner",
      "offset": [
        168,
        227
      ],
      "op": "MSTORE",
      "path": "51"
    },
    "395": {
      "fn": "EIP712.getSigner",
      "offset": [
        168,
        227
      ],
      "op": "POP",
      "path": "51"
    },
    "396": {
      "fn": "EIP712.getSigner",
      "offset": [
        168,
        227
      ],
      "op": "DUP2",
      "path": "51"
    },
    "397": {
      "fn": "EIP712.getSigner",
      "offset": [
        168,
        227
      ],
      "op": "JUMP",
      "path": "51"
    },
    "398": {
      "fn": "EIP712.getTypedDataV4Hash",
      "offset": [
        1030,
        1190
      ],
      "op": "JUMPDEST",
      "path": "54"
    },
    "399": {
      "fn": "EIP712.getTypedDataV4Hash",
      "offset": [
        1099,
        1106
      ],
      "op": "PUSH1",
      "path": "54",
      "value": "0x0"
    },
    "401": {
      "fn": "EIP712.getTypedDataV4Hash",
      "offset": [
        1125,
        1183
      ],
      "op": "PUSH2",
      "path": "54",
      "statement": 0,
      "value": "0x240"
    },
    "404": {
      "fn": "EIP712.getTypedDataV4Hash",
      "offset": [
        1147,
        1170
      ],
      "op": "PUSH2",
      "path": "54",
      "value": "0x1FF"
    },
    "407": {
      "fn": "EIP712._buildDomainSeparator",
      "offset": [
        1364,
        1375
      ],
      "op": "PUSH1",
      "path": "54",
      "statement": 1,
      "value": "0x2"
    },
    "409": {
      "fn": "EIP712._buildDomainSeparator",
      "offset": [
        1364,
        1375
      ],
      "op": "SLOAD",
      "path": "54"
    },
    "410": {
      "fn": "EIP712._buildDomainSeparator",
      "offset": [
        1394,
        1408
      ],
      "op": "PUSH1",
      "path": "54",
      "value": "0x3"
    },
    "412": {
      "fn": "EIP712._buildDomainSeparator",
      "offset": [
        1394,
        1408
      ],
      "op": "SLOAD",
      "path": "54"
    },
    "413": {
      "fn": "EIP712._buildDomainSeparator",
      "offset": [
        1301,
        1473
      ],
      "op": "PUSH1",
      "path": "54",
      "value": "0x40"
    },
    "415": {
      "fn": "EIP712._buildDomainSeparator",
      "offset": [
        1301,
        1473
      ],
      "op": "DUP1",
      "path": "54"
    },
    "416": {
      "fn": "EIP712._buildDomainSeparator",
      "offset": [
        1301,
        1473
      ],
      "op": "MLOAD",
      "path": "54"
    },
    "417": {
      "offset": [
        214,
        309
      ],
      "op": "PUSH32",
      "path": "54",
      "value": "0x8B73C3C69BB8FE3D512ECC4CF759CC79239F7B179B0FFACAA9A75D522B39400F"
    },
    "450": {
      "fn": "EIP712._buildDomainSeparator",
      "offset": [
        1301,
        1473
      ],
      "op": "PUSH1",
      "path": "54",
      "value": "0x20"
    },
    "452": {
      "fn": "EIP712._buildDomainSeparator",
      "offset": [
        1301,
        1473
      ],
      "op": "DUP3",
      "path": "54"
    },
    "453": {
      "fn": "EIP712._buildDomainSeparator",
      "offset": [
        1301,
        1473
      ],
      "op": "ADD",
      "path": "54"
    },
    "454": {
      "op": "MSTORE"
    },
    "455": {
      "op": "SWAP1"
    },
    "456": {
      "op": "DUP2"
    },
    "457": {
      "op": "ADD"
    },
    "458": {
      "op": "SWAP3"
    },
    "459": {
      "op": "SWAP1"
    },
    "460": {
      "op": "SWAP3"
    },
    "461": {
      "op": "MSTORE"
    },
    "462": {
      "op": "PUSH1",
      "value": "0x60"
    },
    "464": {
      "op": "DUP3"
    },
    "465": {
      "op": "ADD"
    },
    "466": {
      "op": "MSTORE"
    },
    "467": {
      "fn": "EIP712._buildDomainSeparator",
      "offset": [
        1427,
        1440
      ],
      "op": "CHAINID",
      "path": "54"
    },
    "468": {
      "op": "PUSH1",
      "value": "0x80"
    },
    "470": {
      "op": "DUP3"
    },
    "471": {
      "op": "ADD"
    },
    "472": {
      "op": "MSTORE"
    },
    "473": {
      "fn": "EIP712._buildDomainSeparator",
      "offset": [
        1467,
        1471
      ],
      "op": "ADDRESS",
      "path": "54"
    },
    "474": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "476": {
      "op": "DUP3"
    },
    "477": {
      "op": "ADD"
    },
    "478": {
      "op": "MSTORE"
    },
    "479": {
      "fn": "EIP712._buildDomainSeparator",
      "offset": [
        1252,
        1259
      ],
      "op": "PUSH1",
      "path": "54",
      "value": "0x0"
    },
    "481": {
      "fn": "EIP712._buildDomainSeparator",
      "offset": [
        1252,
        1259
      ],
      "op": "SWAP1",
      "path": "54"
    },
    "482": {
      "op": "PUSH1",
      "value": "0xC0"
    },
    "484": {
      "op": "ADD"
    },
    "485": {
      "fn": "EIP712._buildDomainSeparator",
      "offset": [
        1301,
        1473
      ],
      "op": "PUSH1",
      "path": "54",
      "value": "0x40"
    },
    "487": {
      "fn": "EIP712._buildDomainSeparator",
      "offset": [
        1301,
        1473
      ],
      "op": "MLOAD",
      "path": "54"
    },
    "488": {
      "fn": "EIP712._buildDomainSeparator",
      "offset": [
        1301,
        1473
      ],
      "op": "PUSH1",
      "path": "54",
      "value": "0x20"
    },
    "490": {
      "fn": "EIP712._buildDomainSeparator",
      "offset": [
        1301,
        1473
      ],
      "op": "DUP2",
      "path": "54"
    },
    "491": {
      "fn": "EIP712._buildDomainSeparator",
      "offset": [
        1301,
        1473
      ],
      "op": "DUP4",
      "path": "54"
    },
    "492": {
      "fn": "EIP712._buildDomainSeparator",
      "offset": [
        1301,
        1473
      ],
      "op": "SUB",
      "path": "54"
    },
    "493": {
      "fn": "EIP712._buildDomainSeparator",
      "offset": [
        1301,
        1473
      ],
      "op": "SUB",
      "path": "54"
    },
    "494": {
      "fn": "EIP712._buildDomainSeparator",
      "offset": [
        1301,
        1473
      ],
      "op": "DUP2",
      "path": "54"
    },
    "495": {
      "fn": "EIP712._buildDomainSeparator",
      "offset": [
        1301,
        1473
      ],
      "op": "MSTORE",
      "path": "54"
    },
    "496": {
      "fn": "EIP712._buildDomainSeparator",
      "offset": [
        1301,
        1473
      ],
      "op": "SWAP1",
      "path": "54"
    },
    "497": {
      "fn": "EIP712._buildDomainSeparator",
      "offset": [
        1301,
        1473
      ],
      "op": "PUSH1",
      "path": "54",
      "value": "0x40"
    },
    "499": {
      "fn": "EIP712._buildDomainSeparator",
      "offset": [
        1301,
        1473
      ],
      "op": "MSTORE",
      "path": "54"
    },
    "500": {
      "fn": "EIP712._buildDomainSeparator",
      "offset": [
        1278,
        1474
      ],
      "op": "DUP1",
      "path": "54"
    },
    "501": {
      "fn": "EIP712._buildDomainSeparator",
      "offset": [
        1278,
        1474
      ],
      "op": "MLOAD",
      "path": "54"
    },
    "502": {
      "fn": "EIP712._buildDomainSeparator",
      "offset": [
        1278,
        1474
      ],
      "op": "SWAP1",
      "path": "54"
    },
    "503": {
      "fn": "EIP712._buildDomainSeparator",
      "offset": [
        1278,
        1474
      ],
      "op": "PUSH1",
      "path": "54",
      "value": "0x20"
    },
    "505": {
      "fn": "EIP712._buildDomainSeparator",
      "offset": [
        1278,
        1474
      ],
      "op": "ADD",
      "path": "54"
    },
    "506": {
      "fn": "EIP712._buildDomainSeparator",
      "offset": [
        1278,
        1474
      ],
      "op": "KECCAK256",
      "path": "54"
    },
    "507": {
      "fn": "EIP712._buildDomainSeparator",
      "offset": [
        1271,
        1474
      ],
      "op": "SWAP1",
      "path": "54"
    },
    "508": {
      "fn": "EIP712._buildDomainSeparator",
      "offset": [
        1271,
        1474
      ],
      "op": "POP",
      "path": "54"
    },
    "509": {
      "fn": "EIP712._buildDomainSeparator",
      "offset": [
        1197,
        1481
      ],
      "op": "SWAP1",
      "path": "54"
    },
    "510": {
      "fn": "EIP712._buildDomainSeparator",
      "offset": [
        1197,
        1481
      ],
      "op": "JUMP",
      "path": "54"
    },
    "511": {
      "fn": "EIP712.getTypedDataV4Hash",
      "offset": [
        1147,
        1170
      ],
      "op": "JUMPDEST",
      "path": "54"
    },
    "512": {
      "fn": "EIP712.getTypedDataV4Hash",
      "offset": [
        1172,
        1182
      ],
      "op": "DUP4",
      "path": "54"
    },
    "513": {
      "fn": "ECDSA.toTypedDataHash",
      "offset": [
        8677,
        8734
      ],
      "op": "PUSH1",
      "path": "13",
      "statement": 2,
      "value": "0x40"
    },
    "515": {
      "fn": "ECDSA.toTypedDataHash",
      "offset": [
        8677,
        8734
      ],
      "op": "MLOAD",
      "path": "13"
    },
    "516": {
      "op": "PUSH2",
      "value": "0x1901"
    },
    "519": {
      "op": "PUSH1",
      "value": "0xF0"
    },
    "521": {
      "op": "SHL"
    },
    "522": {
      "fn": "ECDSA.toTypedDataHash",
      "offset": [
        8677,
        8734
      ],
      "op": "PUSH1",
      "path": "13",
      "value": "0x20"
    },
    "524": {
      "fn": "ECDSA.toTypedDataHash",
      "offset": [
        8677,
        8734
      ],
      "op": "DUP3",
      "path": "13"
    },
    "525": {
      "fn": "ECDSA.toTypedDataHash",
      "offset": [
        8677,
        8734
      ],
      "op": "ADD",
      "path": "13"
    },
    "526": {
      "op": "MSTORE"
    },
    "527": {
      "op": "PUSH1",
      "value": "0x22"
    },
    "529": {
      "op": "DUP2"
    },
    "530": {
      "op": "ADD"
    },
    "531": {
      "op": "DUP4"
    },
    "532": {
      "op": "SWAP1"
    },
    "533": {
      "op": "MSTORE"
    },
    "534": {
      "op": "PUSH1",
      "value": "0x42"
    },
    "536": {
      "op": "DUP2"
    },
    "537": {
      "op": "ADD"
    },
    "538": {
      "op": "DUP3"
    },
    "539": {
      "op": "SWAP1"
    },
    "540": {
      "op": "MSTORE"
    },
    "541": {
      "fn": "ECDSA.toTypedDataHash",
      "offset": [
        8641,
        8648
      ],
      "op": "PUSH1",
      "path": "13",
      "value": "0x0"
    },
    "543": {
      "fn": "ECDSA.toTypedDataHash",
      "offset": [
        8641,
        8648
      ],
      "op": "SWAP1",
      "path": "13"
    },
    "544": {
      "op": "PUSH1",
      "value": "0x62"
    },
    "546": {
      "op": "ADD"
    },
    "547": {
      "fn": "ECDSA.toTypedDataHash",
      "offset": [
        8677,
        8734
      ],
      "op": "PUSH1",
      "path": "13",
      "value": "0x40"
    },
    "549": {
      "fn": "ECDSA.toTypedDataHash",
      "offset": [
        8677,
        8734
      ],
      "op": "MLOAD",
      "path": "13"
    },
    "550": {
      "fn": "ECDSA.toTypedDataHash",
      "offset": [
        8677,
        8734
      ],
      "op": "PUSH1",
      "path": "13",
      "value": "0x20"
    },
    "552": {
      "fn": "ECDSA.toTypedDataHash",
      "offset": [
        8677,
        8734
      ],
      "op": "DUP2",
      "path": "13"
    },
    "553": {
      "fn": "ECDSA.toTypedDataHash",
      "offset": [
        8677,
        8734
      ],
      "op": "DUP4",
      "path": "13"
    },
    "554": {
      "fn": "ECDSA.toTypedDataHash",
      "offset": [
        8677,
        8734
      ],
      "op": "SUB",
      "path": "13"
    },
    "555": {
      "fn": "ECDSA.toTypedDataHash",
      "offset": [
        8677,
        8734
      ],
      "op": "SUB",
      "path": "13"
    },
    "556": {
      "fn": "ECDSA.toTypedDataHash",
      "offset": [
        8677,
        8734
      ],
      "op": "DUP2",
      "path": "13"
    },
    "557": {
      "fn": "ECDSA.toTypedDataHash",
      "offset": [
        8677,
        8734
      ],
      "op": "MSTORE",
      "path": "13"
    },
    "558": {
      "fn": "ECDSA.toTypedDataHash",
      "offset": [
        8677,
        8734
      ],
      "op": "SWAP1",
      "path": "13"
    },
    "559": {
      "fn": "ECDSA.toTypedDataHash",
      "offset": [
        8677,
        8734
      ],
      "op": "PUSH1",
      "path": "13",
      "value": "0x40"
    },
    "561": {
      "fn": "ECDSA.toTypedDataHash",
      "offset": [
        8677,
        8734
      ],
      "op": "MSTORE",
      "path": "13"
    },
    "562": {
      "fn": "ECDSA.toTypedDataHash",
      "offset": [
        8667,
        8735
      ],
      "op": "DUP1",
      "path": "13"
    },
    "563": {
      "fn": "ECDSA.toTypedDataHash",
      "offset": [
        8667,
        8735
      ],
      "op": "MLOAD",
      "path": "13"
    },
    "564": {
      "fn": "ECDSA.toTypedDataHash",
      "offset": [
        8667,
        8735
      ],
      "op": "SWAP1",
      "path": "13"
    },
    "565": {
      "fn": "ECDSA.toTypedDataHash",
      "offset": [
        8667,
        8735
      ],
      "op": "PUSH1",
      "path": "13",
      "value": "0x20"
    },
    "567": {
      "fn": "ECDSA.toTypedDataHash",
      "offset": [
        8667,
        8735
      ],
      "op": "ADD",
      "path": "13"
    },
    "568": {
      "fn": "ECDSA.toTypedDataHash",
      "offset": [
        8667,
        8735
      ],
      "op": "KECCAK256",
      "path": "13"
    },
    "569": {
      "fn": "ECDSA.toTypedDataHash",
      "offset": [
        8660,
        8735
      ],
      "op": "SWAP1",
      "path": "13"
    },
    "570": {
      "fn": "ECDSA.toTypedDataHash",
      "offset": [
        8660,
        8735
      ],
      "op": "POP",
      "path": "13"
    },
    "571": {
      "fn": "ECDSA.toTypedDataHash",
      "offset": [
        8548,
        8742
      ],
      "op": "SWAP3",
      "path": "13"
    },
    "572": {
      "fn": "ECDSA.toTypedDataHash",
      "offset": [
        8548,
        8742
      ],
      "op": "SWAP2",
      "path": "13"
    },
    "573": {
      "fn": "ECDSA.toTypedDataHash",
      "offset": [
        8548,
        8742
      ],
      "op": "POP",
      "path": "13"
    },
    "574": {
      "fn": "ECDSA.toTypedDataHash",
      "offset": [
        8548,
        8742
      ],
      "op": "POP",
      "path": "13"
    },
    "575": {
      "fn": "ECDSA.toTypedDataHash",
      "offset": [
        8548,
        8742
      ],
      "op": "JUMP",
      "path": "13"
    },
    "576": {
      "fn": "EIP712.getTypedDataV4Hash",
      "offset": [
        1125,
        1183
      ],
      "op": "JUMPDEST",
      "path": "54"
    },
    "577": {
      "fn": "EIP712.getTypedDataV4Hash",
      "offset": [
        1118,
        1183
      ],
      "op": "SWAP1",
      "path": "54"
    },
    "578": {
      "fn": "EIP712.getTypedDataV4Hash",
      "offset": [
        1118,
        1183
      ],
      "op": "POP",
      "path": "54"
    },
    "579": {
      "fn": "EIP712.getTypedDataV4Hash",
      "offset": [
        1030,
        1190
      ],
      "op": "JUMPDEST",
      "path": "54"
    },
    "580": {
      "fn": "EIP712.getTypedDataV4Hash",
      "offset": [
        1030,
        1190
      ],
      "op": "SWAP2",
      "path": "54"
    },
    "581": {
      "fn": "EIP712.getTypedDataV4Hash",
      "offset": [
        1030,
        1190
      ],
      "op": "SWAP1",
      "path": "54"
    },
    "582": {
      "fn": "EIP712.getTypedDataV4Hash",
      "offset": [
        1030,
        1190
      ],
      "op": "POP",
      "path": "54"
    },
    "583": {
      "fn": "EIP712.getTypedDataV4Hash",
      "jump": "o",
      "offset": [
        1030,
        1190
      ],
      "op": "JUMP",
      "path": "54"
    },
    "584": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        752,
        1521
      ],
      "op": "JUMPDEST",
      "path": "51"
    },
    "585": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1038,
        1059
      ],
      "op": "PUSH1",
      "path": "51",
      "value": "0x0"
    },
    "587": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1083,
        1092
      ],
      "op": "DUP3",
      "path": "51"
    },
    "588": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1083,
        1092
      ],
      "op": "DUP3",
      "path": "51"
    },
    "589": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1072,
        1093
      ],
      "op": "PUSH1",
      "path": "51",
      "value": "0x40"
    },
    "591": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1072,
        1093
      ],
      "op": "MLOAD",
      "path": "51"
    },
    "592": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1072,
        1093
      ],
      "op": "PUSH1",
      "path": "51",
      "value": "0x20"
    },
    "594": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1072,
        1093
      ],
      "op": "ADD",
      "path": "51"
    },
    "595": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1072,
        1093
      ],
      "op": "PUSH2",
      "path": "51",
      "value": "0x25D"
    },
    "598": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1072,
        1093
      ],
      "op": "SWAP3",
      "path": "51"
    },
    "599": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1072,
        1093
      ],
      "op": "SWAP2",
      "path": "51"
    },
    "600": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1072,
        1093
      ],
      "op": "SWAP1",
      "path": "51"
    },
    "601": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1072,
        1093
      ],
      "op": "PUSH2",
      "path": "51",
      "value": "0x9D7"
    },
    "604": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "jump": "i",
      "offset": [
        1072,
        1093
      ],
      "op": "JUMP",
      "path": "51"
    },
    "605": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1072,
        1093
      ],
      "op": "JUMPDEST",
      "path": "51"
    },
    "606": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1072,
        1093
      ],
      "op": "PUSH1",
      "path": "51",
      "value": "0x40"
    },
    "608": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1072,
        1093
      ],
      "op": "DUP1",
      "path": "51"
    },
    "609": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1072,
        1093
      ],
      "op": "MLOAD",
      "path": "51"
    },
    "610": {
      "op": "PUSH1",
      "value": "0x1F"
    },
    "612": {
      "op": "NOT"
    },
    "613": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1072,
        1093
      ],
      "op": "DUP2",
      "path": "51"
    },
    "614": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1072,
        1093
      ],
      "op": "DUP5",
      "path": "51"
    },
    "615": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1072,
        1093
      ],
      "op": "SUB",
      "path": "51"
    },
    "616": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1072,
        1093
      ],
      "op": "ADD",
      "path": "51"
    },
    "617": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1072,
        1093
      ],
      "op": "DUP2",
      "path": "51"
    },
    "618": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1072,
        1093
      ],
      "op": "MSTORE",
      "path": "51"
    },
    "619": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1072,
        1093
      ],
      "op": "SWAP2",
      "path": "51"
    },
    "620": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1072,
        1093
      ],
      "op": "DUP2",
      "path": "51"
    },
    "621": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1072,
        1093
      ],
      "op": "MSTORE",
      "path": "51"
    },
    "622": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1062,
        1094
      ],
      "op": "DUP2",
      "path": "51"
    },
    "623": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1062,
        1094
      ],
      "op": "MLOAD",
      "path": "51"
    },
    "624": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1072,
        1093
      ],
      "op": "PUSH1",
      "path": "51",
      "value": "0x20"
    },
    "626": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1062,
        1094
      ],
      "op": "SWAP3",
      "path": "51"
    },
    "627": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1062,
        1094
      ],
      "op": "DUP4",
      "path": "51"
    },
    "628": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1062,
        1094
      ],
      "op": "ADD",
      "path": "51"
    },
    "629": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1062,
        1094
      ],
      "op": "KECCAK256",
      "path": "51"
    },
    "630": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1113,
        1144
      ],
      "op": "PUSH1",
      "path": "51",
      "statement": 3,
      "value": "0x0"
    },
    "632": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1113,
        1144
      ],
      "op": "DUP2",
      "path": "51"
    },
    "633": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1113,
        1144
      ],
      "op": "DUP2",
      "path": "51"
    },
    "634": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1113,
        1144
      ],
      "op": "MSTORE",
      "path": "51"
    },
    "635": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1113,
        1129
      ],
      "op": "PUSH1",
      "path": "51",
      "value": "0x4"
    },
    "637": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1113,
        1144
      ],
      "op": "SWAP1",
      "path": "51"
    },
    "638": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1113,
        1144
      ],
      "op": "SWAP4",
      "path": "51"
    },
    "639": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1113,
        1144
      ],
      "op": "MSTORE",
      "path": "51"
    },
    "640": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1113,
        1144
      ],
      "op": "SWAP2",
      "path": "51"
    },
    "641": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1113,
        1144
      ],
      "op": "KECCAK256",
      "path": "51"
    },
    "642": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1113,
        1144
      ],
      "op": "SLOAD",
      "path": "51"
    },
    "643": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1062,
        1094
      ],
      "op": "SWAP1",
      "path": "51"
    },
    "644": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1062,
        1094
      ],
      "op": "SWAP2",
      "path": "51"
    },
    "645": {
      "op": "POP"
    },
    "646": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1113,
        1144
      ],
      "op": "PUSH1",
      "path": "51",
      "value": "0xFF"
    },
    "648": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1113,
        1144
      ],
      "op": "AND",
      "path": "51"
    },
    "649": {
      "branch": 22,
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1112,
        1144
      ],
      "op": "ISZERO",
      "path": "51"
    },
    "650": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1104,
        1177
      ],
      "op": "PUSH2",
      "path": "51",
      "value": "0x2DA"
    },
    "653": {
      "branch": 22,
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1104,
        1177
      ],
      "op": "JUMPI",
      "path": "51"
    },
    "654": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1104,
        1177
      ],
      "op": "PUSH1",
      "path": "51",
      "value": "0x40"
    },
    "656": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1104,
        1177
      ],
      "op": "MLOAD",
      "path": "51"
    },
    "657": {
      "op": "PUSH3",
      "value": "0x461BCD"
    },
    "661": {
      "op": "PUSH1",
      "value": "0xE5"
    },
    "663": {
      "op": "SHL"
    },
    "664": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1104,
        1177
      ],
      "op": "DUP2",
      "path": "51"
    },
    "665": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1104,
        1177
      ],
      "op": "MSTORE",
      "path": "51"
    },
    "666": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "668": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1104,
        1177
      ],
      "op": "PUSH1",
      "path": "51",
      "value": "0x4"
    },
    "670": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1104,
        1177
      ],
      "op": "DUP3",
      "path": "51"
    },
    "671": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1104,
        1177
      ],
      "op": "ADD",
      "path": "51"
    },
    "672": {
      "op": "MSTORE"
    },
    "673": {
      "op": "PUSH1",
      "value": "0x1C"
    },
    "675": {
      "op": "PUSH1",
      "value": "0x24"
    },
    "677": {
      "op": "DUP3"
    },
    "678": {
      "op": "ADD"
    },
    "679": {
      "op": "MSTORE"
    },
    "680": {
      "op": "PUSH32",
      "value": "0x4552524F523A444D482D3030313A5349474E41545552455F5553454400000000"
    },
    "713": {
      "op": "PUSH1",
      "value": "0x44"
    },
    "715": {
      "op": "DUP3"
    },
    "716": {
      "op": "ADD"
    },
    "717": {
      "op": "MSTORE"
    },
    "718": {
      "op": "PUSH1",
      "value": "0x64"
    },
    "720": {
      "op": "ADD"
    },
    "721": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1104,
        1177
      ],
      "op": "JUMPDEST",
      "path": "51"
    },
    "722": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1104,
        1177
      ],
      "op": "PUSH1",
      "path": "51",
      "value": "0x40"
    },
    "724": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1104,
        1177
      ],
      "op": "MLOAD",
      "path": "51"
    },
    "725": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1104,
        1177
      ],
      "op": "DUP1",
      "path": "51"
    },
    "726": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1104,
        1177
      ],
      "op": "SWAP2",
      "path": "51"
    },
    "727": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1104,
        1177
      ],
      "op": "SUB",
      "path": "51"
    },
    "728": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1104,
        1177
      ],
      "op": "SWAP1",
      "path": "51"
    },
    "729": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1104,
        1177
      ],
      "op": "REVERT",
      "optimizer_revert": true,
      "path": "51"
    },
    "730": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1104,
        1177
      ],
      "op": "JUMPDEST",
      "path": "51"
    },
    "731": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1188,
        1202
      ],
      "op": "PUSH1",
      "path": "51",
      "value": "0x0"
    },
    "733": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1205,
        1388
      ],
      "op": "PUSH2",
      "path": "51",
      "value": "0x2EB"
    },
    "736": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1250,
        1265
      ],
      "op": "DUP10",
      "path": "51"
    },
    "737": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1279,
        1295
      ],
      "op": "DUP10",
      "path": "51"
    },
    "738": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1309,
        1317
      ],
      "op": "DUP10",
      "path": "51"
    },
    "739": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1331,
        1339
      ],
      "op": "DUP10",
      "path": "51"
    },
    "740": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1353,
        1364
      ],
      "op": "DUP10",
      "path": "51"
    },
    "741": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1378,
        1387
      ],
      "op": "DUP10",
      "path": "51"
    },
    "742": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1378,
        1387
      ],
      "op": "DUP10",
      "path": "51"
    },
    "743": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1205,
        1236
      ],
      "op": "PUSH2",
      "path": "51",
      "value": "0x38E"
    },
    "746": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "jump": "i",
      "offset": [
        1205,
        1388
      ],
      "op": "JUMP",
      "path": "51"
    },
    "747": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1205,
        1388
      ],
      "op": "JUMPDEST",
      "path": "51"
    },
    "748": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1188,
        1388
      ],
      "op": "SWAP1",
      "path": "51"
    },
    "749": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1188,
        1388
      ],
      "op": "POP",
      "path": "51"
    },
    "750": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1423,
        1429
      ],
      "op": "DUP1",
      "path": "51",
      "statement": 4
    },
    "751": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "753": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "755": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "757": {
      "op": "SHL"
    },
    "758": {
      "op": "SUB"
    },
    "759": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1407,
        1429
      ],
      "op": "AND",
      "path": "51"
    },
    "760": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1407,
        1419
      ],
      "op": "DUP11",
      "path": "51"
    },
    "761": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "763": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "765": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "767": {
      "op": "SHL"
    },
    "768": {
      "op": "SUB"
    },
    "769": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1407,
        1429
      ],
      "op": "AND",
      "path": "51"
    },
    "770": {
      "branch": 23,
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1407,
        1429
      ],
      "op": "EQ",
      "path": "51"
    },
    "771": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1399,
        1465
      ],
      "op": "PUSH2",
      "path": "51",
      "value": "0x34E"
    },
    "774": {
      "branch": 23,
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1399,
        1465
      ],
      "op": "JUMPI",
      "path": "51"
    },
    "775": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1399,
        1465
      ],
      "op": "PUSH1",
      "path": "51",
      "value": "0x40"
    },
    "777": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1399,
        1465
      ],
      "op": "MLOAD",
      "path": "51"
    },
    "778": {
      "op": "PUSH3",
      "value": "0x461BCD"
    },
    "782": {
      "op": "PUSH1",
      "value": "0xE5"
    },
    "784": {
      "op": "SHL"
    },
    "785": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1399,
        1465
      ],
      "op": "DUP2",
      "path": "51"
    },
    "786": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1399,
        1465
      ],
      "op": "MSTORE",
      "path": "51"
    },
    "787": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "789": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1399,
        1465
      ],
      "op": "PUSH1",
      "path": "51",
      "value": "0x4"
    },
    "791": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1399,
        1465
      ],
      "op": "DUP3",
      "path": "51"
    },
    "792": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1399,
        1465
      ],
      "op": "ADD",
      "path": "51"
    },
    "793": {
      "op": "MSTORE"
    },
    "794": {
      "op": "PUSH1",
      "value": "0x1F"
    },
    "796": {
      "op": "PUSH1",
      "value": "0x24"
    },
    "798": {
      "op": "DUP3"
    },
    "799": {
      "op": "ADD"
    },
    "800": {
      "op": "MSTORE"
    },
    "801": {
      "op": "PUSH32",
      "value": "0x4552524F523A444D482D3030323A5349474E41545552455F494E56414C494400"
    },
    "834": {
      "op": "PUSH1",
      "value": "0x44"
    },
    "836": {
      "op": "DUP3"
    },
    "837": {
      "op": "ADD"
    },
    "838": {
      "op": "MSTORE"
    },
    "839": {
      "op": "PUSH1",
      "value": "0x64"
    },
    "841": {
      "op": "ADD"
    },
    "842": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1399,
        1465
      ],
      "op": "PUSH2",
      "path": "51",
      "value": "0x2D1"
    },
    "845": {
      "op": "JUMP"
    },
    "846": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1399,
        1465
      ],
      "op": "JUMPDEST",
      "path": "51"
    },
    "847": {
      "op": "POP"
    },
    "848": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1476,
        1507
      ],
      "op": "PUSH1",
      "path": "51",
      "statement": 5,
      "value": "0x0"
    },
    "850": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1476,
        1507
      ],
      "op": "SWAP1",
      "path": "51"
    },
    "851": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1476,
        1507
      ],
      "op": "DUP2",
      "path": "51"
    },
    "852": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1476,
        1507
      ],
      "op": "MSTORE",
      "path": "51"
    },
    "853": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1476,
        1492
      ],
      "op": "PUSH1",
      "path": "51",
      "value": "0x4"
    },
    "855": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1476,
        1507
      ],
      "op": "PUSH1",
      "path": "51",
      "value": "0x20"
    },
    "857": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1476,
        1507
      ],
      "op": "MSTORE",
      "path": "51"
    },
    "858": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1476,
        1507
      ],
      "op": "PUSH1",
      "path": "51",
      "value": "0x40"
    },
    "860": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1476,
        1507
      ],
      "op": "SWAP1",
      "path": "51"
    },
    "861": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1476,
        1507
      ],
      "op": "KECCAK256",
      "path": "51"
    },
    "862": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1476,
        1514
      ],
      "op": "DUP1",
      "path": "51"
    },
    "863": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1476,
        1514
      ],
      "op": "SLOAD",
      "path": "51"
    },
    "864": {
      "op": "PUSH1",
      "value": "0xFF"
    },
    "866": {
      "op": "NOT"
    },
    "867": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1476,
        1514
      ],
      "op": "AND",
      "path": "51"
    },
    "868": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1510,
        1514
      ],
      "op": "PUSH1",
      "path": "51",
      "value": "0x1"
    },
    "870": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1476,
        1514
      ],
      "op": "OR",
      "path": "51"
    },
    "871": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1476,
        1514
      ],
      "op": "SWAP1",
      "path": "51"
    },
    "872": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        1476,
        1514
      ],
      "op": "SSTORE",
      "path": "51"
    },
    "873": {
      "op": "POP"
    },
    "874": {
      "op": "POP"
    },
    "875": {
      "op": "POP"
    },
    "876": {
      "op": "POP"
    },
    "877": {
      "op": "POP"
    },
    "878": {
      "op": "POP"
    },
    "879": {
      "op": "POP"
    },
    "880": {
      "op": "POP"
    },
    "881": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "jump": "o",
      "offset": [
        752,
        1521
      ],
      "op": "JUMP",
      "path": "51"
    },
    "882": {
      "offset": [
        290,
        437
      ],
      "op": "JUMPDEST",
      "path": "51"
    },
    "883": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        290,
        437
      ],
      "op": "PUSH1",
      "path": "51",
      "value": "0x40"
    },
    "885": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        290,
        437
      ],
      "op": "MLOAD",
      "path": "51"
    },
    "886": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        290,
        437
      ],
      "op": "DUP1",
      "path": "51"
    },
    "887": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        290,
        437
      ],
      "op": "PUSH1",
      "path": "51",
      "value": "0xA0"
    },
    "889": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        290,
        437
      ],
      "op": "ADD",
      "path": "51"
    },
    "890": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        290,
        437
      ],
      "op": "PUSH1",
      "path": "51",
      "value": "0x40"
    },
    "892": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        290,
        437
      ],
      "op": "MSTORE",
      "path": "51"
    },
    "893": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        290,
        437
      ],
      "op": "DUP1",
      "path": "51"
    },
    "894": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        290,
        437
      ],
      "op": "PUSH1",
      "path": "51",
      "value": "0x65"
    },
    "896": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        290,
        437
      ],
      "op": "DUP2",
      "path": "51"
    },
    "897": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        290,
        437
      ],
      "op": "MSTORE",
      "path": "51"
    },
    "898": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        290,
        437
      ],
      "op": "PUSH1",
      "path": "51",
      "value": "0x20"
    },
    "900": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        290,
        437
      ],
      "op": "ADD",
      "path": "51"
    },
    "901": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        290,
        437
      ],
      "op": "PUSH2",
      "path": "51",
      "value": "0xA6A"
    },
    "904": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        290,
        437
      ],
      "op": "PUSH1",
      "path": "51",
      "value": "0x65"
    },
    "906": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        290,
        437
      ],
      "op": "SWAP2",
      "path": "51"
    },
    "907": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        290,
        437
      ],
      "op": "CODECOPY",
      "path": "51"
    },
    "908": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "offset": [
        290,
        437
      ],
      "op": "DUP2",
      "path": "51"
    },
    "909": {
      "fn": "DepegMessageHelper.checkAndRegisterSignature",
      "jump": "o",
      "offset": [
        290,
        437
      ],
      "op": "JUMP",
      "path": "51"
    },
    "910": {
      "fn": "DepegMessageHelper.getSignerFromDigestAndSignature",
      "offset": [
        1527,
        2064
      ],
      "op": "JUMPDEST",
      "path": "51"
    },
    "911": {
      "fn": "DepegMessageHelper.getSignerFromDigestAndSignature",
      "offset": [
        1800,
        1807
      ],
      "op": "PUSH1",
      "path": "51",
      "value": "0x0"
    },
    "913": {
      "fn": "DepegMessageHelper.getSignerFromDigestAndSignature",
      "offset": [
        1823,
        1837
      ],
      "op": "DUP1",
      "path": "51"
    },
    "914": {
      "fn": "DepegMessageHelper.getSignerFromDigestAndSignature",
      "offset": [
        1840,
        2011
      ],
      "op": "PUSH2",
      "path": "51",
      "value": "0x39E"
    },
    "917": {
      "fn": "DepegMessageHelper.getSignerFromDigestAndSignature",
      "offset": [
        1867,
        1882
      ],
      "op": "DUP10",
      "path": "51"
    },
    "918": {
      "fn": "DepegMessageHelper.getSignerFromDigestAndSignature",
      "offset": [
        1900,
        1916
      ],
      "op": "DUP10",
      "path": "51"
    },
    "919": {
      "fn": "DepegMessageHelper.getSignerFromDigestAndSignature",
      "offset": [
        1934,
        1942
      ],
      "op": "DUP10",
      "path": "51"
    },
    "920": {
      "fn": "DepegMessageHelper.getSignerFromDigestAndSignature",
      "offset": [
        1960,
        1968
      ],
      "op": "DUP10",
      "path": "51"
    },
    "921": {
      "fn": "DepegMessageHelper.getSignerFromDigestAndSignature",
      "offset": [
        1986,
        1997
      ],
      "op": "DUP10",
      "path": "51"
    },
    "922": {
      "fn": "DepegMessageHelper.getSignerFromDigestAndSignature",
      "offset": [
        1840,
        1849
      ],
      "op": "PUSH2",
      "path": "51",
      "value": "0x402"
    },
    "925": {
      "fn": "DepegMessageHelper.getSignerFromDigestAndSignature",
      "jump": "i",
      "offset": [
        1840,
        2011
      ],
      "op": "JUMP",
      "path": "51"
    },
    "926": {
      "fn": "DepegMessageHelper.getSignerFromDigestAndSignature",
      "offset": [
        1840,
        2011
      ],
      "op": "JUMPDEST",
      "path": "51"
    },
    "927": {
      "fn": "DepegMessageHelper.getSignerFromDigestAndSignature",
      "offset": [
        1823,
        2011
      ],
      "op": "SWAP1",
      "path": "51"
    },
    "928": {
      "fn": "DepegMessageHelper.getSignerFromDigestAndSignature",
      "offset": [
        1823,
        2011
      ],
      "op": "POP",
      "path": "51"
    },
    "929": {
      "fn": "DepegMessageHelper.getSignerFromDigestAndSignature",
      "offset": [
        2029,
        2057
      ],
      "op": "PUSH2",
      "path": "51",
      "statement": 6,
      "value": "0x3AB"
    },
    "932": {
      "fn": "DepegMessageHelper.getSignerFromDigestAndSignature",
      "offset": [
        2039,
        2045
      ],
      "op": "DUP2",
      "path": "51"
    },
    "933": {
      "fn": "DepegMessageHelper.getSignerFromDigestAndSignature",
      "offset": [
        2047,
        2056
      ],
      "op": "DUP6",
      "path": "51"
    },
    "934": {
      "fn": "DepegMessageHelper.getSignerFromDigestAndSignature",
      "offset": [
        2047,
        2056
      ],
      "op": "DUP6",
      "path": "51"
    },
    "935": {
      "fn": "DepegMessageHelper.getSignerFromDigestAndSignature",
      "offset": [
        2029,
        2038
      ],
      "op": "PUSH2",
      "path": "51",
      "value": "0x3B8"
    },
    "938": {
      "fn": "DepegMessageHelper.getSignerFromDigestAndSignature",
      "jump": "i",
      "offset": [
        2029,
        2057
      ],
      "op": "JUMP",
      "path": "51"
    },
    "939": {
      "fn": "DepegMessageHelper.getSignerFromDigestAndSignature",
      "offset": [
        2029,
        2057
      ],
      "op": "JUMPDEST",
      "path": "51"
    },
    "940": {
      "fn": "DepegMessageHelper.getSignerFromDigestAndSignature",
      "offset": [
        2022,
        2057
      ],
      "op": "SWAP10",
      "path": "51"
    },
    "941": {
      "fn": "DepegMessageHelper.getSignerFromDigestAndSignature",
      "offset": [
        1527,
        2064
      ],
      "op": "SWAP9",
      "path": "51"
    },
    "942": {
      "op": "POP"
    },
    "943": {
      "op": "POP"
    },
    "944": {
      "op": "POP"
    },
    "945": {
      "op": "POP"
    },
    "946": {
      "op": "POP"
    },
    "947": {
      "op": "POP"
    },
    "948": {
      "op": "POP"
    },
    "949": {
      "op": "POP"
    },
    "950": {
      "op": "POP"
    },
    "951": {
      "fn": "DepegMessageHelper.getSignerFromDigestAndSignature",
      "jump": "o",
      "offset": [
        1527,
        2064
      ],
      "op": "JUMP",
      "path": "51"
    },
    "952": {
      "fn": "EIP712.getSigner",
      "offset": [
        660,
        863
      ],
      "op": "JUMPDEST",
      "path": "54"
    },
    "953": {
      "fn": "EIP712.getSigner",
      "offset": [
        787,
        801
      ],
      "op": "PUSH1",
      "path": "54",
      "value": "0x0"
    },
    "955": {
      "fn": "EIP712.getSigner",
      "offset": [
        824,
        856
      ],
      "op": "PUSH2",
      "path": "54",
      "statement": 7,
      "value": "0x3FA"
    },
    "958": {
      "fn": "EIP712.getSigner",
      "offset": [
        838,
        844
      ],
      "op": "DUP5",
      "path": "54"
    },
    "959": {
      "fn": "EIP712.getSigner",
      "offset": [
        846,
        855
      ],
      "op": "DUP5",
      "path": "54"
    },
    "960": {
      "fn": "EIP712.getSigner",
      "offset": [
        846,
        855
      ],
      "op": "DUP5",
      "path": "54"
    },
    "961": {
      "fn": "EIP712.getSigner",
      "offset": [
        824,
        856
      ],
      "op": "DUP1",
      "path": "54"
    },
    "962": {
      "fn": "EIP712.getSigner",
      "offset": [
        824,
        856
      ],
      "op": "DUP1",
      "path": "54"
    },
    "963": {
      "fn": "EIP712.getSigner",
      "offset": [
        824,
        856
      ],
      "op": "PUSH1",
      "path": "54",
      "value": "0x1F"
    },
    "965": {
      "fn": "EIP712.getSigner",
      "offset": [
        824,
        856
      ],
      "op": "ADD",
      "path": "54"
    },
    "966": {
      "fn": "EIP712.getSigner",
      "offset": [
        824,
        856
      ],
      "op": "PUSH1",
      "path": "54",
      "value": "0x20"
    },
    "968": {
      "fn": "EIP712.getSigner",
      "offset": [
        824,
        856
      ],
      "op": "DUP1",
      "path": "54"
    },
    "969": {
      "fn": "EIP712.getSigner",
      "offset": [
        824,
        856
      ],
      "op": "SWAP2",
      "path": "54"
    },
    "970": {
      "fn": "EIP712.getSigner",
      "offset": [
        824,
        856
      ],
      "op": "DIV",
      "path": "54"
    },
    "971": {
      "fn": "EIP712.getSigner",
      "offset": [
        824,
        856
      ],
      "op": "MUL",
      "path": "54"
    },
    "972": {
      "fn": "EIP712.getSigner",
      "offset": [
        824,
        856
      ],
      "op": "PUSH1",
      "path": "54",
      "value": "0x20"
    },
    "974": {
      "fn": "EIP712.getSigner",
      "offset": [
        824,
        856
      ],
      "op": "ADD",
      "path": "54"
    },
    "975": {
      "fn": "EIP712.getSigner",
      "offset": [
        824,
        856
      ],
      "op": "PUSH1",
      "path": "54",
      "value": "0x40"
    },
    "977": {
      "fn": "EIP712.getSigner",
      "offset": [
        824,
        856
      ],
      "op": "MLOAD",
      "path": "54"
    },
    "978": {
      "fn": "EIP712.getSigner",
      "offset": [
        824,
        856
      ],
      "op": "SWAP1",
      "path": "54"
    },
    "979": {
      "fn": "EIP712.getSigner",
      "offset": [
        824,
        856
      ],
      "op": "DUP2",
      "path": "54"
    },
    "980": {
      "fn": "EIP712.getSigner",
      "offset": [
        824,
        856
      ],
      "op": "ADD",
      "path": "54"
    },
    "981": {
      "fn": "EIP712.getSigner",
      "offset": [
        824,
        856
      ],
      "op": "PUSH1",
      "path": "54",
      "value": "0x40"
    },
    "983": {
      "fn": "EIP712.getSigner",
      "offset": [
        824,
        856
      ],
      "op": "MSTORE",
      "path": "54"
    },
    "984": {
      "fn": "EIP712.getSigner",
      "offset": [
        824,
        856
      ],
      "op": "DUP1",
      "path": "54"
    },
    "985": {
      "fn": "EIP712.getSigner",
      "offset": [
        824,
        856
      ],
      "op": "SWAP4",
      "path": "54"
    },
    "986": {
      "fn": "EIP712.getSigner",
      "offset": [
        824,
        856
      ],
      "op": "SWAP3",
      "path": "54"
    },
    "987": {
      "fn": "EIP712.getSigner",
      "offset": [
        824,
        856
      ],
      "op": "SWAP2",
      "path": "54"
    },
    "988": {
      "fn": "EIP712.getSigner",
      "offset": [
        824,
        856
      ],
      "op": "SWAP1",
      "path": "54"
    },
    "989": {
      "fn": "EIP712.getSigner",
      "offset": [
        824,
        856
      ],
      "op": "DUP2",
      "path": "54"
    },
    "990": {
      "fn": "EIP712.getSigner",
      "offset": [
        824,
        856
      ],
      "op": "DUP2",
      "path": "54"
    },
    "991": {
      "fn": "EIP712.getSigner",
      "offset": [
        824,
        856
      ],
      "op": "MSTORE",
      "path": "54"
    },
    "992": {
      "fn": "EIP712.getSigner",
      "offset": [
        824,
        856
      ],
      "op": "PUSH1",
      "path": "54",
      "value": "0x20"
    },
    "994": {
      "fn": "EIP712.getSigner",
      "offset": [
        824,
        856
      ],
      "op": "ADD",
      "path": "54"
    },
    "995": {
      "fn": "EIP712.getSigner",
      "offset": [
        824,
        856
      ],
      "op": "DUP4",
      "path": "54"
    },
    "996": {
      "fn": "EIP712.getSigner",
      "offset": [
        824,
        856
      ],
      "op": "DUP4",
      "path": "54"
    },
    "997": {
      "fn": "EIP712.getSigner",
      "offset": [
        824,
        856
      ],
      "op": "DUP1",
      "path": "54"
    },
    "998": {
      "fn": "EIP712.getSigner",
      "offset": [
        824,
        856
      ],
      "op": "DUP3",
      "path": "54"
    },
    "999": {
      "fn": "EIP712.getSigner",
      "offset": [
        824,
        856
      ],
      "op": "DUP5",
      "path": "54"
    },
    "1000": {
      "fn": "EIP712.getSigner",
      "offset": [
        824,
        856
      ],
      "op": "CALLDATACOPY",
      "path": "54"
    },
    "1001": {
      "fn": "EIP712.getSigner",
      "offset": [
        824,
        856
      ],
      "op": "PUSH1",
      "path": "54",
      "value": "0x0"
    },
    "1003": {
      "fn": "EIP712.getSigner",
      "offset": [
        824,
        856
      ],
      "op": "SWAP3",
      "path": "54"
    },
    "1004": {
      "fn": "EIP712.getSigner",
      "offset": [
        824,
        856
      ],
      "op": "ADD",
      "path": "54"
    },
    "1005": {
      "fn": "EIP712.getSigner",
      "offset": [
        824,
        856
      ],
      "op": "SWAP2",
      "path": "54"
    },
    "1006": {
      "fn": "EIP712.getSigner",
      "offset": [
        824,
        856
      ],
      "op": "SWAP1",
      "path": "54"
    },
    "1007": {
      "fn": "EIP712.getSigner",
      "offset": [
        824,
        856
      ],
      "op": "SWAP2",
      "path": "54"
    },
    "1008": {
      "fn": "EIP712.getSigner",
      "offset": [
        824,
        856
      ],
      "op": "MSTORE",
      "path": "54"
    },
    "1009": {
      "op": "POP"
    },
    "1010": {
      "fn": "EIP712.getSigner",
      "offset": [
        824,
        837
      ],
      "op": "PUSH2",
      "path": "54",
      "value": "0x4A3"
    },
    "1013": {
      "fn": "EIP712.getSigner",
      "offset": [
        824,
        837
      ],
      "op": "SWAP3",
      "path": "54"
    },
    "1014": {
      "op": "POP"
    },
    "1015": {
      "op": "POP"
    },
    "1016": {
      "op": "POP"
    },
    "1017": {
      "fn": "EIP712.getSigner",
      "jump": "i",
      "offset": [
        824,
        856
      ],
      "op": "JUMP",
      "path": "54"
    },
    "1018": {
      "fn": "EIP712.getSigner",
      "offset": [
        824,
        856
      ],
      "op": "JUMPDEST",
      "path": "54"
    },
    "1019": {
      "fn": "EIP712.getSigner",
      "offset": [
        817,
        856
      ],
      "op": "SWAP5",
      "path": "54"
    },
    "1020": {
      "fn": "EIP712.getSigner",
      "offset": [
        660,
        863
      ],
      "op": "SWAP4",
      "path": "54"
    },
    "1021": {
      "op": "POP"
    },
    "1022": {
      "op": "POP"
    },
    "1023": {
      "op": "POP"
    },
    "1024": {
      "op": "POP"
    },
    "1025": {
      "fn": "EIP712.getSigner",
      "jump": "o",
      "offset": [
        660,
        863
      ],
      "op": "JUMP",
      "path": "54"
    },
    "1026": {
      "fn": "DepegMessageHelper.getDigest",
      "offset": [
        2071,
        2635
      ],
      "op": "JUMPDEST",
      "path": "51"
    },
    "1027": {
      "fn": "DepegMessageHelper.getDigest",
      "offset": [
        2290,
        2297
      ],
      "op": "PUSH1",
      "path": "51",
      "value": "0x0"
    },
    "1029": {
      "fn": "DepegMessageHelper.getDigest",
      "offset": [
        2313,
        2331
      ],
      "op": "DUP1",
      "path": "51"
    },
    "1030": {
      "offset": [
        521,
        539
      ],
      "op": "PUSH1",
      "path": "51",
      "value": "0x40"
    },
    "1032": {
      "fn": "DepegMessageHelper.getDigest",
      "offset": [
        521,
        539
      ],
      "op": "MLOAD",
      "path": "51"
    },
    "1033": {
      "fn": "DepegMessageHelper.getDigest",
      "offset": [
        521,
        539
      ],
      "op": "DUP1",
      "path": "51"
    },
    "1034": {
      "fn": "DepegMessageHelper.getDigest",
      "offset": [
        521,
        539
      ],
      "op": "PUSH1",
      "path": "51",
      "value": "0xA0"
    },
    "1036": {
      "fn": "DepegMessageHelper.getDigest",
      "offset": [
        521,
        539
      ],
      "op": "ADD",
      "path": "51"
    },
    "1037": {
      "fn": "DepegMessageHelper.getDigest",
      "offset": [
        521,
        539
      ],
      "op": "PUSH1",
      "path": "51",
      "value": "0x40"
    },
    "1039": {
      "fn": "DepegMessageHelper.getDigest",
      "offset": [
        521,
        539
      ],
      "op": "MSTORE",
      "path": "51"
    },
    "1040": {
      "fn": "DepegMessageHelper.getDigest",
      "offset": [
        521,
        539
      ],
      "op": "DUP1",
      "path": "51"
    },
    "1041": {
      "fn": "DepegMessageHelper.getDigest",
      "offset": [
        521,
        539
      ],
      "op": "PUSH1",
      "path": "51",
      "value": "0x65"
    },
    "1043": {
      "fn": "DepegMessageHelper.getDigest",
      "offset": [
        521,
        539
      ],
      "op": "DUP2",
      "path": "51"
    },
    "1044": {
      "fn": "DepegMessageHelper.getDigest",
      "offset": [
        521,
        539
      ],
      "op": "MSTORE",
      "path": "51"
    },
    "1045": {
      "fn": "DepegMessageHelper.getDigest",
      "offset": [
        521,
        539
      ],
      "op": "PUSH1",
      "path": "51",
      "value": "0x20"
    },
    "1047": {
      "fn": "DepegMessageHelper.getDigest",
      "offset": [
        521,
        539
      ],
      "op": "ADD",
      "path": "51"
    },
    "1048": {
      "fn": "DepegMessageHelper.getDigest",
      "offset": [
        521,
        539
      ],
      "op": "PUSH2",
      "path": "51",
      "value": "0xA6A"
    },
    "1051": {
      "fn": "DepegMessageHelper.getDigest",
      "offset": [
        521,
        539
      ],
      "op": "PUSH1",
      "path": "51",
      "value": "0x65"
    },
    "1053": {
      "fn": "DepegMessageHelper.getDigest",
      "offset": [
        521,
        539
      ],
      "op": "SWAP2",
      "path": "51"
    },
    "1054": {
      "fn": "DepegMessageHelper.getDigest",
      "offset": [
        521,
        539
      ],
      "op": "CODECOPY",
      "path": "51"
    },
    "1055": {
      "offset": [
        504,
        540
      ],
      "op": "PUSH1",
      "path": "51",
      "value": "0x40"
    },
    "1057": {
      "fn": "DepegMessageHelper.getDigest",
      "offset": [
        504,
        540
      ],
      "op": "MLOAD",
      "path": "51"
    },
    "1058": {
      "fn": "DepegMessageHelper.getDigest",
      "offset": [
        504,
        540
      ],
      "op": "PUSH1",
      "path": "51",
      "value": "0x20"
    },
    "1060": {
      "fn": "DepegMessageHelper.getDigest",
      "offset": [
        504,
        540
      ],
      "op": "ADD",
      "path": "51"
    },
    "1061": {
      "fn": "DepegMessageHelper.getDigest",
      "offset": [
        504,
        540
      ],
      "op": "PUSH2",
      "path": "51",
      "value": "0x42E"
    },
    "1064": {
      "fn": "DepegMessageHelper.getDigest",
      "offset": [
        504,
        540
      ],
      "op": "SWAP2",
      "path": "51"
    },
    "1065": {
      "fn": "DepegMessageHelper.getDigest",
      "offset": [
        504,
        540
      ],
      "op": "SWAP1",
      "path": "51"
    },
    "1066": {
      "fn": "DepegMessageHelper.getDigest",
      "offset": [
        504,
        540
      ],
      "op": "PUSH2",
      "path": "51",
      "value": "0x9BB"
    },
    "1069": {
      "fn": "DepegMessageHelper.getDigest",
      "jump": "i",
      "offset": [
        504,
        540
      ],
      "op": "JUMP",
      "path": "51"
    },
    "1070": {
      "fn": "DepegMessageHelper.getDigest",
      "offset": [
        504,
        540
      ],
      "op": "JUMPDEST",
      "path": "51"
    },
    "1071": {
      "fn": "DepegMessageHelper.getDigest",
      "offset": [
        504,
        540
      ],
      "op": "PUSH1",
      "path": "51",
      "value": "0x40"
    },
    "1073": {
      "fn": "DepegMessageHelper.getDigest",
      "offset": [
        504,
        540
      ],
      "op": "DUP1",
      "path": "51"
    },
    "1074": {
      "fn": "DepegMessageHelper.getDigest",
      "offset": [
        504,
        540
      ],
      "op": "MLOAD",
      "path": "51"
    },
    "1075": {
      "op": "PUSH1",
      "value": "0x1F"
    },
    "1077": {
      "op": "NOT"
    },
    "1078": {
      "offset": [
        504,
        540
      ],
      "op": "DUP2",
      "path": "51"
    },
    "1079": {
      "fn": "DepegMessageHelper.getDigest",
      "offset": [
        504,
        540
      ],
      "op": "DUP5",
      "path": "51"
    },
    "1080": {
      "fn": "DepegMessageHelper.getDigest",
      "offset": [
        504,
        540
      ],
      "op": "SUB",
      "path": "51"
    },
    "1081": {
      "fn": "DepegMessageHelper.getDigest",
      "offset": [
        504,
        540
      ],
      "op": "ADD",
      "path": "51"
    },
    "1082": {
      "fn": "DepegMessageHelper.getDigest",
      "offset": [
        504,
        540
      ],
      "op": "DUP2",
      "path": "51"
    },
    "1083": {
      "fn": "DepegMessageHelper.getDigest",
      "offset": [
        504,
        540
      ],
      "op": "MSTORE",
      "path": "51"
    },
    "1084": {
      "fn": "DepegMessageHelper.getDigest",
      "offset": [
        504,
        540
      ],
      "op": "DUP3",
      "path": "51"
    },
    "1085": {
      "fn": "DepegMessageHelper.getDigest",
      "offset": [
        504,
        540
      ],
      "op": "DUP3",
      "path": "51"
    },
    "1086": {
      "fn": "DepegMessageHelper.getDigest",
      "offset": [
        504,
        540
      ],
      "op": "MSTORE",
      "path": "51"
    },
    "1087": {
      "offset": [
        494,
        541
      ],
      "op": "DUP1",
      "path": "51"
    },
    "1088": {
      "fn": "DepegMessageHelper.getDigest",
      "offset": [
        494,
        541
      ],
      "op": "MLOAD",
      "path": "51"
    },
    "1089": {
      "offset": [
        504,
        540
      ],
      "op": "PUSH1",
      "path": "51",
      "value": "0x20"
    },
    "1091": {
      "offset": [
        494,
        541
      ],
      "op": "SWAP2",
      "path": "51"
    },
    "1092": {
      "fn": "DepegMessageHelper.getDigest",
      "offset": [
        494,
        541
      ],
      "op": "DUP3",
      "path": "51"
    },
    "1093": {
      "fn": "DepegMessageHelper.getDigest",
      "offset": [
        494,
        541
      ],
      "op": "ADD",
      "path": "51"
    },
    "1094": {
      "fn": "DepegMessageHelper.getDigest",
      "offset": [
        494,
        541
      ],
      "op": "KECCAK256",
      "path": "51"
    },
    "1095": {
      "fn": "DepegMessageHelper.getDigest",
      "offset": [
        2357,
        2570
      ],
      "op": "SWAP1",
      "path": "51"
    },
    "1096": {
      "fn": "DepegMessageHelper.getDigest",
      "offset": [
        2357,
        2570
      ],
      "op": "DUP4",
      "path": "51"
    },
    "1097": {
      "fn": "DepegMessageHelper.getDigest",
      "offset": [
        2357,
        2570
      ],
      "op": "ADD",
      "path": "51"
    },
    "1098": {
      "op": "MSTORE"
    },
    "1099": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1101": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1103": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "1105": {
      "op": "SHL"
    },
    "1106": {
      "op": "SUB"
    },
    "1107": {
      "op": "DUP10"
    },
    "1108": {
      "op": "AND"
    },
    "1109": {
      "op": "SWAP1"
    },
    "1110": {
      "op": "DUP3"
    },
    "1111": {
      "op": "ADD"
    },
    "1112": {
      "op": "MSTORE"
    },
    "1113": {
      "op": "PUSH1",
      "value": "0x60"
    },
    "1115": {
      "op": "DUP2"
    },
    "1116": {
      "op": "ADD"
    },
    "1117": {
      "op": "DUP8"
    },
    "1118": {
      "op": "SWAP1"
    },
    "1119": {
      "op": "MSTORE"
    },
    "1120": {
      "op": "PUSH1",
      "value": "0x80"
    },
    "1122": {
      "op": "DUP2"
    },
    "1123": {
      "op": "ADD"
    },
    "1124": {
      "op": "DUP7"
    },
    "1125": {
      "op": "SWAP1"
    },
    "1126": {
      "op": "MSTORE"
    },
    "1127": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "1129": {
      "op": "DUP2"
    },
    "1130": {
      "op": "ADD"
    },
    "1131": {
      "op": "DUP6"
    },
    "1132": {
      "op": "SWAP1"
    },
    "1133": {
      "op": "MSTORE"
    },
    "1134": {
      "op": "PUSH1",
      "value": "0xC0"
    },
    "1136": {
      "op": "DUP2"
    },
    "1137": {
      "op": "ADD"
    },
    "1138": {
      "op": "DUP5"
    },
    "1139": {
      "op": "SWAP1"
    },
    "1140": {
      "op": "MSTORE"
    },
    "1141": {
      "op": "PUSH1",
      "value": "0xE0"
    },
    "1143": {
      "op": "ADD"
    },
    "1144": {
      "fn": "DepegMessageHelper.getDigest",
      "offset": [
        2357,
        2570
      ],
      "op": "PUSH1",
      "path": "51",
      "value": "0x40"
    },
    "1146": {
      "fn": "DepegMessageHelper.getDigest",
      "offset": [
        2357,
        2570
      ],
      "op": "MLOAD",
      "path": "51"
    },
    "1147": {
      "fn": "DepegMessageHelper.getDigest",
      "offset": [
        2357,
        2570
      ],
      "op": "PUSH1",
      "path": "51",
      "value": "0x20"
    },
    "1149": {
      "fn": "DepegMessageHelper.getDigest",
      "offset": [
        2357,
        2570
      ],
      "op": "DUP2",
      "path": "51"
    },
    "1150": {
      "fn": "DepegMessageHelper.getDigest",
      "offset": [
        2357,
        2570
      ],
      "op": "DUP4",
      "path": "51"
    },
    "1151": {
      "fn": "DepegMessageHelper.getDigest",
      "offset": [
        2357,
        2570
      ],
      "op": "SUB",
      "path": "51"
    },
    "1152": {
      "fn": "DepegMessageHelper.getDigest",
      "offset": [
        2357,
        2570
      ],
      "op": "SUB",
      "path": "51"
    },
    "1153": {
      "fn": "DepegMessageHelper.getDigest",
      "offset": [
        2357,
        2570
      ],
      "op": "DUP2",
      "path": "51"
    },
    "1154": {
      "fn": "DepegMessageHelper.getDigest",
      "offset": [
        2357,
        2570
      ],
      "op": "MSTORE",
      "path": "51"
    },
    "1155": {
      "fn": "DepegMessageHelper.getDigest",
      "offset": [
        2357,
        2570
      ],
      "op": "SWAP1",
      "path": "51"
    },
    "1156": {
      "fn": "DepegMessageHelper.getDigest",
      "offset": [
        2357,
        2570
      ],
      "op": "PUSH1",
      "path": "51",
      "value": "0x40"
    },
    "1158": {
      "fn": "DepegMessageHelper.getDigest",
      "offset": [
        2357,
        2570
      ],
      "op": "MSTORE",
      "path": "51"
    },
    "1159": {
      "fn": "DepegMessageHelper.getDigest",
      "offset": [
        2334,
        2580
      ],
      "op": "DUP1",
      "path": "51"
    },
    "1160": {
      "fn": "DepegMessageHelper.getDigest",
      "offset": [
        2334,
        2580
      ],
      "op": "MLOAD",
      "path": "51"
    },
    "1161": {
      "fn": "DepegMessageHelper.getDigest",
      "offset": [
        2334,
        2580
      ],
      "op": "SWAP1",
      "path": "51"
    },
    "1162": {
      "fn": "DepegMessageHelper.getDigest",
      "offset": [
        2334,
        2580
      ],
      "op": "PUSH1",
      "path": "51",
      "value": "0x20"
    },
    "1164": {
      "fn": "DepegMessageHelper.getDigest",
      "offset": [
        2334,
        2580
      ],
      "op": "ADD",
      "path": "51"
    },
    "1165": {
      "fn": "DepegMessageHelper.getDigest",
      "offset": [
        2334,
        2580
      ],
      "op": "KECCAK256",
      "path": "51"
    },
    "1166": {
      "fn": "DepegMessageHelper.getDigest",
      "offset": [
        2313,
        2580
      ],
      "op": "SWAP1",
      "path": "51"
    },
    "1167": {
      "fn": "DepegMessageHelper.getDigest",
      "offset": [
        2313,
        2580
      ],
      "op": "POP",
      "path": "51"
    },
    "1168": {
      "fn": "DepegMessageHelper.getDigest",
      "offset": [
        2598,
        2628
      ],
      "op": "PUSH2",
      "path": "51",
      "statement": 8,
      "value": "0x498"
    },
    "1171": {
      "fn": "DepegMessageHelper.getDigest",
      "offset": [
        2617,
        2627
      ],
      "op": "DUP2",
      "path": "51"
    },
    "1172": {
      "fn": "DepegMessageHelper.getDigest",
      "offset": [
        2598,
        2616
      ],
      "op": "PUSH2",
      "path": "51",
      "value": "0x18E"
    },
    "1175": {
      "fn": "DepegMessageHelper.getDigest",
      "jump": "i",
      "offset": [
        2598,
        2628
      ],
      "op": "JUMP",
      "path": "51"
    },
    "1176": {
      "fn": "DepegMessageHelper.getDigest",
      "offset": [
        2598,
        2628
      ],
      "op": "JUMPDEST",
      "path": "51"
    },
    "1177": {
      "fn": "DepegMessageHelper.getDigest",
      "offset": [
        2591,
        2628
      ],
      "op": "SWAP8",
      "path": "51"
    },
    "1178": {
      "fn": "DepegMessageHelper.getDigest",
      "offset": [
        2071,
        2635
      ],
      "op": "SWAP7",
      "path": "51"
    },
    "1179": {
      "op": "POP"
    },
    "1180": {
      "op": "POP"
    },
    "1181": {
      "op": "POP"
    },
    "1182": {
      "op": "POP"
    },
    "1183": {
      "op": "POP"
    },
    "1184": {
      "op": "POP"
    },
    "1185": {
      "op": "POP"
    },
    "1186": {
      "fn": "DepegMessageHelper.getDigest",
      "jump": "o",
      "offset": [
        2071,
        2635
      ],
      "op": "JUMP",
      "path": "51"
    },
    "1187": {
      "fn": "ECDSA.recover",
      "offset": [
        3759,
        3986
      ],
      "op": "JUMPDEST",
      "path": "13"
    },
    "1188": {
      "fn": "ECDSA.recover",
      "offset": [
        3837,
        3844
      ],
      "op": "PUSH1",
      "path": "13",
      "value": "0x0"
    },
    "1190": {
      "fn": "ECDSA.recover",
      "offset": [
        3857,
        3874
      ],
      "op": "DUP1",
      "path": "13"
    },
    "1191": {
      "fn": "ECDSA.recover",
      "offset": [
        3876,
        3894
      ],
      "op": "PUSH1",
      "path": "13",
      "value": "0x0"
    },
    "1193": {
      "fn": "ECDSA.recover",
      "offset": [
        3898,
        3925
      ],
      "op": "PUSH2",
      "path": "13",
      "value": "0x4B2"
    },
    "1196": {
      "fn": "ECDSA.recover",
      "offset": [
        3909,
        3913
      ],
      "op": "DUP6",
      "path": "13"
    },
    "1197": {
      "fn": "ECDSA.recover",
      "offset": [
        3915,
        3924
      ],
      "op": "DUP6",
      "path": "13"
    },
    "1198": {
      "fn": "ECDSA.recover",
      "offset": [
        3898,
        3908
      ],
      "op": "PUSH2",
      "path": "13",
      "value": "0x4C7"
    },
    "1201": {
      "fn": "ECDSA.recover",
      "jump": "i",
      "offset": [
        3898,
        3925
      ],
      "op": "JUMP",
      "path": "13"
    },
    "1202": {
      "fn": "ECDSA.recover",
      "offset": [
        3898,
        3925
      ],
      "op": "JUMPDEST",
      "path": "13"
    },
    "1203": {
      "fn": "ECDSA.recover",
      "offset": [
        3856,
        3925
      ],
      "op": "SWAP2",
      "path": "13"
    },
    "1204": {
      "fn": "ECDSA.recover",
      "offset": [
        3856,
        3925
      ],
      "op": "POP",
      "path": "13"
    },
    "1205": {
      "fn": "ECDSA.recover",
      "offset": [
        3856,
        3925
      ],
      "op": "SWAP2",
      "path": "13"
    },
    "1206": {
      "fn": "ECDSA.recover",
      "offset": [
        3856,
        3925
      ],
      "op": "POP",
      "path": "13"
    },
    "1207": {
      "fn": "ECDSA.recover",
      "offset": [
        3935,
        3953
      ],
      "op": "PUSH2",
      "path": "13",
      "statement": 9,
      "value": "0x4BF"
    },
    "1210": {
      "fn": "ECDSA.recover",
      "offset": [
        3947,
        3952
      ],
      "op": "DUP2",
      "path": "13"
    },
    "1211": {
      "fn": "ECDSA.recover",
      "offset": [
        3935,
        3946
      ],
      "op": "PUSH2",
      "path": "13",
      "value": "0x50D"
    },
    "1214": {
      "fn": "ECDSA.recover",
      "jump": "i",
      "offset": [
        3935,
        3953
      ],
      "op": "JUMP",
      "path": "13"
    },
    "1215": {
      "fn": "ECDSA.recover",
      "offset": [
        3935,
        3953
      ],
      "op": "JUMPDEST",
      "path": "13"
    },
    "1216": {
      "op": "POP"
    },
    "1217": {
      "fn": "ECDSA.recover",
      "offset": [
        3970,
        3979
      ],
      "op": "SWAP4",
      "path": "13",
      "statement": 10
    },
    "1218": {
      "fn": "ECDSA.recover",
      "offset": [
        3759,
        3986
      ],
      "op": "SWAP3",
      "path": "13"
    },
    "1219": {
      "op": "POP"
    },
    "1220": {
      "op": "POP"
    },
    "1221": {
      "op": "POP"
    },
    "1222": {
      "fn": "ECDSA.recover",
      "jump": "o",
      "offset": [
        3759,
        3986
      ],
      "op": "JUMP",
      "path": "13"
    },
    "1223": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2243,
        2973
      ],
      "op": "JUMPDEST",
      "path": "13"
    },
    "1224": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2324,
        2331
      ],
      "op": "PUSH1",
      "path": "13",
      "value": "0x0"
    },
    "1226": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2333,
        2345
      ],
      "op": "DUP1",
      "path": "13"
    },
    "1227": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2361,
        2370
      ],
      "op": "DUP3",
      "path": "13"
    },
    "1228": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2361,
        2377
      ],
      "op": "MLOAD",
      "path": "13"
    },
    "1229": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2381,
        2383
      ],
      "op": "PUSH1",
      "path": "13",
      "value": "0x41"
    },
    "1231": {
      "branch": 24,
      "fn": "ECDSA.tryRecover",
      "offset": [
        2361,
        2383
      ],
      "op": "EQ",
      "path": "13"
    },
    "1232": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2357,
        2967
      ],
      "op": "ISZERO",
      "path": "13"
    },
    "1233": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2357,
        2967
      ],
      "op": "PUSH2",
      "path": "13",
      "value": "0x4FE"
    },
    "1236": {
      "branch": 24,
      "fn": "ECDSA.tryRecover",
      "offset": [
        2357,
        2967
      ],
      "op": "JUMPI",
      "path": "13"
    },
    "1237": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2697,
        2701
      ],
      "op": "PUSH1",
      "path": "13",
      "value": "0x20"
    },
    "1239": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2682,
        2702
      ],
      "op": "DUP4",
      "path": "13"
    },
    "1240": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2682,
        2702
      ],
      "op": "ADD",
      "path": "13"
    },
    "1241": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2676,
        2703
      ],
      "op": "MLOAD",
      "path": "13"
    },
    "1242": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2746,
        2750
      ],
      "op": "PUSH1",
      "path": "13",
      "value": "0x40"
    },
    "1244": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2731,
        2751
      ],
      "op": "DUP5",
      "path": "13"
    },
    "1245": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2731,
        2751
      ],
      "op": "ADD",
      "path": "13"
    },
    "1246": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2725,
        2752
      ],
      "op": "MLOAD",
      "path": "13"
    },
    "1247": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2803,
        2807
      ],
      "op": "PUSH1",
      "path": "13",
      "value": "0x60"
    },
    "1249": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2788,
        2808
      ],
      "op": "DUP6",
      "path": "13"
    },
    "1250": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2788,
        2808
      ],
      "op": "ADD",
      "path": "13"
    },
    "1251": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2782,
        2809
      ],
      "op": "MLOAD",
      "path": "13"
    },
    "1252": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2399,
        2408
      ],
      "op": "PUSH1",
      "path": "13",
      "value": "0x0"
    },
    "1254": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2774,
        2810
      ],
      "op": "BYTE",
      "path": "13"
    },
    "1255": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2844,
        2869
      ],
      "op": "PUSH2",
      "path": "13",
      "statement": 11,
      "value": "0x4F2"
    },
    "1258": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2855,
        2859
      ],
      "op": "DUP8",
      "path": "13"
    },
    "1259": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2774,
        2810
      ],
      "op": "DUP3",
      "path": "13"
    },
    "1260": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2676,
        2703
      ],
      "op": "DUP6",
      "path": "13"
    },
    "1261": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2725,
        2752
      ],
      "op": "DUP6",
      "path": "13"
    },
    "1262": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2844,
        2854
      ],
      "op": "PUSH2",
      "path": "13",
      "value": "0x713"
    },
    "1265": {
      "fn": "ECDSA.tryRecover",
      "jump": "i",
      "offset": [
        2844,
        2869
      ],
      "op": "JUMP",
      "path": "13"
    },
    "1266": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2844,
        2869
      ],
      "op": "JUMPDEST",
      "path": "13"
    },
    "1267": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2837,
        2869
      ],
      "op": "SWAP5",
      "path": "13"
    },
    "1268": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2837,
        2869
      ],
      "op": "POP",
      "path": "13"
    },
    "1269": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2837,
        2869
      ],
      "op": "SWAP5",
      "path": "13"
    },
    "1270": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2837,
        2869
      ],
      "op": "POP",
      "path": "13"
    },
    "1271": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2837,
        2869
      ],
      "op": "POP",
      "path": "13"
    },
    "1272": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2837,
        2869
      ],
      "op": "POP",
      "path": "13"
    },
    "1273": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2837,
        2869
      ],
      "op": "POP",
      "path": "13"
    },
    "1274": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2837,
        2869
      ],
      "op": "PUSH2",
      "path": "13",
      "value": "0x506"
    },
    "1277": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2837,
        2869
      ],
      "op": "JUMP",
      "path": "13"
    },
    "1278": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2357,
        2967
      ],
      "op": "JUMPDEST",
      "path": "13"
    },
    "1279": {
      "op": "POP"
    },
    "1280": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2916,
        2917
      ],
      "op": "PUSH1",
      "path": "13",
      "statement": 12,
      "value": "0x0"
    },
    "1282": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2916,
        2917
      ],
      "op": "SWAP1",
      "path": "13"
    },
    "1283": {
      "op": "POP"
    },
    "1284": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2920,
        2955
      ],
      "op": "PUSH1",
      "path": "13",
      "value": "0x2"
    },
    "1286": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2357,
        2967
      ],
      "op": "JUMPDEST",
      "path": "13"
    },
    "1287": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2243,
        2973
      ],
      "op": "SWAP3",
      "path": "13"
    },
    "1288": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2243,
        2973
      ],
      "op": "POP",
      "path": "13"
    },
    "1289": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2243,
        2973
      ],
      "op": "SWAP3",
      "path": "13"
    },
    "1290": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2243,
        2973
      ],
      "op": "SWAP1",
      "path": "13"
    },
    "1291": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2243,
        2973
      ],
      "op": "POP",
      "path": "13"
    },
    "1292": {
      "fn": "ECDSA.tryRecover",
      "jump": "o",
      "offset": [
        2243,
        2973
      ],
      "op": "JUMP",
      "path": "13"
    },
    "1293": {
      "fn": "ECDSA._throwError",
      "offset": [
        548,
        1179
      ],
      "op": "JUMPDEST",
      "path": "13"
    },
    "1294": {
      "fn": "ECDSA._throwError",
      "offset": [
        625,
        645
      ],
      "op": "PUSH1",
      "path": "13",
      "value": "0x0"
    },
    "1296": {
      "fn": "ECDSA._throwError",
      "offset": [
        616,
        621
      ],
      "op": "DUP2",
      "path": "13"
    },
    "1297": {
      "fn": "ECDSA._throwError",
      "offset": [
        616,
        645
      ],
      "op": "PUSH1",
      "path": "13",
      "value": "0x4"
    },
    "1299": {
      "fn": "ECDSA._throwError",
      "offset": [
        616,
        645
      ],
      "op": "DUP2",
      "path": "13"
    },
    "1300": {
      "fn": "ECDSA._throwError",
      "offset": [
        616,
        645
      ],
      "op": "GT",
      "path": "13"
    },
    "1301": {
      "fn": "ECDSA._throwError",
      "offset": [
        616,
        645
      ],
      "op": "ISZERO",
      "path": "13"
    },
    "1302": {
      "fn": "ECDSA._throwError",
      "offset": [
        616,
        645
      ],
      "op": "PUSH2",
      "path": "13",
      "value": "0x52F"
    },
    "1305": {
      "fn": "ECDSA._throwError",
      "offset": [
        616,
        645
      ],
      "op": "JUMPI",
      "path": "13"
    },
    "1306": {
      "op": "PUSH4",
      "value": "0x4E487B71"
    },
    "1311": {
      "op": "PUSH1",
      "value": "0xE0"
    },
    "1313": {
      "op": "SHL"
    },
    "1314": {
      "fn": "ECDSA._throwError",
      "offset": [
        616,
        645
      ],
      "op": "PUSH1",
      "path": "13",
      "value": "0x0"
    },
    "1316": {
      "fn": "ECDSA._throwError",
      "offset": [
        616,
        645
      ],
      "op": "MSTORE",
      "path": "13"
    },
    "1317": {
      "fn": "ECDSA._throwError",
      "offset": [
        616,
        645
      ],
      "op": "PUSH1",
      "path": "13",
      "value": "0x21"
    },
    "1319": {
      "fn": "ECDSA._throwError",
      "offset": [
        616,
        645
      ],
      "op": "PUSH1",
      "path": "13",
      "value": "0x4"
    },
    "1321": {
      "fn": "ECDSA._throwError",
      "offset": [
        616,
        645
      ],
      "op": "MSTORE",
      "path": "13"
    },
    "1322": {
      "fn": "ECDSA._throwError",
      "offset": [
        616,
        645
      ],
      "op": "PUSH1",
      "path": "13",
      "value": "0x24"
    },
    "1324": {
      "fn": "ECDSA._throwError",
      "offset": [
        616,
        645
      ],
      "op": "PUSH1",
      "path": "13",
      "value": "0x0"
    },
    "1326": {
      "fn": "ECDSA._throwError",
      "offset": [
        616,
        645
      ],
      "op": "REVERT",
      "path": "13"
    },
    "1327": {
      "fn": "ECDSA._throwError",
      "offset": [
        616,
        645
      ],
      "op": "JUMPDEST",
      "path": "13"
    },
    "1328": {
      "branch": 25,
      "fn": "ECDSA._throwError",
      "offset": [
        616,
        645
      ],
      "op": "EQ",
      "path": "13"
    },
    "1329": {
      "fn": "ECDSA._throwError",
      "offset": [
        612,
        1173
      ],
      "op": "ISZERO",
      "path": "13"
    },
    "1330": {
      "fn": "ECDSA._throwError",
      "offset": [
        612,
        1173
      ],
      "op": "PUSH2",
      "path": "13",
      "value": "0x53A"
    },
    "1333": {
      "branch": 25,
      "fn": "ECDSA._throwError",
      "offset": [
        612,
        1173
      ],
      "op": "JUMPI",
      "path": "13"
    },
    "1334": {
      "fn": "ECDSA._throwError",
      "offset": [
        661,
        668
      ],
      "op": "PUSH2",
      "path": "13",
      "statement": 13,
      "value": "0x710"
    },
    "1337": {
      "fn": "ECDSA._throwError",
      "offset": [
        661,
        668
      ],
      "op": "JUMP",
      "path": "13"
    },
    "1338": {
      "fn": "ECDSA._throwError",
      "offset": [
        612,
        1173
      ],
      "op": "JUMPDEST",
      "path": "13"
    },
    "1339": {
      "fn": "ECDSA._throwError",
      "offset": [
        721,
        750
      ],
      "op": "PUSH1",
      "path": "13",
      "value": "0x1"
    },
    "1341": {
      "fn": "ECDSA._throwError",
      "offset": [
        712,
        717
      ],
      "op": "DUP2",
      "path": "13"
    },
    "1342": {
      "fn": "ECDSA._throwError",
      "offset": [
        712,
        750
      ],
      "op": "PUSH1",
      "path": "13",
      "value": "0x4"
    },
    "1344": {
      "fn": "ECDSA._throwError",
      "offset": [
        712,
        750
      ],
      "op": "DUP2",
      "path": "13"
    },
    "1345": {
      "fn": "ECDSA._throwError",
      "offset": [
        712,
        750
      ],
      "op": "GT",
      "path": "13"
    },
    "1346": {
      "fn": "ECDSA._throwError",
      "offset": [
        712,
        750
      ],
      "op": "ISZERO",
      "path": "13"
    },
    "1347": {
      "fn": "ECDSA._throwError",
      "offset": [
        712,
        750
      ],
      "op": "PUSH2",
      "path": "13",
      "value": "0x55C"
    },
    "1350": {
      "fn": "ECDSA._throwError",
      "offset": [
        712,
        750
      ],
      "op": "JUMPI",
      "path": "13"
    },
    "1351": {
      "op": "PUSH4",
      "value": "0x4E487B71"
    },
    "1356": {
      "op": "PUSH1",
      "value": "0xE0"
    },
    "1358": {
      "op": "SHL"
    },
    "1359": {
      "fn": "ECDSA._throwError",
      "offset": [
        712,
        750
      ],
      "op": "PUSH1",
      "path": "13",
      "value": "0x0"
    },
    "1361": {
      "fn": "ECDSA._throwError",
      "offset": [
        712,
        750
      ],
      "op": "MSTORE",
      "path": "13"
    },
    "1362": {
      "fn": "ECDSA._throwError",
      "offset": [
        712,
        750
      ],
      "op": "PUSH1",
      "path": "13",
      "value": "0x21"
    },
    "1364": {
      "fn": "ECDSA._throwError",
      "offset": [
        712,
        750
      ],
      "op": "PUSH1",
      "path": "13",
      "value": "0x4"
    },
    "1366": {
      "fn": "ECDSA._throwError",
      "offset": [
        712,
        750
      ],
      "op": "MSTORE",
      "path": "13"
    },
    "1367": {
      "fn": "ECDSA._throwError",
      "offset": [
        712,
        750
      ],
      "op": "PUSH1",
      "path": "13",
      "value": "0x24"
    },
    "1369": {
      "fn": "ECDSA._throwError",
      "offset": [
        712,
        750
      ],
      "op": "PUSH1",
      "path": "13",
      "value": "0x0"
    },
    "1371": {
      "fn": "ECDSA._throwError",
      "offset": [
        712,
        750
      ],
      "op": "REVERT",
      "path": "13"
    },
    "1372": {
      "fn": "ECDSA._throwError",
      "offset": [
        712,
        750
      ],
      "op": "JUMPDEST",
      "path": "13"
    },
    "1373": {
      "branch": 26,
      "fn": "ECDSA._throwError",
      "offset": [
        712,
        750
      ],
      "op": "EQ",
      "path": "13"
    },
    "1374": {
      "fn": "ECDSA._throwError",
      "offset": [
        708,
        1173
      ],
      "op": "ISZERO",
      "path": "13"
    },
    "1375": {
      "fn": "ECDSA._throwError",
      "offset": [
        708,
        1173
      ],
      "op": "PUSH2",
      "path": "13",
      "value": "0x5AA"
    },
    "1378": {
      "branch": 26,
      "fn": "ECDSA._throwError",
      "offset": [
        708,
        1173
      ],
      "op": "JUMPI",
      "path": "13"
    },
    "1379": {
      "fn": "ECDSA._throwError",
      "offset": [
        766,
        800
      ],
      "op": "PUSH1",
      "path": "13",
      "statement": 14,
      "value": "0x40"
    },
    "1381": {
      "fn": "ECDSA._throwError",
      "offset": [
        766,
        800
      ],
      "op": "MLOAD",
      "path": "13"
    },
    "1382": {
      "op": "PUSH3",
      "value": "0x461BCD"
    },
    "1386": {
      "op": "PUSH1",
      "value": "0xE5"
    },
    "1388": {
      "op": "SHL"
    },
    "1389": {
      "fn": "ECDSA._throwError",
      "offset": [
        766,
        800
      ],
      "op": "DUP2",
      "path": "13"
    },
    "1390": {
      "fn": "ECDSA._throwError",
      "offset": [
        766,
        800
      ],
      "op": "MSTORE",
      "path": "13"
    },
    "1391": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "1393": {
      "fn": "ECDSA._throwError",
      "offset": [
        766,
        800
      ],
      "op": "PUSH1",
      "path": "13",
      "value": "0x4"
    },
    "1395": {
      "fn": "ECDSA._throwError",
      "offset": [
        766,
        800
      ],
      "op": "DUP3",
      "path": "13"
    },
    "1396": {
      "fn": "ECDSA._throwError",
      "offset": [
        766,
        800
      ],
      "op": "ADD",
      "path": "13"
    },
    "1397": {
      "op": "MSTORE"
    },
    "1398": {
      "op": "PUSH1",
      "value": "0x18"
    },
    "1400": {
      "op": "PUSH1",
      "value": "0x24"
    },
    "1402": {
      "op": "DUP3"
    },
    "1403": {
      "op": "ADD"
    },
    "1404": {
      "op": "MSTORE"
    },
    "1405": {
      "op": "PUSH32",
      "value": "0x45434453413A20696E76616C6964207369676E61747572650000000000000000"
    },
    "1438": {
      "op": "PUSH1",
      "value": "0x44"
    },
    "1440": {
      "op": "DUP3"
    },
    "1441": {
      "op": "ADD"
    },
    "1442": {
      "op": "MSTORE"
    },
    "1443": {
      "op": "PUSH1",
      "value": "0x64"
    },
    "1445": {
      "op": "ADD"
    },
    "1446": {
      "fn": "ECDSA._throwError",
      "offset": [
        766,
        800
      ],
      "op": "PUSH2",
      "path": "13",
      "value": "0x2D1"
    },
    "1449": {
      "op": "JUMP"
    },
    "1450": {
      "fn": "ECDSA._throwError",
      "offset": [
        708,
        1173
      ],
      "op": "JUMPDEST",
      "path": "13"
    },
    "1451": {
      "fn": "ECDSA._throwError",
      "offset": [
        830,
        865
      ],
      "op": "PUSH1",
      "path": "13",
      "value": "0x2"
    },
    "1453": {
      "fn": "ECDSA._throwError",
      "offset": [
        821,
        826
      ],
      "op": "DUP2",
      "path": "13"
    },
    "1454": {
      "fn": "ECDSA._throwError",
      "offset": [
        821,
        865
      ],
      "op": "PUSH1",
      "path": "13",
      "value": "0x4"
    },
    "1456": {
      "fn": "ECDSA._throwError",
      "offset": [
        821,
        865
      ],
      "op": "DUP2",
      "path": "13"
    },
    "1457": {
      "fn": "ECDSA._throwError",
      "offset": [
        821,
        865
      ],
      "op": "GT",
      "path": "13"
    },
    "1458": {
      "fn": "ECDSA._throwError",
      "offset": [
        821,
        865
      ],
      "op": "ISZERO",
      "path": "13"
    },
    "1459": {
      "fn": "ECDSA._throwError",
      "offset": [
        821,
        865
      ],
      "op": "PUSH2",
      "path": "13",
      "value": "0x5CC"
    },
    "1462": {
      "fn": "ECDSA._throwError",
      "offset": [
        821,
        865
      ],
      "op": "JUMPI",
      "path": "13"
    },
    "1463": {
      "op": "PUSH4",
      "value": "0x4E487B71"
    },
    "1468": {
      "op": "PUSH1",
      "value": "0xE0"
    },
    "1470": {
      "op": "SHL"
    },
    "1471": {
      "fn": "ECDSA._throwError",
      "offset": [
        821,
        865
      ],
      "op": "PUSH1",
      "path": "13",
      "value": "0x0"
    },
    "1473": {
      "fn": "ECDSA._throwError",
      "offset": [
        821,
        865
      ],
      "op": "MSTORE",
      "path": "13"
    },
    "1474": {
      "fn": "ECDSA._throwError",
      "offset": [
        821,
        865
      ],
      "op": "PUSH1",
      "path": "13",
      "value": "0x21"
    },
    "1476": {
      "fn": "ECDSA._throwError",
      "offset": [
        821,
        865
      ],
      "op": "PUSH1",
      "path": "13",
      "value": "0x4"
    },
    "1478": {
      "fn": "ECDSA._throwError",
      "offset": [
        821,
        865
      ],
      "op": "MSTORE",
      "path": "13"
    },
    "1479": {
      "fn": "ECDSA._throwError",
      "offset": [
        821,
        865
      ],
      "op": "PUSH1",
      "path": "13",
      "value": "0x24"
    },
    "1481": {
      "fn": "ECDSA._throwError",
      "offset": [
        821,
        865
      ],
      "op": "PUSH1",
      "path": "13",
      "value": "0x0"
    },
    "1483": {
      "fn": "ECDSA._throwError",
      "offset": [
        821,
        865
      ],
      "op": "REVERT",
      "path": "13"
    },
    "1484": {
      "fn": "ECDSA._throwError",
      "offset": [
        821,
        865
      ],
      "op": "JUMPDEST",
      "path": "13"
    },
    "1485": {
      "branch": 27,
      "fn": "ECDSA._throwError",
      "offset": [
        821,
        865
      ],
      "op": "EQ",
      "path": "13"
    },
    "1486": {
      "fn": "ECDSA._throwError",
      "offset": [
        817,
        1173
      ],
      "op": "ISZERO",
      "path": "13"
    },
    "1487": {
      "fn": "ECDSA._throwError",
      "offset": [
        817,
        1173
      ],
      "op": "PUSH2",
      "path": "13",
      "value": "0x61A"
    },
    "1490": {
      "branch": 27,
      "fn": "ECDSA._throwError",
      "offset": [
        817,
        1173
      ],
      "op": "JUMPI",
      "path": "13"
    },
    "1491": {
      "fn": "ECDSA._throwError",
      "offset": [
        881,
        922
      ],
      "op": "PUSH1",
      "path": "13",
      "statement": 15,
      "value": "0x40"
    },
    "1493": {
      "fn": "ECDSA._throwError",
      "offset": [
        881,
        922
      ],
      "op": "MLOAD",
      "path": "13"
    },
    "1494": {
      "op": "PUSH3",
      "value": "0x461BCD"
    },
    "1498": {
      "op": "PUSH1",
      "value": "0xE5"
    },
    "1500": {
      "op": "SHL"
    },
    "1501": {
      "fn": "ECDSA._throwError",
      "offset": [
        881,
        922
      ],
      "op": "DUP2",
      "path": "13"
    },
    "1502": {
      "fn": "ECDSA._throwError",
      "offset": [
        881,
        922
      ],
      "op": "MSTORE",
      "path": "13"
    },
    "1503": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "1505": {
      "fn": "ECDSA._throwError",
      "offset": [
        881,
        922
      ],
      "op": "PUSH1",
      "path": "13",
      "value": "0x4"
    },
    "1507": {
      "fn": "ECDSA._throwError",
      "offset": [
        881,
        922
      ],
      "op": "DUP3",
      "path": "13"
    },
    "1508": {
      "fn": "ECDSA._throwError",
      "offset": [
        881,
        922
      ],
      "op": "ADD",
      "path": "13"
    },
    "1509": {
      "op": "MSTORE"
    },
    "1510": {
      "op": "PUSH1",
      "value": "0x1F"
    },
    "1512": {
      "op": "PUSH1",
      "value": "0x24"
    },
    "1514": {
      "op": "DUP3"
    },
    "1515": {
      "op": "ADD"
    },
    "1516": {
      "op": "MSTORE"
    },
    "1517": {
      "op": "PUSH32",
      "value": "0x45434453413A20696E76616C6964207369676E6174757265206C656E67746800"
    },
    "1550": {
      "op": "PUSH1",
      "value": "0x44"
    },
    "1552": {
      "op": "DUP3"
    },
    "1553": {
      "op": "ADD"
    },
    "1554": {
      "op": "MSTORE"
    },
    "1555": {
      "op": "PUSH1",
      "value": "0x64"
    },
    "1557": {
      "op": "ADD"
    },
    "1558": {
      "fn": "ECDSA._throwError",
      "offset": [
        881,
        922
      ],
      "op": "PUSH2",
      "path": "13",
      "value": "0x2D1"
    },
    "1561": {
      "op": "JUMP"
    },
    "1562": {
      "fn": "ECDSA._throwError",
      "offset": [
        817,
        1173
      ],
      "op": "JUMPDEST",
      "path": "13"
    },
    "1563": {
      "fn": "ECDSA._throwError",
      "offset": [
        952,
        982
      ],
      "op": "PUSH1",
      "path": "13",
      "value": "0x3"
    },
    "1565": {
      "fn": "ECDSA._throwError",
      "offset": [
        943,
        948
      ],
      "op": "DUP2",
      "path": "13"
    },
    "1566": {
      "fn": "ECDSA._throwError",
      "offset": [
        943,
        982
      ],
      "op": "PUSH1",
      "path": "13",
      "value": "0x4"
    },
    "1568": {
      "fn": "ECDSA._throwError",
      "offset": [
        943,
        982
      ],
      "op": "DUP2",
      "path": "13"
    },
    "1569": {
      "fn": "ECDSA._throwError",
      "offset": [
        943,
        982
      ],
      "op": "GT",
      "path": "13"
    },
    "1570": {
      "fn": "ECDSA._throwError",
      "offset": [
        943,
        982
      ],
      "op": "ISZERO",
      "path": "13"
    },
    "1571": {
      "fn": "ECDSA._throwError",
      "offset": [
        943,
        982
      ],
      "op": "PUSH2",
      "path": "13",
      "value": "0x63C"
    },
    "1574": {
      "fn": "ECDSA._throwError",
      "offset": [
        943,
        982
      ],
      "op": "JUMPI",
      "path": "13"
    },
    "1575": {
      "op": "PUSH4",
      "value": "0x4E487B71"
    },
    "1580": {
      "op": "PUSH1",
      "value": "0xE0"
    },
    "1582": {
      "op": "SHL"
    },
    "1583": {
      "fn": "ECDSA._throwError",
      "offset": [
        943,
        982
      ],
      "op": "PUSH1",
      "path": "13",
      "value": "0x0"
    },
    "1585": {
      "fn": "ECDSA._throwError",
      "offset": [
        943,
        982
      ],
      "op": "MSTORE",
      "path": "13"
    },
    "1586": {
      "fn": "ECDSA._throwError",
      "offset": [
        943,
        982
      ],
      "op": "PUSH1",
      "path": "13",
      "value": "0x21"
    },
    "1588": {
      "fn": "ECDSA._throwError",
      "offset": [
        943,
        982
      ],
      "op": "PUSH1",
      "path": "13",
      "value": "0x4"
    },
    "1590": {
      "fn": "ECDSA._throwError",
      "offset": [
        943,
        982
      ],
      "op": "MSTORE",
      "path": "13"
    },
    "1591": {
      "fn": "ECDSA._throwError",
      "offset": [
        943,
        982
      ],
      "op": "PUSH1",
      "path": "13",
      "value": "0x24"
    },
    "1593": {
      "fn": "ECDSA._throwError",
      "offset": [
        943,
        982
      ],
      "op": "PUSH1",
      "path": "13",
      "value": "0x0"
    },
    "1595": {
      "fn": "ECDSA._throwError",
      "offset": [
        943,
        982
      ],
      "op": "REVERT",
      "path": "13"
    },
    "1596": {
      "fn": "ECDSA._throwError",
      "offset": [
        943,
        982
      ],
      "op": "JUMPDEST",
      "path": "13"
    },
    "1597": {
      "branch": 28,
      "fn": "ECDSA._throwError",
      "offset": [
        943,
        982
      ],
      "op": "EQ",
      "path": "13"
    },
    "1598": {
      "fn": "ECDSA._throwError",
      "offset": [
        939,
        1173
      ],
      "op": "ISZERO",
      "path": "13"
    },
    "1599": {
      "fn": "ECDSA._throwError",
      "offset": [
        939,
        1173
      ],
      "op": "PUSH2",
      "path": "13",
      "value": "0x695"
    },
    "1602": {
      "branch": 28,
      "fn": "ECDSA._throwError",
      "offset": [
        939,
        1173
      ],
      "op": "JUMPI",
      "path": "13"
    },
    "1603": {
      "fn": "ECDSA._throwError",
      "offset": [
        998,
        1042
      ],
      "op": "PUSH1",
      "path": "13",
      "statement": 16,
      "value": "0x40"
    },
    "1605": {
      "fn": "ECDSA._throwError",
      "offset": [
        998,
        1042
      ],
      "op": "MLOAD",
      "path": "13"
    },
    "1606": {
      "op": "PUSH3",
      "value": "0x461BCD"
    },
    "1610": {
      "op": "PUSH1",
      "value": "0xE5"
    },
    "1612": {
      "op": "SHL"
    },
    "1613": {
      "fn": "ECDSA._throwError",
      "offset": [
        998,
        1042
      ],
      "op": "DUP2",
      "path": "13"
    },
    "1614": {
      "fn": "ECDSA._throwError",
      "offset": [
        998,
        1042
      ],
      "op": "MSTORE",
      "path": "13"
    },
    "1615": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "1617": {
      "fn": "ECDSA._throwError",
      "offset": [
        998,
        1042
      ],
      "op": "PUSH1",
      "path": "13",
      "value": "0x4"
    },
    "1619": {
      "fn": "ECDSA._throwError",
      "offset": [
        998,
        1042
      ],
      "op": "DUP3",
      "path": "13"
    },
    "1620": {
      "fn": "ECDSA._throwError",
      "offset": [
        998,
        1042
      ],
      "op": "ADD",
      "path": "13"
    },
    "1621": {
      "op": "MSTORE"
    },
    "1622": {
      "op": "PUSH1",
      "value": "0x22"
    },
    "1624": {
      "op": "PUSH1",
      "value": "0x24"
    },
    "1626": {
      "op": "DUP3"
    },
    "1627": {
      "op": "ADD"
    },
    "1628": {
      "op": "MSTORE"
    },
    "1629": {
      "op": "PUSH32",
      "value": "0x45434453413A20696E76616C6964207369676E6174757265202773272076616C"
    },
    "1662": {
      "op": "PUSH1",
      "value": "0x44"
    },
    "1664": {
      "op": "DUP3"
    },
    "1665": {
      "op": "ADD"
    },
    "1666": {
      "op": "MSTORE"
    },
    "1667": {
      "op": "PUSH2",
      "value": "0x7565"
    },
    "1670": {
      "op": "PUSH1",
      "value": "0xF0"
    },
    "1672": {
      "op": "SHL"
    },
    "1673": {
      "op": "PUSH1",
      "value": "0x64"
    },
    "1675": {
      "op": "DUP3"
    },
    "1676": {
      "op": "ADD"
    },
    "1677": {
      "op": "MSTORE"
    },
    "1678": {
      "op": "PUSH1",
      "value": "0x84"
    },
    "1680": {
      "op": "ADD"
    },
    "1681": {
      "fn": "ECDSA._throwError",
      "offset": [
        998,
        1042
      ],
      "op": "PUSH2",
      "path": "13",
      "value": "0x2D1"
    },
    "1684": {
      "op": "JUMP"
    },
    "1685": {
      "fn": "ECDSA._throwError",
      "offset": [
        939,
        1173
      ],
      "op": "JUMPDEST",
      "path": "13"
    },
    "1686": {
      "fn": "ECDSA._throwError",
      "offset": [
        1072,
        1102
      ],
      "op": "PUSH1",
      "path": "13",
      "value": "0x4"
    },
    "1688": {
      "fn": "ECDSA._throwError",
      "offset": [
        1063,
        1068
      ],
      "op": "DUP2",
      "path": "13"
    },
    "1689": {
      "fn": "ECDSA._throwError",
      "offset": [
        1063,
        1102
      ],
      "op": "PUSH1",
      "path": "13",
      "value": "0x4"
    },
    "1691": {
      "fn": "ECDSA._throwError",
      "offset": [
        1063,
        1102
      ],
      "op": "DUP2",
      "path": "13"
    },
    "1692": {
      "fn": "ECDSA._throwError",
      "offset": [
        1063,
        1102
      ],
      "op": "GT",
      "path": "13"
    },
    "1693": {
      "fn": "ECDSA._throwError",
      "offset": [
        1063,
        1102
      ],
      "op": "ISZERO",
      "path": "13"
    },
    "1694": {
      "fn": "ECDSA._throwError",
      "offset": [
        1063,
        1102
      ],
      "op": "PUSH2",
      "path": "13",
      "value": "0x6B7"
    },
    "1697": {
      "fn": "ECDSA._throwError",
      "offset": [
        1063,
        1102
      ],
      "op": "JUMPI",
      "path": "13"
    },
    "1698": {
      "op": "PUSH4",
      "value": "0x4E487B71"
    },
    "1703": {
      "op": "PUSH1",
      "value": "0xE0"
    },
    "1705": {
      "op": "SHL"
    },
    "1706": {
      "fn": "ECDSA._throwError",
      "offset": [
        1063,
        1102
      ],
      "op": "PUSH1",
      "path": "13",
      "value": "0x0"
    },
    "1708": {
      "fn": "ECDSA._throwError",
      "offset": [
        1063,
        1102
      ],
      "op": "MSTORE",
      "path": "13"
    },
    "1709": {
      "fn": "ECDSA._throwError",
      "offset": [
        1063,
        1102
      ],
      "op": "PUSH1",
      "path": "13",
      "value": "0x21"
    },
    "1711": {
      "fn": "ECDSA._throwError",
      "offset": [
        1063,
        1102
      ],
      "op": "PUSH1",
      "path": "13",
      "value": "0x4"
    },
    "1713": {
      "fn": "ECDSA._throwError",
      "offset": [
        1063,
        1102
      ],
      "op": "MSTORE",
      "path": "13"
    },
    "1714": {
      "fn": "ECDSA._throwError",
      "offset": [
        1063,
        1102
      ],
      "op": "PUSH1",
      "path": "13",
      "value": "0x24"
    },
    "1716": {
      "fn": "ECDSA._throwError",
      "offset": [
        1063,
        1102
      ],
      "op": "PUSH1",
      "path": "13",
      "value": "0x0"
    },
    "1718": {
      "fn": "ECDSA._throwError",
      "offset": [
        1063,
        1102
      ],
      "op": "REVERT",
      "path": "13"
    },
    "1719": {
      "fn": "ECDSA._throwError",
      "offset": [
        1063,
        1102
      ],
      "op": "JUMPDEST",
      "path": "13"
    },
    "1720": {
      "branch": 29,
      "fn": "ECDSA._throwError",
      "offset": [
        1063,
        1102
      ],
      "op": "EQ",
      "path": "13"
    },
    "1721": {
      "fn": "ECDSA._throwError",
      "offset": [
        1059,
        1173
      ],
      "op": "ISZERO",
      "path": "13"
    },
    "1722": {
      "fn": "ECDSA._throwError",
      "offset": [
        1059,
        1173
      ],
      "op": "PUSH2",
      "path": "13",
      "value": "0x710"
    },
    "1725": {
      "branch": 29,
      "fn": "ECDSA._throwError",
      "offset": [
        1059,
        1173
      ],
      "op": "JUMPI",
      "path": "13"
    },
    "1726": {
      "fn": "ECDSA._throwError",
      "offset": [
        1118,
        1162
      ],
      "op": "PUSH1",
      "path": "13",
      "statement": 17,
      "value": "0x40"
    },
    "1728": {
      "fn": "ECDSA._throwError",
      "offset": [
        1118,
        1162
      ],
      "op": "MLOAD",
      "path": "13"
    },
    "1729": {
      "op": "PUSH3",
      "value": "0x461BCD"
    },
    "1733": {
      "op": "PUSH1",
      "value": "0xE5"
    },
    "1735": {
      "op": "SHL"
    },
    "1736": {
      "fn": "ECDSA._throwError",
      "offset": [
        1118,
        1162
      ],
      "op": "DUP2",
      "path": "13"
    },
    "1737": {
      "fn": "ECDSA._throwError",
      "offset": [
        1118,
        1162
      ],
      "op": "MSTORE",
      "path": "13"
    },
    "1738": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "1740": {
      "fn": "ECDSA._throwError",
      "offset": [
        1118,
        1162
      ],
      "op": "PUSH1",
      "path": "13",
      "value": "0x4"
    },
    "1742": {
      "fn": "ECDSA._throwError",
      "offset": [
        1118,
        1162
      ],
      "op": "DUP3",
      "path": "13"
    },
    "1743": {
      "fn": "ECDSA._throwError",
      "offset": [
        1118,
        1162
      ],
      "op": "ADD",
      "path": "13"
    },
    "1744": {
      "op": "MSTORE"
    },
    "1745": {
      "op": "PUSH1",
      "value": "0x22"
    },
    "1747": {
      "op": "PUSH1",
      "value": "0x24"
    },
    "1749": {
      "op": "DUP3"
    },
    "1750": {
      "op": "ADD"
    },
    "1751": {
      "op": "MSTORE"
    },
    "1752": {
      "op": "PUSH32",
      "value": "0x45434453413A20696E76616C6964207369676E6174757265202776272076616C"
    },
    "1785": {
      "op": "PUSH1",
      "value": "0x44"
    },
    "1787": {
      "op": "DUP3"
    },
    "1788": {
      "op": "ADD"
    },
    "1789": {
      "op": "MSTORE"
    },
    "1790": {
      "op": "PUSH2",
      "value": "0x7565"
    },
    "1793": {
      "op": "PUSH1",
      "value": "0xF0"
    },
    "1795": {
      "op": "SHL"
    },
    "1796": {
      "op": "PUSH1",
      "value": "0x64"
    },
    "1798": {
      "op": "DUP3"
    },
    "1799": {
      "op": "ADD"
    },
    "1800": {
      "op": "MSTORE"
    },
    "1801": {
      "op": "PUSH1",
      "value": "0x84"
    },
    "1803": {
      "op": "ADD"
    },
    "1804": {
      "fn": "ECDSA._throwError",
      "offset": [
        1118,
        1162
      ],
      "op": "PUSH2",
      "path": "13",
      "value": "0x2D1"
    },
    "1807": {
      "op": "JUMP"
    },
    "1808": {
      "fn": "ECDSA._throwError",
      "offset": [
        1059,
        1173
      ],
      "op": "JUMPDEST",
      "path": "13"
    },
    "1809": {
      "fn": "ECDSA._throwError",
      "offset": [
        548,
        1179
      ],
      "op": "POP",
      "path": "13"
    },
    "1810": {
      "fn": "ECDSA._throwError",
      "jump": "o",
      "offset": [
        548,
        1179
      ],
      "op": "JUMP",
      "path": "13"
    },
    "1811": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        5167,
        6770
      ],
      "op": "JUMPDEST",
      "path": "13"
    },
    "1812": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        5293,
        5300
      ],
      "op": "PUSH1",
      "path": "13",
      "value": "0x0"
    },
    "1814": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        5293,
        5300
      ],
      "op": "DUP1",
      "path": "13"
    },
    "1815": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6217,
        6283
      ],
      "op": "PUSH32",
      "path": "13",
      "value": "0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0"
    },
    "1848": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6204,
        6283
      ],
      "op": "DUP4",
      "path": "13"
    },
    "1849": {
      "branch": 30,
      "fn": "ECDSA.tryRecover",
      "offset": [
        6204,
        6283
      ],
      "op": "GT",
      "path": "13"
    },
    "1850": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6200,
        6361
      ],
      "op": "ISZERO",
      "path": "13"
    },
    "1851": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6200,
        6361
      ],
      "op": "PUSH2",
      "path": "13",
      "value": "0x74A"
    },
    "1854": {
      "branch": 30,
      "fn": "ECDSA.tryRecover",
      "offset": [
        6200,
        6361
      ],
      "op": "JUMPI",
      "path": "13"
    },
    "1855": {
      "op": "POP"
    },
    "1856": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6315,
        6316
      ],
      "op": "PUSH1",
      "path": "13",
      "statement": 18,
      "value": "0x0"
    },
    "1858": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6315,
        6316
      ],
      "op": "SWAP1",
      "path": "13"
    },
    "1859": {
      "op": "POP"
    },
    "1860": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6319,
        6349
      ],
      "op": "PUSH1",
      "path": "13",
      "value": "0x3"
    },
    "1862": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6299,
        6350
      ],
      "op": "PUSH2",
      "path": "13",
      "value": "0x7F7"
    },
    "1865": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6299,
        6350
      ],
      "op": "JUMP",
      "path": "13"
    },
    "1866": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6200,
        6361
      ],
      "op": "JUMPDEST",
      "path": "13"
    },
    "1867": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6374,
        6375
      ],
      "op": "DUP5",
      "path": "13"
    },
    "1868": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6374,
        6381
      ],
      "op": "PUSH1",
      "path": "13",
      "value": "0xFF"
    },
    "1870": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6374,
        6381
      ],
      "op": "AND",
      "path": "13"
    },
    "1871": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6379,
        6381
      ],
      "op": "PUSH1",
      "path": "13",
      "value": "0x1B"
    },
    "1873": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6374,
        6381
      ],
      "op": "EQ",
      "path": "13"
    },
    "1874": {
      "branch": 31,
      "fn": "ECDSA.tryRecover",
      "offset": [
        6374,
        6381
      ],
      "op": "ISZERO",
      "path": "13"
    },
    "1875": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6374,
        6392
      ],
      "op": "DUP1",
      "path": "13"
    },
    "1876": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6374,
        6392
      ],
      "op": "ISZERO",
      "path": "13"
    },
    "1877": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6374,
        6392
      ],
      "op": "PUSH2",
      "path": "13",
      "value": "0x762"
    },
    "1880": {
      "branch": 31,
      "fn": "ECDSA.tryRecover",
      "offset": [
        6374,
        6392
      ],
      "op": "JUMPI",
      "path": "13"
    },
    "1881": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6374,
        6392
      ],
      "op": "POP",
      "path": "13"
    },
    "1882": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6385,
        6386
      ],
      "op": "DUP5",
      "path": "13"
    },
    "1883": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6385,
        6392
      ],
      "op": "PUSH1",
      "path": "13",
      "value": "0xFF"
    },
    "1885": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6385,
        6392
      ],
      "op": "AND",
      "path": "13"
    },
    "1886": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6390,
        6392
      ],
      "op": "PUSH1",
      "path": "13",
      "value": "0x1C"
    },
    "1888": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6385,
        6392
      ],
      "op": "EQ",
      "path": "13"
    },
    "1889": {
      "branch": 32,
      "fn": "ECDSA.tryRecover",
      "offset": [
        6385,
        6392
      ],
      "op": "ISZERO",
      "path": "13"
    },
    "1890": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6374,
        6392
      ],
      "op": "JUMPDEST",
      "path": "13"
    },
    "1891": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6370,
        6470
      ],
      "op": "ISZERO",
      "path": "13"
    },
    "1892": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6370,
        6470
      ],
      "op": "PUSH2",
      "path": "13",
      "value": "0x773"
    },
    "1895": {
      "branch": 32,
      "fn": "ECDSA.tryRecover",
      "offset": [
        6370,
        6470
      ],
      "op": "JUMPI",
      "path": "13"
    },
    "1896": {
      "op": "POP"
    },
    "1897": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6424,
        6425
      ],
      "op": "PUSH1",
      "path": "13",
      "statement": 19,
      "value": "0x0"
    },
    "1899": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6424,
        6425
      ],
      "op": "SWAP1",
      "path": "13"
    },
    "1900": {
      "op": "POP"
    },
    "1901": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6428,
        6458
      ],
      "op": "PUSH1",
      "path": "13",
      "value": "0x4"
    },
    "1903": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6408,
        6459
      ],
      "op": "PUSH2",
      "path": "13",
      "value": "0x7F7"
    },
    "1906": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6408,
        6459
      ],
      "op": "JUMP",
      "path": "13"
    },
    "1907": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6370,
        6470
      ],
      "op": "JUMPDEST",
      "path": "13"
    },
    "1908": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6581,
        6605
      ],
      "op": "PUSH1",
      "path": "13",
      "value": "0x40"
    },
    "1910": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6581,
        6605
      ],
      "op": "DUP1",
      "path": "13"
    },
    "1911": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6581,
        6605
      ],
      "op": "MLOAD",
      "path": "13"
    },
    "1912": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6564,
        6578
      ],
      "op": "PUSH1",
      "path": "13",
      "value": "0x0"
    },
    "1914": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6581,
        6605
      ],
      "op": "DUP1",
      "path": "13"
    },
    "1915": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6581,
        6605
      ],
      "op": "DUP3",
      "path": "13"
    },
    "1916": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6581,
        6605
      ],
      "op": "MSTORE",
      "path": "13"
    },
    "1917": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6581,
        6605
      ],
      "op": "PUSH1",
      "path": "13",
      "value": "0x20"
    },
    "1919": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6581,
        6605
      ],
      "op": "DUP3",
      "path": "13"
    },
    "1920": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6581,
        6605
      ],
      "op": "ADD",
      "path": "13"
    },
    "1921": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6581,
        6605
      ],
      "op": "DUP1",
      "path": "13"
    },
    "1922": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6581,
        6605
      ],
      "op": "DUP5",
      "path": "13"
    },
    "1923": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6581,
        6605
      ],
      "op": "MSTORE",
      "path": "13"
    },
    "1924": {
      "op": "DUP10"
    },
    "1925": {
      "op": "SWAP1"
    },
    "1926": {
      "op": "MSTORE"
    },
    "1927": {
      "op": "PUSH1",
      "value": "0xFF"
    },
    "1929": {
      "op": "DUP9"
    },
    "1930": {
      "op": "AND"
    },
    "1931": {
      "op": "SWAP3"
    },
    "1932": {
      "op": "DUP3"
    },
    "1933": {
      "op": "ADD"
    },
    "1934": {
      "op": "SWAP3"
    },
    "1935": {
      "op": "SWAP1"
    },
    "1936": {
      "op": "SWAP3"
    },
    "1937": {
      "op": "MSTORE"
    },
    "1938": {
      "op": "PUSH1",
      "value": "0x60"
    },
    "1940": {
      "op": "DUP2"
    },
    "1941": {
      "op": "ADD"
    },
    "1942": {
      "op": "DUP7"
    },
    "1943": {
      "op": "SWAP1"
    },
    "1944": {
      "op": "MSTORE"
    },
    "1945": {
      "op": "PUSH1",
      "value": "0x80"
    },
    "1947": {
      "op": "DUP2"
    },
    "1948": {
      "op": "ADD"
    },
    "1949": {
      "op": "DUP6"
    },
    "1950": {
      "op": "SWAP1"
    },
    "1951": {
      "op": "MSTORE"
    },
    "1952": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6581,
        6605
      ],
      "op": "PUSH1",
      "path": "13",
      "value": "0x1"
    },
    "1954": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6581,
        6605
      ],
      "op": "SWAP1",
      "path": "13"
    },
    "1955": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "1957": {
      "op": "ADD"
    },
    "1958": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6581,
        6605
      ],
      "op": "PUSH1",
      "path": "13",
      "value": "0x20"
    },
    "1960": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6581,
        6605
      ],
      "op": "PUSH1",
      "path": "13",
      "value": "0x40"
    },
    "1962": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6581,
        6605
      ],
      "op": "MLOAD",
      "path": "13"
    },
    "1963": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6581,
        6605
      ],
      "op": "PUSH1",
      "path": "13",
      "value": "0x20"
    },
    "1965": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6581,
        6605
      ],
      "op": "DUP2",
      "path": "13"
    },
    "1966": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6581,
        6605
      ],
      "op": "SUB",
      "path": "13"
    },
    "1967": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6581,
        6605
      ],
      "op": "SWAP1",
      "path": "13"
    },
    "1968": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6581,
        6605
      ],
      "op": "DUP1",
      "path": "13"
    },
    "1969": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6581,
        6605
      ],
      "op": "DUP5",
      "path": "13"
    },
    "1970": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6581,
        6605
      ],
      "op": "SUB",
      "path": "13"
    },
    "1971": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6581,
        6605
      ],
      "op": "SWAP1",
      "path": "13"
    },
    "1972": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6581,
        6605
      ],
      "op": "DUP6",
      "path": "13"
    },
    "1973": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6581,
        6605
      ],
      "op": "GAS",
      "path": "13"
    },
    "1974": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6581,
        6605
      ],
      "op": "STATICCALL",
      "path": "13"
    },
    "1975": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6581,
        6605
      ],
      "op": "ISZERO",
      "path": "13"
    },
    "1976": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6581,
        6605
      ],
      "op": "DUP1",
      "path": "13"
    },
    "1977": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6581,
        6605
      ],
      "op": "ISZERO",
      "path": "13"
    },
    "1978": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6581,
        6605
      ],
      "op": "PUSH2",
      "path": "13",
      "value": "0x7C7"
    },
    "1981": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6581,
        6605
      ],
      "op": "JUMPI",
      "path": "13"
    },
    "1982": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6581,
        6605
      ],
      "op": "RETURNDATASIZE",
      "path": "13"
    },
    "1983": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6581,
        6605
      ],
      "op": "PUSH1",
      "path": "13",
      "value": "0x0"
    },
    "1985": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6581,
        6605
      ],
      "op": "DUP1",
      "path": "13"
    },
    "1986": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6581,
        6605
      ],
      "op": "RETURNDATACOPY",
      "path": "13"
    },
    "1987": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6581,
        6605
      ],
      "op": "RETURNDATASIZE",
      "path": "13"
    },
    "1988": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6581,
        6605
      ],
      "op": "PUSH1",
      "path": "13",
      "value": "0x0"
    },
    "1990": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6581,
        6605
      ],
      "op": "REVERT",
      "path": "13"
    },
    "1991": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6581,
        6605
      ],
      "op": "JUMPDEST",
      "path": "13"
    },
    "1992": {
      "op": "POP"
    },
    "1993": {
      "op": "POP"
    },
    "1994": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6581,
        6605
      ],
      "op": "PUSH1",
      "path": "13",
      "value": "0x40"
    },
    "1996": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6581,
        6605
      ],
      "op": "MLOAD",
      "path": "13"
    },
    "1997": {
      "op": "PUSH1",
      "value": "0x1F"
    },
    "1999": {
      "op": "NOT"
    },
    "2000": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6581,
        6605
      ],
      "op": "ADD",
      "path": "13"
    },
    "2001": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6581,
        6605
      ],
      "op": "MLOAD",
      "path": "13"
    },
    "2002": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6581,
        6605
      ],
      "op": "SWAP2",
      "path": "13"
    },
    "2003": {
      "op": "POP"
    },
    "2004": {
      "op": "POP"
    },
    "2005": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "2007": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "2009": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "2011": {
      "op": "SHL"
    },
    "2012": {
      "op": "SUB"
    },
    "2013": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6619,
        6639
      ],
      "op": "DUP2",
      "path": "13"
    },
    "2014": {
      "branch": 33,
      "fn": "ECDSA.tryRecover",
      "offset": [
        6619,
        6639
      ],
      "op": "AND",
      "path": "13"
    },
    "2015": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6615,
        6716
      ],
      "op": "PUSH2",
      "path": "13",
      "value": "0x7F0"
    },
    "2018": {
      "branch": 33,
      "fn": "ECDSA.tryRecover",
      "offset": [
        6615,
        6716
      ],
      "op": "JUMPI",
      "path": "13"
    },
    "2019": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6671,
        6672
      ],
      "op": "PUSH1",
      "path": "13",
      "statement": 20,
      "value": "0x0"
    },
    "2021": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6675,
        6704
      ],
      "op": "PUSH1",
      "path": "13",
      "value": "0x1"
    },
    "2023": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6655,
        6705
      ],
      "op": "SWAP3",
      "path": "13"
    },
    "2024": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6655,
        6705
      ],
      "op": "POP",
      "path": "13"
    },
    "2025": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6655,
        6705
      ],
      "op": "SWAP3",
      "path": "13"
    },
    "2026": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6655,
        6705
      ],
      "op": "POP",
      "path": "13"
    },
    "2027": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6655,
        6705
      ],
      "op": "POP",
      "path": "13"
    },
    "2028": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6655,
        6705
      ],
      "op": "PUSH2",
      "path": "13",
      "value": "0x7F7"
    },
    "2031": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6655,
        6705
      ],
      "op": "JUMP",
      "path": "13"
    },
    "2032": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6615,
        6716
      ],
      "op": "JUMPDEST",
      "path": "13"
    },
    "2033": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6734,
        6740
      ],
      "op": "SWAP2",
      "path": "13",
      "statement": 21
    },
    "2034": {
      "op": "POP"
    },
    "2035": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6742,
        6762
      ],
      "op": "PUSH1",
      "path": "13",
      "value": "0x0"
    },
    "2037": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6742,
        6762
      ],
      "op": "SWAP1",
      "path": "13"
    },
    "2038": {
      "op": "POP"
    },
    "2039": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        5167,
        6770
      ],
      "op": "JUMPDEST",
      "path": "13"
    },
    "2040": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        5167,
        6770
      ],
      "op": "SWAP5",
      "path": "13"
    },
    "2041": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        5167,
        6770
      ],
      "op": "POP",
      "path": "13"
    },
    "2042": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        5167,
        6770
      ],
      "op": "SWAP5",
      "path": "13"
    },
    "2043": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        5167,
        6770
      ],
      "op": "SWAP3",
      "path": "13"
    },
    "2044": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        5167,
        6770
      ],
      "op": "POP",
      "path": "13"
    },
    "2045": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        5167,
        6770
      ],
      "op": "POP",
      "path": "13"
    },
    "2046": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        5167,
        6770
      ],
      "op": "POP",
      "path": "13"
    },
    "2047": {
      "fn": "ECDSA.tryRecover",
      "jump": "o",
      "offset": [
        5167,
        6770
      ],
      "op": "JUMP",
      "path": "13"
    },
    "2048": {
      "op": "JUMPDEST"
    },
    "2049": {
      "op": "DUP1"
    },
    "2050": {
      "op": "CALLDATALOAD"
    },
    "2051": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "2053": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "2055": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "2057": {
      "op": "SHL"
    },
    "2058": {
      "op": "SUB"
    },
    "2059": {
      "op": "DUP2"
    },
    "2060": {
      "op": "AND"
    },
    "2061": {
      "op": "DUP2"
    },
    "2062": {
      "op": "EQ"
    },
    "2063": {
      "op": "PUSH2",
      "value": "0x243"
    },
    "2066": {
      "op": "JUMPI"
    },
    "2067": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2069": {
      "op": "DUP1"
    },
    "2070": {
      "op": "REVERT"
    },
    "2071": {
      "op": "JUMPDEST"
    },
    "2072": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2074": {
      "op": "DUP1"
    },
    "2075": {
      "op": "DUP4"
    },
    "2076": {
      "op": "PUSH1",
      "value": "0x1F"
    },
    "2078": {
      "op": "DUP5"
    },
    "2079": {
      "op": "ADD"
    },
    "2080": {
      "op": "SLT"
    },
    "2081": {
      "op": "PUSH2",
      "value": "0x828"
    },
    "2084": {
      "op": "JUMPI"
    },
    "2085": {
      "op": "DUP2"
    },
    "2086": {
      "op": "DUP3"
    },
    "2087": {
      "op": "REVERT"
    },
    "2088": {
      "op": "JUMPDEST"
    },
    "2089": {
      "op": "POP"
    },
    "2090": {
      "op": "DUP2"
    },
    "2091": {
      "op": "CALLDATALOAD"
    },
    "2092": {
      "op": "PUSH8",
      "value": "0xFFFFFFFFFFFFFFFF"
    },
    "2101": {
      "op": "DUP2"
    },
    "2102": {
      "op": "GT"
    },
    "2103": {
      "op": "ISZERO"
    },
    "2104": {
      "op": "PUSH2",
      "value": "0x83F"
    },
    "2107": {
      "op": "JUMPI"
    },
    "2108": {
      "op": "DUP2"
    },
    "2109": {
      "op": "DUP3"
    },
    "2110": {
      "op": "REVERT"
    },
    "2111": {
      "op": "JUMPDEST"
    },
    "2112": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "2114": {
      "op": "DUP4"
    },
    "2115": {
      "op": "ADD"
    },
    "2116": {
      "op": "SWAP2"
    },
    "2117": {
      "op": "POP"
    },
    "2118": {
      "op": "DUP4"
    },
    "2119": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "2121": {
      "op": "DUP3"
    },
    "2122": {
      "op": "DUP6"
    },
    "2123": {
      "op": "ADD"
    },
    "2124": {
      "op": "ADD"
    },
    "2125": {
      "op": "GT"
    },
    "2126": {
      "op": "ISZERO"
    },
    "2127": {
      "op": "PUSH2",
      "value": "0x506"
    },
    "2130": {
      "op": "JUMPI"
    },
    "2131": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2133": {
      "op": "DUP1"
    },
    "2134": {
      "op": "REVERT"
    },
    "2135": {
      "op": "JUMPDEST"
    },
    "2136": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2138": {
      "op": "DUP1"
    },
    "2139": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2141": {
      "op": "DUP1"
    },
    "2142": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2144": {
      "op": "DUP1"
    },
    "2145": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2147": {
      "op": "DUP1"
    },
    "2148": {
      "op": "PUSH1",
      "value": "0xE0"
    },
    "2150": {
      "op": "DUP10"
    },
    "2151": {
      "op": "DUP12"
    },
    "2152": {
      "op": "SUB"
    },
    "2153": {
      "op": "SLT"
    },
    "2154": {
      "op": "ISZERO"
    },
    "2155": {
      "op": "PUSH2",
      "value": "0x872"
    },
    "2158": {
      "op": "JUMPI"
    },
    "2159": {
      "op": "DUP4"
    },
    "2160": {
      "op": "DUP5"
    },
    "2161": {
      "op": "REVERT"
    },
    "2162": {
      "op": "JUMPDEST"
    },
    "2163": {
      "op": "PUSH2",
      "value": "0x87B"
    },
    "2166": {
      "op": "DUP10"
    },
    "2167": {
      "op": "PUSH2",
      "value": "0x800"
    },
    "2170": {
      "jump": "i",
      "op": "JUMP"
    },
    "2171": {
      "op": "JUMPDEST"
    },
    "2172": {
      "op": "SWAP8"
    },
    "2173": {
      "op": "POP"
    },
    "2174": {
      "op": "PUSH2",
      "value": "0x889"
    },
    "2177": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "2179": {
      "op": "DUP11"
    },
    "2180": {
      "op": "ADD"
    },
    "2181": {
      "op": "PUSH2",
      "value": "0x800"
    },
    "2184": {
      "jump": "i",
      "op": "JUMP"
    },
    "2185": {
      "op": "JUMPDEST"
    },
    "2186": {
      "op": "SWAP7"
    },
    "2187": {
      "op": "POP"
    },
    "2188": {
      "op": "PUSH1",
      "value": "0x40"
    },
    "2190": {
      "op": "DUP10"
    },
    "2191": {
      "op": "ADD"
    },
    "2192": {
      "op": "CALLDATALOAD"
    },
    "2193": {
      "op": "SWAP6"
    },
    "2194": {
      "op": "POP"
    },
    "2195": {
      "op": "PUSH1",
      "value": "0x60"
    },
    "2197": {
      "op": "DUP10"
    },
    "2198": {
      "op": "ADD"
    },
    "2199": {
      "op": "CALLDATALOAD"
    },
    "2200": {
      "op": "SWAP5"
    },
    "2201": {
      "op": "POP"
    },
    "2202": {
      "op": "PUSH1",
      "value": "0x80"
    },
    "2204": {
      "op": "DUP10"
    },
    "2205": {
      "op": "ADD"
    },
    "2206": {
      "op": "CALLDATALOAD"
    },
    "2207": {
      "op": "SWAP4"
    },
    "2208": {
      "op": "POP"
    },
    "2209": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "2211": {
      "op": "DUP10"
    },
    "2212": {
      "op": "ADD"
    },
    "2213": {
      "op": "CALLDATALOAD"
    },
    "2214": {
      "op": "SWAP3"
    },
    "2215": {
      "op": "POP"
    },
    "2216": {
      "op": "PUSH1",
      "value": "0xC0"
    },
    "2218": {
      "op": "DUP10"
    },
    "2219": {
      "op": "ADD"
    },
    "2220": {
      "op": "CALLDATALOAD"
    },
    "2221": {
      "op": "PUSH8",
      "value": "0xFFFFFFFFFFFFFFFF"
    },
    "2230": {
      "op": "DUP2"
    },
    "2231": {
      "op": "GT"
    },
    "2232": {
      "op": "ISZERO"
    },
    "2233": {
      "op": "PUSH2",
      "value": "0x8C0"
    },
    "2236": {
      "op": "JUMPI"
    },
    "2237": {
      "op": "DUP3"
    },
    "2238": {
      "op": "DUP4"
    },
    "2239": {
      "op": "REVERT"
    },
    "2240": {
      "op": "JUMPDEST"
    },
    "2241": {
      "op": "PUSH2",
      "value": "0x8CC"
    },
    "2244": {
      "op": "DUP12"
    },
    "2245": {
      "op": "DUP3"
    },
    "2246": {
      "op": "DUP13"
    },
    "2247": {
      "op": "ADD"
    },
    "2248": {
      "op": "PUSH2",
      "value": "0x817"
    },
    "2251": {
      "jump": "i",
      "op": "JUMP"
    },
    "2252": {
      "op": "JUMPDEST"
    },
    "2253": {
      "op": "SWAP10"
    },
    "2254": {
      "op": "SWAP13"
    },
    "2255": {
      "op": "SWAP9"
    },
    "2256": {
      "op": "SWAP12"
    },
    "2257": {
      "op": "POP"
    },
    "2258": {
      "op": "SWAP7"
    },
    "2259": {
      "op": "SWAP10"
    },
    "2260": {
      "op": "POP"
    },
    "2261": {
      "op": "SWAP5"
    },
    "2262": {
      "op": "SWAP8"
    },
    "2263": {
      "op": "SWAP4"
    },
    "2264": {
      "op": "SWAP7"
    },
    "2265": {
      "op": "SWAP3"
    },
    "2266": {
      "op": "SWAP6"
    },
    "2267": {
      "op": "SWAP5"
    },
    "2268": {
      "op": "POP"
    },
    "2269": {
      "op": "POP"
    },
    "2270": {
      "op": "POP"
    },
    "2271": {
      "jump": "o",
      "op": "JUMP"
    },
    "2272": {
      "op": "JUMPDEST"
    },
    "2273": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2275": {
      "op": "DUP1"
    },
    "2276": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2278": {
      "op": "DUP1"
    },
    "2279": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2281": {
      "op": "DUP1"
    },
    "2282": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2284": {
      "op": "PUSH1",
      "value": "0xC0"
    },
    "2286": {
      "op": "DUP9"
    },
    "2287": {
      "op": "DUP11"
    },
    "2288": {
      "op": "SUB"
    },
    "2289": {
      "op": "SLT"
    },
    "2290": {
      "op": "ISZERO"
    },
    "2291": {
      "op": "PUSH2",
      "value": "0x8FA"
    },
    "2294": {
      "op": "JUMPI"
    },
    "2295": {
      "op": "DUP3"
    },
    "2296": {
      "op": "DUP4"
    },
    "2297": {
      "op": "REVERT"
    },
    "2298": {
      "op": "JUMPDEST"
    },
    "2299": {
      "op": "PUSH2",
      "value": "0x903"
    },
    "2302": {
      "op": "DUP9"
    },
    "2303": {
      "op": "PUSH2",
      "value": "0x800"
    },
    "2306": {
      "jump": "i",
      "op": "JUMP"
    },
    "2307": {
      "op": "JUMPDEST"
    },
    "2308": {
      "op": "SWAP7"
    },
    "2309": {
      "op": "POP"
    },
    "2310": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "2312": {
      "op": "DUP9"
    },
    "2313": {
      "op": "ADD"
    },
    "2314": {
      "op": "CALLDATALOAD"
    },
    "2315": {
      "op": "SWAP6"
    },
    "2316": {
      "op": "POP"
    },
    "2317": {
      "op": "PUSH1",
      "value": "0x40"
    },
    "2319": {
      "op": "DUP9"
    },
    "2320": {
      "op": "ADD"
    },
    "2321": {
      "op": "CALLDATALOAD"
    },
    "2322": {
      "op": "SWAP5"
    },
    "2323": {
      "op": "POP"
    },
    "2324": {
      "op": "PUSH1",
      "value": "0x60"
    },
    "2326": {
      "op": "DUP9"
    },
    "2327": {
      "op": "ADD"
    },
    "2328": {
      "op": "CALLDATALOAD"
    },
    "2329": {
      "op": "SWAP4"
    },
    "2330": {
      "op": "POP"
    },
    "2331": {
      "op": "PUSH1",
      "value": "0x80"
    },
    "2333": {
      "op": "DUP9"
    },
    "2334": {
      "op": "ADD"
    },
    "2335": {
      "op": "CALLDATALOAD"
    },
    "2336": {
      "op": "SWAP3"
    },
    "2337": {
      "op": "POP"
    },
    "2338": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "2340": {
      "op": "DUP9"
    },
    "2341": {
      "op": "ADD"
    },
    "2342": {
      "op": "CALLDATALOAD"
    },
    "2343": {
      "op": "PUSH8",
      "value": "0xFFFFFFFFFFFFFFFF"
    },
    "2352": {
      "op": "DUP2"
    },
    "2353": {
      "op": "GT"
    },
    "2354": {
      "op": "ISZERO"
    },
    "2355": {
      "op": "PUSH2",
      "value": "0x93A"
    },
    "2358": {
      "op": "JUMPI"
    },
    "2359": {
      "op": "DUP3"
    },
    "2360": {
      "op": "DUP4"
    },
    "2361": {
      "op": "REVERT"
    },
    "2362": {
      "op": "JUMPDEST"
    },
    "2363": {
      "op": "PUSH2",
      "value": "0x946"
    },
    "2366": {
      "op": "DUP11"
    },
    "2367": {
      "op": "DUP3"
    },
    "2368": {
      "op": "DUP12"
    },
    "2369": {
      "op": "ADD"
    },
    "2370": {
      "op": "PUSH2",
      "value": "0x817"
    },
    "2373": {
      "jump": "i",
      "op": "JUMP"
    },
    "2374": {
      "op": "JUMPDEST"
    },
    "2375": {
      "op": "SWAP9"
    },
    "2376": {
      "op": "SWAP12"
    },
    "2377": {
      "op": "SWAP8"
    },
    "2378": {
      "op": "SWAP11"
    },
    "2379": {
      "op": "POP"
    },
    "2380": {
      "op": "SWAP6"
    },
    "2381": {
      "op": "SWAP9"
    },
    "2382": {
      "op": "POP"
    },
    "2383": {
      "op": "SWAP4"
    },
    "2384": {
      "op": "SWAP7"
    },
    "2385": {
      "op": "SWAP3"
    },
    "2386": {
      "op": "SWAP6"
    },
    "2387": {
      "op": "SWAP3"
    },
    "2388": {
      "op": "SWAP4"
    },
    "2389": {
      "op": "POP"
    },
    "2390": {
      "op": "POP"
    },
    "2391": {
      "op": "POP"
    },
    "2392": {
      "jump": "o",
      "op": "JUMP"
    },
    "2393": {
      "op": "JUMPDEST"
    },
    "2394": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2396": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "2398": {
      "op": "DUP3"
    },
    "2399": {
      "op": "DUP5"
    },
    "2400": {
      "op": "SUB"
    },
    "2401": {
      "op": "SLT"
    },
    "2402": {
      "op": "ISZERO"
    },
    "2403": {
      "op": "PUSH2",
      "value": "0x96A"
    },
    "2406": {
      "op": "JUMPI"
    },
    "2407": {
      "op": "DUP1"
    },
    "2408": {
      "op": "DUP2"
    },
    "2409": {
      "op": "REVERT"
    },
    "2410": {
      "op": "JUMPDEST"
    },
    "2411": {
      "op": "POP"
    },
    "2412": {
      "op": "CALLDATALOAD"
    },
    "2413": {
      "op": "SWAP2"
    },
    "2414": {
      "op": "SWAP1"
    },
    "2415": {
      "op": "POP"
    },
    "2416": {
      "jump": "o",
      "op": "JUMP"
    },
    "2417": {
      "op": "JUMPDEST"
    },
    "2418": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2420": {
      "op": "DUP1"
    },
    "2421": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2423": {
      "op": "PUSH1",
      "value": "0x40"
    },
    "2425": {
      "op": "DUP5"
    },
    "2426": {
      "op": "DUP7"
    },
    "2427": {
      "op": "SUB"
    },
    "2428": {
      "op": "SLT"
    },
    "2429": {
      "op": "ISZERO"
    },
    "2430": {
      "op": "PUSH2",
      "value": "0x985"
    },
    "2433": {
      "op": "JUMPI"
    },
    "2434": {
      "op": "DUP3"
    },
    "2435": {
      "op": "DUP4"
    },
    "2436": {
      "op": "REVERT"
    },
    "2437": {
      "op": "JUMPDEST"
    },
    "2438": {
      "op": "DUP4"
    },
    "2439": {
      "op": "CALLDATALOAD"
    },
    "2440": {
      "op": "SWAP3"
    },
    "2441": {
      "op": "POP"
    },
    "2442": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "2444": {
      "op": "DUP5"
    },
    "2445": {
      "op": "ADD"
    },
    "2446": {
      "op": "CALLDATALOAD"
    },
    "2447": {
      "op": "PUSH8",
      "value": "0xFFFFFFFFFFFFFFFF"
    },
    "2456": {
      "op": "DUP2"
    },
    "2457": {
      "op": "GT"
    },
    "2458": {
      "op": "ISZERO"
    },
    "2459": {
      "op": "PUSH2",
      "value": "0x9A2"
    },
    "2462": {
      "op": "JUMPI"
    },
    "2463": {
      "op": "DUP3"
    },
    "2464": {
      "op": "DUP4"
    },
    "2465": {
      "op": "REVERT"
    },
    "2466": {
      "op": "JUMPDEST"
    },
    "2467": {
      "op": "PUSH2",
      "value": "0x9AE"
    },
    "2470": {
      "op": "DUP7"
    },
    "2471": {
      "op": "DUP3"
    },
    "2472": {
      "op": "DUP8"
    },
    "2473": {
      "op": "ADD"
    },
    "2474": {
      "op": "PUSH2",
      "value": "0x817"
    },
    "2477": {
      "jump": "i",
      "op": "JUMP"
    },
    "2478": {
      "op": "JUMPDEST"
    },
    "2479": {
      "op": "SWAP5"
    },
    "2480": {
      "op": "SWAP8"
    },
    "2481": {
      "op": "SWAP1"
    },
    "2482": {
      "op": "SWAP7"
    },
    "2483": {
      "op": "POP"
    },
    "2484": {
      "op": "SWAP4"
    },
    "2485": {
      "op": "SWAP5"
    },
    "2486": {
      "op": "POP"
    },
    "2487": {
      "op": "POP"
    },
    "2488": {
      "op": "POP"
    },
    "2489": {
      "op": "POP"
    },
    "2490": {
      "jump": "o",
      "op": "JUMP"
    },
    "2491": {
      "op": "JUMPDEST"
    },
    "2492": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2494": {
      "op": "DUP3"
    },
    "2495": {
      "op": "MLOAD"
    },
    "2496": {
      "op": "PUSH2",
      "value": "0x9CD"
    },
    "2499": {
      "op": "DUP2"
    },
    "2500": {
      "op": "DUP5"
    },
    "2501": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "2503": {
      "op": "DUP8"
    },
    "2504": {
      "op": "ADD"
    },
    "2505": {
      "op": "PUSH2",
      "value": "0xA39"
    },
    "2508": {
      "jump": "i",
      "op": "JUMP"
    },
    "2509": {
      "op": "JUMPDEST"
    },
    "2510": {
      "op": "SWAP2"
    },
    "2511": {
      "op": "SWAP1"
    },
    "2512": {
      "op": "SWAP2"
    },
    "2513": {
      "op": "ADD"
    },
    "2514": {
      "op": "SWAP3"
    },
    "2515": {
      "op": "SWAP2"
    },
    "2516": {
      "op": "POP"
    },
    "2517": {
      "op": "POP"
    },
    "2518": {
      "jump": "o",
      "op": "JUMP"
    },
    "2519": {
      "op": "JUMPDEST"
    },
    "2520": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2522": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "2524": {
      "op": "DUP3"
    },
    "2525": {
      "op": "MSTORE"
    },
    "2526": {
      "op": "DUP3"
    },
    "2527": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "2529": {
      "op": "DUP4"
    },
    "2530": {
      "op": "ADD"
    },
    "2531": {
      "op": "MSTORE"
    },
    "2532": {
      "op": "DUP3"
    },
    "2533": {
      "op": "DUP5"
    },
    "2534": {
      "op": "PUSH1",
      "value": "0x40"
    },
    "2536": {
      "op": "DUP5"
    },
    "2537": {
      "op": "ADD"
    },
    "2538": {
      "op": "CALLDATACOPY"
    },
    "2539": {
      "op": "DUP2"
    },
    "2540": {
      "op": "DUP4"
    },
    "2541": {
      "op": "ADD"
    },
    "2542": {
      "op": "PUSH1",
      "value": "0x40"
    },
    "2544": {
      "op": "SWAP1"
    },
    "2545": {
      "op": "DUP2"
    },
    "2546": {
      "op": "ADD"
    },
    "2547": {
      "op": "SWAP2"
    },
    "2548": {
      "op": "SWAP1"
    },
    "2549": {
      "op": "SWAP2"
    },
    "2550": {
      "op": "MSTORE"
    },
    "2551": {
      "op": "PUSH1",
      "value": "0x1F"
    },
    "2553": {
      "op": "SWAP1"
    },
    "2554": {
      "op": "SWAP3"
    },
    "2555": {
      "op": "ADD"
    },
    "2556": {
      "op": "PUSH1",
      "value": "0x1F"
    },
    "2558": {
      "op": "NOT"
    },
    "2559": {
      "op": "AND"
    },
    "2560": {
      "op": "ADD"
    },
    "2561": {
      "op": "ADD"
    },
    "2562": {
      "op": "SWAP2"
    },
    "2563": {
      "op": "SWAP1"
    },
    "2564": {
      "op": "POP"
    },
    "2565": {
      "jump": "o",
      "op": "JUMP"
    },
    "2566": {
      "op": "JUMPDEST"
    },
    "2567": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2569": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "2571": {
      "op": "DUP3"
    },
    "2572": {
      "op": "MSTORE"
    },
    "2573": {
      "op": "DUP3"
    },
    "2574": {
      "op": "MLOAD"
    },
    "2575": {
      "op": "DUP1"
    },
    "2576": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "2578": {
      "op": "DUP5"
    },
    "2579": {
      "op": "ADD"
    },
    "2580": {
      "op": "MSTORE"
    },
    "2581": {
      "op": "PUSH2",
      "value": "0xA25"
    },
    "2584": {
      "op": "DUP2"
    },
    "2585": {
      "op": "PUSH1",
      "value": "0x40"
    },
    "2587": {
      "op": "DUP6"
    },
    "2588": {
      "op": "ADD"
    },
    "2589": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "2591": {
      "op": "DUP8"
    },
    "2592": {
      "op": "ADD"
    },
    "2593": {
      "op": "PUSH2",
      "value": "0xA39"
    },
    "2596": {
      "jump": "i",
      "op": "JUMP"
    },
    "2597": {
      "op": "JUMPDEST"
    },
    "2598": {
      "op": "PUSH1",
      "value": "0x1F"
    },
    "2600": {
      "op": "ADD"
    },
    "2601": {
      "op": "PUSH1",
      "value": "0x1F"
    },
    "2603": {
      "op": "NOT"
    },
    "2604": {
      "op": "AND"
    },
    "2605": {
      "op": "SWAP2"
    },
    "2606": {
      "op": "SWAP1"
    },
    "2607": {
      "op": "SWAP2"
    },
    "2608": {
      "op": "ADD"
    },
    "2609": {
      "op": "PUSH1",
      "value": "0x40"
    },
    "2611": {
      "op": "ADD"
    },
    "2612": {
      "op": "SWAP3"
    },
    "2613": {
      "op": "SWAP2"
    },
    "2614": {
      "op": "POP"
    },
    "2615": {
      "op": "POP"
    },
    "2616": {
      "jump": "o",
      "op": "JUMP"
    },
    "2617": {
      "op": "JUMPDEST"
    },
    "2618": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2620": {
      "op": "JUMPDEST"
    },
    "2621": {
      "op": "DUP4"
    },
    "2622": {
      "op": "DUP2"
    },
    "2623": {
      "op": "LT"
    },
    "2624": {
      "op": "ISZERO"
    },
    "2625": {
      "op": "PUSH2",
      "value": "0xA54"
    },
    "2628": {
      "op": "JUMPI"
    },
    "2629": {
      "op": "DUP2"
    },
    "2630": {
      "op": "DUP2"
    },
    "2631": {
      "op": "ADD"
    },
    "2632": {
      "op": "MLOAD"
    },
    "2633": {
      "op": "DUP4"
    },
    "2634": {
      "op": "DUP3"
    },
    "2635": {
      "op": "ADD"
    },
    "2636": {
      "op": "MSTORE"
    },
    "2637": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "2639": {
      "op": "ADD"
    },
    "2640": {
      "op": "PUSH2",
      "value": "0xA3C"
    },
    "2643": {
      "op": "JUMP"
    },
    "2644": {
      "op": "JUMPDEST"
    },
    "2645": {
      "op": "DUP4"
    },
    "2646": {
      "op": "DUP2"
    },
    "2647": {
      "op": "GT"
    },
    "2648": {
      "op": "ISZERO"
    },
    "2649": {
      "op": "PUSH2",
      "value": "0xA63"
    },
    "2652": {
      "op": "JUMPI"
    },
    "2653": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2655": {
      "op": "DUP5"
    },
    "2656": {
      "op": "DUP5"
    },
    "2657": {
      "op": "ADD"
    },
    "2658": {
      "op": "MSTORE"
    },
    "2659": {
      "op": "JUMPDEST"
    },
    "2660": {
      "op": "POP"
    },
    "2661": {
      "op": "POP"
    },
    "2662": {
      "op": "POP"
    },
    "2663": {
      "op": "POP"
    },
    "2664": {
      "jump": "o",
      "op": "JUMP"
    }
  },
  "sha1": "cf76818b5e8022ebac834467a0c01491169ed5a8",
  "source": "// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\nimport \"./EIP712.sol\";\n\n\ncontract DepegMessageHelper is \n    EIP712\n{\n    // EIP-712 Depeg specifics\n    string public constant EIP712_DOMAIN_NAME = \"EtheriscDepeg\";\n    string public constant EIP712_DOMAIN_VERSION = \"1\";\n\n    string public constant EIP712_POLICY_TYPE = \"Policy(address wallet,uint256 protectedBalance,uint256 duration,uint256 bundleId,bytes32 signatureId)\";\n    bytes32 private constant EIP712_POLICY_TYPE_HASH = keccak256(abi.encodePacked(EIP712_POLICY_TYPE));\n\n    // tracking of signatures\n    mapping(bytes32 /* signature hash */ => bool /* used */) private _signatureIsUsed;\n\n\n    constructor()\n        EIP712(EIP712_DOMAIN_NAME, EIP712_DOMAIN_VERSION)\n    { }\n\n    function checkAndRegisterSignature (\n        address policyHolder,\n        address protectedWallet,\n        uint256 protectedBalance,\n        uint256 duration,\n        uint256 bundleId,\n        bytes32 signatureId,\n        bytes calldata signature\n    )\n        external \n    {\n        bytes32 signatureHash = keccak256(abi.encode(signature));\n        require(!_signatureIsUsed[signatureHash], \"ERROR:DMH-001:SIGNATURE_USED\");\n\n        address signer = getSignerFromDigestAndSignature(\n            protectedWallet,\n            protectedBalance,\n            duration,\n            bundleId,\n            signatureId,\n            signature);\n\n        require(policyHolder == signer, \"ERROR:DMH-002:SIGNATURE_INVALID\");\n\n        _signatureIsUsed[signatureHash] = true;\n    }\n\n    function getSignerFromDigestAndSignature(\n        address protectedWallet,\n        uint256 protectedBalance,\n        uint256 duration,\n        uint256 bundleId,\n        bytes32 signatureId,\n        bytes calldata signature\n    )\n        public\n        view\n        returns(address)\n    {\n        bytes32 digest = getDigest(\n                protectedWallet,\n                protectedBalance,\n                duration,\n                bundleId,\n                signatureId\n            );\n\n        return getSigner(digest, signature);\n    }\n\n\n    function getDigest(\n        address protectedWallet,\n        uint256 protectedBalance,\n        uint256 duration,\n        uint256 bundleId,\n        bytes32 signatureId\n    )\n        internal\n        view\n        returns(bytes32)\n    {\n        bytes32 structHash = keccak256(\n            abi.encode(\n                EIP712_POLICY_TYPE_HASH,\n                protectedWallet,\n                protectedBalance,\n                duration,\n                bundleId,\n                signatureId\n            )\n        );\n\n        return getTypedDataV4Hash(structHash);\n    }\n}\n",
  "sourceMap": "88:2549:51:-:0;;;667:79;;;;;;;;;-1:-1:-1;696:18:51;;;;;;;;;;;-1:-1:-1;;;696:18:51;;;;;;;716:21;;;;;;;;;;;-1:-1:-1;;;716:21:51;;;;508:12:54;;696:18:51;;716:21;508:12:54;;-1:-1:-1;;508:12:54;:::i;:::-;-1:-1:-1;530:18:54;;;;:8;;:18;;;;;:::i;:::-;-1:-1:-1;572:22:54;;;;;;;558:11;:36;621:25;;;;;604:14;:42;88:2549:51;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;88:2549:51;;;-1:-1:-1;88:2549:51;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:380:67;99:1;89:12;;146:1;136:12;;;157:2;;211:4;203:6;199:17;189:27;;157:2;264;256:6;253:14;233:18;230:38;227:2;;;310:10;305:3;301:20;298:1;291:31;345:4;342:1;335:15;373:4;370:1;363:15;227:2;;69:325;;;:::o;:::-;88:2549:51;;;;;;",
  "sourcePath": "contracts/DepegMessageHelper.sol",
  "type": "contract"
}