{
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_logic",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "admin_",
          "type": "address"
        },
        {
          "internalType": "bytes",
          "name": "_data",
          "type": "bytes"
        }
      ],
      "stateMutability": "payable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "previousAdmin",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "newAdmin",
          "type": "address"
        }
      ],
      "name": "AdminChanged",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "beacon",
          "type": "address"
        }
      ],
      "name": "BeaconUpgraded",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "implementation",
          "type": "address"
        }
      ],
      "name": "Upgraded",
      "type": "event"
    },
    {
      "stateMutability": "payable",
      "type": "fallback"
    },
    {
      "inputs": [],
      "name": "admin",
      "outputs": [
        {
          "internalType": "address",
          "name": "admin_",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newAdmin",
          "type": "address"
        }
      ],
      "name": "changeAdmin",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "implementation",
      "outputs": [
        {
          "internalType": "address",
          "name": "implementation_",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newImplementation",
          "type": "address"
        }
      ],
      "name": "upgradeTo",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newImplementation",
          "type": "address"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "upgradeToAndCall",
      "outputs": [],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "stateMutability": "payable",
      "type": "receive"
    }
  ],
  "allSourcePaths": {
    "10": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.8.2/contracts/proxy/Proxy.sol",
    "12": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.8.2/contracts/proxy/transparent/TransparentUpgradeableProxy.sol",
    "8": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.8.2/contracts/proxy/ERC1967/ERC1967Proxy.sol",
    "9": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.8.2/contracts/proxy/ERC1967/ERC1967Upgrade.sol"
  },
  "ast": {
    "absolutePath": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.8.2/contracts/proxy/transparent/TransparentUpgradeableProxy.sol",
    "exportedSymbols": {
      "Address": [
        17676
      ],
      "ERC1967Proxy": [
        16915
      ],
      "ERC1967Upgrade": [
        18030
      ],
      "IBeacon": [
        18386
      ],
      "IERC1822Proxiable": [
        18376
      ],
      "Proxy": [
        18082
      ],
      "StorageSlot": [
        18446
      ],
      "TransparentUpgradeableProxy": [
        12771
      ]
    },
    "id": 12772,
    "license": "MIT",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 12625,
        "literals": [
          "solidity",
          "^",
          "0.8",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "133:23:12"
      },
      {
        "absolutePath": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.8.2/contracts/proxy/ERC1967/ERC1967Proxy.sol",
        "file": "../ERC1967/ERC1967Proxy.sol",
        "id": 12626,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 12772,
        "sourceUnit": 16916,
        "src": "158:37:12",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "abstract": false,
        "baseContracts": [
          {
            "baseName": {
              "id": 12628,
              "name": "ERC1967Proxy",
              "nameLocations": [
                "1689:12:12"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 16915,
              "src": "1689:12:12"
            },
            "id": 12629,
            "nodeType": "InheritanceSpecifier",
            "src": "1689:12:12"
          }
        ],
        "canonicalName": "TransparentUpgradeableProxy",
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": {
          "id": 12627,
          "nodeType": "StructuredDocumentation",
          "src": "197:1451:12",
          "text": " @dev This contract implements a proxy that is upgradeable by an admin.\n To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector\n clashing], which can potentially be used in an attack, this contract uses the\n https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two\n things that go hand in hand:\n 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if\n that call matches one of the admin functions exposed by the proxy itself.\n 2. If the admin calls the proxy, it can access the admin functions, but its calls will never be forwarded to the\n implementation. If the admin tries to call a function on the implementation it will fail with an error that says\n \"admin cannot fallback to proxy target\".\n These properties mean that the admin account can only be used for admin actions like upgrading the proxy or changing\n the admin, so it's best if it's a dedicated account that is not used for anything else. This will avoid headaches due\n to sudden errors when trying to call a function from the proxy implementation.\n Our recommendation is for the dedicated account to be an instance of the {ProxyAdmin} contract. If set up this way,\n you should think of the `ProxyAdmin` instance as the real administrative interface of your proxy."
        },
        "fullyImplemented": true,
        "id": 12771,
        "linearizedBaseContracts": [
          12771,
          16915,
          18030,
          18082
        ],
        "name": "TransparentUpgradeableProxy",
        "nameLocation": "1658:27:12",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "body": {
              "id": 12647,
              "nodeType": "Block",
              "src": "2053:37:12",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 12644,
                        "name": "admin_",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12634,
                        "src": "2076:6:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 12643,
                      "name": "_changeAdmin",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 17933,
                      "src": "2063:12:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address)"
                      }
                    },
                    "id": 12645,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2063:20:12",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12646,
                  "nodeType": "ExpressionStatement",
                  "src": "2063:20:12"
                }
              ]
            },
            "documentation": {
              "id": 12630,
              "nodeType": "StructuredDocumentation",
              "src": "1708:210:12",
              "text": " @dev Initializes an upgradeable proxy managed by `_admin`, backed by the implementation at `_logic`, and\n optionally initialized with `_data` as explained in {ERC1967Proxy-constructor}."
            },
            "id": 12648,
            "implemented": true,
            "kind": "constructor",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 12639,
                    "name": "_logic",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 12632,
                    "src": "2038:6:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  {
                    "id": 12640,
                    "name": "_data",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 12636,
                    "src": "2046:5:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_memory_ptr",
                      "typeString": "bytes memory"
                    }
                  }
                ],
                "id": 12641,
                "kind": "baseConstructorSpecifier",
                "modifierName": {
                  "id": 12638,
                  "name": "ERC1967Proxy",
                  "nameLocations": [
                    "2025:12:12"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 16915,
                  "src": "2025:12:12"
                },
                "nodeType": "ModifierInvocation",
                "src": "2025:27:12"
              }
            ],
            "name": "",
            "nameLocation": "-1:-1:-1",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 12637,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12632,
                  "mutability": "mutable",
                  "name": "_logic",
                  "nameLocation": "1952:6:12",
                  "nodeType": "VariableDeclaration",
                  "scope": 12648,
                  "src": "1944:14:12",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 12631,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1944:7:12",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12634,
                  "mutability": "mutable",
                  "name": "admin_",
                  "nameLocation": "1976:6:12",
                  "nodeType": "VariableDeclaration",
                  "scope": 12648,
                  "src": "1968:14:12",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 12633,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1968:7:12",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12636,
                  "mutability": "mutable",
                  "name": "_data",
                  "nameLocation": "2005:5:12",
                  "nodeType": "VariableDeclaration",
                  "scope": 12648,
                  "src": "1992:18:12",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 12635,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "1992:5:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1934:82:12"
            },
            "returnParameters": {
              "id": 12642,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2053:0:12"
            },
            "scope": 12771,
            "src": "1923:167:12",
            "stateMutability": "payable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 12663,
              "nodeType": "Block",
              "src": "2250:115:12",
              "statements": [
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 12655,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "expression": {
                        "id": 12651,
                        "name": "msg",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": -15,
                        "src": "2264:3:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_message",
                          "typeString": "msg"
                        }
                      },
                      "id": 12652,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "2268:6:12",
                      "memberName": "sender",
                      "nodeType": "MemberAccess",
                      "src": "2264:10:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "arguments": [],
                      "expression": {
                        "argumentTypes": [],
                        "id": 12653,
                        "name": "_getAdmin",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17890,
                        "src": "2278:9:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
                          "typeString": "function () view returns (address)"
                        }
                      },
                      "id": 12654,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2278:11:12",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "2264:25:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 12661,
                    "nodeType": "Block",
                    "src": "2323:36:12",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "id": 12658,
                            "name": "_fallback",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 18060,
                            "src": "2337:9:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
                              "typeString": "function ()"
                            }
                          },
                          "id": 12659,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2337:11:12",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 12660,
                        "nodeType": "ExpressionStatement",
                        "src": "2337:11:12"
                      }
                    ]
                  },
                  "id": 12662,
                  "nodeType": "IfStatement",
                  "src": "2260:99:12",
                  "trueBody": {
                    "id": 12657,
                    "nodeType": "Block",
                    "src": "2291:26:12",
                    "statements": [
                      {
                        "id": 12656,
                        "nodeType": "PlaceholderStatement",
                        "src": "2305:1:12"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": {
              "id": 12649,
              "nodeType": "StructuredDocumentation",
              "src": "2096:130:12",
              "text": " @dev Modifier used internally that will delegate the call to the implementation unless the sender is the admin."
            },
            "id": 12664,
            "name": "ifAdmin",
            "nameLocation": "2240:7:12",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 12650,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2247:2:12"
            },
            "src": "2231:134:12",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 12677,
              "nodeType": "Block",
              "src": "2866:37:12",
              "statements": [
                {
                  "expression": {
                    "id": 12675,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 12672,
                      "name": "admin_",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12670,
                      "src": "2876:6:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [],
                      "expression": {
                        "argumentTypes": [],
                        "id": 12673,
                        "name": "_getAdmin",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17890,
                        "src": "2885:9:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
                          "typeString": "function () view returns (address)"
                        }
                      },
                      "id": 12674,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2885:11:12",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "2876:20:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 12676,
                  "nodeType": "ExpressionStatement",
                  "src": "2876:20:12"
                }
              ]
            },
            "documentation": {
              "id": 12665,
              "nodeType": "StructuredDocumentation",
              "src": "2371:431:12",
              "text": " @dev Returns the current admin.\n NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyAdmin}.\n TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the\n https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\n `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103`"
            },
            "functionSelector": "f851a440",
            "id": 12678,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 12668,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 12667,
                  "name": "ifAdmin",
                  "nameLocations": [
                    "2833:7:12"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 12664,
                  "src": "2833:7:12"
                },
                "nodeType": "ModifierInvocation",
                "src": "2833:7:12"
              }
            ],
            "name": "admin",
            "nameLocation": "2816:5:12",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 12666,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2821:2:12"
            },
            "returnParameters": {
              "id": 12671,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12670,
                  "mutability": "mutable",
                  "name": "admin_",
                  "nameLocation": "2858:6:12",
                  "nodeType": "VariableDeclaration",
                  "scope": 12678,
                  "src": "2850:14:12",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 12669,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2850:7:12",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2849:16:12"
            },
            "scope": 12771,
            "src": "2807:96:12",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 12691,
              "nodeType": "Block",
              "src": "3440:52:12",
              "statements": [
                {
                  "expression": {
                    "id": 12689,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 12686,
                      "name": "implementation_",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12684,
                      "src": "3450:15:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [],
                      "expression": {
                        "argumentTypes": [],
                        "id": 12687,
                        "name": "_implementation",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          16914
                        ],
                        "referencedDeclaration": 16914,
                        "src": "3468:15:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
                          "typeString": "function () view returns (address)"
                        }
                      },
                      "id": 12688,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "3468:17:12",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "3450:35:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 12690,
                  "nodeType": "ExpressionStatement",
                  "src": "3450:35:12"
                }
              ]
            },
            "documentation": {
              "id": 12679,
              "nodeType": "StructuredDocumentation",
              "src": "2909:449:12",
              "text": " @dev Returns the current implementation.\n NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyImplementation}.\n TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the\n https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\n `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc`"
            },
            "functionSelector": "5c60da1b",
            "id": 12692,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 12682,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 12681,
                  "name": "ifAdmin",
                  "nameLocations": [
                    "3398:7:12"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 12664,
                  "src": "3398:7:12"
                },
                "nodeType": "ModifierInvocation",
                "src": "3398:7:12"
              }
            ],
            "name": "implementation",
            "nameLocation": "3372:14:12",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 12680,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3386:2:12"
            },
            "returnParameters": {
              "id": 12685,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12684,
                  "mutability": "mutable",
                  "name": "implementation_",
                  "nameLocation": "3423:15:12",
                  "nodeType": "VariableDeclaration",
                  "scope": 12692,
                  "src": "3415:23:12",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 12683,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3415:7:12",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3414:25:12"
            },
            "scope": 12771,
            "src": "3363:129:12",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 12704,
              "nodeType": "Block",
              "src": "3761:39:12",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 12701,
                        "name": "newAdmin",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12695,
                        "src": "3784:8:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 12700,
                      "name": "_changeAdmin",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 17933,
                      "src": "3771:12:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address)"
                      }
                    },
                    "id": 12702,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3771:22:12",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12703,
                  "nodeType": "ExpressionStatement",
                  "src": "3771:22:12"
                }
              ]
            },
            "documentation": {
              "id": 12693,
              "nodeType": "StructuredDocumentation",
              "src": "3498:194:12",
              "text": " @dev Changes the admin of the proxy.\n Emits an {AdminChanged} event.\n NOTE: Only the admin can call this function. See {ProxyAdmin-changeProxyAdmin}."
            },
            "functionSelector": "8f283970",
            "id": 12705,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 12698,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 12697,
                  "name": "ifAdmin",
                  "nameLocations": [
                    "3753:7:12"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 12664,
                  "src": "3753:7:12"
                },
                "nodeType": "ModifierInvocation",
                "src": "3753:7:12"
              }
            ],
            "name": "changeAdmin",
            "nameLocation": "3706:11:12",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 12696,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12695,
                  "mutability": "mutable",
                  "name": "newAdmin",
                  "nameLocation": "3726:8:12",
                  "nodeType": "VariableDeclaration",
                  "scope": 12705,
                  "src": "3718:16:12",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 12694,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3718:7:12",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3717:18:12"
            },
            "returnParameters": {
              "id": 12699,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3761:0:12"
            },
            "scope": 12771,
            "src": "3697:103:12",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "external"
          },
          {
            "body": {
              "id": 12722,
              "nodeType": "Block",
              "src": "4023:71:12",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 12714,
                        "name": "newImplementation",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12708,
                        "src": "4051:17:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "hexValue": "",
                            "id": 12717,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "4076:2:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                              "typeString": "literal_string \"\""
                            },
                            "value": ""
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                              "typeString": "literal_string \"\""
                            }
                          ],
                          "id": 12716,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "4070:5:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                            "typeString": "type(bytes storage pointer)"
                          },
                          "typeName": {
                            "id": 12715,
                            "name": "bytes",
                            "nodeType": "ElementaryTypeName",
                            "src": "4070:5:12",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 12718,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4070:9:12",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      {
                        "hexValue": "66616c7365",
                        "id": 12719,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4081:5:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "false"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 12713,
                      "name": "_upgradeToAndCall",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 17813,
                      "src": "4033:17:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_bool_$returns$__$",
                        "typeString": "function (address,bytes memory,bool)"
                      }
                    },
                    "id": 12720,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4033:54:12",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12721,
                  "nodeType": "ExpressionStatement",
                  "src": "4033:54:12"
                }
              ]
            },
            "documentation": {
              "id": 12706,
              "nodeType": "StructuredDocumentation",
              "src": "3806:149:12",
              "text": " @dev Upgrade the implementation of the proxy.\n NOTE: Only the admin can call this function. See {ProxyAdmin-upgrade}."
            },
            "functionSelector": "3659cfe6",
            "id": 12723,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 12711,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 12710,
                  "name": "ifAdmin",
                  "nameLocations": [
                    "4015:7:12"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 12664,
                  "src": "4015:7:12"
                },
                "nodeType": "ModifierInvocation",
                "src": "4015:7:12"
              }
            ],
            "name": "upgradeTo",
            "nameLocation": "3969:9:12",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 12709,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12708,
                  "mutability": "mutable",
                  "name": "newImplementation",
                  "nameLocation": "3987:17:12",
                  "nodeType": "VariableDeclaration",
                  "scope": 12723,
                  "src": "3979:25:12",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 12707,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3979:7:12",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3978:27:12"
            },
            "returnParameters": {
              "id": 12712,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4023:0:12"
            },
            "scope": 12771,
            "src": "3960:134:12",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 12739,
              "nodeType": "Block",
              "src": "4569:65:12",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 12734,
                        "name": "newImplementation",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12726,
                        "src": "4597:17:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 12735,
                        "name": "data",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12728,
                        "src": "4616:4:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes calldata"
                        }
                      },
                      {
                        "hexValue": "74727565",
                        "id": 12736,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4622:4:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "true"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes calldata"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 12733,
                      "name": "_upgradeToAndCall",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 17813,
                      "src": "4579:17:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_bool_$returns$__$",
                        "typeString": "function (address,bytes memory,bool)"
                      }
                    },
                    "id": 12737,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4579:48:12",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12738,
                  "nodeType": "ExpressionStatement",
                  "src": "4579:48:12"
                }
              ]
            },
            "documentation": {
              "id": 12724,
              "nodeType": "StructuredDocumentation",
              "src": "4100:365:12",
              "text": " @dev Upgrade the implementation of the proxy, and then call a function from the new implementation as specified\n by `data`, which should be an encoded function call. This is useful to initialize new storage variables in the\n proxied contract.\n NOTE: Only the admin can call this function. See {ProxyAdmin-upgradeAndCall}."
            },
            "functionSelector": "4f1ef286",
            "id": 12740,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 12731,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 12730,
                  "name": "ifAdmin",
                  "nameLocations": [
                    "4561:7:12"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 12664,
                  "src": "4561:7:12"
                },
                "nodeType": "ModifierInvocation",
                "src": "4561:7:12"
              }
            ],
            "name": "upgradeToAndCall",
            "nameLocation": "4479:16:12",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 12729,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12726,
                  "mutability": "mutable",
                  "name": "newImplementation",
                  "nameLocation": "4504:17:12",
                  "nodeType": "VariableDeclaration",
                  "scope": 12740,
                  "src": "4496:25:12",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 12725,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4496:7:12",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12728,
                  "mutability": "mutable",
                  "name": "data",
                  "nameLocation": "4538:4:12",
                  "nodeType": "VariableDeclaration",
                  "scope": 12740,
                  "src": "4523:19:12",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 12727,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "4523:5:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4495:48:12"
            },
            "returnParameters": {
              "id": 12732,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4569:0:12"
            },
            "scope": 12771,
            "src": "4470:164:12",
            "stateMutability": "payable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 12749,
              "nodeType": "Block",
              "src": "4753:35:12",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 12746,
                      "name": "_getAdmin",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 17890,
                      "src": "4770:9:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
                        "typeString": "function () view returns (address)"
                      }
                    },
                    "id": 12747,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4770:11:12",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 12745,
                  "id": 12748,
                  "nodeType": "Return",
                  "src": "4763:18:12"
                }
              ]
            },
            "documentation": {
              "id": 12741,
              "nodeType": "StructuredDocumentation",
              "src": "4640:50:12",
              "text": " @dev Returns the current admin."
            },
            "id": 12750,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_admin",
            "nameLocation": "4704:6:12",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 12742,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4710:2:12"
            },
            "returnParameters": {
              "id": 12745,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12744,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 12750,
                  "src": "4744:7:12",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 12743,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4744:7:12",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4743:9:12"
            },
            "scope": 12771,
            "src": "4695:93:12",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "baseFunctions": [
              18081
            ],
            "body": {
              "id": 12769,
              "nodeType": "Block",
              "src": "4962:154:12",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 12760,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "expression": {
                            "id": 12756,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": -15,
                            "src": "4980:3:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 12757,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "4984:6:12",
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "src": "4980:10:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "id": 12758,
                            "name": "_getAdmin",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 17890,
                            "src": "4994:9:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
                              "typeString": "function () view returns (address)"
                            }
                          },
                          "id": 12759,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "4994:11:12",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "4980:25:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "5472616e73706172656e745570677261646561626c6550726f78793a2061646d696e2063616e6e6f742066616c6c6261636b20746f2070726f787920746172676574",
                        "id": 12761,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5007:68:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d",
                          "typeString": "literal_string \"TransparentUpgradeableProxy: admin cannot fallback to proxy target\""
                        },
                        "value": "TransparentUpgradeableProxy: admin cannot fallback to proxy target"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d",
                          "typeString": "literal_string \"TransparentUpgradeableProxy: admin cannot fallback to proxy target\""
                        }
                      ],
                      "id": 12755,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "4972:7:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 12762,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4972:104:12",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12763,
                  "nodeType": "ExpressionStatement",
                  "src": "4972:104:12"
                },
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "id": 12764,
                        "name": "super",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": -25,
                        "src": "5086:5:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_super$_TransparentUpgradeableProxy_$12771_$",
                          "typeString": "type(contract super TransparentUpgradeableProxy)"
                        }
                      },
                      "id": 12766,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "5092:15:12",
                      "memberName": "_beforeFallback",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 18081,
                      "src": "5086:21:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
                        "typeString": "function ()"
                      }
                    },
                    "id": 12767,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5086:23:12",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12768,
                  "nodeType": "ExpressionStatement",
                  "src": "5086:23:12"
                }
              ]
            },
            "documentation": {
              "id": 12751,
              "nodeType": "StructuredDocumentation",
              "src": "4794:110:12",
              "text": " @dev Makes sure the admin cannot access the fallback function. See {Proxy-_beforeFallback}."
            },
            "id": 12770,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_beforeFallback",
            "nameLocation": "4918:15:12",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 12753,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "4953:8:12"
            },
            "parameters": {
              "id": 12752,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4933:2:12"
            },
            "returnParameters": {
              "id": 12754,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4962:0:12"
            },
            "scope": 12771,
            "src": "4909:207:12",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "internal"
          }
        ],
        "scope": 12772,
        "src": "1649:3469:12",
        "usedErrors": []
      }
    ],
    "src": "133:4986:12"
  },
  "bytecode": "608060405260405162000dcf38038062000dcf833981016040819052620000269162000424565b828162000036828260006200004d565b50620000449050826200007f565b50505062000557565b6200005883620000f1565b600082511180620000665750805b156200007a5762000078838362000133565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000c160008051602062000d88833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000ee8162000162565b50565b620000fc8162000200565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200015b838360405180606001604052806027815260200162000da86027913962000297565b9392505050565b6001600160a01b038116620001cd5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b8060008051602062000d888339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6200026f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001c4565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc620001df565b6060600080856001600160a01b031685604051620002b6919062000504565b600060405180830381855af49150503d8060008114620002f3576040519150601f19603f3d011682016040523d82523d6000602084013e620002f8565b606091505b5090925090506200030c8683838762000316565b9695505050505050565b606083156200038a57825160000362000382576001600160a01b0385163b620003825760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401620001c4565b508162000396565b6200039683836200039e565b949350505050565b815115620003af5781518083602001fd5b8060405162461bcd60e51b8152600401620001c4919062000522565b80516001600160a01b0381168114620003e357600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200041b57818101518382015260200162000401565b50506000910152565b6000806000606084860312156200043a57600080fd5b6200044584620003cb565b92506200045560208501620003cb565b60408501519092506001600160401b03808211156200047357600080fd5b818601915086601f8301126200048857600080fd5b8151818111156200049d576200049d620003e8565b604051601f8201601f19908116603f01168101908382118183101715620004c857620004c8620003e8565b81604052828152896020848701011115620004e257600080fd5b620004f5836020830160208801620003fe565b80955050505050509250925092565b6000825162000518818460208701620003fe565b9190910192915050565b602081526000825180602084015262000543816040850160208701620003fe565b601f01601f19169190910160400192915050565b61082180620005676000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106b3565b610118565b61005b6100933660046106ce565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106b3565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107c560279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b6060600080856001600160a01b0316856040516105919190610775565b600060405180830381855af49150503d80600081146105cc576040519150601f19603f3d011682016040523d82523d6000602084013e6105d1565b606091505b50915091506105e2868383876105ec565b9695505050505050565b6060831561065b578251600003610654576001600160a01b0385163b6106545760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016102ba565b5081610665565b610665838361066d565b949350505050565b81511561067d5781518083602001fd5b8060405162461bcd60e51b81526004016102ba9190610791565b80356001600160a01b03811681146106ae57600080fd5b919050565b6000602082840312156106c557600080fd5b61043082610697565b6000806000604084860312156106e357600080fd5b6106ec84610697565b9250602084013567ffffffffffffffff8082111561070957600080fd5b818601915086601f83011261071d57600080fd5b81358181111561072c57600080fd5b87602082850101111561073e57600080fd5b6020830194508093505050509250925092565b60005b8381101561076c578181015183820152602001610754565b50506000910152565b60008251610787818460208701610751565b9190910192915050565b60208152600082518060208401526107b0816040850160208701610751565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122087ebf56341088d5f655d1fb4b7151fd6af201185151b7e43d1472b32111b119364736f6c63430008130033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564",
  "bytecodeSha1": "da39a3ee5e6b4b0d3255bfef95601890afd80709",
  "compiler": {
    "evm_version": "istanbul",
    "optimizer": {
      "enabled": true,
      "runs": 200
    },
    "version": "0.8.19+commit.7dd6d404"
  },
  "contractName": "TransparentUpgradeableProxy",
  "coverageMap": {
    "branches": {
      "10": {},
      "12": {
        "TransparentUpgradeableProxy._beforeFallback": {
          "23": [
            4980,
            5005,
            true
          ]
        }
      },
      "8": {},
      "9": {
        "ERC1967Upgrade._setAdmin": {
          "26": [
            4375,
            4397,
            true
          ]
        },
        "ERC1967Upgrade._upgradeToAndCall": {
          "24": [
            2364,
            2379,
            true
          ],
          "25": [
            2383,
            2392,
            false
          ]
        }
      }
    },
    "statements": {
      "10": {
        "Proxy.<fallback>": {
          "1": [
            2675,
            2686
          ]
        },
        "Proxy.<receive>": {
          "0": [
            2898,
            2909
          ]
        },
        "Proxy._fallback": {
          "2": [
            2370,
            2387
          ],
          "3": [
            2397,
            2425
          ]
        }
      },
      "12": {
        "TransparentUpgradeableProxy._beforeFallback": {
          "9": [
            4972,
            5076
          ]
        },
        "TransparentUpgradeableProxy.admin": {
          "8": [
            2876,
            2896
          ]
        },
        "TransparentUpgradeableProxy.changeAdmin": {
          "7": [
            3771,
            3793
          ]
        },
        "TransparentUpgradeableProxy.implementation": {
          "6": [
            3450,
            3485
          ]
        },
        "TransparentUpgradeableProxy.upgradeTo": {
          "4": [
            4033,
            4087
          ]
        },
        "TransparentUpgradeableProxy.upgradeToAndCall": {
          "5": [
            4579,
            4627
          ]
        }
      },
      "8": {
        "ERC1967Proxy._implementation": {
          "10": [
            1239,
            1281
          ]
        }
      },
      "9": {
        "ERC1967Upgrade._changeAdmin": {
          "14": [
            4683,
            4723
          ],
          "15": [
            4733,
            4752
          ]
        },
        "ERC1967Upgrade._getAdmin": {
          "11": [
            4171,
            4223
          ]
        },
        "ERC1967Upgrade._getImplementation": {
          "16": [
            1373,
            1434
          ]
        },
        "ERC1967Upgrade._setAdmin": {
          "19": [
            4367,
            4440
          ],
          "20": [
            4450,
            4506
          ]
        },
        "ERC1967Upgrade._setImplementation": {
          "21": [
            1605,
            1700
          ],
          "22": [
            1710,
            1784
          ]
        },
        "ERC1967Upgrade._upgradeTo": {
          "17": [
            1963,
            2000
          ],
          "18": [
            2010,
            2042
          ]
        },
        "ERC1967Upgrade._upgradeToAndCall": {
          "12": [
            2321,
            2350
          ],
          "13": [
            2408,
            2461
          ]
        }
      }
    }
  },
  "dependencies": [
    "OpenZeppelin/openzeppelin-contracts@4.8.2/ERC1967Proxy",
    "OpenZeppelin/openzeppelin-contracts@4.8.2/ERC1967Upgrade",
    "OpenZeppelin/openzeppelin-contracts@4.8.2/Proxy"
  ],
  "deployedBytecode": "60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106b3565b610118565b61005b6100933660046106ce565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106b3565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107c560279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b6060600080856001600160a01b0316856040516105919190610775565b600060405180830381855af49150503d80600081146105cc576040519150601f19603f3d011682016040523d82523d6000602084013e6105d1565b606091505b50915091506105e2868383876105ec565b9695505050505050565b6060831561065b578251600003610654576001600160a01b0385163b6106545760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016102ba565b5081610665565b610665838361066d565b949350505050565b81511561067d5781518083602001fd5b8060405162461bcd60e51b81526004016102ba9190610791565b80356001600160a01b03811681146106ae57600080fd5b919050565b6000602082840312156106c557600080fd5b61043082610697565b6000806000604084860312156106e357600080fd5b6106ec84610697565b9250602084013567ffffffffffffffff8082111561070957600080fd5b818601915086601f83011261071d57600080fd5b81358181111561072c57600080fd5b87602082850101111561073e57600080fd5b6020830194508093505050509250925092565b60005b8381101561076c578181015183820152602001610754565b50506000910152565b60008251610787818460208701610751565b9190910192915050565b60208152600082518060208401526107b0816040850160208701610751565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122087ebf56341088d5f655d1fb4b7151fd6af201185151b7e43d1472b32111b119364736f6c63430008130033",
  "deployedSourceMap": "1649:3469:12:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2898:11:10;:9;:11::i;:::-;1649:3469:12;;2675:11:10;:9;:11::i;3960:134:12:-;;;;;;;;;;-1:-1:-1;3960:134:12;;;;;:::i;:::-;;:::i;4470:164::-;;;;;;:::i;:::-;;:::i;3363:129::-;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1217:32:67;;;1199:51;;1187:2;1172:18;3363:129:12;;;;;;;3697:103;;;;;;;;;;-1:-1:-1;3697:103:12;;;;;:::i;:::-;;:::i;2807:96::-;;;;;;;;;;;;;:::i;2322:110:10:-;2370:17;:15;:17::i;:::-;2397:28;2407:17;:15;:17::i;:::-;2397:9;:28::i;:::-;2322:110::o;3960:134:12:-;2278:11;:9;:11::i;:::-;-1:-1:-1;;;;;2264:25:12;:10;:25;2260:99;;4033:54:::1;4051:17;4070:9;;;;;;;;;;;::::0;4081:5:::1;4033:17;:54::i;:::-;3960:134:::0;:::o;2260:99::-;2337:11;:9;:11::i;4470:164::-;2278:11;:9;:11::i;:::-;-1:-1:-1;;;;;2264:25:12;:10;:25;2260:99;;4579:48:::1;4597:17;4616:4;;4579:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;4622:4:12::1;::::0;-1:-1:-1;4579:17:12::1;::::0;-1:-1:-1;;4579:48:12:i:1;:::-;4470:164:::0;;;:::o;2260:99::-;2337:11;:9;:11::i;3363:129::-;3415:23;2278:11;:9;:11::i;:::-;-1:-1:-1;;;;;2264:25:12;:10;:25;2260:99;;3468:17:::1;:15;:17::i;:::-;3450:35;;3363:129:::0;:::o;2260:99::-;2337:11;:9;:11::i;:::-;3363:129;:::o;3697:103::-;2278:11;:9;:11::i;:::-;-1:-1:-1;;;;;2264:25:12;:10;:25;2260:99;;3771:22:::1;3784:8;3771:12;:22::i;2807:96::-:0;2850:14;2278:11;:9;:11::i;:::-;-1:-1:-1;;;;;2264:25:12;:10;:25;2260:99;;2885:11:::1;:9;:11::i;4909:207::-:0;4994:11;:9;:11::i;:::-;-1:-1:-1;;;;;4980:25:12;:10;:25;4972:104;;;;-1:-1:-1;;;4972:104:12;;1463:2:67;4972:104:12;;;1445:21:67;1502:2;1482:18;;;1475:30;1541:34;1521:18;;;1514:62;1612:34;1592:18;;;1585:62;-1:-1:-1;;;1663:19:67;;;1656:33;1706:19;;4972:104:12;;;;;;;;1148:140:8;1215:12;1246:35;:33;:35::i;948:895:10:-;1286:14;1283:1;1280;1267:34;1500:1;1497;1481:14;1478:1;1462:14;1455:5;1442:60;1576:16;1573:1;1570;1555:38;1614:6;1681:66;;;;1796:16;1793:1;1786:27;1681:66;1716:16;1713:1;1706:27;4108:122:9;4152:7;3842:66;4178:39;:45;-1:-1:-1;;;;;4178:45:9;;4108:122;-1:-1:-1;4108:122:9:o;2183:295::-;2321:29;2332:17;2321:10;:29::i;:::-;2378:1;2364:4;:11;:15;:28;;;;2383:9;2364:28;2360:112;;;2408:53;2437:17;2456:4;2408:28;:53::i;:::-;;2183:295;;;:::o;4624:135::-;4688:35;4701:11;:9;:11::i;:::-;4688:35;;;-1:-1:-1;;;;;1966:15:67;;;1948:34;;2018:15;;;2013:2;1998:18;;1991:43;1883:18;4688:35:9;;;;;;;4733:19;4743:8;4733:9;:19::i;1301:140::-;1354:7;1030:66;1380:48;1614:190:24;1897:152:9;1963:37;1982:17;1963:18;:37::i;:::-;2015:27;;-1:-1:-1;;;;;2015:27:9;;;;;;;;1897:152;:::o;6469:198:22:-;6552:12;6583:77;6604:6;6612:4;6583:77;;;;;;;;;;;;;;;;;:20;:77::i;:::-;6576:84;6469:198;-1:-1:-1;;;6469:198:22:o;4312:201:9:-;-1:-1:-1;;;;;4375:22:9;;4367:73;;;;-1:-1:-1;;;4367:73:9;;2247:2:67;4367:73:9;;;2229:21:67;2286:2;2266:18;;;2259:30;2325:34;2305:18;;;2298:62;-1:-1:-1;;;2376:18:67;;;2369:36;2422:19;;4367:73:9;2045:402:67;4367:73:9;4498:8;3842:66;4450:39;:56;;-1:-1:-1;;;;;;4450:56:9;-1:-1:-1;;;;;4450:56:9;;;;;;;;;;-1:-1:-1;4312:201:9:o;1532:259::-;-1:-1:-1;;;;;1465:19:22;;;1605:95:9;;;;-1:-1:-1;;;1605:95:9;;2654:2:67;1605:95:9;;;2636:21:67;2693:2;2673:18;;;2666:30;2732:34;2712:18;;;2705:62;-1:-1:-1;;;2783:18:67;;;2776:43;2836:19;;1605:95:9;2452:409:67;1605:95:9;1767:17;1030:66;1710:48;1614:190:24;6853:325:22;6994:12;7019;7033:23;7060:6;-1:-1:-1;;;;;7060:19:22;7080:4;7060:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7018:67;;;;7102:69;7129:6;7137:7;7146:10;7158:12;7102:26;:69::i;:::-;7095:76;6853:325;-1:-1:-1;;;;;;6853:325:22:o;7466:628::-;7646:12;7674:7;7670:418;;;7701:10;:17;7722:1;7701:22;7697:286;;-1:-1:-1;;;;;1465:19:22;;;7908:60;;;;-1:-1:-1;;;7908:60:22;;3615:2:67;7908:60:22;;;3597:21:67;3654:2;3634:18;;;3627:30;3693:31;3673:18;;;3666:59;3742:18;;7908:60:22;3413:353:67;7908:60:22;-1:-1:-1;8003:10:22;7996:17;;7670:418;8044:33;8052:10;8064:12;8044:7;:33::i;:::-;7466:628;;;;;;:::o;8616:540::-;8775:17;;:21;8771:379;;9003:10;8997:17;9059:15;9046:10;9042:2;9038:19;9031:44;8771:379;9126:12;9119:20;;-1:-1:-1;;;9119:20:22;;;;;;;;:::i;14:173:67:-;82:20;;-1:-1:-1;;;;;131:31:67;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:186::-;251:6;304:2;292:9;283:7;279:23;275:32;272:52;;;320:1;317;310:12;272:52;343:29;362:9;343:29;:::i;383:665::-;462:6;470;478;531:2;519:9;510:7;506:23;502:32;499:52;;;547:1;544;537:12;499:52;570:29;589:9;570:29;:::i;:::-;560:39;;650:2;639:9;635:18;622:32;673:18;714:2;706:6;703:14;700:34;;;730:1;727;720:12;700:34;768:6;757:9;753:22;743:32;;813:7;806:4;802:2;798:13;794:27;784:55;;835:1;832;825:12;784:55;875:2;862:16;901:2;893:6;890:14;887:34;;;917:1;914;907:12;887:34;962:7;957:2;948:6;944:2;940:15;936:24;933:37;930:57;;;983:1;980;973:12;930:57;1014:2;1010;1006:11;996:21;;1036:6;1026:16;;;;;383:665;;;;;:::o;2866:250::-;2951:1;2961:113;2975:6;2972:1;2969:13;2961:113;;;3051:11;;;3045:18;3032:11;;;3025:39;2997:2;2990:10;2961:113;;;-1:-1:-1;;3108:1:67;3090:16;;3083:27;2866:250::o;3121:287::-;3250:3;3288:6;3282:13;3304:66;3363:6;3358:3;3351:4;3343:6;3339:17;3304:66;:::i;:::-;3386:16;;;;;3121:287;-1:-1:-1;;3121:287:67:o;3771:396::-;3920:2;3909:9;3902:21;3883:4;3952:6;3946:13;3995:6;3990:2;3979:9;3975:18;3968:34;4011:79;4083:6;4078:2;4067:9;4063:18;4058:2;4050:6;4046:15;4011:79;:::i;:::-;4151:2;4130:15;-1:-1:-1;;4126:29:67;4111:45;;;;4158:2;4107:54;;3771:396;-1:-1:-1;;3771:396:67:o",
  "language": "Solidity",
  "natspec": {
    "details": "This contract implements a proxy that is upgradeable by an admin. To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector clashing], which can potentially be used in an attack, this contract uses the https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two things that go hand in hand: 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if that call matches one of the admin functions exposed by the proxy itself. 2. If the admin calls the proxy, it can access the admin functions, but its calls will never be forwarded to the implementation. If the admin tries to call a function on the implementation it will fail with an error that says \"admin cannot fallback to proxy target\". These properties mean that the admin account can only be used for admin actions like upgrading the proxy or changing the admin, so it's best if it's a dedicated account that is not used for anything else. This will avoid headaches due to sudden errors when trying to call a function from the proxy implementation. Our recommendation is for the dedicated account to be an instance of the {ProxyAdmin} contract. If set up this way, you should think of the `ProxyAdmin` instance as the real administrative interface of your proxy.",
    "events": {
      "AdminChanged(address,address)": {
        "details": "Emitted when the admin account has changed."
      },
      "BeaconUpgraded(address)": {
        "details": "Emitted when the beacon is upgraded."
      },
      "Upgraded(address)": {
        "details": "Emitted when the implementation is upgraded."
      }
    },
    "kind": "dev",
    "methods": {
      "admin()": {
        "details": "Returns the current admin. NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyAdmin}. TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call. `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103`"
      },
      "changeAdmin(address)": {
        "details": "Changes the admin of the proxy. Emits an {AdminChanged} event. NOTE: Only the admin can call this function. See {ProxyAdmin-changeProxyAdmin}."
      },
      "constructor": {
        "details": "Initializes an upgradeable proxy managed by `_admin`, backed by the implementation at `_logic`, and optionally initialized with `_data` as explained in {ERC1967Proxy-constructor}."
      },
      "implementation()": {
        "details": "Returns the current implementation. NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyImplementation}. TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call. `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc`"
      },
      "upgradeTo(address)": {
        "details": "Upgrade the implementation of the proxy. NOTE: Only the admin can call this function. See {ProxyAdmin-upgrade}."
      },
      "upgradeToAndCall(address,bytes)": {
        "details": "Upgrade the implementation of the proxy, and then call a function from the new implementation as specified by `data`, which should be an encoded function call. This is useful to initialize new storage variables in the proxied contract. NOTE: Only the admin can call this function. See {ProxyAdmin-upgradeAndCall}."
      }
    },
    "version": 1
  },
  "offset": [
    1649,
    5118
  ],
  "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3659CFE6 EQ PUSH2 0x65 JUMPI DUP1 PUSH4 0x4F1EF286 EQ PUSH2 0x85 JUMPI DUP1 PUSH4 0x5C60DA1B EQ PUSH2 0x98 JUMPI DUP1 PUSH4 0x8F283970 EQ PUSH2 0xC9 JUMPI DUP1 PUSH4 0xF851A440 EQ PUSH2 0xE9 JUMPI PUSH2 0x5D JUMP JUMPDEST CALLDATASIZE PUSH2 0x5D JUMPI PUSH2 0x5B PUSH2 0xFE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x5B PUSH2 0xFE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x71 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5B PUSH2 0x80 CALLDATASIZE PUSH1 0x4 PUSH2 0x6B3 JUMP JUMPDEST PUSH2 0x118 JUMP JUMPDEST PUSH2 0x5B PUSH2 0x93 CALLDATASIZE PUSH1 0x4 PUSH2 0x6CE JUMP JUMPDEST PUSH2 0x155 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xAD PUSH2 0x1BC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xD5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5B PUSH2 0xE4 CALLDATASIZE PUSH1 0x4 PUSH2 0x6B3 JUMP JUMPDEST PUSH2 0x1ED JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xF5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xAD PUSH2 0x20D JUMP JUMPDEST PUSH2 0x106 PUSH2 0x22E JUMP JUMPDEST PUSH2 0x116 PUSH2 0x111 PUSH2 0x2C3 JUMP JUMPDEST PUSH2 0x2CD JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x120 PUSH2 0x2F1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER SUB PUSH2 0x14D JUMPI PUSH2 0x14A DUP2 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH1 0x0 PUSH2 0x324 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x14A PUSH2 0xFE JUMP JUMPDEST PUSH2 0x15D PUSH2 0x2F1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER SUB PUSH2 0x1B4 JUMPI PUSH2 0x1AF DUP4 DUP4 DUP4 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH1 0x1 SWAP3 POP PUSH2 0x324 SWAP2 POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x1AF PUSH2 0xFE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C6 PUSH2 0x2F1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER SUB PUSH2 0x1E2 JUMPI PUSH2 0x1DD PUSH2 0x2C3 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x1EA PUSH2 0xFE JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0x1F5 PUSH2 0x2F1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER SUB PUSH2 0x14D JUMPI PUSH2 0x14A DUP2 PUSH2 0x34F JUMP JUMPDEST PUSH1 0x0 PUSH2 0x217 PUSH2 0x2F1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER SUB PUSH2 0x1E2 JUMPI PUSH2 0x1DD PUSH2 0x2F1 JUMP JUMPDEST PUSH2 0x236 PUSH2 0x2F1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER SUB PUSH2 0x116 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x42 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5472616E73706172656E745570677261646561626C6550726F78793A2061646D PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x696E2063616E6E6F742066616C6C6261636B20746F2070726F78792074617267 PUSH1 0x64 DUP3 ADD MSTORE PUSH2 0x195D PUSH1 0xF2 SHL PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1DD PUSH2 0x3A3 JUMP JUMPDEST CALLDATASIZE PUSH1 0x0 DUP1 CALLDATACOPY PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x0 DUP5 GAS DELEGATECALL RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY DUP1 DUP1 ISZERO PUSH2 0x2EC JUMPI RETURNDATASIZE PUSH1 0x0 RETURN JUMPDEST RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 JUMPDEST SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x32D DUP4 PUSH2 0x3CB JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD GT DUP1 PUSH2 0x33A JUMPI POP DUP1 JUMPDEST ISZERO PUSH2 0x1AF JUMPI PUSH2 0x349 DUP4 DUP4 PUSH2 0x40B JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH32 0x7E644D79422F17C01E4894B5F4F588D331EBFA28653D42AE832DC59E38C9798F PUSH2 0x378 PUSH2 0x2F1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND DUP2 MSTORE SWAP2 DUP5 AND PUSH1 0x20 DUP4 ADD MSTORE ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH2 0x14A DUP2 PUSH2 0x437 JUMP JUMPDEST PUSH1 0x0 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC PUSH2 0x315 JUMP JUMPDEST PUSH2 0x3D4 DUP2 PUSH2 0x4E0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x430 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x7C5 PUSH1 0x27 SWAP2 CODECOPY PUSH2 0x574 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x49C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243313936373A206E65772061646D696E20697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x2BA JUMP JUMPDEST DUP1 PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE PUSH2 0x54D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243313936373A206E657720696D706C656D656E746174696F6E206973206E PUSH1 0x44 DUP3 ADD MSTORE PUSH13 0x1BDD08184818DBDB9D1C9858DD PUSH1 0x9A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x2BA JUMP JUMPDEST DUP1 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC PUSH2 0x4BF JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x40 MLOAD PUSH2 0x591 SWAP2 SWAP1 PUSH2 0x775 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x5CC JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x5D1 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x5E2 DUP7 DUP4 DUP4 DUP8 PUSH2 0x5EC JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x65B JUMPI DUP3 MLOAD PUSH1 0x0 SUB PUSH2 0x654 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND EXTCODESIZE PUSH2 0x654 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A2063616C6C20746F206E6F6E2D636F6E7472616374000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x2BA JUMP JUMPDEST POP DUP2 PUSH2 0x665 JUMP JUMPDEST PUSH2 0x665 DUP4 DUP4 PUSH2 0x66D JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP2 MLOAD ISZERO PUSH2 0x67D JUMPI DUP2 MLOAD DUP1 DUP4 PUSH1 0x20 ADD REVERT JUMPDEST DUP1 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2BA SWAP2 SWAP1 PUSH2 0x791 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x6AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x6C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x430 DUP3 PUSH2 0x697 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x6E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x6EC DUP5 PUSH2 0x697 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x709 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x71D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x72C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP8 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x73E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP5 POP DUP1 SWAP4 POP POP POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x76C JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x754 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x787 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x751 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x7B0 DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x751 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP INVALID COINBASE PUSH5 0x6472657373 GASPRICE KECCAK256 PUSH13 0x6F772D6C6576656C2064656C65 PUSH8 0x6174652063616C6C KECCAK256 PUSH7 0x61696C6564A264 PUSH10 0x7066735822122087EBF5 PUSH4 0x41088D5F PUSH6 0x5D1FB4B7151F 0xD6 0xAF KECCAK256 GT DUP6 ISZERO SHL PUSH31 0x43D1472B32111B119364736F6C634300081300330000000000000000000000 ",
  "pcMap": {
    "0": {
      "offset": [
        1649,
        5118
      ],
      "op": "PUSH1",
      "path": "12",
      "value": "0x80"
    },
    "2": {
      "fn": null,
      "offset": [
        1649,
        5118
      ],
      "op": "PUSH1",
      "path": "12",
      "value": "0x40"
    },
    "4": {
      "fn": null,
      "offset": [
        1649,
        5118
      ],
      "op": "MSTORE",
      "path": "12"
    },
    "5": {
      "fn": null,
      "offset": [
        1649,
        5118
      ],
      "op": "PUSH1",
      "path": "12",
      "value": "0x4"
    },
    "7": {
      "fn": null,
      "offset": [
        1649,
        5118
      ],
      "op": "CALLDATASIZE",
      "path": "12"
    },
    "8": {
      "fn": null,
      "offset": [
        1649,
        5118
      ],
      "op": "LT",
      "path": "12"
    },
    "9": {
      "fn": null,
      "offset": [
        1649,
        5118
      ],
      "op": "PUSH2",
      "path": "12",
      "value": "0x4E"
    },
    "12": {
      "fn": null,
      "offset": [
        1649,
        5118
      ],
      "op": "JUMPI",
      "path": "12"
    },
    "13": {
      "fn": null,
      "offset": [
        1649,
        5118
      ],
      "op": "PUSH1",
      "path": "12",
      "value": "0x0"
    },
    "15": {
      "fn": null,
      "offset": [
        1649,
        5118
      ],
      "op": "CALLDATALOAD",
      "path": "12"
    },
    "16": {
      "fn": null,
      "offset": [
        1649,
        5118
      ],
      "op": "PUSH1",
      "path": "12",
      "value": "0xE0"
    },
    "18": {
      "fn": null,
      "offset": [
        1649,
        5118
      ],
      "op": "SHR",
      "path": "12"
    },
    "19": {
      "fn": null,
      "offset": [
        1649,
        5118
      ],
      "op": "DUP1",
      "path": "12"
    },
    "20": {
      "fn": null,
      "offset": [
        1649,
        5118
      ],
      "op": "PUSH4",
      "path": "12",
      "value": "0x3659CFE6"
    },
    "25": {
      "fn": null,
      "offset": [
        1649,
        5118
      ],
      "op": "EQ",
      "path": "12"
    },
    "26": {
      "fn": null,
      "offset": [
        1649,
        5118
      ],
      "op": "PUSH2",
      "path": "12",
      "value": "0x65"
    },
    "29": {
      "fn": null,
      "offset": [
        1649,
        5118
      ],
      "op": "JUMPI",
      "path": "12"
    },
    "30": {
      "fn": null,
      "offset": [
        1649,
        5118
      ],
      "op": "DUP1",
      "path": "12"
    },
    "31": {
      "fn": null,
      "offset": [
        1649,
        5118
      ],
      "op": "PUSH4",
      "path": "12",
      "value": "0x4F1EF286"
    },
    "36": {
      "fn": null,
      "offset": [
        1649,
        5118
      ],
      "op": "EQ",
      "path": "12"
    },
    "37": {
      "fn": null,
      "offset": [
        1649,
        5118
      ],
      "op": "PUSH2",
      "path": "12",
      "value": "0x85"
    },
    "40": {
      "fn": null,
      "offset": [
        1649,
        5118
      ],
      "op": "JUMPI",
      "path": "12"
    },
    "41": {
      "fn": null,
      "offset": [
        1649,
        5118
      ],
      "op": "DUP1",
      "path": "12"
    },
    "42": {
      "fn": null,
      "offset": [
        1649,
        5118
      ],
      "op": "PUSH4",
      "path": "12",
      "value": "0x5C60DA1B"
    },
    "47": {
      "fn": null,
      "offset": [
        1649,
        5118
      ],
      "op": "EQ",
      "path": "12"
    },
    "48": {
      "fn": null,
      "offset": [
        1649,
        5118
      ],
      "op": "PUSH2",
      "path": "12",
      "value": "0x98"
    },
    "51": {
      "fn": null,
      "offset": [
        1649,
        5118
      ],
      "op": "JUMPI",
      "path": "12"
    },
    "52": {
      "fn": null,
      "offset": [
        1649,
        5118
      ],
      "op": "DUP1",
      "path": "12"
    },
    "53": {
      "fn": null,
      "offset": [
        1649,
        5118
      ],
      "op": "PUSH4",
      "path": "12",
      "value": "0x8F283970"
    },
    "58": {
      "fn": null,
      "offset": [
        1649,
        5118
      ],
      "op": "EQ",
      "path": "12"
    },
    "59": {
      "fn": null,
      "offset": [
        1649,
        5118
      ],
      "op": "PUSH2",
      "path": "12",
      "value": "0xC9"
    },
    "62": {
      "fn": null,
      "offset": [
        1649,
        5118
      ],
      "op": "JUMPI",
      "path": "12"
    },
    "63": {
      "fn": null,
      "offset": [
        1649,
        5118
      ],
      "op": "DUP1",
      "path": "12"
    },
    "64": {
      "fn": null,
      "offset": [
        1649,
        5118
      ],
      "op": "PUSH4",
      "path": "12",
      "value": "0xF851A440"
    },
    "69": {
      "fn": null,
      "offset": [
        1649,
        5118
      ],
      "op": "EQ",
      "path": "12"
    },
    "70": {
      "fn": null,
      "offset": [
        1649,
        5118
      ],
      "op": "PUSH2",
      "path": "12",
      "value": "0xE9"
    },
    "73": {
      "fn": null,
      "offset": [
        1649,
        5118
      ],
      "op": "JUMPI",
      "path": "12"
    },
    "74": {
      "fn": null,
      "offset": [
        1649,
        5118
      ],
      "op": "PUSH2",
      "path": "12",
      "value": "0x5D"
    },
    "77": {
      "fn": null,
      "offset": [
        1649,
        5118
      ],
      "op": "JUMP",
      "path": "12"
    },
    "78": {
      "fn": null,
      "offset": [
        1649,
        5118
      ],
      "op": "JUMPDEST",
      "path": "12"
    },
    "79": {
      "fn": null,
      "offset": [
        1649,
        5118
      ],
      "op": "CALLDATASIZE",
      "path": "12"
    },
    "80": {
      "fn": null,
      "offset": [
        1649,
        5118
      ],
      "op": "PUSH2",
      "path": "12",
      "value": "0x5D"
    },
    "83": {
      "fn": null,
      "offset": [
        1649,
        5118
      ],
      "op": "JUMPI",
      "path": "12"
    },
    "84": {
      "fn": "Proxy.<receive>",
      "offset": [
        2898,
        2909
      ],
      "op": "PUSH2",
      "path": "10",
      "statement": 0,
      "value": "0x5B"
    },
    "87": {
      "fn": "Proxy.<receive>",
      "offset": [
        2898,
        2907
      ],
      "op": "PUSH2",
      "path": "10",
      "value": "0xFE"
    },
    "90": {
      "fn": "Proxy.<receive>",
      "jump": "i",
      "offset": [
        2898,
        2909
      ],
      "op": "JUMP",
      "path": "10"
    },
    "91": {
      "fn": "Proxy.<receive>",
      "offset": [
        2898,
        2909
      ],
      "op": "JUMPDEST",
      "path": "10"
    },
    "92": {
      "offset": [
        1649,
        5118
      ],
      "op": "STOP",
      "path": "12"
    },
    "93": {
      "fn": "Proxy.<receive>",
      "offset": [
        1649,
        5118
      ],
      "op": "JUMPDEST",
      "path": "12"
    },
    "94": {
      "fn": "Proxy.<fallback>",
      "offset": [
        2675,
        2686
      ],
      "op": "PUSH2",
      "path": "10",
      "statement": 1,
      "value": "0x5B"
    },
    "97": {
      "fn": "Proxy.<fallback>",
      "offset": [
        2675,
        2684
      ],
      "op": "PUSH2",
      "path": "10",
      "value": "0xFE"
    },
    "100": {
      "fn": "Proxy.<fallback>",
      "jump": "i",
      "offset": [
        2675,
        2686
      ],
      "op": "JUMP",
      "path": "10"
    },
    "101": {
      "fn": "TransparentUpgradeableProxy.upgradeTo",
      "offset": [
        3960,
        4094
      ],
      "op": "JUMPDEST",
      "path": "12"
    },
    "102": {
      "fn": "TransparentUpgradeableProxy.upgradeTo",
      "offset": [
        3960,
        4094
      ],
      "op": "CALLVALUE",
      "path": "12"
    },
    "103": {
      "fn": "TransparentUpgradeableProxy.upgradeTo",
      "offset": [
        3960,
        4094
      ],
      "op": "DUP1",
      "path": "12"
    },
    "104": {
      "fn": "TransparentUpgradeableProxy.upgradeTo",
      "offset": [
        3960,
        4094
      ],
      "op": "ISZERO",
      "path": "12"
    },
    "105": {
      "fn": "TransparentUpgradeableProxy.upgradeTo",
      "offset": [
        3960,
        4094
      ],
      "op": "PUSH2",
      "path": "12",
      "value": "0x71"
    },
    "108": {
      "fn": "TransparentUpgradeableProxy.upgradeTo",
      "offset": [
        3960,
        4094
      ],
      "op": "JUMPI",
      "path": "12"
    },
    "109": {
      "fn": "TransparentUpgradeableProxy.upgradeTo",
      "offset": [
        3960,
        4094
      ],
      "op": "PUSH1",
      "path": "12",
      "value": "0x0"
    },
    "111": {
      "fn": "TransparentUpgradeableProxy.upgradeTo",
      "offset": [
        3960,
        4094
      ],
      "op": "DUP1",
      "path": "12"
    },
    "112": {
      "fn": "TransparentUpgradeableProxy.upgradeTo",
      "offset": [
        3960,
        4094
      ],
      "op": "REVERT",
      "path": "12"
    },
    "113": {
      "fn": "TransparentUpgradeableProxy.upgradeTo",
      "offset": [
        3960,
        4094
      ],
      "op": "JUMPDEST",
      "path": "12"
    },
    "114": {
      "op": "POP"
    },
    "115": {
      "fn": "TransparentUpgradeableProxy.upgradeTo",
      "offset": [
        3960,
        4094
      ],
      "op": "PUSH2",
      "path": "12",
      "value": "0x5B"
    },
    "118": {
      "fn": "TransparentUpgradeableProxy.upgradeTo",
      "offset": [
        3960,
        4094
      ],
      "op": "PUSH2",
      "path": "12",
      "value": "0x80"
    },
    "121": {
      "fn": "TransparentUpgradeableProxy.upgradeTo",
      "offset": [
        3960,
        4094
      ],
      "op": "CALLDATASIZE",
      "path": "12"
    },
    "122": {
      "fn": "TransparentUpgradeableProxy.upgradeTo",
      "offset": [
        3960,
        4094
      ],
      "op": "PUSH1",
      "path": "12",
      "value": "0x4"
    },
    "124": {
      "fn": "TransparentUpgradeableProxy.upgradeTo",
      "offset": [
        3960,
        4094
      ],
      "op": "PUSH2",
      "path": "12",
      "value": "0x6B3"
    },
    "127": {
      "fn": "TransparentUpgradeableProxy.upgradeTo",
      "jump": "i",
      "offset": [
        3960,
        4094
      ],
      "op": "JUMP",
      "path": "12"
    },
    "128": {
      "fn": "TransparentUpgradeableProxy.upgradeTo",
      "offset": [
        3960,
        4094
      ],
      "op": "JUMPDEST",
      "path": "12"
    },
    "129": {
      "fn": "TransparentUpgradeableProxy.upgradeTo",
      "offset": [
        3960,
        4094
      ],
      "op": "PUSH2",
      "path": "12",
      "value": "0x118"
    },
    "132": {
      "fn": "TransparentUpgradeableProxy.upgradeTo",
      "jump": "i",
      "offset": [
        3960,
        4094
      ],
      "op": "JUMP",
      "path": "12"
    },
    "133": {
      "fn": "TransparentUpgradeableProxy.upgradeToAndCall",
      "offset": [
        4470,
        4634
      ],
      "op": "JUMPDEST",
      "path": "12"
    },
    "134": {
      "fn": "TransparentUpgradeableProxy.upgradeToAndCall",
      "offset": [
        4470,
        4634
      ],
      "op": "PUSH2",
      "path": "12",
      "value": "0x5B"
    },
    "137": {
      "fn": "TransparentUpgradeableProxy.upgradeToAndCall",
      "offset": [
        4470,
        4634
      ],
      "op": "PUSH2",
      "path": "12",
      "value": "0x93"
    },
    "140": {
      "fn": "TransparentUpgradeableProxy.upgradeToAndCall",
      "offset": [
        4470,
        4634
      ],
      "op": "CALLDATASIZE",
      "path": "12"
    },
    "141": {
      "fn": "TransparentUpgradeableProxy.upgradeToAndCall",
      "offset": [
        4470,
        4634
      ],
      "op": "PUSH1",
      "path": "12",
      "value": "0x4"
    },
    "143": {
      "fn": "TransparentUpgradeableProxy.upgradeToAndCall",
      "offset": [
        4470,
        4634
      ],
      "op": "PUSH2",
      "path": "12",
      "value": "0x6CE"
    },
    "146": {
      "fn": "TransparentUpgradeableProxy.upgradeToAndCall",
      "jump": "i",
      "offset": [
        4470,
        4634
      ],
      "op": "JUMP",
      "path": "12"
    },
    "147": {
      "fn": "TransparentUpgradeableProxy.upgradeToAndCall",
      "offset": [
        4470,
        4634
      ],
      "op": "JUMPDEST",
      "path": "12"
    },
    "148": {
      "fn": "TransparentUpgradeableProxy.upgradeToAndCall",
      "offset": [
        4470,
        4634
      ],
      "op": "PUSH2",
      "path": "12",
      "value": "0x155"
    },
    "151": {
      "fn": "TransparentUpgradeableProxy.upgradeToAndCall",
      "jump": "i",
      "offset": [
        4470,
        4634
      ],
      "op": "JUMP",
      "path": "12"
    },
    "152": {
      "fn": "TransparentUpgradeableProxy.implementation",
      "offset": [
        3363,
        3492
      ],
      "op": "JUMPDEST",
      "path": "12"
    },
    "153": {
      "fn": "TransparentUpgradeableProxy.implementation",
      "offset": [
        3363,
        3492
      ],
      "op": "CALLVALUE",
      "path": "12"
    },
    "154": {
      "fn": "TransparentUpgradeableProxy.implementation",
      "offset": [
        3363,
        3492
      ],
      "op": "DUP1",
      "path": "12"
    },
    "155": {
      "fn": "TransparentUpgradeableProxy.implementation",
      "offset": [
        3363,
        3492
      ],
      "op": "ISZERO",
      "path": "12"
    },
    "156": {
      "fn": "TransparentUpgradeableProxy.implementation",
      "offset": [
        3363,
        3492
      ],
      "op": "PUSH2",
      "path": "12",
      "value": "0xA4"
    },
    "159": {
      "fn": "TransparentUpgradeableProxy.implementation",
      "offset": [
        3363,
        3492
      ],
      "op": "JUMPI",
      "path": "12"
    },
    "160": {
      "fn": "TransparentUpgradeableProxy.implementation",
      "offset": [
        3363,
        3492
      ],
      "op": "PUSH1",
      "path": "12",
      "value": "0x0"
    },
    "162": {
      "fn": "TransparentUpgradeableProxy.implementation",
      "offset": [
        3363,
        3492
      ],
      "op": "DUP1",
      "path": "12"
    },
    "163": {
      "fn": "TransparentUpgradeableProxy.implementation",
      "offset": [
        3363,
        3492
      ],
      "op": "REVERT",
      "path": "12"
    },
    "164": {
      "fn": "TransparentUpgradeableProxy.implementation",
      "offset": [
        3363,
        3492
      ],
      "op": "JUMPDEST",
      "path": "12"
    },
    "165": {
      "fn": "TransparentUpgradeableProxy.implementation",
      "offset": [
        3363,
        3492
      ],
      "op": "POP",
      "path": "12"
    },
    "166": {
      "fn": "TransparentUpgradeableProxy.implementation",
      "offset": [
        3363,
        3492
      ],
      "op": "PUSH2",
      "path": "12",
      "value": "0xAD"
    },
    "169": {
      "fn": "TransparentUpgradeableProxy.implementation",
      "offset": [
        3363,
        3492
      ],
      "op": "PUSH2",
      "path": "12",
      "value": "0x1BC"
    },
    "172": {
      "fn": "TransparentUpgradeableProxy.implementation",
      "jump": "i",
      "offset": [
        3363,
        3492
      ],
      "op": "JUMP",
      "path": "12"
    },
    "173": {
      "fn": "TransparentUpgradeableProxy.implementation",
      "offset": [
        3363,
        3492
      ],
      "op": "JUMPDEST",
      "path": "12"
    },
    "174": {
      "fn": "TransparentUpgradeableProxy.implementation",
      "offset": [
        3363,
        3492
      ],
      "op": "PUSH1",
      "path": "12",
      "value": "0x40"
    },
    "176": {
      "fn": "TransparentUpgradeableProxy.implementation",
      "offset": [
        3363,
        3492
      ],
      "op": "MLOAD",
      "path": "12"
    },
    "177": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "179": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "181": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "183": {
      "op": "SHL"
    },
    "184": {
      "op": "SUB"
    },
    "185": {
      "op": "SWAP1"
    },
    "186": {
      "op": "SWAP2"
    },
    "187": {
      "op": "AND"
    },
    "188": {
      "op": "DUP2"
    },
    "189": {
      "op": "MSTORE"
    },
    "190": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "192": {
      "op": "ADD"
    },
    "193": {
      "fn": "TransparentUpgradeableProxy.implementation",
      "offset": [
        3363,
        3492
      ],
      "op": "PUSH1",
      "path": "12",
      "value": "0x40"
    },
    "195": {
      "fn": "TransparentUpgradeableProxy.implementation",
      "offset": [
        3363,
        3492
      ],
      "op": "MLOAD",
      "path": "12"
    },
    "196": {
      "fn": "TransparentUpgradeableProxy.implementation",
      "offset": [
        3363,
        3492
      ],
      "op": "DUP1",
      "path": "12"
    },
    "197": {
      "fn": "TransparentUpgradeableProxy.implementation",
      "offset": [
        3363,
        3492
      ],
      "op": "SWAP2",
      "path": "12"
    },
    "198": {
      "fn": "TransparentUpgradeableProxy.implementation",
      "offset": [
        3363,
        3492
      ],
      "op": "SUB",
      "path": "12"
    },
    "199": {
      "fn": "TransparentUpgradeableProxy.implementation",
      "offset": [
        3363,
        3492
      ],
      "op": "SWAP1",
      "path": "12"
    },
    "200": {
      "fn": "TransparentUpgradeableProxy.implementation",
      "offset": [
        3363,
        3492
      ],
      "op": "RETURN",
      "path": "12"
    },
    "201": {
      "fn": "TransparentUpgradeableProxy.changeAdmin",
      "offset": [
        3697,
        3800
      ],
      "op": "JUMPDEST",
      "path": "12"
    },
    "202": {
      "fn": "TransparentUpgradeableProxy.changeAdmin",
      "offset": [
        3697,
        3800
      ],
      "op": "CALLVALUE",
      "path": "12"
    },
    "203": {
      "fn": "TransparentUpgradeableProxy.changeAdmin",
      "offset": [
        3697,
        3800
      ],
      "op": "DUP1",
      "path": "12"
    },
    "204": {
      "fn": "TransparentUpgradeableProxy.changeAdmin",
      "offset": [
        3697,
        3800
      ],
      "op": "ISZERO",
      "path": "12"
    },
    "205": {
      "fn": "TransparentUpgradeableProxy.changeAdmin",
      "offset": [
        3697,
        3800
      ],
      "op": "PUSH2",
      "path": "12",
      "value": "0xD5"
    },
    "208": {
      "fn": "TransparentUpgradeableProxy.changeAdmin",
      "offset": [
        3697,
        3800
      ],
      "op": "JUMPI",
      "path": "12"
    },
    "209": {
      "fn": "TransparentUpgradeableProxy.changeAdmin",
      "offset": [
        3697,
        3800
      ],
      "op": "PUSH1",
      "path": "12",
      "value": "0x0"
    },
    "211": {
      "fn": "TransparentUpgradeableProxy.changeAdmin",
      "offset": [
        3697,
        3800
      ],
      "op": "DUP1",
      "path": "12"
    },
    "212": {
      "fn": "TransparentUpgradeableProxy.changeAdmin",
      "offset": [
        3697,
        3800
      ],
      "op": "REVERT",
      "path": "12"
    },
    "213": {
      "fn": "TransparentUpgradeableProxy.changeAdmin",
      "offset": [
        3697,
        3800
      ],
      "op": "JUMPDEST",
      "path": "12"
    },
    "214": {
      "op": "POP"
    },
    "215": {
      "fn": "TransparentUpgradeableProxy.changeAdmin",
      "offset": [
        3697,
        3800
      ],
      "op": "PUSH2",
      "path": "12",
      "value": "0x5B"
    },
    "218": {
      "fn": "TransparentUpgradeableProxy.changeAdmin",
      "offset": [
        3697,
        3800
      ],
      "op": "PUSH2",
      "path": "12",
      "value": "0xE4"
    },
    "221": {
      "fn": "TransparentUpgradeableProxy.changeAdmin",
      "offset": [
        3697,
        3800
      ],
      "op": "CALLDATASIZE",
      "path": "12"
    },
    "222": {
      "fn": "TransparentUpgradeableProxy.changeAdmin",
      "offset": [
        3697,
        3800
      ],
      "op": "PUSH1",
      "path": "12",
      "value": "0x4"
    },
    "224": {
      "fn": "TransparentUpgradeableProxy.changeAdmin",
      "offset": [
        3697,
        3800
      ],
      "op": "PUSH2",
      "path": "12",
      "value": "0x6B3"
    },
    "227": {
      "fn": "TransparentUpgradeableProxy.changeAdmin",
      "jump": "i",
      "offset": [
        3697,
        3800
      ],
      "op": "JUMP",
      "path": "12"
    },
    "228": {
      "fn": "TransparentUpgradeableProxy.changeAdmin",
      "offset": [
        3697,
        3800
      ],
      "op": "JUMPDEST",
      "path": "12"
    },
    "229": {
      "fn": "TransparentUpgradeableProxy.changeAdmin",
      "offset": [
        3697,
        3800
      ],
      "op": "PUSH2",
      "path": "12",
      "value": "0x1ED"
    },
    "232": {
      "fn": "TransparentUpgradeableProxy.changeAdmin",
      "jump": "i",
      "offset": [
        3697,
        3800
      ],
      "op": "JUMP",
      "path": "12"
    },
    "233": {
      "fn": "TransparentUpgradeableProxy.admin",
      "offset": [
        2807,
        2903
      ],
      "op": "JUMPDEST",
      "path": "12"
    },
    "234": {
      "fn": "TransparentUpgradeableProxy.admin",
      "offset": [
        2807,
        2903
      ],
      "op": "CALLVALUE",
      "path": "12"
    },
    "235": {
      "fn": "TransparentUpgradeableProxy.admin",
      "offset": [
        2807,
        2903
      ],
      "op": "DUP1",
      "path": "12"
    },
    "236": {
      "fn": "TransparentUpgradeableProxy.admin",
      "offset": [
        2807,
        2903
      ],
      "op": "ISZERO",
      "path": "12"
    },
    "237": {
      "fn": "TransparentUpgradeableProxy.admin",
      "offset": [
        2807,
        2903
      ],
      "op": "PUSH2",
      "path": "12",
      "value": "0xF5"
    },
    "240": {
      "fn": "TransparentUpgradeableProxy.admin",
      "offset": [
        2807,
        2903
      ],
      "op": "JUMPI",
      "path": "12"
    },
    "241": {
      "fn": "TransparentUpgradeableProxy.admin",
      "offset": [
        2807,
        2903
      ],
      "op": "PUSH1",
      "path": "12",
      "value": "0x0"
    },
    "243": {
      "fn": "TransparentUpgradeableProxy.admin",
      "offset": [
        2807,
        2903
      ],
      "op": "DUP1",
      "path": "12"
    },
    "244": {
      "fn": "TransparentUpgradeableProxy.admin",
      "offset": [
        2807,
        2903
      ],
      "op": "REVERT",
      "path": "12"
    },
    "245": {
      "fn": "TransparentUpgradeableProxy.admin",
      "offset": [
        2807,
        2903
      ],
      "op": "JUMPDEST",
      "path": "12"
    },
    "246": {
      "fn": "TransparentUpgradeableProxy.admin",
      "offset": [
        2807,
        2903
      ],
      "op": "POP",
      "path": "12"
    },
    "247": {
      "fn": "TransparentUpgradeableProxy.admin",
      "offset": [
        2807,
        2903
      ],
      "op": "PUSH2",
      "path": "12",
      "value": "0xAD"
    },
    "250": {
      "fn": "TransparentUpgradeableProxy.admin",
      "offset": [
        2807,
        2903
      ],
      "op": "PUSH2",
      "path": "12",
      "value": "0x20D"
    },
    "253": {
      "fn": "TransparentUpgradeableProxy.admin",
      "jump": "i",
      "offset": [
        2807,
        2903
      ],
      "op": "JUMP",
      "path": "12"
    },
    "254": {
      "fn": "Proxy._fallback",
      "offset": [
        2322,
        2432
      ],
      "op": "JUMPDEST",
      "path": "10"
    },
    "255": {
      "fn": "Proxy._fallback",
      "offset": [
        2370,
        2387
      ],
      "op": "PUSH2",
      "path": "10",
      "statement": 2,
      "value": "0x106"
    },
    "258": {
      "fn": "Proxy._fallback",
      "offset": [
        2370,
        2385
      ],
      "op": "PUSH2",
      "path": "10",
      "value": "0x22E"
    },
    "261": {
      "fn": "Proxy._fallback",
      "jump": "i",
      "offset": [
        2370,
        2387
      ],
      "op": "JUMP",
      "path": "10"
    },
    "262": {
      "fn": "Proxy._fallback",
      "offset": [
        2370,
        2387
      ],
      "op": "JUMPDEST",
      "path": "10"
    },
    "263": {
      "fn": "Proxy._fallback",
      "offset": [
        2397,
        2425
      ],
      "op": "PUSH2",
      "path": "10",
      "statement": 3,
      "value": "0x116"
    },
    "266": {
      "fn": "Proxy._fallback",
      "offset": [
        2407,
        2424
      ],
      "op": "PUSH2",
      "path": "10",
      "value": "0x111"
    },
    "269": {
      "fn": "Proxy._fallback",
      "offset": [
        2407,
        2422
      ],
      "op": "PUSH2",
      "path": "10",
      "value": "0x2C3"
    },
    "272": {
      "fn": "Proxy._fallback",
      "jump": "i",
      "offset": [
        2407,
        2424
      ],
      "op": "JUMP",
      "path": "10"
    },
    "273": {
      "fn": "Proxy._fallback",
      "offset": [
        2407,
        2424
      ],
      "op": "JUMPDEST",
      "path": "10"
    },
    "274": {
      "fn": "Proxy._fallback",
      "offset": [
        2397,
        2406
      ],
      "op": "PUSH2",
      "path": "10",
      "value": "0x2CD"
    },
    "277": {
      "fn": "Proxy._fallback",
      "jump": "i",
      "offset": [
        2397,
        2425
      ],
      "op": "JUMP",
      "path": "10"
    },
    "278": {
      "fn": "Proxy._fallback",
      "offset": [
        2397,
        2425
      ],
      "op": "JUMPDEST",
      "path": "10"
    },
    "279": {
      "fn": "Proxy._fallback",
      "jump": "o",
      "offset": [
        2322,
        2432
      ],
      "op": "JUMP",
      "path": "10"
    },
    "280": {
      "fn": "TransparentUpgradeableProxy.upgradeTo",
      "offset": [
        3960,
        4094
      ],
      "op": "JUMPDEST",
      "path": "12"
    },
    "281": {
      "offset": [
        2278,
        2289
      ],
      "op": "PUSH2",
      "path": "12",
      "value": "0x120"
    },
    "284": {
      "offset": [
        2278,
        2287
      ],
      "op": "PUSH2",
      "path": "12",
      "value": "0x2F1"
    },
    "287": {
      "jump": "i",
      "offset": [
        2278,
        2289
      ],
      "op": "JUMP",
      "path": "12"
    },
    "288": {
      "fn": "TransparentUpgradeableProxy.upgradeTo",
      "offset": [
        2278,
        2289
      ],
      "op": "JUMPDEST",
      "path": "12"
    },
    "289": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "291": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "293": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "295": {
      "op": "SHL"
    },
    "296": {
      "op": "SUB"
    },
    "297": {
      "offset": [
        2264,
        2289
      ],
      "op": "AND",
      "path": "12"
    },
    "298": {
      "offset": [
        2264,
        2274
      ],
      "op": "CALLER",
      "path": "12"
    },
    "299": {
      "offset": [
        2264,
        2289
      ],
      "op": "SUB",
      "path": "12"
    },
    "300": {
      "offset": [
        2260,
        2359
      ],
      "op": "PUSH2",
      "path": "12",
      "value": "0x14D"
    },
    "303": {
      "offset": [
        2260,
        2359
      ],
      "op": "JUMPI",
      "path": "12"
    },
    "304": {
      "fn": "TransparentUpgradeableProxy.upgradeTo",
      "offset": [
        4033,
        4087
      ],
      "op": "PUSH2",
      "path": "12",
      "statement": 4,
      "value": "0x14A"
    },
    "307": {
      "fn": "TransparentUpgradeableProxy.upgradeTo",
      "offset": [
        4051,
        4068
      ],
      "op": "DUP2",
      "path": "12"
    },
    "308": {
      "fn": "TransparentUpgradeableProxy.upgradeTo",
      "offset": [
        4070,
        4079
      ],
      "op": "PUSH1",
      "path": "12",
      "value": "0x40"
    },
    "310": {
      "fn": "TransparentUpgradeableProxy.upgradeTo",
      "offset": [
        4070,
        4079
      ],
      "op": "MLOAD",
      "path": "12"
    },
    "311": {
      "fn": "TransparentUpgradeableProxy.upgradeTo",
      "offset": [
        4070,
        4079
      ],
      "op": "DUP1",
      "path": "12"
    },
    "312": {
      "fn": "TransparentUpgradeableProxy.upgradeTo",
      "offset": [
        4070,
        4079
      ],
      "op": "PUSH1",
      "path": "12",
      "value": "0x20"
    },
    "314": {
      "fn": "TransparentUpgradeableProxy.upgradeTo",
      "offset": [
        4070,
        4079
      ],
      "op": "ADD",
      "path": "12"
    },
    "315": {
      "fn": "TransparentUpgradeableProxy.upgradeTo",
      "offset": [
        4070,
        4079
      ],
      "op": "PUSH1",
      "path": "12",
      "value": "0x40"
    },
    "317": {
      "fn": "TransparentUpgradeableProxy.upgradeTo",
      "offset": [
        4070,
        4079
      ],
      "op": "MSTORE",
      "path": "12"
    },
    "318": {
      "fn": "TransparentUpgradeableProxy.upgradeTo",
      "offset": [
        4070,
        4079
      ],
      "op": "DUP1",
      "path": "12"
    },
    "319": {
      "fn": "TransparentUpgradeableProxy.upgradeTo",
      "offset": [
        4070,
        4079
      ],
      "op": "PUSH1",
      "path": "12",
      "value": "0x0"
    },
    "321": {
      "fn": "TransparentUpgradeableProxy.upgradeTo",
      "offset": [
        4070,
        4079
      ],
      "op": "DUP2",
      "path": "12"
    },
    "322": {
      "fn": "TransparentUpgradeableProxy.upgradeTo",
      "offset": [
        4070,
        4079
      ],
      "op": "MSTORE",
      "path": "12"
    },
    "323": {
      "fn": "TransparentUpgradeableProxy.upgradeTo",
      "offset": [
        4070,
        4079
      ],
      "op": "POP",
      "path": "12"
    },
    "324": {
      "fn": "TransparentUpgradeableProxy.upgradeTo",
      "offset": [
        4081,
        4086
      ],
      "op": "PUSH1",
      "path": "12",
      "value": "0x0"
    },
    "326": {
      "fn": "TransparentUpgradeableProxy.upgradeTo",
      "offset": [
        4033,
        4050
      ],
      "op": "PUSH2",
      "path": "12",
      "value": "0x324"
    },
    "329": {
      "fn": "TransparentUpgradeableProxy.upgradeTo",
      "jump": "i",
      "offset": [
        4033,
        4087
      ],
      "op": "JUMP",
      "path": "12"
    },
    "330": {
      "fn": "TransparentUpgradeableProxy.upgradeTo",
      "offset": [
        4033,
        4087
      ],
      "op": "JUMPDEST",
      "path": "12"
    },
    "331": {
      "fn": "TransparentUpgradeableProxy.upgradeTo",
      "offset": [
        3960,
        4094
      ],
      "op": "POP",
      "path": "12"
    },
    "332": {
      "fn": "TransparentUpgradeableProxy.upgradeTo",
      "jump": "o",
      "offset": [
        3960,
        4094
      ],
      "op": "JUMP",
      "path": "12"
    },
    "333": {
      "offset": [
        2260,
        2359
      ],
      "op": "JUMPDEST",
      "path": "12"
    },
    "334": {
      "offset": [
        2337,
        2348
      ],
      "op": "PUSH2",
      "path": "12",
      "value": "0x14A"
    },
    "337": {
      "offset": [
        2337,
        2346
      ],
      "op": "PUSH2",
      "path": "12",
      "value": "0xFE"
    },
    "340": {
      "jump": "i",
      "offset": [
        2337,
        2348
      ],
      "op": "JUMP",
      "path": "12"
    },
    "341": {
      "fn": "TransparentUpgradeableProxy.upgradeToAndCall",
      "offset": [
        4470,
        4634
      ],
      "op": "JUMPDEST",
      "path": "12"
    },
    "342": {
      "offset": [
        2278,
        2289
      ],
      "op": "PUSH2",
      "path": "12",
      "value": "0x15D"
    },
    "345": {
      "offset": [
        2278,
        2287
      ],
      "op": "PUSH2",
      "path": "12",
      "value": "0x2F1"
    },
    "348": {
      "jump": "i",
      "offset": [
        2278,
        2289
      ],
      "op": "JUMP",
      "path": "12"
    },
    "349": {
      "fn": "TransparentUpgradeableProxy.upgradeToAndCall",
      "offset": [
        2278,
        2289
      ],
      "op": "JUMPDEST",
      "path": "12"
    },
    "350": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "352": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "354": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "356": {
      "op": "SHL"
    },
    "357": {
      "op": "SUB"
    },
    "358": {
      "offset": [
        2264,
        2289
      ],
      "op": "AND",
      "path": "12"
    },
    "359": {
      "offset": [
        2264,
        2274
      ],
      "op": "CALLER",
      "path": "12"
    },
    "360": {
      "offset": [
        2264,
        2289
      ],
      "op": "SUB",
      "path": "12"
    },
    "361": {
      "offset": [
        2260,
        2359
      ],
      "op": "PUSH2",
      "path": "12",
      "value": "0x1B4"
    },
    "364": {
      "offset": [
        2260,
        2359
      ],
      "op": "JUMPI",
      "path": "12"
    },
    "365": {
      "fn": "TransparentUpgradeableProxy.upgradeToAndCall",
      "offset": [
        4579,
        4627
      ],
      "op": "PUSH2",
      "path": "12",
      "statement": 5,
      "value": "0x1AF"
    },
    "368": {
      "fn": "TransparentUpgradeableProxy.upgradeToAndCall",
      "offset": [
        4597,
        4614
      ],
      "op": "DUP4",
      "path": "12"
    },
    "369": {
      "fn": "TransparentUpgradeableProxy.upgradeToAndCall",
      "offset": [
        4616,
        4620
      ],
      "op": "DUP4",
      "path": "12"
    },
    "370": {
      "fn": "TransparentUpgradeableProxy.upgradeToAndCall",
      "offset": [
        4616,
        4620
      ],
      "op": "DUP4",
      "path": "12"
    },
    "371": {
      "fn": "TransparentUpgradeableProxy.upgradeToAndCall",
      "offset": [
        4579,
        4627
      ],
      "op": "DUP1",
      "path": "12"
    },
    "372": {
      "fn": "TransparentUpgradeableProxy.upgradeToAndCall",
      "offset": [
        4579,
        4627
      ],
      "op": "DUP1",
      "path": "12"
    },
    "373": {
      "fn": "TransparentUpgradeableProxy.upgradeToAndCall",
      "offset": [
        4579,
        4627
      ],
      "op": "PUSH1",
      "path": "12",
      "value": "0x1F"
    },
    "375": {
      "fn": "TransparentUpgradeableProxy.upgradeToAndCall",
      "offset": [
        4579,
        4627
      ],
      "op": "ADD",
      "path": "12"
    },
    "376": {
      "fn": "TransparentUpgradeableProxy.upgradeToAndCall",
      "offset": [
        4579,
        4627
      ],
      "op": "PUSH1",
      "path": "12",
      "value": "0x20"
    },
    "378": {
      "fn": "TransparentUpgradeableProxy.upgradeToAndCall",
      "offset": [
        4579,
        4627
      ],
      "op": "DUP1",
      "path": "12"
    },
    "379": {
      "fn": "TransparentUpgradeableProxy.upgradeToAndCall",
      "offset": [
        4579,
        4627
      ],
      "op": "SWAP2",
      "path": "12"
    },
    "380": {
      "fn": "TransparentUpgradeableProxy.upgradeToAndCall",
      "offset": [
        4579,
        4627
      ],
      "op": "DIV",
      "path": "12"
    },
    "381": {
      "fn": "TransparentUpgradeableProxy.upgradeToAndCall",
      "offset": [
        4579,
        4627
      ],
      "op": "MUL",
      "path": "12"
    },
    "382": {
      "fn": "TransparentUpgradeableProxy.upgradeToAndCall",
      "offset": [
        4579,
        4627
      ],
      "op": "PUSH1",
      "path": "12",
      "value": "0x20"
    },
    "384": {
      "fn": "TransparentUpgradeableProxy.upgradeToAndCall",
      "offset": [
        4579,
        4627
      ],
      "op": "ADD",
      "path": "12"
    },
    "385": {
      "fn": "TransparentUpgradeableProxy.upgradeToAndCall",
      "offset": [
        4579,
        4627
      ],
      "op": "PUSH1",
      "path": "12",
      "value": "0x40"
    },
    "387": {
      "fn": "TransparentUpgradeableProxy.upgradeToAndCall",
      "offset": [
        4579,
        4627
      ],
      "op": "MLOAD",
      "path": "12"
    },
    "388": {
      "fn": "TransparentUpgradeableProxy.upgradeToAndCall",
      "offset": [
        4579,
        4627
      ],
      "op": "SWAP1",
      "path": "12"
    },
    "389": {
      "fn": "TransparentUpgradeableProxy.upgradeToAndCall",
      "offset": [
        4579,
        4627
      ],
      "op": "DUP2",
      "path": "12"
    },
    "390": {
      "fn": "TransparentUpgradeableProxy.upgradeToAndCall",
      "offset": [
        4579,
        4627
      ],
      "op": "ADD",
      "path": "12"
    },
    "391": {
      "fn": "TransparentUpgradeableProxy.upgradeToAndCall",
      "offset": [
        4579,
        4627
      ],
      "op": "PUSH1",
      "path": "12",
      "value": "0x40"
    },
    "393": {
      "fn": "TransparentUpgradeableProxy.upgradeToAndCall",
      "offset": [
        4579,
        4627
      ],
      "op": "MSTORE",
      "path": "12"
    },
    "394": {
      "fn": "TransparentUpgradeableProxy.upgradeToAndCall",
      "offset": [
        4579,
        4627
      ],
      "op": "DUP1",
      "path": "12"
    },
    "395": {
      "fn": "TransparentUpgradeableProxy.upgradeToAndCall",
      "offset": [
        4579,
        4627
      ],
      "op": "SWAP4",
      "path": "12"
    },
    "396": {
      "fn": "TransparentUpgradeableProxy.upgradeToAndCall",
      "offset": [
        4579,
        4627
      ],
      "op": "SWAP3",
      "path": "12"
    },
    "397": {
      "fn": "TransparentUpgradeableProxy.upgradeToAndCall",
      "offset": [
        4579,
        4627
      ],
      "op": "SWAP2",
      "path": "12"
    },
    "398": {
      "fn": "TransparentUpgradeableProxy.upgradeToAndCall",
      "offset": [
        4579,
        4627
      ],
      "op": "SWAP1",
      "path": "12"
    },
    "399": {
      "fn": "TransparentUpgradeableProxy.upgradeToAndCall",
      "offset": [
        4579,
        4627
      ],
      "op": "DUP2",
      "path": "12"
    },
    "400": {
      "fn": "TransparentUpgradeableProxy.upgradeToAndCall",
      "offset": [
        4579,
        4627
      ],
      "op": "DUP2",
      "path": "12"
    },
    "401": {
      "fn": "TransparentUpgradeableProxy.upgradeToAndCall",
      "offset": [
        4579,
        4627
      ],
      "op": "MSTORE",
      "path": "12"
    },
    "402": {
      "fn": "TransparentUpgradeableProxy.upgradeToAndCall",
      "offset": [
        4579,
        4627
      ],
      "op": "PUSH1",
      "path": "12",
      "value": "0x20"
    },
    "404": {
      "fn": "TransparentUpgradeableProxy.upgradeToAndCall",
      "offset": [
        4579,
        4627
      ],
      "op": "ADD",
      "path": "12"
    },
    "405": {
      "fn": "TransparentUpgradeableProxy.upgradeToAndCall",
      "offset": [
        4579,
        4627
      ],
      "op": "DUP4",
      "path": "12"
    },
    "406": {
      "fn": "TransparentUpgradeableProxy.upgradeToAndCall",
      "offset": [
        4579,
        4627
      ],
      "op": "DUP4",
      "path": "12"
    },
    "407": {
      "fn": "TransparentUpgradeableProxy.upgradeToAndCall",
      "offset": [
        4579,
        4627
      ],
      "op": "DUP1",
      "path": "12"
    },
    "408": {
      "fn": "TransparentUpgradeableProxy.upgradeToAndCall",
      "offset": [
        4579,
        4627
      ],
      "op": "DUP3",
      "path": "12"
    },
    "409": {
      "fn": "TransparentUpgradeableProxy.upgradeToAndCall",
      "offset": [
        4579,
        4627
      ],
      "op": "DUP5",
      "path": "12"
    },
    "410": {
      "fn": "TransparentUpgradeableProxy.upgradeToAndCall",
      "offset": [
        4579,
        4627
      ],
      "op": "CALLDATACOPY",
      "path": "12"
    },
    "411": {
      "fn": "TransparentUpgradeableProxy.upgradeToAndCall",
      "offset": [
        4579,
        4627
      ],
      "op": "PUSH1",
      "path": "12",
      "value": "0x0"
    },
    "413": {
      "fn": "TransparentUpgradeableProxy.upgradeToAndCall",
      "offset": [
        4579,
        4627
      ],
      "op": "SWAP3",
      "path": "12"
    },
    "414": {
      "fn": "TransparentUpgradeableProxy.upgradeToAndCall",
      "offset": [
        4579,
        4627
      ],
      "op": "ADD",
      "path": "12"
    },
    "415": {
      "fn": "TransparentUpgradeableProxy.upgradeToAndCall",
      "offset": [
        4579,
        4627
      ],
      "op": "SWAP2",
      "path": "12"
    },
    "416": {
      "fn": "TransparentUpgradeableProxy.upgradeToAndCall",
      "offset": [
        4579,
        4627
      ],
      "op": "SWAP1",
      "path": "12"
    },
    "417": {
      "fn": "TransparentUpgradeableProxy.upgradeToAndCall",
      "offset": [
        4579,
        4627
      ],
      "op": "SWAP2",
      "path": "12"
    },
    "418": {
      "fn": "TransparentUpgradeableProxy.upgradeToAndCall",
      "offset": [
        4579,
        4627
      ],
      "op": "MSTORE",
      "path": "12"
    },
    "419": {
      "op": "POP"
    },
    "420": {
      "fn": "TransparentUpgradeableProxy.upgradeToAndCall",
      "offset": [
        4622,
        4626
      ],
      "op": "PUSH1",
      "path": "12",
      "value": "0x1"
    },
    "422": {
      "fn": "TransparentUpgradeableProxy.upgradeToAndCall",
      "offset": [
        4622,
        4626
      ],
      "op": "SWAP3",
      "path": "12"
    },
    "423": {
      "op": "POP"
    },
    "424": {
      "fn": "TransparentUpgradeableProxy.upgradeToAndCall",
      "offset": [
        4579,
        4596
      ],
      "op": "PUSH2",
      "path": "12",
      "value": "0x324"
    },
    "427": {
      "fn": "TransparentUpgradeableProxy.upgradeToAndCall",
      "offset": [
        4579,
        4596
      ],
      "op": "SWAP2",
      "path": "12"
    },
    "428": {
      "op": "POP"
    },
    "429": {
      "op": "POP"
    },
    "430": {
      "fn": "TransparentUpgradeableProxy.upgradeToAndCall",
      "jump": "i",
      "offset": [
        4579,
        4627
      ],
      "op": "JUMP",
      "path": "12"
    },
    "431": {
      "fn": "TransparentUpgradeableProxy.upgradeToAndCall",
      "offset": [
        4579,
        4627
      ],
      "op": "JUMPDEST",
      "path": "12"
    },
    "432": {
      "fn": "TransparentUpgradeableProxy.upgradeToAndCall",
      "offset": [
        4470,
        4634
      ],
      "op": "POP",
      "path": "12"
    },
    "433": {
      "fn": "TransparentUpgradeableProxy.upgradeToAndCall",
      "offset": [
        4470,
        4634
      ],
      "op": "POP",
      "path": "12"
    },
    "434": {
      "fn": "TransparentUpgradeableProxy.upgradeToAndCall",
      "offset": [
        4470,
        4634
      ],
      "op": "POP",
      "path": "12"
    },
    "435": {
      "fn": "TransparentUpgradeableProxy.upgradeToAndCall",
      "jump": "o",
      "offset": [
        4470,
        4634
      ],
      "op": "JUMP",
      "path": "12"
    },
    "436": {
      "offset": [
        2260,
        2359
      ],
      "op": "JUMPDEST",
      "path": "12"
    },
    "437": {
      "offset": [
        2337,
        2348
      ],
      "op": "PUSH2",
      "path": "12",
      "value": "0x1AF"
    },
    "440": {
      "offset": [
        2337,
        2346
      ],
      "op": "PUSH2",
      "path": "12",
      "value": "0xFE"
    },
    "443": {
      "jump": "i",
      "offset": [
        2337,
        2348
      ],
      "op": "JUMP",
      "path": "12"
    },
    "444": {
      "fn": "TransparentUpgradeableProxy.implementation",
      "offset": [
        3363,
        3492
      ],
      "op": "JUMPDEST",
      "path": "12"
    },
    "445": {
      "fn": "TransparentUpgradeableProxy.implementation",
      "offset": [
        3415,
        3438
      ],
      "op": "PUSH1",
      "path": "12",
      "value": "0x0"
    },
    "447": {
      "offset": [
        2278,
        2289
      ],
      "op": "PUSH2",
      "path": "12",
      "value": "0x1C6"
    },
    "450": {
      "offset": [
        2278,
        2287
      ],
      "op": "PUSH2",
      "path": "12",
      "value": "0x2F1"
    },
    "453": {
      "jump": "i",
      "offset": [
        2278,
        2289
      ],
      "op": "JUMP",
      "path": "12"
    },
    "454": {
      "fn": "TransparentUpgradeableProxy.implementation",
      "offset": [
        2278,
        2289
      ],
      "op": "JUMPDEST",
      "path": "12"
    },
    "455": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "457": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "459": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "461": {
      "op": "SHL"
    },
    "462": {
      "op": "SUB"
    },
    "463": {
      "offset": [
        2264,
        2289
      ],
      "op": "AND",
      "path": "12"
    },
    "464": {
      "offset": [
        2264,
        2274
      ],
      "op": "CALLER",
      "path": "12"
    },
    "465": {
      "offset": [
        2264,
        2289
      ],
      "op": "SUB",
      "path": "12"
    },
    "466": {
      "offset": [
        2260,
        2359
      ],
      "op": "PUSH2",
      "path": "12",
      "value": "0x1E2"
    },
    "469": {
      "offset": [
        2260,
        2359
      ],
      "op": "JUMPI",
      "path": "12"
    },
    "470": {
      "fn": "TransparentUpgradeableProxy.implementation",
      "offset": [
        3468,
        3485
      ],
      "op": "PUSH2",
      "path": "12",
      "statement": 6,
      "value": "0x1DD"
    },
    "473": {
      "fn": "TransparentUpgradeableProxy.implementation",
      "offset": [
        3468,
        3483
      ],
      "op": "PUSH2",
      "path": "12",
      "value": "0x2C3"
    },
    "476": {
      "fn": "TransparentUpgradeableProxy.implementation",
      "jump": "i",
      "offset": [
        3468,
        3485
      ],
      "op": "JUMP",
      "path": "12"
    },
    "477": {
      "fn": "TransparentUpgradeableProxy.implementation",
      "offset": [
        3468,
        3485
      ],
      "op": "JUMPDEST",
      "path": "12"
    },
    "478": {
      "fn": "TransparentUpgradeableProxy.implementation",
      "offset": [
        3450,
        3485
      ],
      "op": "SWAP1",
      "path": "12"
    },
    "479": {
      "fn": "TransparentUpgradeableProxy.implementation",
      "offset": [
        3450,
        3485
      ],
      "op": "POP",
      "path": "12"
    },
    "480": {
      "fn": "TransparentUpgradeableProxy.implementation",
      "offset": [
        3363,
        3492
      ],
      "op": "SWAP1",
      "path": "12"
    },
    "481": {
      "fn": "TransparentUpgradeableProxy.implementation",
      "jump": "o",
      "offset": [
        3363,
        3492
      ],
      "op": "JUMP",
      "path": "12"
    },
    "482": {
      "offset": [
        2260,
        2359
      ],
      "op": "JUMPDEST",
      "path": "12"
    },
    "483": {
      "offset": [
        2337,
        2348
      ],
      "op": "PUSH2",
      "path": "12",
      "value": "0x1EA"
    },
    "486": {
      "offset": [
        2337,
        2346
      ],
      "op": "PUSH2",
      "path": "12",
      "value": "0xFE"
    },
    "489": {
      "jump": "i",
      "offset": [
        2337,
        2348
      ],
      "op": "JUMP",
      "path": "12"
    },
    "490": {
      "fn": "TransparentUpgradeableProxy.implementation",
      "offset": [
        2337,
        2348
      ],
      "op": "JUMPDEST",
      "path": "12"
    },
    "491": {
      "fn": "TransparentUpgradeableProxy.implementation",
      "offset": [
        3363,
        3492
      ],
      "op": "SWAP1",
      "path": "12"
    },
    "492": {
      "fn": "TransparentUpgradeableProxy.implementation",
      "jump": "o",
      "offset": [
        3363,
        3492
      ],
      "op": "JUMP",
      "path": "12"
    },
    "493": {
      "fn": "TransparentUpgradeableProxy.changeAdmin",
      "offset": [
        3697,
        3800
      ],
      "op": "JUMPDEST",
      "path": "12"
    },
    "494": {
      "offset": [
        2278,
        2289
      ],
      "op": "PUSH2",
      "path": "12",
      "value": "0x1F5"
    },
    "497": {
      "offset": [
        2278,
        2287
      ],
      "op": "PUSH2",
      "path": "12",
      "value": "0x2F1"
    },
    "500": {
      "jump": "i",
      "offset": [
        2278,
        2289
      ],
      "op": "JUMP",
      "path": "12"
    },
    "501": {
      "fn": "TransparentUpgradeableProxy.changeAdmin",
      "offset": [
        2278,
        2289
      ],
      "op": "JUMPDEST",
      "path": "12"
    },
    "502": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "504": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "506": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "508": {
      "op": "SHL"
    },
    "509": {
      "op": "SUB"
    },
    "510": {
      "offset": [
        2264,
        2289
      ],
      "op": "AND",
      "path": "12"
    },
    "511": {
      "offset": [
        2264,
        2274
      ],
      "op": "CALLER",
      "path": "12"
    },
    "512": {
      "offset": [
        2264,
        2289
      ],
      "op": "SUB",
      "path": "12"
    },
    "513": {
      "offset": [
        2260,
        2359
      ],
      "op": "PUSH2",
      "path": "12",
      "value": "0x14D"
    },
    "516": {
      "offset": [
        2260,
        2359
      ],
      "op": "JUMPI",
      "path": "12"
    },
    "517": {
      "fn": "TransparentUpgradeableProxy.changeAdmin",
      "offset": [
        3771,
        3793
      ],
      "op": "PUSH2",
      "path": "12",
      "statement": 7,
      "value": "0x14A"
    },
    "520": {
      "fn": "TransparentUpgradeableProxy.changeAdmin",
      "offset": [
        3784,
        3792
      ],
      "op": "DUP2",
      "path": "12"
    },
    "521": {
      "fn": "TransparentUpgradeableProxy.changeAdmin",
      "offset": [
        3771,
        3783
      ],
      "op": "PUSH2",
      "path": "12",
      "value": "0x34F"
    },
    "524": {
      "fn": "TransparentUpgradeableProxy.changeAdmin",
      "jump": "i",
      "offset": [
        3771,
        3793
      ],
      "op": "JUMP",
      "path": "12"
    },
    "525": {
      "fn": "TransparentUpgradeableProxy.admin",
      "offset": [
        2807,
        2903
      ],
      "op": "JUMPDEST",
      "path": "12"
    },
    "526": {
      "fn": "TransparentUpgradeableProxy.admin",
      "offset": [
        2850,
        2864
      ],
      "op": "PUSH1",
      "path": "12",
      "value": "0x0"
    },
    "528": {
      "offset": [
        2278,
        2289
      ],
      "op": "PUSH2",
      "path": "12",
      "value": "0x217"
    },
    "531": {
      "offset": [
        2278,
        2287
      ],
      "op": "PUSH2",
      "path": "12",
      "value": "0x2F1"
    },
    "534": {
      "jump": "i",
      "offset": [
        2278,
        2289
      ],
      "op": "JUMP",
      "path": "12"
    },
    "535": {
      "fn": "TransparentUpgradeableProxy.admin",
      "offset": [
        2278,
        2289
      ],
      "op": "JUMPDEST",
      "path": "12"
    },
    "536": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "538": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "540": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "542": {
      "op": "SHL"
    },
    "543": {
      "op": "SUB"
    },
    "544": {
      "offset": [
        2264,
        2289
      ],
      "op": "AND",
      "path": "12"
    },
    "545": {
      "offset": [
        2264,
        2274
      ],
      "op": "CALLER",
      "path": "12"
    },
    "546": {
      "offset": [
        2264,
        2289
      ],
      "op": "SUB",
      "path": "12"
    },
    "547": {
      "offset": [
        2260,
        2359
      ],
      "op": "PUSH2",
      "path": "12",
      "value": "0x1E2"
    },
    "550": {
      "offset": [
        2260,
        2359
      ],
      "op": "JUMPI",
      "path": "12"
    },
    "551": {
      "fn": "TransparentUpgradeableProxy.admin",
      "offset": [
        2885,
        2896
      ],
      "op": "PUSH2",
      "path": "12",
      "statement": 8,
      "value": "0x1DD"
    },
    "554": {
      "fn": "TransparentUpgradeableProxy.admin",
      "offset": [
        2885,
        2894
      ],
      "op": "PUSH2",
      "path": "12",
      "value": "0x2F1"
    },
    "557": {
      "fn": "TransparentUpgradeableProxy.admin",
      "jump": "i",
      "offset": [
        2885,
        2896
      ],
      "op": "JUMP",
      "path": "12"
    },
    "558": {
      "fn": "TransparentUpgradeableProxy._beforeFallback",
      "offset": [
        4909,
        5116
      ],
      "op": "JUMPDEST",
      "path": "12"
    },
    "559": {
      "fn": "TransparentUpgradeableProxy._beforeFallback",
      "offset": [
        4994,
        5005
      ],
      "op": "PUSH2",
      "path": "12",
      "statement": 9,
      "value": "0x236"
    },
    "562": {
      "fn": "TransparentUpgradeableProxy._beforeFallback",
      "offset": [
        4994,
        5003
      ],
      "op": "PUSH2",
      "path": "12",
      "value": "0x2F1"
    },
    "565": {
      "fn": "TransparentUpgradeableProxy._beforeFallback",
      "jump": "i",
      "offset": [
        4994,
        5005
      ],
      "op": "JUMP",
      "path": "12"
    },
    "566": {
      "fn": "TransparentUpgradeableProxy._beforeFallback",
      "offset": [
        4994,
        5005
      ],
      "op": "JUMPDEST",
      "path": "12"
    },
    "567": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "569": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "571": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "573": {
      "op": "SHL"
    },
    "574": {
      "op": "SUB"
    },
    "575": {
      "fn": "TransparentUpgradeableProxy._beforeFallback",
      "offset": [
        4980,
        5005
      ],
      "op": "AND",
      "path": "12"
    },
    "576": {
      "fn": "TransparentUpgradeableProxy._beforeFallback",
      "offset": [
        4980,
        4990
      ],
      "op": "CALLER",
      "path": "12"
    },
    "577": {
      "branch": 23,
      "fn": "TransparentUpgradeableProxy._beforeFallback",
      "offset": [
        4980,
        5005
      ],
      "op": "SUB",
      "path": "12"
    },
    "578": {
      "fn": "TransparentUpgradeableProxy._beforeFallback",
      "offset": [
        4972,
        5076
      ],
      "op": "PUSH2",
      "path": "12",
      "value": "0x116"
    },
    "581": {
      "branch": 23,
      "fn": "TransparentUpgradeableProxy._beforeFallback",
      "offset": [
        4972,
        5076
      ],
      "op": "JUMPI",
      "path": "12"
    },
    "582": {
      "fn": "TransparentUpgradeableProxy._beforeFallback",
      "offset": [
        4972,
        5076
      ],
      "op": "PUSH1",
      "path": "12",
      "value": "0x40"
    },
    "584": {
      "fn": "TransparentUpgradeableProxy._beforeFallback",
      "offset": [
        4972,
        5076
      ],
      "op": "MLOAD",
      "path": "12"
    },
    "585": {
      "op": "PUSH3",
      "value": "0x461BCD"
    },
    "589": {
      "op": "PUSH1",
      "value": "0xE5"
    },
    "591": {
      "op": "SHL"
    },
    "592": {
      "fn": "TransparentUpgradeableProxy._beforeFallback",
      "offset": [
        4972,
        5076
      ],
      "op": "DUP2",
      "path": "12"
    },
    "593": {
      "fn": "TransparentUpgradeableProxy._beforeFallback",
      "offset": [
        4972,
        5076
      ],
      "op": "MSTORE",
      "path": "12"
    },
    "594": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "596": {
      "fn": "TransparentUpgradeableProxy._beforeFallback",
      "offset": [
        4972,
        5076
      ],
      "op": "PUSH1",
      "path": "12",
      "value": "0x4"
    },
    "598": {
      "fn": "TransparentUpgradeableProxy._beforeFallback",
      "offset": [
        4972,
        5076
      ],
      "op": "DUP3",
      "path": "12"
    },
    "599": {
      "fn": "TransparentUpgradeableProxy._beforeFallback",
      "offset": [
        4972,
        5076
      ],
      "op": "ADD",
      "path": "12"
    },
    "600": {
      "op": "MSTORE"
    },
    "601": {
      "op": "PUSH1",
      "value": "0x42"
    },
    "603": {
      "op": "PUSH1",
      "value": "0x24"
    },
    "605": {
      "op": "DUP3"
    },
    "606": {
      "op": "ADD"
    },
    "607": {
      "op": "MSTORE"
    },
    "608": {
      "op": "PUSH32",
      "value": "0x5472616E73706172656E745570677261646561626C6550726F78793A2061646D"
    },
    "641": {
      "op": "PUSH1",
      "value": "0x44"
    },
    "643": {
      "op": "DUP3"
    },
    "644": {
      "op": "ADD"
    },
    "645": {
      "op": "MSTORE"
    },
    "646": {
      "op": "PUSH32",
      "value": "0x696E2063616E6E6F742066616C6C6261636B20746F2070726F78792074617267"
    },
    "679": {
      "op": "PUSH1",
      "value": "0x64"
    },
    "681": {
      "op": "DUP3"
    },
    "682": {
      "op": "ADD"
    },
    "683": {
      "op": "MSTORE"
    },
    "684": {
      "op": "PUSH2",
      "value": "0x195D"
    },
    "687": {
      "op": "PUSH1",
      "value": "0xF2"
    },
    "689": {
      "op": "SHL"
    },
    "690": {
      "op": "PUSH1",
      "value": "0x84"
    },
    "692": {
      "op": "DUP3"
    },
    "693": {
      "op": "ADD"
    },
    "694": {
      "op": "MSTORE"
    },
    "695": {
      "op": "PUSH1",
      "value": "0xA4"
    },
    "697": {
      "op": "ADD"
    },
    "698": {
      "fn": "TransparentUpgradeableProxy._beforeFallback",
      "offset": [
        4972,
        5076
      ],
      "op": "JUMPDEST",
      "path": "12"
    },
    "699": {
      "fn": "TransparentUpgradeableProxy._beforeFallback",
      "offset": [
        4972,
        5076
      ],
      "op": "PUSH1",
      "path": "12",
      "value": "0x40"
    },
    "701": {
      "fn": "TransparentUpgradeableProxy._beforeFallback",
      "offset": [
        4972,
        5076
      ],
      "op": "MLOAD",
      "path": "12"
    },
    "702": {
      "fn": "TransparentUpgradeableProxy._beforeFallback",
      "offset": [
        4972,
        5076
      ],
      "op": "DUP1",
      "path": "12"
    },
    "703": {
      "fn": "TransparentUpgradeableProxy._beforeFallback",
      "offset": [
        4972,
        5076
      ],
      "op": "SWAP2",
      "path": "12"
    },
    "704": {
      "fn": "TransparentUpgradeableProxy._beforeFallback",
      "offset": [
        4972,
        5076
      ],
      "op": "SUB",
      "path": "12"
    },
    "705": {
      "fn": "TransparentUpgradeableProxy._beforeFallback",
      "offset": [
        4972,
        5076
      ],
      "op": "SWAP1",
      "path": "12"
    },
    "706": {
      "fn": "TransparentUpgradeableProxy._beforeFallback",
      "offset": [
        4972,
        5076
      ],
      "op": "REVERT",
      "optimizer_revert": true,
      "path": "12"
    },
    "707": {
      "fn": "ERC1967Proxy._implementation",
      "offset": [
        1148,
        1288
      ],
      "op": "JUMPDEST",
      "path": "8"
    },
    "708": {
      "fn": "ERC1967Proxy._implementation",
      "offset": [
        1215,
        1227
      ],
      "op": "PUSH1",
      "path": "8",
      "value": "0x0"
    },
    "710": {
      "fn": "ERC1967Proxy._implementation",
      "offset": [
        1246,
        1281
      ],
      "op": "PUSH2",
      "path": "8",
      "statement": 10,
      "value": "0x1DD"
    },
    "713": {
      "fn": "ERC1967Proxy._implementation",
      "offset": [
        1246,
        1279
      ],
      "op": "PUSH2",
      "path": "8",
      "value": "0x3A3"
    },
    "716": {
      "fn": "ERC1967Proxy._implementation",
      "jump": "i",
      "offset": [
        1246,
        1281
      ],
      "op": "JUMP",
      "path": "8"
    },
    "717": {
      "fn": "Proxy._delegate",
      "offset": [
        948,
        1843
      ],
      "op": "JUMPDEST",
      "path": "10"
    },
    "718": {
      "fn": "Proxy._delegate",
      "offset": [
        1286,
        1300
      ],
      "op": "CALLDATASIZE",
      "path": "10"
    },
    "719": {
      "fn": "Proxy._delegate",
      "offset": [
        1283,
        1284
      ],
      "op": "PUSH1",
      "path": "10",
      "value": "0x0"
    },
    "721": {
      "fn": "Proxy._delegate",
      "offset": [
        1280,
        1281
      ],
      "op": "DUP1",
      "path": "10"
    },
    "722": {
      "fn": "Proxy._delegate",
      "offset": [
        1267,
        1301
      ],
      "op": "CALLDATACOPY",
      "path": "10"
    },
    "723": {
      "fn": "Proxy._delegate",
      "offset": [
        1500,
        1501
      ],
      "op": "PUSH1",
      "path": "10",
      "value": "0x0"
    },
    "725": {
      "fn": "Proxy._delegate",
      "offset": [
        1497,
        1498
      ],
      "op": "DUP1",
      "path": "10"
    },
    "726": {
      "fn": "Proxy._delegate",
      "offset": [
        1481,
        1495
      ],
      "op": "CALLDATASIZE",
      "path": "10"
    },
    "727": {
      "fn": "Proxy._delegate",
      "offset": [
        1478,
        1479
      ],
      "op": "PUSH1",
      "path": "10",
      "value": "0x0"
    },
    "729": {
      "fn": "Proxy._delegate",
      "offset": [
        1462,
        1476
      ],
      "op": "DUP5",
      "path": "10"
    },
    "730": {
      "fn": "Proxy._delegate",
      "offset": [
        1455,
        1460
      ],
      "op": "GAS",
      "path": "10"
    },
    "731": {
      "fn": "Proxy._delegate",
      "offset": [
        1442,
        1502
      ],
      "op": "DELEGATECALL",
      "path": "10"
    },
    "732": {
      "fn": "Proxy._delegate",
      "offset": [
        1576,
        1592
      ],
      "op": "RETURNDATASIZE",
      "path": "10"
    },
    "733": {
      "fn": "Proxy._delegate",
      "offset": [
        1573,
        1574
      ],
      "op": "PUSH1",
      "path": "10",
      "value": "0x0"
    },
    "735": {
      "fn": "Proxy._delegate",
      "offset": [
        1570,
        1571
      ],
      "op": "DUP1",
      "path": "10"
    },
    "736": {
      "fn": "Proxy._delegate",
      "offset": [
        1555,
        1593
      ],
      "op": "RETURNDATACOPY",
      "path": "10"
    },
    "737": {
      "fn": "Proxy._delegate",
      "offset": [
        1614,
        1620
      ],
      "op": "DUP1",
      "path": "10"
    },
    "738": {
      "fn": "Proxy._delegate",
      "offset": [
        1681,
        1747
      ],
      "op": "DUP1",
      "path": "10"
    },
    "739": {
      "fn": "Proxy._delegate",
      "offset": [
        1681,
        1747
      ],
      "op": "ISZERO",
      "path": "10"
    },
    "740": {
      "fn": "Proxy._delegate",
      "offset": [
        1681,
        1747
      ],
      "op": "PUSH2",
      "path": "10",
      "value": "0x2EC"
    },
    "743": {
      "fn": "Proxy._delegate",
      "offset": [
        1681,
        1747
      ],
      "op": "JUMPI",
      "path": "10"
    },
    "744": {
      "fn": "Proxy._delegate",
      "offset": [
        1796,
        1812
      ],
      "op": "RETURNDATASIZE",
      "path": "10"
    },
    "745": {
      "fn": "Proxy._delegate",
      "offset": [
        1793,
        1794
      ],
      "op": "PUSH1",
      "path": "10",
      "value": "0x0"
    },
    "747": {
      "fn": "Proxy._delegate",
      "offset": [
        1786,
        1813
      ],
      "op": "RETURN",
      "path": "10"
    },
    "748": {
      "fn": "Proxy._delegate",
      "offset": [
        1681,
        1747
      ],
      "op": "JUMPDEST",
      "path": "10"
    },
    "749": {
      "fn": "Proxy._delegate",
      "offset": [
        1716,
        1732
      ],
      "op": "RETURNDATASIZE",
      "path": "10"
    },
    "750": {
      "fn": "Proxy._delegate",
      "offset": [
        1713,
        1714
      ],
      "op": "PUSH1",
      "path": "10",
      "value": "0x0"
    },
    "752": {
      "fn": "Proxy._delegate",
      "offset": [
        1706,
        1733
      ],
      "op": "REVERT",
      "path": "10"
    },
    "753": {
      "fn": "ERC1967Upgrade._getAdmin",
      "offset": [
        4108,
        4230
      ],
      "op": "JUMPDEST",
      "path": "9"
    },
    "754": {
      "fn": "ERC1967Upgrade._getAdmin",
      "offset": [
        4152,
        4159
      ],
      "op": "PUSH1",
      "path": "9",
      "value": "0x0"
    },
    "756": {
      "offset": [
        3842,
        3908
      ],
      "op": "PUSH32",
      "path": "9",
      "value": "0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103"
    },
    "789": {
      "fn": "ERC1967Upgrade._getAdmin",
      "offset": [
        4178,
        4217
      ],
      "op": "JUMPDEST",
      "path": "9",
      "statement": 11
    },
    "790": {
      "fn": "ERC1967Upgrade._getAdmin",
      "offset": [
        4178,
        4223
      ],
      "op": "SLOAD",
      "path": "9"
    },
    "791": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "793": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "795": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "797": {
      "op": "SHL"
    },
    "798": {
      "op": "SUB"
    },
    "799": {
      "fn": "ERC1967Upgrade._getAdmin",
      "offset": [
        4178,
        4223
      ],
      "op": "AND",
      "path": "9"
    },
    "800": {
      "fn": "ERC1967Upgrade._getAdmin",
      "offset": [
        4178,
        4223
      ],
      "op": "SWAP2",
      "path": "9"
    },
    "801": {
      "fn": "ERC1967Upgrade._getAdmin",
      "offset": [
        4108,
        4230
      ],
      "op": "SWAP1",
      "path": "9"
    },
    "802": {
      "op": "POP"
    },
    "803": {
      "fn": "ERC1967Upgrade._getAdmin",
      "jump": "o",
      "offset": [
        4108,
        4230
      ],
      "op": "JUMP",
      "path": "9"
    },
    "804": {
      "fn": "ERC1967Upgrade._upgradeToAndCall",
      "offset": [
        2183,
        2478
      ],
      "op": "JUMPDEST",
      "path": "9"
    },
    "805": {
      "fn": "ERC1967Upgrade._upgradeToAndCall",
      "offset": [
        2321,
        2350
      ],
      "op": "PUSH2",
      "path": "9",
      "statement": 12,
      "value": "0x32D"
    },
    "808": {
      "fn": "ERC1967Upgrade._upgradeToAndCall",
      "offset": [
        2332,
        2349
      ],
      "op": "DUP4",
      "path": "9"
    },
    "809": {
      "fn": "ERC1967Upgrade._upgradeToAndCall",
      "offset": [
        2321,
        2331
      ],
      "op": "PUSH2",
      "path": "9",
      "value": "0x3CB"
    },
    "812": {
      "fn": "ERC1967Upgrade._upgradeToAndCall",
      "jump": "i",
      "offset": [
        2321,
        2350
      ],
      "op": "JUMP",
      "path": "9"
    },
    "813": {
      "fn": "ERC1967Upgrade._upgradeToAndCall",
      "offset": [
        2321,
        2350
      ],
      "op": "JUMPDEST",
      "path": "9"
    },
    "814": {
      "fn": "ERC1967Upgrade._upgradeToAndCall",
      "offset": [
        2378,
        2379
      ],
      "op": "PUSH1",
      "path": "9",
      "value": "0x0"
    },
    "816": {
      "fn": "ERC1967Upgrade._upgradeToAndCall",
      "offset": [
        2364,
        2368
      ],
      "op": "DUP3",
      "path": "9"
    },
    "817": {
      "fn": "ERC1967Upgrade._upgradeToAndCall",
      "offset": [
        2364,
        2375
      ],
      "op": "MLOAD",
      "path": "9"
    },
    "818": {
      "branch": 24,
      "fn": "ERC1967Upgrade._upgradeToAndCall",
      "offset": [
        2364,
        2379
      ],
      "op": "GT",
      "path": "9"
    },
    "819": {
      "fn": "ERC1967Upgrade._upgradeToAndCall",
      "offset": [
        2364,
        2392
      ],
      "op": "DUP1",
      "path": "9"
    },
    "820": {
      "fn": "ERC1967Upgrade._upgradeToAndCall",
      "offset": [
        2364,
        2392
      ],
      "op": "PUSH2",
      "path": "9",
      "value": "0x33A"
    },
    "823": {
      "branch": 24,
      "fn": "ERC1967Upgrade._upgradeToAndCall",
      "offset": [
        2364,
        2392
      ],
      "op": "JUMPI",
      "path": "9"
    },
    "824": {
      "fn": "ERC1967Upgrade._upgradeToAndCall",
      "offset": [
        2364,
        2392
      ],
      "op": "POP",
      "path": "9"
    },
    "825": {
      "branch": 25,
      "fn": "ERC1967Upgrade._upgradeToAndCall",
      "offset": [
        2383,
        2392
      ],
      "op": "DUP1",
      "path": "9"
    },
    "826": {
      "fn": "ERC1967Upgrade._upgradeToAndCall",
      "offset": [
        2364,
        2392
      ],
      "op": "JUMPDEST",
      "path": "9"
    },
    "827": {
      "fn": "ERC1967Upgrade._upgradeToAndCall",
      "offset": [
        2360,
        2472
      ],
      "op": "ISZERO",
      "path": "9"
    },
    "828": {
      "fn": "ERC1967Upgrade._upgradeToAndCall",
      "offset": [
        2360,
        2472
      ],
      "op": "PUSH2",
      "path": "9",
      "value": "0x1AF"
    },
    "831": {
      "branch": 25,
      "fn": "ERC1967Upgrade._upgradeToAndCall",
      "offset": [
        2360,
        2472
      ],
      "op": "JUMPI",
      "path": "9"
    },
    "832": {
      "fn": "ERC1967Upgrade._upgradeToAndCall",
      "offset": [
        2408,
        2461
      ],
      "op": "PUSH2",
      "path": "9",
      "statement": 13,
      "value": "0x349"
    },
    "835": {
      "fn": "ERC1967Upgrade._upgradeToAndCall",
      "offset": [
        2437,
        2454
      ],
      "op": "DUP4",
      "path": "9"
    },
    "836": {
      "fn": "ERC1967Upgrade._upgradeToAndCall",
      "offset": [
        2456,
        2460
      ],
      "op": "DUP4",
      "path": "9"
    },
    "837": {
      "fn": "ERC1967Upgrade._upgradeToAndCall",
      "offset": [
        2408,
        2436
      ],
      "op": "PUSH2",
      "path": "9",
      "value": "0x40B"
    },
    "840": {
      "fn": "ERC1967Upgrade._upgradeToAndCall",
      "jump": "i",
      "offset": [
        2408,
        2461
      ],
      "op": "JUMP",
      "path": "9"
    },
    "841": {
      "fn": "ERC1967Upgrade._upgradeToAndCall",
      "offset": [
        2408,
        2461
      ],
      "op": "JUMPDEST",
      "path": "9"
    },
    "842": {
      "fn": "ERC1967Upgrade._upgradeToAndCall",
      "offset": [
        2408,
        2461
      ],
      "op": "POP",
      "path": "9"
    },
    "843": {
      "fn": "ERC1967Upgrade._upgradeToAndCall",
      "offset": [
        2183,
        2478
      ],
      "op": "POP",
      "path": "9"
    },
    "844": {
      "fn": "ERC1967Upgrade._upgradeToAndCall",
      "offset": [
        2183,
        2478
      ],
      "op": "POP",
      "path": "9"
    },
    "845": {
      "fn": "ERC1967Upgrade._upgradeToAndCall",
      "offset": [
        2183,
        2478
      ],
      "op": "POP",
      "path": "9"
    },
    "846": {
      "fn": "ERC1967Upgrade._upgradeToAndCall",
      "jump": "o",
      "offset": [
        2183,
        2478
      ],
      "op": "JUMP",
      "path": "9"
    },
    "847": {
      "fn": "ERC1967Upgrade._changeAdmin",
      "offset": [
        4624,
        4759
      ],
      "op": "JUMPDEST",
      "path": "9"
    },
    "848": {
      "fn": "ERC1967Upgrade._changeAdmin",
      "offset": [
        4688,
        4723
      ],
      "op": "PUSH32",
      "path": "9",
      "statement": 14,
      "value": "0x7E644D79422F17C01E4894B5F4F588D331EBFA28653D42AE832DC59E38C9798F"
    },
    "881": {
      "fn": "ERC1967Upgrade._changeAdmin",
      "offset": [
        4701,
        4712
      ],
      "op": "PUSH2",
      "path": "9",
      "value": "0x378"
    },
    "884": {
      "fn": "ERC1967Upgrade._changeAdmin",
      "offset": [
        4701,
        4710
      ],
      "op": "PUSH2",
      "path": "9",
      "value": "0x2F1"
    },
    "887": {
      "fn": "ERC1967Upgrade._changeAdmin",
      "jump": "i",
      "offset": [
        4701,
        4712
      ],
      "op": "JUMP",
      "path": "9"
    },
    "888": {
      "fn": "ERC1967Upgrade._changeAdmin",
      "offset": [
        4701,
        4712
      ],
      "op": "JUMPDEST",
      "path": "9"
    },
    "889": {
      "fn": "ERC1967Upgrade._changeAdmin",
      "offset": [
        4688,
        4723
      ],
      "op": "PUSH1",
      "path": "9",
      "value": "0x40"
    },
    "891": {
      "fn": "ERC1967Upgrade._changeAdmin",
      "offset": [
        4688,
        4723
      ],
      "op": "DUP1",
      "path": "9"
    },
    "892": {
      "fn": "ERC1967Upgrade._changeAdmin",
      "offset": [
        4688,
        4723
      ],
      "op": "MLOAD",
      "path": "9"
    },
    "893": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "895": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "897": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "899": {
      "op": "SHL"
    },
    "900": {
      "op": "SUB"
    },
    "901": {
      "op": "SWAP3"
    },
    "902": {
      "op": "DUP4"
    },
    "903": {
      "op": "AND"
    },
    "904": {
      "op": "DUP2"
    },
    "905": {
      "op": "MSTORE"
    },
    "906": {
      "op": "SWAP2"
    },
    "907": {
      "op": "DUP5"
    },
    "908": {
      "op": "AND"
    },
    "909": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "911": {
      "op": "DUP4"
    },
    "912": {
      "op": "ADD"
    },
    "913": {
      "op": "MSTORE"
    },
    "914": {
      "op": "ADD"
    },
    "915": {
      "fn": "ERC1967Upgrade._changeAdmin",
      "offset": [
        4688,
        4723
      ],
      "op": "PUSH1",
      "path": "9",
      "value": "0x40"
    },
    "917": {
      "fn": "ERC1967Upgrade._changeAdmin",
      "offset": [
        4688,
        4723
      ],
      "op": "MLOAD",
      "path": "9"
    },
    "918": {
      "fn": "ERC1967Upgrade._changeAdmin",
      "offset": [
        4688,
        4723
      ],
      "op": "DUP1",
      "path": "9"
    },
    "919": {
      "fn": "ERC1967Upgrade._changeAdmin",
      "offset": [
        4688,
        4723
      ],
      "op": "SWAP2",
      "path": "9"
    },
    "920": {
      "fn": "ERC1967Upgrade._changeAdmin",
      "offset": [
        4688,
        4723
      ],
      "op": "SUB",
      "path": "9"
    },
    "921": {
      "fn": "ERC1967Upgrade._changeAdmin",
      "offset": [
        4688,
        4723
      ],
      "op": "SWAP1",
      "path": "9"
    },
    "922": {
      "fn": "ERC1967Upgrade._changeAdmin",
      "offset": [
        4688,
        4723
      ],
      "op": "LOG1",
      "path": "9"
    },
    "923": {
      "fn": "ERC1967Upgrade._changeAdmin",
      "offset": [
        4733,
        4752
      ],
      "op": "PUSH2",
      "path": "9",
      "statement": 15,
      "value": "0x14A"
    },
    "926": {
      "fn": "ERC1967Upgrade._changeAdmin",
      "offset": [
        4743,
        4751
      ],
      "op": "DUP2",
      "path": "9"
    },
    "927": {
      "fn": "ERC1967Upgrade._changeAdmin",
      "offset": [
        4733,
        4742
      ],
      "op": "PUSH2",
      "path": "9",
      "value": "0x437"
    },
    "930": {
      "fn": "ERC1967Upgrade._changeAdmin",
      "jump": "i",
      "offset": [
        4733,
        4752
      ],
      "op": "JUMP",
      "path": "9"
    },
    "931": {
      "fn": "ERC1967Upgrade._getImplementation",
      "offset": [
        1301,
        1441
      ],
      "op": "JUMPDEST",
      "path": "9"
    },
    "932": {
      "fn": "ERC1967Upgrade._getImplementation",
      "offset": [
        1354,
        1361
      ],
      "op": "PUSH1",
      "path": "9",
      "value": "0x0"
    },
    "934": {
      "offset": [
        1030,
        1096
      ],
      "op": "PUSH32",
      "path": "9",
      "value": "0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC"
    },
    "967": {
      "fn": "ERC1967Upgrade._getImplementation",
      "offset": [
        1380,
        1428
      ],
      "op": "PUSH2",
      "path": "9",
      "statement": 16,
      "value": "0x315"
    },
    "970": {
      "op": "JUMP"
    },
    "971": {
      "fn": "ERC1967Upgrade._upgradeTo",
      "offset": [
        1897,
        2049
      ],
      "op": "JUMPDEST",
      "path": "9"
    },
    "972": {
      "fn": "ERC1967Upgrade._upgradeTo",
      "offset": [
        1963,
        2000
      ],
      "op": "PUSH2",
      "path": "9",
      "statement": 17,
      "value": "0x3D4"
    },
    "975": {
      "fn": "ERC1967Upgrade._upgradeTo",
      "offset": [
        1982,
        1999
      ],
      "op": "DUP2",
      "path": "9"
    },
    "976": {
      "fn": "ERC1967Upgrade._upgradeTo",
      "offset": [
        1963,
        1981
      ],
      "op": "PUSH2",
      "path": "9",
      "value": "0x4E0"
    },
    "979": {
      "fn": "ERC1967Upgrade._upgradeTo",
      "jump": "i",
      "offset": [
        1963,
        2000
      ],
      "op": "JUMP",
      "path": "9"
    },
    "980": {
      "fn": "ERC1967Upgrade._upgradeTo",
      "offset": [
        1963,
        2000
      ],
      "op": "JUMPDEST",
      "path": "9"
    },
    "981": {
      "fn": "ERC1967Upgrade._upgradeTo",
      "offset": [
        2015,
        2042
      ],
      "op": "PUSH1",
      "path": "9",
      "statement": 18,
      "value": "0x40"
    },
    "983": {
      "fn": "ERC1967Upgrade._upgradeTo",
      "offset": [
        2015,
        2042
      ],
      "op": "MLOAD",
      "path": "9"
    },
    "984": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "986": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "988": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "990": {
      "op": "SHL"
    },
    "991": {
      "op": "SUB"
    },
    "992": {
      "fn": "ERC1967Upgrade._upgradeTo",
      "offset": [
        2015,
        2042
      ],
      "op": "DUP3",
      "path": "9"
    },
    "993": {
      "fn": "ERC1967Upgrade._upgradeTo",
      "offset": [
        2015,
        2042
      ],
      "op": "AND",
      "path": "9"
    },
    "994": {
      "fn": "ERC1967Upgrade._upgradeTo",
      "offset": [
        2015,
        2042
      ],
      "op": "SWAP1",
      "path": "9"
    },
    "995": {
      "fn": "ERC1967Upgrade._upgradeTo",
      "offset": [
        2015,
        2042
      ],
      "op": "PUSH32",
      "path": "9",
      "value": "0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B"
    },
    "1028": {
      "fn": "ERC1967Upgrade._upgradeTo",
      "offset": [
        2015,
        2042
      ],
      "op": "SWAP1",
      "path": "9"
    },
    "1029": {
      "fn": "ERC1967Upgrade._upgradeTo",
      "offset": [
        2015,
        2042
      ],
      "op": "PUSH1",
      "path": "9",
      "value": "0x0"
    },
    "1031": {
      "fn": "ERC1967Upgrade._upgradeTo",
      "offset": [
        2015,
        2042
      ],
      "op": "SWAP1",
      "path": "9"
    },
    "1032": {
      "fn": "ERC1967Upgrade._upgradeTo",
      "offset": [
        2015,
        2042
      ],
      "op": "LOG2",
      "path": "9"
    },
    "1033": {
      "fn": "ERC1967Upgrade._upgradeTo",
      "offset": [
        1897,
        2049
      ],
      "op": "POP",
      "path": "9"
    },
    "1034": {
      "fn": "ERC1967Upgrade._upgradeTo",
      "jump": "o",
      "offset": [
        1897,
        2049
      ],
      "op": "JUMP",
      "path": "9"
    },
    "1035": {
      "op": "JUMPDEST"
    },
    "1036": {
      "op": "PUSH1",
      "value": "0x60"
    },
    "1038": {
      "op": "PUSH2",
      "value": "0x430"
    },
    "1041": {
      "op": "DUP4"
    },
    "1042": {
      "op": "DUP4"
    },
    "1043": {
      "op": "PUSH1",
      "value": "0x40"
    },
    "1045": {
      "op": "MLOAD"
    },
    "1046": {
      "op": "DUP1"
    },
    "1047": {
      "op": "PUSH1",
      "value": "0x60"
    },
    "1049": {
      "op": "ADD"
    },
    "1050": {
      "op": "PUSH1",
      "value": "0x40"
    },
    "1052": {
      "op": "MSTORE"
    },
    "1053": {
      "op": "DUP1"
    },
    "1054": {
      "op": "PUSH1",
      "value": "0x27"
    },
    "1056": {
      "op": "DUP2"
    },
    "1057": {
      "op": "MSTORE"
    },
    "1058": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "1060": {
      "op": "ADD"
    },
    "1061": {
      "op": "PUSH2",
      "value": "0x7C5"
    },
    "1064": {
      "op": "PUSH1",
      "value": "0x27"
    },
    "1066": {
      "op": "SWAP2"
    },
    "1067": {
      "op": "CODECOPY"
    },
    "1068": {
      "op": "PUSH2",
      "value": "0x574"
    },
    "1071": {
      "jump": "i",
      "op": "JUMP"
    },
    "1072": {
      "op": "JUMPDEST"
    },
    "1073": {
      "op": "SWAP4"
    },
    "1074": {
      "op": "SWAP3"
    },
    "1075": {
      "op": "POP"
    },
    "1076": {
      "op": "POP"
    },
    "1077": {
      "op": "POP"
    },
    "1078": {
      "jump": "o",
      "op": "JUMP"
    },
    "1079": {
      "fn": "ERC1967Upgrade._setAdmin",
      "offset": [
        4312,
        4513
      ],
      "op": "JUMPDEST",
      "path": "9"
    },
    "1080": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1082": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1084": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "1086": {
      "op": "SHL"
    },
    "1087": {
      "op": "SUB"
    },
    "1088": {
      "fn": "ERC1967Upgrade._setAdmin",
      "offset": [
        4375,
        4397
      ],
      "op": "DUP2",
      "path": "9",
      "statement": 19
    },
    "1089": {
      "branch": 26,
      "fn": "ERC1967Upgrade._setAdmin",
      "offset": [
        4375,
        4397
      ],
      "op": "AND",
      "path": "9"
    },
    "1090": {
      "fn": "ERC1967Upgrade._setAdmin",
      "offset": [
        4367,
        4440
      ],
      "op": "PUSH2",
      "path": "9",
      "value": "0x49C"
    },
    "1093": {
      "branch": 26,
      "fn": "ERC1967Upgrade._setAdmin",
      "offset": [
        4367,
        4440
      ],
      "op": "JUMPI",
      "path": "9"
    },
    "1094": {
      "fn": "ERC1967Upgrade._setAdmin",
      "offset": [
        4367,
        4440
      ],
      "op": "PUSH1",
      "path": "9",
      "value": "0x40"
    },
    "1096": {
      "fn": "ERC1967Upgrade._setAdmin",
      "offset": [
        4367,
        4440
      ],
      "op": "MLOAD",
      "path": "9"
    },
    "1097": {
      "op": "PUSH3",
      "value": "0x461BCD"
    },
    "1101": {
      "op": "PUSH1",
      "value": "0xE5"
    },
    "1103": {
      "op": "SHL"
    },
    "1104": {
      "fn": "ERC1967Upgrade._setAdmin",
      "offset": [
        4367,
        4440
      ],
      "op": "DUP2",
      "path": "9"
    },
    "1105": {
      "fn": "ERC1967Upgrade._setAdmin",
      "offset": [
        4367,
        4440
      ],
      "op": "MSTORE",
      "path": "9"
    },
    "1106": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "1108": {
      "fn": "ERC1967Upgrade._setAdmin",
      "offset": [
        4367,
        4440
      ],
      "op": "PUSH1",
      "path": "9",
      "value": "0x4"
    },
    "1110": {
      "fn": "ERC1967Upgrade._setAdmin",
      "offset": [
        4367,
        4440
      ],
      "op": "DUP3",
      "path": "9"
    },
    "1111": {
      "fn": "ERC1967Upgrade._setAdmin",
      "offset": [
        4367,
        4440
      ],
      "op": "ADD",
      "path": "9"
    },
    "1112": {
      "op": "MSTORE"
    },
    "1113": {
      "op": "PUSH1",
      "value": "0x26"
    },
    "1115": {
      "op": "PUSH1",
      "value": "0x24"
    },
    "1117": {
      "op": "DUP3"
    },
    "1118": {
      "op": "ADD"
    },
    "1119": {
      "op": "MSTORE"
    },
    "1120": {
      "op": "PUSH32",
      "value": "0x455243313936373A206E65772061646D696E20697320746865207A65726F2061"
    },
    "1153": {
      "op": "PUSH1",
      "value": "0x44"
    },
    "1155": {
      "op": "DUP3"
    },
    "1156": {
      "op": "ADD"
    },
    "1157": {
      "op": "MSTORE"
    },
    "1158": {
      "op": "PUSH6",
      "value": "0x646472657373"
    },
    "1165": {
      "op": "PUSH1",
      "value": "0xD0"
    },
    "1167": {
      "op": "SHL"
    },
    "1168": {
      "op": "PUSH1",
      "value": "0x64"
    },
    "1170": {
      "op": "DUP3"
    },
    "1171": {
      "op": "ADD"
    },
    "1172": {
      "op": "MSTORE"
    },
    "1173": {
      "op": "PUSH1",
      "value": "0x84"
    },
    "1175": {
      "op": "ADD"
    },
    "1176": {
      "fn": "ERC1967Upgrade._setAdmin",
      "offset": [
        4367,
        4440
      ],
      "op": "PUSH2",
      "path": "9",
      "value": "0x2BA"
    },
    "1179": {
      "op": "JUMP"
    },
    "1180": {
      "fn": "ERC1967Upgrade._setAdmin",
      "offset": [
        4367,
        4440
      ],
      "op": "JUMPDEST",
      "path": "9"
    },
    "1181": {
      "fn": "ERC1967Upgrade._setAdmin",
      "offset": [
        4498,
        4506
      ],
      "op": "DUP1",
      "path": "9",
      "statement": 20
    },
    "1182": {
      "offset": [
        3842,
        3908
      ],
      "op": "PUSH32",
      "path": "9",
      "value": "0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103"
    },
    "1215": {
      "fn": "ERC1967Upgrade._setAdmin",
      "offset": [
        4450,
        4489
      ],
      "op": "JUMPDEST",
      "path": "9"
    },
    "1216": {
      "fn": "ERC1967Upgrade._setAdmin",
      "offset": [
        4450,
        4506
      ],
      "op": "DUP1",
      "path": "9"
    },
    "1217": {
      "fn": "ERC1967Upgrade._setAdmin",
      "offset": [
        4450,
        4506
      ],
      "op": "SLOAD",
      "path": "9"
    },
    "1218": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1220": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1222": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "1224": {
      "op": "SHL"
    },
    "1225": {
      "op": "SUB"
    },
    "1226": {
      "op": "NOT"
    },
    "1227": {
      "fn": "ERC1967Upgrade._setAdmin",
      "offset": [
        4450,
        4506
      ],
      "op": "AND",
      "path": "9"
    },
    "1228": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1230": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1232": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "1234": {
      "op": "SHL"
    },
    "1235": {
      "op": "SUB"
    },
    "1236": {
      "fn": "ERC1967Upgrade._setAdmin",
      "offset": [
        4450,
        4506
      ],
      "op": "SWAP3",
      "path": "9"
    },
    "1237": {
      "fn": "ERC1967Upgrade._setAdmin",
      "offset": [
        4450,
        4506
      ],
      "op": "SWAP1",
      "path": "9"
    },
    "1238": {
      "fn": "ERC1967Upgrade._setAdmin",
      "offset": [
        4450,
        4506
      ],
      "op": "SWAP3",
      "path": "9"
    },
    "1239": {
      "fn": "ERC1967Upgrade._setAdmin",
      "offset": [
        4450,
        4506
      ],
      "op": "AND",
      "path": "9"
    },
    "1240": {
      "fn": "ERC1967Upgrade._setAdmin",
      "offset": [
        4450,
        4506
      ],
      "op": "SWAP2",
      "path": "9"
    },
    "1241": {
      "fn": "ERC1967Upgrade._setAdmin",
      "offset": [
        4450,
        4506
      ],
      "op": "SWAP1",
      "path": "9"
    },
    "1242": {
      "fn": "ERC1967Upgrade._setAdmin",
      "offset": [
        4450,
        4506
      ],
      "op": "SWAP2",
      "path": "9"
    },
    "1243": {
      "fn": "ERC1967Upgrade._setAdmin",
      "offset": [
        4450,
        4506
      ],
      "op": "OR",
      "path": "9"
    },
    "1244": {
      "fn": "ERC1967Upgrade._setAdmin",
      "offset": [
        4450,
        4506
      ],
      "op": "SWAP1",
      "path": "9"
    },
    "1245": {
      "fn": "ERC1967Upgrade._setAdmin",
      "offset": [
        4450,
        4506
      ],
      "op": "SSTORE",
      "path": "9"
    },
    "1246": {
      "op": "POP"
    },
    "1247": {
      "fn": "ERC1967Upgrade._setAdmin",
      "jump": "o",
      "offset": [
        4312,
        4513
      ],
      "op": "JUMP",
      "path": "9"
    },
    "1248": {
      "fn": "ERC1967Upgrade._setImplementation",
      "offset": [
        1532,
        1791
      ],
      "op": "JUMPDEST",
      "path": "9"
    },
    "1249": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1251": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1253": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "1255": {
      "op": "SHL"
    },
    "1256": {
      "op": "SUB"
    },
    "1257": {
      "op": "DUP2"
    },
    "1258": {
      "op": "AND"
    },
    "1259": {
      "op": "EXTCODESIZE"
    },
    "1260": {
      "fn": "ERC1967Upgrade._setImplementation",
      "offset": [
        1605,
        1700
      ],
      "op": "PUSH2",
      "path": "9",
      "statement": 21,
      "value": "0x54D"
    },
    "1263": {
      "fn": "ERC1967Upgrade._setImplementation",
      "offset": [
        1605,
        1700
      ],
      "op": "JUMPI",
      "path": "9"
    },
    "1264": {
      "fn": "ERC1967Upgrade._setImplementation",
      "offset": [
        1605,
        1700
      ],
      "op": "PUSH1",
      "path": "9",
      "value": "0x40"
    },
    "1266": {
      "fn": "ERC1967Upgrade._setImplementation",
      "offset": [
        1605,
        1700
      ],
      "op": "MLOAD",
      "path": "9"
    },
    "1267": {
      "op": "PUSH3",
      "value": "0x461BCD"
    },
    "1271": {
      "op": "PUSH1",
      "value": "0xE5"
    },
    "1273": {
      "op": "SHL"
    },
    "1274": {
      "fn": "ERC1967Upgrade._setImplementation",
      "offset": [
        1605,
        1700
      ],
      "op": "DUP2",
      "path": "9"
    },
    "1275": {
      "fn": "ERC1967Upgrade._setImplementation",
      "offset": [
        1605,
        1700
      ],
      "op": "MSTORE",
      "path": "9"
    },
    "1276": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "1278": {
      "fn": "ERC1967Upgrade._setImplementation",
      "offset": [
        1605,
        1700
      ],
      "op": "PUSH1",
      "path": "9",
      "value": "0x4"
    },
    "1280": {
      "fn": "ERC1967Upgrade._setImplementation",
      "offset": [
        1605,
        1700
      ],
      "op": "DUP3",
      "path": "9"
    },
    "1281": {
      "fn": "ERC1967Upgrade._setImplementation",
      "offset": [
        1605,
        1700
      ],
      "op": "ADD",
      "path": "9"
    },
    "1282": {
      "op": "MSTORE"
    },
    "1283": {
      "op": "PUSH1",
      "value": "0x2D"
    },
    "1285": {
      "op": "PUSH1",
      "value": "0x24"
    },
    "1287": {
      "op": "DUP3"
    },
    "1288": {
      "op": "ADD"
    },
    "1289": {
      "op": "MSTORE"
    },
    "1290": {
      "op": "PUSH32",
      "value": "0x455243313936373A206E657720696D706C656D656E746174696F6E206973206E"
    },
    "1323": {
      "op": "PUSH1",
      "value": "0x44"
    },
    "1325": {
      "op": "DUP3"
    },
    "1326": {
      "op": "ADD"
    },
    "1327": {
      "op": "MSTORE"
    },
    "1328": {
      "op": "PUSH13",
      "value": "0x1BDD08184818DBDB9D1C9858DD"
    },
    "1342": {
      "op": "PUSH1",
      "value": "0x9A"
    },
    "1344": {
      "op": "SHL"
    },
    "1345": {
      "op": "PUSH1",
      "value": "0x64"
    },
    "1347": {
      "op": "DUP3"
    },
    "1348": {
      "op": "ADD"
    },
    "1349": {
      "op": "MSTORE"
    },
    "1350": {
      "op": "PUSH1",
      "value": "0x84"
    },
    "1352": {
      "op": "ADD"
    },
    "1353": {
      "fn": "ERC1967Upgrade._setImplementation",
      "offset": [
        1605,
        1700
      ],
      "op": "PUSH2",
      "path": "9",
      "value": "0x2BA"
    },
    "1356": {
      "op": "JUMP"
    },
    "1357": {
      "fn": "ERC1967Upgrade._setImplementation",
      "offset": [
        1605,
        1700
      ],
      "op": "JUMPDEST",
      "path": "9"
    },
    "1358": {
      "fn": "ERC1967Upgrade._setImplementation",
      "offset": [
        1767,
        1784
      ],
      "op": "DUP1",
      "path": "9",
      "statement": 22
    },
    "1359": {
      "offset": [
        1030,
        1096
      ],
      "op": "PUSH32",
      "path": "9",
      "value": "0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC"
    },
    "1392": {
      "fn": "ERC1967Upgrade._setImplementation",
      "offset": [
        1710,
        1758
      ],
      "op": "PUSH2",
      "path": "9",
      "value": "0x4BF"
    },
    "1395": {
      "op": "JUMP"
    },
    "1396": {
      "op": "JUMPDEST"
    },
    "1397": {
      "op": "PUSH1",
      "value": "0x60"
    },
    "1399": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "1401": {
      "op": "DUP1"
    },
    "1402": {
      "op": "DUP6"
    },
    "1403": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1405": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1407": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "1409": {
      "op": "SHL"
    },
    "1410": {
      "op": "SUB"
    },
    "1411": {
      "op": "AND"
    },
    "1412": {
      "op": "DUP6"
    },
    "1413": {
      "op": "PUSH1",
      "value": "0x40"
    },
    "1415": {
      "op": "MLOAD"
    },
    "1416": {
      "op": "PUSH2",
      "value": "0x591"
    },
    "1419": {
      "op": "SWAP2"
    },
    "1420": {
      "op": "SWAP1"
    },
    "1421": {
      "op": "PUSH2",
      "value": "0x775"
    },
    "1424": {
      "jump": "i",
      "op": "JUMP"
    },
    "1425": {
      "op": "JUMPDEST"
    },
    "1426": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "1428": {
      "op": "PUSH1",
      "value": "0x40"
    },
    "1430": {
      "op": "MLOAD"
    },
    "1431": {
      "op": "DUP1"
    },
    "1432": {
      "op": "DUP4"
    },
    "1433": {
      "op": "SUB"
    },
    "1434": {
      "op": "DUP2"
    },
    "1435": {
      "op": "DUP6"
    },
    "1436": {
      "op": "GAS"
    },
    "1437": {
      "op": "DELEGATECALL"
    },
    "1438": {
      "op": "SWAP2"
    },
    "1439": {
      "op": "POP"
    },
    "1440": {
      "op": "POP"
    },
    "1441": {
      "op": "RETURNDATASIZE"
    },
    "1442": {
      "op": "DUP1"
    },
    "1443": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "1445": {
      "op": "DUP2"
    },
    "1446": {
      "op": "EQ"
    },
    "1447": {
      "op": "PUSH2",
      "value": "0x5CC"
    },
    "1450": {
      "op": "JUMPI"
    },
    "1451": {
      "op": "PUSH1",
      "value": "0x40"
    },
    "1453": {
      "op": "MLOAD"
    },
    "1454": {
      "op": "SWAP2"
    },
    "1455": {
      "op": "POP"
    },
    "1456": {
      "op": "PUSH1",
      "value": "0x1F"
    },
    "1458": {
      "op": "NOT"
    },
    "1459": {
      "op": "PUSH1",
      "value": "0x3F"
    },
    "1461": {
      "op": "RETURNDATASIZE"
    },
    "1462": {
      "op": "ADD"
    },
    "1463": {
      "op": "AND"
    },
    "1464": {
      "op": "DUP3"
    },
    "1465": {
      "op": "ADD"
    },
    "1466": {
      "op": "PUSH1",
      "value": "0x40"
    },
    "1468": {
      "op": "MSTORE"
    },
    "1469": {
      "op": "RETURNDATASIZE"
    },
    "1470": {
      "op": "DUP3"
    },
    "1471": {
      "op": "MSTORE"
    },
    "1472": {
      "op": "RETURNDATASIZE"
    },
    "1473": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "1475": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "1477": {
      "op": "DUP5"
    },
    "1478": {
      "op": "ADD"
    },
    "1479": {
      "op": "RETURNDATACOPY"
    },
    "1480": {
      "op": "PUSH2",
      "value": "0x5D1"
    },
    "1483": {
      "op": "JUMP"
    },
    "1484": {
      "op": "JUMPDEST"
    },
    "1485": {
      "op": "PUSH1",
      "value": "0x60"
    },
    "1487": {
      "op": "SWAP2"
    },
    "1488": {
      "op": "POP"
    },
    "1489": {
      "op": "JUMPDEST"
    },
    "1490": {
      "op": "POP"
    },
    "1491": {
      "op": "SWAP2"
    },
    "1492": {
      "op": "POP"
    },
    "1493": {
      "op": "SWAP2"
    },
    "1494": {
      "op": "POP"
    },
    "1495": {
      "op": "PUSH2",
      "value": "0x5E2"
    },
    "1498": {
      "op": "DUP7"
    },
    "1499": {
      "op": "DUP4"
    },
    "1500": {
      "op": "DUP4"
    },
    "1501": {
      "op": "DUP8"
    },
    "1502": {
      "op": "PUSH2",
      "value": "0x5EC"
    },
    "1505": {
      "jump": "i",
      "op": "JUMP"
    },
    "1506": {
      "op": "JUMPDEST"
    },
    "1507": {
      "op": "SWAP7"
    },
    "1508": {
      "op": "SWAP6"
    },
    "1509": {
      "op": "POP"
    },
    "1510": {
      "op": "POP"
    },
    "1511": {
      "op": "POP"
    },
    "1512": {
      "op": "POP"
    },
    "1513": {
      "op": "POP"
    },
    "1514": {
      "op": "POP"
    },
    "1515": {
      "jump": "o",
      "op": "JUMP"
    },
    "1516": {
      "op": "JUMPDEST"
    },
    "1517": {
      "op": "PUSH1",
      "value": "0x60"
    },
    "1519": {
      "op": "DUP4"
    },
    "1520": {
      "op": "ISZERO"
    },
    "1521": {
      "op": "PUSH2",
      "value": "0x65B"
    },
    "1524": {
      "op": "JUMPI"
    },
    "1525": {
      "op": "DUP3"
    },
    "1526": {
      "op": "MLOAD"
    },
    "1527": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "1529": {
      "op": "SUB"
    },
    "1530": {
      "op": "PUSH2",
      "value": "0x654"
    },
    "1533": {
      "op": "JUMPI"
    },
    "1534": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1536": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1538": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "1540": {
      "op": "SHL"
    },
    "1541": {
      "op": "SUB"
    },
    "1542": {
      "op": "DUP6"
    },
    "1543": {
      "op": "AND"
    },
    "1544": {
      "op": "EXTCODESIZE"
    },
    "1545": {
      "op": "PUSH2",
      "value": "0x654"
    },
    "1548": {
      "op": "JUMPI"
    },
    "1549": {
      "op": "PUSH1",
      "value": "0x40"
    },
    "1551": {
      "op": "MLOAD"
    },
    "1552": {
      "op": "PUSH3",
      "value": "0x461BCD"
    },
    "1556": {
      "op": "PUSH1",
      "value": "0xE5"
    },
    "1558": {
      "op": "SHL"
    },
    "1559": {
      "op": "DUP2"
    },
    "1560": {
      "op": "MSTORE"
    },
    "1561": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "1563": {
      "op": "PUSH1",
      "value": "0x4"
    },
    "1565": {
      "op": "DUP3"
    },
    "1566": {
      "op": "ADD"
    },
    "1567": {
      "op": "MSTORE"
    },
    "1568": {
      "op": "PUSH1",
      "value": "0x1D"
    },
    "1570": {
      "op": "PUSH1",
      "value": "0x24"
    },
    "1572": {
      "op": "DUP3"
    },
    "1573": {
      "op": "ADD"
    },
    "1574": {
      "op": "MSTORE"
    },
    "1575": {
      "op": "PUSH32",
      "value": "0x416464726573733A2063616C6C20746F206E6F6E2D636F6E7472616374000000"
    },
    "1608": {
      "op": "PUSH1",
      "value": "0x44"
    },
    "1610": {
      "op": "DUP3"
    },
    "1611": {
      "op": "ADD"
    },
    "1612": {
      "op": "MSTORE"
    },
    "1613": {
      "op": "PUSH1",
      "value": "0x64"
    },
    "1615": {
      "op": "ADD"
    },
    "1616": {
      "op": "PUSH2",
      "value": "0x2BA"
    },
    "1619": {
      "op": "JUMP"
    },
    "1620": {
      "op": "JUMPDEST"
    },
    "1621": {
      "op": "POP"
    },
    "1622": {
      "op": "DUP2"
    },
    "1623": {
      "op": "PUSH2",
      "value": "0x665"
    },
    "1626": {
      "op": "JUMP"
    },
    "1627": {
      "op": "JUMPDEST"
    },
    "1628": {
      "op": "PUSH2",
      "value": "0x665"
    },
    "1631": {
      "op": "DUP4"
    },
    "1632": {
      "op": "DUP4"
    },
    "1633": {
      "op": "PUSH2",
      "value": "0x66D"
    },
    "1636": {
      "jump": "i",
      "op": "JUMP"
    },
    "1637": {
      "op": "JUMPDEST"
    },
    "1638": {
      "op": "SWAP5"
    },
    "1639": {
      "op": "SWAP4"
    },
    "1640": {
      "op": "POP"
    },
    "1641": {
      "op": "POP"
    },
    "1642": {
      "op": "POP"
    },
    "1643": {
      "op": "POP"
    },
    "1644": {
      "jump": "o",
      "op": "JUMP"
    },
    "1645": {
      "op": "JUMPDEST"
    },
    "1646": {
      "op": "DUP2"
    },
    "1647": {
      "op": "MLOAD"
    },
    "1648": {
      "op": "ISZERO"
    },
    "1649": {
      "op": "PUSH2",
      "value": "0x67D"
    },
    "1652": {
      "op": "JUMPI"
    },
    "1653": {
      "op": "DUP2"
    },
    "1654": {
      "op": "MLOAD"
    },
    "1655": {
      "op": "DUP1"
    },
    "1656": {
      "op": "DUP4"
    },
    "1657": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "1659": {
      "op": "ADD"
    },
    "1660": {
      "op": "REVERT"
    },
    "1661": {
      "op": "JUMPDEST"
    },
    "1662": {
      "op": "DUP1"
    },
    "1663": {
      "op": "PUSH1",
      "value": "0x40"
    },
    "1665": {
      "op": "MLOAD"
    },
    "1666": {
      "op": "PUSH3",
      "value": "0x461BCD"
    },
    "1670": {
      "op": "PUSH1",
      "value": "0xE5"
    },
    "1672": {
      "op": "SHL"
    },
    "1673": {
      "op": "DUP2"
    },
    "1674": {
      "op": "MSTORE"
    },
    "1675": {
      "op": "PUSH1",
      "value": "0x4"
    },
    "1677": {
      "op": "ADD"
    },
    "1678": {
      "op": "PUSH2",
      "value": "0x2BA"
    },
    "1681": {
      "op": "SWAP2"
    },
    "1682": {
      "op": "SWAP1"
    },
    "1683": {
      "op": "PUSH2",
      "value": "0x791"
    },
    "1686": {
      "jump": "i",
      "op": "JUMP"
    },
    "1687": {
      "op": "JUMPDEST"
    },
    "1688": {
      "op": "DUP1"
    },
    "1689": {
      "op": "CALLDATALOAD"
    },
    "1690": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1692": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1694": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "1696": {
      "op": "SHL"
    },
    "1697": {
      "op": "SUB"
    },
    "1698": {
      "op": "DUP2"
    },
    "1699": {
      "op": "AND"
    },
    "1700": {
      "op": "DUP2"
    },
    "1701": {
      "op": "EQ"
    },
    "1702": {
      "op": "PUSH2",
      "value": "0x6AE"
    },
    "1705": {
      "op": "JUMPI"
    },
    "1706": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "1708": {
      "op": "DUP1"
    },
    "1709": {
      "op": "REVERT"
    },
    "1710": {
      "op": "JUMPDEST"
    },
    "1711": {
      "op": "SWAP2"
    },
    "1712": {
      "op": "SWAP1"
    },
    "1713": {
      "op": "POP"
    },
    "1714": {
      "jump": "o",
      "op": "JUMP"
    },
    "1715": {
      "op": "JUMPDEST"
    },
    "1716": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "1718": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "1720": {
      "op": "DUP3"
    },
    "1721": {
      "op": "DUP5"
    },
    "1722": {
      "op": "SUB"
    },
    "1723": {
      "op": "SLT"
    },
    "1724": {
      "op": "ISZERO"
    },
    "1725": {
      "op": "PUSH2",
      "value": "0x6C5"
    },
    "1728": {
      "op": "JUMPI"
    },
    "1729": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "1731": {
      "op": "DUP1"
    },
    "1732": {
      "op": "REVERT"
    },
    "1733": {
      "op": "JUMPDEST"
    },
    "1734": {
      "op": "PUSH2",
      "value": "0x430"
    },
    "1737": {
      "op": "DUP3"
    },
    "1738": {
      "op": "PUSH2",
      "value": "0x697"
    },
    "1741": {
      "jump": "i",
      "op": "JUMP"
    },
    "1742": {
      "op": "JUMPDEST"
    },
    "1743": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "1745": {
      "op": "DUP1"
    },
    "1746": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "1748": {
      "op": "PUSH1",
      "value": "0x40"
    },
    "1750": {
      "op": "DUP5"
    },
    "1751": {
      "op": "DUP7"
    },
    "1752": {
      "op": "SUB"
    },
    "1753": {
      "op": "SLT"
    },
    "1754": {
      "op": "ISZERO"
    },
    "1755": {
      "op": "PUSH2",
      "value": "0x6E3"
    },
    "1758": {
      "op": "JUMPI"
    },
    "1759": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "1761": {
      "op": "DUP1"
    },
    "1762": {
      "op": "REVERT"
    },
    "1763": {
      "op": "JUMPDEST"
    },
    "1764": {
      "op": "PUSH2",
      "value": "0x6EC"
    },
    "1767": {
      "op": "DUP5"
    },
    "1768": {
      "op": "PUSH2",
      "value": "0x697"
    },
    "1771": {
      "jump": "i",
      "op": "JUMP"
    },
    "1772": {
      "op": "JUMPDEST"
    },
    "1773": {
      "op": "SWAP3"
    },
    "1774": {
      "op": "POP"
    },
    "1775": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "1777": {
      "op": "DUP5"
    },
    "1778": {
      "op": "ADD"
    },
    "1779": {
      "op": "CALLDATALOAD"
    },
    "1780": {
      "op": "PUSH8",
      "value": "0xFFFFFFFFFFFFFFFF"
    },
    "1789": {
      "op": "DUP1"
    },
    "1790": {
      "op": "DUP3"
    },
    "1791": {
      "op": "GT"
    },
    "1792": {
      "op": "ISZERO"
    },
    "1793": {
      "op": "PUSH2",
      "value": "0x709"
    },
    "1796": {
      "op": "JUMPI"
    },
    "1797": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "1799": {
      "op": "DUP1"
    },
    "1800": {
      "op": "REVERT"
    },
    "1801": {
      "op": "JUMPDEST"
    },
    "1802": {
      "op": "DUP2"
    },
    "1803": {
      "op": "DUP7"
    },
    "1804": {
      "op": "ADD"
    },
    "1805": {
      "op": "SWAP2"
    },
    "1806": {
      "op": "POP"
    },
    "1807": {
      "op": "DUP7"
    },
    "1808": {
      "op": "PUSH1",
      "value": "0x1F"
    },
    "1810": {
      "op": "DUP4"
    },
    "1811": {
      "op": "ADD"
    },
    "1812": {
      "op": "SLT"
    },
    "1813": {
      "op": "PUSH2",
      "value": "0x71D"
    },
    "1816": {
      "op": "JUMPI"
    },
    "1817": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "1819": {
      "op": "DUP1"
    },
    "1820": {
      "op": "REVERT"
    },
    "1821": {
      "op": "JUMPDEST"
    },
    "1822": {
      "op": "DUP2"
    },
    "1823": {
      "op": "CALLDATALOAD"
    },
    "1824": {
      "op": "DUP2"
    },
    "1825": {
      "op": "DUP2"
    },
    "1826": {
      "op": "GT"
    },
    "1827": {
      "op": "ISZERO"
    },
    "1828": {
      "op": "PUSH2",
      "value": "0x72C"
    },
    "1831": {
      "op": "JUMPI"
    },
    "1832": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "1834": {
      "op": "DUP1"
    },
    "1835": {
      "op": "REVERT"
    },
    "1836": {
      "op": "JUMPDEST"
    },
    "1837": {
      "op": "DUP8"
    },
    "1838": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "1840": {
      "op": "DUP3"
    },
    "1841": {
      "op": "DUP6"
    },
    "1842": {
      "op": "ADD"
    },
    "1843": {
      "op": "ADD"
    },
    "1844": {
      "op": "GT"
    },
    "1845": {
      "op": "ISZERO"
    },
    "1846": {
      "op": "PUSH2",
      "value": "0x73E"
    },
    "1849": {
      "op": "JUMPI"
    },
    "1850": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "1852": {
      "op": "DUP1"
    },
    "1853": {
      "op": "REVERT"
    },
    "1854": {
      "op": "JUMPDEST"
    },
    "1855": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "1857": {
      "op": "DUP4"
    },
    "1858": {
      "op": "ADD"
    },
    "1859": {
      "op": "SWAP5"
    },
    "1860": {
      "op": "POP"
    },
    "1861": {
      "op": "DUP1"
    },
    "1862": {
      "op": "SWAP4"
    },
    "1863": {
      "op": "POP"
    },
    "1864": {
      "op": "POP"
    },
    "1865": {
      "op": "POP"
    },
    "1866": {
      "op": "POP"
    },
    "1867": {
      "op": "SWAP3"
    },
    "1868": {
      "op": "POP"
    },
    "1869": {
      "op": "SWAP3"
    },
    "1870": {
      "op": "POP"
    },
    "1871": {
      "op": "SWAP3"
    },
    "1872": {
      "jump": "o",
      "op": "JUMP"
    },
    "1873": {
      "op": "JUMPDEST"
    },
    "1874": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "1876": {
      "op": "JUMPDEST"
    },
    "1877": {
      "op": "DUP4"
    },
    "1878": {
      "op": "DUP2"
    },
    "1879": {
      "op": "LT"
    },
    "1880": {
      "op": "ISZERO"
    },
    "1881": {
      "op": "PUSH2",
      "value": "0x76C"
    },
    "1884": {
      "op": "JUMPI"
    },
    "1885": {
      "op": "DUP2"
    },
    "1886": {
      "op": "DUP2"
    },
    "1887": {
      "op": "ADD"
    },
    "1888": {
      "op": "MLOAD"
    },
    "1889": {
      "op": "DUP4"
    },
    "1890": {
      "op": "DUP3"
    },
    "1891": {
      "op": "ADD"
    },
    "1892": {
      "op": "MSTORE"
    },
    "1893": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "1895": {
      "op": "ADD"
    },
    "1896": {
      "op": "PUSH2",
      "value": "0x754"
    },
    "1899": {
      "op": "JUMP"
    },
    "1900": {
      "op": "JUMPDEST"
    },
    "1901": {
      "op": "POP"
    },
    "1902": {
      "op": "POP"
    },
    "1903": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "1905": {
      "op": "SWAP2"
    },
    "1906": {
      "op": "ADD"
    },
    "1907": {
      "op": "MSTORE"
    },
    "1908": {
      "jump": "o",
      "op": "JUMP"
    },
    "1909": {
      "op": "JUMPDEST"
    },
    "1910": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "1912": {
      "op": "DUP3"
    },
    "1913": {
      "op": "MLOAD"
    },
    "1914": {
      "op": "PUSH2",
      "value": "0x787"
    },
    "1917": {
      "op": "DUP2"
    },
    "1918": {
      "op": "DUP5"
    },
    "1919": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "1921": {
      "op": "DUP8"
    },
    "1922": {
      "op": "ADD"
    },
    "1923": {
      "op": "PUSH2",
      "value": "0x751"
    },
    "1926": {
      "jump": "i",
      "op": "JUMP"
    },
    "1927": {
      "op": "JUMPDEST"
    },
    "1928": {
      "op": "SWAP2"
    },
    "1929": {
      "op": "SWAP1"
    },
    "1930": {
      "op": "SWAP2"
    },
    "1931": {
      "op": "ADD"
    },
    "1932": {
      "op": "SWAP3"
    },
    "1933": {
      "op": "SWAP2"
    },
    "1934": {
      "op": "POP"
    },
    "1935": {
      "op": "POP"
    },
    "1936": {
      "jump": "o",
      "op": "JUMP"
    },
    "1937": {
      "op": "JUMPDEST"
    },
    "1938": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "1940": {
      "op": "DUP2"
    },
    "1941": {
      "op": "MSTORE"
    },
    "1942": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "1944": {
      "op": "DUP3"
    },
    "1945": {
      "op": "MLOAD"
    },
    "1946": {
      "op": "DUP1"
    },
    "1947": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "1949": {
      "op": "DUP5"
    },
    "1950": {
      "op": "ADD"
    },
    "1951": {
      "op": "MSTORE"
    },
    "1952": {
      "op": "PUSH2",
      "value": "0x7B0"
    },
    "1955": {
      "op": "DUP2"
    },
    "1956": {
      "op": "PUSH1",
      "value": "0x40"
    },
    "1958": {
      "op": "DUP6"
    },
    "1959": {
      "op": "ADD"
    },
    "1960": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "1962": {
      "op": "DUP8"
    },
    "1963": {
      "op": "ADD"
    },
    "1964": {
      "op": "PUSH2",
      "value": "0x751"
    },
    "1967": {
      "jump": "i",
      "op": "JUMP"
    },
    "1968": {
      "op": "JUMPDEST"
    },
    "1969": {
      "op": "PUSH1",
      "value": "0x1F"
    },
    "1971": {
      "op": "ADD"
    },
    "1972": {
      "op": "PUSH1",
      "value": "0x1F"
    },
    "1974": {
      "op": "NOT"
    },
    "1975": {
      "op": "AND"
    },
    "1976": {
      "op": "SWAP2"
    },
    "1977": {
      "op": "SWAP1"
    },
    "1978": {
      "op": "SWAP2"
    },
    "1979": {
      "op": "ADD"
    },
    "1980": {
      "op": "PUSH1",
      "value": "0x40"
    },
    "1982": {
      "op": "ADD"
    },
    "1983": {
      "op": "SWAP3"
    },
    "1984": {
      "op": "SWAP2"
    },
    "1985": {
      "op": "POP"
    },
    "1986": {
      "op": "POP"
    },
    "1987": {
      "jump": "o",
      "op": "JUMP"
    }
  },
  "sha1": "1fa65c17124a93119d992716c761e437c02eda38",
  "source": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.7.0) (proxy/transparent/TransparentUpgradeableProxy.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../ERC1967/ERC1967Proxy.sol\";\n\n/**\n * @dev This contract implements a proxy that is upgradeable by an admin.\n *\n * To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector\n * clashing], which can potentially be used in an attack, this contract uses the\n * https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two\n * things that go hand in hand:\n *\n * 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if\n * that call matches one of the admin functions exposed by the proxy itself.\n * 2. If the admin calls the proxy, it can access the admin functions, but its calls will never be forwarded to the\n * implementation. If the admin tries to call a function on the implementation it will fail with an error that says\n * \"admin cannot fallback to proxy target\".\n *\n * These properties mean that the admin account can only be used for admin actions like upgrading the proxy or changing\n * the admin, so it's best if it's a dedicated account that is not used for anything else. This will avoid headaches due\n * to sudden errors when trying to call a function from the proxy implementation.\n *\n * Our recommendation is for the dedicated account to be an instance of the {ProxyAdmin} contract. If set up this way,\n * you should think of the `ProxyAdmin` instance as the real administrative interface of your proxy.\n */\ncontract TransparentUpgradeableProxy is ERC1967Proxy {\n    /**\n     * @dev Initializes an upgradeable proxy managed by `_admin`, backed by the implementation at `_logic`, and\n     * optionally initialized with `_data` as explained in {ERC1967Proxy-constructor}.\n     */\n    constructor(\n        address _logic,\n        address admin_,\n        bytes memory _data\n    ) payable ERC1967Proxy(_logic, _data) {\n        _changeAdmin(admin_);\n    }\n\n    /**\n     * @dev Modifier used internally that will delegate the call to the implementation unless the sender is the admin.\n     */\n    modifier ifAdmin() {\n        if (msg.sender == _getAdmin()) {\n            _;\n        } else {\n            _fallback();\n        }\n    }\n\n    /**\n     * @dev Returns the current admin.\n     *\n     * NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyAdmin}.\n     *\n     * TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the\n     * https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\n     * `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103`\n     */\n    function admin() external ifAdmin returns (address admin_) {\n        admin_ = _getAdmin();\n    }\n\n    /**\n     * @dev Returns the current implementation.\n     *\n     * NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyImplementation}.\n     *\n     * TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the\n     * https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\n     * `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc`\n     */\n    function implementation() external ifAdmin returns (address implementation_) {\n        implementation_ = _implementation();\n    }\n\n    /**\n     * @dev Changes the admin of the proxy.\n     *\n     * Emits an {AdminChanged} event.\n     *\n     * NOTE: Only the admin can call this function. See {ProxyAdmin-changeProxyAdmin}.\n     */\n    function changeAdmin(address newAdmin) external virtual ifAdmin {\n        _changeAdmin(newAdmin);\n    }\n\n    /**\n     * @dev Upgrade the implementation of the proxy.\n     *\n     * NOTE: Only the admin can call this function. See {ProxyAdmin-upgrade}.\n     */\n    function upgradeTo(address newImplementation) external ifAdmin {\n        _upgradeToAndCall(newImplementation, bytes(\"\"), false);\n    }\n\n    /**\n     * @dev Upgrade the implementation of the proxy, and then call a function from the new implementation as specified\n     * by `data`, which should be an encoded function call. This is useful to initialize new storage variables in the\n     * proxied contract.\n     *\n     * NOTE: Only the admin can call this function. See {ProxyAdmin-upgradeAndCall}.\n     */\n    function upgradeToAndCall(address newImplementation, bytes calldata data) external payable ifAdmin {\n        _upgradeToAndCall(newImplementation, data, true);\n    }\n\n    /**\n     * @dev Returns the current admin.\n     */\n    function _admin() internal view virtual returns (address) {\n        return _getAdmin();\n    }\n\n    /**\n     * @dev Makes sure the admin cannot access the fallback function. See {Proxy-_beforeFallback}.\n     */\n    function _beforeFallback() internal virtual override {\n        require(msg.sender != _getAdmin(), \"TransparentUpgradeableProxy: admin cannot fallback to proxy target\");\n        super._beforeFallback();\n    }\n}\n",
  "sourceMap": "1649:3469:12:-:0;;;1923:167;;;;;;;;;;;;;;;;;;:::i;:::-;2038:6;2046:5;1024:39:8;2038:6:12;2046:5;1057::8;1024:17;:39::i;:::-;-1:-1:-1;2063:20:12::1;::::0;-1:-1:-1;2076:6:12;2063:12:::1;:20::i;:::-;1923:167:::0;;;1649:3469;;2183:295:9;2321:29;2332:17;2321:10;:29::i;:::-;2378:1;2364:4;:11;:15;:28;;;;2383:9;2364:28;2360:112;;;2408:53;2437:17;2456:4;2408:28;:53::i;:::-;;2360:112;2183:295;;;:::o;4624:135::-;4688:35;4701:11;-1:-1:-1;;;;;;;;;;;4178:45:9;-1:-1:-1;;;;;4178:45:9;;4108:122;4701:11;4688:35;;;-1:-1:-1;;;;;1884:15:67;;;1866:34;;1936:15;;;1931:2;1916:18;;1909:43;1801:18;4688:35:9;;;;;;;4733:19;4743:8;4733:9;:19::i;:::-;4624:135;:::o;1897:152::-;1963:37;1982:17;1963:18;:37::i;:::-;2015:27;;-1:-1:-1;;;;;2015:27:9;;;;;;;;1897:152;:::o;6469:198:22:-;6552:12;6583:77;6604:6;6612:4;6583:77;;;;;;;;;;;;;;;;;:20;:77::i;:::-;6576:84;6469:198;-1:-1:-1;;;6469:198:22:o;4312:201:9:-;-1:-1:-1;;;;;4375:22:9;;4367:73;;;;-1:-1:-1;;;4367:73:9;;2165:2:67;4367:73:9;;;2147:21:67;2204:2;2184:18;;;2177:30;2243:34;2223:18;;;2216:62;-1:-1:-1;;;2294:18:67;;;2287:36;2340:19;;4367:73:9;;;;;;;;;4498:8;-1:-1:-1;;;;;;;;;;;4450:39:9;:56;;-1:-1:-1;;;;;;4450:56:9;-1:-1:-1;;;;;4450:56:9;;;;;;;;;;-1:-1:-1;4312:201:9:o;1532:259::-;-1:-1:-1;;;;;1465:19:22;;;1605:95:9;;;;-1:-1:-1;;;1605:95:9;;2572:2:67;1605:95:9;;;2554:21:67;2611:2;2591:18;;;2584:30;2650:34;2630:18;;;2623:62;-1:-1:-1;;;2701:18:67;;;2694:43;2754:19;;1605:95:9;2370:409:67;1605:95:9;1767:17;1030:66;1710:48;1614:190:24;6853:325:22;6994:12;7019;7033:23;7060:6;-1:-1:-1;;;;;7060:19:22;7080:4;7060:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7018:67:22;;-1:-1:-1;7018:67:22;-1:-1:-1;7102:69:22;7129:6;7018:67;;7158:12;7102:26;:69::i;:::-;7095:76;6853:325;-1:-1:-1;;;;;;6853:325:22:o;7466:628::-;7646:12;7674:7;7670:418;;;7701:10;:17;7722:1;7701:22;7697:286;;-1:-1:-1;;;;;1465:19:22;;;7908:60;;;;-1:-1:-1;;;7908:60:22;;3278:2:67;7908:60:22;;;3260:21:67;3317:2;3297:18;;;3290:30;3356:31;3336:18;;;3329:59;3405:18;;7908:60:22;3076:353:67;7908:60:22;-1:-1:-1;8003:10:22;7996:17;;7670:418;8044:33;8052:10;8064:12;8044:7;:33::i;:::-;7466:628;;;;;;:::o;8616:540::-;8775:17;;:21;8771:379;;9003:10;8997:17;9059:15;9046:10;9042:2;9038:19;9031:44;8771:379;9126:12;9119:20;;-1:-1:-1;;;9119:20:22;;;;;;;;:::i;14:177:67:-;93:13;;-1:-1:-1;;;;;135:31:67;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:127::-;257:10;252:3;248:20;245:1;238:31;288:4;285:1;278:15;312:4;309:1;302:15;328:250;413:1;423:113;437:6;434:1;431:13;423:113;;;513:11;;;507:18;494:11;;;487:39;459:2;452:10;423:113;;;-1:-1:-1;;570:1:67;552:16;;545:27;328:250::o;583:1066::-;680:6;688;696;749:2;737:9;728:7;724:23;720:32;717:52;;;765:1;762;755:12;717:52;788:40;818:9;788:40;:::i;:::-;778:50;;847:49;892:2;881:9;877:18;847:49;:::i;:::-;940:2;925:18;;919:25;837:59;;-1:-1:-1;;;;;;993:14:67;;;990:34;;;1020:1;1017;1010:12;990:34;1058:6;1047:9;1043:22;1033:32;;1103:7;1096:4;1092:2;1088:13;1084:27;1074:55;;1125:1;1122;1115:12;1074:55;1154:2;1148:9;1176:2;1172;1169:10;1166:36;;;1182:18;;:::i;:::-;1257:2;1251:9;1225:2;1311:13;;-1:-1:-1;;1307:22:67;;;1331:2;1303:31;1299:40;1287:53;;;1355:18;;;1375:22;;;1352:46;1349:72;;;1401:18;;:::i;:::-;1441:10;1437:2;1430:22;1476:2;1468:6;1461:18;1516:7;1511:2;1506;1502;1498:11;1494:20;1491:33;1488:53;;;1537:1;1534;1527:12;1488:53;1550:68;1615:2;1610;1602:6;1598:15;1593:2;1589;1585:11;1550:68;:::i;:::-;1637:6;1627:16;;;;;;;583:1066;;;;;:::o;2784:287::-;2913:3;2951:6;2945:13;2967:66;3026:6;3021:3;3014:4;3006:6;3002:17;2967:66;:::i;:::-;3049:16;;;;;2784:287;-1:-1:-1;;2784:287:67:o;3434:396::-;3583:2;3572:9;3565:21;3546:4;3615:6;3609:13;3658:6;3653:2;3642:9;3638:18;3631:34;3674:79;3746:6;3741:2;3730:9;3726:18;3721:2;3713:6;3709:15;3674:79;:::i;:::-;3814:2;3793:15;-1:-1:-1;;3789:29:67;3774:45;;;;3821:2;3770:54;;3434:396;-1:-1:-1;;3434:396:67:o;:::-;1649:3469:12;;;;;;",
  "sourcePath": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.8.2/contracts/proxy/transparent/TransparentUpgradeableProxy.sol",
  "type": "contract"
}