{
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_logic",
          "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"
    },
    {
      "stateMutability": "payable",
      "type": "receive"
    }
  ],
  "allSourcePaths": {
    "92": "node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol",
    "93": "node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol",
    "94": "node_modules/@openzeppelin/contracts/proxy/Proxy.sol"
  },
  "ast": {
    "absolutePath": "node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol",
    "exportedSymbols": {
      "Address": [
        24344
      ],
      "ERC1967Proxy": [
        20821
      ],
      "ERC1967Upgrade": [
        27109
      ],
      "IBeacon": [
        27659
      ],
      "IERC1822Proxiable": [
        27649
      ],
      "Proxy": [
        19871
      ],
      "StorageSlot": [
        27719
      ]
    },
    "id": 20822,
    "license": "MIT",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 20770,
        "literals": [
          "solidity",
          "^",
          "0.8",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "99:23:92"
      },
      {
        "absolutePath": "node_modules/@openzeppelin/contracts/proxy/Proxy.sol",
        "file": "../Proxy.sol",
        "id": 20771,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 20822,
        "sourceUnit": 19872,
        "src": "124:22:92",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol",
        "file": "./ERC1967Upgrade.sol",
        "id": 20772,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 20822,
        "sourceUnit": 27110,
        "src": "147:30:92",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "abstract": false,
        "baseContracts": [
          {
            "baseName": {
              "id": 20774,
              "name": "Proxy",
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 19871,
              "src": "577:5:92"
            },
            "id": 20775,
            "nodeType": "InheritanceSpecifier",
            "src": "577:5:92"
          },
          {
            "baseName": {
              "id": 20776,
              "name": "ERC1967Upgrade",
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 27109,
              "src": "584:14:92"
            },
            "id": 20777,
            "nodeType": "InheritanceSpecifier",
            "src": "584:14:92"
          }
        ],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": {
          "id": 20773,
          "nodeType": "StructuredDocumentation",
          "src": "179:372:92",
          "text": " @dev This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an\n implementation address that can be changed. This address is stored in storage in the location specified by\n https://eips.ethereum.org/EIPS/eip-1967[EIP1967], so that it doesn't conflict with the storage layout of the\n implementation behind the proxy."
        },
        "fullyImplemented": true,
        "id": 20821,
        "linearizedBaseContracts": [
          20821,
          27109,
          19871
        ],
        "name": "ERC1967Proxy",
        "nameLocation": "561:12:92",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "body": {
              "id": 20807,
              "nodeType": "Block",
              "src": "1001:161:92",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "id": 20798,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 20786,
                          "name": "_IMPLEMENTATION_SLOT",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 26805,
                          "src": "1018:20:92",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "arguments": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 20796,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "leftExpression": {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "hexValue": "656970313936372e70726f78792e696d706c656d656e746174696f6e",
                                        "id": 20792,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "string",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "1068:30:92",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_stringliteral_360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd",
                                          "typeString": "literal_string \"eip1967.proxy.implementation\""
                                        },
                                        "value": "eip1967.proxy.implementation"
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_stringliteral_360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd",
                                          "typeString": "literal_string \"eip1967.proxy.implementation\""
                                        }
                                      ],
                                      "id": 20791,
                                      "name": "keccak256",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": -8,
                                      "src": "1058:9:92",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                                        "typeString": "function (bytes memory) pure returns (bytes32)"
                                      }
                                    },
                                    "id": 20793,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "1058:41:92",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  ],
                                  "id": 20790,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "1050:7:92",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint256_$",
                                    "typeString": "type(uint256)"
                                  },
                                  "typeName": {
                                    "id": 20789,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "1050:7:92",
                                    "typeDescriptions": {}
                                  }
                                },
                                "id": 20794,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "1050:50:92",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "-",
                              "rightExpression": {
                                "hexValue": "31",
                                "id": 20795,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "1103:1:92",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_1_by_1",
                                  "typeString": "int_const 1"
                                },
                                "value": "1"
                              },
                              "src": "1050:54:92",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 20788,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "1042:7:92",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_bytes32_$",
                              "typeString": "type(bytes32)"
                            },
                            "typeName": {
                              "id": 20787,
                              "name": "bytes32",
                              "nodeType": "ElementaryTypeName",
                              "src": "1042:7:92",
                              "typeDescriptions": {}
                            }
                          },
                          "id": 20797,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1042:63:92",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "src": "1018:87:92",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 20785,
                      "name": "assert",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": -3,
                      "src": "1011:6:92",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 20799,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1011:95:92",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 20800,
                  "nodeType": "ExpressionStatement",
                  "src": "1011:95:92"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 20802,
                        "name": "_logic",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 20780,
                        "src": "1134:6:92",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 20803,
                        "name": "_data",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 20782,
                        "src": "1142:5:92",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      {
                        "hexValue": "66616c7365",
                        "id": 20804,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1149:5:92",
                        "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": 20801,
                      "name": "_upgradeToAndCall",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26892,
                      "src": "1116:17:92",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_bool_$returns$__$",
                        "typeString": "function (address,bytes memory,bool)"
                      }
                    },
                    "id": 20805,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1116:39:92",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 20806,
                  "nodeType": "ExpressionStatement",
                  "src": "1116:39:92"
                }
              ]
            },
            "documentation": {
              "id": 20778,
              "nodeType": "StructuredDocumentation",
              "src": "605:335:92",
              "text": " @dev Initializes the upgradeable proxy with an initial implementation specified by `_logic`.\n If `_data` is nonempty, it's used as data in a delegate call to `_logic`. This will typically be an encoded\n function call, and allows initializating the storage of the proxy like a Solidity constructor."
            },
            "id": 20808,
            "implemented": true,
            "kind": "constructor",
            "modifiers": [],
            "name": "",
            "nameLocation": "-1:-1:-1",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 20783,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 20780,
                  "mutability": "mutable",
                  "name": "_logic",
                  "nameLocation": "965:6:92",
                  "nodeType": "VariableDeclaration",
                  "scope": 20808,
                  "src": "957:14:92",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 20779,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "957:7:92",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 20782,
                  "mutability": "mutable",
                  "name": "_data",
                  "nameLocation": "986:5:92",
                  "nodeType": "VariableDeclaration",
                  "scope": 20808,
                  "src": "973:18:92",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 20781,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "973:5:92",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "956:36:92"
            },
            "returnParameters": {
              "id": 20784,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1001:0:92"
            },
            "scope": 20821,
            "src": "945:217:92",
            "stateMutability": "payable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              19836
            ],
            "body": {
              "id": 20819,
              "nodeType": "Block",
              "src": "1321:59:92",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "id": 20815,
                        "name": "ERC1967Upgrade",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 27109,
                        "src": "1338:14:92",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_ERC1967Upgrade_$27109_$",
                          "typeString": "type(contract ERC1967Upgrade)"
                        }
                      },
                      "id": 20816,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "_getImplementation",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 26823,
                      "src": "1338:33:92",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
                        "typeString": "function () view returns (address)"
                      }
                    },
                    "id": 20817,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1338:35:92",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 20814,
                  "id": 20818,
                  "nodeType": "Return",
                  "src": "1331:42:92"
                }
              ]
            },
            "documentation": {
              "id": 20809,
              "nodeType": "StructuredDocumentation",
              "src": "1168:67:92",
              "text": " @dev Returns the current implementation address."
            },
            "id": 20820,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_implementation",
            "nameLocation": "1249:15:92",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 20811,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "1289:8:92"
            },
            "parameters": {
              "id": 20810,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1264:2:92"
            },
            "returnParameters": {
              "id": 20814,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 20813,
                  "mutability": "mutable",
                  "name": "impl",
                  "nameLocation": "1315:4:92",
                  "nodeType": "VariableDeclaration",
                  "scope": 20820,
                  "src": "1307:12:92",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 20812,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1307:7:92",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1306:14:92"
            },
            "scope": 20821,
            "src": "1240:140:92",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "internal"
          }
        ],
        "scope": 20822,
        "src": "552:830:92",
        "usedErrors": []
      }
    ],
    "src": "99:1284:92"
  },
  "bytecode": "60806040526040516107b13803806107b183398101604081905261002291610307565b61004d60017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd610424565b60008051602061076a8339815191521461006957610069610475565b6100758282600061007c565b50506104a1565b610085836100b2565b6000825111806100925750805b156100ad576100ab83836100f260201b6100291760201c565b505b505050565b6100bb8161011e565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060610117838360405180606001604052806027815260200161078a602791396101de565b9392505050565b610131816102bc60201b6100551760201c565b6101985760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084015b60405180910390fd5b806101bd60008051602061076a83398151915260001b6102cb60201b6100641760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b60606001600160a01b0384163b6102465760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b606482015260840161018f565b600080856001600160a01b03168560405161026191906103d5565b600060405180830381855af49150503d806000811461029c576040519150601f19603f3d011682016040523d82523d6000602084013e6102a1565b606091505b5090925090506102b28282866102ce565b9695505050505050565b6001600160a01b03163b151590565b90565b606083156102dd575081610117565b8251156102ed5782518084602001fd5b8160405162461bcd60e51b815260040161018f91906103f1565b6000806040838503121561031a57600080fd5b82516001600160a01b038116811461033157600080fd5b60208401519092506001600160401b038082111561034e57600080fd5b818501915085601f83011261036257600080fd5b8151818111156103745761037461048b565b604051601f8201601f19908116603f0116810190838211818310171561039c5761039c61048b565b816040528281528860208487010111156103b557600080fd5b6103c6836020830160208801610449565b80955050505050509250929050565b600082516103e7818460208701610449565b9190910192915050565b6020815260008251806020840152610410816040850160208701610449565b601f01601f19169190910160400192915050565b60008282101561044457634e487b7160e01b600052601160045260246000fd5b500390565b60005b8381101561046457818101518382015260200161044c565b838111156100ab5750506000910152565b634e487b7160e01b600052600160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6102ba806104b06000396000f3fe60806040523661001357610011610017565b005b6100115b610027610022610067565b61009f565b565b606061004e838360405180606001604052806027815260200161025e602791396100c3565b9392505050565b6001600160a01b03163b151590565b90565b600061009a7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156100be573d6000f35b3d6000fd5b60606001600160a01b0384163b6101305760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084015b60405180910390fd5b600080856001600160a01b03168560405161014b91906101de565b600060405180830381855af49150503d8060008114610186576040519150601f19603f3d011682016040523d82523d6000602084013e61018b565b606091505b509150915061019b8282866101a5565b9695505050505050565b606083156101b457508161004e565b8251156101c45782518084602001fd5b8160405162461bcd60e51b815260040161012791906101fa565b600082516101f081846020870161022d565b9190910192915050565b602081526000825180602084015261021981604085016020870161022d565b601f01601f19169190910160400192915050565b60005b83811015610248578181015183820152602001610230565b83811115610257576000848401525b5050505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e70df81996c86cf23730573e9129e7d294a1a48b2b1b7818e450c5e05ae401764736f6c63430008060033360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564",
  "bytecodeSha1": "da39a3ee5e6b4b0d3255bfef95601890afd80709",
  "compiler": {
    "evm_version": "istanbul",
    "optimizer": {
      "enabled": true,
      "runs": 200
    },
    "version": "0.8.6+commit.11564f7e"
  },
  "contractName": "ERC1967Proxy",
  "coverageMap": {
    "branches": {
      "92": {},
      "93": {},
      "94": {}
    },
    "statements": {
      "92": {
        "ERC1967Proxy._implementation": {
          "3": [
            1331,
            1373
          ]
        }
      },
      "93": {
        "ERC1967Upgrade._getImplementation": {
          "4": [
            1373,
            1434
          ]
        }
      },
      "94": {
        "Proxy.<fallback>": {
          "1": [
            2675,
            2686
          ]
        },
        "Proxy.<receive>": {
          "0": [
            2898,
            2909
          ]
        },
        "Proxy._fallback": {
          "2": [
            2397,
            2425
          ]
        }
      }
    }
  },
  "dependencies": [
    "ERC1967Upgrade",
    "Proxy"
  ],
  "deployedBytecode": "60806040523661001357610011610017565b005b6100115b610027610022610067565b61009f565b565b606061004e838360405180606001604052806027815260200161025e602791396100c3565b9392505050565b6001600160a01b03163b151590565b90565b600061009a7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156100be573d6000f35b3d6000fd5b60606001600160a01b0384163b6101305760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084015b60405180910390fd5b600080856001600160a01b03168560405161014b91906101de565b600060405180830381855af49150503d8060008114610186576040519150601f19603f3d011682016040523d82523d6000602084013e61018b565b606091505b509150915061019b8282866101a5565b9695505050505050565b606083156101b457508161004e565b8251156101c45782518084602001fd5b8160405162461bcd60e51b815260040161012791906101fa565b600082516101f081846020870161022d565b9190910192915050565b602081526000825180602084015261021981604085016020870161022d565b601f01601f19169190910160400192915050565b60005b83811015610248578181015183820152602001610230565b83811115610257576000848401525b5050505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e70df81996c86cf23730573e9129e7d294a1a48b2b1b7818e450c5e05ae401764736f6c63430008060033",
  "deployedSourceMap": "552:830:92:-:0;;;;;;2898:11:94;:9;:11::i;:::-;552:830:92;;2675:11:94;2322:110;2397:28;2407:17;:15;:17::i;:::-;2397:9;:28::i;:::-;2322:110::o;6570:198:104:-;6653:12;6684:77;6705:6;6713:4;6684:77;;;;;;;;;;;;;;;;;:20;:77::i;:::-;6677:84;6570:198;-1:-1:-1;;;6570:198:104:o;1175:320::-;-1:-1:-1;;;;;1465:19:104;;:23;;;1175:320::o;1599:147:106:-;1726:4;1599:147::o;1240:140:92:-;1307:12;1338:35;1030:66:93;1380:54;-1:-1:-1;;;;;1380:54:93;;1301:140;1338:35:92;1331:42;;1240:140;:::o;948:895:94:-;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;6954:387:104;7095:12;-1:-1:-1;;;;;1465:19:104;;;7119:69;;;;-1:-1:-1;;;7119:69:104;;883:2:114;7119:69:104;;;865:21:114;922:2;902:18;;;895:30;961:34;941:18;;;934:62;-1:-1:-1;;;1012:18:114;;;1005:36;1058:19;;7119:69:104;;;;;;;;;7200:12;7214:23;7241:6;-1:-1:-1;;;;;7241:19:104;7261:4;7241:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7199:67;;;;7283:51;7300:7;7309:10;7321:12;7283:16;:51::i;:::-;7276:58;6954:387;-1:-1:-1;;;;;;6954:387:104:o;7561:692::-;7707:12;7735:7;7731:516;;;-1:-1:-1;7765:10:104;7758:17;;7731:516;7876:17;;:21;7872:365;;8070:10;8064:17;8130:15;8117:10;8113:2;8109:19;8102:44;7872:365;8209:12;8202:20;;-1:-1:-1;;;8202:20:104;;;;;;;;:::i;14:274:114:-;143:3;181:6;175:13;197:53;243:6;238:3;231:4;223:6;219:17;197:53;:::i;:::-;266:16;;;;;151:137;-1:-1:-1;;151:137:114:o;293:383::-;442:2;431:9;424:21;405:4;474:6;468:13;517:6;512:2;501:9;497:18;490:34;533:66;592:6;587:2;576:9;572:18;567:2;559:6;555:15;533:66;:::i;:::-;660:2;639:15;-1:-1:-1;;635:29:114;620:45;;;;667:2;616:54;;414:262;-1:-1:-1;;414:262:114:o;1088:258::-;1160:1;1170:113;1184:6;1181:1;1178:13;1170:113;;;1260:11;;;1254:18;1241:11;;;1234:39;1206:2;1199:10;1170:113;;;1301:6;1298:1;1295:13;1292:2;;;1336:1;1327:6;1322:3;1318:16;1311:27;1292:2;;1141:205;;;:::o",
  "language": "Solidity",
  "natspec": {
    "details": "This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an implementation address that can be changed. This address is stored in storage in the location specified by https://eips.ethereum.org/EIPS/eip-1967[EIP1967], so that it doesn't conflict with the storage layout of the implementation behind the proxy.",
    "kind": "dev",
    "methods": {
      "constructor": {
        "details": "Initializes the upgradeable proxy with an initial implementation specified by `_logic`. If `_data` is nonempty, it's used as data in a delegate call to `_logic`. This will typically be an encoded function call, and allows initializating the storage of the proxy like a Solidity constructor."
      }
    },
    "version": 1
  },
  "offset": [
    552,
    1382
  ],
  "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLDATASIZE PUSH2 0x13 JUMPI PUSH2 0x11 PUSH2 0x17 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x11 JUMPDEST PUSH2 0x27 PUSH2 0x22 PUSH2 0x67 JUMP JUMPDEST PUSH2 0x9F JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x60 PUSH2 0x4E DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x25E PUSH1 0x27 SWAP2 CODECOPY PUSH2 0xC3 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE ISZERO ISZERO SWAP1 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9A PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST SWAP1 POP SWAP1 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 0xBE JUMPI RETURNDATASIZE PUSH1 0x0 RETURN JUMPDEST RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH1 0x60 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE PUSH2 0x130 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 0x416464726573733A2064656C65676174652063616C6C20746F206E6F6E2D636F PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x1B9D1C9858DD PUSH1 0xD2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x40 MLOAD PUSH2 0x14B SWAP2 SWAP1 PUSH2 0x1DE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x186 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 0x18B JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x19B DUP3 DUP3 DUP7 PUSH2 0x1A5 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x1B4 JUMPI POP DUP2 PUSH2 0x4E JUMP JUMPDEST DUP3 MLOAD ISZERO PUSH2 0x1C4 JUMPI DUP3 MLOAD DUP1 DUP5 PUSH1 0x20 ADD REVERT JUMPDEST DUP2 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x127 SWAP2 SWAP1 PUSH2 0x1FA JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x1F0 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x22D 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 0x219 DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x22D JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x248 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x230 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x257 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP INVALID COINBASE PUSH5 0x6472657373 GASPRICE KECCAK256 PUSH13 0x6F772D6C6576656C2064656C65 PUSH8 0x6174652063616C6C KECCAK256 PUSH7 0x61696C6564A264 PUSH10 0x706673582212203E70DF DUP2 SWAP10 PUSH13 0x86CF23730573E9129E7D294A1A 0x48 0xB2 0xB1 0xB7 DUP2 DUP15 GASLIMIT 0xC 0x5E SDIV 0xAE BLOCKHASH OR PUSH5 0x736F6C6343 STOP ADDMOD MOD STOP CALLER ",
  "pcMap": {
    "0": {
      "offset": [
        552,
        1382
      ],
      "op": "PUSH1",
      "path": "92",
      "value": "0x80"
    },
    "2": {
      "fn": null,
      "offset": [
        552,
        1382
      ],
      "op": "PUSH1",
      "path": "92",
      "value": "0x40"
    },
    "4": {
      "fn": null,
      "offset": [
        552,
        1382
      ],
      "op": "MSTORE",
      "path": "92"
    },
    "5": {
      "fn": null,
      "offset": [
        552,
        1382
      ],
      "op": "CALLDATASIZE",
      "path": "92"
    },
    "6": {
      "fn": null,
      "offset": [
        552,
        1382
      ],
      "op": "PUSH2",
      "path": "92",
      "value": "0x13"
    },
    "9": {
      "fn": null,
      "offset": [
        552,
        1382
      ],
      "op": "JUMPI",
      "path": "92"
    },
    "10": {
      "fn": "Proxy.<receive>",
      "offset": [
        2898,
        2909
      ],
      "op": "PUSH2",
      "path": "94",
      "statement": 0,
      "value": "0x11"
    },
    "13": {
      "fn": "Proxy.<receive>",
      "offset": [
        2898,
        2907
      ],
      "op": "PUSH2",
      "path": "94",
      "value": "0x17"
    },
    "16": {
      "fn": "Proxy.<receive>",
      "jump": "i",
      "offset": [
        2898,
        2909
      ],
      "op": "JUMP",
      "path": "94"
    },
    "17": {
      "fn": "Proxy.<receive>",
      "offset": [
        2898,
        2909
      ],
      "op": "JUMPDEST",
      "path": "94"
    },
    "18": {
      "offset": [
        552,
        1382
      ],
      "op": "STOP",
      "path": "92"
    },
    "19": {
      "fn": "Proxy.<receive>",
      "offset": [
        552,
        1382
      ],
      "op": "JUMPDEST",
      "path": "92"
    },
    "20": {
      "fn": "Proxy.<fallback>",
      "offset": [
        2675,
        2686
      ],
      "op": "PUSH2",
      "path": "94",
      "statement": 1,
      "value": "0x11"
    },
    "23": {
      "fn": "Proxy._fallback",
      "offset": [
        2322,
        2432
      ],
      "op": "JUMPDEST",
      "path": "94"
    },
    "24": {
      "fn": "Proxy._fallback",
      "offset": [
        2397,
        2425
      ],
      "op": "PUSH2",
      "path": "94",
      "statement": 2,
      "value": "0x27"
    },
    "27": {
      "fn": "Proxy._fallback",
      "offset": [
        2407,
        2424
      ],
      "op": "PUSH2",
      "path": "94",
      "value": "0x22"
    },
    "30": {
      "fn": "Proxy._fallback",
      "offset": [
        2407,
        2422
      ],
      "op": "PUSH2",
      "path": "94",
      "value": "0x67"
    },
    "33": {
      "fn": "Proxy._fallback",
      "jump": "i",
      "offset": [
        2407,
        2424
      ],
      "op": "JUMP",
      "path": "94"
    },
    "34": {
      "fn": "Proxy._fallback",
      "offset": [
        2407,
        2424
      ],
      "op": "JUMPDEST",
      "path": "94"
    },
    "35": {
      "fn": "Proxy._fallback",
      "offset": [
        2397,
        2406
      ],
      "op": "PUSH2",
      "path": "94",
      "value": "0x9F"
    },
    "38": {
      "fn": "Proxy._fallback",
      "jump": "i",
      "offset": [
        2397,
        2425
      ],
      "op": "JUMP",
      "path": "94"
    },
    "39": {
      "fn": "Proxy._fallback",
      "offset": [
        2397,
        2425
      ],
      "op": "JUMPDEST",
      "path": "94"
    },
    "40": {
      "fn": "Proxy._fallback",
      "jump": "o",
      "offset": [
        2322,
        2432
      ],
      "op": "JUMP",
      "path": "94"
    },
    "41": {
      "op": "JUMPDEST"
    },
    "42": {
      "op": "PUSH1",
      "value": "0x60"
    },
    "44": {
      "op": "PUSH2",
      "value": "0x4E"
    },
    "47": {
      "op": "DUP4"
    },
    "48": {
      "op": "DUP4"
    },
    "49": {
      "op": "PUSH1",
      "value": "0x40"
    },
    "51": {
      "op": "MLOAD"
    },
    "52": {
      "op": "DUP1"
    },
    "53": {
      "op": "PUSH1",
      "value": "0x60"
    },
    "55": {
      "op": "ADD"
    },
    "56": {
      "op": "PUSH1",
      "value": "0x40"
    },
    "58": {
      "op": "MSTORE"
    },
    "59": {
      "op": "DUP1"
    },
    "60": {
      "op": "PUSH1",
      "value": "0x27"
    },
    "62": {
      "op": "DUP2"
    },
    "63": {
      "op": "MSTORE"
    },
    "64": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "66": {
      "op": "ADD"
    },
    "67": {
      "op": "PUSH2",
      "value": "0x25E"
    },
    "70": {
      "op": "PUSH1",
      "value": "0x27"
    },
    "72": {
      "op": "SWAP2"
    },
    "73": {
      "op": "CODECOPY"
    },
    "74": {
      "op": "PUSH2",
      "value": "0xC3"
    },
    "77": {
      "jump": "i",
      "op": "JUMP"
    },
    "78": {
      "op": "JUMPDEST"
    },
    "79": {
      "op": "SWAP4"
    },
    "80": {
      "op": "SWAP3"
    },
    "81": {
      "op": "POP"
    },
    "82": {
      "op": "POP"
    },
    "83": {
      "op": "POP"
    },
    "84": {
      "jump": "o",
      "op": "JUMP"
    },
    "85": {
      "op": "JUMPDEST"
    },
    "86": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "88": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "90": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "92": {
      "op": "SHL"
    },
    "93": {
      "op": "SUB"
    },
    "94": {
      "op": "AND"
    },
    "95": {
      "op": "EXTCODESIZE"
    },
    "96": {
      "op": "ISZERO"
    },
    "97": {
      "op": "ISZERO"
    },
    "98": {
      "op": "SWAP1"
    },
    "99": {
      "jump": "o",
      "op": "JUMP"
    },
    "100": {
      "op": "JUMPDEST"
    },
    "101": {
      "op": "SWAP1"
    },
    "102": {
      "jump": "o",
      "op": "JUMP"
    },
    "103": {
      "fn": "ERC1967Proxy._implementation",
      "offset": [
        1240,
        1380
      ],
      "op": "JUMPDEST",
      "path": "92"
    },
    "104": {
      "fn": "ERC1967Proxy._implementation",
      "offset": [
        1307,
        1319
      ],
      "op": "PUSH1",
      "path": "92",
      "value": "0x0"
    },
    "106": {
      "fn": "ERC1967Proxy._implementation",
      "offset": [
        1338,
        1373
      ],
      "op": "PUSH2",
      "path": "92",
      "statement": 3,
      "value": "0x9A"
    },
    "109": {
      "offset": [
        1030,
        1096
      ],
      "op": "PUSH32",
      "path": "93",
      "value": "0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC"
    },
    "142": {
      "fn": "ERC1967Upgrade._getImplementation",
      "offset": [
        1380,
        1434
      ],
      "op": "SLOAD",
      "path": "93",
      "statement": 4
    },
    "143": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "145": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "147": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "149": {
      "op": "SHL"
    },
    "150": {
      "op": "SUB"
    },
    "151": {
      "fn": "ERC1967Upgrade._getImplementation",
      "offset": [
        1380,
        1434
      ],
      "op": "AND",
      "path": "93"
    },
    "152": {
      "fn": "ERC1967Upgrade._getImplementation",
      "offset": [
        1380,
        1434
      ],
      "op": "SWAP1",
      "path": "93"
    },
    "153": {
      "fn": "ERC1967Upgrade._getImplementation",
      "offset": [
        1301,
        1441
      ],
      "op": "JUMP",
      "path": "93"
    },
    "154": {
      "fn": "ERC1967Proxy._implementation",
      "offset": [
        1338,
        1373
      ],
      "op": "JUMPDEST",
      "path": "92"
    },
    "155": {
      "fn": "ERC1967Proxy._implementation",
      "offset": [
        1331,
        1373
      ],
      "op": "SWAP1",
      "path": "92"
    },
    "156": {
      "fn": "ERC1967Proxy._implementation",
      "offset": [
        1331,
        1373
      ],
      "op": "POP",
      "path": "92"
    },
    "157": {
      "fn": "ERC1967Proxy._implementation",
      "offset": [
        1240,
        1380
      ],
      "op": "SWAP1",
      "path": "92"
    },
    "158": {
      "fn": "ERC1967Proxy._implementation",
      "jump": "o",
      "offset": [
        1240,
        1380
      ],
      "op": "JUMP",
      "path": "92"
    },
    "159": {
      "fn": "Proxy._delegate",
      "offset": [
        948,
        1843
      ],
      "op": "JUMPDEST",
      "path": "94"
    },
    "160": {
      "fn": "Proxy._delegate",
      "offset": [
        1286,
        1300
      ],
      "op": "CALLDATASIZE",
      "path": "94"
    },
    "161": {
      "fn": "Proxy._delegate",
      "offset": [
        1283,
        1284
      ],
      "op": "PUSH1",
      "path": "94",
      "value": "0x0"
    },
    "163": {
      "fn": "Proxy._delegate",
      "offset": [
        1280,
        1281
      ],
      "op": "DUP1",
      "path": "94"
    },
    "164": {
      "fn": "Proxy._delegate",
      "offset": [
        1267,
        1301
      ],
      "op": "CALLDATACOPY",
      "path": "94"
    },
    "165": {
      "fn": "Proxy._delegate",
      "offset": [
        1500,
        1501
      ],
      "op": "PUSH1",
      "path": "94",
      "value": "0x0"
    },
    "167": {
      "fn": "Proxy._delegate",
      "offset": [
        1497,
        1498
      ],
      "op": "DUP1",
      "path": "94"
    },
    "168": {
      "fn": "Proxy._delegate",
      "offset": [
        1481,
        1495
      ],
      "op": "CALLDATASIZE",
      "path": "94"
    },
    "169": {
      "fn": "Proxy._delegate",
      "offset": [
        1478,
        1479
      ],
      "op": "PUSH1",
      "path": "94",
      "value": "0x0"
    },
    "171": {
      "fn": "Proxy._delegate",
      "offset": [
        1462,
        1476
      ],
      "op": "DUP5",
      "path": "94"
    },
    "172": {
      "fn": "Proxy._delegate",
      "offset": [
        1455,
        1460
      ],
      "op": "GAS",
      "path": "94"
    },
    "173": {
      "fn": "Proxy._delegate",
      "offset": [
        1442,
        1502
      ],
      "op": "DELEGATECALL",
      "path": "94"
    },
    "174": {
      "fn": "Proxy._delegate",
      "offset": [
        1576,
        1592
      ],
      "op": "RETURNDATASIZE",
      "path": "94"
    },
    "175": {
      "fn": "Proxy._delegate",
      "offset": [
        1573,
        1574
      ],
      "op": "PUSH1",
      "path": "94",
      "value": "0x0"
    },
    "177": {
      "fn": "Proxy._delegate",
      "offset": [
        1570,
        1571
      ],
      "op": "DUP1",
      "path": "94"
    },
    "178": {
      "fn": "Proxy._delegate",
      "offset": [
        1555,
        1593
      ],
      "op": "RETURNDATACOPY",
      "path": "94"
    },
    "179": {
      "fn": "Proxy._delegate",
      "offset": [
        1614,
        1620
      ],
      "op": "DUP1",
      "path": "94"
    },
    "180": {
      "fn": "Proxy._delegate",
      "offset": [
        1681,
        1747
      ],
      "op": "DUP1",
      "path": "94"
    },
    "181": {
      "fn": "Proxy._delegate",
      "offset": [
        1681,
        1747
      ],
      "op": "ISZERO",
      "path": "94"
    },
    "182": {
      "fn": "Proxy._delegate",
      "offset": [
        1681,
        1747
      ],
      "op": "PUSH2",
      "path": "94",
      "value": "0xBE"
    },
    "185": {
      "fn": "Proxy._delegate",
      "offset": [
        1681,
        1747
      ],
      "op": "JUMPI",
      "path": "94"
    },
    "186": {
      "fn": "Proxy._delegate",
      "offset": [
        1796,
        1812
      ],
      "op": "RETURNDATASIZE",
      "path": "94"
    },
    "187": {
      "fn": "Proxy._delegate",
      "offset": [
        1793,
        1794
      ],
      "op": "PUSH1",
      "path": "94",
      "value": "0x0"
    },
    "189": {
      "fn": "Proxy._delegate",
      "offset": [
        1786,
        1813
      ],
      "op": "RETURN",
      "path": "94"
    },
    "190": {
      "fn": "Proxy._delegate",
      "offset": [
        1681,
        1747
      ],
      "op": "JUMPDEST",
      "path": "94"
    },
    "191": {
      "fn": "Proxy._delegate",
      "offset": [
        1716,
        1732
      ],
      "op": "RETURNDATASIZE",
      "path": "94"
    },
    "192": {
      "fn": "Proxy._delegate",
      "offset": [
        1713,
        1714
      ],
      "op": "PUSH1",
      "path": "94",
      "value": "0x0"
    },
    "194": {
      "fn": "Proxy._delegate",
      "offset": [
        1706,
        1733
      ],
      "op": "REVERT",
      "path": "94"
    },
    "195": {
      "op": "JUMPDEST"
    },
    "196": {
      "op": "PUSH1",
      "value": "0x60"
    },
    "198": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "200": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "202": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "204": {
      "op": "SHL"
    },
    "205": {
      "op": "SUB"
    },
    "206": {
      "op": "DUP5"
    },
    "207": {
      "op": "AND"
    },
    "208": {
      "op": "EXTCODESIZE"
    },
    "209": {
      "op": "PUSH2",
      "value": "0x130"
    },
    "212": {
      "op": "JUMPI"
    },
    "213": {
      "op": "PUSH1",
      "value": "0x40"
    },
    "215": {
      "op": "MLOAD"
    },
    "216": {
      "op": "PUSH3",
      "value": "0x461BCD"
    },
    "220": {
      "op": "PUSH1",
      "value": "0xE5"
    },
    "222": {
      "op": "SHL"
    },
    "223": {
      "op": "DUP2"
    },
    "224": {
      "op": "MSTORE"
    },
    "225": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "227": {
      "op": "PUSH1",
      "value": "0x4"
    },
    "229": {
      "op": "DUP3"
    },
    "230": {
      "op": "ADD"
    },
    "231": {
      "op": "MSTORE"
    },
    "232": {
      "op": "PUSH1",
      "value": "0x26"
    },
    "234": {
      "op": "PUSH1",
      "value": "0x24"
    },
    "236": {
      "op": "DUP3"
    },
    "237": {
      "op": "ADD"
    },
    "238": {
      "op": "MSTORE"
    },
    "239": {
      "op": "PUSH32",
      "value": "0x416464726573733A2064656C65676174652063616C6C20746F206E6F6E2D636F"
    },
    "272": {
      "op": "PUSH1",
      "value": "0x44"
    },
    "274": {
      "op": "DUP3"
    },
    "275": {
      "op": "ADD"
    },
    "276": {
      "op": "MSTORE"
    },
    "277": {
      "op": "PUSH6",
      "value": "0x1B9D1C9858DD"
    },
    "284": {
      "op": "PUSH1",
      "value": "0xD2"
    },
    "286": {
      "op": "SHL"
    },
    "287": {
      "op": "PUSH1",
      "value": "0x64"
    },
    "289": {
      "op": "DUP3"
    },
    "290": {
      "op": "ADD"
    },
    "291": {
      "op": "MSTORE"
    },
    "292": {
      "op": "PUSH1",
      "value": "0x84"
    },
    "294": {
      "op": "ADD"
    },
    "295": {
      "op": "JUMPDEST"
    },
    "296": {
      "op": "PUSH1",
      "value": "0x40"
    },
    "298": {
      "op": "MLOAD"
    },
    "299": {
      "op": "DUP1"
    },
    "300": {
      "op": "SWAP2"
    },
    "301": {
      "op": "SUB"
    },
    "302": {
      "op": "SWAP1"
    },
    "303": {
      "op": "REVERT"
    },
    "304": {
      "op": "JUMPDEST"
    },
    "305": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "307": {
      "op": "DUP1"
    },
    "308": {
      "op": "DUP6"
    },
    "309": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "311": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "313": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "315": {
      "op": "SHL"
    },
    "316": {
      "op": "SUB"
    },
    "317": {
      "op": "AND"
    },
    "318": {
      "op": "DUP6"
    },
    "319": {
      "op": "PUSH1",
      "value": "0x40"
    },
    "321": {
      "op": "MLOAD"
    },
    "322": {
      "op": "PUSH2",
      "value": "0x14B"
    },
    "325": {
      "op": "SWAP2"
    },
    "326": {
      "op": "SWAP1"
    },
    "327": {
      "op": "PUSH2",
      "value": "0x1DE"
    },
    "330": {
      "jump": "i",
      "op": "JUMP"
    },
    "331": {
      "op": "JUMPDEST"
    },
    "332": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "334": {
      "op": "PUSH1",
      "value": "0x40"
    },
    "336": {
      "op": "MLOAD"
    },
    "337": {
      "op": "DUP1"
    },
    "338": {
      "op": "DUP4"
    },
    "339": {
      "op": "SUB"
    },
    "340": {
      "op": "DUP2"
    },
    "341": {
      "op": "DUP6"
    },
    "342": {
      "op": "GAS"
    },
    "343": {
      "op": "DELEGATECALL"
    },
    "344": {
      "op": "SWAP2"
    },
    "345": {
      "op": "POP"
    },
    "346": {
      "op": "POP"
    },
    "347": {
      "op": "RETURNDATASIZE"
    },
    "348": {
      "op": "DUP1"
    },
    "349": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "351": {
      "op": "DUP2"
    },
    "352": {
      "op": "EQ"
    },
    "353": {
      "op": "PUSH2",
      "value": "0x186"
    },
    "356": {
      "op": "JUMPI"
    },
    "357": {
      "op": "PUSH1",
      "value": "0x40"
    },
    "359": {
      "op": "MLOAD"
    },
    "360": {
      "op": "SWAP2"
    },
    "361": {
      "op": "POP"
    },
    "362": {
      "op": "PUSH1",
      "value": "0x1F"
    },
    "364": {
      "op": "NOT"
    },
    "365": {
      "op": "PUSH1",
      "value": "0x3F"
    },
    "367": {
      "op": "RETURNDATASIZE"
    },
    "368": {
      "op": "ADD"
    },
    "369": {
      "op": "AND"
    },
    "370": {
      "op": "DUP3"
    },
    "371": {
      "op": "ADD"
    },
    "372": {
      "op": "PUSH1",
      "value": "0x40"
    },
    "374": {
      "op": "MSTORE"
    },
    "375": {
      "op": "RETURNDATASIZE"
    },
    "376": {
      "op": "DUP3"
    },
    "377": {
      "op": "MSTORE"
    },
    "378": {
      "op": "RETURNDATASIZE"
    },
    "379": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "381": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "383": {
      "op": "DUP5"
    },
    "384": {
      "op": "ADD"
    },
    "385": {
      "op": "RETURNDATACOPY"
    },
    "386": {
      "op": "PUSH2",
      "value": "0x18B"
    },
    "389": {
      "op": "JUMP"
    },
    "390": {
      "op": "JUMPDEST"
    },
    "391": {
      "op": "PUSH1",
      "value": "0x60"
    },
    "393": {
      "op": "SWAP2"
    },
    "394": {
      "op": "POP"
    },
    "395": {
      "op": "JUMPDEST"
    },
    "396": {
      "op": "POP"
    },
    "397": {
      "op": "SWAP2"
    },
    "398": {
      "op": "POP"
    },
    "399": {
      "op": "SWAP2"
    },
    "400": {
      "op": "POP"
    },
    "401": {
      "op": "PUSH2",
      "value": "0x19B"
    },
    "404": {
      "op": "DUP3"
    },
    "405": {
      "op": "DUP3"
    },
    "406": {
      "op": "DUP7"
    },
    "407": {
      "op": "PUSH2",
      "value": "0x1A5"
    },
    "410": {
      "jump": "i",
      "op": "JUMP"
    },
    "411": {
      "op": "JUMPDEST"
    },
    "412": {
      "op": "SWAP7"
    },
    "413": {
      "op": "SWAP6"
    },
    "414": {
      "op": "POP"
    },
    "415": {
      "op": "POP"
    },
    "416": {
      "op": "POP"
    },
    "417": {
      "op": "POP"
    },
    "418": {
      "op": "POP"
    },
    "419": {
      "op": "POP"
    },
    "420": {
      "jump": "o",
      "op": "JUMP"
    },
    "421": {
      "op": "JUMPDEST"
    },
    "422": {
      "op": "PUSH1",
      "value": "0x60"
    },
    "424": {
      "op": "DUP4"
    },
    "425": {
      "op": "ISZERO"
    },
    "426": {
      "op": "PUSH2",
      "value": "0x1B4"
    },
    "429": {
      "op": "JUMPI"
    },
    "430": {
      "op": "POP"
    },
    "431": {
      "op": "DUP2"
    },
    "432": {
      "op": "PUSH2",
      "value": "0x4E"
    },
    "435": {
      "op": "JUMP"
    },
    "436": {
      "op": "JUMPDEST"
    },
    "437": {
      "op": "DUP3"
    },
    "438": {
      "op": "MLOAD"
    },
    "439": {
      "op": "ISZERO"
    },
    "440": {
      "op": "PUSH2",
      "value": "0x1C4"
    },
    "443": {
      "op": "JUMPI"
    },
    "444": {
      "op": "DUP3"
    },
    "445": {
      "op": "MLOAD"
    },
    "446": {
      "op": "DUP1"
    },
    "447": {
      "op": "DUP5"
    },
    "448": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "450": {
      "op": "ADD"
    },
    "451": {
      "op": "REVERT"
    },
    "452": {
      "op": "JUMPDEST"
    },
    "453": {
      "op": "DUP2"
    },
    "454": {
      "op": "PUSH1",
      "value": "0x40"
    },
    "456": {
      "op": "MLOAD"
    },
    "457": {
      "op": "PUSH3",
      "value": "0x461BCD"
    },
    "461": {
      "op": "PUSH1",
      "value": "0xE5"
    },
    "463": {
      "op": "SHL"
    },
    "464": {
      "op": "DUP2"
    },
    "465": {
      "op": "MSTORE"
    },
    "466": {
      "op": "PUSH1",
      "value": "0x4"
    },
    "468": {
      "op": "ADD"
    },
    "469": {
      "op": "PUSH2",
      "value": "0x127"
    },
    "472": {
      "op": "SWAP2"
    },
    "473": {
      "op": "SWAP1"
    },
    "474": {
      "op": "PUSH2",
      "value": "0x1FA"
    },
    "477": {
      "jump": "i",
      "op": "JUMP"
    },
    "478": {
      "op": "JUMPDEST"
    },
    "479": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "481": {
      "op": "DUP3"
    },
    "482": {
      "op": "MLOAD"
    },
    "483": {
      "op": "PUSH2",
      "value": "0x1F0"
    },
    "486": {
      "op": "DUP2"
    },
    "487": {
      "op": "DUP5"
    },
    "488": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "490": {
      "op": "DUP8"
    },
    "491": {
      "op": "ADD"
    },
    "492": {
      "op": "PUSH2",
      "value": "0x22D"
    },
    "495": {
      "jump": "i",
      "op": "JUMP"
    },
    "496": {
      "op": "JUMPDEST"
    },
    "497": {
      "op": "SWAP2"
    },
    "498": {
      "op": "SWAP1"
    },
    "499": {
      "op": "SWAP2"
    },
    "500": {
      "op": "ADD"
    },
    "501": {
      "op": "SWAP3"
    },
    "502": {
      "op": "SWAP2"
    },
    "503": {
      "op": "POP"
    },
    "504": {
      "op": "POP"
    },
    "505": {
      "jump": "o",
      "op": "JUMP"
    },
    "506": {
      "op": "JUMPDEST"
    },
    "507": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "509": {
      "op": "DUP2"
    },
    "510": {
      "op": "MSTORE"
    },
    "511": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "513": {
      "op": "DUP3"
    },
    "514": {
      "op": "MLOAD"
    },
    "515": {
      "op": "DUP1"
    },
    "516": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "518": {
      "op": "DUP5"
    },
    "519": {
      "op": "ADD"
    },
    "520": {
      "op": "MSTORE"
    },
    "521": {
      "op": "PUSH2",
      "value": "0x219"
    },
    "524": {
      "op": "DUP2"
    },
    "525": {
      "op": "PUSH1",
      "value": "0x40"
    },
    "527": {
      "op": "DUP6"
    },
    "528": {
      "op": "ADD"
    },
    "529": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "531": {
      "op": "DUP8"
    },
    "532": {
      "op": "ADD"
    },
    "533": {
      "op": "PUSH2",
      "value": "0x22D"
    },
    "536": {
      "jump": "i",
      "op": "JUMP"
    },
    "537": {
      "op": "JUMPDEST"
    },
    "538": {
      "op": "PUSH1",
      "value": "0x1F"
    },
    "540": {
      "op": "ADD"
    },
    "541": {
      "op": "PUSH1",
      "value": "0x1F"
    },
    "543": {
      "op": "NOT"
    },
    "544": {
      "op": "AND"
    },
    "545": {
      "op": "SWAP2"
    },
    "546": {
      "op": "SWAP1"
    },
    "547": {
      "op": "SWAP2"
    },
    "548": {
      "op": "ADD"
    },
    "549": {
      "op": "PUSH1",
      "value": "0x40"
    },
    "551": {
      "op": "ADD"
    },
    "552": {
      "op": "SWAP3"
    },
    "553": {
      "op": "SWAP2"
    },
    "554": {
      "op": "POP"
    },
    "555": {
      "op": "POP"
    },
    "556": {
      "jump": "o",
      "op": "JUMP"
    },
    "557": {
      "op": "JUMPDEST"
    },
    "558": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "560": {
      "op": "JUMPDEST"
    },
    "561": {
      "op": "DUP4"
    },
    "562": {
      "op": "DUP2"
    },
    "563": {
      "op": "LT"
    },
    "564": {
      "op": "ISZERO"
    },
    "565": {
      "op": "PUSH2",
      "value": "0x248"
    },
    "568": {
      "op": "JUMPI"
    },
    "569": {
      "op": "DUP2"
    },
    "570": {
      "op": "DUP2"
    },
    "571": {
      "op": "ADD"
    },
    "572": {
      "op": "MLOAD"
    },
    "573": {
      "op": "DUP4"
    },
    "574": {
      "op": "DUP3"
    },
    "575": {
      "op": "ADD"
    },
    "576": {
      "op": "MSTORE"
    },
    "577": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "579": {
      "op": "ADD"
    },
    "580": {
      "op": "PUSH2",
      "value": "0x230"
    },
    "583": {
      "op": "JUMP"
    },
    "584": {
      "op": "JUMPDEST"
    },
    "585": {
      "op": "DUP4"
    },
    "586": {
      "op": "DUP2"
    },
    "587": {
      "op": "GT"
    },
    "588": {
      "op": "ISZERO"
    },
    "589": {
      "op": "PUSH2",
      "value": "0x257"
    },
    "592": {
      "op": "JUMPI"
    },
    "593": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "595": {
      "op": "DUP5"
    },
    "596": {
      "op": "DUP5"
    },
    "597": {
      "op": "ADD"
    },
    "598": {
      "op": "MSTORE"
    },
    "599": {
      "op": "JUMPDEST"
    },
    "600": {
      "op": "POP"
    },
    "601": {
      "op": "POP"
    },
    "602": {
      "op": "POP"
    },
    "603": {
      "op": "POP"
    },
    "604": {
      "jump": "o",
      "op": "JUMP"
    }
  },
  "sha1": "889ca0a26846aa7a1bde22a85cfc18c6ef2057b6",
  "source": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (proxy/ERC1967/ERC1967Proxy.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../Proxy.sol\";\nimport \"./ERC1967Upgrade.sol\";\n\n/**\n * @dev This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an\n * implementation address that can be changed. This address is stored in storage in the location specified by\n * https://eips.ethereum.org/EIPS/eip-1967[EIP1967], so that it doesn't conflict with the storage layout of the\n * implementation behind the proxy.\n */\ncontract ERC1967Proxy is Proxy, ERC1967Upgrade {\n    /**\n     * @dev Initializes the upgradeable proxy with an initial implementation specified by `_logic`.\n     *\n     * If `_data` is nonempty, it's used as data in a delegate call to `_logic`. This will typically be an encoded\n     * function call, and allows initializating the storage of the proxy like a Solidity constructor.\n     */\n    constructor(address _logic, bytes memory _data) payable {\n        assert(_IMPLEMENTATION_SLOT == bytes32(uint256(keccak256(\"eip1967.proxy.implementation\")) - 1));\n        _upgradeToAndCall(_logic, _data, false);\n    }\n\n    /**\n     * @dev Returns the current implementation address.\n     */\n    function _implementation() internal view virtual override returns (address impl) {\n        return ERC1967Upgrade._getImplementation();\n    }\n}\n",
  "sourceMap": "552:830:92:-:0;;;945:217;;;;;;;;;;;;;;;;;;:::i;:::-;1050:54;1103:1;1058:41;1050:54;:::i;:::-;-1:-1:-1;;;;;;;;;;;1018:87:92;1011:95;;;;:::i;:::-;1116:39;1134:6;1142:5;1149;1116:17;:39::i;:::-;945:217;;552:830;;2183:295:93;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;1897:152::-;1963:37;1982:17;1963:18;:37::i;:::-;2015:27;;-1:-1:-1;;;;;2015:27:93;;;;;;;;1897:152;:::o;6570:198:104:-;6653:12;6684:77;6705:6;6713:4;6684:77;;;;;;;;;;;;;;;;;:20;:77::i;:::-;6677:84;6570:198;-1:-1:-1;;;6570:198:104:o;1532:259:93:-;1613:37;1632:17;1613:18;;;;;:37;;:::i;:::-;1605:95;;;;-1:-1:-1;;;1605:95:93;;1938:2:114;1605:95:93;;;1920:21:114;1977:2;1957:18;;;1950:30;2016:34;1996:18;;;1989:62;-1:-1:-1;;;2067:18:114;;;2060:43;2120:19;;1605:95:93;;;;;;;;;1767:17;1710:48;-1:-1:-1;;;;;;;;;;;1737:20:93;;1710:26;;;;;:48;;:::i;:::-;:74;;-1:-1:-1;;;;;;1710:74:93;-1:-1:-1;;;;;1710:74:93;;;;;;;;;;-1:-1:-1;1532:259:93:o;6954:387:104:-;7095:12;-1:-1:-1;;;;;1465:19:104;;;7119:69;;;;-1:-1:-1;;;7119:69:104;;2352:2:114;7119:69:104;;;2334:21:114;2391:2;2371:18;;;2364:30;2430:34;2410:18;;;2403:62;-1:-1:-1;;;2481:18:114;;;2474:36;2527:19;;7119:69:104;2324:228:114;7119:69:104;7200:12;7214:23;7241:6;-1:-1:-1;;;;;7241:19:104;7261:4;7241:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7199:67:104;;-1:-1:-1;7199:67:104;-1:-1:-1;7283:51:104;7199:67;;7321:12;7283:16;:51::i;:::-;7276:58;6954:387;-1:-1:-1;;;;;;6954:387:104:o;1175:320::-;-1:-1:-1;;;;;1465:19:104;;:23;;;1175:320::o;1599:147:106:-;1726:4;1599:147::o;7561:692:104:-;7707:12;7735:7;7731:516;;;-1:-1:-1;7765:10:104;7758:17;;7731:516;7876:17;;:21;7872:365;;8070:10;8064:17;8130:15;8117:10;8113:2;8109:19;8102:44;7872:365;8209:12;8202:20;;-1:-1:-1;;;8202:20:104;;;;;;;;:::i;14:1050:114:-;102:6;110;163:2;151:9;142:7;138:23;134:32;131:2;;;179:1;176;169:12;131:2;205:16;;-1:-1:-1;;;;;250:31:114;;240:42;;230:2;;296:1;293;286:12;230:2;368;353:18;;347:25;319:5;;-1:-1:-1;;;;;;421:14:114;;;418:2;;;448:1;445;438:12;418:2;486:6;475:9;471:22;461:32;;531:7;524:4;520:2;516:13;512:27;502:2;;553:1;550;543:12;502:2;582;576:9;604:2;600;597:10;594:2;;;610:18;;:::i;:::-;685:2;679:9;653:2;739:13;;-1:-1:-1;;735:22:114;;;759:2;731:31;727:40;715:53;;;783:18;;;803:22;;;780:46;777:2;;;829:18;;:::i;:::-;869:10;865:2;858:22;904:2;896:6;889:18;944:7;939:2;934;930;926:11;922:20;919:33;916:2;;;965:1;962;955:12;916:2;978:55;1030:2;1025;1017:6;1013:15;1008:2;1004;1000:11;978:55;:::i;:::-;1052:6;1042:16;;;;;;;121:943;;;;;:::o;1069:274::-;1198:3;1236:6;1230:13;1252:53;1298:6;1293:3;1286:4;1278:6;1274:17;1252:53;:::i;:::-;1321:16;;;;;1206:137;-1:-1:-1;;1206:137:114:o;1348:383::-;1497:2;1486:9;1479:21;1460:4;1529:6;1523:13;1572:6;1567:2;1556:9;1552:18;1545:34;1588:66;1647:6;1642:2;1631:9;1627:18;1622:2;1614:6;1610:15;1588:66;:::i;:::-;1715:2;1694:15;-1:-1:-1;;1690:29:114;1675:45;;;;1722:2;1671:54;;1469:262;-1:-1:-1;;1469:262:114:o;2557:222::-;2597:4;2625:1;2622;2619:8;2616:2;;;2669:10;2664:3;2660:20;2657:1;2650:31;2704:4;2701:1;2694:15;2732:4;2729:1;2722:15;2616:2;-1:-1:-1;2764:9:114;;2606:173::o;2784:258::-;2856:1;2866:113;2880:6;2877:1;2874:13;2866:113;;;2956:11;;;2950:18;2937:11;;;2930:39;2902:2;2895:10;2866:113;;;2997:6;2994:1;2991:13;2988:2;;;-1:-1:-1;;3032:1:114;3014:16;;3007:27;2837:205::o;3047:127::-;3108:10;3103:3;3099:20;3096:1;3089:31;3139:4;3136:1;3129:15;3163:4;3160:1;3153:15;3179:127;3240:10;3235:3;3231:20;3228:1;3221:31;3271:4;3268:1;3261:15;3295:4;3292:1;3285:15;3211:95;552:830:92;;;;;;",
  "sourcePath": "node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol",
  "type": "contract"
}