{
  "fileName": "InitializableMock.sol",
  "contractName": "InitializableMock",
  "source": "pragma solidity ^0.6.0;\n// SPDX-License-Identifier: MIT\n\nimport \"../Initializable.sol\";\n\n/**\n * @title InitializableMock\n * @dev This contract is a mock to test initializable functionality\n */\ncontract InitializableMock is Initializable {\n\n  bool public initializerRan;\n  uint256 public x;\n\n  function initialize() public initializer {\n    initializerRan = true;\n  }\n\n  function initializeNested() public initializer {\n    initialize();\n  }\n\n  function initializeWithX(uint256 _x) public payable initializer {\n    x = _x;\n  }\n\n  function nonInitializable(uint256 _x) public payable {\n    x = _x;\n  }\n\n  function fail() public pure {\n    require(false, \"InitializableMock forced failure\");\n  }\n\n  function secret() private pure returns (string memory) {\n    return 'Im secret';\n  }\n\n}\n",
  "sourcePath": "contracts/mocks/InitializableMock.sol",
  "sourceMap": "193:590:11:-:0;;;;;;;;;;;;;;;;;;;;;;",
  "deployedSourceMap": "193:590:11:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;444:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;272:16;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;293:73;;;;;;;;;;;;;:::i;:::-;;603:89;;;;;;;;;;;;;:::i;:::-;;242:26;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;370:70;;;;;;;;;;;;;:::i;:::-;;529;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;444:81;1056:12:0;;;;;;;;;;;:31;;;;1072:15;:13;:15;;:::i;:::-;1056:31;:47;;;;1092:11;;;;;;;;;;;1091:12;1056:47;1048:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1161:19;1184:12;;;;;;;;;;;1183:13;1161:35;;1206:14;1202:80;;;1245:4;1230:12;;:19;;;;;;;;;;;;;;;;;;1271:4;1257:11;;:18;;;;;;;;;;;;;;;;;;1202:80;518:2:11::1;514:1;;:6;;;;;;;1288:1:0;1300:14:::0;1296:55;;;1339:5;1324:12;;:20;;;;;;;;;;;;;;;;;;1296:55;444:81:11;;;:::o;272:16::-;;;;;;:::o;293:73::-;1056:12:0;;;;;;;;;;;:31;;;;1072:15;:13;:15;;:::i;:::-;1056:31;:47;;;;1092:11;;;;;;;;;;;1091:12;1056:47;1048:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1161:19;1184:12;;;;;;;;;;;1183:13;1161:35;;1206:14;1202:80;;;1245:4;1230:12;;:19;;;;;;;;;;;;;;;;;;1271:4;1257:11;;:18;;;;;;;;;;;;;;;;;;1202:80;357:4:11::1;340:14;;:21;;;;;;;;;;;;;;;;;;1288:1:0;1300:14:::0;1296:55;;;1339:5;1324:12;;:20;;;;;;;;;;;;;;;;;;1296:55;293:73:11;;:::o;603:89::-;645:5;637:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;603:89;:::o;242:26::-;;;;;;;;;;;;;:::o;370:70::-;1056:12:0;;;;;;;;;;;:31;;;;1072:15;:13;:15;;:::i;:::-;1056:31;:47;;;;1092:11;;;;;;;;;;;1091:12;1056:47;1048:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1161:19;1184:12;;;;;;;;;;;1183:13;1161:35;;1206:14;1202:80;;;1245:4;1230:12;;:19;;;;;;;;;;;;;;;;;;1271:4;1257:11;;:18;;;;;;;;;;;;;;;;;;1202:80;423:12:11::1;:10;:12;;:::i;:::-;1288:1:0;1300:14:::0;1296:55;;;1339:5;1324:12;;:20;;;;;;;;;;;;;;;;;;1296:55;370:70:11;;:::o;529:::-;592:2;588:1;;:6;;;;;;;529:70;;:::o;1441:498:0:-;1488:4;1829:12;1852:4;1829:28;;1863:10;1908:4;1896:17;1890:23;;1933:1;1927:2;:7;1920:14;;;;;;1441:498;;;;:::o",
  "abi": [
    {
      "inputs": [],
      "name": "fail",
      "outputs": [],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "initialize",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "initializeNested",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_x",
          "type": "uint256"
        }
      ],
      "name": "initializeWithX",
      "outputs": [],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "initializerRan",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_x",
          "type": "uint256"
        }
      ],
      "name": "nonInitializable",
      "outputs": [],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "x",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "ast": {
    "absolutePath": "contracts/mocks/InitializableMock.sol",
    "exportedSymbols": {
      "InitializableMock": [
        1814
      ]
    },
    "id": 1815,
    "license": "MIT",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 1747,
        "literals": [
          "solidity",
          "^",
          "0.6",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:23:11"
      },
      {
        "absolutePath": "contracts/Initializable.sol",
        "file": "../Initializable.sol",
        "id": 1748,
        "nodeType": "ImportDirective",
        "scope": 1815,
        "sourceUnit": 75,
        "src": "57:30:11",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "abstract": false,
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 1750,
              "name": "Initializable",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 74,
              "src": "223:13:11",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Initializable_$74",
                "typeString": "contract Initializable"
              }
            },
            "id": 1751,
            "nodeType": "InheritanceSpecifier",
            "src": "223:13:11"
          }
        ],
        "contractDependencies": [
          74
        ],
        "contractKind": "contract",
        "documentation": {
          "id": 1749,
          "nodeType": "StructuredDocumentation",
          "src": "89:103:11",
          "text": " @title InitializableMock\n @dev This contract is a mock to test initializable functionality"
        },
        "fullyImplemented": true,
        "id": 1814,
        "linearizedBaseContracts": [
          1814,
          74
        ],
        "name": "InitializableMock",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "functionSelector": "c3b8ef2a",
            "id": 1753,
            "mutability": "mutable",
            "name": "initializerRan",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 1814,
            "src": "242:26:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
            },
            "typeName": {
              "id": 1752,
              "name": "bool",
              "nodeType": "ElementaryTypeName",
              "src": "242:4:11",
              "typeDescriptions": {
                "typeIdentifier": "t_bool",
                "typeString": "bool"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "functionSelector": "0c55699c",
            "id": 1755,
            "mutability": "mutable",
            "name": "x",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 1814,
            "src": "272:16:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 1754,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "272:7:11",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1764,
              "nodeType": "Block",
              "src": "334:32:11",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1762,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1760,
                      "name": "initializerRan",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1753,
                      "src": "340:14:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "74727565",
                      "id": 1761,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "357:4:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "true"
                    },
                    "src": "340:21:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 1763,
                  "nodeType": "ExpressionStatement",
                  "src": "340:21:11"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "8129fc1c",
            "id": 1765,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": null,
                "id": 1758,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1757,
                  "name": "initializer",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 47,
                  "src": "322:11:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "322:11:11"
              }
            ],
            "name": "initialize",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 1756,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "312:2:11"
            },
            "returnParameters": {
              "id": 1759,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "334:0:11"
            },
            "scope": 1814,
            "src": "293:73:11",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1773,
              "nodeType": "Block",
              "src": "417:23:11",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 1770,
                      "name": "initialize",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1765,
                      "src": "423:10:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
                        "typeString": "function ()"
                      }
                    },
                    "id": 1771,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "423:12:11",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1772,
                  "nodeType": "ExpressionStatement",
                  "src": "423:12:11"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "cb3a528d",
            "id": 1774,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": null,
                "id": 1768,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1767,
                  "name": "initializer",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 47,
                  "src": "405:11:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "405:11:11"
              }
            ],
            "name": "initializeNested",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 1766,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "395:2:11"
            },
            "returnParameters": {
              "id": 1769,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "417:0:11"
            },
            "scope": 1814,
            "src": "370:70:11",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1785,
              "nodeType": "Block",
              "src": "508:17:11",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1783,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1781,
                      "name": "x",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1755,
                      "src": "514:1:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1782,
                      "name": "_x",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1776,
                      "src": "518:2:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "514:6:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1784,
                  "nodeType": "ExpressionStatement",
                  "src": "514:6:11"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "0018eaa8",
            "id": 1786,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": null,
                "id": 1779,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1778,
                  "name": "initializer",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 47,
                  "src": "496:11:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "496:11:11"
              }
            ],
            "name": "initializeWithX",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 1777,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1776,
                  "mutability": "mutable",
                  "name": "_x",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1786,
                  "src": "469:10:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1775,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "469:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "468:12:11"
            },
            "returnParameters": {
              "id": 1780,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "508:0:11"
            },
            "scope": 1814,
            "src": "444:81:11",
            "stateMutability": "payable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1795,
              "nodeType": "Block",
              "src": "582:17:11",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1793,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1791,
                      "name": "x",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1755,
                      "src": "588:1:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1792,
                      "name": "_x",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1788,
                      "src": "592:2:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "588:6:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1794,
                  "nodeType": "ExpressionStatement",
                  "src": "588:6:11"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "e955c9ec",
            "id": 1796,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "nonInitializable",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 1789,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1788,
                  "mutability": "mutable",
                  "name": "_x",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1796,
                  "src": "555:10:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1787,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "555:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "554:12:11"
            },
            "returnParameters": {
              "id": 1790,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "582:0:11"
            },
            "scope": 1814,
            "src": "529:70:11",
            "stateMutability": "payable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1804,
              "nodeType": "Block",
              "src": "631:61:11",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "66616c7365",
                        "id": 1800,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "645:5:11",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "false"
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "496e697469616c697a61626c654d6f636b20666f72636564206661696c757265",
                        "id": 1801,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "652:34:11",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_70458f305ab12a5814a8a6125666b5faf9428e7481e52fe1e943f8addb4009b7",
                          "typeString": "literal_string \"InitializableMock forced failure\""
                        },
                        "value": "InitializableMock forced failure"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_70458f305ab12a5814a8a6125666b5faf9428e7481e52fe1e943f8addb4009b7",
                          "typeString": "literal_string \"InitializableMock forced failure\""
                        }
                      ],
                      "id": 1799,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "637:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 1802,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "637:50:11",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1803,
                  "nodeType": "ExpressionStatement",
                  "src": "637:50:11"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "a9cc4718",
            "id": 1805,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "fail",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 1797,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "616:2:11"
            },
            "returnParameters": {
              "id": 1798,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "631:0:11"
            },
            "scope": 1814,
            "src": "603:89:11",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1812,
              "nodeType": "Block",
              "src": "751:29:11",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "496d20736563726574",
                    "id": 1810,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "string",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "764:11:11",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_stringliteral_917e1920cd22ea08a6fe16f962e32a49c23ad423aee4a52a1181dc229099e711",
                      "typeString": "literal_string \"Im secret\""
                    },
                    "value": "Im secret"
                  },
                  "functionReturnParameters": 1809,
                  "id": 1811,
                  "nodeType": "Return",
                  "src": "757:18:11"
                }
              ]
            },
            "documentation": null,
            "id": 1813,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "secret",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 1806,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "711:2:11"
            },
            "returnParameters": {
              "id": 1809,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1808,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1813,
                  "src": "736:13:11",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 1807,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "736:6:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "735:15:11"
            },
            "scope": 1814,
            "src": "696:84:11",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "private"
          }
        ],
        "scope": 1815,
        "src": "193:590:11"
      }
    ],
    "src": "0:784:11"
  },
  "bytecode": "0x60806040523480156100115760006000fd5b50610017565b610603806100266000396000f3fe6080604052600436106100735760003560e01c8063a9cc47181161004e578063a9cc4718146100ec578063c3b8ef2a14610104578063cb3a528d14610134578063e955c9ec1461014c57610073565b806218eaa8146100795780630c55699c146100a85780638129fc1c146100d457610073565b60006000fd5b6100a6600480360360208110156100905760006000fd5b810190808035906020019092919050505061017b565b005b3480156100b55760006000fd5b506100be610295565b6040518082815260200191505060405180910390f35b3480156100e15760006000fd5b506100ea61029e565b005b3480156100f95760006000fd5b506101026103c6565b005b3480156101115760006000fd5b5061011a610442565b604051808215151515815260200191505060405180910390f35b3480156101415760006000fd5b5061014a610455565b005b610179600480360360208110156101635760006000fd5b8101908080359060200190929190505050610570565b005b600060019054906101000a900460ff16806101a0575061019f61058063ffffffff16565b5b806101b85750600060009054906101000a900460ff16155b151561020f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001806105a0602e913960400191505060405180910390fd5b6000600060019054906101000a900460ff161590508015610261576001600060016101000a81548160ff0219169083151502179055506001600060006101000a81548160ff0219169083151502179055505b8160346000508190909055505b8015610290576000600060016101000a81548160ff0219169083151502179055505b505b50565b60346000505481565b600060019054906101000a900460ff16806102c357506102c261058063ffffffff16565b5b806102db5750600060009054906101000a900460ff16155b1515610332576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001806105a0602e913960400191505060405180910390fd5b6000600060019054906101000a900460ff161590508015610384576001600060016101000a81548160ff0219169083151502179055506001600060006101000a81548160ff0219169083151502179055505b6001603360006101000a81548160ff0219169083151502179055505b80156103c2576000600060016101000a81548160ff0219169083151502179055505b505b565b6000151561043f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f496e697469616c697a61626c654d6f636b20666f72636564206661696c75726581526020015060200191505060405180910390fd5b5b565b603360009054906101000a900460ff1681565b600060019054906101000a900460ff168061047a575061047961058063ffffffff16565b5b806104925750600060009054906101000a900460ff16155b15156104e9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001806105a0602e913960400191505060405180910390fd5b6000600060019054906101000a900460ff16159050801561053b576001600060016101000a81548160ff0219169083151502179055506001600060006101000a81548160ff0219169083151502179055505b61054961029e63ffffffff16565b5b801561056c576000600060016101000a81548160ff0219169083151502179055505b505b565b8060346000508190909055505b50565b600060003090506000813b9050600081149250505061059c5650505b9056fe436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564a2646970667358221220fd6995e168a6440a3ed9983bb2dadcf0e14801c409a5f9a7fcccbd26da41ed4b64736f6c634300060a0033",
  "deployedBytecode": "0x6080604052600436106100735760003560e01c8063a9cc47181161004e578063a9cc4718146100ec578063c3b8ef2a14610104578063cb3a528d14610134578063e955c9ec1461014c57610073565b806218eaa8146100795780630c55699c146100a85780638129fc1c146100d457610073565b60006000fd5b6100a6600480360360208110156100905760006000fd5b810190808035906020019092919050505061017b565b005b3480156100b55760006000fd5b506100be610295565b6040518082815260200191505060405180910390f35b3480156100e15760006000fd5b506100ea61029e565b005b3480156100f95760006000fd5b506101026103c6565b005b3480156101115760006000fd5b5061011a610442565b604051808215151515815260200191505060405180910390f35b3480156101415760006000fd5b5061014a610455565b005b610179600480360360208110156101635760006000fd5b8101908080359060200190929190505050610570565b005b600060019054906101000a900460ff16806101a0575061019f61058063ffffffff16565b5b806101b85750600060009054906101000a900460ff16155b151561020f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001806105a0602e913960400191505060405180910390fd5b6000600060019054906101000a900460ff161590508015610261576001600060016101000a81548160ff0219169083151502179055506001600060006101000a81548160ff0219169083151502179055505b8160346000508190909055505b8015610290576000600060016101000a81548160ff0219169083151502179055505b505b50565b60346000505481565b600060019054906101000a900460ff16806102c357506102c261058063ffffffff16565b5b806102db5750600060009054906101000a900460ff16155b1515610332576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001806105a0602e913960400191505060405180910390fd5b6000600060019054906101000a900460ff161590508015610384576001600060016101000a81548160ff0219169083151502179055506001600060006101000a81548160ff0219169083151502179055505b6001603360006101000a81548160ff0219169083151502179055505b80156103c2576000600060016101000a81548160ff0219169083151502179055505b505b565b6000151561043f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f496e697469616c697a61626c654d6f636b20666f72636564206661696c75726581526020015060200191505060405180910390fd5b5b565b603360009054906101000a900460ff1681565b600060019054906101000a900460ff168061047a575061047961058063ffffffff16565b5b806104925750600060009054906101000a900460ff16155b15156104e9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001806105a0602e913960400191505060405180910390fd5b6000600060019054906101000a900460ff16159050801561053b576001600060016101000a81548160ff0219169083151502179055506001600060006101000a81548160ff0219169083151502179055505b61054961029e63ffffffff16565b5b801561056c576000600060016101000a81548160ff0219169083151502179055505b505b565b8060346000508190909055505b50565b600060003090506000813b9050600081149250505061059c5650505b9056fe436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564a2646970667358221220fd6995e168a6440a3ed9983bb2dadcf0e14801c409a5f9a7fcccbd26da41ed4b64736f6c634300060a0033",
  "compiler": {
    "name": "solc",
    "version": "0.6.10+commit.00c0fcaf.Emscripten.clang",
    "optimizer": {},
    "evmVersion": "constantinople"
  }
}
