{
  "fileName": "DummyImplementation.sol",
  "contractName": "DummyImplementation",
  "source": "pragma solidity ^0.6.0;\n// SPDX-License-Identifier: MIT\n\nabstract contract Impl {\n  function version() public pure virtual returns (string memory);\n}\n\ncontract DummyImplementation {\n  uint256 public value;\n  string public text;\n  uint256[] public values;\n\n  function initializeNonPayable() public {\n    value = 10;\n  }\n\n  function initializePayable() payable public {\n    value = 100;\n  }\n\n  function initializeNonPayable(uint256 _value) public {\n    value = _value;\n  }\n\n  function initializePayable(uint256 _value) payable public {\n    value = _value;\n  }\n\n  function initialize(uint256 _value, string memory _text, uint256[] memory _values) public {\n    value = _value;\n    text = _text;\n    values = _values;\n  }\n\n  function get() public pure returns (bool) {\n    return true;\n  }\n\n  function version() public pure virtual returns (string memory) {\n    return \"V1\";\n  }\n\n  function reverts() public pure {\n    require(false);\n  }\n}\n\ncontract DummyImplementationV2 is DummyImplementation {\n  function migrate(uint256 newVal) payable public {\n    value = newVal;\n  }\n\n  function version() public override(DummyImplementation) pure returns (string memory) {\n    return \"V2\";\n  }\n}\n",
  "sourcePath": "contracts/mocks/DummyImplementation.sol",
  "sourceMap": "151:784:9:-:0;;;;;;;;;;;;;;;;;;;;;;",
  "deployedSourceMap": "151:784:9:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;474:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;208:18;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;258:60;;;;;;;;;;;;;:::i;:::-;;877:56;;;;;;;;;;;;;:::i;:::-;;184:20;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;788:85;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;392:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;230:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;720:64;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;322:66;;;:::i;:::-;;561:155;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;474:83;546:6;538:5;;:14;;;;;;;474:83;;:::o;208:18::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;258:60::-;311:2;303:5;;:10;;;;;;;258:60;:::o;877:56::-;922:5;914:14;;;;;;;;877:56;:::o;184:20::-;;;;;;:::o;788:85::-;836:13;857:11;;;;;;;;;;;;;;;;;;;;;;;788:85;;:::o;392:78::-;459:6;451:5;;:14;;;;;;;392:78;;:::o;230:23::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;720:64::-;756:4;775;768:11;;;;720:64;;:::o;322:66::-;380:3;372:5;;:11;;;;;;;322:66;:::o;561:155::-;665:6;657:5;;:14;;;;;;;684:5;677:4;;:12;;;;;;;;;;;;;:::i;:::-;;704:7;695:6;;:16;;;;;;;;;;;;;:::i;:::-;;561:155;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o",
  "abi": [
    {
      "inputs": [],
      "name": "get",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_value",
          "type": "uint256"
        },
        {
          "internalType": "string",
          "name": "_text",
          "type": "string"
        },
        {
          "internalType": "uint256[]",
          "name": "_values",
          "type": "uint256[]"
        }
      ],
      "name": "initialize",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "initializeNonPayable",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_value",
          "type": "uint256"
        }
      ],
      "name": "initializeNonPayable",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_value",
          "type": "uint256"
        }
      ],
      "name": "initializePayable",
      "outputs": [],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "initializePayable",
      "outputs": [],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "reverts",
      "outputs": [],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "text",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "value",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "values",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "version",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    }
  ],
  "ast": {
    "absolutePath": "contracts/mocks/DummyImplementation.sol",
    "exportedSymbols": {
      "DummyImplementation": [
        1629
      ],
      "DummyImplementationV2": [
        1652
      ],
      "Impl": [
        1538
      ]
    },
    "id": 1653,
    "license": "MIT",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 1532,
        "literals": [
          "solidity",
          "^",
          "0.6",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:23:9"
      },
      {
        "abstract": true,
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": false,
        "id": 1538,
        "linearizedBaseContracts": [
          1538
        ],
        "name": "Impl",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "body": null,
            "documentation": null,
            "functionSelector": "54fd4d50",
            "id": 1537,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "version",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 1533,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "100:2:9"
            },
            "returnParameters": {
              "id": 1536,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1535,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1537,
                  "src": "132:13:9",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 1534,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "132:6:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "131:15:9"
            },
            "scope": 1538,
            "src": "84:63:9",
            "stateMutability": "pure",
            "virtual": true,
            "visibility": "public"
          }
        ],
        "scope": 1653,
        "src": "57:92:9"
      },
      {
        "abstract": false,
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 1629,
        "linearizedBaseContracts": [
          1629
        ],
        "name": "DummyImplementation",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "functionSelector": "3fa4f245",
            "id": 1540,
            "mutability": "mutable",
            "name": "value",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 1629,
            "src": "184:20:9",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 1539,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "184:7:9",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "functionSelector": "1f1bd692",
            "id": 1542,
            "mutability": "mutable",
            "name": "text",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 1629,
            "src": "208:18:9",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_storage",
              "typeString": "string"
            },
            "typeName": {
              "id": 1541,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "208:6:9",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "functionSelector": "5e383d21",
            "id": 1545,
            "mutability": "mutable",
            "name": "values",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 1629,
            "src": "230:23:9",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
              "typeString": "uint256[]"
            },
            "typeName": {
              "baseType": {
                "id": 1543,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "230:7:9",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "id": 1544,
              "length": null,
              "nodeType": "ArrayTypeName",
              "src": "230:9:9",
              "typeDescriptions": {
                "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                "typeString": "uint256[]"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1552,
              "nodeType": "Block",
              "src": "297:21:9",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1550,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1548,
                      "name": "value",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1540,
                      "src": "303:5:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "3130",
                      "id": 1549,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "311:2:9",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_10_by_1",
                        "typeString": "int_const 10"
                      },
                      "value": "10"
                    },
                    "src": "303:10:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1551,
                  "nodeType": "ExpressionStatement",
                  "src": "303:10:9"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "227367d5",
            "id": 1553,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "initializeNonPayable",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 1546,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "287:2:9"
            },
            "returnParameters": {
              "id": 1547,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "297:0:9"
            },
            "scope": 1629,
            "src": "258:60:9",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1560,
              "nodeType": "Block",
              "src": "366:22:9",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1558,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1556,
                      "name": "value",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1540,
                      "src": "372:5:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "313030",
                      "id": 1557,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "380:3:9",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_100_by_1",
                        "typeString": "int_const 100"
                      },
                      "value": "100"
                    },
                    "src": "372:11:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1559,
                  "nodeType": "ExpressionStatement",
                  "src": "372:11:9"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "9fba1f9a",
            "id": 1561,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "initializePayable",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 1554,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "348:2:9"
            },
            "returnParameters": {
              "id": 1555,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "366:0:9"
            },
            "scope": 1629,
            "src": "322:66:9",
            "stateMutability": "payable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1570,
              "nodeType": "Block",
              "src": "445:25:9",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1568,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1566,
                      "name": "value",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1540,
                      "src": "451:5:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1567,
                      "name": "_value",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1563,
                      "src": "459:6:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "451:14:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1569,
                  "nodeType": "ExpressionStatement",
                  "src": "451:14:9"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "5ba8d2ad",
            "id": 1571,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "initializeNonPayable",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 1564,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1563,
                  "mutability": "mutable",
                  "name": "_value",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1571,
                  "src": "422:14:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1562,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "422:7:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "421:16:9"
            },
            "returnParameters": {
              "id": 1565,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "445:0:9"
            },
            "scope": 1629,
            "src": "392:78:9",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1580,
              "nodeType": "Block",
              "src": "532:25:9",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1578,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1576,
                      "name": "value",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1540,
                      "src": "538:5:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1577,
                      "name": "_value",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1573,
                      "src": "546:6:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "538:14:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1579,
                  "nodeType": "ExpressionStatement",
                  "src": "538:14:9"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "16eaa247",
            "id": 1581,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "initializePayable",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 1574,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1573,
                  "mutability": "mutable",
                  "name": "_value",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1581,
                  "src": "501:14:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1572,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "501:7:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "500:16:9"
            },
            "returnParameters": {
              "id": 1575,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "532:0:9"
            },
            "scope": 1629,
            "src": "474:83:9",
            "stateMutability": "payable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1603,
              "nodeType": "Block",
              "src": "651:65:9",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1593,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1591,
                      "name": "value",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1540,
                      "src": "657:5:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1592,
                      "name": "_value",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1583,
                      "src": "665:6:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "657:14:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1594,
                  "nodeType": "ExpressionStatement",
                  "src": "657:14:9"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1597,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1595,
                      "name": "text",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1542,
                      "src": "677:4:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage",
                        "typeString": "string storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1596,
                      "name": "_text",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1585,
                      "src": "684:5:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string memory"
                      }
                    },
                    "src": "677:12:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage",
                      "typeString": "string storage ref"
                    }
                  },
                  "id": 1598,
                  "nodeType": "ExpressionStatement",
                  "src": "677:12:9"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1601,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1599,
                      "name": "values",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1545,
                      "src": "695:6:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
                        "typeString": "uint256[] storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1600,
                      "name": "_values",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1588,
                      "src": "704:7:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                        "typeString": "uint256[] memory"
                      }
                    },
                    "src": "695:16:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
                      "typeString": "uint256[] storage ref"
                    }
                  },
                  "id": 1602,
                  "nodeType": "ExpressionStatement",
                  "src": "695:16:9"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "d31f8b6b",
            "id": 1604,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "initialize",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 1589,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1583,
                  "mutability": "mutable",
                  "name": "_value",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1604,
                  "src": "581:14:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1582,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "581:7:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1585,
                  "mutability": "mutable",
                  "name": "_text",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1604,
                  "src": "597:19:9",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 1584,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "597:6:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1588,
                  "mutability": "mutable",
                  "name": "_values",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1604,
                  "src": "618:24:9",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 1586,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "618:7:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 1587,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "618:9:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "580:63:9"
            },
            "returnParameters": {
              "id": 1590,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "651:0:9"
            },
            "scope": 1629,
            "src": "561:155:9",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1611,
              "nodeType": "Block",
              "src": "762:22:9",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "74727565",
                    "id": 1609,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "775:4:9",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "true"
                  },
                  "functionReturnParameters": 1608,
                  "id": 1610,
                  "nodeType": "Return",
                  "src": "768:11:9"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "6d4ce63c",
            "id": 1612,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "get",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 1605,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "732:2:9"
            },
            "returnParameters": {
              "id": 1608,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1607,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1612,
                  "src": "756:4:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 1606,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "756:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "755:6:9"
            },
            "scope": 1629,
            "src": "720:64:9",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1619,
              "nodeType": "Block",
              "src": "851:22:9",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "5631",
                    "id": 1617,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "string",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "864:4:9",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_stringliteral_4c23426613a5dc69e08fbd2787e6210aa679d4522e95a89d4dd88c4fd13a2283",
                      "typeString": "literal_string \"V1\""
                    },
                    "value": "V1"
                  },
                  "functionReturnParameters": 1616,
                  "id": 1618,
                  "nodeType": "Return",
                  "src": "857:11:9"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "54fd4d50",
            "id": 1620,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "version",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 1613,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "804:2:9"
            },
            "returnParameters": {
              "id": 1616,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1615,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1620,
                  "src": "836:13:9",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 1614,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "836:6:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "835:15:9"
            },
            "scope": 1629,
            "src": "788:85:9",
            "stateMutability": "pure",
            "virtual": true,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1627,
              "nodeType": "Block",
              "src": "908:25:9",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "66616c7365",
                        "id": 1624,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "922:5:9",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "false"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1623,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "914:7:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1625,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "914:14:9",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1626,
                  "nodeType": "ExpressionStatement",
                  "src": "914:14:9"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "3bccbbc9",
            "id": 1628,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "reverts",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 1621,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "893:2:9"
            },
            "returnParameters": {
              "id": 1622,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "908:0:9"
            },
            "scope": 1629,
            "src": "877:56:9",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "public"
          }
        ],
        "scope": 1653,
        "src": "151:784:9"
      },
      {
        "abstract": false,
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 1630,
              "name": "DummyImplementation",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 1629,
              "src": "971:19:9",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_DummyImplementation_$1629",
                "typeString": "contract DummyImplementation"
              }
            },
            "id": 1631,
            "nodeType": "InheritanceSpecifier",
            "src": "971:19:9"
          }
        ],
        "contractDependencies": [
          1629
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 1652,
        "linearizedBaseContracts": [
          1652,
          1629
        ],
        "name": "DummyImplementationV2",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "body": {
              "id": 1640,
              "nodeType": "Block",
              "src": "1043:25:9",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1638,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1636,
                      "name": "value",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1540,
                      "src": "1049:5:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1637,
                      "name": "newVal",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1633,
                      "src": "1057:6:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1049:14:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1639,
                  "nodeType": "ExpressionStatement",
                  "src": "1049:14:9"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "454b0608",
            "id": 1641,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "migrate",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 1634,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1633,
                  "mutability": "mutable",
                  "name": "newVal",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1641,
                  "src": "1012:14:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1632,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1012:7:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1011:16:9"
            },
            "returnParameters": {
              "id": 1635,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1043:0:9"
            },
            "scope": 1652,
            "src": "995:73:9",
            "stateMutability": "payable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              1620
            ],
            "body": {
              "id": 1650,
              "nodeType": "Block",
              "src": "1157:22:9",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "5632",
                    "id": 1648,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "string",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "1170:4:9",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_stringliteral_23d235efaf569b2b407d10f447247743508d1762a8e3a3aed85ccc0570dde35f",
                      "typeString": "literal_string \"V2\""
                    },
                    "value": "V2"
                  },
                  "functionReturnParameters": 1647,
                  "id": 1649,
                  "nodeType": "Return",
                  "src": "1163:11:9"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "54fd4d50",
            "id": 1651,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "version",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 1644,
              "nodeType": "OverrideSpecifier",
              "overrides": [
                {
                  "contractScope": null,
                  "id": 1643,
                  "name": "DummyImplementation",
                  "nodeType": "UserDefinedTypeName",
                  "referencedDeclaration": 1629,
                  "src": "1107:19:9",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_DummyImplementation_$1629",
                    "typeString": "contract DummyImplementation"
                  }
                }
              ],
              "src": "1098:29:9"
            },
            "parameters": {
              "id": 1642,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1088:2:9"
            },
            "returnParameters": {
              "id": 1647,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1646,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1651,
                  "src": "1142:13:9",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 1645,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1142:6:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1141:15:9"
            },
            "scope": 1652,
            "src": "1072:107:9",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "public"
          }
        ],
        "scope": 1653,
        "src": "937:244:9"
      }
    ],
    "src": "0:1182:9"
  },
  "bytecode": "0x60806040523480156100115760006000fd5b50610017565b610787806100266000396000f3fe6080604052600436106100a05760003560e01c806354fd4d501161006457806354fd4d50146101c35780635ba8d2ad146102555780635e383d21146102925780636d4ce63c146102e35780639fba1f9a14610313578063d31f8b6b1461031d576100a0565b806316eaa247146100a65780631f1bd692146100d5578063227367d5146101675780633bccbbc91461017f5780633fa4f24514610197576100a0565b60006000fd5b6100d3600480360360208110156100bd5760006000fd5b8101908080359060200190929190505050610493565b005b3480156100e25760006000fd5b506100eb6104a3565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561012c5780820151818401525b602081019050610110565b50505050905090810190601f1680156101595780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101745760006000fd5b5061017d610544565b005b34801561018c5760006000fd5b50610195610554565b005b3480156101a45760006000fd5b506101ad610565565b6040518082815260200191505060405180910390f35b3480156101d05760006000fd5b506101d961056e565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561021a5780820151818401525b6020810190506101fe565b50505050905090810190601f1680156102475780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102625760006000fd5b506102906004803603602081101561027a5760006000fd5b81019080803590602001909291905050506105b3565b005b34801561029f5760006000fd5b506102cd600480360360208110156102b75760006000fd5b81019080803590602001909291905050506105c3565b6040518082815260200191505060405180910390f35b3480156102f05760006000fd5b506102f96105eb565b604051808215151515815260200191505060405180910390f35b61031b6105f9565b005b34801561032a5760006000fd5b50610491600480360360608110156103425760006000fd5b81019080803590602001909291908035906020019064010000000081111561036a5760006000fd5b82018360208201111561037d5760006000fd5b803590602001918460018302840111640100000000831117156103a05760006000fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050909091929090919290803590602001906401000000008111156104085760006000fd5b82018360208201111561041b5760006000fd5b8035906020019184602083028401116401000000008311171561043e5760006000fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050909091929090919290505050610609565b005b8060006000508190909055505b50565b60016000508054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561053c5780601f106105115761010080835404028352916020019161053c565b820191906000526020600020905b81548152906001019060200180831161051f57829003601f168201915b505050505081565b600a60006000508190909055505b565b600015156105625760006000fd5b5b565b60006000505481565b60606040518060400160405280600281526020017f563100000000000000000000000000000000000000000000000000000000000081526020015090506105b0565b90565b8060006000508190909055505b50565b6002600050818154811015156105d557fe5b906000526020600020900160005b915090505481565b6000600190506105f6565b90565b606460006000508190909055505b565b826000600050819090905550816001600050908051906020019061062e92919061064f565b5080600260005090805190602001906106489291906106d4565b505b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061069057805160ff19168380011785556106c3565b828001600101855582156106c3579182015b828111156106c257825182600050909055916020019190600101906106a2565b5b5090506106d09190610726565b5090565b828054828255906000526020600020908101928215610715579160200282015b8281111561071457825182600050909055916020019190600101906106f4565b5b5090506107229190610726565b5090565b61074e9190610730565b8082111561074a5760008181506000905550600101610730565b5090565b9056fea26469706673582212200d034713b5fd976d0bbd341c0f5d7b8a98ac0325308699a2f39d1b146638516164736f6c634300060a0033",
  "deployedBytecode": "0x6080604052600436106100a05760003560e01c806354fd4d501161006457806354fd4d50146101c35780635ba8d2ad146102555780635e383d21146102925780636d4ce63c146102e35780639fba1f9a14610313578063d31f8b6b1461031d576100a0565b806316eaa247146100a65780631f1bd692146100d5578063227367d5146101675780633bccbbc91461017f5780633fa4f24514610197576100a0565b60006000fd5b6100d3600480360360208110156100bd5760006000fd5b8101908080359060200190929190505050610493565b005b3480156100e25760006000fd5b506100eb6104a3565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561012c5780820151818401525b602081019050610110565b50505050905090810190601f1680156101595780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101745760006000fd5b5061017d610544565b005b34801561018c5760006000fd5b50610195610554565b005b3480156101a45760006000fd5b506101ad610565565b6040518082815260200191505060405180910390f35b3480156101d05760006000fd5b506101d961056e565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561021a5780820151818401525b6020810190506101fe565b50505050905090810190601f1680156102475780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102625760006000fd5b506102906004803603602081101561027a5760006000fd5b81019080803590602001909291905050506105b3565b005b34801561029f5760006000fd5b506102cd600480360360208110156102b75760006000fd5b81019080803590602001909291905050506105c3565b6040518082815260200191505060405180910390f35b3480156102f05760006000fd5b506102f96105eb565b604051808215151515815260200191505060405180910390f35b61031b6105f9565b005b34801561032a5760006000fd5b50610491600480360360608110156103425760006000fd5b81019080803590602001909291908035906020019064010000000081111561036a5760006000fd5b82018360208201111561037d5760006000fd5b803590602001918460018302840111640100000000831117156103a05760006000fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050909091929090919290803590602001906401000000008111156104085760006000fd5b82018360208201111561041b5760006000fd5b8035906020019184602083028401116401000000008311171561043e5760006000fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050909091929090919290505050610609565b005b8060006000508190909055505b50565b60016000508054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561053c5780601f106105115761010080835404028352916020019161053c565b820191906000526020600020905b81548152906001019060200180831161051f57829003601f168201915b505050505081565b600a60006000508190909055505b565b600015156105625760006000fd5b5b565b60006000505481565b60606040518060400160405280600281526020017f563100000000000000000000000000000000000000000000000000000000000081526020015090506105b0565b90565b8060006000508190909055505b50565b6002600050818154811015156105d557fe5b906000526020600020900160005b915090505481565b6000600190506105f6565b90565b606460006000508190909055505b565b826000600050819090905550816001600050908051906020019061062e92919061064f565b5080600260005090805190602001906106489291906106d4565b505b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061069057805160ff19168380011785556106c3565b828001600101855582156106c3579182015b828111156106c257825182600050909055916020019190600101906106a2565b5b5090506106d09190610726565b5090565b828054828255906000526020600020908101928215610715579160200282015b8281111561071457825182600050909055916020019190600101906106f4565b5b5090506107229190610726565b5090565b61074e9190610730565b8082111561074a5760008181506000905550600101610730565b5090565b9056fea26469706673582212200d034713b5fd976d0bbd341c0f5d7b8a98ac0325308699a2f39d1b146638516164736f6c634300060a0033",
  "compiler": {
    "name": "solc",
    "version": "0.6.10+commit.00c0fcaf.Emscripten.clang",
    "optimizer": {},
    "evmVersion": "constantinople"
  }
}
