{
  "contractName": "StorageMockWithFunctions",
  "abi": [],
  "bytecode": "0x6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a723058202634c538fd08326c4d2fc4d34d361dfb299d26bfc0f4a9f969f1babea109ef1d0029",
  "deployedBytecode": "0x6080604052600080fd00a165627a7a723058202634c538fd08326c4d2fc4d34d361dfb299d26bfc0f4a9f969f1babea109ef1d0029",
  "sourceMap": "1242:256:16:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1242:256:16;;;;;;;",
  "deployedSourceMap": "1242:256:16:-;;;;;",
  "source": "pragma solidity ^0.4.24;\n\n// Added just for having a circular reference\nimport \"./StorageMocks3.sol\";\n\ncontract SimpleStorageMock {\n  uint256 public my_public_uint256;\n  string internal my_internal_string;\n  uint8 private my_private_uint8;\n  int8 private my_private_uint16;\n  bool private my_private_bool;\n  uint private my_private_uint;\n  address private my_private_address;\n}\n\ncontract StorageMockWithBytes {\n  bytes internal my_bytes;\n  bytes8 internal my_bytes8;\n  bytes32 internal my_bytes32;\n}\n\ncontract StorageMockWithConstants {\n  uint256 public constant my_public_uint256 = 256;\n  string internal constant my_internal_string = \"foo\";\n  uint8 private constant my_private_uint8 = 8;\n}\n\ncontract StorageMockWithArrays {\n  uint256[] public my_public_uint256_dynarray;\n  string[] internal my_internal_string_dynarray;\n  address[] private my_private_address_dynarray;\n  int8[10] public my_public_int8_staticarray;\n  bool[20] internal my_internal_bool_staticarray;\n  uint[30] private my_private_uint_staticarray;\n}\n\ncontract StorageMockWithMappings {\n  mapping(uint256 => string) public my_mapping;\n  mapping(uint256 => mapping(string => address)) internal my_nested_mapping;\n  mapping(uint256 => bool[]) private my_mapping_with_arrays;\n}\n\ncontract StorageMockWithFunctions {\n  function(uint) internal my_fun;\n  function(string, string)[] internal my_fun_dynarray;\n  function(uint) returns (address)[10] internal my_fun_staticarray;\n  mapping(uint256 => function(bool)) internal my_fun_mapping;\n}\n\ncontract StorageMockWithContracts {\n  SimpleStorageMock public my_contract;\n  SimpleStorageMock[] private my_contract_dynarray;\n  SimpleStorageMock[10] internal my_contract_staticarray;\n  mapping(uint256 => SimpleStorageMock) private my_contract_mapping;\n  mapping(uint256 => SimpleStorageMock[]) private my_contract_dynarray_mapping;\n  mapping(uint256 => SimpleStorageMock[10]) private my_contract_staticarray_mapping;\n}\n\ncontract StorageMockWithStructs {\n  struct MyStruct {\n    uint256 struct_uint256;\n    string struct_string;\n    address struct_address;\n  }  \n\n  MyStruct internal my_struct;\n  MyStruct[] private my_struct_dynarray;\n  MyStruct[10] internal my_struct_staticarray;\n  mapping(uint256 => MyStruct) private my_struct_mapping;\n}\n\ncontract StorageMockWithEnums {\n  enum MyEnum { State1, State2 }\n \n  MyEnum public my_enum;\n  MyEnum[] internal my_enum_dynarray;\n  MyEnum[10] internal my_enum_staticarray;\n  mapping(uint256 => MyEnum) private my_enum_mapping;\n}\n\ncontract StorageMockWithComplexStructs {\n  struct MyStruct {\n    uint256[] uint256_dynarray;\n    mapping(string => StorageMockWithEnums.MyEnum) mapping_enums;\n    StorageMockWithStructs.MyStruct other_struct;\n  }\n\n  MyStruct internal my_struct;\n  StorageMockWithStructs.MyStruct internal my_other_struct;\n}\n\ncontract StorageMockWithRecursiveStructs {\n  struct MyStruct {\n    OtherStruct[] other_structs;\n  }\n\n  struct OtherStruct {\n    MyStruct my_struct;\n  }\n\n  MyStruct internal my_struct;\n}\n\ncontract StorageMockMixed is StorageMockWithStructs, StorageMockWithEnums, SimpleStorageMock {\n}\n",
  "sourcePath": "/Users/yoonjae/WebstormProjects/zos/packages/lib/contracts/mocks/StorageMocks.sol",
  "ast": {
    "absolutePath": "/Users/yoonjae/WebstormProjects/zos/packages/lib/contracts/mocks/StorageMocks.sol",
    "exportedSymbols": {
      "SimpleStorageMock": [
        2115
      ],
      "StorageMockMixed": [
        2299
      ],
      "StorageMockWithArrays": [
        2154
      ],
      "StorageMockWithBytes": [
        2122
      ],
      "StorageMockWithComplexStructs": [
        2282
      ],
      "StorageMockWithConstants": [
        2132
      ],
      "StorageMockWithContracts": [
        2229
      ],
      "StorageMockWithEnums": [
        2267
      ],
      "StorageMockWithFunctions": [
        2204
      ],
      "StorageMockWithMappings": [
        2170
      ],
      "StorageMockWithRecursiveStructs": [
        2292
      ],
      "StorageMockWithStructs": [
        2250
      ]
    },
    "id": 2300,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 2099,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".24"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:16"
      },
      {
        "absolutePath": "/Users/yoonjae/WebstormProjects/zos/packages/lib/contracts/mocks/StorageMocks3.sol",
        "file": "./StorageMocks3.sol",
        "id": 2100,
        "nodeType": "ImportDirective",
        "scope": 2300,
        "sourceUnit": 2374,
        "src": "72:29:16",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 2115,
        "linearizedBaseContracts": [
          2115
        ],
        "name": "SimpleStorageMock",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 2102,
            "name": "my_public_uint256",
            "nodeType": "VariableDeclaration",
            "scope": 2115,
            "src": "134:32:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 2101,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "134:7:16",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 2104,
            "name": "my_internal_string",
            "nodeType": "VariableDeclaration",
            "scope": 2115,
            "src": "170:34:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_storage",
              "typeString": "string"
            },
            "typeName": {
              "id": 2103,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "170:6:16",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 2106,
            "name": "my_private_uint8",
            "nodeType": "VariableDeclaration",
            "scope": 2115,
            "src": "208:30:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint8",
              "typeString": "uint8"
            },
            "typeName": {
              "id": 2105,
              "name": "uint8",
              "nodeType": "ElementaryTypeName",
              "src": "208:5:16",
              "typeDescriptions": {
                "typeIdentifier": "t_uint8",
                "typeString": "uint8"
              }
            },
            "value": null,
            "visibility": "private"
          },
          {
            "constant": false,
            "id": 2108,
            "name": "my_private_uint16",
            "nodeType": "VariableDeclaration",
            "scope": 2115,
            "src": "242:30:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_int8",
              "typeString": "int8"
            },
            "typeName": {
              "id": 2107,
              "name": "int8",
              "nodeType": "ElementaryTypeName",
              "src": "242:4:16",
              "typeDescriptions": {
                "typeIdentifier": "t_int8",
                "typeString": "int8"
              }
            },
            "value": null,
            "visibility": "private"
          },
          {
            "constant": false,
            "id": 2110,
            "name": "my_private_bool",
            "nodeType": "VariableDeclaration",
            "scope": 2115,
            "src": "276:28:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
            },
            "typeName": {
              "id": 2109,
              "name": "bool",
              "nodeType": "ElementaryTypeName",
              "src": "276:4:16",
              "typeDescriptions": {
                "typeIdentifier": "t_bool",
                "typeString": "bool"
              }
            },
            "value": null,
            "visibility": "private"
          },
          {
            "constant": false,
            "id": 2112,
            "name": "my_private_uint",
            "nodeType": "VariableDeclaration",
            "scope": 2115,
            "src": "308:28:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 2111,
              "name": "uint",
              "nodeType": "ElementaryTypeName",
              "src": "308:4:16",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "private"
          },
          {
            "constant": false,
            "id": 2114,
            "name": "my_private_address",
            "nodeType": "VariableDeclaration",
            "scope": 2115,
            "src": "340:34:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 2113,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "340:7:16",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": null,
            "visibility": "private"
          }
        ],
        "scope": 2300,
        "src": "103:274:16"
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 2122,
        "linearizedBaseContracts": [
          2122
        ],
        "name": "StorageMockWithBytes",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 2117,
            "name": "my_bytes",
            "nodeType": "VariableDeclaration",
            "scope": 2122,
            "src": "413:23:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes_storage",
              "typeString": "bytes"
            },
            "typeName": {
              "id": 2116,
              "name": "bytes",
              "nodeType": "ElementaryTypeName",
              "src": "413:5:16",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes_storage_ptr",
                "typeString": "bytes"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 2119,
            "name": "my_bytes8",
            "nodeType": "VariableDeclaration",
            "scope": 2122,
            "src": "440:25:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes8",
              "typeString": "bytes8"
            },
            "typeName": {
              "id": 2118,
              "name": "bytes8",
              "nodeType": "ElementaryTypeName",
              "src": "440:6:16",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes8",
                "typeString": "bytes8"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 2121,
            "name": "my_bytes32",
            "nodeType": "VariableDeclaration",
            "scope": 2122,
            "src": "469:27:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 2120,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "469:7:16",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": null,
            "visibility": "internal"
          }
        ],
        "scope": 2300,
        "src": "379:120:16"
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 2132,
        "linearizedBaseContracts": [
          2132
        ],
        "name": "StorageMockWithConstants",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": true,
            "id": 2125,
            "name": "my_public_uint256",
            "nodeType": "VariableDeclaration",
            "scope": 2132,
            "src": "539:47:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 2123,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "539:7:16",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "323536",
              "id": 2124,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "583:3:16",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_256_by_1",
                "typeString": "int_const 256"
              },
              "value": "256"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 2128,
            "name": "my_internal_string",
            "nodeType": "VariableDeclaration",
            "scope": 2132,
            "src": "590:51:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 2126,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "590:6:16",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "666f6f",
              "id": 2127,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "636:5:16",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_41b1a0649752af1b28b3dc29a1556eee781e4a4c3a1f7f53f90fa834de098c4d",
                "typeString": "literal_string \"foo\""
              },
              "value": "foo"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 2131,
            "name": "my_private_uint8",
            "nodeType": "VariableDeclaration",
            "scope": 2132,
            "src": "645:43:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint8",
              "typeString": "uint8"
            },
            "typeName": {
              "id": 2129,
              "name": "uint8",
              "nodeType": "ElementaryTypeName",
              "src": "645:5:16",
              "typeDescriptions": {
                "typeIdentifier": "t_uint8",
                "typeString": "uint8"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "38",
              "id": 2130,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "687:1:16",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_8_by_1",
                "typeString": "int_const 8"
              },
              "value": "8"
            },
            "visibility": "private"
          }
        ],
        "scope": 2300,
        "src": "501:190:16"
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 2154,
        "linearizedBaseContracts": [
          2154
        ],
        "name": "StorageMockWithArrays",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 2135,
            "name": "my_public_uint256_dynarray",
            "nodeType": "VariableDeclaration",
            "scope": 2154,
            "src": "728:43:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
              "typeString": "uint256[]"
            },
            "typeName": {
              "baseType": {
                "id": 2133,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "728:7:16",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "id": 2134,
              "length": null,
              "nodeType": "ArrayTypeName",
              "src": "728:9:16",
              "typeDescriptions": {
                "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                "typeString": "uint256[]"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 2138,
            "name": "my_internal_string_dynarray",
            "nodeType": "VariableDeclaration",
            "scope": 2154,
            "src": "775:45:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_array$_t_string_storage_$dyn_storage",
              "typeString": "string[]"
            },
            "typeName": {
              "baseType": {
                "id": 2136,
                "name": "string",
                "nodeType": "ElementaryTypeName",
                "src": "775:6:16",
                "typeDescriptions": {
                  "typeIdentifier": "t_string_storage_ptr",
                  "typeString": "string"
                }
              },
              "id": 2137,
              "length": null,
              "nodeType": "ArrayTypeName",
              "src": "775:8:16",
              "typeDescriptions": {
                "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr",
                "typeString": "string[]"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 2141,
            "name": "my_private_address_dynarray",
            "nodeType": "VariableDeclaration",
            "scope": 2154,
            "src": "824:45:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_array$_t_address_$dyn_storage",
              "typeString": "address[]"
            },
            "typeName": {
              "baseType": {
                "id": 2139,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "824:7:16",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                }
              },
              "id": 2140,
              "length": null,
              "nodeType": "ArrayTypeName",
              "src": "824:9:16",
              "typeDescriptions": {
                "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                "typeString": "address[]"
              }
            },
            "value": null,
            "visibility": "private"
          },
          {
            "constant": false,
            "id": 2145,
            "name": "my_public_int8_staticarray",
            "nodeType": "VariableDeclaration",
            "scope": 2154,
            "src": "873:42:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_array$_t_int8_$10_storage",
              "typeString": "int8[10]"
            },
            "typeName": {
              "baseType": {
                "id": 2142,
                "name": "int8",
                "nodeType": "ElementaryTypeName",
                "src": "873:4:16",
                "typeDescriptions": {
                  "typeIdentifier": "t_int8",
                  "typeString": "int8"
                }
              },
              "id": 2144,
              "length": {
                "argumentTypes": null,
                "hexValue": "3130",
                "id": 2143,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "kind": "number",
                "lValueRequested": false,
                "nodeType": "Literal",
                "src": "878:2:16",
                "subdenomination": null,
                "typeDescriptions": {
                  "typeIdentifier": null,
                  "typeString": null
                },
                "value": "10"
              },
              "nodeType": "ArrayTypeName",
              "src": "873:8:16",
              "typeDescriptions": {
                "typeIdentifier": "t_array$_t_int8_$10_storage_ptr",
                "typeString": "int8[10]"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 2149,
            "name": "my_internal_bool_staticarray",
            "nodeType": "VariableDeclaration",
            "scope": 2154,
            "src": "919:46:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_array$_t_bool_$20_storage",
              "typeString": "bool[20]"
            },
            "typeName": {
              "baseType": {
                "id": 2146,
                "name": "bool",
                "nodeType": "ElementaryTypeName",
                "src": "919:4:16",
                "typeDescriptions": {
                  "typeIdentifier": "t_bool",
                  "typeString": "bool"
                }
              },
              "id": 2148,
              "length": {
                "argumentTypes": null,
                "hexValue": "3230",
                "id": 2147,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "kind": "number",
                "lValueRequested": false,
                "nodeType": "Literal",
                "src": "924:2:16",
                "subdenomination": null,
                "typeDescriptions": {
                  "typeIdentifier": null,
                  "typeString": null
                },
                "value": "20"
              },
              "nodeType": "ArrayTypeName",
              "src": "919:8:16",
              "typeDescriptions": {
                "typeIdentifier": "t_array$_t_bool_$20_storage_ptr",
                "typeString": "bool[20]"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 2153,
            "name": "my_private_uint_staticarray",
            "nodeType": "VariableDeclaration",
            "scope": 2154,
            "src": "969:44:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_array$_t_uint256_$30_storage",
              "typeString": "uint256[30]"
            },
            "typeName": {
              "baseType": {
                "id": 2150,
                "name": "uint",
                "nodeType": "ElementaryTypeName",
                "src": "969:4:16",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "id": 2152,
              "length": {
                "argumentTypes": null,
                "hexValue": "3330",
                "id": 2151,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "kind": "number",
                "lValueRequested": false,
                "nodeType": "Literal",
                "src": "974:2:16",
                "subdenomination": null,
                "typeDescriptions": {
                  "typeIdentifier": null,
                  "typeString": null
                },
                "value": "30"
              },
              "nodeType": "ArrayTypeName",
              "src": "969:8:16",
              "typeDescriptions": {
                "typeIdentifier": "t_array$_t_uint256_$30_storage_ptr",
                "typeString": "uint256[30]"
              }
            },
            "value": null,
            "visibility": "private"
          }
        ],
        "scope": 2300,
        "src": "693:323:16"
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 2170,
        "linearizedBaseContracts": [
          2170
        ],
        "name": "StorageMockWithMappings",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 2158,
            "name": "my_mapping",
            "nodeType": "VariableDeclaration",
            "scope": 2170,
            "src": "1055:44:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$",
              "typeString": "mapping(uint256 => string)"
            },
            "typeName": {
              "id": 2157,
              "keyType": {
                "id": 2155,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "1063:7:16",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "nodeType": "Mapping",
              "src": "1055:26:16",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$",
                "typeString": "mapping(uint256 => string)"
              },
              "valueType": {
                "id": 2156,
                "name": "string",
                "nodeType": "ElementaryTypeName",
                "src": "1074:6:16",
                "typeDescriptions": {
                  "typeIdentifier": "t_string_storage_ptr",
                  "typeString": "string"
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 2164,
            "name": "my_nested_mapping",
            "nodeType": "VariableDeclaration",
            "scope": 2170,
            "src": "1103:73:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_string_memory_$_t_address_$_$",
              "typeString": "mapping(uint256 => mapping(string => address))"
            },
            "typeName": {
              "id": 2163,
              "keyType": {
                "id": 2159,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "1111:7:16",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "nodeType": "Mapping",
              "src": "1103:46:16",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_string_memory_$_t_address_$_$",
                "typeString": "mapping(uint256 => mapping(string => address))"
              },
              "valueType": {
                "id": 2162,
                "keyType": {
                  "id": 2160,
                  "name": "string",
                  "nodeType": "ElementaryTypeName",
                  "src": "1130:6:16",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_storage_ptr",
                    "typeString": "string"
                  }
                },
                "nodeType": "Mapping",
                "src": "1122:26:16",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_string_memory_$_t_address_$",
                  "typeString": "mapping(string => address)"
                },
                "valueType": {
                  "id": 2161,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "1140:7:16",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                }
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 2169,
            "name": "my_mapping_with_arrays",
            "nodeType": "VariableDeclaration",
            "scope": 2170,
            "src": "1180:57:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_uint256_$_t_array$_t_bool_$dyn_storage_$",
              "typeString": "mapping(uint256 => bool[])"
            },
            "typeName": {
              "id": 2168,
              "keyType": {
                "id": 2165,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "1188:7:16",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "nodeType": "Mapping",
              "src": "1180:26:16",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_uint256_$_t_array$_t_bool_$dyn_storage_$",
                "typeString": "mapping(uint256 => bool[])"
              },
              "valueType": {
                "baseType": {
                  "id": 2166,
                  "name": "bool",
                  "nodeType": "ElementaryTypeName",
                  "src": "1199:4:16",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  }
                },
                "id": 2167,
                "length": null,
                "nodeType": "ArrayTypeName",
                "src": "1199:6:16",
                "typeDescriptions": {
                  "typeIdentifier": "t_array$_t_bool_$dyn_storage_ptr",
                  "typeString": "bool[]"
                }
              }
            },
            "value": null,
            "visibility": "private"
          }
        ],
        "scope": 2300,
        "src": "1018:222:16"
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 2204,
        "linearizedBaseContracts": [
          2204
        ],
        "name": "StorageMockWithFunctions",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 2176,
            "name": "my_fun",
            "nodeType": "VariableDeclaration",
            "scope": 2204,
            "src": "1280:30:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$",
              "typeString": "function (uint256)"
            },
            "typeName": {
              "id": 2175,
              "isDeclaredConst": false,
              "nodeType": "FunctionTypeName",
              "parameterTypes": {
                "id": 2173,
                "nodeType": "ParameterList",
                "parameters": [
                  {
                    "constant": false,
                    "id": 2172,
                    "name": "",
                    "nodeType": "VariableDeclaration",
                    "scope": 2204,
                    "src": "1289:4:16",
                    "stateVariable": false,
                    "storageLocation": "default",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "typeName": {
                      "id": 2171,
                      "name": "uint",
                      "nodeType": "ElementaryTypeName",
                      "src": "1289:4:16",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "value": null,
                    "visibility": "internal"
                  }
                ],
                "src": "1288:6:16"
              },
              "payable": false,
              "returnParameterTypes": {
                "id": 2174,
                "nodeType": "ParameterList",
                "parameters": [],
                "src": "1304:0:16"
              },
              "src": "1280:30:16",
              "stateMutability": "nonpayable",
              "typeDescriptions": {
                "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$",
                "typeString": "function (uint256)"
              },
              "visibility": "internal"
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 2185,
            "name": "my_fun_dynarray",
            "nodeType": "VariableDeclaration",
            "scope": 2204,
            "src": "1314:51:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_array$_t_function_internal_nonpayable$_t_string_storage_ptr_$_t_string_storage_ptr_$returns$__$_$dyn_storage",
              "typeString": "function (string,string)[]"
            },
            "typeName": {
              "baseType": {
                "id": 2183,
                "isDeclaredConst": false,
                "nodeType": "FunctionTypeName",
                "parameterTypes": {
                  "id": 2181,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 2178,
                      "name": "",
                      "nodeType": "VariableDeclaration",
                      "scope": 2204,
                      "src": "1323:6:16",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage_ptr",
                        "typeString": "string"
                      },
                      "typeName": {
                        "id": 2177,
                        "name": "string",
                        "nodeType": "ElementaryTypeName",
                        "src": "1323:6:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_storage_ptr",
                          "typeString": "string"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 2180,
                      "name": "",
                      "nodeType": "VariableDeclaration",
                      "scope": 2204,
                      "src": "1331:6:16",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage_ptr",
                        "typeString": "string"
                      },
                      "typeName": {
                        "id": 2179,
                        "name": "string",
                        "nodeType": "ElementaryTypeName",
                        "src": "1331:6:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_storage_ptr",
                          "typeString": "string"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "1322:16:16"
                },
                "payable": false,
                "returnParameterTypes": {
                  "id": 2182,
                  "nodeType": "ParameterList",
                  "parameters": [],
                  "src": "1338:0:16"
                },
                "src": "1314:25:16",
                "stateMutability": "nonpayable",
                "typeDescriptions": {
                  "typeIdentifier": "t_function_internal_nonpayable$_t_string_storage_ptr_$_t_string_storage_ptr_$returns$__$",
                  "typeString": "function (string,string)"
                },
                "visibility": "internal"
              },
              "id": 2184,
              "length": null,
              "nodeType": "ArrayTypeName",
              "src": "1314:26:16",
              "typeDescriptions": {
                "typeIdentifier": "t_array$_t_function_internal_nonpayable$_t_string_storage_ptr_$_t_string_storage_ptr_$returns$__$_$dyn_storage_ptr",
                "typeString": "function (string,string)[]"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 2195,
            "name": "my_fun_staticarray",
            "nodeType": "VariableDeclaration",
            "scope": 2204,
            "src": "1369:64:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_array$_t_function_internal_nonpayable$_t_uint256_$returns$_t_address_$_$10_storage",
              "typeString": "function (uint256) returns (address)[10]"
            },
            "typeName": {
              "baseType": {
                "id": 2192,
                "isDeclaredConst": false,
                "nodeType": "FunctionTypeName",
                "parameterTypes": {
                  "id": 2188,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 2187,
                      "name": "",
                      "nodeType": "VariableDeclaration",
                      "scope": 2204,
                      "src": "1378:4:16",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2186,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "1378:4:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "1377:6:16"
                },
                "payable": false,
                "returnParameterTypes": {
                  "id": 2191,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 2190,
                      "name": "",
                      "nodeType": "VariableDeclaration",
                      "scope": 2204,
                      "src": "1393:7:16",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 2189,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "1393:7:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "1392:9:16"
                },
                "src": "1369:33:16",
                "stateMutability": "nonpayable",
                "typeDescriptions": {
                  "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$_t_address_$",
                  "typeString": "function (uint256) returns (address)"
                },
                "visibility": "internal"
              },
              "id": 2194,
              "length": {
                "argumentTypes": null,
                "hexValue": "3130",
                "id": 2193,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "kind": "number",
                "lValueRequested": false,
                "nodeType": "Literal",
                "src": "1402:2:16",
                "subdenomination": null,
                "typeDescriptions": {
                  "typeIdentifier": null,
                  "typeString": null
                },
                "value": "10"
              },
              "nodeType": "ArrayTypeName",
              "src": "1369:36:16",
              "typeDescriptions": {
                "typeIdentifier": "t_array$_t_function_internal_nonpayable$_t_uint256_$returns$_t_address_$_$10_storage_ptr",
                "typeString": "function (uint256) returns (address)[10]"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 2203,
            "name": "my_fun_mapping",
            "nodeType": "VariableDeclaration",
            "scope": 2204,
            "src": "1437:58:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_uint256_$_t_function_internal_nonpayable$_t_bool_$returns$__$_$",
              "typeString": "mapping(uint256 => function (bool))"
            },
            "typeName": {
              "id": 2202,
              "keyType": {
                "id": 2196,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "1445:7:16",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "nodeType": "Mapping",
              "src": "1437:34:16",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_uint256_$_t_function_internal_nonpayable$_t_bool_$returns$__$_$",
                "typeString": "mapping(uint256 => function (bool))"
              },
              "valueType": {
                "id": 2201,
                "isDeclaredConst": false,
                "nodeType": "FunctionTypeName",
                "parameterTypes": {
                  "id": 2199,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 2198,
                      "name": "",
                      "nodeType": "VariableDeclaration",
                      "scope": 2204,
                      "src": "1465:4:16",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "typeName": {
                        "id": 2197,
                        "name": "bool",
                        "nodeType": "ElementaryTypeName",
                        "src": "1465:4:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "1464:6:16"
                },
                "payable": false,
                "returnParameterTypes": {
                  "id": 2200,
                  "nodeType": "ParameterList",
                  "parameters": [],
                  "src": "1470:0:16"
                },
                "src": "1456:15:16",
                "stateMutability": "nonpayable",
                "typeDescriptions": {
                  "typeIdentifier": "t_function_internal_nonpayable$_t_bool_$returns$__$",
                  "typeString": "function (bool)"
                },
                "visibility": "internal"
              }
            },
            "value": null,
            "visibility": "internal"
          }
        ],
        "scope": 2300,
        "src": "1242:256:16"
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 2229,
        "linearizedBaseContracts": [
          2229
        ],
        "name": "StorageMockWithContracts",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 2206,
            "name": "my_contract",
            "nodeType": "VariableDeclaration",
            "scope": 2229,
            "src": "1538:36:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_SimpleStorageMock_$2115",
              "typeString": "contract SimpleStorageMock"
            },
            "typeName": {
              "contractScope": null,
              "id": 2205,
              "name": "SimpleStorageMock",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 2115,
              "src": "1538:17:16",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_SimpleStorageMock_$2115",
                "typeString": "contract SimpleStorageMock"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 2209,
            "name": "my_contract_dynarray",
            "nodeType": "VariableDeclaration",
            "scope": 2229,
            "src": "1578:48:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_array$_t_contract$_SimpleStorageMock_$2115_$dyn_storage",
              "typeString": "contract SimpleStorageMock[]"
            },
            "typeName": {
              "baseType": {
                "contractScope": null,
                "id": 2207,
                "name": "SimpleStorageMock",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 2115,
                "src": "1578:17:16",
                "typeDescriptions": {
                  "typeIdentifier": "t_contract$_SimpleStorageMock_$2115",
                  "typeString": "contract SimpleStorageMock"
                }
              },
              "id": 2208,
              "length": null,
              "nodeType": "ArrayTypeName",
              "src": "1578:19:16",
              "typeDescriptions": {
                "typeIdentifier": "t_array$_t_contract$_SimpleStorageMock_$2115_$dyn_storage_ptr",
                "typeString": "contract SimpleStorageMock[]"
              }
            },
            "value": null,
            "visibility": "private"
          },
          {
            "constant": false,
            "id": 2213,
            "name": "my_contract_staticarray",
            "nodeType": "VariableDeclaration",
            "scope": 2229,
            "src": "1630:54:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_array$_t_contract$_SimpleStorageMock_$2115_$10_storage",
              "typeString": "contract SimpleStorageMock[10]"
            },
            "typeName": {
              "baseType": {
                "contractScope": null,
                "id": 2210,
                "name": "SimpleStorageMock",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 2115,
                "src": "1630:17:16",
                "typeDescriptions": {
                  "typeIdentifier": "t_contract$_SimpleStorageMock_$2115",
                  "typeString": "contract SimpleStorageMock"
                }
              },
              "id": 2212,
              "length": {
                "argumentTypes": null,
                "hexValue": "3130",
                "id": 2211,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "kind": "number",
                "lValueRequested": false,
                "nodeType": "Literal",
                "src": "1648:2:16",
                "subdenomination": null,
                "typeDescriptions": {
                  "typeIdentifier": null,
                  "typeString": null
                },
                "value": "10"
              },
              "nodeType": "ArrayTypeName",
              "src": "1630:21:16",
              "typeDescriptions": {
                "typeIdentifier": "t_array$_t_contract$_SimpleStorageMock_$2115_$10_storage_ptr",
                "typeString": "contract SimpleStorageMock[10]"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 2217,
            "name": "my_contract_mapping",
            "nodeType": "VariableDeclaration",
            "scope": 2229,
            "src": "1688:65:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_uint256_$_t_contract$_SimpleStorageMock_$2115_$",
              "typeString": "mapping(uint256 => contract SimpleStorageMock)"
            },
            "typeName": {
              "id": 2216,
              "keyType": {
                "id": 2214,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "1696:7:16",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "nodeType": "Mapping",
              "src": "1688:37:16",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_uint256_$_t_contract$_SimpleStorageMock_$2115_$",
                "typeString": "mapping(uint256 => contract SimpleStorageMock)"
              },
              "valueType": {
                "contractScope": null,
                "id": 2215,
                "name": "SimpleStorageMock",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 2115,
                "src": "1707:17:16",
                "typeDescriptions": {
                  "typeIdentifier": "t_contract$_SimpleStorageMock_$2115",
                  "typeString": "contract SimpleStorageMock"
                }
              }
            },
            "value": null,
            "visibility": "private"
          },
          {
            "constant": false,
            "id": 2222,
            "name": "my_contract_dynarray_mapping",
            "nodeType": "VariableDeclaration",
            "scope": 2229,
            "src": "1757:76:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_uint256_$_t_array$_t_contract$_SimpleStorageMock_$2115_$dyn_storage_$",
              "typeString": "mapping(uint256 => contract SimpleStorageMock[])"
            },
            "typeName": {
              "id": 2221,
              "keyType": {
                "id": 2218,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "1765:7:16",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "nodeType": "Mapping",
              "src": "1757:39:16",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_uint256_$_t_array$_t_contract$_SimpleStorageMock_$2115_$dyn_storage_$",
                "typeString": "mapping(uint256 => contract SimpleStorageMock[])"
              },
              "valueType": {
                "baseType": {
                  "contractScope": null,
                  "id": 2219,
                  "name": "SimpleStorageMock",
                  "nodeType": "UserDefinedTypeName",
                  "referencedDeclaration": 2115,
                  "src": "1776:17:16",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_SimpleStorageMock_$2115",
                    "typeString": "contract SimpleStorageMock"
                  }
                },
                "id": 2220,
                "length": null,
                "nodeType": "ArrayTypeName",
                "src": "1776:19:16",
                "typeDescriptions": {
                  "typeIdentifier": "t_array$_t_contract$_SimpleStorageMock_$2115_$dyn_storage_ptr",
                  "typeString": "contract SimpleStorageMock[]"
                }
              }
            },
            "value": null,
            "visibility": "private"
          },
          {
            "constant": false,
            "id": 2228,
            "name": "my_contract_staticarray_mapping",
            "nodeType": "VariableDeclaration",
            "scope": 2229,
            "src": "1837:81:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_uint256_$_t_array$_t_contract$_SimpleStorageMock_$2115_$10_storage_$",
              "typeString": "mapping(uint256 => contract SimpleStorageMock[10])"
            },
            "typeName": {
              "id": 2227,
              "keyType": {
                "id": 2223,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "1845:7:16",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "nodeType": "Mapping",
              "src": "1837:41:16",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_uint256_$_t_array$_t_contract$_SimpleStorageMock_$2115_$10_storage_$",
                "typeString": "mapping(uint256 => contract SimpleStorageMock[10])"
              },
              "valueType": {
                "baseType": {
                  "contractScope": null,
                  "id": 2224,
                  "name": "SimpleStorageMock",
                  "nodeType": "UserDefinedTypeName",
                  "referencedDeclaration": 2115,
                  "src": "1856:17:16",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_SimpleStorageMock_$2115",
                    "typeString": "contract SimpleStorageMock"
                  }
                },
                "id": 2226,
                "length": {
                  "argumentTypes": null,
                  "hexValue": "3130",
                  "id": 2225,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": false,
                  "kind": "number",
                  "lValueRequested": false,
                  "nodeType": "Literal",
                  "src": "1874:2:16",
                  "subdenomination": null,
                  "typeDescriptions": {
                    "typeIdentifier": null,
                    "typeString": null
                  },
                  "value": "10"
                },
                "nodeType": "ArrayTypeName",
                "src": "1856:21:16",
                "typeDescriptions": {
                  "typeIdentifier": "t_array$_t_contract$_SimpleStorageMock_$2115_$10_storage_ptr",
                  "typeString": "contract SimpleStorageMock[10]"
                }
              }
            },
            "value": null,
            "visibility": "private"
          }
        ],
        "scope": 2300,
        "src": "1500:421:16"
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 2250,
        "linearizedBaseContracts": [
          2250
        ],
        "name": "StorageMockWithStructs",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "canonicalName": "StorageMockWithStructs.MyStruct",
            "id": 2236,
            "members": [
              {
                "constant": false,
                "id": 2231,
                "name": "struct_uint256",
                "nodeType": "VariableDeclaration",
                "scope": 2236,
                "src": "1981:22:16",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 2230,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "1981:7:16",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 2233,
                "name": "struct_string",
                "nodeType": "VariableDeclaration",
                "scope": 2236,
                "src": "2009:20:16",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_string_storage_ptr",
                  "typeString": "string"
                },
                "typeName": {
                  "id": 2232,
                  "name": "string",
                  "nodeType": "ElementaryTypeName",
                  "src": "2009:6:16",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_storage_ptr",
                    "typeString": "string"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 2235,
                "name": "struct_address",
                "nodeType": "VariableDeclaration",
                "scope": 2236,
                "src": "2035:22:16",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 2234,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "2035:7:16",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "MyStruct",
            "nodeType": "StructDefinition",
            "scope": 2250,
            "src": "1959:103:16",
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 2238,
            "name": "my_struct",
            "nodeType": "VariableDeclaration",
            "scope": 2250,
            "src": "2068:27:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_struct$_MyStruct_$2236_storage",
              "typeString": "struct StorageMockWithStructs.MyStruct"
            },
            "typeName": {
              "contractScope": null,
              "id": 2237,
              "name": "MyStruct",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 2236,
              "src": "2068:8:16",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_MyStruct_$2236_storage_ptr",
                "typeString": "struct StorageMockWithStructs.MyStruct"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 2241,
            "name": "my_struct_dynarray",
            "nodeType": "VariableDeclaration",
            "scope": 2250,
            "src": "2099:37:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_array$_t_struct$_MyStruct_$2236_storage_$dyn_storage",
              "typeString": "struct StorageMockWithStructs.MyStruct[]"
            },
            "typeName": {
              "baseType": {
                "contractScope": null,
                "id": 2239,
                "name": "MyStruct",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 2236,
                "src": "2099:8:16",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_MyStruct_$2236_storage_ptr",
                  "typeString": "struct StorageMockWithStructs.MyStruct"
                }
              },
              "id": 2240,
              "length": null,
              "nodeType": "ArrayTypeName",
              "src": "2099:10:16",
              "typeDescriptions": {
                "typeIdentifier": "t_array$_t_struct$_MyStruct_$2236_storage_$dyn_storage_ptr",
                "typeString": "struct StorageMockWithStructs.MyStruct[]"
              }
            },
            "value": null,
            "visibility": "private"
          },
          {
            "constant": false,
            "id": 2245,
            "name": "my_struct_staticarray",
            "nodeType": "VariableDeclaration",
            "scope": 2250,
            "src": "2140:43:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_array$_t_struct$_MyStruct_$2236_storage_$10_storage",
              "typeString": "struct StorageMockWithStructs.MyStruct[10]"
            },
            "typeName": {
              "baseType": {
                "contractScope": null,
                "id": 2242,
                "name": "MyStruct",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 2236,
                "src": "2140:8:16",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_MyStruct_$2236_storage_ptr",
                  "typeString": "struct StorageMockWithStructs.MyStruct"
                }
              },
              "id": 2244,
              "length": {
                "argumentTypes": null,
                "hexValue": "3130",
                "id": 2243,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "kind": "number",
                "lValueRequested": false,
                "nodeType": "Literal",
                "src": "2149:2:16",
                "subdenomination": null,
                "typeDescriptions": {
                  "typeIdentifier": null,
                  "typeString": null
                },
                "value": "10"
              },
              "nodeType": "ArrayTypeName",
              "src": "2140:12:16",
              "typeDescriptions": {
                "typeIdentifier": "t_array$_t_struct$_MyStruct_$2236_storage_$10_storage_ptr",
                "typeString": "struct StorageMockWithStructs.MyStruct[10]"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 2249,
            "name": "my_struct_mapping",
            "nodeType": "VariableDeclaration",
            "scope": 2250,
            "src": "2187:54:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_MyStruct_$2236_storage_$",
              "typeString": "mapping(uint256 => struct StorageMockWithStructs.MyStruct)"
            },
            "typeName": {
              "id": 2248,
              "keyType": {
                "id": 2246,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "2195:7:16",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "nodeType": "Mapping",
              "src": "2187:28:16",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_MyStruct_$2236_storage_$",
                "typeString": "mapping(uint256 => struct StorageMockWithStructs.MyStruct)"
              },
              "valueType": {
                "contractScope": null,
                "id": 2247,
                "name": "MyStruct",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 2236,
                "src": "2206:8:16",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_MyStruct_$2236_storage_ptr",
                  "typeString": "struct StorageMockWithStructs.MyStruct"
                }
              }
            },
            "value": null,
            "visibility": "private"
          }
        ],
        "scope": 2300,
        "src": "1923:321:16"
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 2267,
        "linearizedBaseContracts": [
          2267
        ],
        "name": "StorageMockWithEnums",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "canonicalName": "StorageMockWithEnums.MyEnum",
            "id": 2253,
            "members": [
              {
                "id": 2251,
                "name": "State1",
                "nodeType": "EnumValue",
                "src": "2294:6:16"
              },
              {
                "id": 2252,
                "name": "State2",
                "nodeType": "EnumValue",
                "src": "2302:6:16"
              }
            ],
            "name": "MyEnum",
            "nodeType": "EnumDefinition",
            "src": "2280:30:16"
          },
          {
            "constant": false,
            "id": 2255,
            "name": "my_enum",
            "nodeType": "VariableDeclaration",
            "scope": 2267,
            "src": "2315:21:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_enum$_MyEnum_$2253",
              "typeString": "enum StorageMockWithEnums.MyEnum"
            },
            "typeName": {
              "contractScope": null,
              "id": 2254,
              "name": "MyEnum",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 2253,
              "src": "2315:6:16",
              "typeDescriptions": {
                "typeIdentifier": "t_enum$_MyEnum_$2253",
                "typeString": "enum StorageMockWithEnums.MyEnum"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 2258,
            "name": "my_enum_dynarray",
            "nodeType": "VariableDeclaration",
            "scope": 2267,
            "src": "2340:34:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_array$_t_enum$_MyEnum_$2253_$dyn_storage",
              "typeString": "enum StorageMockWithEnums.MyEnum[]"
            },
            "typeName": {
              "baseType": {
                "contractScope": null,
                "id": 2256,
                "name": "MyEnum",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 2253,
                "src": "2340:6:16",
                "typeDescriptions": {
                  "typeIdentifier": "t_enum$_MyEnum_$2253",
                  "typeString": "enum StorageMockWithEnums.MyEnum"
                }
              },
              "id": 2257,
              "length": null,
              "nodeType": "ArrayTypeName",
              "src": "2340:8:16",
              "typeDescriptions": {
                "typeIdentifier": "t_array$_t_enum$_MyEnum_$2253_$dyn_storage_ptr",
                "typeString": "enum StorageMockWithEnums.MyEnum[]"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 2262,
            "name": "my_enum_staticarray",
            "nodeType": "VariableDeclaration",
            "scope": 2267,
            "src": "2378:39:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_array$_t_enum$_MyEnum_$2253_$10_storage",
              "typeString": "enum StorageMockWithEnums.MyEnum[10]"
            },
            "typeName": {
              "baseType": {
                "contractScope": null,
                "id": 2259,
                "name": "MyEnum",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 2253,
                "src": "2378:6:16",
                "typeDescriptions": {
                  "typeIdentifier": "t_enum$_MyEnum_$2253",
                  "typeString": "enum StorageMockWithEnums.MyEnum"
                }
              },
              "id": 2261,
              "length": {
                "argumentTypes": null,
                "hexValue": "3130",
                "id": 2260,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "kind": "number",
                "lValueRequested": false,
                "nodeType": "Literal",
                "src": "2385:2:16",
                "subdenomination": null,
                "typeDescriptions": {
                  "typeIdentifier": null,
                  "typeString": null
                },
                "value": "10"
              },
              "nodeType": "ArrayTypeName",
              "src": "2378:10:16",
              "typeDescriptions": {
                "typeIdentifier": "t_array$_t_enum$_MyEnum_$2253_$10_storage_ptr",
                "typeString": "enum StorageMockWithEnums.MyEnum[10]"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 2266,
            "name": "my_enum_mapping",
            "nodeType": "VariableDeclaration",
            "scope": 2267,
            "src": "2421:50:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_uint256_$_t_enum$_MyEnum_$2253_$",
              "typeString": "mapping(uint256 => enum StorageMockWithEnums.MyEnum)"
            },
            "typeName": {
              "id": 2265,
              "keyType": {
                "id": 2263,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "2429:7:16",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "nodeType": "Mapping",
              "src": "2421:26:16",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_uint256_$_t_enum$_MyEnum_$2253_$",
                "typeString": "mapping(uint256 => enum StorageMockWithEnums.MyEnum)"
              },
              "valueType": {
                "contractScope": null,
                "id": 2264,
                "name": "MyEnum",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 2253,
                "src": "2440:6:16",
                "typeDescriptions": {
                  "typeIdentifier": "t_enum$_MyEnum_$2253",
                  "typeString": "enum StorageMockWithEnums.MyEnum"
                }
              }
            },
            "value": null,
            "visibility": "private"
          }
        ],
        "scope": 2300,
        "src": "2246:228:16"
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 2282,
        "linearizedBaseContracts": [
          2282
        ],
        "name": "StorageMockWithComplexStructs",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "canonicalName": "StorageMockWithComplexStructs.MyStruct",
            "id": 2277,
            "members": [
              {
                "constant": false,
                "id": 2270,
                "name": "uint256_dynarray",
                "nodeType": "VariableDeclaration",
                "scope": 2277,
                "src": "2541:26:16",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                  "typeString": "uint256[]"
                },
                "typeName": {
                  "baseType": {
                    "id": 2268,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2541:7:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2269,
                  "length": null,
                  "nodeType": "ArrayTypeName",
                  "src": "2541:9:16",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                    "typeString": "uint256[]"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 2274,
                "name": "mapping_enums",
                "nodeType": "VariableDeclaration",
                "scope": 2277,
                "src": "2573:60:16",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_string_memory_$_t_enum$_MyEnum_$2253_$",
                  "typeString": "mapping(string => enum StorageMockWithEnums.MyEnum)"
                },
                "typeName": {
                  "id": 2273,
                  "keyType": {
                    "id": 2271,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "2581:6:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "nodeType": "Mapping",
                  "src": "2573:46:16",
                  "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_string_memory_$_t_enum$_MyEnum_$2253_$",
                    "typeString": "mapping(string => enum StorageMockWithEnums.MyEnum)"
                  },
                  "valueType": {
                    "contractScope": null,
                    "id": 2272,
                    "name": "StorageMockWithEnums.MyEnum",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 2253,
                    "src": "2591:27:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_MyEnum_$2253",
                      "typeString": "enum StorageMockWithEnums.MyEnum"
                    }
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 2276,
                "name": "other_struct",
                "nodeType": "VariableDeclaration",
                "scope": 2277,
                "src": "2639:44:16",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_MyStruct_$2236_storage_ptr",
                  "typeString": "struct StorageMockWithStructs.MyStruct"
                },
                "typeName": {
                  "contractScope": null,
                  "id": 2275,
                  "name": "StorageMockWithStructs.MyStruct",
                  "nodeType": "UserDefinedTypeName",
                  "referencedDeclaration": 2236,
                  "src": "2639:31:16",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_MyStruct_$2236_storage_ptr",
                    "typeString": "struct StorageMockWithStructs.MyStruct"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "MyStruct",
            "nodeType": "StructDefinition",
            "scope": 2282,
            "src": "2519:169:16",
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 2279,
            "name": "my_struct",
            "nodeType": "VariableDeclaration",
            "scope": 2282,
            "src": "2692:27:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_struct$_MyStruct_$2277_storage",
              "typeString": "struct StorageMockWithComplexStructs.MyStruct"
            },
            "typeName": {
              "contractScope": null,
              "id": 2278,
              "name": "MyStruct",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 2277,
              "src": "2692:8:16",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_MyStruct_$2277_storage_ptr",
                "typeString": "struct StorageMockWithComplexStructs.MyStruct"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 2281,
            "name": "my_other_struct",
            "nodeType": "VariableDeclaration",
            "scope": 2282,
            "src": "2723:56:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_struct$_MyStruct_$2236_storage",
              "typeString": "struct StorageMockWithStructs.MyStruct"
            },
            "typeName": {
              "contractScope": null,
              "id": 2280,
              "name": "StorageMockWithStructs.MyStruct",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 2236,
              "src": "2723:31:16",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_MyStruct_$2236_storage_ptr",
                "typeString": "struct StorageMockWithStructs.MyStruct"
              }
            },
            "value": null,
            "visibility": "internal"
          }
        ],
        "scope": 2300,
        "src": "2476:306:16"
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 2292,
        "linearizedBaseContracts": [
          2292
        ],
        "name": "StorageMockWithRecursiveStructs",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "canonicalName": "StorageMockWithRecursiveStructs.MyStruct",
            "id": 2286,
            "members": [
              {
                "constant": false,
                "id": 2285,
                "name": "other_structs",
                "nodeType": "VariableDeclaration",
                "scope": 2286,
                "src": "2851:27:16",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_array$_t_struct$_OtherStruct_$2289_storage_$dyn_storage_ptr",
                  "typeString": "struct StorageMockWithRecursiveStructs.OtherStruct[]"
                },
                "typeName": {
                  "baseType": {
                    "contractScope": null,
                    "id": 2283,
                    "name": "OtherStruct",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 2289,
                    "src": "2851:11:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_OtherStruct_$2289_storage_ptr",
                      "typeString": "struct StorageMockWithRecursiveStructs.OtherStruct"
                    }
                  },
                  "id": 2284,
                  "length": null,
                  "nodeType": "ArrayTypeName",
                  "src": "2851:13:16",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_struct$_OtherStruct_$2289_storage_$dyn_storage_ptr",
                    "typeString": "struct StorageMockWithRecursiveStructs.OtherStruct[]"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "MyStruct",
            "nodeType": "StructDefinition",
            "scope": 2292,
            "src": "2829:54:16",
            "visibility": "public"
          },
          {
            "canonicalName": "StorageMockWithRecursiveStructs.OtherStruct",
            "id": 2289,
            "members": [
              {
                "constant": false,
                "id": 2288,
                "name": "my_struct",
                "nodeType": "VariableDeclaration",
                "scope": 2289,
                "src": "2912:18:16",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_MyStruct_$2286_storage_ptr",
                  "typeString": "struct StorageMockWithRecursiveStructs.MyStruct"
                },
                "typeName": {
                  "contractScope": null,
                  "id": 2287,
                  "name": "MyStruct",
                  "nodeType": "UserDefinedTypeName",
                  "referencedDeclaration": 2286,
                  "src": "2912:8:16",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_MyStruct_$2286_storage_ptr",
                    "typeString": "struct StorageMockWithRecursiveStructs.MyStruct"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "OtherStruct",
            "nodeType": "StructDefinition",
            "scope": 2292,
            "src": "2887:48:16",
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 2291,
            "name": "my_struct",
            "nodeType": "VariableDeclaration",
            "scope": 2292,
            "src": "2939:27:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_struct$_MyStruct_$2286_storage",
              "typeString": "struct StorageMockWithRecursiveStructs.MyStruct"
            },
            "typeName": {
              "contractScope": null,
              "id": 2290,
              "name": "MyStruct",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 2286,
              "src": "2939:8:16",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_MyStruct_$2286_storage_ptr",
                "typeString": "struct StorageMockWithRecursiveStructs.MyStruct"
              }
            },
            "value": null,
            "visibility": "internal"
          }
        ],
        "scope": 2300,
        "src": "2784:185:16"
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 2293,
              "name": "StorageMockWithStructs",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 2250,
              "src": "3000:22:16",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_StorageMockWithStructs_$2250",
                "typeString": "contract StorageMockWithStructs"
              }
            },
            "id": 2294,
            "nodeType": "InheritanceSpecifier",
            "src": "3000:22:16"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 2295,
              "name": "StorageMockWithEnums",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 2267,
              "src": "3024:20:16",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_StorageMockWithEnums_$2267",
                "typeString": "contract StorageMockWithEnums"
              }
            },
            "id": 2296,
            "nodeType": "InheritanceSpecifier",
            "src": "3024:20:16"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 2297,
              "name": "SimpleStorageMock",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 2115,
              "src": "3046:17:16",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_SimpleStorageMock_$2115",
                "typeString": "contract SimpleStorageMock"
              }
            },
            "id": 2298,
            "nodeType": "InheritanceSpecifier",
            "src": "3046:17:16"
          }
        ],
        "contractDependencies": [
          2115,
          2250,
          2267
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 2299,
        "linearizedBaseContracts": [
          2299,
          2115,
          2267,
          2250
        ],
        "name": "StorageMockMixed",
        "nodeType": "ContractDefinition",
        "nodes": [],
        "scope": 2300,
        "src": "2971:96:16"
      }
    ],
    "src": "0:3068:16"
  },
  "legacyAST": {
    "absolutePath": "/Users/yoonjae/WebstormProjects/zos/packages/lib/contracts/mocks/StorageMocks.sol",
    "exportedSymbols": {
      "SimpleStorageMock": [
        2115
      ],
      "StorageMockMixed": [
        2299
      ],
      "StorageMockWithArrays": [
        2154
      ],
      "StorageMockWithBytes": [
        2122
      ],
      "StorageMockWithComplexStructs": [
        2282
      ],
      "StorageMockWithConstants": [
        2132
      ],
      "StorageMockWithContracts": [
        2229
      ],
      "StorageMockWithEnums": [
        2267
      ],
      "StorageMockWithFunctions": [
        2204
      ],
      "StorageMockWithMappings": [
        2170
      ],
      "StorageMockWithRecursiveStructs": [
        2292
      ],
      "StorageMockWithStructs": [
        2250
      ]
    },
    "id": 2300,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 2099,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".24"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:16"
      },
      {
        "absolutePath": "/Users/yoonjae/WebstormProjects/zos/packages/lib/contracts/mocks/StorageMocks3.sol",
        "file": "./StorageMocks3.sol",
        "id": 2100,
        "nodeType": "ImportDirective",
        "scope": 2300,
        "sourceUnit": 2374,
        "src": "72:29:16",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 2115,
        "linearizedBaseContracts": [
          2115
        ],
        "name": "SimpleStorageMock",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 2102,
            "name": "my_public_uint256",
            "nodeType": "VariableDeclaration",
            "scope": 2115,
            "src": "134:32:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 2101,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "134:7:16",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 2104,
            "name": "my_internal_string",
            "nodeType": "VariableDeclaration",
            "scope": 2115,
            "src": "170:34:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_storage",
              "typeString": "string"
            },
            "typeName": {
              "id": 2103,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "170:6:16",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 2106,
            "name": "my_private_uint8",
            "nodeType": "VariableDeclaration",
            "scope": 2115,
            "src": "208:30:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint8",
              "typeString": "uint8"
            },
            "typeName": {
              "id": 2105,
              "name": "uint8",
              "nodeType": "ElementaryTypeName",
              "src": "208:5:16",
              "typeDescriptions": {
                "typeIdentifier": "t_uint8",
                "typeString": "uint8"
              }
            },
            "value": null,
            "visibility": "private"
          },
          {
            "constant": false,
            "id": 2108,
            "name": "my_private_uint16",
            "nodeType": "VariableDeclaration",
            "scope": 2115,
            "src": "242:30:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_int8",
              "typeString": "int8"
            },
            "typeName": {
              "id": 2107,
              "name": "int8",
              "nodeType": "ElementaryTypeName",
              "src": "242:4:16",
              "typeDescriptions": {
                "typeIdentifier": "t_int8",
                "typeString": "int8"
              }
            },
            "value": null,
            "visibility": "private"
          },
          {
            "constant": false,
            "id": 2110,
            "name": "my_private_bool",
            "nodeType": "VariableDeclaration",
            "scope": 2115,
            "src": "276:28:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
            },
            "typeName": {
              "id": 2109,
              "name": "bool",
              "nodeType": "ElementaryTypeName",
              "src": "276:4:16",
              "typeDescriptions": {
                "typeIdentifier": "t_bool",
                "typeString": "bool"
              }
            },
            "value": null,
            "visibility": "private"
          },
          {
            "constant": false,
            "id": 2112,
            "name": "my_private_uint",
            "nodeType": "VariableDeclaration",
            "scope": 2115,
            "src": "308:28:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 2111,
              "name": "uint",
              "nodeType": "ElementaryTypeName",
              "src": "308:4:16",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "private"
          },
          {
            "constant": false,
            "id": 2114,
            "name": "my_private_address",
            "nodeType": "VariableDeclaration",
            "scope": 2115,
            "src": "340:34:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 2113,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "340:7:16",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": null,
            "visibility": "private"
          }
        ],
        "scope": 2300,
        "src": "103:274:16"
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 2122,
        "linearizedBaseContracts": [
          2122
        ],
        "name": "StorageMockWithBytes",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 2117,
            "name": "my_bytes",
            "nodeType": "VariableDeclaration",
            "scope": 2122,
            "src": "413:23:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes_storage",
              "typeString": "bytes"
            },
            "typeName": {
              "id": 2116,
              "name": "bytes",
              "nodeType": "ElementaryTypeName",
              "src": "413:5:16",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes_storage_ptr",
                "typeString": "bytes"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 2119,
            "name": "my_bytes8",
            "nodeType": "VariableDeclaration",
            "scope": 2122,
            "src": "440:25:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes8",
              "typeString": "bytes8"
            },
            "typeName": {
              "id": 2118,
              "name": "bytes8",
              "nodeType": "ElementaryTypeName",
              "src": "440:6:16",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes8",
                "typeString": "bytes8"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 2121,
            "name": "my_bytes32",
            "nodeType": "VariableDeclaration",
            "scope": 2122,
            "src": "469:27:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 2120,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "469:7:16",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": null,
            "visibility": "internal"
          }
        ],
        "scope": 2300,
        "src": "379:120:16"
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 2132,
        "linearizedBaseContracts": [
          2132
        ],
        "name": "StorageMockWithConstants",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": true,
            "id": 2125,
            "name": "my_public_uint256",
            "nodeType": "VariableDeclaration",
            "scope": 2132,
            "src": "539:47:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 2123,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "539:7:16",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "323536",
              "id": 2124,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "583:3:16",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_256_by_1",
                "typeString": "int_const 256"
              },
              "value": "256"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 2128,
            "name": "my_internal_string",
            "nodeType": "VariableDeclaration",
            "scope": 2132,
            "src": "590:51:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 2126,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "590:6:16",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "666f6f",
              "id": 2127,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "636:5:16",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_41b1a0649752af1b28b3dc29a1556eee781e4a4c3a1f7f53f90fa834de098c4d",
                "typeString": "literal_string \"foo\""
              },
              "value": "foo"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 2131,
            "name": "my_private_uint8",
            "nodeType": "VariableDeclaration",
            "scope": 2132,
            "src": "645:43:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint8",
              "typeString": "uint8"
            },
            "typeName": {
              "id": 2129,
              "name": "uint8",
              "nodeType": "ElementaryTypeName",
              "src": "645:5:16",
              "typeDescriptions": {
                "typeIdentifier": "t_uint8",
                "typeString": "uint8"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "38",
              "id": 2130,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "687:1:16",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_8_by_1",
                "typeString": "int_const 8"
              },
              "value": "8"
            },
            "visibility": "private"
          }
        ],
        "scope": 2300,
        "src": "501:190:16"
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 2154,
        "linearizedBaseContracts": [
          2154
        ],
        "name": "StorageMockWithArrays",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 2135,
            "name": "my_public_uint256_dynarray",
            "nodeType": "VariableDeclaration",
            "scope": 2154,
            "src": "728:43:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
              "typeString": "uint256[]"
            },
            "typeName": {
              "baseType": {
                "id": 2133,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "728:7:16",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "id": 2134,
              "length": null,
              "nodeType": "ArrayTypeName",
              "src": "728:9:16",
              "typeDescriptions": {
                "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                "typeString": "uint256[]"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 2138,
            "name": "my_internal_string_dynarray",
            "nodeType": "VariableDeclaration",
            "scope": 2154,
            "src": "775:45:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_array$_t_string_storage_$dyn_storage",
              "typeString": "string[]"
            },
            "typeName": {
              "baseType": {
                "id": 2136,
                "name": "string",
                "nodeType": "ElementaryTypeName",
                "src": "775:6:16",
                "typeDescriptions": {
                  "typeIdentifier": "t_string_storage_ptr",
                  "typeString": "string"
                }
              },
              "id": 2137,
              "length": null,
              "nodeType": "ArrayTypeName",
              "src": "775:8:16",
              "typeDescriptions": {
                "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr",
                "typeString": "string[]"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 2141,
            "name": "my_private_address_dynarray",
            "nodeType": "VariableDeclaration",
            "scope": 2154,
            "src": "824:45:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_array$_t_address_$dyn_storage",
              "typeString": "address[]"
            },
            "typeName": {
              "baseType": {
                "id": 2139,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "824:7:16",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                }
              },
              "id": 2140,
              "length": null,
              "nodeType": "ArrayTypeName",
              "src": "824:9:16",
              "typeDescriptions": {
                "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                "typeString": "address[]"
              }
            },
            "value": null,
            "visibility": "private"
          },
          {
            "constant": false,
            "id": 2145,
            "name": "my_public_int8_staticarray",
            "nodeType": "VariableDeclaration",
            "scope": 2154,
            "src": "873:42:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_array$_t_int8_$10_storage",
              "typeString": "int8[10]"
            },
            "typeName": {
              "baseType": {
                "id": 2142,
                "name": "int8",
                "nodeType": "ElementaryTypeName",
                "src": "873:4:16",
                "typeDescriptions": {
                  "typeIdentifier": "t_int8",
                  "typeString": "int8"
                }
              },
              "id": 2144,
              "length": {
                "argumentTypes": null,
                "hexValue": "3130",
                "id": 2143,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "kind": "number",
                "lValueRequested": false,
                "nodeType": "Literal",
                "src": "878:2:16",
                "subdenomination": null,
                "typeDescriptions": {
                  "typeIdentifier": null,
                  "typeString": null
                },
                "value": "10"
              },
              "nodeType": "ArrayTypeName",
              "src": "873:8:16",
              "typeDescriptions": {
                "typeIdentifier": "t_array$_t_int8_$10_storage_ptr",
                "typeString": "int8[10]"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 2149,
            "name": "my_internal_bool_staticarray",
            "nodeType": "VariableDeclaration",
            "scope": 2154,
            "src": "919:46:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_array$_t_bool_$20_storage",
              "typeString": "bool[20]"
            },
            "typeName": {
              "baseType": {
                "id": 2146,
                "name": "bool",
                "nodeType": "ElementaryTypeName",
                "src": "919:4:16",
                "typeDescriptions": {
                  "typeIdentifier": "t_bool",
                  "typeString": "bool"
                }
              },
              "id": 2148,
              "length": {
                "argumentTypes": null,
                "hexValue": "3230",
                "id": 2147,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "kind": "number",
                "lValueRequested": false,
                "nodeType": "Literal",
                "src": "924:2:16",
                "subdenomination": null,
                "typeDescriptions": {
                  "typeIdentifier": null,
                  "typeString": null
                },
                "value": "20"
              },
              "nodeType": "ArrayTypeName",
              "src": "919:8:16",
              "typeDescriptions": {
                "typeIdentifier": "t_array$_t_bool_$20_storage_ptr",
                "typeString": "bool[20]"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 2153,
            "name": "my_private_uint_staticarray",
            "nodeType": "VariableDeclaration",
            "scope": 2154,
            "src": "969:44:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_array$_t_uint256_$30_storage",
              "typeString": "uint256[30]"
            },
            "typeName": {
              "baseType": {
                "id": 2150,
                "name": "uint",
                "nodeType": "ElementaryTypeName",
                "src": "969:4:16",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "id": 2152,
              "length": {
                "argumentTypes": null,
                "hexValue": "3330",
                "id": 2151,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "kind": "number",
                "lValueRequested": false,
                "nodeType": "Literal",
                "src": "974:2:16",
                "subdenomination": null,
                "typeDescriptions": {
                  "typeIdentifier": null,
                  "typeString": null
                },
                "value": "30"
              },
              "nodeType": "ArrayTypeName",
              "src": "969:8:16",
              "typeDescriptions": {
                "typeIdentifier": "t_array$_t_uint256_$30_storage_ptr",
                "typeString": "uint256[30]"
              }
            },
            "value": null,
            "visibility": "private"
          }
        ],
        "scope": 2300,
        "src": "693:323:16"
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 2170,
        "linearizedBaseContracts": [
          2170
        ],
        "name": "StorageMockWithMappings",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 2158,
            "name": "my_mapping",
            "nodeType": "VariableDeclaration",
            "scope": 2170,
            "src": "1055:44:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$",
              "typeString": "mapping(uint256 => string)"
            },
            "typeName": {
              "id": 2157,
              "keyType": {
                "id": 2155,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "1063:7:16",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "nodeType": "Mapping",
              "src": "1055:26:16",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$",
                "typeString": "mapping(uint256 => string)"
              },
              "valueType": {
                "id": 2156,
                "name": "string",
                "nodeType": "ElementaryTypeName",
                "src": "1074:6:16",
                "typeDescriptions": {
                  "typeIdentifier": "t_string_storage_ptr",
                  "typeString": "string"
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 2164,
            "name": "my_nested_mapping",
            "nodeType": "VariableDeclaration",
            "scope": 2170,
            "src": "1103:73:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_string_memory_$_t_address_$_$",
              "typeString": "mapping(uint256 => mapping(string => address))"
            },
            "typeName": {
              "id": 2163,
              "keyType": {
                "id": 2159,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "1111:7:16",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "nodeType": "Mapping",
              "src": "1103:46:16",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_string_memory_$_t_address_$_$",
                "typeString": "mapping(uint256 => mapping(string => address))"
              },
              "valueType": {
                "id": 2162,
                "keyType": {
                  "id": 2160,
                  "name": "string",
                  "nodeType": "ElementaryTypeName",
                  "src": "1130:6:16",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_storage_ptr",
                    "typeString": "string"
                  }
                },
                "nodeType": "Mapping",
                "src": "1122:26:16",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_string_memory_$_t_address_$",
                  "typeString": "mapping(string => address)"
                },
                "valueType": {
                  "id": 2161,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "1140:7:16",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                }
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 2169,
            "name": "my_mapping_with_arrays",
            "nodeType": "VariableDeclaration",
            "scope": 2170,
            "src": "1180:57:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_uint256_$_t_array$_t_bool_$dyn_storage_$",
              "typeString": "mapping(uint256 => bool[])"
            },
            "typeName": {
              "id": 2168,
              "keyType": {
                "id": 2165,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "1188:7:16",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "nodeType": "Mapping",
              "src": "1180:26:16",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_uint256_$_t_array$_t_bool_$dyn_storage_$",
                "typeString": "mapping(uint256 => bool[])"
              },
              "valueType": {
                "baseType": {
                  "id": 2166,
                  "name": "bool",
                  "nodeType": "ElementaryTypeName",
                  "src": "1199:4:16",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  }
                },
                "id": 2167,
                "length": null,
                "nodeType": "ArrayTypeName",
                "src": "1199:6:16",
                "typeDescriptions": {
                  "typeIdentifier": "t_array$_t_bool_$dyn_storage_ptr",
                  "typeString": "bool[]"
                }
              }
            },
            "value": null,
            "visibility": "private"
          }
        ],
        "scope": 2300,
        "src": "1018:222:16"
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 2204,
        "linearizedBaseContracts": [
          2204
        ],
        "name": "StorageMockWithFunctions",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 2176,
            "name": "my_fun",
            "nodeType": "VariableDeclaration",
            "scope": 2204,
            "src": "1280:30:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$",
              "typeString": "function (uint256)"
            },
            "typeName": {
              "id": 2175,
              "isDeclaredConst": false,
              "nodeType": "FunctionTypeName",
              "parameterTypes": {
                "id": 2173,
                "nodeType": "ParameterList",
                "parameters": [
                  {
                    "constant": false,
                    "id": 2172,
                    "name": "",
                    "nodeType": "VariableDeclaration",
                    "scope": 2204,
                    "src": "1289:4:16",
                    "stateVariable": false,
                    "storageLocation": "default",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "typeName": {
                      "id": 2171,
                      "name": "uint",
                      "nodeType": "ElementaryTypeName",
                      "src": "1289:4:16",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "value": null,
                    "visibility": "internal"
                  }
                ],
                "src": "1288:6:16"
              },
              "payable": false,
              "returnParameterTypes": {
                "id": 2174,
                "nodeType": "ParameterList",
                "parameters": [],
                "src": "1304:0:16"
              },
              "src": "1280:30:16",
              "stateMutability": "nonpayable",
              "typeDescriptions": {
                "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$",
                "typeString": "function (uint256)"
              },
              "visibility": "internal"
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 2185,
            "name": "my_fun_dynarray",
            "nodeType": "VariableDeclaration",
            "scope": 2204,
            "src": "1314:51:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_array$_t_function_internal_nonpayable$_t_string_storage_ptr_$_t_string_storage_ptr_$returns$__$_$dyn_storage",
              "typeString": "function (string,string)[]"
            },
            "typeName": {
              "baseType": {
                "id": 2183,
                "isDeclaredConst": false,
                "nodeType": "FunctionTypeName",
                "parameterTypes": {
                  "id": 2181,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 2178,
                      "name": "",
                      "nodeType": "VariableDeclaration",
                      "scope": 2204,
                      "src": "1323:6:16",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage_ptr",
                        "typeString": "string"
                      },
                      "typeName": {
                        "id": 2177,
                        "name": "string",
                        "nodeType": "ElementaryTypeName",
                        "src": "1323:6:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_storage_ptr",
                          "typeString": "string"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 2180,
                      "name": "",
                      "nodeType": "VariableDeclaration",
                      "scope": 2204,
                      "src": "1331:6:16",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage_ptr",
                        "typeString": "string"
                      },
                      "typeName": {
                        "id": 2179,
                        "name": "string",
                        "nodeType": "ElementaryTypeName",
                        "src": "1331:6:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_storage_ptr",
                          "typeString": "string"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "1322:16:16"
                },
                "payable": false,
                "returnParameterTypes": {
                  "id": 2182,
                  "nodeType": "ParameterList",
                  "parameters": [],
                  "src": "1338:0:16"
                },
                "src": "1314:25:16",
                "stateMutability": "nonpayable",
                "typeDescriptions": {
                  "typeIdentifier": "t_function_internal_nonpayable$_t_string_storage_ptr_$_t_string_storage_ptr_$returns$__$",
                  "typeString": "function (string,string)"
                },
                "visibility": "internal"
              },
              "id": 2184,
              "length": null,
              "nodeType": "ArrayTypeName",
              "src": "1314:26:16",
              "typeDescriptions": {
                "typeIdentifier": "t_array$_t_function_internal_nonpayable$_t_string_storage_ptr_$_t_string_storage_ptr_$returns$__$_$dyn_storage_ptr",
                "typeString": "function (string,string)[]"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 2195,
            "name": "my_fun_staticarray",
            "nodeType": "VariableDeclaration",
            "scope": 2204,
            "src": "1369:64:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_array$_t_function_internal_nonpayable$_t_uint256_$returns$_t_address_$_$10_storage",
              "typeString": "function (uint256) returns (address)[10]"
            },
            "typeName": {
              "baseType": {
                "id": 2192,
                "isDeclaredConst": false,
                "nodeType": "FunctionTypeName",
                "parameterTypes": {
                  "id": 2188,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 2187,
                      "name": "",
                      "nodeType": "VariableDeclaration",
                      "scope": 2204,
                      "src": "1378:4:16",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2186,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "1378:4:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "1377:6:16"
                },
                "payable": false,
                "returnParameterTypes": {
                  "id": 2191,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 2190,
                      "name": "",
                      "nodeType": "VariableDeclaration",
                      "scope": 2204,
                      "src": "1393:7:16",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 2189,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "1393:7:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "1392:9:16"
                },
                "src": "1369:33:16",
                "stateMutability": "nonpayable",
                "typeDescriptions": {
                  "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$_t_address_$",
                  "typeString": "function (uint256) returns (address)"
                },
                "visibility": "internal"
              },
              "id": 2194,
              "length": {
                "argumentTypes": null,
                "hexValue": "3130",
                "id": 2193,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "kind": "number",
                "lValueRequested": false,
                "nodeType": "Literal",
                "src": "1402:2:16",
                "subdenomination": null,
                "typeDescriptions": {
                  "typeIdentifier": null,
                  "typeString": null
                },
                "value": "10"
              },
              "nodeType": "ArrayTypeName",
              "src": "1369:36:16",
              "typeDescriptions": {
                "typeIdentifier": "t_array$_t_function_internal_nonpayable$_t_uint256_$returns$_t_address_$_$10_storage_ptr",
                "typeString": "function (uint256) returns (address)[10]"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 2203,
            "name": "my_fun_mapping",
            "nodeType": "VariableDeclaration",
            "scope": 2204,
            "src": "1437:58:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_uint256_$_t_function_internal_nonpayable$_t_bool_$returns$__$_$",
              "typeString": "mapping(uint256 => function (bool))"
            },
            "typeName": {
              "id": 2202,
              "keyType": {
                "id": 2196,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "1445:7:16",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "nodeType": "Mapping",
              "src": "1437:34:16",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_uint256_$_t_function_internal_nonpayable$_t_bool_$returns$__$_$",
                "typeString": "mapping(uint256 => function (bool))"
              },
              "valueType": {
                "id": 2201,
                "isDeclaredConst": false,
                "nodeType": "FunctionTypeName",
                "parameterTypes": {
                  "id": 2199,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 2198,
                      "name": "",
                      "nodeType": "VariableDeclaration",
                      "scope": 2204,
                      "src": "1465:4:16",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "typeName": {
                        "id": 2197,
                        "name": "bool",
                        "nodeType": "ElementaryTypeName",
                        "src": "1465:4:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "1464:6:16"
                },
                "payable": false,
                "returnParameterTypes": {
                  "id": 2200,
                  "nodeType": "ParameterList",
                  "parameters": [],
                  "src": "1470:0:16"
                },
                "src": "1456:15:16",
                "stateMutability": "nonpayable",
                "typeDescriptions": {
                  "typeIdentifier": "t_function_internal_nonpayable$_t_bool_$returns$__$",
                  "typeString": "function (bool)"
                },
                "visibility": "internal"
              }
            },
            "value": null,
            "visibility": "internal"
          }
        ],
        "scope": 2300,
        "src": "1242:256:16"
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 2229,
        "linearizedBaseContracts": [
          2229
        ],
        "name": "StorageMockWithContracts",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 2206,
            "name": "my_contract",
            "nodeType": "VariableDeclaration",
            "scope": 2229,
            "src": "1538:36:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_SimpleStorageMock_$2115",
              "typeString": "contract SimpleStorageMock"
            },
            "typeName": {
              "contractScope": null,
              "id": 2205,
              "name": "SimpleStorageMock",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 2115,
              "src": "1538:17:16",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_SimpleStorageMock_$2115",
                "typeString": "contract SimpleStorageMock"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 2209,
            "name": "my_contract_dynarray",
            "nodeType": "VariableDeclaration",
            "scope": 2229,
            "src": "1578:48:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_array$_t_contract$_SimpleStorageMock_$2115_$dyn_storage",
              "typeString": "contract SimpleStorageMock[]"
            },
            "typeName": {
              "baseType": {
                "contractScope": null,
                "id": 2207,
                "name": "SimpleStorageMock",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 2115,
                "src": "1578:17:16",
                "typeDescriptions": {
                  "typeIdentifier": "t_contract$_SimpleStorageMock_$2115",
                  "typeString": "contract SimpleStorageMock"
                }
              },
              "id": 2208,
              "length": null,
              "nodeType": "ArrayTypeName",
              "src": "1578:19:16",
              "typeDescriptions": {
                "typeIdentifier": "t_array$_t_contract$_SimpleStorageMock_$2115_$dyn_storage_ptr",
                "typeString": "contract SimpleStorageMock[]"
              }
            },
            "value": null,
            "visibility": "private"
          },
          {
            "constant": false,
            "id": 2213,
            "name": "my_contract_staticarray",
            "nodeType": "VariableDeclaration",
            "scope": 2229,
            "src": "1630:54:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_array$_t_contract$_SimpleStorageMock_$2115_$10_storage",
              "typeString": "contract SimpleStorageMock[10]"
            },
            "typeName": {
              "baseType": {
                "contractScope": null,
                "id": 2210,
                "name": "SimpleStorageMock",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 2115,
                "src": "1630:17:16",
                "typeDescriptions": {
                  "typeIdentifier": "t_contract$_SimpleStorageMock_$2115",
                  "typeString": "contract SimpleStorageMock"
                }
              },
              "id": 2212,
              "length": {
                "argumentTypes": null,
                "hexValue": "3130",
                "id": 2211,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "kind": "number",
                "lValueRequested": false,
                "nodeType": "Literal",
                "src": "1648:2:16",
                "subdenomination": null,
                "typeDescriptions": {
                  "typeIdentifier": null,
                  "typeString": null
                },
                "value": "10"
              },
              "nodeType": "ArrayTypeName",
              "src": "1630:21:16",
              "typeDescriptions": {
                "typeIdentifier": "t_array$_t_contract$_SimpleStorageMock_$2115_$10_storage_ptr",
                "typeString": "contract SimpleStorageMock[10]"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 2217,
            "name": "my_contract_mapping",
            "nodeType": "VariableDeclaration",
            "scope": 2229,
            "src": "1688:65:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_uint256_$_t_contract$_SimpleStorageMock_$2115_$",
              "typeString": "mapping(uint256 => contract SimpleStorageMock)"
            },
            "typeName": {
              "id": 2216,
              "keyType": {
                "id": 2214,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "1696:7:16",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "nodeType": "Mapping",
              "src": "1688:37:16",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_uint256_$_t_contract$_SimpleStorageMock_$2115_$",
                "typeString": "mapping(uint256 => contract SimpleStorageMock)"
              },
              "valueType": {
                "contractScope": null,
                "id": 2215,
                "name": "SimpleStorageMock",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 2115,
                "src": "1707:17:16",
                "typeDescriptions": {
                  "typeIdentifier": "t_contract$_SimpleStorageMock_$2115",
                  "typeString": "contract SimpleStorageMock"
                }
              }
            },
            "value": null,
            "visibility": "private"
          },
          {
            "constant": false,
            "id": 2222,
            "name": "my_contract_dynarray_mapping",
            "nodeType": "VariableDeclaration",
            "scope": 2229,
            "src": "1757:76:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_uint256_$_t_array$_t_contract$_SimpleStorageMock_$2115_$dyn_storage_$",
              "typeString": "mapping(uint256 => contract SimpleStorageMock[])"
            },
            "typeName": {
              "id": 2221,
              "keyType": {
                "id": 2218,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "1765:7:16",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "nodeType": "Mapping",
              "src": "1757:39:16",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_uint256_$_t_array$_t_contract$_SimpleStorageMock_$2115_$dyn_storage_$",
                "typeString": "mapping(uint256 => contract SimpleStorageMock[])"
              },
              "valueType": {
                "baseType": {
                  "contractScope": null,
                  "id": 2219,
                  "name": "SimpleStorageMock",
                  "nodeType": "UserDefinedTypeName",
                  "referencedDeclaration": 2115,
                  "src": "1776:17:16",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_SimpleStorageMock_$2115",
                    "typeString": "contract SimpleStorageMock"
                  }
                },
                "id": 2220,
                "length": null,
                "nodeType": "ArrayTypeName",
                "src": "1776:19:16",
                "typeDescriptions": {
                  "typeIdentifier": "t_array$_t_contract$_SimpleStorageMock_$2115_$dyn_storage_ptr",
                  "typeString": "contract SimpleStorageMock[]"
                }
              }
            },
            "value": null,
            "visibility": "private"
          },
          {
            "constant": false,
            "id": 2228,
            "name": "my_contract_staticarray_mapping",
            "nodeType": "VariableDeclaration",
            "scope": 2229,
            "src": "1837:81:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_uint256_$_t_array$_t_contract$_SimpleStorageMock_$2115_$10_storage_$",
              "typeString": "mapping(uint256 => contract SimpleStorageMock[10])"
            },
            "typeName": {
              "id": 2227,
              "keyType": {
                "id": 2223,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "1845:7:16",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "nodeType": "Mapping",
              "src": "1837:41:16",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_uint256_$_t_array$_t_contract$_SimpleStorageMock_$2115_$10_storage_$",
                "typeString": "mapping(uint256 => contract SimpleStorageMock[10])"
              },
              "valueType": {
                "baseType": {
                  "contractScope": null,
                  "id": 2224,
                  "name": "SimpleStorageMock",
                  "nodeType": "UserDefinedTypeName",
                  "referencedDeclaration": 2115,
                  "src": "1856:17:16",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_SimpleStorageMock_$2115",
                    "typeString": "contract SimpleStorageMock"
                  }
                },
                "id": 2226,
                "length": {
                  "argumentTypes": null,
                  "hexValue": "3130",
                  "id": 2225,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": false,
                  "kind": "number",
                  "lValueRequested": false,
                  "nodeType": "Literal",
                  "src": "1874:2:16",
                  "subdenomination": null,
                  "typeDescriptions": {
                    "typeIdentifier": null,
                    "typeString": null
                  },
                  "value": "10"
                },
                "nodeType": "ArrayTypeName",
                "src": "1856:21:16",
                "typeDescriptions": {
                  "typeIdentifier": "t_array$_t_contract$_SimpleStorageMock_$2115_$10_storage_ptr",
                  "typeString": "contract SimpleStorageMock[10]"
                }
              }
            },
            "value": null,
            "visibility": "private"
          }
        ],
        "scope": 2300,
        "src": "1500:421:16"
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 2250,
        "linearizedBaseContracts": [
          2250
        ],
        "name": "StorageMockWithStructs",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "canonicalName": "StorageMockWithStructs.MyStruct",
            "id": 2236,
            "members": [
              {
                "constant": false,
                "id": 2231,
                "name": "struct_uint256",
                "nodeType": "VariableDeclaration",
                "scope": 2236,
                "src": "1981:22:16",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 2230,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "1981:7:16",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 2233,
                "name": "struct_string",
                "nodeType": "VariableDeclaration",
                "scope": 2236,
                "src": "2009:20:16",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_string_storage_ptr",
                  "typeString": "string"
                },
                "typeName": {
                  "id": 2232,
                  "name": "string",
                  "nodeType": "ElementaryTypeName",
                  "src": "2009:6:16",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_storage_ptr",
                    "typeString": "string"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 2235,
                "name": "struct_address",
                "nodeType": "VariableDeclaration",
                "scope": 2236,
                "src": "2035:22:16",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 2234,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "2035:7:16",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "MyStruct",
            "nodeType": "StructDefinition",
            "scope": 2250,
            "src": "1959:103:16",
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 2238,
            "name": "my_struct",
            "nodeType": "VariableDeclaration",
            "scope": 2250,
            "src": "2068:27:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_struct$_MyStruct_$2236_storage",
              "typeString": "struct StorageMockWithStructs.MyStruct"
            },
            "typeName": {
              "contractScope": null,
              "id": 2237,
              "name": "MyStruct",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 2236,
              "src": "2068:8:16",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_MyStruct_$2236_storage_ptr",
                "typeString": "struct StorageMockWithStructs.MyStruct"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 2241,
            "name": "my_struct_dynarray",
            "nodeType": "VariableDeclaration",
            "scope": 2250,
            "src": "2099:37:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_array$_t_struct$_MyStruct_$2236_storage_$dyn_storage",
              "typeString": "struct StorageMockWithStructs.MyStruct[]"
            },
            "typeName": {
              "baseType": {
                "contractScope": null,
                "id": 2239,
                "name": "MyStruct",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 2236,
                "src": "2099:8:16",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_MyStruct_$2236_storage_ptr",
                  "typeString": "struct StorageMockWithStructs.MyStruct"
                }
              },
              "id": 2240,
              "length": null,
              "nodeType": "ArrayTypeName",
              "src": "2099:10:16",
              "typeDescriptions": {
                "typeIdentifier": "t_array$_t_struct$_MyStruct_$2236_storage_$dyn_storage_ptr",
                "typeString": "struct StorageMockWithStructs.MyStruct[]"
              }
            },
            "value": null,
            "visibility": "private"
          },
          {
            "constant": false,
            "id": 2245,
            "name": "my_struct_staticarray",
            "nodeType": "VariableDeclaration",
            "scope": 2250,
            "src": "2140:43:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_array$_t_struct$_MyStruct_$2236_storage_$10_storage",
              "typeString": "struct StorageMockWithStructs.MyStruct[10]"
            },
            "typeName": {
              "baseType": {
                "contractScope": null,
                "id": 2242,
                "name": "MyStruct",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 2236,
                "src": "2140:8:16",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_MyStruct_$2236_storage_ptr",
                  "typeString": "struct StorageMockWithStructs.MyStruct"
                }
              },
              "id": 2244,
              "length": {
                "argumentTypes": null,
                "hexValue": "3130",
                "id": 2243,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "kind": "number",
                "lValueRequested": false,
                "nodeType": "Literal",
                "src": "2149:2:16",
                "subdenomination": null,
                "typeDescriptions": {
                  "typeIdentifier": null,
                  "typeString": null
                },
                "value": "10"
              },
              "nodeType": "ArrayTypeName",
              "src": "2140:12:16",
              "typeDescriptions": {
                "typeIdentifier": "t_array$_t_struct$_MyStruct_$2236_storage_$10_storage_ptr",
                "typeString": "struct StorageMockWithStructs.MyStruct[10]"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 2249,
            "name": "my_struct_mapping",
            "nodeType": "VariableDeclaration",
            "scope": 2250,
            "src": "2187:54:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_MyStruct_$2236_storage_$",
              "typeString": "mapping(uint256 => struct StorageMockWithStructs.MyStruct)"
            },
            "typeName": {
              "id": 2248,
              "keyType": {
                "id": 2246,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "2195:7:16",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "nodeType": "Mapping",
              "src": "2187:28:16",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_MyStruct_$2236_storage_$",
                "typeString": "mapping(uint256 => struct StorageMockWithStructs.MyStruct)"
              },
              "valueType": {
                "contractScope": null,
                "id": 2247,
                "name": "MyStruct",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 2236,
                "src": "2206:8:16",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_MyStruct_$2236_storage_ptr",
                  "typeString": "struct StorageMockWithStructs.MyStruct"
                }
              }
            },
            "value": null,
            "visibility": "private"
          }
        ],
        "scope": 2300,
        "src": "1923:321:16"
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 2267,
        "linearizedBaseContracts": [
          2267
        ],
        "name": "StorageMockWithEnums",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "canonicalName": "StorageMockWithEnums.MyEnum",
            "id": 2253,
            "members": [
              {
                "id": 2251,
                "name": "State1",
                "nodeType": "EnumValue",
                "src": "2294:6:16"
              },
              {
                "id": 2252,
                "name": "State2",
                "nodeType": "EnumValue",
                "src": "2302:6:16"
              }
            ],
            "name": "MyEnum",
            "nodeType": "EnumDefinition",
            "src": "2280:30:16"
          },
          {
            "constant": false,
            "id": 2255,
            "name": "my_enum",
            "nodeType": "VariableDeclaration",
            "scope": 2267,
            "src": "2315:21:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_enum$_MyEnum_$2253",
              "typeString": "enum StorageMockWithEnums.MyEnum"
            },
            "typeName": {
              "contractScope": null,
              "id": 2254,
              "name": "MyEnum",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 2253,
              "src": "2315:6:16",
              "typeDescriptions": {
                "typeIdentifier": "t_enum$_MyEnum_$2253",
                "typeString": "enum StorageMockWithEnums.MyEnum"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 2258,
            "name": "my_enum_dynarray",
            "nodeType": "VariableDeclaration",
            "scope": 2267,
            "src": "2340:34:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_array$_t_enum$_MyEnum_$2253_$dyn_storage",
              "typeString": "enum StorageMockWithEnums.MyEnum[]"
            },
            "typeName": {
              "baseType": {
                "contractScope": null,
                "id": 2256,
                "name": "MyEnum",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 2253,
                "src": "2340:6:16",
                "typeDescriptions": {
                  "typeIdentifier": "t_enum$_MyEnum_$2253",
                  "typeString": "enum StorageMockWithEnums.MyEnum"
                }
              },
              "id": 2257,
              "length": null,
              "nodeType": "ArrayTypeName",
              "src": "2340:8:16",
              "typeDescriptions": {
                "typeIdentifier": "t_array$_t_enum$_MyEnum_$2253_$dyn_storage_ptr",
                "typeString": "enum StorageMockWithEnums.MyEnum[]"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 2262,
            "name": "my_enum_staticarray",
            "nodeType": "VariableDeclaration",
            "scope": 2267,
            "src": "2378:39:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_array$_t_enum$_MyEnum_$2253_$10_storage",
              "typeString": "enum StorageMockWithEnums.MyEnum[10]"
            },
            "typeName": {
              "baseType": {
                "contractScope": null,
                "id": 2259,
                "name": "MyEnum",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 2253,
                "src": "2378:6:16",
                "typeDescriptions": {
                  "typeIdentifier": "t_enum$_MyEnum_$2253",
                  "typeString": "enum StorageMockWithEnums.MyEnum"
                }
              },
              "id": 2261,
              "length": {
                "argumentTypes": null,
                "hexValue": "3130",
                "id": 2260,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "kind": "number",
                "lValueRequested": false,
                "nodeType": "Literal",
                "src": "2385:2:16",
                "subdenomination": null,
                "typeDescriptions": {
                  "typeIdentifier": null,
                  "typeString": null
                },
                "value": "10"
              },
              "nodeType": "ArrayTypeName",
              "src": "2378:10:16",
              "typeDescriptions": {
                "typeIdentifier": "t_array$_t_enum$_MyEnum_$2253_$10_storage_ptr",
                "typeString": "enum StorageMockWithEnums.MyEnum[10]"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 2266,
            "name": "my_enum_mapping",
            "nodeType": "VariableDeclaration",
            "scope": 2267,
            "src": "2421:50:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_uint256_$_t_enum$_MyEnum_$2253_$",
              "typeString": "mapping(uint256 => enum StorageMockWithEnums.MyEnum)"
            },
            "typeName": {
              "id": 2265,
              "keyType": {
                "id": 2263,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "2429:7:16",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "nodeType": "Mapping",
              "src": "2421:26:16",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_uint256_$_t_enum$_MyEnum_$2253_$",
                "typeString": "mapping(uint256 => enum StorageMockWithEnums.MyEnum)"
              },
              "valueType": {
                "contractScope": null,
                "id": 2264,
                "name": "MyEnum",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 2253,
                "src": "2440:6:16",
                "typeDescriptions": {
                  "typeIdentifier": "t_enum$_MyEnum_$2253",
                  "typeString": "enum StorageMockWithEnums.MyEnum"
                }
              }
            },
            "value": null,
            "visibility": "private"
          }
        ],
        "scope": 2300,
        "src": "2246:228:16"
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 2282,
        "linearizedBaseContracts": [
          2282
        ],
        "name": "StorageMockWithComplexStructs",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "canonicalName": "StorageMockWithComplexStructs.MyStruct",
            "id": 2277,
            "members": [
              {
                "constant": false,
                "id": 2270,
                "name": "uint256_dynarray",
                "nodeType": "VariableDeclaration",
                "scope": 2277,
                "src": "2541:26:16",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                  "typeString": "uint256[]"
                },
                "typeName": {
                  "baseType": {
                    "id": 2268,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2541:7:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2269,
                  "length": null,
                  "nodeType": "ArrayTypeName",
                  "src": "2541:9:16",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                    "typeString": "uint256[]"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 2274,
                "name": "mapping_enums",
                "nodeType": "VariableDeclaration",
                "scope": 2277,
                "src": "2573:60:16",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_string_memory_$_t_enum$_MyEnum_$2253_$",
                  "typeString": "mapping(string => enum StorageMockWithEnums.MyEnum)"
                },
                "typeName": {
                  "id": 2273,
                  "keyType": {
                    "id": 2271,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "2581:6:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "nodeType": "Mapping",
                  "src": "2573:46:16",
                  "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_string_memory_$_t_enum$_MyEnum_$2253_$",
                    "typeString": "mapping(string => enum StorageMockWithEnums.MyEnum)"
                  },
                  "valueType": {
                    "contractScope": null,
                    "id": 2272,
                    "name": "StorageMockWithEnums.MyEnum",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 2253,
                    "src": "2591:27:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_MyEnum_$2253",
                      "typeString": "enum StorageMockWithEnums.MyEnum"
                    }
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 2276,
                "name": "other_struct",
                "nodeType": "VariableDeclaration",
                "scope": 2277,
                "src": "2639:44:16",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_MyStruct_$2236_storage_ptr",
                  "typeString": "struct StorageMockWithStructs.MyStruct"
                },
                "typeName": {
                  "contractScope": null,
                  "id": 2275,
                  "name": "StorageMockWithStructs.MyStruct",
                  "nodeType": "UserDefinedTypeName",
                  "referencedDeclaration": 2236,
                  "src": "2639:31:16",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_MyStruct_$2236_storage_ptr",
                    "typeString": "struct StorageMockWithStructs.MyStruct"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "MyStruct",
            "nodeType": "StructDefinition",
            "scope": 2282,
            "src": "2519:169:16",
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 2279,
            "name": "my_struct",
            "nodeType": "VariableDeclaration",
            "scope": 2282,
            "src": "2692:27:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_struct$_MyStruct_$2277_storage",
              "typeString": "struct StorageMockWithComplexStructs.MyStruct"
            },
            "typeName": {
              "contractScope": null,
              "id": 2278,
              "name": "MyStruct",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 2277,
              "src": "2692:8:16",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_MyStruct_$2277_storage_ptr",
                "typeString": "struct StorageMockWithComplexStructs.MyStruct"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 2281,
            "name": "my_other_struct",
            "nodeType": "VariableDeclaration",
            "scope": 2282,
            "src": "2723:56:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_struct$_MyStruct_$2236_storage",
              "typeString": "struct StorageMockWithStructs.MyStruct"
            },
            "typeName": {
              "contractScope": null,
              "id": 2280,
              "name": "StorageMockWithStructs.MyStruct",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 2236,
              "src": "2723:31:16",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_MyStruct_$2236_storage_ptr",
                "typeString": "struct StorageMockWithStructs.MyStruct"
              }
            },
            "value": null,
            "visibility": "internal"
          }
        ],
        "scope": 2300,
        "src": "2476:306:16"
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 2292,
        "linearizedBaseContracts": [
          2292
        ],
        "name": "StorageMockWithRecursiveStructs",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "canonicalName": "StorageMockWithRecursiveStructs.MyStruct",
            "id": 2286,
            "members": [
              {
                "constant": false,
                "id": 2285,
                "name": "other_structs",
                "nodeType": "VariableDeclaration",
                "scope": 2286,
                "src": "2851:27:16",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_array$_t_struct$_OtherStruct_$2289_storage_$dyn_storage_ptr",
                  "typeString": "struct StorageMockWithRecursiveStructs.OtherStruct[]"
                },
                "typeName": {
                  "baseType": {
                    "contractScope": null,
                    "id": 2283,
                    "name": "OtherStruct",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 2289,
                    "src": "2851:11:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_OtherStruct_$2289_storage_ptr",
                      "typeString": "struct StorageMockWithRecursiveStructs.OtherStruct"
                    }
                  },
                  "id": 2284,
                  "length": null,
                  "nodeType": "ArrayTypeName",
                  "src": "2851:13:16",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_struct$_OtherStruct_$2289_storage_$dyn_storage_ptr",
                    "typeString": "struct StorageMockWithRecursiveStructs.OtherStruct[]"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "MyStruct",
            "nodeType": "StructDefinition",
            "scope": 2292,
            "src": "2829:54:16",
            "visibility": "public"
          },
          {
            "canonicalName": "StorageMockWithRecursiveStructs.OtherStruct",
            "id": 2289,
            "members": [
              {
                "constant": false,
                "id": 2288,
                "name": "my_struct",
                "nodeType": "VariableDeclaration",
                "scope": 2289,
                "src": "2912:18:16",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_MyStruct_$2286_storage_ptr",
                  "typeString": "struct StorageMockWithRecursiveStructs.MyStruct"
                },
                "typeName": {
                  "contractScope": null,
                  "id": 2287,
                  "name": "MyStruct",
                  "nodeType": "UserDefinedTypeName",
                  "referencedDeclaration": 2286,
                  "src": "2912:8:16",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_MyStruct_$2286_storage_ptr",
                    "typeString": "struct StorageMockWithRecursiveStructs.MyStruct"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "OtherStruct",
            "nodeType": "StructDefinition",
            "scope": 2292,
            "src": "2887:48:16",
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 2291,
            "name": "my_struct",
            "nodeType": "VariableDeclaration",
            "scope": 2292,
            "src": "2939:27:16",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_struct$_MyStruct_$2286_storage",
              "typeString": "struct StorageMockWithRecursiveStructs.MyStruct"
            },
            "typeName": {
              "contractScope": null,
              "id": 2290,
              "name": "MyStruct",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 2286,
              "src": "2939:8:16",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_MyStruct_$2286_storage_ptr",
                "typeString": "struct StorageMockWithRecursiveStructs.MyStruct"
              }
            },
            "value": null,
            "visibility": "internal"
          }
        ],
        "scope": 2300,
        "src": "2784:185:16"
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 2293,
              "name": "StorageMockWithStructs",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 2250,
              "src": "3000:22:16",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_StorageMockWithStructs_$2250",
                "typeString": "contract StorageMockWithStructs"
              }
            },
            "id": 2294,
            "nodeType": "InheritanceSpecifier",
            "src": "3000:22:16"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 2295,
              "name": "StorageMockWithEnums",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 2267,
              "src": "3024:20:16",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_StorageMockWithEnums_$2267",
                "typeString": "contract StorageMockWithEnums"
              }
            },
            "id": 2296,
            "nodeType": "InheritanceSpecifier",
            "src": "3024:20:16"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 2297,
              "name": "SimpleStorageMock",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 2115,
              "src": "3046:17:16",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_SimpleStorageMock_$2115",
                "typeString": "contract SimpleStorageMock"
              }
            },
            "id": 2298,
            "nodeType": "InheritanceSpecifier",
            "src": "3046:17:16"
          }
        ],
        "contractDependencies": [
          2115,
          2250,
          2267
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 2299,
        "linearizedBaseContracts": [
          2299,
          2115,
          2267,
          2250
        ],
        "name": "StorageMockMixed",
        "nodeType": "ContractDefinition",
        "nodes": [],
        "scope": 2300,
        "src": "2971:96:16"
      }
    ],
    "src": "0:3068:16"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.24+commit.e67f0147.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "2.0.1",
  "updatedAt": "2019-02-15T10:15:15.393Z"
}