{
  "abi": [],
  "bytecode": {
    "object": "0x602d6023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c6343000706000a",
    "sourceMap": "772:8974:19:-:0;;;;;;;;;;;;;;;;;;;;;;;;;",
    "linkReferences": {}
  },
  "deployedBytecode": {
    "object": "0x73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c6343000706000a",
    "sourceMap": "772:8974:19:-:0;;;;;;;;",
    "linkReferences": {}
  },
  "methodIdentifiers": {},
  "ast": {
    "absolutePath": "node_modules/@openzeppelin/contracts-upgradeable/utils/EnumerableMapUpgradeable.sol",
    "id": 25692,
    "exportedSymbols": {
      "EnumerableMapUpgradeable": [
        25691
      ]
    },
    "nodeType": "SourceUnit",
    "src": "33:9714:19",
    "nodes": [
      {
        "id": 25133,
        "nodeType": "PragmaDirective",
        "src": "33:31:19",
        "literals": [
          "solidity",
          ">=",
          "0.6",
          ".0",
          "<",
          "0.8",
          ".0"
        ]
      },
      {
        "id": 25691,
        "nodeType": "ContractDefinition",
        "src": "772:8974:19",
        "nodes": [
          {
            "id": 25139,
            "nodeType": "StructDefinition",
            "src": "1269:69:19",
            "canonicalName": "EnumerableMapUpgradeable.MapEntry",
            "members": [
              {
                "constant": false,
                "id": 25136,
                "mutability": "mutable",
                "name": "_key",
                "nodeType": "VariableDeclaration",
                "scope": 25139,
                "src": "1295:12:19",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                },
                "typeName": {
                  "id": 25135,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "1295:7:19",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 25138,
                "mutability": "mutable",
                "name": "_value",
                "nodeType": "VariableDeclaration",
                "scope": 25139,
                "src": "1317:14:19",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                },
                "typeName": {
                  "id": 25137,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "1317:7:19",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "MapEntry",
            "scope": 25691,
            "visibility": "public"
          },
          {
            "id": 25147,
            "nodeType": "StructDefinition",
            "src": "1344:276:19",
            "canonicalName": "EnumerableMapUpgradeable.Map",
            "members": [
              {
                "constant": false,
                "id": 25142,
                "mutability": "mutable",
                "name": "_entries",
                "nodeType": "VariableDeclaration",
                "scope": 25147,
                "src": "1407:19:19",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_array$_t_struct$_MapEntry_$25139_storage_$dyn_storage_ptr",
                  "typeString": "struct EnumerableMapUpgradeable.MapEntry[]"
                },
                "typeName": {
                  "baseType": {
                    "id": 25140,
                    "name": "MapEntry",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 25139,
                    "src": "1407:8:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_MapEntry_$25139_storage_ptr",
                      "typeString": "struct EnumerableMapUpgradeable.MapEntry"
                    }
                  },
                  "id": 25141,
                  "nodeType": "ArrayTypeName",
                  "src": "1407:10:19",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_struct$_MapEntry_$25139_storage_$dyn_storage_ptr",
                    "typeString": "struct EnumerableMapUpgradeable.MapEntry[]"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 25146,
                "mutability": "mutable",
                "name": "_indexes",
                "nodeType": "VariableDeclaration",
                "scope": 25147,
                "src": "1576:37:19",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                  "typeString": "mapping(bytes32 => uint256)"
                },
                "typeName": {
                  "id": 25145,
                  "keyType": {
                    "id": 25143,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1585:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "Mapping",
                  "src": "1576:28:19",
                  "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                    "typeString": "mapping(bytes32 => uint256)"
                  },
                  "valueType": {
                    "id": 25144,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1596:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "Map",
            "scope": 25691,
            "visibility": "public"
          },
          {
            "id": 25209,
            "nodeType": "FunctionDefinition",
            "src": "1847:678:19",
            "body": {
              "id": 25208,
              "nodeType": "Block",
              "src": "1929:596:19",
              "statements": [
                {
                  "assignments": [
                    25160
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 25160,
                      "mutability": "mutable",
                      "name": "keyIndex",
                      "nodeType": "VariableDeclaration",
                      "scope": 25208,
                      "src": "2037:16:19",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 25159,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "2037:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 25165,
                  "initialValue": {
                    "baseExpression": {
                      "expression": {
                        "id": 25161,
                        "name": "map",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25150,
                        "src": "2056:3:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Map_$25147_storage_ptr",
                          "typeString": "struct EnumerableMapUpgradeable.Map storage pointer"
                        }
                      },
                      "id": 25162,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "_indexes",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 25146,
                      "src": "2056:12:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                        "typeString": "mapping(bytes32 => uint256)"
                      }
                    },
                    "id": 25164,
                    "indexExpression": {
                      "id": 25163,
                      "name": "key",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25152,
                      "src": "2069:3:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "2056:17:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2037:36:19"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 25168,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 25166,
                      "name": "keyIndex",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25160,
                      "src": "2088:8:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 25167,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2100:1:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "2088:13:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 25206,
                    "nodeType": "Block",
                    "src": "2427:92:19",
                    "statements": [
                      {
                        "expression": {
                          "id": 25202,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "expression": {
                              "baseExpression": {
                                "expression": {
                                  "id": 25193,
                                  "name": "map",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 25150,
                                  "src": "2441:3:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Map_$25147_storage_ptr",
                                    "typeString": "struct EnumerableMapUpgradeable.Map storage pointer"
                                  }
                                },
                                "id": 25198,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "_entries",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 25142,
                                "src": "2441:12:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_struct$_MapEntry_$25139_storage_$dyn_storage",
                                  "typeString": "struct EnumerableMapUpgradeable.MapEntry storage ref[] storage ref"
                                }
                              },
                              "id": 25199,
                              "indexExpression": {
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 25197,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "id": 25195,
                                  "name": "keyIndex",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 25160,
                                  "src": "2454:8:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "-",
                                "rightExpression": {
                                  "hexValue": "31",
                                  "id": 25196,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "2465:1:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_1_by_1",
                                    "typeString": "int_const 1"
                                  },
                                  "value": "1"
                                },
                                "src": "2454:12:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "2441:26:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_MapEntry_$25139_storage",
                                "typeString": "struct EnumerableMapUpgradeable.MapEntry storage ref"
                              }
                            },
                            "id": 25200,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberName": "_value",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 25138,
                            "src": "2441:33:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "id": 25201,
                            "name": "value",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 25154,
                            "src": "2477:5:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "2441:41:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "id": 25203,
                        "nodeType": "ExpressionStatement",
                        "src": "2441:41:19"
                      },
                      {
                        "expression": {
                          "hexValue": "66616c7365",
                          "id": 25204,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2503:5:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "false"
                        },
                        "functionReturnParameters": 25158,
                        "id": 25205,
                        "nodeType": "Return",
                        "src": "2496:12:19"
                      }
                    ]
                  },
                  "id": 25207,
                  "nodeType": "IfStatement",
                  "src": "2084:435:19",
                  "trueBody": {
                    "id": 25192,
                    "nodeType": "Block",
                    "src": "2103:318:19",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "id": 25175,
                                  "name": "key",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 25152,
                                  "src": "2189:3:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                {
                                  "id": 25176,
                                  "name": "value",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 25154,
                                  "src": "2202:5:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  },
                                  {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                ],
                                "id": 25174,
                                "name": "MapEntry",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 25139,
                                "src": "2172:8:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_struct$_MapEntry_$25139_storage_ptr_$",
                                  "typeString": "type(struct EnumerableMapUpgradeable.MapEntry storage pointer)"
                                }
                              },
                              "id": 25177,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "structConstructorCall",
                              "lValueRequested": false,
                              "names": [
                                "_key",
                                "_value"
                              ],
                              "nodeType": "FunctionCall",
                              "src": "2172:38:19",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_MapEntry_$25139_memory_ptr",
                                "typeString": "struct EnumerableMapUpgradeable.MapEntry memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_struct$_MapEntry_$25139_memory_ptr",
                                "typeString": "struct EnumerableMapUpgradeable.MapEntry memory"
                              }
                            ],
                            "expression": {
                              "expression": {
                                "id": 25169,
                                "name": "map",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 25150,
                                "src": "2154:3:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Map_$25147_storage_ptr",
                                  "typeString": "struct EnumerableMapUpgradeable.Map storage pointer"
                                }
                              },
                              "id": 25172,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "_entries",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 25142,
                              "src": "2154:12:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_struct$_MapEntry_$25139_storage_$dyn_storage",
                                "typeString": "struct EnumerableMapUpgradeable.MapEntry storage ref[] storage ref"
                              }
                            },
                            "id": 25173,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "push",
                            "nodeType": "MemberAccess",
                            "src": "2154:17:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_MapEntry_$25139_storage_$returns$__$",
                              "typeString": "function (struct EnumerableMapUpgradeable.MapEntry storage ref)"
                            }
                          },
                          "id": 25178,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2154:57:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 25179,
                        "nodeType": "ExpressionStatement",
                        "src": "2154:57:19"
                      },
                      {
                        "expression": {
                          "id": 25188,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "baseExpression": {
                              "expression": {
                                "id": 25180,
                                "name": "map",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 25150,
                                "src": "2346:3:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Map_$25147_storage_ptr",
                                  "typeString": "struct EnumerableMapUpgradeable.Map storage pointer"
                                }
                              },
                              "id": 25183,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "_indexes",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 25146,
                              "src": "2346:12:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                                "typeString": "mapping(bytes32 => uint256)"
                              }
                            },
                            "id": 25184,
                            "indexExpression": {
                              "id": 25182,
                              "name": "key",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 25152,
                              "src": "2359:3:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "2346:17:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "expression": {
                              "expression": {
                                "id": 25185,
                                "name": "map",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 25150,
                                "src": "2366:3:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Map_$25147_storage_ptr",
                                  "typeString": "struct EnumerableMapUpgradeable.Map storage pointer"
                                }
                              },
                              "id": 25186,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "_entries",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 25142,
                              "src": "2366:12:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_struct$_MapEntry_$25139_storage_$dyn_storage",
                                "typeString": "struct EnumerableMapUpgradeable.MapEntry storage ref[] storage ref"
                              }
                            },
                            "id": 25187,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "length",
                            "nodeType": "MemberAccess",
                            "src": "2366:19:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "2346:39:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 25189,
                        "nodeType": "ExpressionStatement",
                        "src": "2346:39:19"
                      },
                      {
                        "expression": {
                          "hexValue": "74727565",
                          "id": 25190,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2406:4:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "true"
                        },
                        "functionReturnParameters": 25158,
                        "id": 25191,
                        "nodeType": "Return",
                        "src": "2399:11:19"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": {
              "id": 25148,
              "nodeType": "StructuredDocumentation",
              "src": "1626:216:19",
              "text": " @dev Adds a key-value pair to a map, or updates the value for an existing\n key. O(1).\n Returns true if the key was added to the map, that is if it was not\n already present."
            },
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_set",
            "parameters": {
              "id": 25155,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25150,
                  "mutability": "mutable",
                  "name": "map",
                  "nodeType": "VariableDeclaration",
                  "scope": 25209,
                  "src": "1861:15:19",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Map_$25147_storage_ptr",
                    "typeString": "struct EnumerableMapUpgradeable.Map"
                  },
                  "typeName": {
                    "id": 25149,
                    "name": "Map",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 25147,
                    "src": "1861:3:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Map_$25147_storage_ptr",
                      "typeString": "struct EnumerableMapUpgradeable.Map"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 25152,
                  "mutability": "mutable",
                  "name": "key",
                  "nodeType": "VariableDeclaration",
                  "scope": 25209,
                  "src": "1878:11:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 25151,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1878:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 25154,
                  "mutability": "mutable",
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 25209,
                  "src": "1891:13:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 25153,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1891:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1860:45:19"
            },
            "returnParameters": {
              "id": 25158,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25157,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 25209,
                  "src": "1923:4:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 25156,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1923:4:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1922:6:19"
            },
            "scope": 25691,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "private"
          },
          {
            "id": 25290,
            "nodeType": "FunctionDefinition",
            "src": "2693:1517:19",
            "body": {
              "id": 25289,
              "nodeType": "Block",
              "src": "2763:1447:19",
              "statements": [
                {
                  "assignments": [
                    25220
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 25220,
                      "mutability": "mutable",
                      "name": "keyIndex",
                      "nodeType": "VariableDeclaration",
                      "scope": 25289,
                      "src": "2871:16:19",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 25219,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "2871:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 25225,
                  "initialValue": {
                    "baseExpression": {
                      "expression": {
                        "id": 25221,
                        "name": "map",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25212,
                        "src": "2890:3:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Map_$25147_storage_ptr",
                          "typeString": "struct EnumerableMapUpgradeable.Map storage pointer"
                        }
                      },
                      "id": 25222,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "_indexes",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 25146,
                      "src": "2890:12:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                        "typeString": "mapping(bytes32 => uint256)"
                      }
                    },
                    "id": 25224,
                    "indexExpression": {
                      "id": 25223,
                      "name": "key",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25214,
                      "src": "2903:3:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "2890:17:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2871:36:19"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 25228,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 25226,
                      "name": "keyIndex",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25220,
                      "src": "2922:8:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 25227,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2934:1:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "2922:13:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 25287,
                    "nodeType": "Block",
                    "src": "4167:37:19",
                    "statements": [
                      {
                        "expression": {
                          "hexValue": "66616c7365",
                          "id": 25285,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "4188:5:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "false"
                        },
                        "functionReturnParameters": 25218,
                        "id": 25286,
                        "nodeType": "Return",
                        "src": "4181:12:19"
                      }
                    ]
                  },
                  "id": 25288,
                  "nodeType": "IfStatement",
                  "src": "2918:1286:19",
                  "trueBody": {
                    "id": 25284,
                    "nodeType": "Block",
                    "src": "2937:1224:19",
                    "statements": [
                      {
                        "assignments": [
                          25230
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 25230,
                            "mutability": "mutable",
                            "name": "toDeleteIndex",
                            "nodeType": "VariableDeclaration",
                            "scope": 25284,
                            "src": "3278:21:19",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 25229,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "3278:7:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 25234,
                        "initialValue": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 25233,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 25231,
                            "name": "keyIndex",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 25220,
                            "src": "3302:8:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "-",
                          "rightExpression": {
                            "hexValue": "31",
                            "id": 25232,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "3313:1:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_1_by_1",
                              "typeString": "int_const 1"
                            },
                            "value": "1"
                          },
                          "src": "3302:12:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "3278:36:19"
                      },
                      {
                        "assignments": [
                          25236
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 25236,
                            "mutability": "mutable",
                            "name": "lastIndex",
                            "nodeType": "VariableDeclaration",
                            "scope": 25284,
                            "src": "3328:17:19",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 25235,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "3328:7:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 25242,
                        "initialValue": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 25241,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "expression": {
                              "expression": {
                                "id": 25237,
                                "name": "map",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 25212,
                                "src": "3348:3:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Map_$25147_storage_ptr",
                                  "typeString": "struct EnumerableMapUpgradeable.Map storage pointer"
                                }
                              },
                              "id": 25238,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "_entries",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 25142,
                              "src": "3348:12:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_struct$_MapEntry_$25139_storage_$dyn_storage",
                                "typeString": "struct EnumerableMapUpgradeable.MapEntry storage ref[] storage ref"
                              }
                            },
                            "id": 25239,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "length",
                            "nodeType": "MemberAccess",
                            "src": "3348:19:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "-",
                          "rightExpression": {
                            "hexValue": "31",
                            "id": 25240,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "3370:1:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_1_by_1",
                              "typeString": "int_const 1"
                            },
                            "value": "1"
                          },
                          "src": "3348:23:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "3328:43:19"
                      },
                      {
                        "assignments": [
                          25244
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 25244,
                            "mutability": "mutable",
                            "name": "lastEntry",
                            "nodeType": "VariableDeclaration",
                            "scope": 25284,
                            "src": "3611:26:19",
                            "stateVariable": false,
                            "storageLocation": "storage",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_MapEntry_$25139_storage_ptr",
                              "typeString": "struct EnumerableMapUpgradeable.MapEntry"
                            },
                            "typeName": {
                              "id": 25243,
                              "name": "MapEntry",
                              "nodeType": "UserDefinedTypeName",
                              "referencedDeclaration": 25139,
                              "src": "3611:8:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_MapEntry_$25139_storage_ptr",
                                "typeString": "struct EnumerableMapUpgradeable.MapEntry"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 25249,
                        "initialValue": {
                          "baseExpression": {
                            "expression": {
                              "id": 25245,
                              "name": "map",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 25212,
                              "src": "3640:3:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Map_$25147_storage_ptr",
                                "typeString": "struct EnumerableMapUpgradeable.Map storage pointer"
                              }
                            },
                            "id": 25246,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "_entries",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 25142,
                            "src": "3640:12:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_struct$_MapEntry_$25139_storage_$dyn_storage",
                              "typeString": "struct EnumerableMapUpgradeable.MapEntry storage ref[] storage ref"
                            }
                          },
                          "id": 25248,
                          "indexExpression": {
                            "id": 25247,
                            "name": "lastIndex",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 25236,
                            "src": "3653:9:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "3640:23:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_MapEntry_$25139_storage",
                            "typeString": "struct EnumerableMapUpgradeable.MapEntry storage ref"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "3611:52:19"
                      },
                      {
                        "expression": {
                          "id": 25256,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "baseExpression": {
                              "expression": {
                                "id": 25250,
                                "name": "map",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 25212,
                                "src": "3755:3:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Map_$25147_storage_ptr",
                                  "typeString": "struct EnumerableMapUpgradeable.Map storage pointer"
                                }
                              },
                              "id": 25253,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "_entries",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 25142,
                              "src": "3755:12:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_struct$_MapEntry_$25139_storage_$dyn_storage",
                                "typeString": "struct EnumerableMapUpgradeable.MapEntry storage ref[] storage ref"
                              }
                            },
                            "id": 25254,
                            "indexExpression": {
                              "id": 25252,
                              "name": "toDeleteIndex",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 25230,
                              "src": "3768:13:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "3755:27:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_MapEntry_$25139_storage",
                              "typeString": "struct EnumerableMapUpgradeable.MapEntry storage ref"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "id": 25255,
                            "name": "lastEntry",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 25244,
                            "src": "3785:9:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_MapEntry_$25139_storage_ptr",
                              "typeString": "struct EnumerableMapUpgradeable.MapEntry storage pointer"
                            }
                          },
                          "src": "3755:39:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_MapEntry_$25139_storage",
                            "typeString": "struct EnumerableMapUpgradeable.MapEntry storage ref"
                          }
                        },
                        "id": 25257,
                        "nodeType": "ExpressionStatement",
                        "src": "3755:39:19"
                      },
                      {
                        "expression": {
                          "id": 25267,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "baseExpression": {
                              "expression": {
                                "id": 25258,
                                "name": "map",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 25212,
                                "src": "3860:3:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Map_$25147_storage_ptr",
                                  "typeString": "struct EnumerableMapUpgradeable.Map storage pointer"
                                }
                              },
                              "id": 25262,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "_indexes",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 25146,
                              "src": "3860:12:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                                "typeString": "mapping(bytes32 => uint256)"
                              }
                            },
                            "id": 25263,
                            "indexExpression": {
                              "expression": {
                                "id": 25260,
                                "name": "lastEntry",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 25244,
                                "src": "3873:9:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_MapEntry_$25139_storage_ptr",
                                  "typeString": "struct EnumerableMapUpgradeable.MapEntry storage pointer"
                                }
                              },
                              "id": 25261,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "_key",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 25136,
                              "src": "3873:14:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "3860:28:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 25266,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "id": 25264,
                              "name": "toDeleteIndex",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 25230,
                              "src": "3891:13:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "+",
                            "rightExpression": {
                              "hexValue": "31",
                              "id": 25265,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "3907:1:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_1_by_1",
                                "typeString": "int_const 1"
                              },
                              "value": "1"
                            },
                            "src": "3891:17:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "3860:48:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 25268,
                        "nodeType": "ExpressionStatement",
                        "src": "3860:48:19"
                      },
                      {
                        "expression": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "expression": {
                                "id": 25269,
                                "name": "map",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 25212,
                                "src": "4014:3:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Map_$25147_storage_ptr",
                                  "typeString": "struct EnumerableMapUpgradeable.Map storage pointer"
                                }
                              },
                              "id": 25272,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "_entries",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 25142,
                              "src": "4014:12:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_struct$_MapEntry_$25139_storage_$dyn_storage",
                                "typeString": "struct EnumerableMapUpgradeable.MapEntry storage ref[] storage ref"
                              }
                            },
                            "id": 25273,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "pop",
                            "nodeType": "MemberAccess",
                            "src": "4014:16:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_arraypop_nonpayable$__$returns$__$",
                              "typeString": "function ()"
                            }
                          },
                          "id": 25274,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "4014:18:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 25275,
                        "nodeType": "ExpressionStatement",
                        "src": "4014:18:19"
                      },
                      {
                        "expression": {
                          "id": 25280,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "delete",
                          "prefix": true,
                          "src": "4100:24:19",
                          "subExpression": {
                            "baseExpression": {
                              "expression": {
                                "id": 25276,
                                "name": "map",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 25212,
                                "src": "4107:3:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Map_$25147_storage_ptr",
                                  "typeString": "struct EnumerableMapUpgradeable.Map storage pointer"
                                }
                              },
                              "id": 25277,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "_indexes",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 25146,
                              "src": "4107:12:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                                "typeString": "mapping(bytes32 => uint256)"
                              }
                            },
                            "id": 25279,
                            "indexExpression": {
                              "id": 25278,
                              "name": "key",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 25214,
                              "src": "4120:3:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "4107:17:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 25281,
                        "nodeType": "ExpressionStatement",
                        "src": "4100:24:19"
                      },
                      {
                        "expression": {
                          "hexValue": "74727565",
                          "id": 25282,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "4146:4:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "true"
                        },
                        "functionReturnParameters": 25218,
                        "id": 25283,
                        "nodeType": "Return",
                        "src": "4139:11:19"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": {
              "id": 25210,
              "nodeType": "StructuredDocumentation",
              "src": "2531:157:19",
              "text": " @dev Removes a key-value pair from a map. O(1).\n Returns true if the key was removed from the map, that is if it was present."
            },
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_remove",
            "parameters": {
              "id": 25215,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25212,
                  "mutability": "mutable",
                  "name": "map",
                  "nodeType": "VariableDeclaration",
                  "scope": 25290,
                  "src": "2710:15:19",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Map_$25147_storage_ptr",
                    "typeString": "struct EnumerableMapUpgradeable.Map"
                  },
                  "typeName": {
                    "id": 25211,
                    "name": "Map",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 25147,
                    "src": "2710:3:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Map_$25147_storage_ptr",
                      "typeString": "struct EnumerableMapUpgradeable.Map"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 25214,
                  "mutability": "mutable",
                  "name": "key",
                  "nodeType": "VariableDeclaration",
                  "scope": 25290,
                  "src": "2727:11:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 25213,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2727:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2709:30:19"
            },
            "returnParameters": {
              "id": 25218,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25217,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 25290,
                  "src": "2757:4:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 25216,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2757:4:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2756:6:19"
            },
            "scope": 25691,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "private"
          },
          {
            "id": 25308,
            "nodeType": "FunctionDefinition",
            "src": "4289:123:19",
            "body": {
              "id": 25307,
              "nodeType": "Block",
              "src": "4366:46:19",
              "statements": [
                {
                  "expression": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 25305,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "baseExpression": {
                        "expression": {
                          "id": 25300,
                          "name": "map",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 25293,
                          "src": "4383:3:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Map_$25147_storage_ptr",
                            "typeString": "struct EnumerableMapUpgradeable.Map storage pointer"
                          }
                        },
                        "id": 25301,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "_indexes",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 25146,
                        "src": "4383:12:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                          "typeString": "mapping(bytes32 => uint256)"
                        }
                      },
                      "id": 25303,
                      "indexExpression": {
                        "id": 25302,
                        "name": "key",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25295,
                        "src": "4396:3:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "4383:17:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 25304,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "4404:1:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "4383:22:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 25299,
                  "id": 25306,
                  "nodeType": "Return",
                  "src": "4376:29:19"
                }
              ]
            },
            "documentation": {
              "id": 25291,
              "nodeType": "StructuredDocumentation",
              "src": "4216:68:19",
              "text": " @dev Returns true if the key is in the map. O(1)."
            },
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_contains",
            "parameters": {
              "id": 25296,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25293,
                  "mutability": "mutable",
                  "name": "map",
                  "nodeType": "VariableDeclaration",
                  "scope": 25308,
                  "src": "4308:15:19",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Map_$25147_storage_ptr",
                    "typeString": "struct EnumerableMapUpgradeable.Map"
                  },
                  "typeName": {
                    "id": 25292,
                    "name": "Map",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 25147,
                    "src": "4308:3:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Map_$25147_storage_ptr",
                      "typeString": "struct EnumerableMapUpgradeable.Map"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 25295,
                  "mutability": "mutable",
                  "name": "key",
                  "nodeType": "VariableDeclaration",
                  "scope": 25308,
                  "src": "4325:11:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 25294,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4325:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4307:30:19"
            },
            "returnParameters": {
              "id": 25299,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25298,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 25308,
                  "src": "4360:4:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 25297,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "4360:4:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4359:6:19"
            },
            "scope": 25691,
            "stateMutability": "view",
            "virtual": false,
            "visibility": "private"
          },
          {
            "id": 25321,
            "nodeType": "FunctionDefinition",
            "src": "4502:108:19",
            "body": {
              "id": 25320,
              "nodeType": "Block",
              "src": "4567:43:19",
              "statements": [
                {
                  "expression": {
                    "expression": {
                      "expression": {
                        "id": 25316,
                        "name": "map",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25311,
                        "src": "4584:3:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Map_$25147_storage_ptr",
                          "typeString": "struct EnumerableMapUpgradeable.Map storage pointer"
                        }
                      },
                      "id": 25317,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "_entries",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 25142,
                      "src": "4584:12:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_struct$_MapEntry_$25139_storage_$dyn_storage",
                        "typeString": "struct EnumerableMapUpgradeable.MapEntry storage ref[] storage ref"
                      }
                    },
                    "id": 25318,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "length",
                    "nodeType": "MemberAccess",
                    "src": "4584:19:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 25315,
                  "id": 25319,
                  "nodeType": "Return",
                  "src": "4577:26:19"
                }
              ]
            },
            "documentation": {
              "id": 25309,
              "nodeType": "StructuredDocumentation",
              "src": "4418:79:19",
              "text": " @dev Returns the number of key-value pairs in the map. O(1)."
            },
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_length",
            "parameters": {
              "id": 25312,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25311,
                  "mutability": "mutable",
                  "name": "map",
                  "nodeType": "VariableDeclaration",
                  "scope": 25321,
                  "src": "4519:15:19",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Map_$25147_storage_ptr",
                    "typeString": "struct EnumerableMapUpgradeable.Map"
                  },
                  "typeName": {
                    "id": 25310,
                    "name": "Map",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 25147,
                    "src": "4519:3:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Map_$25147_storage_ptr",
                      "typeString": "struct EnumerableMapUpgradeable.Map"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4518:17:19"
            },
            "returnParameters": {
              "id": 25315,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25314,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 25321,
                  "src": "4558:7:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 25313,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4558:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4557:9:19"
            },
            "scope": 25691,
            "stateMutability": "view",
            "virtual": false,
            "visibility": "private"
          },
          {
            "id": 25356,
            "nodeType": "FunctionDefinition",
            "src": "4953:274:19",
            "body": {
              "id": 25355,
              "nodeType": "Block",
              "src": "5038:189:19",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 25338,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "expression": {
                            "expression": {
                              "id": 25334,
                              "name": "map",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 25324,
                              "src": "5056:3:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Map_$25147_storage_ptr",
                                "typeString": "struct EnumerableMapUpgradeable.Map storage pointer"
                              }
                            },
                            "id": 25335,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "_entries",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 25142,
                            "src": "5056:12:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_struct$_MapEntry_$25139_storage_$dyn_storage",
                              "typeString": "struct EnumerableMapUpgradeable.MapEntry storage ref[] storage ref"
                            }
                          },
                          "id": 25336,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "src": "5056:19:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "id": 25337,
                          "name": "index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 25326,
                          "src": "5078:5:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "5056:27:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "456e756d657261626c654d61703a20696e646578206f7574206f6620626f756e6473",
                        "id": 25339,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5085:36:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_86631030b9066a18616a068fc09fce83d18af4765cb1d2166fa475228f4db155",
                          "typeString": "literal_string \"EnumerableMap: index out of bounds\""
                        },
                        "value": "EnumerableMap: index out of bounds"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_86631030b9066a18616a068fc09fce83d18af4765cb1d2166fa475228f4db155",
                          "typeString": "literal_string \"EnumerableMap: index out of bounds\""
                        }
                      ],
                      "id": 25333,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "5048:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 25340,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5048:74:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 25341,
                  "nodeType": "ExpressionStatement",
                  "src": "5048:74:19"
                },
                {
                  "assignments": [
                    25343
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 25343,
                      "mutability": "mutable",
                      "name": "entry",
                      "nodeType": "VariableDeclaration",
                      "scope": 25355,
                      "src": "5133:22:19",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_MapEntry_$25139_storage_ptr",
                        "typeString": "struct EnumerableMapUpgradeable.MapEntry"
                      },
                      "typeName": {
                        "id": 25342,
                        "name": "MapEntry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 25139,
                        "src": "5133:8:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_MapEntry_$25139_storage_ptr",
                          "typeString": "struct EnumerableMapUpgradeable.MapEntry"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 25348,
                  "initialValue": {
                    "baseExpression": {
                      "expression": {
                        "id": 25344,
                        "name": "map",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25324,
                        "src": "5158:3:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Map_$25147_storage_ptr",
                          "typeString": "struct EnumerableMapUpgradeable.Map storage pointer"
                        }
                      },
                      "id": 25345,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "_entries",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 25142,
                      "src": "5158:12:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_struct$_MapEntry_$25139_storage_$dyn_storage",
                        "typeString": "struct EnumerableMapUpgradeable.MapEntry storage ref[] storage ref"
                      }
                    },
                    "id": 25347,
                    "indexExpression": {
                      "id": 25346,
                      "name": "index",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25326,
                      "src": "5171:5:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "5158:19:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_MapEntry_$25139_storage",
                      "typeString": "struct EnumerableMapUpgradeable.MapEntry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5133:44:19"
                },
                {
                  "expression": {
                    "components": [
                      {
                        "expression": {
                          "id": 25349,
                          "name": "entry",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 25343,
                          "src": "5195:5:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_MapEntry_$25139_storage_ptr",
                            "typeString": "struct EnumerableMapUpgradeable.MapEntry storage pointer"
                          }
                        },
                        "id": 25350,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "_key",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 25136,
                        "src": "5195:10:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "expression": {
                          "id": 25351,
                          "name": "entry",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 25343,
                          "src": "5207:5:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_MapEntry_$25139_storage_ptr",
                            "typeString": "struct EnumerableMapUpgradeable.MapEntry storage pointer"
                          }
                        },
                        "id": 25352,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "_value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 25138,
                        "src": "5207:12:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "id": 25353,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "5194:26:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_bytes32_$_t_bytes32_$",
                      "typeString": "tuple(bytes32,bytes32)"
                    }
                  },
                  "functionReturnParameters": 25332,
                  "id": 25354,
                  "nodeType": "Return",
                  "src": "5187:33:19"
                }
              ]
            },
            "documentation": {
              "id": 25322,
              "nodeType": "StructuredDocumentation",
              "src": "4615:333:19",
              "text": " @dev Returns the key-value pair stored at position `index` in the map. O(1).\n Note that there are no guarantees on the ordering of entries inside the\n array, and it may change when more entries are added or removed.\n Requirements:\n - `index` must be strictly less than {length}."
            },
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_at",
            "parameters": {
              "id": 25327,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25324,
                  "mutability": "mutable",
                  "name": "map",
                  "nodeType": "VariableDeclaration",
                  "scope": 25356,
                  "src": "4966:15:19",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Map_$25147_storage_ptr",
                    "typeString": "struct EnumerableMapUpgradeable.Map"
                  },
                  "typeName": {
                    "id": 25323,
                    "name": "Map",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 25147,
                    "src": "4966:3:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Map_$25147_storage_ptr",
                      "typeString": "struct EnumerableMapUpgradeable.Map"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 25326,
                  "mutability": "mutable",
                  "name": "index",
                  "nodeType": "VariableDeclaration",
                  "scope": 25356,
                  "src": "4983:13:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 25325,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4983:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4965:32:19"
            },
            "returnParameters": {
              "id": 25332,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25329,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 25356,
                  "src": "5020:7:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 25328,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5020:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 25331,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 25356,
                  "src": "5029:7:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 25330,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5029:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5019:18:19"
            },
            "scope": 25691,
            "stateMutability": "view",
            "virtual": false,
            "visibility": "private"
          },
          {
            "id": 25394,
            "nodeType": "FunctionDefinition",
            "src": "5369:304:19",
            "body": {
              "id": 25393,
              "nodeType": "Block",
              "src": "5453:220:19",
              "statements": [
                {
                  "assignments": [
                    25369
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 25369,
                      "mutability": "mutable",
                      "name": "keyIndex",
                      "nodeType": "VariableDeclaration",
                      "scope": 25393,
                      "src": "5463:16:19",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 25368,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "5463:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 25374,
                  "initialValue": {
                    "baseExpression": {
                      "expression": {
                        "id": 25370,
                        "name": "map",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25359,
                        "src": "5482:3:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Map_$25147_storage_ptr",
                          "typeString": "struct EnumerableMapUpgradeable.Map storage pointer"
                        }
                      },
                      "id": 25371,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "_indexes",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 25146,
                      "src": "5482:12:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                        "typeString": "mapping(bytes32 => uint256)"
                      }
                    },
                    "id": 25373,
                    "indexExpression": {
                      "id": 25372,
                      "name": "key",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25361,
                      "src": "5495:3:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "5482:17:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5463:36:19"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 25377,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 25375,
                      "name": "keyIndex",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25369,
                      "src": "5513:8:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 25376,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "5525:1:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "5513:13:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 25382,
                  "nodeType": "IfStatement",
                  "src": "5509:36:19",
                  "trueBody": {
                    "expression": {
                      "components": [
                        {
                          "hexValue": "66616c7365",
                          "id": 25378,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "5536:5:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "false"
                        },
                        {
                          "hexValue": "30",
                          "id": 25379,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "5543:1:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        }
                      ],
                      "id": 25380,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "TupleExpression",
                      "src": "5535:10:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$",
                        "typeString": "tuple(bool,int_const 0)"
                      }
                    },
                    "functionReturnParameters": 25367,
                    "id": 25381,
                    "nodeType": "Return",
                    "src": "5528:17:19"
                  }
                },
                {
                  "expression": {
                    "components": [
                      {
                        "hexValue": "74727565",
                        "id": 25383,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5599:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "true"
                      },
                      {
                        "expression": {
                          "baseExpression": {
                            "expression": {
                              "id": 25384,
                              "name": "map",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 25359,
                              "src": "5605:3:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Map_$25147_storage_ptr",
                                "typeString": "struct EnumerableMapUpgradeable.Map storage pointer"
                              }
                            },
                            "id": 25385,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "_entries",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 25142,
                            "src": "5605:12:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_struct$_MapEntry_$25139_storage_$dyn_storage",
                              "typeString": "struct EnumerableMapUpgradeable.MapEntry storage ref[] storage ref"
                            }
                          },
                          "id": 25389,
                          "indexExpression": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 25388,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "id": 25386,
                              "name": "keyIndex",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 25369,
                              "src": "5618:8:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "-",
                            "rightExpression": {
                              "hexValue": "31",
                              "id": 25387,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "5629:1:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_1_by_1",
                                "typeString": "int_const 1"
                              },
                              "value": "1"
                            },
                            "src": "5618:12:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "5605:26:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_MapEntry_$25139_storage",
                            "typeString": "struct EnumerableMapUpgradeable.MapEntry storage ref"
                          }
                        },
                        "id": 25390,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "_value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 25138,
                        "src": "5605:33:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "id": 25391,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "5598:41:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_bool_$_t_bytes32_$",
                      "typeString": "tuple(bool,bytes32)"
                    }
                  },
                  "functionReturnParameters": 25367,
                  "id": 25392,
                  "nodeType": "Return",
                  "src": "5591:48:19"
                }
              ]
            },
            "documentation": {
              "id": 25357,
              "nodeType": "StructuredDocumentation",
              "src": "5233:131:19",
              "text": " @dev Tries to returns the value associated with `key`.  O(1).\n Does not revert if `key` is not in the map."
            },
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_tryGet",
            "parameters": {
              "id": 25362,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25359,
                  "mutability": "mutable",
                  "name": "map",
                  "nodeType": "VariableDeclaration",
                  "scope": 25394,
                  "src": "5386:15:19",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Map_$25147_storage_ptr",
                    "typeString": "struct EnumerableMapUpgradeable.Map"
                  },
                  "typeName": {
                    "id": 25358,
                    "name": "Map",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 25147,
                    "src": "5386:3:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Map_$25147_storage_ptr",
                      "typeString": "struct EnumerableMapUpgradeable.Map"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 25361,
                  "mutability": "mutable",
                  "name": "key",
                  "nodeType": "VariableDeclaration",
                  "scope": 25394,
                  "src": "5403:11:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 25360,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5403:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5385:30:19"
            },
            "returnParameters": {
              "id": 25367,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25364,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 25394,
                  "src": "5438:4:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 25363,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "5438:4:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 25366,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 25394,
                  "src": "5444:7:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 25365,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5444:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5437:15:19"
            },
            "scope": 25691,
            "stateMutability": "view",
            "virtual": false,
            "visibility": "private"
          },
          {
            "id": 25427,
            "nodeType": "FunctionDefinition",
            "src": "5825:307:19",
            "body": {
              "id": 25426,
              "nodeType": "Block",
              "src": "5900:232:19",
              "statements": [
                {
                  "assignments": [
                    25405
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 25405,
                      "mutability": "mutable",
                      "name": "keyIndex",
                      "nodeType": "VariableDeclaration",
                      "scope": 25426,
                      "src": "5910:16:19",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 25404,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "5910:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 25410,
                  "initialValue": {
                    "baseExpression": {
                      "expression": {
                        "id": 25406,
                        "name": "map",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25397,
                        "src": "5929:3:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Map_$25147_storage_ptr",
                          "typeString": "struct EnumerableMapUpgradeable.Map storage pointer"
                        }
                      },
                      "id": 25407,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "_indexes",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 25146,
                      "src": "5929:12:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                        "typeString": "mapping(bytes32 => uint256)"
                      }
                    },
                    "id": 25409,
                    "indexExpression": {
                      "id": 25408,
                      "name": "key",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25399,
                      "src": "5942:3:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "5929:17:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5910:36:19"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 25414,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 25412,
                          "name": "keyIndex",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 25405,
                          "src": "5964:8:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "hexValue": "30",
                          "id": 25413,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "5976:1:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "5964:13:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "456e756d657261626c654d61703a206e6f6e6578697374656e74206b6579",
                        "id": 25415,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5979:32:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_d3551e30d3095fd81287b88f7139bb09818e34280e85ee821994ebaebbed7072",
                          "typeString": "literal_string \"EnumerableMap: nonexistent key\""
                        },
                        "value": "EnumerableMap: nonexistent key"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_d3551e30d3095fd81287b88f7139bb09818e34280e85ee821994ebaebbed7072",
                          "typeString": "literal_string \"EnumerableMap: nonexistent key\""
                        }
                      ],
                      "id": 25411,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "5956:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 25416,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5956:56:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 25417,
                  "nodeType": "ExpressionStatement",
                  "src": "5956:56:19"
                },
                {
                  "expression": {
                    "expression": {
                      "baseExpression": {
                        "expression": {
                          "id": 25418,
                          "name": "map",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 25397,
                          "src": "6065:3:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Map_$25147_storage_ptr",
                            "typeString": "struct EnumerableMapUpgradeable.Map storage pointer"
                          }
                        },
                        "id": 25419,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "_entries",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 25142,
                        "src": "6065:12:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_MapEntry_$25139_storage_$dyn_storage",
                          "typeString": "struct EnumerableMapUpgradeable.MapEntry storage ref[] storage ref"
                        }
                      },
                      "id": 25423,
                      "indexExpression": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 25422,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 25420,
                          "name": "keyIndex",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 25405,
                          "src": "6078:8:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "-",
                        "rightExpression": {
                          "hexValue": "31",
                          "id": 25421,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "6089:1:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_1_by_1",
                            "typeString": "int_const 1"
                          },
                          "value": "1"
                        },
                        "src": "6078:12:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "6065:26:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_MapEntry_$25139_storage",
                        "typeString": "struct EnumerableMapUpgradeable.MapEntry storage ref"
                      }
                    },
                    "id": 25424,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "_value",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 25138,
                    "src": "6065:33:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 25403,
                  "id": 25425,
                  "nodeType": "Return",
                  "src": "6058:40:19"
                }
              ]
            },
            "documentation": {
              "id": 25395,
              "nodeType": "StructuredDocumentation",
              "src": "5679:141:19",
              "text": " @dev Returns the value associated with `key`.  O(1).\n Requirements:\n - `key` must be in the map."
            },
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_get",
            "parameters": {
              "id": 25400,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25397,
                  "mutability": "mutable",
                  "name": "map",
                  "nodeType": "VariableDeclaration",
                  "scope": 25427,
                  "src": "5839:15:19",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Map_$25147_storage_ptr",
                    "typeString": "struct EnumerableMapUpgradeable.Map"
                  },
                  "typeName": {
                    "id": 25396,
                    "name": "Map",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 25147,
                    "src": "5839:3:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Map_$25147_storage_ptr",
                      "typeString": "struct EnumerableMapUpgradeable.Map"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 25399,
                  "mutability": "mutable",
                  "name": "key",
                  "nodeType": "VariableDeclaration",
                  "scope": 25427,
                  "src": "5856:11:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 25398,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5856:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5838:30:19"
            },
            "returnParameters": {
              "id": 25403,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25402,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 25427,
                  "src": "5891:7:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 25401,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5891:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5890:9:19"
            },
            "scope": 25691,
            "stateMutability": "view",
            "virtual": false,
            "visibility": "private"
          },
          {
            "id": 25462,
            "nodeType": "FunctionDefinition",
            "src": "6414:315:19",
            "body": {
              "id": 25461,
              "nodeType": "Block",
              "src": "6517:212:19",
              "statements": [
                {
                  "assignments": [
                    25440
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 25440,
                      "mutability": "mutable",
                      "name": "keyIndex",
                      "nodeType": "VariableDeclaration",
                      "scope": 25461,
                      "src": "6527:16:19",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 25439,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "6527:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 25445,
                  "initialValue": {
                    "baseExpression": {
                      "expression": {
                        "id": 25441,
                        "name": "map",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25430,
                        "src": "6546:3:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Map_$25147_storage_ptr",
                          "typeString": "struct EnumerableMapUpgradeable.Map storage pointer"
                        }
                      },
                      "id": 25442,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "_indexes",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 25146,
                      "src": "6546:12:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                        "typeString": "mapping(bytes32 => uint256)"
                      }
                    },
                    "id": 25444,
                    "indexExpression": {
                      "id": 25443,
                      "name": "key",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25432,
                      "src": "6559:3:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "6546:17:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "6527:36:19"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 25449,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 25447,
                          "name": "keyIndex",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 25440,
                          "src": "6581:8:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "hexValue": "30",
                          "id": 25448,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "6593:1:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "6581:13:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "id": 25450,
                        "name": "errorMessage",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25434,
                        "src": "6596:12:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 25446,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "6573:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 25451,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6573:36:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 25452,
                  "nodeType": "ExpressionStatement",
                  "src": "6573:36:19"
                },
                {
                  "expression": {
                    "expression": {
                      "baseExpression": {
                        "expression": {
                          "id": 25453,
                          "name": "map",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 25430,
                          "src": "6662:3:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Map_$25147_storage_ptr",
                            "typeString": "struct EnumerableMapUpgradeable.Map storage pointer"
                          }
                        },
                        "id": 25454,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "_entries",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 25142,
                        "src": "6662:12:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_MapEntry_$25139_storage_$dyn_storage",
                          "typeString": "struct EnumerableMapUpgradeable.MapEntry storage ref[] storage ref"
                        }
                      },
                      "id": 25458,
                      "indexExpression": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 25457,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 25455,
                          "name": "keyIndex",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 25440,
                          "src": "6675:8:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "-",
                        "rightExpression": {
                          "hexValue": "31",
                          "id": 25456,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "6686:1:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_1_by_1",
                            "typeString": "int_const 1"
                          },
                          "value": "1"
                        },
                        "src": "6675:12:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "6662:26:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_MapEntry_$25139_storage",
                        "typeString": "struct EnumerableMapUpgradeable.MapEntry storage ref"
                      }
                    },
                    "id": 25459,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "_value",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 25138,
                    "src": "6662:33:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 25438,
                  "id": 25460,
                  "nodeType": "Return",
                  "src": "6655:40:19"
                }
              ]
            },
            "documentation": {
              "id": 25428,
              "nodeType": "StructuredDocumentation",
              "src": "6138:271:19",
              "text": " @dev Same as {_get}, with a custom error message when `key` is not in the map.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {_tryGet}."
            },
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_get",
            "parameters": {
              "id": 25435,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25430,
                  "mutability": "mutable",
                  "name": "map",
                  "nodeType": "VariableDeclaration",
                  "scope": 25462,
                  "src": "6428:15:19",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Map_$25147_storage_ptr",
                    "typeString": "struct EnumerableMapUpgradeable.Map"
                  },
                  "typeName": {
                    "id": 25429,
                    "name": "Map",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 25147,
                    "src": "6428:3:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Map_$25147_storage_ptr",
                      "typeString": "struct EnumerableMapUpgradeable.Map"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 25432,
                  "mutability": "mutable",
                  "name": "key",
                  "nodeType": "VariableDeclaration",
                  "scope": 25462,
                  "src": "6445:11:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 25431,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "6445:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 25434,
                  "mutability": "mutable",
                  "name": "errorMessage",
                  "nodeType": "VariableDeclaration",
                  "scope": 25462,
                  "src": "6458:26:19",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 25433,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "6458:6:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6427:58:19"
            },
            "returnParameters": {
              "id": 25438,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25437,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 25462,
                  "src": "6508:7:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 25436,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "6508:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6507:9:19"
            },
            "scope": 25691,
            "stateMutability": "view",
            "virtual": false,
            "visibility": "private"
          },
          {
            "id": 25465,
            "nodeType": "StructDefinition",
            "src": "6760:51:19",
            "canonicalName": "EnumerableMapUpgradeable.UintToAddressMap",
            "members": [
              {
                "constant": false,
                "id": 25464,
                "mutability": "mutable",
                "name": "_inner",
                "nodeType": "VariableDeclaration",
                "scope": 25465,
                "src": "6794:10:19",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_Map_$25147_storage_ptr",
                  "typeString": "struct EnumerableMapUpgradeable.Map"
                },
                "typeName": {
                  "id": 25463,
                  "name": "Map",
                  "nodeType": "UserDefinedTypeName",
                  "referencedDeclaration": 25147,
                  "src": "6794:3:19",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Map_$25147_storage_ptr",
                    "typeString": "struct EnumerableMapUpgradeable.Map"
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "UintToAddressMap",
            "scope": 25691,
            "visibility": "public"
          },
          {
            "id": 25497,
            "nodeType": "FunctionDefinition",
            "src": "7038:183:19",
            "body": {
              "id": 25496,
              "nodeType": "Block",
              "src": "7133:88:19",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 25478,
                          "name": "map",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 25468,
                          "src": "7155:3:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_UintToAddressMap_$25465_storage_ptr",
                            "typeString": "struct EnumerableMapUpgradeable.UintToAddressMap storage pointer"
                          }
                        },
                        "id": 25479,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "_inner",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 25464,
                        "src": "7155:10:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Map_$25147_storage",
                          "typeString": "struct EnumerableMapUpgradeable.Map storage ref"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "id": 25482,
                            "name": "key",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 25470,
                            "src": "7175:3:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 25481,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "7167:7:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes32_$",
                            "typeString": "type(bytes32)"
                          },
                          "typeName": {
                            "id": 25480,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "7167:7:19",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 25483,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7167:12:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "id": 25490,
                                    "name": "value",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 25472,
                                    "src": "7205:5:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  ],
                                  "id": 25489,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "7197:7:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint160_$",
                                    "typeString": "type(uint160)"
                                  },
                                  "typeName": {
                                    "id": 25488,
                                    "name": "uint160",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "7197:7:19",
                                    "typeDescriptions": {}
                                  }
                                },
                                "id": 25491,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "7197:14:19",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint160",
                                  "typeString": "uint160"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint160",
                                  "typeString": "uint160"
                                }
                              ],
                              "id": 25487,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "7189:7:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint256_$",
                                "typeString": "type(uint256)"
                              },
                              "typeName": {
                                "id": 25486,
                                "name": "uint256",
                                "nodeType": "ElementaryTypeName",
                                "src": "7189:7:19",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 25492,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "7189:23:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 25485,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "7181:7:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes32_$",
                            "typeString": "type(bytes32)"
                          },
                          "typeName": {
                            "id": 25484,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "7181:7:19",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 25493,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7181:32:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Map_$25147_storage",
                          "typeString": "struct EnumerableMapUpgradeable.Map storage ref"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 25477,
                      "name": "_set",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25209,
                      "src": "7150:4:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Map_$25147_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$_t_bool_$",
                        "typeString": "function (struct EnumerableMapUpgradeable.Map storage pointer,bytes32,bytes32) returns (bool)"
                      }
                    },
                    "id": 25494,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7150:64:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 25476,
                  "id": 25495,
                  "nodeType": "Return",
                  "src": "7143:71:19"
                }
              ]
            },
            "documentation": {
              "id": 25466,
              "nodeType": "StructuredDocumentation",
              "src": "6817:216:19",
              "text": " @dev Adds a key-value pair to a map, or updates the value for an existing\n key. O(1).\n Returns true if the key was added to the map, that is if it was not\n already present."
            },
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "set",
            "parameters": {
              "id": 25473,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25468,
                  "mutability": "mutable",
                  "name": "map",
                  "nodeType": "VariableDeclaration",
                  "scope": 25497,
                  "src": "7051:28:19",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_UintToAddressMap_$25465_storage_ptr",
                    "typeString": "struct EnumerableMapUpgradeable.UintToAddressMap"
                  },
                  "typeName": {
                    "id": 25467,
                    "name": "UintToAddressMap",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 25465,
                    "src": "7051:16:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_UintToAddressMap_$25465_storage_ptr",
                      "typeString": "struct EnumerableMapUpgradeable.UintToAddressMap"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 25470,
                  "mutability": "mutable",
                  "name": "key",
                  "nodeType": "VariableDeclaration",
                  "scope": 25497,
                  "src": "7081:11:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 25469,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7081:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 25472,
                  "mutability": "mutable",
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 25497,
                  "src": "7094:13:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 25471,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "7094:7:19",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7050:58:19"
            },
            "returnParameters": {
              "id": 25476,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25475,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 25497,
                  "src": "7127:4:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 25474,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "7127:4:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7126:6:19"
            },
            "scope": 25691,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "id": 25517,
            "nodeType": "FunctionDefinition",
            "src": "7380:140:19",
            "body": {
              "id": 25516,
              "nodeType": "Block",
              "src": "7463:57:19",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 25508,
                          "name": "map",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 25500,
                          "src": "7488:3:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_UintToAddressMap_$25465_storage_ptr",
                            "typeString": "struct EnumerableMapUpgradeable.UintToAddressMap storage pointer"
                          }
                        },
                        "id": 25509,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "_inner",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 25464,
                        "src": "7488:10:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Map_$25147_storage",
                          "typeString": "struct EnumerableMapUpgradeable.Map storage ref"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "id": 25512,
                            "name": "key",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 25502,
                            "src": "7508:3:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 25511,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "7500:7:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes32_$",
                            "typeString": "type(bytes32)"
                          },
                          "typeName": {
                            "id": 25510,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "7500:7:19",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 25513,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7500:12:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Map_$25147_storage",
                          "typeString": "struct EnumerableMapUpgradeable.Map storage ref"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 25507,
                      "name": "_remove",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25290,
                      "src": "7480:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Map_$25147_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
                        "typeString": "function (struct EnumerableMapUpgradeable.Map storage pointer,bytes32) returns (bool)"
                      }
                    },
                    "id": 25514,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7480:33:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 25506,
                  "id": 25515,
                  "nodeType": "Return",
                  "src": "7473:40:19"
                }
              ]
            },
            "documentation": {
              "id": 25498,
              "nodeType": "StructuredDocumentation",
              "src": "7227:148:19",
              "text": " @dev Removes a value from a set. O(1).\n Returns true if the key was removed from the map, that is if it was present."
            },
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "remove",
            "parameters": {
              "id": 25503,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25500,
                  "mutability": "mutable",
                  "name": "map",
                  "nodeType": "VariableDeclaration",
                  "scope": 25517,
                  "src": "7396:28:19",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_UintToAddressMap_$25465_storage_ptr",
                    "typeString": "struct EnumerableMapUpgradeable.UintToAddressMap"
                  },
                  "typeName": {
                    "id": 25499,
                    "name": "UintToAddressMap",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 25465,
                    "src": "7396:16:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_UintToAddressMap_$25465_storage_ptr",
                      "typeString": "struct EnumerableMapUpgradeable.UintToAddressMap"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 25502,
                  "mutability": "mutable",
                  "name": "key",
                  "nodeType": "VariableDeclaration",
                  "scope": 25517,
                  "src": "7426:11:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 25501,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7426:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7395:43:19"
            },
            "returnParameters": {
              "id": 25506,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25505,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 25517,
                  "src": "7457:4:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 25504,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "7457:4:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7456:6:19"
            },
            "scope": 25691,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "id": 25537,
            "nodeType": "FunctionDefinition",
            "src": "7599:149:19",
            "body": {
              "id": 25536,
              "nodeType": "Block",
              "src": "7689:59:19",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 25528,
                          "name": "map",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 25520,
                          "src": "7716:3:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_UintToAddressMap_$25465_storage_ptr",
                            "typeString": "struct EnumerableMapUpgradeable.UintToAddressMap storage pointer"
                          }
                        },
                        "id": 25529,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "_inner",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 25464,
                        "src": "7716:10:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Map_$25147_storage",
                          "typeString": "struct EnumerableMapUpgradeable.Map storage ref"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "id": 25532,
                            "name": "key",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 25522,
                            "src": "7736:3:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 25531,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "7728:7:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes32_$",
                            "typeString": "type(bytes32)"
                          },
                          "typeName": {
                            "id": 25530,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "7728:7:19",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 25533,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7728:12:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Map_$25147_storage",
                          "typeString": "struct EnumerableMapUpgradeable.Map storage ref"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 25527,
                      "name": "_contains",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25308,
                      "src": "7706:9:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$25147_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
                        "typeString": "function (struct EnumerableMapUpgradeable.Map storage pointer,bytes32) view returns (bool)"
                      }
                    },
                    "id": 25534,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7706:35:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 25526,
                  "id": 25535,
                  "nodeType": "Return",
                  "src": "7699:42:19"
                }
              ]
            },
            "documentation": {
              "id": 25518,
              "nodeType": "StructuredDocumentation",
              "src": "7526:68:19",
              "text": " @dev Returns true if the key is in the map. O(1)."
            },
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "contains",
            "parameters": {
              "id": 25523,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25520,
                  "mutability": "mutable",
                  "name": "map",
                  "nodeType": "VariableDeclaration",
                  "scope": 25537,
                  "src": "7617:28:19",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_UintToAddressMap_$25465_storage_ptr",
                    "typeString": "struct EnumerableMapUpgradeable.UintToAddressMap"
                  },
                  "typeName": {
                    "id": 25519,
                    "name": "UintToAddressMap",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 25465,
                    "src": "7617:16:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_UintToAddressMap_$25465_storage_ptr",
                      "typeString": "struct EnumerableMapUpgradeable.UintToAddressMap"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 25522,
                  "mutability": "mutable",
                  "name": "key",
                  "nodeType": "VariableDeclaration",
                  "scope": 25537,
                  "src": "7647:11:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 25521,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7647:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7616:43:19"
            },
            "returnParameters": {
              "id": 25526,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25525,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 25537,
                  "src": "7683:4:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 25524,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "7683:4:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7682:6:19"
            },
            "scope": 25691,
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "id": 25551,
            "nodeType": "FunctionDefinition",
            "src": "7831:121:19",
            "body": {
              "id": 25550,
              "nodeType": "Block",
              "src": "7909:43:19",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 25546,
                          "name": "map",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 25540,
                          "src": "7934:3:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_UintToAddressMap_$25465_storage_ptr",
                            "typeString": "struct EnumerableMapUpgradeable.UintToAddressMap storage pointer"
                          }
                        },
                        "id": 25547,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "_inner",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 25464,
                        "src": "7934:10:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Map_$25147_storage",
                          "typeString": "struct EnumerableMapUpgradeable.Map storage ref"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Map_$25147_storage",
                          "typeString": "struct EnumerableMapUpgradeable.Map storage ref"
                        }
                      ],
                      "id": 25545,
                      "name": "_length",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25321,
                      "src": "7926:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$25147_storage_ptr_$returns$_t_uint256_$",
                        "typeString": "function (struct EnumerableMapUpgradeable.Map storage pointer) view returns (uint256)"
                      }
                    },
                    "id": 25548,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7926:19:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 25544,
                  "id": 25549,
                  "nodeType": "Return",
                  "src": "7919:26:19"
                }
              ]
            },
            "documentation": {
              "id": 25538,
              "nodeType": "StructuredDocumentation",
              "src": "7754:72:19",
              "text": " @dev Returns the number of elements in the map. O(1)."
            },
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "length",
            "parameters": {
              "id": 25541,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25540,
                  "mutability": "mutable",
                  "name": "map",
                  "nodeType": "VariableDeclaration",
                  "scope": 25551,
                  "src": "7847:28:19",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_UintToAddressMap_$25465_storage_ptr",
                    "typeString": "struct EnumerableMapUpgradeable.UintToAddressMap"
                  },
                  "typeName": {
                    "id": 25539,
                    "name": "UintToAddressMap",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 25465,
                    "src": "7847:16:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_UintToAddressMap_$25465_storage_ptr",
                      "typeString": "struct EnumerableMapUpgradeable.UintToAddressMap"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7846:30:19"
            },
            "returnParameters": {
              "id": 25544,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25543,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 25551,
                  "src": "7900:7:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 25542,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7900:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7899:9:19"
            },
            "scope": 25691,
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "id": 25590,
            "nodeType": "FunctionDefinition",
            "src": "8280:233:19",
            "body": {
              "id": 25589,
              "nodeType": "Block",
              "src": "8378:135:19",
              "statements": [
                {
                  "assignments": [
                    25564,
                    25566
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 25564,
                      "mutability": "mutable",
                      "name": "key",
                      "nodeType": "VariableDeclaration",
                      "scope": 25589,
                      "src": "8389:11:19",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 25563,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "8389:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 25566,
                      "mutability": "mutable",
                      "name": "value",
                      "nodeType": "VariableDeclaration",
                      "scope": 25589,
                      "src": "8402:13:19",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 25565,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "8402:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 25572,
                  "initialValue": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 25568,
                          "name": "map",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 25554,
                          "src": "8423:3:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_UintToAddressMap_$25465_storage_ptr",
                            "typeString": "struct EnumerableMapUpgradeable.UintToAddressMap storage pointer"
                          }
                        },
                        "id": 25569,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "_inner",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 25464,
                        "src": "8423:10:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Map_$25147_storage",
                          "typeString": "struct EnumerableMapUpgradeable.Map storage ref"
                        }
                      },
                      {
                        "id": 25570,
                        "name": "index",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25556,
                        "src": "8435:5:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Map_$25147_storage",
                          "typeString": "struct EnumerableMapUpgradeable.Map storage ref"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 25567,
                      "name": "_at",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25356,
                      "src": "8419:3:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$25147_storage_ptr_$_t_uint256_$returns$_t_bytes32_$_t_bytes32_$",
                        "typeString": "function (struct EnumerableMapUpgradeable.Map storage pointer,uint256) view returns (bytes32,bytes32)"
                      }
                    },
                    "id": 25571,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8419:22:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_bytes32_$_t_bytes32_$",
                      "typeString": "tuple(bytes32,bytes32)"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8388:53:19"
                },
                {
                  "expression": {
                    "components": [
                      {
                        "arguments": [
                          {
                            "id": 25575,
                            "name": "key",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 25564,
                            "src": "8467:3:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 25574,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "8459:7:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint256_$",
                            "typeString": "type(uint256)"
                          },
                          "typeName": {
                            "id": 25573,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "8459:7:19",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 25576,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8459:12:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "id": 25583,
                                    "name": "value",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 25566,
                                    "src": "8497:5:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  ],
                                  "id": 25582,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "8489:7:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint256_$",
                                    "typeString": "type(uint256)"
                                  },
                                  "typeName": {
                                    "id": 25581,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "8489:7:19",
                                    "typeDescriptions": {}
                                  }
                                },
                                "id": 25584,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "8489:14:19",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 25580,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "8481:7:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint160_$",
                                "typeString": "type(uint160)"
                              },
                              "typeName": {
                                "id": 25579,
                                "name": "uint160",
                                "nodeType": "ElementaryTypeName",
                                "src": "8481:7:19",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 25585,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "8481:23:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint160",
                              "typeString": "uint160"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint160",
                              "typeString": "uint160"
                            }
                          ],
                          "id": 25578,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "8473:7:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": {
                            "id": 25577,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "8473:7:19",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 25586,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8473:32:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      }
                    ],
                    "id": 25587,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "8458:48:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_uint256_$_t_address_payable_$",
                      "typeString": "tuple(uint256,address payable)"
                    }
                  },
                  "functionReturnParameters": 25562,
                  "id": 25588,
                  "nodeType": "Return",
                  "src": "8451:55:19"
                }
              ]
            },
            "documentation": {
              "id": 25552,
              "nodeType": "StructuredDocumentation",
              "src": "7957:318:19",
              "text": " @dev Returns the element stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}."
            },
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "at",
            "parameters": {
              "id": 25557,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25554,
                  "mutability": "mutable",
                  "name": "map",
                  "nodeType": "VariableDeclaration",
                  "scope": 25590,
                  "src": "8292:28:19",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_UintToAddressMap_$25465_storage_ptr",
                    "typeString": "struct EnumerableMapUpgradeable.UintToAddressMap"
                  },
                  "typeName": {
                    "id": 25553,
                    "name": "UintToAddressMap",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 25465,
                    "src": "8292:16:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_UintToAddressMap_$25465_storage_ptr",
                      "typeString": "struct EnumerableMapUpgradeable.UintToAddressMap"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 25556,
                  "mutability": "mutable",
                  "name": "index",
                  "nodeType": "VariableDeclaration",
                  "scope": 25590,
                  "src": "8322:13:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 25555,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "8322:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8291:45:19"
            },
            "returnParameters": {
              "id": 25562,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25559,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 25590,
                  "src": "8360:7:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 25558,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "8360:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 25561,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 25590,
                  "src": "8369:7:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 25560,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "8369:7:19",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8359:18:19"
            },
            "scope": 25691,
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "id": 25629,
            "nodeType": "FunctionDefinition",
            "src": "8693:239:19",
            "body": {
              "id": 25628,
              "nodeType": "Block",
              "src": "8790:142:19",
              "statements": [
                {
                  "assignments": [
                    25603,
                    25605
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 25603,
                      "mutability": "mutable",
                      "name": "success",
                      "nodeType": "VariableDeclaration",
                      "scope": 25628,
                      "src": "8801:12:19",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "typeName": {
                        "id": 25602,
                        "name": "bool",
                        "nodeType": "ElementaryTypeName",
                        "src": "8801:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 25605,
                      "mutability": "mutable",
                      "name": "value",
                      "nodeType": "VariableDeclaration",
                      "scope": 25628,
                      "src": "8815:13:19",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 25604,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "8815:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 25614,
                  "initialValue": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 25607,
                          "name": "map",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 25593,
                          "src": "8840:3:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_UintToAddressMap_$25465_storage_ptr",
                            "typeString": "struct EnumerableMapUpgradeable.UintToAddressMap storage pointer"
                          }
                        },
                        "id": 25608,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "_inner",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 25464,
                        "src": "8840:10:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Map_$25147_storage",
                          "typeString": "struct EnumerableMapUpgradeable.Map storage ref"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "id": 25611,
                            "name": "key",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 25595,
                            "src": "8860:3:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 25610,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "8852:7:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes32_$",
                            "typeString": "type(bytes32)"
                          },
                          "typeName": {
                            "id": 25609,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "8852:7:19",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 25612,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8852:12:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Map_$25147_storage",
                          "typeString": "struct EnumerableMapUpgradeable.Map storage ref"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 25606,
                      "name": "_tryGet",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25394,
                      "src": "8832:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$25147_storage_ptr_$_t_bytes32_$returns$_t_bool_$_t_bytes32_$",
                        "typeString": "function (struct EnumerableMapUpgradeable.Map storage pointer,bytes32) view returns (bool,bytes32)"
                      }
                    },
                    "id": 25613,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8832:33:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_bool_$_t_bytes32_$",
                      "typeString": "tuple(bool,bytes32)"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8800:65:19"
                },
                {
                  "expression": {
                    "components": [
                      {
                        "id": 25615,
                        "name": "success",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25603,
                        "src": "8883:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "id": 25622,
                                    "name": "value",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 25605,
                                    "src": "8916:5:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  ],
                                  "id": 25621,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "8908:7:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint256_$",
                                    "typeString": "type(uint256)"
                                  },
                                  "typeName": {
                                    "id": 25620,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "8908:7:19",
                                    "typeDescriptions": {}
                                  }
                                },
                                "id": 25623,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "8908:14:19",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 25619,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "8900:7:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint160_$",
                                "typeString": "type(uint160)"
                              },
                              "typeName": {
                                "id": 25618,
                                "name": "uint160",
                                "nodeType": "ElementaryTypeName",
                                "src": "8900:7:19",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 25624,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "8900:23:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint160",
                              "typeString": "uint160"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint160",
                              "typeString": "uint160"
                            }
                          ],
                          "id": 25617,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "8892:7:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": {
                            "id": 25616,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "8892:7:19",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 25625,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8892:32:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      }
                    ],
                    "id": 25626,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "8882:43:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_bool_$_t_address_payable_$",
                      "typeString": "tuple(bool,address payable)"
                    }
                  },
                  "functionReturnParameters": 25601,
                  "id": 25627,
                  "nodeType": "Return",
                  "src": "8875:50:19"
                }
              ]
            },
            "documentation": {
              "id": 25591,
              "nodeType": "StructuredDocumentation",
              "src": "8519:169:19",
              "text": " @dev Tries to returns the value associated with `key`.  O(1).\n Does not revert if `key` is not in the map.\n _Available since v3.4._"
            },
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "tryGet",
            "parameters": {
              "id": 25596,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25593,
                  "mutability": "mutable",
                  "name": "map",
                  "nodeType": "VariableDeclaration",
                  "scope": 25629,
                  "src": "8709:28:19",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_UintToAddressMap_$25465_storage_ptr",
                    "typeString": "struct EnumerableMapUpgradeable.UintToAddressMap"
                  },
                  "typeName": {
                    "id": 25592,
                    "name": "UintToAddressMap",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 25465,
                    "src": "8709:16:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_UintToAddressMap_$25465_storage_ptr",
                      "typeString": "struct EnumerableMapUpgradeable.UintToAddressMap"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 25595,
                  "mutability": "mutable",
                  "name": "key",
                  "nodeType": "VariableDeclaration",
                  "scope": 25629,
                  "src": "8739:11:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 25594,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "8739:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8708:43:19"
            },
            "returnParameters": {
              "id": 25601,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25598,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 25629,
                  "src": "8775:4:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 25597,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "8775:4:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 25600,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 25629,
                  "src": "8781:7:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 25599,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "8781:7:19",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8774:15:19"
            },
            "scope": 25691,
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "id": 25658,
            "nodeType": "FunctionDefinition",
            "src": "9084:169:19",
            "body": {
              "id": 25657,
              "nodeType": "Block",
              "src": "9172:81:19",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "expression": {
                                      "id": 25646,
                                      "name": "map",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 25632,
                                      "src": "9218:3:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_UintToAddressMap_$25465_storage_ptr",
                                        "typeString": "struct EnumerableMapUpgradeable.UintToAddressMap storage pointer"
                                      }
                                    },
                                    "id": 25647,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "_inner",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 25464,
                                    "src": "9218:10:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Map_$25147_storage",
                                      "typeString": "struct EnumerableMapUpgradeable.Map storage ref"
                                    }
                                  },
                                  {
                                    "arguments": [
                                      {
                                        "id": 25650,
                                        "name": "key",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 25634,
                                        "src": "9238:3:19",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      ],
                                      "id": 25649,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "9230:7:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_bytes32_$",
                                        "typeString": "type(bytes32)"
                                      },
                                      "typeName": {
                                        "id": 25648,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "9230:7:19",
                                        "typeDescriptions": {}
                                      }
                                    },
                                    "id": 25651,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "9230:12:19",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_struct$_Map_$25147_storage",
                                      "typeString": "struct EnumerableMapUpgradeable.Map storage ref"
                                    },
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  ],
                                  "id": 25645,
                                  "name": "_get",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [
                                    25427,
                                    25462
                                  ],
                                  "referencedDeclaration": 25427,
                                  "src": "9213:4:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$25147_storage_ptr_$_t_bytes32_$returns$_t_bytes32_$",
                                    "typeString": "function (struct EnumerableMapUpgradeable.Map storage pointer,bytes32) view returns (bytes32)"
                                  }
                                },
                                "id": 25652,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "9213:30:19",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "id": 25644,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "9205:7:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint256_$",
                                "typeString": "type(uint256)"
                              },
                              "typeName": {
                                "id": 25643,
                                "name": "uint256",
                                "nodeType": "ElementaryTypeName",
                                "src": "9205:7:19",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 25653,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "9205:39:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 25642,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "9197:7:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint160_$",
                            "typeString": "type(uint160)"
                          },
                          "typeName": {
                            "id": 25641,
                            "name": "uint160",
                            "nodeType": "ElementaryTypeName",
                            "src": "9197:7:19",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 25654,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "9197:48:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint160",
                          "typeString": "uint160"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint160",
                          "typeString": "uint160"
                        }
                      ],
                      "id": 25640,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "9189:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_address_$",
                        "typeString": "type(address)"
                      },
                      "typeName": {
                        "id": 25639,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "9189:7:19",
                        "typeDescriptions": {}
                      }
                    },
                    "id": 25655,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9189:57:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_address_payable",
                      "typeString": "address payable"
                    }
                  },
                  "functionReturnParameters": 25638,
                  "id": 25656,
                  "nodeType": "Return",
                  "src": "9182:64:19"
                }
              ]
            },
            "documentation": {
              "id": 25630,
              "nodeType": "StructuredDocumentation",
              "src": "8938:141:19",
              "text": " @dev Returns the value associated with `key`.  O(1).\n Requirements:\n - `key` must be in the map."
            },
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "get",
            "parameters": {
              "id": 25635,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25632,
                  "mutability": "mutable",
                  "name": "map",
                  "nodeType": "VariableDeclaration",
                  "scope": 25658,
                  "src": "9097:28:19",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_UintToAddressMap_$25465_storage_ptr",
                    "typeString": "struct EnumerableMapUpgradeable.UintToAddressMap"
                  },
                  "typeName": {
                    "id": 25631,
                    "name": "UintToAddressMap",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 25465,
                    "src": "9097:16:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_UintToAddressMap_$25465_storage_ptr",
                      "typeString": "struct EnumerableMapUpgradeable.UintToAddressMap"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 25634,
                  "mutability": "mutable",
                  "name": "key",
                  "nodeType": "VariableDeclaration",
                  "scope": 25658,
                  "src": "9127:11:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 25633,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "9127:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "9096:43:19"
            },
            "returnParameters": {
              "id": 25638,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25637,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 25658,
                  "src": "9163:7:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 25636,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "9163:7:19",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "9162:9:19"
            },
            "scope": 25691,
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "id": 25690,
            "nodeType": "FunctionDefinition",
            "src": "9533:211:19",
            "body": {
              "id": 25689,
              "nodeType": "Block",
              "src": "9649:95:19",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "expression": {
                                      "id": 25677,
                                      "name": "map",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 25661,
                                      "src": "9695:3:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_UintToAddressMap_$25465_storage_ptr",
                                        "typeString": "struct EnumerableMapUpgradeable.UintToAddressMap storage pointer"
                                      }
                                    },
                                    "id": 25678,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "_inner",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 25464,
                                    "src": "9695:10:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Map_$25147_storage",
                                      "typeString": "struct EnumerableMapUpgradeable.Map storage ref"
                                    }
                                  },
                                  {
                                    "arguments": [
                                      {
                                        "id": 25681,
                                        "name": "key",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 25663,
                                        "src": "9715:3:19",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      ],
                                      "id": 25680,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "9707:7:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_bytes32_$",
                                        "typeString": "type(bytes32)"
                                      },
                                      "typeName": {
                                        "id": 25679,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "9707:7:19",
                                        "typeDescriptions": {}
                                      }
                                    },
                                    "id": 25682,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "9707:12:19",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  {
                                    "id": 25683,
                                    "name": "errorMessage",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 25665,
                                    "src": "9721:12:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_string_memory_ptr",
                                      "typeString": "string memory"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_struct$_Map_$25147_storage",
                                      "typeString": "struct EnumerableMapUpgradeable.Map storage ref"
                                    },
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    {
                                      "typeIdentifier": "t_string_memory_ptr",
                                      "typeString": "string memory"
                                    }
                                  ],
                                  "id": 25676,
                                  "name": "_get",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [
                                    25427,
                                    25462
                                  ],
                                  "referencedDeclaration": 25462,
                                  "src": "9690:4:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$25147_storage_ptr_$_t_bytes32_$_t_string_memory_ptr_$returns$_t_bytes32_$",
                                    "typeString": "function (struct EnumerableMapUpgradeable.Map storage pointer,bytes32,string memory) view returns (bytes32)"
                                  }
                                },
                                "id": 25684,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "9690:44:19",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "id": 25675,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "9682:7:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint256_$",
                                "typeString": "type(uint256)"
                              },
                              "typeName": {
                                "id": 25674,
                                "name": "uint256",
                                "nodeType": "ElementaryTypeName",
                                "src": "9682:7:19",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 25685,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "9682:53:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 25673,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "9674:7:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint160_$",
                            "typeString": "type(uint160)"
                          },
                          "typeName": {
                            "id": 25672,
                            "name": "uint160",
                            "nodeType": "ElementaryTypeName",
                            "src": "9674:7:19",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 25686,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "9674:62:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint160",
                          "typeString": "uint160"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint160",
                          "typeString": "uint160"
                        }
                      ],
                      "id": 25671,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "9666:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_address_$",
                        "typeString": "type(address)"
                      },
                      "typeName": {
                        "id": 25670,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "9666:7:19",
                        "typeDescriptions": {}
                      }
                    },
                    "id": 25687,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9666:71:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_address_payable",
                      "typeString": "address payable"
                    }
                  },
                  "functionReturnParameters": 25669,
                  "id": 25688,
                  "nodeType": "Return",
                  "src": "9659:78:19"
                }
              ]
            },
            "documentation": {
              "id": 25659,
              "nodeType": "StructuredDocumentation",
              "src": "9259:269:19",
              "text": " @dev Same as {get}, with a custom error message when `key` is not in the map.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryGet}."
            },
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "get",
            "parameters": {
              "id": 25666,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25661,
                  "mutability": "mutable",
                  "name": "map",
                  "nodeType": "VariableDeclaration",
                  "scope": 25690,
                  "src": "9546:28:19",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_UintToAddressMap_$25465_storage_ptr",
                    "typeString": "struct EnumerableMapUpgradeable.UintToAddressMap"
                  },
                  "typeName": {
                    "id": 25660,
                    "name": "UintToAddressMap",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 25465,
                    "src": "9546:16:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_UintToAddressMap_$25465_storage_ptr",
                      "typeString": "struct EnumerableMapUpgradeable.UintToAddressMap"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 25663,
                  "mutability": "mutable",
                  "name": "key",
                  "nodeType": "VariableDeclaration",
                  "scope": 25690,
                  "src": "9576:11:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 25662,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "9576:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 25665,
                  "mutability": "mutable",
                  "name": "errorMessage",
                  "nodeType": "VariableDeclaration",
                  "scope": 25690,
                  "src": "9589:26:19",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 25664,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "9589:6:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "9545:71:19"
            },
            "returnParameters": {
              "id": 25669,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25668,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 25690,
                  "src": "9640:7:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 25667,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "9640:7:19",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "9639:9:19"
            },
            "scope": 25691,
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          }
        ],
        "abstract": false,
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "library",
        "documentation": {
          "id": 25134,
          "nodeType": "StructuredDocumentation",
          "src": "66:705:19",
          "text": " @dev Library for managing an enumerable variant of Solidity's\n https://solidity.readthedocs.io/en/latest/types.html#mapping-types[`mapping`]\n type.\n Maps have the following properties:\n - Entries are added, removed, and checked for existence in constant time\n (O(1)).\n - Entries are enumerated in O(n). No guarantees are made on the ordering.\n ```\n contract Example {\n     // Add the library methods\n     using EnumerableMap for EnumerableMap.UintToAddressMap;\n     // Declare a set state variable\n     EnumerableMap.UintToAddressMap private myMap;\n }\n ```\n As of v3.0.0, only maps of type `uint256 -> address` (`UintToAddressMap`) are\n supported."
        },
        "fullyImplemented": true,
        "linearizedBaseContracts": [
          25691
        ],
        "name": "EnumerableMapUpgradeable",
        "scope": 25692
      }
    ],
    "license": "MIT"
  },
  "id": 19
}