{
  "contractName": "LibMap2_bytes4_address_bytes",
  "abi": [],
  "metadata": "{\"compiler\":{\"version\":\"0.6.6+commit.6c089d02\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"solstruct/contracts/libs/LibMap2.bytes4.address.bytes.sol\":\"LibMap2_bytes4_address_bytes\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"solstruct/contracts/libs/LibMap2.bytes4.address.bytes.sol\":{\"keccak256\":\"0x471645d4b20cc36606122fc6bb692cdf8489118547f90bde2740cb73b1e64d54\",\"urls\":[\"bzz-raw://7ca824c03cd077e6d9630eaa4755787c785a61f612cb8e3ba13d0ce92ee55738\",\"dweb:/ipfs/QmdavtXDokZ7vWZt8pMxPi7DaG3Hd1Q5MyeJjXGRFQuL9r\"]},\"solstruct/contracts/libs/LibSet.bytes4.sol\":{\"keccak256\":\"0xdec5833ab65ae8cab500b84424dde49c1f7817c6575e1631a729fc88c6d4bd7f\",\"urls\":[\"bzz-raw://2e5d23b8383819e6dd77ea61ed30740bcba45b0fff609922b11d1cae2b0223f1\",\"dweb:/ipfs/QmQ27sefXEYXBUSEGdPkuzCqemtUJzNXhhsyd7kB94w6CE\"]}},\"version\":1}",
  "bytecode": "0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212202387a1372eb4334a01547a748802a107ea53f61953fee9baec6354cce008cc7b64736f6c63430006060033",
  "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212202387a1372eb4334a01547a748802a107ea53f61953fee9baec6354cce008cc7b64736f6c63430006060033",
  "immutableReferences": {},
  "sourceMap": "63:1908:81:-:0;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24",
  "deployedSourceMap": "63:1908:81:-:0;;;;;;12:1:-1;9;2:12",
  "source": "pragma solidity >0.5.0 <0.7.0;\n\nimport './LibSet.bytes4.sol';\n\nlibrary LibMap2_bytes4_address_bytes\n{\n\tusing LibSet_bytes4 for LibSet_bytes4.set;\n\n\tstruct map\n\t{\n\t\tLibSet_bytes4.set keyset;\n\t\tmapping(bytes4 => address) values1;\n\t\tmapping(bytes4 => bytes) values2;\n\t}\n\n\tfunction length(map storage _map)\n\tinternal view returns (uint256)\n\t{\n\t\treturn _map.keyset.length();\n\t}\n\n\tfunction value1(map storage _map, bytes4  _key)\n\tinternal view returns (address )\n\t{\n\t\treturn _map.values1[_key];\n\t}\n\n\tfunction value2(map storage _map, bytes4  _key)\n\tinternal view returns (bytes memory)\n\t{\n\t\treturn _map.values2[_key];\n\t}\n\n\tfunction keyAt(map storage _map, uint256 _index)\n\tinternal view returns (bytes4 )\n\t{\n\t\treturn _map.keyset.at(_index);\n\t}\n\n\tfunction at(map storage _map, uint256 _index)\n\tinternal view returns (bytes4 , address , bytes memory)\n\t{\n\t\tbytes4  key = keyAt(_map, _index);\n\t\treturn (key, value1(_map, key), value2(_map, key));\n\t}\n\n\tfunction indexOf(map storage _map, bytes4  _key)\n\tinternal view returns (uint256)\n\t{\n\t\treturn _map.keyset.indexOf(_key);\n\t}\n\n\tfunction contains(map storage _map, bytes4  _key)\n\tinternal view returns (bool)\n\t{\n\t\treturn _map.keyset.contains(_key);\n\t}\n\n\tfunction keys(map storage _map)\n\tinternal view returns (bytes4[] memory)\n\t{\n\t\treturn _map.keyset.content();\n\t}\n\n\tfunction set(\n\t\tmap storage _map,\n\t\tbytes4  _key,\n\t\taddress  _value1,\n\t\tbytes memory _value2)\n\tinternal returns (bool)\n\t{\n\t\t_map.keyset.add(_key);\n\t\t_map.values1[_key] = _value1;\n\t\t_map.values2[_key] = _value2;\n\t\treturn true;\n\t}\n\n\tfunction del(map storage _map, bytes4  _key)\n\tinternal returns (bool)\n\t{\n\t\t_map.keyset.remove(_key);\n\t\tdelete _map.values1[_key];\n\t\tdelete _map.values2[_key];\n\t\treturn true;\n\t}\n\n\tfunction clear(map storage _map)\n\tinternal returns (bool)\n\t{\n\t\tfor (uint256 i = _map.keyset.length(); i > 0; --i)\n\t\t{\n\t\t\tbytes4  key = keyAt(_map, i);\n\t\t\tdelete _map.values1[key];\n\t\t\tdelete _map.values2[key];\n\t\t}\n\t\t_map.keyset.clear();\n\t\treturn true;\n\t}\n}\n",
  "sourcePath": "solstruct/contracts/libs/LibMap2.bytes4.address.bytes.sol",
  "ast": {
    "absolutePath": "solstruct/contracts/libs/LibMap2.bytes4.address.bytes.sol",
    "exportedSymbols": {
      "LibMap2_bytes4_address_bytes": [
        13718
      ]
    },
    "id": 13719,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 13442,
        "literals": [
          "solidity",
          ">",
          "0.5",
          ".0",
          "<",
          "0.7",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:30:81"
      },
      {
        "absolutePath": "solstruct/contracts/libs/LibSet.bytes4.sol",
        "file": "./LibSet.bytes4.sol",
        "id": 13443,
        "nodeType": "ImportDirective",
        "scope": 13719,
        "sourceUnit": 13965,
        "src": "32:29:81",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "abstract": false,
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "library",
        "documentation": null,
        "fullyImplemented": true,
        "id": 13718,
        "linearizedBaseContracts": [
          13718
        ],
        "name": "LibMap2_bytes4_address_bytes",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "id": 13446,
            "libraryName": {
              "contractScope": null,
              "id": 13444,
              "name": "LibSet_bytes4",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 13964,
              "src": "109:13:81",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_LibSet_bytes4_$13964",
                "typeString": "library LibSet_bytes4"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "103:42:81",
            "typeName": {
              "contractScope": null,
              "id": 13445,
              "name": "LibSet_bytes4.set",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 13728,
              "src": "127:17:81",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_set_$13728_storage_ptr",
                "typeString": "struct LibSet_bytes4.set"
              }
            }
          },
          {
            "canonicalName": "LibMap2_bytes4_address_bytes.map",
            "id": 13457,
            "members": [
              {
                "constant": false,
                "id": 13448,
                "mutability": "mutable",
                "name": "keyset",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 13457,
                "src": "164:24:81",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_set_$13728_storage_ptr",
                  "typeString": "struct LibSet_bytes4.set"
                },
                "typeName": {
                  "contractScope": null,
                  "id": 13447,
                  "name": "LibSet_bytes4.set",
                  "nodeType": "UserDefinedTypeName",
                  "referencedDeclaration": 13728,
                  "src": "164:17:81",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_set_$13728_storage_ptr",
                    "typeString": "struct LibSet_bytes4.set"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 13452,
                "mutability": "mutable",
                "name": "values1",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 13457,
                "src": "192:34:81",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_bytes4_$_t_address_$",
                  "typeString": "mapping(bytes4 => address)"
                },
                "typeName": {
                  "id": 13451,
                  "keyType": {
                    "id": 13449,
                    "name": "bytes4",
                    "nodeType": "ElementaryTypeName",
                    "src": "200:6:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "nodeType": "Mapping",
                  "src": "192:26:81",
                  "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_bytes4_$_t_address_$",
                    "typeString": "mapping(bytes4 => address)"
                  },
                  "valueType": {
                    "id": 13450,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "210:7:81",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 13456,
                "mutability": "mutable",
                "name": "values2",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 13457,
                "src": "230:32:81",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$",
                  "typeString": "mapping(bytes4 => bytes)"
                },
                "typeName": {
                  "id": 13455,
                  "keyType": {
                    "id": 13453,
                    "name": "bytes4",
                    "nodeType": "ElementaryTypeName",
                    "src": "238:6:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "nodeType": "Mapping",
                  "src": "230:24:81",
                  "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$",
                    "typeString": "mapping(bytes4 => bytes)"
                  },
                  "valueType": {
                    "id": 13454,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "248:5:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "map",
            "nodeType": "StructDefinition",
            "scope": 13718,
            "src": "148:118:81",
            "visibility": "public"
          },
          {
            "body": {
              "id": 13469,
              "nodeType": "Block",
              "src": "337:35:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 13464,
                          "name": "_map",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 13459,
                          "src": "348:4:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                            "typeString": "struct LibMap2_bytes4_address_bytes.map storage pointer"
                          }
                        },
                        "id": 13465,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "keyset",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 13448,
                        "src": "348:11:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_set_$13728_storage",
                          "typeString": "struct LibSet_bytes4.set storage ref"
                        }
                      },
                      "id": 13466,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 13740,
                      "src": "348:18:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_struct$_set_$13728_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_set_$13728_storage_ptr_$",
                        "typeString": "function (struct LibSet_bytes4.set storage pointer) view returns (uint256)"
                      }
                    },
                    "id": 13467,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "348:20:81",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 13463,
                  "id": 13468,
                  "nodeType": "Return",
                  "src": "341:27:81"
                }
              ]
            },
            "documentation": null,
            "id": 13470,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "length",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 13460,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13459,
                  "mutability": "mutable",
                  "name": "_map",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13470,
                  "src": "285:16:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                    "typeString": "struct LibMap2_bytes4_address_bytes.map"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 13458,
                    "name": "map",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 13457,
                    "src": "285:3:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                      "typeString": "struct LibMap2_bytes4_address_bytes.map"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "284:18:81"
            },
            "returnParameters": {
              "id": 13463,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13462,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13470,
                  "src": "327:7:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 13461,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "327:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "326:9:81"
            },
            "scope": 13718,
            "src": "269:103:81",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 13484,
              "nodeType": "Block",
              "src": "458:33:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 13479,
                        "name": "_map",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 13472,
                        "src": "469:4:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                          "typeString": "struct LibMap2_bytes4_address_bytes.map storage pointer"
                        }
                      },
                      "id": 13480,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "values1",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 13452,
                      "src": "469:12:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes4_$_t_address_$",
                        "typeString": "mapping(bytes4 => address)"
                      }
                    },
                    "id": 13482,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 13481,
                      "name": "_key",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13474,
                      "src": "482:4:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes4",
                        "typeString": "bytes4"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "469:18:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 13478,
                  "id": 13483,
                  "nodeType": "Return",
                  "src": "462:25:81"
                }
              ]
            },
            "documentation": null,
            "id": 13485,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "value1",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 13475,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13472,
                  "mutability": "mutable",
                  "name": "_map",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13485,
                  "src": "391:16:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                    "typeString": "struct LibMap2_bytes4_address_bytes.map"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 13471,
                    "name": "map",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 13457,
                    "src": "391:3:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                      "typeString": "struct LibMap2_bytes4_address_bytes.map"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 13474,
                  "mutability": "mutable",
                  "name": "_key",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13485,
                  "src": "409:12:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes4",
                    "typeString": "bytes4"
                  },
                  "typeName": {
                    "id": 13473,
                    "name": "bytes4",
                    "nodeType": "ElementaryTypeName",
                    "src": "409:6:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "390:32:81"
            },
            "returnParameters": {
              "id": 13478,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13477,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13485,
                  "src": "447:7:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 13476,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "447:7:81",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "446:10:81"
            },
            "scope": 13718,
            "src": "375:116:81",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 13499,
              "nodeType": "Block",
              "src": "581:33:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 13494,
                        "name": "_map",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 13487,
                        "src": "592:4:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                          "typeString": "struct LibMap2_bytes4_address_bytes.map storage pointer"
                        }
                      },
                      "id": 13495,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "values2",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 13456,
                      "src": "592:12:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$",
                        "typeString": "mapping(bytes4 => bytes storage ref)"
                      }
                    },
                    "id": 13497,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 13496,
                      "name": "_key",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13489,
                      "src": "605:4:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes4",
                        "typeString": "bytes4"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "592:18:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage",
                      "typeString": "bytes storage ref"
                    }
                  },
                  "functionReturnParameters": 13493,
                  "id": 13498,
                  "nodeType": "Return",
                  "src": "585:25:81"
                }
              ]
            },
            "documentation": null,
            "id": 13500,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "value2",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 13490,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13487,
                  "mutability": "mutable",
                  "name": "_map",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13500,
                  "src": "510:16:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                    "typeString": "struct LibMap2_bytes4_address_bytes.map"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 13486,
                    "name": "map",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 13457,
                    "src": "510:3:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                      "typeString": "struct LibMap2_bytes4_address_bytes.map"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 13489,
                  "mutability": "mutable",
                  "name": "_key",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13500,
                  "src": "528:12:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes4",
                    "typeString": "bytes4"
                  },
                  "typeName": {
                    "id": 13488,
                    "name": "bytes4",
                    "nodeType": "ElementaryTypeName",
                    "src": "528:6:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "509:32:81"
            },
            "returnParameters": {
              "id": 13493,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13492,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13500,
                  "src": "566:12:81",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 13491,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "566:5:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "565:14:81"
            },
            "scope": 13718,
            "src": "494:120:81",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 13515,
              "nodeType": "Block",
              "src": "700:37:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 13512,
                        "name": "_index",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 13504,
                        "src": "726:6:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 13509,
                          "name": "_map",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 13502,
                          "src": "711:4:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                            "typeString": "struct LibMap2_bytes4_address_bytes.map storage pointer"
                          }
                        },
                        "id": 13510,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "keyset",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 13448,
                        "src": "711:11:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_set_$13728_storage",
                          "typeString": "struct LibSet_bytes4.set storage ref"
                        }
                      },
                      "id": 13511,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "at",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 13757,
                      "src": "711:14:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_struct$_set_$13728_storage_ptr_$_t_uint256_$returns$_t_bytes4_$bound_to$_t_struct$_set_$13728_storage_ptr_$",
                        "typeString": "function (struct LibSet_bytes4.set storage pointer,uint256) view returns (bytes4)"
                      }
                    },
                    "id": 13513,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "711:22:81",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "functionReturnParameters": 13508,
                  "id": 13514,
                  "nodeType": "Return",
                  "src": "704:29:81"
                }
              ]
            },
            "documentation": null,
            "id": 13516,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "keyAt",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 13505,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13502,
                  "mutability": "mutable",
                  "name": "_map",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13516,
                  "src": "632:16:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                    "typeString": "struct LibMap2_bytes4_address_bytes.map"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 13501,
                    "name": "map",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 13457,
                    "src": "632:3:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                      "typeString": "struct LibMap2_bytes4_address_bytes.map"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 13504,
                  "mutability": "mutable",
                  "name": "_index",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13516,
                  "src": "650:14:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 13503,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "650:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "631:34:81"
            },
            "returnParameters": {
              "id": 13508,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13507,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13516,
                  "src": "690:6:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes4",
                    "typeString": "bytes4"
                  },
                  "typeName": {
                    "id": 13506,
                    "name": "bytes4",
                    "nodeType": "ElementaryTypeName",
                    "src": "690:6:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "689:9:81"
            },
            "scope": 13718,
            "src": "617:120:81",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 13547,
              "nodeType": "Block",
              "src": "844:95:81",
              "statements": [
                {
                  "assignments": [
                    13530
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 13530,
                      "mutability": "mutable",
                      "name": "key",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 13547,
                      "src": "848:11:81",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes4",
                        "typeString": "bytes4"
                      },
                      "typeName": {
                        "id": 13529,
                        "name": "bytes4",
                        "nodeType": "ElementaryTypeName",
                        "src": "848:6:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes4",
                          "typeString": "bytes4"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 13535,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 13532,
                        "name": "_map",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 13518,
                        "src": "868:4:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                          "typeString": "struct LibMap2_bytes4_address_bytes.map storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 13533,
                        "name": "_index",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 13520,
                        "src": "874:6:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                          "typeString": "struct LibMap2_bytes4_address_bytes.map storage pointer"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 13531,
                      "name": "keyAt",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13516,
                      "src": "862:5:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_struct$_map_$13457_storage_ptr_$_t_uint256_$returns$_t_bytes4_$",
                        "typeString": "function (struct LibMap2_bytes4_address_bytes.map storage pointer,uint256) view returns (bytes4)"
                      }
                    },
                    "id": 13534,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "862:19:81",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "848:33:81"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "components": [
                      {
                        "argumentTypes": null,
                        "id": 13536,
                        "name": "key",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 13530,
                        "src": "893:3:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes4",
                          "typeString": "bytes4"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 13538,
                            "name": "_map",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 13518,
                            "src": "905:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                              "typeString": "struct LibMap2_bytes4_address_bytes.map storage pointer"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 13539,
                            "name": "key",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 13530,
                            "src": "911:3:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                              "typeString": "struct LibMap2_bytes4_address_bytes.map storage pointer"
                            },
                            {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          ],
                          "id": 13537,
                          "name": "value1",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 13485,
                          "src": "898:6:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_struct$_map_$13457_storage_ptr_$_t_bytes4_$returns$_t_address_$",
                            "typeString": "function (struct LibMap2_bytes4_address_bytes.map storage pointer,bytes4) view returns (address)"
                          }
                        },
                        "id": 13540,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "898:17:81",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 13542,
                            "name": "_map",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 13518,
                            "src": "924:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                              "typeString": "struct LibMap2_bytes4_address_bytes.map storage pointer"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 13543,
                            "name": "key",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 13530,
                            "src": "930:3:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                              "typeString": "struct LibMap2_bytes4_address_bytes.map storage pointer"
                            },
                            {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          ],
                          "id": 13541,
                          "name": "value2",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 13500,
                          "src": "917:6:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_struct$_map_$13457_storage_ptr_$_t_bytes4_$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function (struct LibMap2_bytes4_address_bytes.map storage pointer,bytes4) view returns (bytes memory)"
                          }
                        },
                        "id": 13544,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "917:17:81",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "id": 13545,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "892:43:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_bytes4_$_t_address_$_t_bytes_memory_ptr_$",
                      "typeString": "tuple(bytes4,address,bytes memory)"
                    }
                  },
                  "functionReturnParameters": 13528,
                  "id": 13546,
                  "nodeType": "Return",
                  "src": "885:50:81"
                }
              ]
            },
            "documentation": null,
            "id": 13548,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "at",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 13521,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13518,
                  "mutability": "mutable",
                  "name": "_map",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13548,
                  "src": "752:16:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                    "typeString": "struct LibMap2_bytes4_address_bytes.map"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 13517,
                    "name": "map",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 13457,
                    "src": "752:3:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                      "typeString": "struct LibMap2_bytes4_address_bytes.map"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 13520,
                  "mutability": "mutable",
                  "name": "_index",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13548,
                  "src": "770:14:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 13519,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "770:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "751:34:81"
            },
            "returnParameters": {
              "id": 13528,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13523,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13548,
                  "src": "810:6:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes4",
                    "typeString": "bytes4"
                  },
                  "typeName": {
                    "id": 13522,
                    "name": "bytes4",
                    "nodeType": "ElementaryTypeName",
                    "src": "810:6:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 13525,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13548,
                  "src": "819:7:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 13524,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "819:7:81",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 13527,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13548,
                  "src": "829:12:81",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 13526,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "829:5:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "809:33:81"
            },
            "scope": 13718,
            "src": "740:199:81",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 13563,
              "nodeType": "Block",
              "src": "1025:40:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 13560,
                        "name": "_key",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 13552,
                        "src": "1056:4:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes4",
                          "typeString": "bytes4"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes4",
                          "typeString": "bytes4"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 13557,
                          "name": "_map",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 13550,
                          "src": "1036:4:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                            "typeString": "struct LibMap2_bytes4_address_bytes.map storage pointer"
                          }
                        },
                        "id": 13558,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "keyset",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 13448,
                        "src": "1036:11:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_set_$13728_storage",
                          "typeString": "struct LibSet_bytes4.set storage ref"
                        }
                      },
                      "id": 13559,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "indexOf",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 13772,
                      "src": "1036:19:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_struct$_set_$13728_storage_ptr_$_t_bytes4_$returns$_t_uint256_$bound_to$_t_struct$_set_$13728_storage_ptr_$",
                        "typeString": "function (struct LibSet_bytes4.set storage pointer,bytes4) view returns (uint256)"
                      }
                    },
                    "id": 13561,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1036:25:81",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 13556,
                  "id": 13562,
                  "nodeType": "Return",
                  "src": "1029:32:81"
                }
              ]
            },
            "documentation": null,
            "id": 13564,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "indexOf",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 13553,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13550,
                  "mutability": "mutable",
                  "name": "_map",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13564,
                  "src": "959:16:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                    "typeString": "struct LibMap2_bytes4_address_bytes.map"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 13549,
                    "name": "map",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 13457,
                    "src": "959:3:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                      "typeString": "struct LibMap2_bytes4_address_bytes.map"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 13552,
                  "mutability": "mutable",
                  "name": "_key",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13564,
                  "src": "977:12:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes4",
                    "typeString": "bytes4"
                  },
                  "typeName": {
                    "id": 13551,
                    "name": "bytes4",
                    "nodeType": "ElementaryTypeName",
                    "src": "977:6:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "958:32:81"
            },
            "returnParameters": {
              "id": 13556,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13555,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13564,
                  "src": "1015:7:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 13554,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1015:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1014:9:81"
            },
            "scope": 13718,
            "src": "942:123:81",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 13579,
              "nodeType": "Block",
              "src": "1149:41:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 13576,
                        "name": "_key",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 13568,
                        "src": "1181:4:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes4",
                          "typeString": "bytes4"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes4",
                          "typeString": "bytes4"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 13573,
                          "name": "_map",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 13566,
                          "src": "1160:4:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                            "typeString": "struct LibMap2_bytes4_address_bytes.map storage pointer"
                          }
                        },
                        "id": 13574,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "keyset",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 13448,
                        "src": "1160:11:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_set_$13728_storage",
                          "typeString": "struct LibSet_bytes4.set storage ref"
                        }
                      },
                      "id": 13575,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "contains",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 13789,
                      "src": "1160:20:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_struct$_set_$13728_storage_ptr_$_t_bytes4_$returns$_t_bool_$bound_to$_t_struct$_set_$13728_storage_ptr_$",
                        "typeString": "function (struct LibSet_bytes4.set storage pointer,bytes4) view returns (bool)"
                      }
                    },
                    "id": 13577,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1160:26:81",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 13572,
                  "id": 13578,
                  "nodeType": "Return",
                  "src": "1153:33:81"
                }
              ]
            },
            "documentation": null,
            "id": 13580,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "contains",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 13569,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13566,
                  "mutability": "mutable",
                  "name": "_map",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13580,
                  "src": "1086:16:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                    "typeString": "struct LibMap2_bytes4_address_bytes.map"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 13565,
                    "name": "map",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 13457,
                    "src": "1086:3:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                      "typeString": "struct LibMap2_bytes4_address_bytes.map"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 13568,
                  "mutability": "mutable",
                  "name": "_key",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13580,
                  "src": "1104:12:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes4",
                    "typeString": "bytes4"
                  },
                  "typeName": {
                    "id": 13567,
                    "name": "bytes4",
                    "nodeType": "ElementaryTypeName",
                    "src": "1104:6:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1085:32:81"
            },
            "returnParameters": {
              "id": 13572,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13571,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13580,
                  "src": "1142:4:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 13570,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1142:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1141:6:81"
            },
            "scope": 13718,
            "src": "1068:122:81",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 13593,
              "nodeType": "Block",
              "src": "1267:36:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 13588,
                          "name": "_map",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 13582,
                          "src": "1278:4:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                            "typeString": "struct LibMap2_bytes4_address_bytes.map storage pointer"
                          }
                        },
                        "id": 13589,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "keyset",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 13448,
                        "src": "1278:11:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_set_$13728_storage",
                          "typeString": "struct LibSet_bytes4.set storage ref"
                        }
                      },
                      "id": 13590,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "content",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 13801,
                      "src": "1278:19:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_struct$_set_$13728_storage_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$bound_to$_t_struct$_set_$13728_storage_ptr_$",
                        "typeString": "function (struct LibSet_bytes4.set storage pointer) view returns (bytes4[] memory)"
                      }
                    },
                    "id": 13591,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1278:21:81",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes4_$dyn_memory_ptr",
                      "typeString": "bytes4[] memory"
                    }
                  },
                  "functionReturnParameters": 13587,
                  "id": 13592,
                  "nodeType": "Return",
                  "src": "1271:28:81"
                }
              ]
            },
            "documentation": null,
            "id": 13594,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "keys",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 13583,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13582,
                  "mutability": "mutable",
                  "name": "_map",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13594,
                  "src": "1207:16:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                    "typeString": "struct LibMap2_bytes4_address_bytes.map"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 13581,
                    "name": "map",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 13457,
                    "src": "1207:3:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                      "typeString": "struct LibMap2_bytes4_address_bytes.map"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1206:18:81"
            },
            "returnParameters": {
              "id": 13587,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13586,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13594,
                  "src": "1249:15:81",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes4_$dyn_memory_ptr",
                    "typeString": "bytes4[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 13584,
                      "name": "bytes4",
                      "nodeType": "ElementaryTypeName",
                      "src": "1249:6:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes4",
                        "typeString": "bytes4"
                      }
                    },
                    "id": 13585,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "1249:8:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes4_$dyn_storage_ptr",
                      "typeString": "bytes4[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1248:17:81"
            },
            "scope": 13718,
            "src": "1193:110:81",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 13633,
              "nodeType": "Block",
              "src": "1426:108:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 13612,
                        "name": "_key",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 13598,
                        "src": "1446:4:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes4",
                          "typeString": "bytes4"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes4",
                          "typeString": "bytes4"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 13607,
                          "name": "_map",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 13596,
                          "src": "1430:4:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                            "typeString": "struct LibMap2_bytes4_address_bytes.map storage pointer"
                          }
                        },
                        "id": 13610,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "keyset",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 13448,
                        "src": "1430:11:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_set_$13728_storage",
                          "typeString": "struct LibSet_bytes4.set storage ref"
                        }
                      },
                      "id": 13611,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "add",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 13839,
                      "src": "1430:15:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_set_$13728_storage_ptr_$_t_bytes4_$returns$_t_bool_$bound_to$_t_struct$_set_$13728_storage_ptr_$",
                        "typeString": "function (struct LibSet_bytes4.set storage pointer,bytes4) returns (bool)"
                      }
                    },
                    "id": 13613,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1430:21:81",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 13614,
                  "nodeType": "ExpressionStatement",
                  "src": "1430:21:81"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 13621,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 13615,
                          "name": "_map",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 13596,
                          "src": "1455:4:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                            "typeString": "struct LibMap2_bytes4_address_bytes.map storage pointer"
                          }
                        },
                        "id": 13618,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "values1",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 13452,
                        "src": "1455:12:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes4_$_t_address_$",
                          "typeString": "mapping(bytes4 => address)"
                        }
                      },
                      "id": 13619,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 13617,
                        "name": "_key",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 13598,
                        "src": "1468:4:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes4",
                          "typeString": "bytes4"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "1455:18:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 13620,
                      "name": "_value1",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13600,
                      "src": "1476:7:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "1455:28:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 13622,
                  "nodeType": "ExpressionStatement",
                  "src": "1455:28:81"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 13629,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 13623,
                          "name": "_map",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 13596,
                          "src": "1487:4:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                            "typeString": "struct LibMap2_bytes4_address_bytes.map storage pointer"
                          }
                        },
                        "id": 13626,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "values2",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 13456,
                        "src": "1487:12:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$",
                          "typeString": "mapping(bytes4 => bytes storage ref)"
                        }
                      },
                      "id": 13627,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 13625,
                        "name": "_key",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 13598,
                        "src": "1500:4:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes4",
                          "typeString": "bytes4"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "1487:18:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_storage",
                        "typeString": "bytes storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 13628,
                      "name": "_value2",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13602,
                      "src": "1508:7:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_memory_ptr",
                        "typeString": "bytes memory"
                      }
                    },
                    "src": "1487:28:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage",
                      "typeString": "bytes storage ref"
                    }
                  },
                  "id": 13630,
                  "nodeType": "ExpressionStatement",
                  "src": "1487:28:81"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "74727565",
                    "id": 13631,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "1526:4:81",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "true"
                  },
                  "functionReturnParameters": 13606,
                  "id": 13632,
                  "nodeType": "Return",
                  "src": "1519:11:81"
                }
              ]
            },
            "documentation": null,
            "id": 13634,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "set",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 13603,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13596,
                  "mutability": "mutable",
                  "name": "_map",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13634,
                  "src": "1322:16:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                    "typeString": "struct LibMap2_bytes4_address_bytes.map"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 13595,
                    "name": "map",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 13457,
                    "src": "1322:3:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                      "typeString": "struct LibMap2_bytes4_address_bytes.map"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 13598,
                  "mutability": "mutable",
                  "name": "_key",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13634,
                  "src": "1342:12:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes4",
                    "typeString": "bytes4"
                  },
                  "typeName": {
                    "id": 13597,
                    "name": "bytes4",
                    "nodeType": "ElementaryTypeName",
                    "src": "1342:6:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 13600,
                  "mutability": "mutable",
                  "name": "_value1",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13634,
                  "src": "1358:16:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 13599,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1358:7:81",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 13602,
                  "mutability": "mutable",
                  "name": "_value2",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13634,
                  "src": "1378:20:81",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 13601,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "1378:5:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1318:81:81"
            },
            "returnParameters": {
              "id": 13606,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13605,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13634,
                  "src": "1419:4:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 13604,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1419:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1418:6:81"
            },
            "scope": 13718,
            "src": "1306:228:81",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 13665,
              "nodeType": "Block",
              "src": "1608:105:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 13648,
                        "name": "_key",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 13638,
                        "src": "1631:4:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes4",
                          "typeString": "bytes4"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes4",
                          "typeString": "bytes4"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 13643,
                          "name": "_map",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 13636,
                          "src": "1612:4:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                            "typeString": "struct LibMap2_bytes4_address_bytes.map storage pointer"
                          }
                        },
                        "id": 13646,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "keyset",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 13448,
                        "src": "1612:11:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_set_$13728_storage",
                          "typeString": "struct LibSet_bytes4.set storage ref"
                        }
                      },
                      "id": 13647,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "remove",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 13918,
                      "src": "1612:18:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_set_$13728_storage_ptr_$_t_bytes4_$returns$_t_bool_$bound_to$_t_struct$_set_$13728_storage_ptr_$",
                        "typeString": "function (struct LibSet_bytes4.set storage pointer,bytes4) returns (bool)"
                      }
                    },
                    "id": 13649,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1612:24:81",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 13650,
                  "nodeType": "ExpressionStatement",
                  "src": "1612:24:81"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 13655,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "delete",
                    "prefix": true,
                    "src": "1640:25:81",
                    "subExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 13651,
                          "name": "_map",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 13636,
                          "src": "1647:4:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                            "typeString": "struct LibMap2_bytes4_address_bytes.map storage pointer"
                          }
                        },
                        "id": 13652,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "values1",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 13452,
                        "src": "1647:12:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes4_$_t_address_$",
                          "typeString": "mapping(bytes4 => address)"
                        }
                      },
                      "id": 13654,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 13653,
                        "name": "_key",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 13638,
                        "src": "1660:4:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes4",
                          "typeString": "bytes4"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "1647:18:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 13656,
                  "nodeType": "ExpressionStatement",
                  "src": "1640:25:81"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 13661,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "delete",
                    "prefix": true,
                    "src": "1669:25:81",
                    "subExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 13657,
                          "name": "_map",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 13636,
                          "src": "1676:4:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                            "typeString": "struct LibMap2_bytes4_address_bytes.map storage pointer"
                          }
                        },
                        "id": 13658,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "values2",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 13456,
                        "src": "1676:12:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$",
                          "typeString": "mapping(bytes4 => bytes storage ref)"
                        }
                      },
                      "id": 13660,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 13659,
                        "name": "_key",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 13638,
                        "src": "1689:4:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes4",
                          "typeString": "bytes4"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "1676:18:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_storage",
                        "typeString": "bytes storage ref"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 13662,
                  "nodeType": "ExpressionStatement",
                  "src": "1669:25:81"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "74727565",
                    "id": 13663,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "1705:4:81",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "true"
                  },
                  "functionReturnParameters": 13642,
                  "id": 13664,
                  "nodeType": "Return",
                  "src": "1698:11:81"
                }
              ]
            },
            "documentation": null,
            "id": 13666,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "del",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 13639,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13636,
                  "mutability": "mutable",
                  "name": "_map",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13666,
                  "src": "1550:16:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                    "typeString": "struct LibMap2_bytes4_address_bytes.map"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 13635,
                    "name": "map",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 13457,
                    "src": "1550:3:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                      "typeString": "struct LibMap2_bytes4_address_bytes.map"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 13638,
                  "mutability": "mutable",
                  "name": "_key",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13666,
                  "src": "1568:12:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes4",
                    "typeString": "bytes4"
                  },
                  "typeName": {
                    "id": 13637,
                    "name": "bytes4",
                    "nodeType": "ElementaryTypeName",
                    "src": "1568:6:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1549:32:81"
            },
            "returnParameters": {
              "id": 13642,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13641,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13666,
                  "src": "1601:4:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 13640,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1601:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1600:6:81"
            },
            "scope": 13718,
            "src": "1537:176:81",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 13716,
              "nodeType": "Block",
              "src": "1775:194:81",
              "statements": [
                {
                  "body": {
                    "id": 13705,
                    "nodeType": "Block",
                    "src": "1832:96:81",
                    "statements": [
                      {
                        "assignments": [
                          13687
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 13687,
                            "mutability": "mutable",
                            "name": "key",
                            "nodeType": "VariableDeclaration",
                            "overrides": null,
                            "scope": 13705,
                            "src": "1837:11:81",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            },
                            "typeName": {
                              "id": 13686,
                              "name": "bytes4",
                              "nodeType": "ElementaryTypeName",
                              "src": "1837:6:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes4",
                                "typeString": "bytes4"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 13692,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 13689,
                              "name": "_map",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 13668,
                              "src": "1857:4:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                                "typeString": "struct LibMap2_bytes4_address_bytes.map storage pointer"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 13690,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 13674,
                              "src": "1863:1:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                                "typeString": "struct LibMap2_bytes4_address_bytes.map storage pointer"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 13688,
                            "name": "keyAt",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 13516,
                            "src": "1851:5:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_struct$_map_$13457_storage_ptr_$_t_uint256_$returns$_t_bytes4_$",
                              "typeString": "function (struct LibMap2_bytes4_address_bytes.map storage pointer,uint256) view returns (bytes4)"
                            }
                          },
                          "id": 13691,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1851:14:81",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes4",
                            "typeString": "bytes4"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "1837:28:81"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 13697,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "delete",
                          "prefix": true,
                          "src": "1870:24:81",
                          "subExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 13693,
                                "name": "_map",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 13668,
                                "src": "1877:4:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                                  "typeString": "struct LibMap2_bytes4_address_bytes.map storage pointer"
                                }
                              },
                              "id": 13694,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "values1",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 13452,
                              "src": "1877:12:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes4_$_t_address_$",
                                "typeString": "mapping(bytes4 => address)"
                              }
                            },
                            "id": 13696,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 13695,
                              "name": "key",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 13687,
                              "src": "1890:3:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes4",
                                "typeString": "bytes4"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "1877:17:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 13698,
                        "nodeType": "ExpressionStatement",
                        "src": "1870:24:81"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 13703,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "delete",
                          "prefix": true,
                          "src": "1899:24:81",
                          "subExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 13699,
                                "name": "_map",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 13668,
                                "src": "1906:4:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                                  "typeString": "struct LibMap2_bytes4_address_bytes.map storage pointer"
                                }
                              },
                              "id": 13700,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "values2",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 13456,
                              "src": "1906:12:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$",
                                "typeString": "mapping(bytes4 => bytes storage ref)"
                              }
                            },
                            "id": 13702,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 13701,
                              "name": "key",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 13687,
                              "src": "1919:3:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes4",
                                "typeString": "bytes4"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "1906:17:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_storage",
                              "typeString": "bytes storage ref"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 13704,
                        "nodeType": "ExpressionStatement",
                        "src": "1899:24:81"
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 13682,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 13680,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13674,
                      "src": "1818:1:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 13681,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "1822:1:81",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "1818:5:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 13706,
                  "initializationExpression": {
                    "assignments": [
                      13674
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 13674,
                        "mutability": "mutable",
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 13706,
                        "src": "1784:9:81",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 13673,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1784:7:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 13679,
                    "initialValue": {
                      "argumentTypes": null,
                      "arguments": [],
                      "expression": {
                        "argumentTypes": [],
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 13675,
                            "name": "_map",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 13668,
                            "src": "1796:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                              "typeString": "struct LibMap2_bytes4_address_bytes.map storage pointer"
                            }
                          },
                          "id": 13676,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "keyset",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 13448,
                          "src": "1796:11:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_set_$13728_storage",
                            "typeString": "struct LibSet_bytes4.set storage ref"
                          }
                        },
                        "id": 13677,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "length",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 13740,
                        "src": "1796:18:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_set_$13728_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_set_$13728_storage_ptr_$",
                          "typeString": "function (struct LibSet_bytes4.set storage pointer) view returns (uint256)"
                        }
                      },
                      "id": 13678,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1796:20:81",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "1784:32:81"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 13684,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "--",
                      "prefix": true,
                      "src": "1825:3:81",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 13683,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 13674,
                        "src": "1827:1:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 13685,
                    "nodeType": "ExpressionStatement",
                    "src": "1825:3:81"
                  },
                  "nodeType": "ForStatement",
                  "src": "1779:149:81"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 13707,
                          "name": "_map",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 13668,
                          "src": "1931:4:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                            "typeString": "struct LibMap2_bytes4_address_bytes.map storage pointer"
                          }
                        },
                        "id": 13710,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "keyset",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 13448,
                        "src": "1931:11:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_set_$13728_storage",
                          "typeString": "struct LibSet_bytes4.set storage ref"
                        }
                      },
                      "id": 13711,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "clear",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 13963,
                      "src": "1931:17:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_set_$13728_storage_ptr_$returns$_t_bool_$bound_to$_t_struct$_set_$13728_storage_ptr_$",
                        "typeString": "function (struct LibSet_bytes4.set storage pointer) returns (bool)"
                      }
                    },
                    "id": 13712,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1931:19:81",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 13713,
                  "nodeType": "ExpressionStatement",
                  "src": "1931:19:81"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "74727565",
                    "id": 13714,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "1961:4:81",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "true"
                  },
                  "functionReturnParameters": 13672,
                  "id": 13715,
                  "nodeType": "Return",
                  "src": "1954:11:81"
                }
              ]
            },
            "documentation": null,
            "id": 13717,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "clear",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 13669,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13668,
                  "mutability": "mutable",
                  "name": "_map",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13717,
                  "src": "1731:16:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                    "typeString": "struct LibMap2_bytes4_address_bytes.map"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 13667,
                    "name": "map",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 13457,
                    "src": "1731:3:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                      "typeString": "struct LibMap2_bytes4_address_bytes.map"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1730:18:81"
            },
            "returnParameters": {
              "id": 13672,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13671,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13717,
                  "src": "1768:4:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 13670,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1768:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1767:6:81"
            },
            "scope": 13718,
            "src": "1716:253:81",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          }
        ],
        "scope": 13719,
        "src": "63:1908:81"
      }
    ],
    "src": "0:1972:81"
  },
  "legacyAST": {
    "absolutePath": "solstruct/contracts/libs/LibMap2.bytes4.address.bytes.sol",
    "exportedSymbols": {
      "LibMap2_bytes4_address_bytes": [
        13718
      ]
    },
    "id": 13719,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 13442,
        "literals": [
          "solidity",
          ">",
          "0.5",
          ".0",
          "<",
          "0.7",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:30:81"
      },
      {
        "absolutePath": "solstruct/contracts/libs/LibSet.bytes4.sol",
        "file": "./LibSet.bytes4.sol",
        "id": 13443,
        "nodeType": "ImportDirective",
        "scope": 13719,
        "sourceUnit": 13965,
        "src": "32:29:81",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "abstract": false,
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "library",
        "documentation": null,
        "fullyImplemented": true,
        "id": 13718,
        "linearizedBaseContracts": [
          13718
        ],
        "name": "LibMap2_bytes4_address_bytes",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "id": 13446,
            "libraryName": {
              "contractScope": null,
              "id": 13444,
              "name": "LibSet_bytes4",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 13964,
              "src": "109:13:81",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_LibSet_bytes4_$13964",
                "typeString": "library LibSet_bytes4"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "103:42:81",
            "typeName": {
              "contractScope": null,
              "id": 13445,
              "name": "LibSet_bytes4.set",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 13728,
              "src": "127:17:81",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_set_$13728_storage_ptr",
                "typeString": "struct LibSet_bytes4.set"
              }
            }
          },
          {
            "canonicalName": "LibMap2_bytes4_address_bytes.map",
            "id": 13457,
            "members": [
              {
                "constant": false,
                "id": 13448,
                "mutability": "mutable",
                "name": "keyset",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 13457,
                "src": "164:24:81",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_set_$13728_storage_ptr",
                  "typeString": "struct LibSet_bytes4.set"
                },
                "typeName": {
                  "contractScope": null,
                  "id": 13447,
                  "name": "LibSet_bytes4.set",
                  "nodeType": "UserDefinedTypeName",
                  "referencedDeclaration": 13728,
                  "src": "164:17:81",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_set_$13728_storage_ptr",
                    "typeString": "struct LibSet_bytes4.set"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 13452,
                "mutability": "mutable",
                "name": "values1",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 13457,
                "src": "192:34:81",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_bytes4_$_t_address_$",
                  "typeString": "mapping(bytes4 => address)"
                },
                "typeName": {
                  "id": 13451,
                  "keyType": {
                    "id": 13449,
                    "name": "bytes4",
                    "nodeType": "ElementaryTypeName",
                    "src": "200:6:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "nodeType": "Mapping",
                  "src": "192:26:81",
                  "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_bytes4_$_t_address_$",
                    "typeString": "mapping(bytes4 => address)"
                  },
                  "valueType": {
                    "id": 13450,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "210:7:81",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 13456,
                "mutability": "mutable",
                "name": "values2",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 13457,
                "src": "230:32:81",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$",
                  "typeString": "mapping(bytes4 => bytes)"
                },
                "typeName": {
                  "id": 13455,
                  "keyType": {
                    "id": 13453,
                    "name": "bytes4",
                    "nodeType": "ElementaryTypeName",
                    "src": "238:6:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "nodeType": "Mapping",
                  "src": "230:24:81",
                  "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$",
                    "typeString": "mapping(bytes4 => bytes)"
                  },
                  "valueType": {
                    "id": 13454,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "248:5:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "map",
            "nodeType": "StructDefinition",
            "scope": 13718,
            "src": "148:118:81",
            "visibility": "public"
          },
          {
            "body": {
              "id": 13469,
              "nodeType": "Block",
              "src": "337:35:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 13464,
                          "name": "_map",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 13459,
                          "src": "348:4:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                            "typeString": "struct LibMap2_bytes4_address_bytes.map storage pointer"
                          }
                        },
                        "id": 13465,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "keyset",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 13448,
                        "src": "348:11:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_set_$13728_storage",
                          "typeString": "struct LibSet_bytes4.set storage ref"
                        }
                      },
                      "id": 13466,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 13740,
                      "src": "348:18:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_struct$_set_$13728_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_set_$13728_storage_ptr_$",
                        "typeString": "function (struct LibSet_bytes4.set storage pointer) view returns (uint256)"
                      }
                    },
                    "id": 13467,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "348:20:81",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 13463,
                  "id": 13468,
                  "nodeType": "Return",
                  "src": "341:27:81"
                }
              ]
            },
            "documentation": null,
            "id": 13470,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "length",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 13460,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13459,
                  "mutability": "mutable",
                  "name": "_map",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13470,
                  "src": "285:16:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                    "typeString": "struct LibMap2_bytes4_address_bytes.map"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 13458,
                    "name": "map",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 13457,
                    "src": "285:3:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                      "typeString": "struct LibMap2_bytes4_address_bytes.map"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "284:18:81"
            },
            "returnParameters": {
              "id": 13463,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13462,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13470,
                  "src": "327:7:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 13461,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "327:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "326:9:81"
            },
            "scope": 13718,
            "src": "269:103:81",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 13484,
              "nodeType": "Block",
              "src": "458:33:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 13479,
                        "name": "_map",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 13472,
                        "src": "469:4:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                          "typeString": "struct LibMap2_bytes4_address_bytes.map storage pointer"
                        }
                      },
                      "id": 13480,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "values1",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 13452,
                      "src": "469:12:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes4_$_t_address_$",
                        "typeString": "mapping(bytes4 => address)"
                      }
                    },
                    "id": 13482,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 13481,
                      "name": "_key",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13474,
                      "src": "482:4:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes4",
                        "typeString": "bytes4"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "469:18:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 13478,
                  "id": 13483,
                  "nodeType": "Return",
                  "src": "462:25:81"
                }
              ]
            },
            "documentation": null,
            "id": 13485,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "value1",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 13475,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13472,
                  "mutability": "mutable",
                  "name": "_map",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13485,
                  "src": "391:16:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                    "typeString": "struct LibMap2_bytes4_address_bytes.map"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 13471,
                    "name": "map",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 13457,
                    "src": "391:3:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                      "typeString": "struct LibMap2_bytes4_address_bytes.map"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 13474,
                  "mutability": "mutable",
                  "name": "_key",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13485,
                  "src": "409:12:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes4",
                    "typeString": "bytes4"
                  },
                  "typeName": {
                    "id": 13473,
                    "name": "bytes4",
                    "nodeType": "ElementaryTypeName",
                    "src": "409:6:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "390:32:81"
            },
            "returnParameters": {
              "id": 13478,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13477,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13485,
                  "src": "447:7:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 13476,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "447:7:81",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "446:10:81"
            },
            "scope": 13718,
            "src": "375:116:81",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 13499,
              "nodeType": "Block",
              "src": "581:33:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 13494,
                        "name": "_map",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 13487,
                        "src": "592:4:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                          "typeString": "struct LibMap2_bytes4_address_bytes.map storage pointer"
                        }
                      },
                      "id": 13495,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "values2",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 13456,
                      "src": "592:12:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$",
                        "typeString": "mapping(bytes4 => bytes storage ref)"
                      }
                    },
                    "id": 13497,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 13496,
                      "name": "_key",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13489,
                      "src": "605:4:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes4",
                        "typeString": "bytes4"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "592:18:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage",
                      "typeString": "bytes storage ref"
                    }
                  },
                  "functionReturnParameters": 13493,
                  "id": 13498,
                  "nodeType": "Return",
                  "src": "585:25:81"
                }
              ]
            },
            "documentation": null,
            "id": 13500,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "value2",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 13490,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13487,
                  "mutability": "mutable",
                  "name": "_map",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13500,
                  "src": "510:16:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                    "typeString": "struct LibMap2_bytes4_address_bytes.map"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 13486,
                    "name": "map",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 13457,
                    "src": "510:3:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                      "typeString": "struct LibMap2_bytes4_address_bytes.map"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 13489,
                  "mutability": "mutable",
                  "name": "_key",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13500,
                  "src": "528:12:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes4",
                    "typeString": "bytes4"
                  },
                  "typeName": {
                    "id": 13488,
                    "name": "bytes4",
                    "nodeType": "ElementaryTypeName",
                    "src": "528:6:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "509:32:81"
            },
            "returnParameters": {
              "id": 13493,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13492,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13500,
                  "src": "566:12:81",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 13491,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "566:5:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "565:14:81"
            },
            "scope": 13718,
            "src": "494:120:81",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 13515,
              "nodeType": "Block",
              "src": "700:37:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 13512,
                        "name": "_index",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 13504,
                        "src": "726:6:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 13509,
                          "name": "_map",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 13502,
                          "src": "711:4:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                            "typeString": "struct LibMap2_bytes4_address_bytes.map storage pointer"
                          }
                        },
                        "id": 13510,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "keyset",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 13448,
                        "src": "711:11:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_set_$13728_storage",
                          "typeString": "struct LibSet_bytes4.set storage ref"
                        }
                      },
                      "id": 13511,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "at",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 13757,
                      "src": "711:14:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_struct$_set_$13728_storage_ptr_$_t_uint256_$returns$_t_bytes4_$bound_to$_t_struct$_set_$13728_storage_ptr_$",
                        "typeString": "function (struct LibSet_bytes4.set storage pointer,uint256) view returns (bytes4)"
                      }
                    },
                    "id": 13513,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "711:22:81",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "functionReturnParameters": 13508,
                  "id": 13514,
                  "nodeType": "Return",
                  "src": "704:29:81"
                }
              ]
            },
            "documentation": null,
            "id": 13516,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "keyAt",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 13505,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13502,
                  "mutability": "mutable",
                  "name": "_map",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13516,
                  "src": "632:16:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                    "typeString": "struct LibMap2_bytes4_address_bytes.map"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 13501,
                    "name": "map",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 13457,
                    "src": "632:3:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                      "typeString": "struct LibMap2_bytes4_address_bytes.map"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 13504,
                  "mutability": "mutable",
                  "name": "_index",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13516,
                  "src": "650:14:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 13503,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "650:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "631:34:81"
            },
            "returnParameters": {
              "id": 13508,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13507,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13516,
                  "src": "690:6:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes4",
                    "typeString": "bytes4"
                  },
                  "typeName": {
                    "id": 13506,
                    "name": "bytes4",
                    "nodeType": "ElementaryTypeName",
                    "src": "690:6:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "689:9:81"
            },
            "scope": 13718,
            "src": "617:120:81",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 13547,
              "nodeType": "Block",
              "src": "844:95:81",
              "statements": [
                {
                  "assignments": [
                    13530
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 13530,
                      "mutability": "mutable",
                      "name": "key",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 13547,
                      "src": "848:11:81",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes4",
                        "typeString": "bytes4"
                      },
                      "typeName": {
                        "id": 13529,
                        "name": "bytes4",
                        "nodeType": "ElementaryTypeName",
                        "src": "848:6:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes4",
                          "typeString": "bytes4"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 13535,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 13532,
                        "name": "_map",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 13518,
                        "src": "868:4:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                          "typeString": "struct LibMap2_bytes4_address_bytes.map storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 13533,
                        "name": "_index",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 13520,
                        "src": "874:6:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                          "typeString": "struct LibMap2_bytes4_address_bytes.map storage pointer"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 13531,
                      "name": "keyAt",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13516,
                      "src": "862:5:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_struct$_map_$13457_storage_ptr_$_t_uint256_$returns$_t_bytes4_$",
                        "typeString": "function (struct LibMap2_bytes4_address_bytes.map storage pointer,uint256) view returns (bytes4)"
                      }
                    },
                    "id": 13534,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "862:19:81",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "848:33:81"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "components": [
                      {
                        "argumentTypes": null,
                        "id": 13536,
                        "name": "key",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 13530,
                        "src": "893:3:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes4",
                          "typeString": "bytes4"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 13538,
                            "name": "_map",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 13518,
                            "src": "905:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                              "typeString": "struct LibMap2_bytes4_address_bytes.map storage pointer"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 13539,
                            "name": "key",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 13530,
                            "src": "911:3:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                              "typeString": "struct LibMap2_bytes4_address_bytes.map storage pointer"
                            },
                            {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          ],
                          "id": 13537,
                          "name": "value1",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 13485,
                          "src": "898:6:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_struct$_map_$13457_storage_ptr_$_t_bytes4_$returns$_t_address_$",
                            "typeString": "function (struct LibMap2_bytes4_address_bytes.map storage pointer,bytes4) view returns (address)"
                          }
                        },
                        "id": 13540,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "898:17:81",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 13542,
                            "name": "_map",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 13518,
                            "src": "924:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                              "typeString": "struct LibMap2_bytes4_address_bytes.map storage pointer"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 13543,
                            "name": "key",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 13530,
                            "src": "930:3:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                              "typeString": "struct LibMap2_bytes4_address_bytes.map storage pointer"
                            },
                            {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          ],
                          "id": 13541,
                          "name": "value2",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 13500,
                          "src": "917:6:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_struct$_map_$13457_storage_ptr_$_t_bytes4_$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function (struct LibMap2_bytes4_address_bytes.map storage pointer,bytes4) view returns (bytes memory)"
                          }
                        },
                        "id": 13544,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "917:17:81",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "id": 13545,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "892:43:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_bytes4_$_t_address_$_t_bytes_memory_ptr_$",
                      "typeString": "tuple(bytes4,address,bytes memory)"
                    }
                  },
                  "functionReturnParameters": 13528,
                  "id": 13546,
                  "nodeType": "Return",
                  "src": "885:50:81"
                }
              ]
            },
            "documentation": null,
            "id": 13548,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "at",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 13521,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13518,
                  "mutability": "mutable",
                  "name": "_map",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13548,
                  "src": "752:16:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                    "typeString": "struct LibMap2_bytes4_address_bytes.map"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 13517,
                    "name": "map",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 13457,
                    "src": "752:3:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                      "typeString": "struct LibMap2_bytes4_address_bytes.map"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 13520,
                  "mutability": "mutable",
                  "name": "_index",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13548,
                  "src": "770:14:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 13519,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "770:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "751:34:81"
            },
            "returnParameters": {
              "id": 13528,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13523,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13548,
                  "src": "810:6:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes4",
                    "typeString": "bytes4"
                  },
                  "typeName": {
                    "id": 13522,
                    "name": "bytes4",
                    "nodeType": "ElementaryTypeName",
                    "src": "810:6:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 13525,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13548,
                  "src": "819:7:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 13524,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "819:7:81",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 13527,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13548,
                  "src": "829:12:81",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 13526,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "829:5:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "809:33:81"
            },
            "scope": 13718,
            "src": "740:199:81",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 13563,
              "nodeType": "Block",
              "src": "1025:40:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 13560,
                        "name": "_key",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 13552,
                        "src": "1056:4:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes4",
                          "typeString": "bytes4"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes4",
                          "typeString": "bytes4"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 13557,
                          "name": "_map",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 13550,
                          "src": "1036:4:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                            "typeString": "struct LibMap2_bytes4_address_bytes.map storage pointer"
                          }
                        },
                        "id": 13558,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "keyset",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 13448,
                        "src": "1036:11:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_set_$13728_storage",
                          "typeString": "struct LibSet_bytes4.set storage ref"
                        }
                      },
                      "id": 13559,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "indexOf",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 13772,
                      "src": "1036:19:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_struct$_set_$13728_storage_ptr_$_t_bytes4_$returns$_t_uint256_$bound_to$_t_struct$_set_$13728_storage_ptr_$",
                        "typeString": "function (struct LibSet_bytes4.set storage pointer,bytes4) view returns (uint256)"
                      }
                    },
                    "id": 13561,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1036:25:81",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 13556,
                  "id": 13562,
                  "nodeType": "Return",
                  "src": "1029:32:81"
                }
              ]
            },
            "documentation": null,
            "id": 13564,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "indexOf",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 13553,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13550,
                  "mutability": "mutable",
                  "name": "_map",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13564,
                  "src": "959:16:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                    "typeString": "struct LibMap2_bytes4_address_bytes.map"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 13549,
                    "name": "map",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 13457,
                    "src": "959:3:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                      "typeString": "struct LibMap2_bytes4_address_bytes.map"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 13552,
                  "mutability": "mutable",
                  "name": "_key",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13564,
                  "src": "977:12:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes4",
                    "typeString": "bytes4"
                  },
                  "typeName": {
                    "id": 13551,
                    "name": "bytes4",
                    "nodeType": "ElementaryTypeName",
                    "src": "977:6:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "958:32:81"
            },
            "returnParameters": {
              "id": 13556,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13555,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13564,
                  "src": "1015:7:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 13554,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1015:7:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1014:9:81"
            },
            "scope": 13718,
            "src": "942:123:81",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 13579,
              "nodeType": "Block",
              "src": "1149:41:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 13576,
                        "name": "_key",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 13568,
                        "src": "1181:4:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes4",
                          "typeString": "bytes4"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes4",
                          "typeString": "bytes4"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 13573,
                          "name": "_map",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 13566,
                          "src": "1160:4:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                            "typeString": "struct LibMap2_bytes4_address_bytes.map storage pointer"
                          }
                        },
                        "id": 13574,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "keyset",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 13448,
                        "src": "1160:11:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_set_$13728_storage",
                          "typeString": "struct LibSet_bytes4.set storage ref"
                        }
                      },
                      "id": 13575,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "contains",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 13789,
                      "src": "1160:20:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_struct$_set_$13728_storage_ptr_$_t_bytes4_$returns$_t_bool_$bound_to$_t_struct$_set_$13728_storage_ptr_$",
                        "typeString": "function (struct LibSet_bytes4.set storage pointer,bytes4) view returns (bool)"
                      }
                    },
                    "id": 13577,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1160:26:81",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 13572,
                  "id": 13578,
                  "nodeType": "Return",
                  "src": "1153:33:81"
                }
              ]
            },
            "documentation": null,
            "id": 13580,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "contains",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 13569,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13566,
                  "mutability": "mutable",
                  "name": "_map",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13580,
                  "src": "1086:16:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                    "typeString": "struct LibMap2_bytes4_address_bytes.map"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 13565,
                    "name": "map",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 13457,
                    "src": "1086:3:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                      "typeString": "struct LibMap2_bytes4_address_bytes.map"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 13568,
                  "mutability": "mutable",
                  "name": "_key",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13580,
                  "src": "1104:12:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes4",
                    "typeString": "bytes4"
                  },
                  "typeName": {
                    "id": 13567,
                    "name": "bytes4",
                    "nodeType": "ElementaryTypeName",
                    "src": "1104:6:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1085:32:81"
            },
            "returnParameters": {
              "id": 13572,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13571,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13580,
                  "src": "1142:4:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 13570,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1142:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1141:6:81"
            },
            "scope": 13718,
            "src": "1068:122:81",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 13593,
              "nodeType": "Block",
              "src": "1267:36:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 13588,
                          "name": "_map",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 13582,
                          "src": "1278:4:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                            "typeString": "struct LibMap2_bytes4_address_bytes.map storage pointer"
                          }
                        },
                        "id": 13589,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "keyset",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 13448,
                        "src": "1278:11:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_set_$13728_storage",
                          "typeString": "struct LibSet_bytes4.set storage ref"
                        }
                      },
                      "id": 13590,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "content",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 13801,
                      "src": "1278:19:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_struct$_set_$13728_storage_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$bound_to$_t_struct$_set_$13728_storage_ptr_$",
                        "typeString": "function (struct LibSet_bytes4.set storage pointer) view returns (bytes4[] memory)"
                      }
                    },
                    "id": 13591,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1278:21:81",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes4_$dyn_memory_ptr",
                      "typeString": "bytes4[] memory"
                    }
                  },
                  "functionReturnParameters": 13587,
                  "id": 13592,
                  "nodeType": "Return",
                  "src": "1271:28:81"
                }
              ]
            },
            "documentation": null,
            "id": 13594,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "keys",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 13583,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13582,
                  "mutability": "mutable",
                  "name": "_map",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13594,
                  "src": "1207:16:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                    "typeString": "struct LibMap2_bytes4_address_bytes.map"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 13581,
                    "name": "map",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 13457,
                    "src": "1207:3:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                      "typeString": "struct LibMap2_bytes4_address_bytes.map"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1206:18:81"
            },
            "returnParameters": {
              "id": 13587,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13586,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13594,
                  "src": "1249:15:81",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes4_$dyn_memory_ptr",
                    "typeString": "bytes4[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 13584,
                      "name": "bytes4",
                      "nodeType": "ElementaryTypeName",
                      "src": "1249:6:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes4",
                        "typeString": "bytes4"
                      }
                    },
                    "id": 13585,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "1249:8:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes4_$dyn_storage_ptr",
                      "typeString": "bytes4[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1248:17:81"
            },
            "scope": 13718,
            "src": "1193:110:81",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 13633,
              "nodeType": "Block",
              "src": "1426:108:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 13612,
                        "name": "_key",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 13598,
                        "src": "1446:4:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes4",
                          "typeString": "bytes4"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes4",
                          "typeString": "bytes4"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 13607,
                          "name": "_map",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 13596,
                          "src": "1430:4:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                            "typeString": "struct LibMap2_bytes4_address_bytes.map storage pointer"
                          }
                        },
                        "id": 13610,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "keyset",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 13448,
                        "src": "1430:11:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_set_$13728_storage",
                          "typeString": "struct LibSet_bytes4.set storage ref"
                        }
                      },
                      "id": 13611,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "add",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 13839,
                      "src": "1430:15:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_set_$13728_storage_ptr_$_t_bytes4_$returns$_t_bool_$bound_to$_t_struct$_set_$13728_storage_ptr_$",
                        "typeString": "function (struct LibSet_bytes4.set storage pointer,bytes4) returns (bool)"
                      }
                    },
                    "id": 13613,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1430:21:81",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 13614,
                  "nodeType": "ExpressionStatement",
                  "src": "1430:21:81"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 13621,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 13615,
                          "name": "_map",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 13596,
                          "src": "1455:4:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                            "typeString": "struct LibMap2_bytes4_address_bytes.map storage pointer"
                          }
                        },
                        "id": 13618,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "values1",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 13452,
                        "src": "1455:12:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes4_$_t_address_$",
                          "typeString": "mapping(bytes4 => address)"
                        }
                      },
                      "id": 13619,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 13617,
                        "name": "_key",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 13598,
                        "src": "1468:4:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes4",
                          "typeString": "bytes4"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "1455:18:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 13620,
                      "name": "_value1",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13600,
                      "src": "1476:7:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "1455:28:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 13622,
                  "nodeType": "ExpressionStatement",
                  "src": "1455:28:81"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 13629,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 13623,
                          "name": "_map",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 13596,
                          "src": "1487:4:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                            "typeString": "struct LibMap2_bytes4_address_bytes.map storage pointer"
                          }
                        },
                        "id": 13626,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "values2",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 13456,
                        "src": "1487:12:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$",
                          "typeString": "mapping(bytes4 => bytes storage ref)"
                        }
                      },
                      "id": 13627,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 13625,
                        "name": "_key",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 13598,
                        "src": "1500:4:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes4",
                          "typeString": "bytes4"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "1487:18:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_storage",
                        "typeString": "bytes storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 13628,
                      "name": "_value2",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13602,
                      "src": "1508:7:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_memory_ptr",
                        "typeString": "bytes memory"
                      }
                    },
                    "src": "1487:28:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage",
                      "typeString": "bytes storage ref"
                    }
                  },
                  "id": 13630,
                  "nodeType": "ExpressionStatement",
                  "src": "1487:28:81"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "74727565",
                    "id": 13631,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "1526:4:81",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "true"
                  },
                  "functionReturnParameters": 13606,
                  "id": 13632,
                  "nodeType": "Return",
                  "src": "1519:11:81"
                }
              ]
            },
            "documentation": null,
            "id": 13634,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "set",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 13603,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13596,
                  "mutability": "mutable",
                  "name": "_map",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13634,
                  "src": "1322:16:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                    "typeString": "struct LibMap2_bytes4_address_bytes.map"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 13595,
                    "name": "map",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 13457,
                    "src": "1322:3:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                      "typeString": "struct LibMap2_bytes4_address_bytes.map"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 13598,
                  "mutability": "mutable",
                  "name": "_key",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13634,
                  "src": "1342:12:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes4",
                    "typeString": "bytes4"
                  },
                  "typeName": {
                    "id": 13597,
                    "name": "bytes4",
                    "nodeType": "ElementaryTypeName",
                    "src": "1342:6:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 13600,
                  "mutability": "mutable",
                  "name": "_value1",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13634,
                  "src": "1358:16:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 13599,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1358:7:81",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 13602,
                  "mutability": "mutable",
                  "name": "_value2",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13634,
                  "src": "1378:20:81",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 13601,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "1378:5:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1318:81:81"
            },
            "returnParameters": {
              "id": 13606,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13605,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13634,
                  "src": "1419:4:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 13604,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1419:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1418:6:81"
            },
            "scope": 13718,
            "src": "1306:228:81",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 13665,
              "nodeType": "Block",
              "src": "1608:105:81",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 13648,
                        "name": "_key",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 13638,
                        "src": "1631:4:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes4",
                          "typeString": "bytes4"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes4",
                          "typeString": "bytes4"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 13643,
                          "name": "_map",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 13636,
                          "src": "1612:4:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                            "typeString": "struct LibMap2_bytes4_address_bytes.map storage pointer"
                          }
                        },
                        "id": 13646,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "keyset",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 13448,
                        "src": "1612:11:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_set_$13728_storage",
                          "typeString": "struct LibSet_bytes4.set storage ref"
                        }
                      },
                      "id": 13647,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "remove",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 13918,
                      "src": "1612:18:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_set_$13728_storage_ptr_$_t_bytes4_$returns$_t_bool_$bound_to$_t_struct$_set_$13728_storage_ptr_$",
                        "typeString": "function (struct LibSet_bytes4.set storage pointer,bytes4) returns (bool)"
                      }
                    },
                    "id": 13649,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1612:24:81",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 13650,
                  "nodeType": "ExpressionStatement",
                  "src": "1612:24:81"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 13655,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "delete",
                    "prefix": true,
                    "src": "1640:25:81",
                    "subExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 13651,
                          "name": "_map",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 13636,
                          "src": "1647:4:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                            "typeString": "struct LibMap2_bytes4_address_bytes.map storage pointer"
                          }
                        },
                        "id": 13652,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "values1",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 13452,
                        "src": "1647:12:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes4_$_t_address_$",
                          "typeString": "mapping(bytes4 => address)"
                        }
                      },
                      "id": 13654,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 13653,
                        "name": "_key",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 13638,
                        "src": "1660:4:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes4",
                          "typeString": "bytes4"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "1647:18:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 13656,
                  "nodeType": "ExpressionStatement",
                  "src": "1640:25:81"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 13661,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "delete",
                    "prefix": true,
                    "src": "1669:25:81",
                    "subExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 13657,
                          "name": "_map",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 13636,
                          "src": "1676:4:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                            "typeString": "struct LibMap2_bytes4_address_bytes.map storage pointer"
                          }
                        },
                        "id": 13658,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "values2",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 13456,
                        "src": "1676:12:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$",
                          "typeString": "mapping(bytes4 => bytes storage ref)"
                        }
                      },
                      "id": 13660,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 13659,
                        "name": "_key",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 13638,
                        "src": "1689:4:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes4",
                          "typeString": "bytes4"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "1676:18:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_storage",
                        "typeString": "bytes storage ref"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 13662,
                  "nodeType": "ExpressionStatement",
                  "src": "1669:25:81"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "74727565",
                    "id": 13663,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "1705:4:81",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "true"
                  },
                  "functionReturnParameters": 13642,
                  "id": 13664,
                  "nodeType": "Return",
                  "src": "1698:11:81"
                }
              ]
            },
            "documentation": null,
            "id": 13666,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "del",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 13639,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13636,
                  "mutability": "mutable",
                  "name": "_map",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13666,
                  "src": "1550:16:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                    "typeString": "struct LibMap2_bytes4_address_bytes.map"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 13635,
                    "name": "map",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 13457,
                    "src": "1550:3:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                      "typeString": "struct LibMap2_bytes4_address_bytes.map"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 13638,
                  "mutability": "mutable",
                  "name": "_key",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13666,
                  "src": "1568:12:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes4",
                    "typeString": "bytes4"
                  },
                  "typeName": {
                    "id": 13637,
                    "name": "bytes4",
                    "nodeType": "ElementaryTypeName",
                    "src": "1568:6:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1549:32:81"
            },
            "returnParameters": {
              "id": 13642,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13641,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13666,
                  "src": "1601:4:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 13640,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1601:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1600:6:81"
            },
            "scope": 13718,
            "src": "1537:176:81",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 13716,
              "nodeType": "Block",
              "src": "1775:194:81",
              "statements": [
                {
                  "body": {
                    "id": 13705,
                    "nodeType": "Block",
                    "src": "1832:96:81",
                    "statements": [
                      {
                        "assignments": [
                          13687
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 13687,
                            "mutability": "mutable",
                            "name": "key",
                            "nodeType": "VariableDeclaration",
                            "overrides": null,
                            "scope": 13705,
                            "src": "1837:11:81",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            },
                            "typeName": {
                              "id": 13686,
                              "name": "bytes4",
                              "nodeType": "ElementaryTypeName",
                              "src": "1837:6:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes4",
                                "typeString": "bytes4"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 13692,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 13689,
                              "name": "_map",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 13668,
                              "src": "1857:4:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                                "typeString": "struct LibMap2_bytes4_address_bytes.map storage pointer"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 13690,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 13674,
                              "src": "1863:1:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                                "typeString": "struct LibMap2_bytes4_address_bytes.map storage pointer"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 13688,
                            "name": "keyAt",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 13516,
                            "src": "1851:5:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_struct$_map_$13457_storage_ptr_$_t_uint256_$returns$_t_bytes4_$",
                              "typeString": "function (struct LibMap2_bytes4_address_bytes.map storage pointer,uint256) view returns (bytes4)"
                            }
                          },
                          "id": 13691,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1851:14:81",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes4",
                            "typeString": "bytes4"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "1837:28:81"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 13697,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "delete",
                          "prefix": true,
                          "src": "1870:24:81",
                          "subExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 13693,
                                "name": "_map",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 13668,
                                "src": "1877:4:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                                  "typeString": "struct LibMap2_bytes4_address_bytes.map storage pointer"
                                }
                              },
                              "id": 13694,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "values1",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 13452,
                              "src": "1877:12:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes4_$_t_address_$",
                                "typeString": "mapping(bytes4 => address)"
                              }
                            },
                            "id": 13696,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 13695,
                              "name": "key",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 13687,
                              "src": "1890:3:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes4",
                                "typeString": "bytes4"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "1877:17:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 13698,
                        "nodeType": "ExpressionStatement",
                        "src": "1870:24:81"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 13703,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "delete",
                          "prefix": true,
                          "src": "1899:24:81",
                          "subExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 13699,
                                "name": "_map",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 13668,
                                "src": "1906:4:81",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                                  "typeString": "struct LibMap2_bytes4_address_bytes.map storage pointer"
                                }
                              },
                              "id": 13700,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "values2",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 13456,
                              "src": "1906:12:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$",
                                "typeString": "mapping(bytes4 => bytes storage ref)"
                              }
                            },
                            "id": 13702,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 13701,
                              "name": "key",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 13687,
                              "src": "1919:3:81",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes4",
                                "typeString": "bytes4"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "1906:17:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_storage",
                              "typeString": "bytes storage ref"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 13704,
                        "nodeType": "ExpressionStatement",
                        "src": "1899:24:81"
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 13682,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 13680,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13674,
                      "src": "1818:1:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 13681,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "1822:1:81",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "1818:5:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 13706,
                  "initializationExpression": {
                    "assignments": [
                      13674
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 13674,
                        "mutability": "mutable",
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 13706,
                        "src": "1784:9:81",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 13673,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1784:7:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 13679,
                    "initialValue": {
                      "argumentTypes": null,
                      "arguments": [],
                      "expression": {
                        "argumentTypes": [],
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 13675,
                            "name": "_map",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 13668,
                            "src": "1796:4:81",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                              "typeString": "struct LibMap2_bytes4_address_bytes.map storage pointer"
                            }
                          },
                          "id": 13676,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "keyset",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 13448,
                          "src": "1796:11:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_set_$13728_storage",
                            "typeString": "struct LibSet_bytes4.set storage ref"
                          }
                        },
                        "id": 13677,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "length",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 13740,
                        "src": "1796:18:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_set_$13728_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_set_$13728_storage_ptr_$",
                          "typeString": "function (struct LibSet_bytes4.set storage pointer) view returns (uint256)"
                        }
                      },
                      "id": 13678,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1796:20:81",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "1784:32:81"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 13684,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "--",
                      "prefix": true,
                      "src": "1825:3:81",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 13683,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 13674,
                        "src": "1827:1:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 13685,
                    "nodeType": "ExpressionStatement",
                    "src": "1825:3:81"
                  },
                  "nodeType": "ForStatement",
                  "src": "1779:149:81"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 13707,
                          "name": "_map",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 13668,
                          "src": "1931:4:81",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                            "typeString": "struct LibMap2_bytes4_address_bytes.map storage pointer"
                          }
                        },
                        "id": 13710,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "keyset",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 13448,
                        "src": "1931:11:81",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_set_$13728_storage",
                          "typeString": "struct LibSet_bytes4.set storage ref"
                        }
                      },
                      "id": 13711,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "clear",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 13963,
                      "src": "1931:17:81",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_set_$13728_storage_ptr_$returns$_t_bool_$bound_to$_t_struct$_set_$13728_storage_ptr_$",
                        "typeString": "function (struct LibSet_bytes4.set storage pointer) returns (bool)"
                      }
                    },
                    "id": 13712,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1931:19:81",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 13713,
                  "nodeType": "ExpressionStatement",
                  "src": "1931:19:81"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "74727565",
                    "id": 13714,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "1961:4:81",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "true"
                  },
                  "functionReturnParameters": 13672,
                  "id": 13715,
                  "nodeType": "Return",
                  "src": "1954:11:81"
                }
              ]
            },
            "documentation": null,
            "id": 13717,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "clear",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 13669,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13668,
                  "mutability": "mutable",
                  "name": "_map",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13717,
                  "src": "1731:16:81",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                    "typeString": "struct LibMap2_bytes4_address_bytes.map"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 13667,
                    "name": "map",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 13457,
                    "src": "1731:3:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_map_$13457_storage_ptr",
                      "typeString": "struct LibMap2_bytes4_address_bytes.map"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1730:18:81"
            },
            "returnParameters": {
              "id": 13672,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 13671,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 13717,
                  "src": "1768:4:81",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 13670,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1768:4:81",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1767:6:81"
            },
            "scope": 13718,
            "src": "1716:253:81",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          }
        ],
        "scope": 13719,
        "src": "63:1908:81"
      }
    ],
    "src": "0:1972:81"
  },
  "compiler": {
    "name": "solc",
    "version": "0.6.6+commit.6c089d02.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.1.0",
  "updatedAt": "2020-04-21T18:10:34.977Z",
  "devdoc": {
    "methods": {}
  },
  "userdoc": {
    "methods": {}
  }
}