{
  "abi": [
    {
      "inputs": [],
      "name": "POLICY",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "QUERY",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "contracts",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "contractName",
          "type": "bytes32"
        }
      ],
      "name": "getContract",
      "outputs": [
        {
          "internalType": "address",
          "name": "moduleAddress",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "compromisedPolicyModuleAddress",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "originalQueryModuleAddress",
          "type": "address"
        }
      ],
      "name": "upgradeToV2",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "allSourcePaths": {
    "97": "contracts/test/TestRegistryCompromisedController.sol"
  },
  "ast": {
    "absolutePath": "contracts/test/TestRegistryCompromisedController.sol",
    "exportedSymbols": {
      "TestRegistryCompromisedController": [
        16881
      ]
    },
    "id": 16882,
    "license": "Apache-2.0",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 16830,
        "literals": [
          "solidity",
          "0.8",
          ".2"
        ],
        "nodeType": "PragmaDirective",
        "src": "39:22:97"
      },
      {
        "abstract": false,
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "fullyImplemented": true,
        "id": 16881,
        "linearizedBaseContracts": [
          16881
        ],
        "name": "TestRegistryCompromisedController",
        "nameLocation": "72:33:97",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": true,
            "functionSelector": "dadbccee",
            "id": 16836,
            "mutability": "constant",
            "name": "POLICY",
            "nameLocation": "137:6:97",
            "nodeType": "VariableDeclaration",
            "scope": 16881,
            "src": "113:50:97",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 16831,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "113:7:97",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": {
              "arguments": [
                {
                  "hexValue": "506f6c696379",
                  "id": 16834,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "string",
                  "lValueRequested": false,
                  "nodeType": "Literal",
                  "src": "154:8:97",
                  "typeDescriptions": {
                    "typeIdentifier": "t_stringliteral_f74795b92f70f3e669cc782c4d3eef2f287a644296402073b8566d4eabd6622a",
                    "typeString": "literal_string \"Policy\""
                  },
                  "value": "Policy"
                }
              ],
              "expression": {
                "argumentTypes": [
                  {
                    "typeIdentifier": "t_stringliteral_f74795b92f70f3e669cc782c4d3eef2f287a644296402073b8566d4eabd6622a",
                    "typeString": "literal_string \"Policy\""
                  }
                ],
                "id": 16833,
                "isConstant": false,
                "isLValue": false,
                "isPure": true,
                "lValueRequested": false,
                "nodeType": "ElementaryTypeNameExpression",
                "src": "146:7:97",
                "typeDescriptions": {
                  "typeIdentifier": "t_type$_t_bytes32_$",
                  "typeString": "type(bytes32)"
                },
                "typeName": {
                  "id": 16832,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "146:7:97",
                  "typeDescriptions": {}
                }
              },
              "id": 16835,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "typeConversion",
              "lValueRequested": false,
              "names": [],
              "nodeType": "FunctionCall",
              "src": "146:17:97",
              "tryCall": false,
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "functionSelector": "4f6fc0b1",
            "id": 16842,
            "mutability": "constant",
            "name": "QUERY",
            "nameLocation": "193:5:97",
            "nodeType": "VariableDeclaration",
            "scope": 16881,
            "src": "169:48:97",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 16837,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "169:7:97",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": {
              "arguments": [
                {
                  "hexValue": "5175657279",
                  "id": 16840,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "string",
                  "lValueRequested": false,
                  "nodeType": "Literal",
                  "src": "209:7:97",
                  "typeDescriptions": {
                    "typeIdentifier": "t_stringliteral_de27146501ae3a78760bc5f3cf670e34e42f94d4009fee9f620352506ade7ceb",
                    "typeString": "literal_string \"Query\""
                  },
                  "value": "Query"
                }
              ],
              "expression": {
                "argumentTypes": [
                  {
                    "typeIdentifier": "t_stringliteral_de27146501ae3a78760bc5f3cf670e34e42f94d4009fee9f620352506ade7ceb",
                    "typeString": "literal_string \"Query\""
                  }
                ],
                "id": 16839,
                "isConstant": false,
                "isLValue": false,
                "isPure": true,
                "lValueRequested": false,
                "nodeType": "ElementaryTypeNameExpression",
                "src": "201:7:97",
                "typeDescriptions": {
                  "typeIdentifier": "t_type$_t_bytes32_$",
                  "typeString": "type(bytes32)"
                },
                "typeName": {
                  "id": 16838,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "201:7:97",
                  "typeDescriptions": {}
                }
              },
              "id": 16841,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "typeConversion",
              "lValueRequested": false,
              "names": [],
              "nodeType": "FunctionCall",
              "src": "201:16:97",
              "tryCall": false,
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "visibility": "public"
          },
          {
            "constant": false,
            "functionSelector": "ec56a373",
            "id": 16846,
            "mutability": "mutable",
            "name": "contracts",
            "nameLocation": "259:9:97",
            "nodeType": "VariableDeclaration",
            "scope": 16881,
            "src": "224:44:97",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
              "typeString": "mapping(bytes32 => address)"
            },
            "typeName": {
              "id": 16845,
              "keyType": {
                "id": 16843,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "232:7:97",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "224:27:97",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                "typeString": "mapping(bytes32 => address)"
              },
              "valueType": {
                "id": 16844,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "243:7:97",
                "stateMutability": "nonpayable",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                }
              }
            },
            "visibility": "public"
          },
          {
            "body": {
              "id": 16859,
              "nodeType": "Block",
              "src": "392:56:97",
              "statements": [
                {
                  "expression": {
                    "id": 16857,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 16853,
                      "name": "moduleAddress",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16851,
                      "src": "402:13:97",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "baseExpression": {
                        "id": 16854,
                        "name": "contracts",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16846,
                        "src": "418:9:97",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                          "typeString": "mapping(bytes32 => address)"
                        }
                      },
                      "id": 16856,
                      "indexExpression": {
                        "id": 16855,
                        "name": "contractName",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16848,
                        "src": "428:12:97",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "418:23:97",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "402:39:97",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 16858,
                  "nodeType": "ExpressionStatement",
                  "src": "402:39:97"
                }
              ]
            },
            "functionSelector": "e16c7d98",
            "id": 16860,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getContract",
            "nameLocation": "284:11:97",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16849,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16848,
                  "mutability": "mutable",
                  "name": "contractName",
                  "nameLocation": "304:12:97",
                  "nodeType": "VariableDeclaration",
                  "scope": 16860,
                  "src": "296:20:97",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16847,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "296:7:97",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "295:22:97"
            },
            "returnParameters": {
              "id": 16852,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16851,
                  "mutability": "mutable",
                  "name": "moduleAddress",
                  "nameLocation": "373:13:97",
                  "nodeType": "VariableDeclaration",
                  "scope": 16860,
                  "src": "365:21:97",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 16850,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "365:7:97",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "364:23:97"
            },
            "scope": 16881,
            "src": "275:173:97",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 16879,
              "nodeType": "Block",
              "src": "595:123:97",
              "statements": [
                {
                  "expression": {
                    "id": 16871,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 16867,
                        "name": "contracts",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16846,
                        "src": "606:9:97",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                          "typeString": "mapping(bytes32 => address)"
                        }
                      },
                      "id": 16869,
                      "indexExpression": {
                        "id": 16868,
                        "name": "POLICY",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16836,
                        "src": "616:6:97",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "606:17:97",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 16870,
                      "name": "compromisedPolicyModuleAddress",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16862,
                      "src": "626:30:97",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "606:50:97",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 16872,
                  "nodeType": "ExpressionStatement",
                  "src": "606:50:97"
                },
                {
                  "expression": {
                    "id": 16877,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 16873,
                        "name": "contracts",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16846,
                        "src": "666:9:97",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                          "typeString": "mapping(bytes32 => address)"
                        }
                      },
                      "id": 16875,
                      "indexExpression": {
                        "id": 16874,
                        "name": "QUERY",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16842,
                        "src": "676:5:97",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "666:16:97",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 16876,
                      "name": "originalQueryModuleAddress",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16864,
                      "src": "685:26:97",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "666:45:97",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 16878,
                  "nodeType": "ExpressionStatement",
                  "src": "666:45:97"
                }
              ]
            },
            "functionSelector": "2bc0d7fb",
            "id": 16880,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "upgradeToV2",
            "nameLocation": "463:11:97",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16865,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16862,
                  "mutability": "mutable",
                  "name": "compromisedPolicyModuleAddress",
                  "nameLocation": "492:30:97",
                  "nodeType": "VariableDeclaration",
                  "scope": 16880,
                  "src": "484:38:97",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 16861,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "484:7:97",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16864,
                  "mutability": "mutable",
                  "name": "originalQueryModuleAddress",
                  "nameLocation": "541:26:97",
                  "nodeType": "VariableDeclaration",
                  "scope": 16880,
                  "src": "533:34:97",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 16863,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "533:7:97",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "474:99:97"
            },
            "returnParameters": {
              "id": 16866,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "595:0:97"
            },
            "scope": 16881,
            "src": "454:264:97",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          }
        ],
        "scope": 16882,
        "src": "63:657:97"
      }
    ],
    "src": "39:682:97"
  },
  "bytecode": "608060405234801561001057600080fd5b50610223806100206000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80632bc0d7fb1461005c5780634f6fc0b1146100eb578063dadbccee1461010d578063e16c7d981461011d578063ec56a3731461015e575b600080fd5b6100e961006a3660046101a3565b600060208190527ff51ccb208f64c7678632570548cd6ba9ff8006466ec703412c917b708a19c9e080546001600160a01b039485166001600160a01b03199182161790915564517565727960d81b9091527f4bbcc452808ec518cf1b5b4bb97d91d9d8d47960bbf45a7adab13b29ddca37538054929093169116179055565b005b6100fa64517565727960d81b81565b6040519081526020015b60405180910390f35b6100fa65506f6c69637960d01b81565b61014661012b3660046101d5565b6000908152602081905260409020546001600160a01b031690565b6040516001600160a01b039091168152602001610104565b61014661016c3660046101d5565b6000602081905290815260409020546001600160a01b031681565b80356001600160a01b038116811461019e57600080fd5b919050565b600080604083850312156101b5578182fd5b6101be83610187565b91506101cc60208401610187565b90509250929050565b6000602082840312156101e6578081fd5b503591905056fea264697066735822122045379b0042afd6e899ae655cf3ba84d1334c528e9fea19968349516807ccbb8e64736f6c63430008020033",
  "bytecodeSha1": "268899bb39f03285551fb7958890917e9c62147f",
  "compiler": {
    "evm_version": "istanbul",
    "optimizer": {
      "enabled": true,
      "runs": 200
    },
    "version": "0.8.2+commit.661d1103"
  },
  "contractName": "TestRegistryCompromisedController",
  "coverageMap": {
    "branches": {
      "97": {}
    },
    "statements": {
      "97": {
        "TestRegistryCompromisedController.getContract": {
          "2": [
            402,
            441
          ]
        },
        "TestRegistryCompromisedController.upgradeToV2": {
          "0": [
            606,
            656
          ],
          "1": [
            666,
            711
          ]
        }
      }
    }
  },
  "dependencies": [],
  "deployedBytecode": "608060405234801561001057600080fd5b50600436106100575760003560e01c80632bc0d7fb1461005c5780634f6fc0b1146100eb578063dadbccee1461010d578063e16c7d981461011d578063ec56a3731461015e575b600080fd5b6100e961006a3660046101a3565b600060208190527ff51ccb208f64c7678632570548cd6ba9ff8006466ec703412c917b708a19c9e080546001600160a01b039485166001600160a01b03199182161790915564517565727960d81b9091527f4bbcc452808ec518cf1b5b4bb97d91d9d8d47960bbf45a7adab13b29ddca37538054929093169116179055565b005b6100fa64517565727960d81b81565b6040519081526020015b60405180910390f35b6100fa65506f6c69637960d01b81565b61014661012b3660046101d5565b6000908152602081905260409020546001600160a01b031690565b6040516001600160a01b039091168152602001610104565b61014661016c3660046101d5565b6000602081905290815260409020546001600160a01b031681565b80356001600160a01b038116811461019e57600080fd5b919050565b600080604083850312156101b5578182fd5b6101be83610187565b91506101cc60208401610187565b90509250929050565b6000602082840312156101e6578081fd5b503591905056fea264697066735822122045379b0042afd6e899ae655cf3ba84d1334c528e9fea19968349516807ccbb8e64736f6c63430008020033",
  "deployedSourceMap": "63:657:97:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;454:264;;;;;;:::i;:::-;606:9;:17;;;;;:50;;-1:-1:-1;;;;;606:50:97;;;-1:-1:-1;;;;;;606:50:97;;;;;;;-1:-1:-1;;;666:16:97;;;;:45;;;;;;;;;;;454:264;;;169:48;;-1:-1:-1;;;169:48:97;;;;;1016:25:103;;;1004:2;989:18;169:48:97;;;;;;;;113:50;;-1:-1:-1;;;113:50:97;;275:173;;;;;;:::i;:::-;365:21;418:23;;;;;;;;;;;-1:-1:-1;;;;;418:23:97;;275:173;;;;-1:-1:-1;;;;;826:32:103;;;808:51;;796:2;781:18;275:173:97;763:102:103;224:44:97;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;224:44:97;;;14:173:103;82:20;;-1:-1:-1;;;;;131:31:103;;121:42;;111:2;;177:1;174;167:12;111:2;63:124;;;:::o;192:270::-;;;321:2;309:9;300:7;296:23;292:32;289:2;;;342:6;334;327:22;289:2;370:29;389:9;370:29;:::i;:::-;360:39;;418:38;452:2;441:9;437:18;418:38;:::i;:::-;408:48;;279:183;;;;;:::o;467:190::-;;579:2;567:9;558:7;554:23;550:32;547:2;;;600:6;592;585:22;547:2;-1:-1:-1;628:23:103;;537:120;-1:-1:-1;537:120:103:o",
  "language": "Solidity",
  "natspec": {
    "kind": "dev",
    "methods": {},
    "version": 1
  },
  "offset": [
    63,
    720
  ],
  "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x57 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x2BC0D7FB EQ PUSH2 0x5C JUMPI DUP1 PUSH4 0x4F6FC0B1 EQ PUSH2 0xEB JUMPI DUP1 PUSH4 0xDADBCCEE EQ PUSH2 0x10D JUMPI DUP1 PUSH4 0xE16C7D98 EQ PUSH2 0x11D JUMPI DUP1 PUSH4 0xEC56A373 EQ PUSH2 0x15E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE9 PUSH2 0x6A CALLDATASIZE PUSH1 0x4 PUSH2 0x1A3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH32 0xF51CCB208F64C7678632570548CD6BA9FF8006466EC703412C917B708A19C9E0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP5 DUP6 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP2 DUP3 AND OR SWAP1 SWAP2 SSTORE PUSH5 0x5175657279 PUSH1 0xD8 SHL SWAP1 SWAP2 MSTORE PUSH32 0x4BBCC452808EC518CF1B5B4BB97D91D9D8D47960BBF45A7ADAB13B29DDCA3753 DUP1 SLOAD SWAP3 SWAP1 SWAP4 AND SWAP2 AND OR SWAP1 SSTORE JUMP JUMPDEST STOP JUMPDEST PUSH2 0xFA PUSH5 0x5175657279 PUSH1 0xD8 SHL DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xFA PUSH6 0x506F6C696379 PUSH1 0xD0 SHL DUP2 JUMP JUMPDEST PUSH2 0x146 PUSH2 0x12B CALLDATASIZE PUSH1 0x4 PUSH2 0x1D5 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x104 JUMP JUMPDEST PUSH2 0x146 PUSH2 0x16C CALLDATASIZE PUSH1 0x4 PUSH2 0x1D5 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP2 SWAP1 MSTORE SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x19E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1B5 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x1BE DUP4 PUSH2 0x187 JUMP JUMPDEST SWAP2 POP PUSH2 0x1CC PUSH1 0x20 DUP5 ADD PUSH2 0x187 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1E6 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 GASLIMIT CALLDATACOPY SWAP12 STOP TIMESTAMP 0xAF 0xD6 0xE8 SWAP10 0xAE PUSH6 0x5CF3BA84D133 0x4C MSTORE DUP15 SWAP16 0xEA NOT SWAP7 DUP4 0x49 MLOAD PUSH9 0x7CCBB8E64736F6C63 NUMBER STOP ADDMOD MUL STOP CALLER ",
  "pcMap": {
    "0": {
      "offset": [
        63,
        720
      ],
      "op": "PUSH1",
      "path": "97",
      "value": "0x80"
    },
    "2": {
      "fn": null,
      "offset": [
        63,
        720
      ],
      "op": "PUSH1",
      "path": "97",
      "value": "0x40"
    },
    "4": {
      "fn": null,
      "offset": [
        63,
        720
      ],
      "op": "MSTORE",
      "path": "97"
    },
    "5": {
      "fn": null,
      "offset": [
        63,
        720
      ],
      "op": "CALLVALUE",
      "path": "97"
    },
    "6": {
      "fn": null,
      "offset": [
        63,
        720
      ],
      "op": "DUP1",
      "path": "97"
    },
    "7": {
      "fn": null,
      "offset": [
        63,
        720
      ],
      "op": "ISZERO",
      "path": "97"
    },
    "8": {
      "fn": null,
      "offset": [
        63,
        720
      ],
      "op": "PUSH2",
      "path": "97",
      "value": "0x10"
    },
    "11": {
      "fn": null,
      "offset": [
        63,
        720
      ],
      "op": "JUMPI",
      "path": "97"
    },
    "12": {
      "fn": null,
      "offset": [
        63,
        720
      ],
      "op": "PUSH1",
      "path": "97",
      "value": "0x0"
    },
    "14": {
      "fn": null,
      "offset": [
        63,
        720
      ],
      "op": "DUP1",
      "path": "97"
    },
    "15": {
      "dev": "Cannot send ether to nonpayable function",
      "fn": null,
      "offset": [
        63,
        720
      ],
      "op": "REVERT",
      "path": "97"
    },
    "16": {
      "fn": null,
      "offset": [
        63,
        720
      ],
      "op": "JUMPDEST",
      "path": "97"
    },
    "17": {
      "fn": null,
      "offset": [
        63,
        720
      ],
      "op": "POP",
      "path": "97"
    },
    "18": {
      "fn": null,
      "offset": [
        63,
        720
      ],
      "op": "PUSH1",
      "path": "97",
      "value": "0x4"
    },
    "20": {
      "fn": null,
      "offset": [
        63,
        720
      ],
      "op": "CALLDATASIZE",
      "path": "97"
    },
    "21": {
      "fn": null,
      "offset": [
        63,
        720
      ],
      "op": "LT",
      "path": "97"
    },
    "22": {
      "fn": null,
      "offset": [
        63,
        720
      ],
      "op": "PUSH2",
      "path": "97",
      "value": "0x57"
    },
    "25": {
      "fn": null,
      "offset": [
        63,
        720
      ],
      "op": "JUMPI",
      "path": "97"
    },
    "26": {
      "fn": null,
      "offset": [
        63,
        720
      ],
      "op": "PUSH1",
      "path": "97",
      "value": "0x0"
    },
    "28": {
      "fn": null,
      "offset": [
        63,
        720
      ],
      "op": "CALLDATALOAD",
      "path": "97"
    },
    "29": {
      "fn": null,
      "offset": [
        63,
        720
      ],
      "op": "PUSH1",
      "path": "97",
      "value": "0xE0"
    },
    "31": {
      "fn": null,
      "offset": [
        63,
        720
      ],
      "op": "SHR",
      "path": "97"
    },
    "32": {
      "fn": null,
      "offset": [
        63,
        720
      ],
      "op": "DUP1",
      "path": "97"
    },
    "33": {
      "fn": null,
      "offset": [
        63,
        720
      ],
      "op": "PUSH4",
      "path": "97",
      "value": "0x2BC0D7FB"
    },
    "38": {
      "fn": null,
      "offset": [
        63,
        720
      ],
      "op": "EQ",
      "path": "97"
    },
    "39": {
      "fn": null,
      "offset": [
        63,
        720
      ],
      "op": "PUSH2",
      "path": "97",
      "value": "0x5C"
    },
    "42": {
      "fn": null,
      "offset": [
        63,
        720
      ],
      "op": "JUMPI",
      "path": "97"
    },
    "43": {
      "fn": null,
      "offset": [
        63,
        720
      ],
      "op": "DUP1",
      "path": "97"
    },
    "44": {
      "fn": null,
      "offset": [
        63,
        720
      ],
      "op": "PUSH4",
      "path": "97",
      "value": "0x4F6FC0B1"
    },
    "49": {
      "fn": null,
      "offset": [
        63,
        720
      ],
      "op": "EQ",
      "path": "97"
    },
    "50": {
      "fn": null,
      "offset": [
        63,
        720
      ],
      "op": "PUSH2",
      "path": "97",
      "value": "0xEB"
    },
    "53": {
      "fn": null,
      "offset": [
        63,
        720
      ],
      "op": "JUMPI",
      "path": "97"
    },
    "54": {
      "fn": null,
      "offset": [
        63,
        720
      ],
      "op": "DUP1",
      "path": "97"
    },
    "55": {
      "fn": null,
      "offset": [
        63,
        720
      ],
      "op": "PUSH4",
      "path": "97",
      "value": "0xDADBCCEE"
    },
    "60": {
      "fn": null,
      "offset": [
        63,
        720
      ],
      "op": "EQ",
      "path": "97"
    },
    "61": {
      "fn": null,
      "offset": [
        63,
        720
      ],
      "op": "PUSH2",
      "path": "97",
      "value": "0x10D"
    },
    "64": {
      "fn": null,
      "offset": [
        63,
        720
      ],
      "op": "JUMPI",
      "path": "97"
    },
    "65": {
      "fn": null,
      "offset": [
        63,
        720
      ],
      "op": "DUP1",
      "path": "97"
    },
    "66": {
      "fn": null,
      "offset": [
        63,
        720
      ],
      "op": "PUSH4",
      "path": "97",
      "value": "0xE16C7D98"
    },
    "71": {
      "fn": null,
      "offset": [
        63,
        720
      ],
      "op": "EQ",
      "path": "97"
    },
    "72": {
      "fn": null,
      "offset": [
        63,
        720
      ],
      "op": "PUSH2",
      "path": "97",
      "value": "0x11D"
    },
    "75": {
      "fn": null,
      "offset": [
        63,
        720
      ],
      "op": "JUMPI",
      "path": "97"
    },
    "76": {
      "fn": null,
      "offset": [
        63,
        720
      ],
      "op": "DUP1",
      "path": "97"
    },
    "77": {
      "fn": null,
      "offset": [
        63,
        720
      ],
      "op": "PUSH4",
      "path": "97",
      "value": "0xEC56A373"
    },
    "82": {
      "fn": null,
      "offset": [
        63,
        720
      ],
      "op": "EQ",
      "path": "97"
    },
    "83": {
      "fn": null,
      "offset": [
        63,
        720
      ],
      "op": "PUSH2",
      "path": "97",
      "value": "0x15E"
    },
    "86": {
      "fn": null,
      "offset": [
        63,
        720
      ],
      "op": "JUMPI",
      "path": "97"
    },
    "87": {
      "fn": null,
      "offset": [
        63,
        720
      ],
      "op": "JUMPDEST",
      "path": "97"
    },
    "88": {
      "fn": null,
      "offset": [
        63,
        720
      ],
      "op": "PUSH1",
      "path": "97",
      "value": "0x0"
    },
    "90": {
      "fn": null,
      "offset": [
        63,
        720
      ],
      "op": "DUP1",
      "path": "97"
    },
    "91": {
      "first_revert": true,
      "fn": null,
      "offset": [
        63,
        720
      ],
      "op": "REVERT",
      "path": "97"
    },
    "92": {
      "fn": "TestRegistryCompromisedController.upgradeToV2",
      "offset": [
        454,
        718
      ],
      "op": "JUMPDEST",
      "path": "97"
    },
    "93": {
      "fn": "TestRegistryCompromisedController.upgradeToV2",
      "offset": [
        454,
        718
      ],
      "op": "PUSH2",
      "path": "97",
      "value": "0xE9"
    },
    "96": {
      "fn": "TestRegistryCompromisedController.upgradeToV2",
      "offset": [
        454,
        718
      ],
      "op": "PUSH2",
      "path": "97",
      "value": "0x6A"
    },
    "99": {
      "fn": "TestRegistryCompromisedController.upgradeToV2",
      "offset": [
        454,
        718
      ],
      "op": "CALLDATASIZE",
      "path": "97"
    },
    "100": {
      "fn": "TestRegistryCompromisedController.upgradeToV2",
      "offset": [
        454,
        718
      ],
      "op": "PUSH1",
      "path": "97",
      "value": "0x4"
    },
    "102": {
      "fn": "TestRegistryCompromisedController.upgradeToV2",
      "offset": [
        454,
        718
      ],
      "op": "PUSH2",
      "path": "97",
      "value": "0x1A3"
    },
    "105": {
      "fn": "TestRegistryCompromisedController.upgradeToV2",
      "jump": "i",
      "offset": [
        454,
        718
      ],
      "op": "JUMP",
      "path": "97"
    },
    "106": {
      "fn": "TestRegistryCompromisedController.upgradeToV2",
      "offset": [
        454,
        718
      ],
      "op": "JUMPDEST",
      "path": "97"
    },
    "107": {
      "fn": "TestRegistryCompromisedController.upgradeToV2",
      "offset": [
        606,
        615
      ],
      "op": "PUSH1",
      "path": "97",
      "statement": 0,
      "value": "0x0"
    },
    "109": {
      "fn": "TestRegistryCompromisedController.upgradeToV2",
      "offset": [
        606,
        623
      ],
      "op": "PUSH1",
      "path": "97",
      "value": "0x20"
    },
    "111": {
      "fn": "TestRegistryCompromisedController.upgradeToV2",
      "offset": [
        606,
        623
      ],
      "op": "DUP2",
      "path": "97"
    },
    "112": {
      "fn": "TestRegistryCompromisedController.upgradeToV2",
      "offset": [
        606,
        623
      ],
      "op": "SWAP1",
      "path": "97"
    },
    "113": {
      "fn": "TestRegistryCompromisedController.upgradeToV2",
      "offset": [
        606,
        623
      ],
      "op": "MSTORE",
      "path": "97"
    },
    "114": {
      "fn": "TestRegistryCompromisedController.upgradeToV2",
      "offset": [
        606,
        623
      ],
      "op": "PUSH32",
      "path": "97",
      "value": "0xF51CCB208F64C7678632570548CD6BA9FF8006466EC703412C917B708A19C9E0"
    },
    "147": {
      "fn": "TestRegistryCompromisedController.upgradeToV2",
      "offset": [
        606,
        656
      ],
      "op": "DUP1",
      "path": "97"
    },
    "148": {
      "fn": "TestRegistryCompromisedController.upgradeToV2",
      "offset": [
        606,
        656
      ],
      "op": "SLOAD",
      "path": "97"
    },
    "149": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "151": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "153": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "155": {
      "op": "SHL"
    },
    "156": {
      "op": "SUB"
    },
    "157": {
      "fn": "TestRegistryCompromisedController.upgradeToV2",
      "offset": [
        606,
        656
      ],
      "op": "SWAP5",
      "path": "97"
    },
    "158": {
      "fn": "TestRegistryCompromisedController.upgradeToV2",
      "offset": [
        606,
        656
      ],
      "op": "DUP6",
      "path": "97"
    },
    "159": {
      "fn": "TestRegistryCompromisedController.upgradeToV2",
      "offset": [
        606,
        656
      ],
      "op": "AND",
      "path": "97"
    },
    "160": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "162": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "164": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "166": {
      "op": "SHL"
    },
    "167": {
      "op": "SUB"
    },
    "168": {
      "op": "NOT"
    },
    "169": {
      "fn": "TestRegistryCompromisedController.upgradeToV2",
      "offset": [
        606,
        656
      ],
      "op": "SWAP2",
      "path": "97"
    },
    "170": {
      "fn": "TestRegistryCompromisedController.upgradeToV2",
      "offset": [
        606,
        656
      ],
      "op": "DUP3",
      "path": "97"
    },
    "171": {
      "fn": "TestRegistryCompromisedController.upgradeToV2",
      "offset": [
        606,
        656
      ],
      "op": "AND",
      "path": "97"
    },
    "172": {
      "fn": "TestRegistryCompromisedController.upgradeToV2",
      "offset": [
        606,
        656
      ],
      "op": "OR",
      "path": "97"
    },
    "173": {
      "fn": "TestRegistryCompromisedController.upgradeToV2",
      "offset": [
        606,
        656
      ],
      "op": "SWAP1",
      "path": "97"
    },
    "174": {
      "fn": "TestRegistryCompromisedController.upgradeToV2",
      "offset": [
        606,
        656
      ],
      "op": "SWAP2",
      "path": "97"
    },
    "175": {
      "fn": "TestRegistryCompromisedController.upgradeToV2",
      "offset": [
        606,
        656
      ],
      "op": "SSTORE",
      "path": "97"
    },
    "176": {
      "op": "PUSH5",
      "value": "0x5175657279"
    },
    "182": {
      "op": "PUSH1",
      "value": "0xD8"
    },
    "184": {
      "op": "SHL"
    },
    "185": {
      "fn": "TestRegistryCompromisedController.upgradeToV2",
      "offset": [
        666,
        682
      ],
      "op": "SWAP1",
      "path": "97",
      "statement": 1
    },
    "186": {
      "fn": "TestRegistryCompromisedController.upgradeToV2",
      "offset": [
        666,
        682
      ],
      "op": "SWAP2",
      "path": "97"
    },
    "187": {
      "fn": "TestRegistryCompromisedController.upgradeToV2",
      "offset": [
        666,
        682
      ],
      "op": "MSTORE",
      "path": "97"
    },
    "188": {
      "fn": "TestRegistryCompromisedController.upgradeToV2",
      "offset": [
        666,
        682
      ],
      "op": "PUSH32",
      "path": "97",
      "value": "0x4BBCC452808EC518CF1B5B4BB97D91D9D8D47960BBF45A7ADAB13B29DDCA3753"
    },
    "221": {
      "fn": "TestRegistryCompromisedController.upgradeToV2",
      "offset": [
        666,
        711
      ],
      "op": "DUP1",
      "path": "97"
    },
    "222": {
      "fn": "TestRegistryCompromisedController.upgradeToV2",
      "offset": [
        666,
        711
      ],
      "op": "SLOAD",
      "path": "97"
    },
    "223": {
      "fn": "TestRegistryCompromisedController.upgradeToV2",
      "offset": [
        666,
        711
      ],
      "op": "SWAP3",
      "path": "97"
    },
    "224": {
      "fn": "TestRegistryCompromisedController.upgradeToV2",
      "offset": [
        666,
        711
      ],
      "op": "SWAP1",
      "path": "97"
    },
    "225": {
      "fn": "TestRegistryCompromisedController.upgradeToV2",
      "offset": [
        666,
        711
      ],
      "op": "SWAP4",
      "path": "97"
    },
    "226": {
      "fn": "TestRegistryCompromisedController.upgradeToV2",
      "offset": [
        666,
        711
      ],
      "op": "AND",
      "path": "97"
    },
    "227": {
      "fn": "TestRegistryCompromisedController.upgradeToV2",
      "offset": [
        666,
        711
      ],
      "op": "SWAP2",
      "path": "97"
    },
    "228": {
      "fn": "TestRegistryCompromisedController.upgradeToV2",
      "offset": [
        666,
        711
      ],
      "op": "AND",
      "path": "97"
    },
    "229": {
      "fn": "TestRegistryCompromisedController.upgradeToV2",
      "offset": [
        666,
        711
      ],
      "op": "OR",
      "path": "97"
    },
    "230": {
      "fn": "TestRegistryCompromisedController.upgradeToV2",
      "offset": [
        666,
        711
      ],
      "op": "SWAP1",
      "path": "97"
    },
    "231": {
      "fn": "TestRegistryCompromisedController.upgradeToV2",
      "offset": [
        666,
        711
      ],
      "op": "SSTORE",
      "path": "97"
    },
    "232": {
      "fn": "TestRegistryCompromisedController.upgradeToV2",
      "offset": [
        454,
        718
      ],
      "op": "JUMP",
      "path": "97"
    },
    "233": {
      "fn": "TestRegistryCompromisedController.upgradeToV2",
      "offset": [
        454,
        718
      ],
      "op": "JUMPDEST",
      "path": "97"
    },
    "234": {
      "fn": "TestRegistryCompromisedController.upgradeToV2",
      "offset": [
        454,
        718
      ],
      "op": "STOP",
      "path": "97"
    },
    "235": {
      "offset": [
        169,
        217
      ],
      "op": "JUMPDEST",
      "path": "97"
    },
    "236": {
      "fn": "TestRegistryCompromisedController.upgradeToV2",
      "offset": [
        169,
        217
      ],
      "op": "PUSH2",
      "path": "97",
      "value": "0xFA"
    },
    "239": {
      "op": "PUSH5",
      "value": "0x5175657279"
    },
    "245": {
      "op": "PUSH1",
      "value": "0xD8"
    },
    "247": {
      "op": "SHL"
    },
    "248": {
      "offset": [
        169,
        217
      ],
      "op": "DUP2",
      "path": "97"
    },
    "249": {
      "fn": "TestRegistryCompromisedController.upgradeToV2",
      "offset": [
        169,
        217
      ],
      "op": "JUMP",
      "path": "97"
    },
    "250": {
      "fn": "TestRegistryCompromisedController.upgradeToV2",
      "offset": [
        169,
        217
      ],
      "op": "JUMPDEST",
      "path": "97"
    },
    "251": {
      "fn": "TestRegistryCompromisedController.upgradeToV2",
      "offset": [
        169,
        217
      ],
      "op": "PUSH1",
      "path": "97",
      "value": "0x40"
    },
    "253": {
      "fn": "TestRegistryCompromisedController.upgradeToV2",
      "offset": [
        169,
        217
      ],
      "op": "MLOAD",
      "path": "97"
    },
    "254": {
      "op": "SWAP1"
    },
    "255": {
      "op": "DUP2"
    },
    "256": {
      "op": "MSTORE"
    },
    "257": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "259": {
      "op": "ADD"
    },
    "260": {
      "offset": [
        169,
        217
      ],
      "op": "JUMPDEST",
      "path": "97"
    },
    "261": {
      "fn": "TestRegistryCompromisedController.upgradeToV2",
      "offset": [
        169,
        217
      ],
      "op": "PUSH1",
      "path": "97",
      "value": "0x40"
    },
    "263": {
      "fn": "TestRegistryCompromisedController.upgradeToV2",
      "offset": [
        169,
        217
      ],
      "op": "MLOAD",
      "path": "97"
    },
    "264": {
      "fn": "TestRegistryCompromisedController.upgradeToV2",
      "offset": [
        169,
        217
      ],
      "op": "DUP1",
      "path": "97"
    },
    "265": {
      "fn": "TestRegistryCompromisedController.upgradeToV2",
      "offset": [
        169,
        217
      ],
      "op": "SWAP2",
      "path": "97"
    },
    "266": {
      "fn": "TestRegistryCompromisedController.upgradeToV2",
      "offset": [
        169,
        217
      ],
      "op": "SUB",
      "path": "97"
    },
    "267": {
      "fn": "TestRegistryCompromisedController.upgradeToV2",
      "offset": [
        169,
        217
      ],
      "op": "SWAP1",
      "path": "97"
    },
    "268": {
      "fn": "TestRegistryCompromisedController.upgradeToV2",
      "offset": [
        169,
        217
      ],
      "op": "RETURN",
      "path": "97"
    },
    "269": {
      "offset": [
        113,
        163
      ],
      "op": "JUMPDEST",
      "path": "97"
    },
    "270": {
      "fn": "TestRegistryCompromisedController.upgradeToV2",
      "offset": [
        113,
        163
      ],
      "op": "PUSH2",
      "path": "97",
      "value": "0xFA"
    },
    "273": {
      "op": "PUSH6",
      "value": "0x506F6C696379"
    },
    "280": {
      "op": "PUSH1",
      "value": "0xD0"
    },
    "282": {
      "op": "SHL"
    },
    "283": {
      "offset": [
        113,
        163
      ],
      "op": "DUP2",
      "path": "97"
    },
    "284": {
      "fn": "TestRegistryCompromisedController.upgradeToV2",
      "offset": [
        113,
        163
      ],
      "op": "JUMP",
      "path": "97"
    },
    "285": {
      "fn": "TestRegistryCompromisedController.getContract",
      "offset": [
        275,
        448
      ],
      "op": "JUMPDEST",
      "path": "97"
    },
    "286": {
      "fn": "TestRegistryCompromisedController.getContract",
      "offset": [
        275,
        448
      ],
      "op": "PUSH2",
      "path": "97",
      "value": "0x146"
    },
    "289": {
      "fn": "TestRegistryCompromisedController.getContract",
      "offset": [
        275,
        448
      ],
      "op": "PUSH2",
      "path": "97",
      "value": "0x12B"
    },
    "292": {
      "fn": "TestRegistryCompromisedController.getContract",
      "offset": [
        275,
        448
      ],
      "op": "CALLDATASIZE",
      "path": "97"
    },
    "293": {
      "fn": "TestRegistryCompromisedController.getContract",
      "offset": [
        275,
        448
      ],
      "op": "PUSH1",
      "path": "97",
      "value": "0x4"
    },
    "295": {
      "fn": "TestRegistryCompromisedController.getContract",
      "offset": [
        275,
        448
      ],
      "op": "PUSH2",
      "path": "97",
      "value": "0x1D5"
    },
    "298": {
      "fn": "TestRegistryCompromisedController.getContract",
      "jump": "i",
      "offset": [
        275,
        448
      ],
      "op": "JUMP",
      "path": "97"
    },
    "299": {
      "fn": "TestRegistryCompromisedController.getContract",
      "offset": [
        275,
        448
      ],
      "op": "JUMPDEST",
      "path": "97"
    },
    "300": {
      "fn": "TestRegistryCompromisedController.getContract",
      "offset": [
        365,
        386
      ],
      "op": "PUSH1",
      "path": "97",
      "value": "0x0"
    },
    "302": {
      "fn": "TestRegistryCompromisedController.getContract",
      "offset": [
        418,
        441
      ],
      "op": "SWAP1",
      "path": "97",
      "statement": 2
    },
    "303": {
      "fn": "TestRegistryCompromisedController.getContract",
      "offset": [
        418,
        441
      ],
      "op": "DUP2",
      "path": "97"
    },
    "304": {
      "fn": "TestRegistryCompromisedController.getContract",
      "offset": [
        418,
        441
      ],
      "op": "MSTORE",
      "path": "97"
    },
    "305": {
      "fn": "TestRegistryCompromisedController.getContract",
      "offset": [
        418,
        441
      ],
      "op": "PUSH1",
      "path": "97",
      "value": "0x20"
    },
    "307": {
      "fn": "TestRegistryCompromisedController.getContract",
      "offset": [
        418,
        441
      ],
      "op": "DUP2",
      "path": "97"
    },
    "308": {
      "fn": "TestRegistryCompromisedController.getContract",
      "offset": [
        418,
        441
      ],
      "op": "SWAP1",
      "path": "97"
    },
    "309": {
      "fn": "TestRegistryCompromisedController.getContract",
      "offset": [
        418,
        441
      ],
      "op": "MSTORE",
      "path": "97"
    },
    "310": {
      "fn": "TestRegistryCompromisedController.getContract",
      "offset": [
        418,
        441
      ],
      "op": "PUSH1",
      "path": "97",
      "value": "0x40"
    },
    "312": {
      "fn": "TestRegistryCompromisedController.getContract",
      "offset": [
        418,
        441
      ],
      "op": "SWAP1",
      "path": "97"
    },
    "313": {
      "fn": "TestRegistryCompromisedController.getContract",
      "offset": [
        418,
        441
      ],
      "op": "KECCAK256",
      "path": "97"
    },
    "314": {
      "fn": "TestRegistryCompromisedController.getContract",
      "offset": [
        418,
        441
      ],
      "op": "SLOAD",
      "path": "97"
    },
    "315": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "317": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "319": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "321": {
      "op": "SHL"
    },
    "322": {
      "op": "SUB"
    },
    "323": {
      "fn": "TestRegistryCompromisedController.getContract",
      "offset": [
        418,
        441
      ],
      "op": "AND",
      "path": "97"
    },
    "324": {
      "fn": "TestRegistryCompromisedController.getContract",
      "offset": [
        418,
        441
      ],
      "op": "SWAP1",
      "path": "97"
    },
    "325": {
      "fn": "TestRegistryCompromisedController.getContract",
      "offset": [
        275,
        448
      ],
      "op": "JUMP",
      "path": "97"
    },
    "326": {
      "fn": "TestRegistryCompromisedController.getContract",
      "offset": [
        275,
        448
      ],
      "op": "JUMPDEST",
      "path": "97"
    },
    "327": {
      "fn": "TestRegistryCompromisedController.getContract",
      "offset": [
        275,
        448
      ],
      "op": "PUSH1",
      "path": "97",
      "value": "0x40"
    },
    "329": {
      "fn": "TestRegistryCompromisedController.getContract",
      "offset": [
        275,
        448
      ],
      "op": "MLOAD",
      "path": "97"
    },
    "330": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "332": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "334": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "336": {
      "op": "SHL"
    },
    "337": {
      "op": "SUB"
    },
    "338": {
      "op": "SWAP1"
    },
    "339": {
      "op": "SWAP2"
    },
    "340": {
      "op": "AND"
    },
    "341": {
      "op": "DUP2"
    },
    "342": {
      "op": "MSTORE"
    },
    "343": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "345": {
      "op": "ADD"
    },
    "346": {
      "fn": "TestRegistryCompromisedController.getContract",
      "offset": [
        275,
        448
      ],
      "op": "PUSH2",
      "path": "97",
      "value": "0x104"
    },
    "349": {
      "op": "JUMP"
    },
    "350": {
      "offset": [
        224,
        268
      ],
      "op": "JUMPDEST",
      "path": "97"
    },
    "351": {
      "fn": "TestRegistryCompromisedController.getContract",
      "offset": [
        224,
        268
      ],
      "op": "PUSH2",
      "path": "97",
      "value": "0x146"
    },
    "354": {
      "fn": "TestRegistryCompromisedController.getContract",
      "offset": [
        224,
        268
      ],
      "op": "PUSH2",
      "path": "97",
      "value": "0x16C"
    },
    "357": {
      "fn": "TestRegistryCompromisedController.getContract",
      "offset": [
        224,
        268
      ],
      "op": "CALLDATASIZE",
      "path": "97"
    },
    "358": {
      "fn": "TestRegistryCompromisedController.getContract",
      "offset": [
        224,
        268
      ],
      "op": "PUSH1",
      "path": "97",
      "value": "0x4"
    },
    "360": {
      "fn": "TestRegistryCompromisedController.getContract",
      "offset": [
        224,
        268
      ],
      "op": "PUSH2",
      "path": "97",
      "value": "0x1D5"
    },
    "363": {
      "fn": "TestRegistryCompromisedController.getContract",
      "jump": "i",
      "offset": [
        224,
        268
      ],
      "op": "JUMP",
      "path": "97"
    },
    "364": {
      "fn": "TestRegistryCompromisedController.getContract",
      "offset": [
        224,
        268
      ],
      "op": "JUMPDEST",
      "path": "97"
    },
    "365": {
      "fn": "TestRegistryCompromisedController.getContract",
      "offset": [
        224,
        268
      ],
      "op": "PUSH1",
      "path": "97",
      "value": "0x0"
    },
    "367": {
      "fn": "TestRegistryCompromisedController.getContract",
      "offset": [
        224,
        268
      ],
      "op": "PUSH1",
      "path": "97",
      "value": "0x20"
    },
    "369": {
      "fn": "TestRegistryCompromisedController.getContract",
      "offset": [
        224,
        268
      ],
      "op": "DUP2",
      "path": "97"
    },
    "370": {
      "fn": "TestRegistryCompromisedController.getContract",
      "offset": [
        224,
        268
      ],
      "op": "SWAP1",
      "path": "97"
    },
    "371": {
      "fn": "TestRegistryCompromisedController.getContract",
      "offset": [
        224,
        268
      ],
      "op": "MSTORE",
      "path": "97"
    },
    "372": {
      "fn": "TestRegistryCompromisedController.getContract",
      "offset": [
        224,
        268
      ],
      "op": "SWAP1",
      "path": "97"
    },
    "373": {
      "fn": "TestRegistryCompromisedController.getContract",
      "offset": [
        224,
        268
      ],
      "op": "DUP2",
      "path": "97"
    },
    "374": {
      "fn": "TestRegistryCompromisedController.getContract",
      "offset": [
        224,
        268
      ],
      "op": "MSTORE",
      "path": "97"
    },
    "375": {
      "fn": "TestRegistryCompromisedController.getContract",
      "offset": [
        224,
        268
      ],
      "op": "PUSH1",
      "path": "97",
      "value": "0x40"
    },
    "377": {
      "fn": "TestRegistryCompromisedController.getContract",
      "offset": [
        224,
        268
      ],
      "op": "SWAP1",
      "path": "97"
    },
    "378": {
      "fn": "TestRegistryCompromisedController.getContract",
      "offset": [
        224,
        268
      ],
      "op": "KECCAK256",
      "path": "97"
    },
    "379": {
      "fn": "TestRegistryCompromisedController.getContract",
      "offset": [
        224,
        268
      ],
      "op": "SLOAD",
      "path": "97"
    },
    "380": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "382": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "384": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "386": {
      "op": "SHL"
    },
    "387": {
      "op": "SUB"
    },
    "388": {
      "offset": [
        224,
        268
      ],
      "op": "AND",
      "path": "97"
    },
    "389": {
      "fn": "TestRegistryCompromisedController.getContract",
      "offset": [
        224,
        268
      ],
      "op": "DUP2",
      "path": "97"
    },
    "390": {
      "fn": "TestRegistryCompromisedController.getContract",
      "offset": [
        224,
        268
      ],
      "op": "JUMP",
      "path": "97"
    },
    "391": {
      "op": "JUMPDEST"
    },
    "392": {
      "op": "DUP1"
    },
    "393": {
      "op": "CALLDATALOAD"
    },
    "394": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "396": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "398": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "400": {
      "op": "SHL"
    },
    "401": {
      "op": "SUB"
    },
    "402": {
      "op": "DUP2"
    },
    "403": {
      "op": "AND"
    },
    "404": {
      "op": "DUP2"
    },
    "405": {
      "op": "EQ"
    },
    "406": {
      "op": "PUSH2",
      "value": "0x19E"
    },
    "409": {
      "op": "JUMPI"
    },
    "410": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "412": {
      "op": "DUP1"
    },
    "413": {
      "op": "REVERT"
    },
    "414": {
      "op": "JUMPDEST"
    },
    "415": {
      "op": "SWAP2"
    },
    "416": {
      "op": "SWAP1"
    },
    "417": {
      "op": "POP"
    },
    "418": {
      "jump": "o",
      "op": "JUMP"
    },
    "419": {
      "op": "JUMPDEST"
    },
    "420": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "422": {
      "op": "DUP1"
    },
    "423": {
      "op": "PUSH1",
      "value": "0x40"
    },
    "425": {
      "op": "DUP4"
    },
    "426": {
      "op": "DUP6"
    },
    "427": {
      "op": "SUB"
    },
    "428": {
      "op": "SLT"
    },
    "429": {
      "op": "ISZERO"
    },
    "430": {
      "op": "PUSH2",
      "value": "0x1B5"
    },
    "433": {
      "op": "JUMPI"
    },
    "434": {
      "op": "DUP2"
    },
    "435": {
      "op": "DUP3"
    },
    "436": {
      "op": "REVERT"
    },
    "437": {
      "op": "JUMPDEST"
    },
    "438": {
      "op": "PUSH2",
      "value": "0x1BE"
    },
    "441": {
      "op": "DUP4"
    },
    "442": {
      "op": "PUSH2",
      "value": "0x187"
    },
    "445": {
      "jump": "i",
      "op": "JUMP"
    },
    "446": {
      "op": "JUMPDEST"
    },
    "447": {
      "op": "SWAP2"
    },
    "448": {
      "op": "POP"
    },
    "449": {
      "op": "PUSH2",
      "value": "0x1CC"
    },
    "452": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "454": {
      "op": "DUP5"
    },
    "455": {
      "op": "ADD"
    },
    "456": {
      "op": "PUSH2",
      "value": "0x187"
    },
    "459": {
      "jump": "i",
      "op": "JUMP"
    },
    "460": {
      "op": "JUMPDEST"
    },
    "461": {
      "op": "SWAP1"
    },
    "462": {
      "op": "POP"
    },
    "463": {
      "op": "SWAP3"
    },
    "464": {
      "op": "POP"
    },
    "465": {
      "op": "SWAP3"
    },
    "466": {
      "op": "SWAP1"
    },
    "467": {
      "op": "POP"
    },
    "468": {
      "jump": "o",
      "op": "JUMP"
    },
    "469": {
      "op": "JUMPDEST"
    },
    "470": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "472": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "474": {
      "op": "DUP3"
    },
    "475": {
      "op": "DUP5"
    },
    "476": {
      "op": "SUB"
    },
    "477": {
      "op": "SLT"
    },
    "478": {
      "op": "ISZERO"
    },
    "479": {
      "op": "PUSH2",
      "value": "0x1E6"
    },
    "482": {
      "op": "JUMPI"
    },
    "483": {
      "op": "DUP1"
    },
    "484": {
      "op": "DUP2"
    },
    "485": {
      "op": "REVERT"
    },
    "486": {
      "op": "JUMPDEST"
    },
    "487": {
      "op": "POP"
    },
    "488": {
      "op": "CALLDATALOAD"
    },
    "489": {
      "op": "SWAP2"
    },
    "490": {
      "op": "SWAP1"
    },
    "491": {
      "op": "POP"
    },
    "492": {
      "jump": "o",
      "op": "JUMP"
    }
  },
  "sha1": "8c9bab93487fdccfe8be2f39b883614d5e3c7aae",
  "source": "// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\ncontract TestRegistryCompromisedController {\n\n    bytes32 public constant POLICY = bytes32(\"Policy\");\n    bytes32 public constant QUERY = bytes32(\"Query\");\n\n    mapping(bytes32 => address) public contracts;\n\n    function getContract(bytes32 contractName)\n        external\n        view\n        returns (address moduleAddress)\n    {\n        moduleAddress = contracts[contractName];\n    }\n\n    function upgradeToV2(\n        address compromisedPolicyModuleAddress, \n        address originalQueryModuleAddress\n    ) \n        public \n    { \n        contracts[POLICY] = compromisedPolicyModuleAddress;\n        contracts[QUERY] = originalQueryModuleAddress;\n    }\n}\n",
  "sourceMap": "63:657:97:-:0;;;;;;;;;;;;;;;;;;;",
  "sourcePath": "contracts/test/TestRegistryCompromisedController.sol",
  "type": "contract"
}