{
  "type": "Program",
  "start": 0,
  "end": 5864,
  "loc": {
    "start": {
      "line": 1,
      "column": 0
    },
    "end": {
      "line": 160,
      "column": 0
    }
  },
  "sourceType": "module",
  "body": [
    {
      "type": "VariableDeclaration",
      "start": 0,
      "end": 263,
      "loc": {
        "start": {
          "line": 1,
          "column": 0
        },
        "end": {
          "line": 6,
          "column": 34
        }
      },
      "declarations": [
        {
          "type": "VariableDeclarator",
          "start": 4,
          "end": 44,
          "loc": {
            "start": {
              "line": 1,
              "column": 4
            },
            "end": {
              "line": 1,
              "column": 44
            }
          },
          "id": {
            "type": "Identifier",
            "start": 4,
            "end": 8,
            "loc": {
              "start": {
                "line": 1,
                "column": 4
              },
              "end": {
                "line": 1,
                "column": 8
              }
            },
            "name": "each"
          },
          "init": {
            "type": "CallExpression",
            "start": 11,
            "end": 44,
            "loc": {
              "start": {
                "line": 1,
                "column": 11
              },
              "end": {
                "line": 1,
                "column": 44
              }
            },
            "callee": {
              "type": "Identifier",
              "start": 11,
              "end": 18,
              "loc": {
                "start": {
                  "line": 1,
                  "column": 11
                },
                "end": {
                  "line": 1,
                  "column": 18
                }
              },
              "name": "require"
            },
            "arguments": [
              {
                "type": "Literal",
                "start": 19,
                "end": 43,
                "loc": {
                  "start": {
                    "line": 1,
                    "column": 19
                  },
                  "end": {
                    "line": 1,
                    "column": 43
                  }
                },
                "value": "lodash/collection/each",
                "rawValue": "lodash/collection/each",
                "raw": "\"lodash/collection/each\""
              }
            ]
          }
        },
        {
          "type": "VariableDeclarator",
          "start": 50,
          "end": 88,
          "loc": {
            "start": {
              "line": 2,
              "column": 4
            },
            "end": {
              "line": 2,
              "column": 42
            }
          },
          "id": {
            "type": "Identifier",
            "start": 50,
            "end": 54,
            "loc": {
              "start": {
                "line": 2,
                "column": 4
              },
              "end": {
                "line": 2,
                "column": 8
              }
            },
            "name": "once"
          },
          "init": {
            "type": "CallExpression",
            "start": 57,
            "end": 88,
            "loc": {
              "start": {
                "line": 2,
                "column": 11
              },
              "end": {
                "line": 2,
                "column": 42
              }
            },
            "callee": {
              "type": "Identifier",
              "start": 57,
              "end": 64,
              "loc": {
                "start": {
                  "line": 2,
                  "column": 11
                },
                "end": {
                  "line": 2,
                  "column": 18
                }
              },
              "name": "require"
            },
            "arguments": [
              {
                "type": "Literal",
                "start": 65,
                "end": 87,
                "loc": {
                  "start": {
                    "line": 2,
                    "column": 19
                  },
                  "end": {
                    "line": 2,
                    "column": 41
                  }
                },
                "value": "lodash/function/once",
                "rawValue": "lodash/function/once",
                "raw": "\"lodash/function/once\""
              }
            ]
          }
        },
        {
          "type": "VariableDeclarator",
          "start": 94,
          "end": 130,
          "loc": {
            "start": {
              "line": 3,
              "column": 4
            },
            "end": {
              "line": 3,
              "column": 40
            }
          },
          "id": {
            "type": "Identifier",
            "start": 94,
            "end": 98,
            "loc": {
              "start": {
                "line": 3,
                "column": 4
              },
              "end": {
                "line": 3,
                "column": 8
              }
            },
            "name": "keys"
          },
          "init": {
            "type": "CallExpression",
            "start": 101,
            "end": 130,
            "loc": {
              "start": {
                "line": 3,
                "column": 11
              },
              "end": {
                "line": 3,
                "column": 40
              }
            },
            "callee": {
              "type": "Identifier",
              "start": 101,
              "end": 108,
              "loc": {
                "start": {
                  "line": 3,
                  "column": 11
                },
                "end": {
                  "line": 3,
                  "column": 18
                }
              },
              "name": "require"
            },
            "arguments": [
              {
                "type": "Literal",
                "start": 109,
                "end": 129,
                "loc": {
                  "start": {
                    "line": 3,
                    "column": 19
                  },
                  "end": {
                    "line": 3,
                    "column": 39
                  }
                },
                "value": "lodash/object/keys",
                "rawValue": "lodash/object/keys",
                "raw": "\"lodash/object/keys\""
              }
            ]
          }
        },
        {
          "type": "VariableDeclarator",
          "start": 136,
          "end": 176,
          "loc": {
            "start": {
              "line": 4,
              "column": 4
            },
            "end": {
              "line": 4,
              "column": 44
            }
          },
          "id": {
            "type": "Identifier",
            "start": 136,
            "end": 143,
            "loc": {
              "start": {
                "line": 4,
                "column": 4
              },
              "end": {
                "line": 4,
                "column": 11
              }
            },
            "name": "isEmpty"
          },
          "init": {
            "type": "CallExpression",
            "start": 146,
            "end": 176,
            "loc": {
              "start": {
                "line": 4,
                "column": 14
              },
              "end": {
                "line": 4,
                "column": 44
              }
            },
            "callee": {
              "type": "Identifier",
              "start": 146,
              "end": 153,
              "loc": {
                "start": {
                  "line": 4,
                  "column": 14
                },
                "end": {
                  "line": 4,
                  "column": 21
                }
              },
              "name": "require"
            },
            "arguments": [
              {
                "type": "Literal",
                "start": 154,
                "end": 175,
                "loc": {
                  "start": {
                    "line": 4,
                    "column": 22
                  },
                  "end": {
                    "line": 4,
                    "column": 43
                  }
                },
                "value": "lodash/lang/isEmpty",
                "rawValue": "lodash/lang/isEmpty",
                "raw": "\"lodash/lang/isEmpty\""
              }
            ]
          }
        },
        {
          "type": "VariableDeclarator",
          "start": 182,
          "end": 227,
          "loc": {
            "start": {
              "line": 5,
              "column": 4
            },
            "end": {
              "line": 5,
              "column": 49
            }
          },
          "id": {
            "type": "Identifier",
            "start": 182,
            "end": 190,
            "loc": {
              "start": {
                "line": 5,
                "column": 4
              },
              "end": {
                "line": 5,
                "column": 12
              }
            },
            "name": "uniqueId"
          },
          "init": {
            "type": "CallExpression",
            "start": 193,
            "end": 227,
            "loc": {
              "start": {
                "line": 5,
                "column": 15
              },
              "end": {
                "line": 5,
                "column": 49
              }
            },
            "callee": {
              "type": "Identifier",
              "start": 193,
              "end": 200,
              "loc": {
                "start": {
                  "line": 5,
                  "column": 15
                },
                "end": {
                  "line": 5,
                  "column": 22
                }
              },
              "name": "require"
            },
            "arguments": [
              {
                "type": "Literal",
                "start": 201,
                "end": 226,
                "loc": {
                  "start": {
                    "line": 5,
                    "column": 23
                  },
                  "end": {
                    "line": 5,
                    "column": 48
                  }
                },
                "value": "lodash/utility/uniqueId",
                "rawValue": "lodash/utility/uniqueId",
                "raw": "\"lodash/utility/uniqueId\""
              }
            ]
          }
        },
        {
          "type": "VariableDeclarator",
          "start": 233,
          "end": 262,
          "loc": {
            "start": {
              "line": 6,
              "column": 4
            },
            "end": {
              "line": 6,
              "column": 33
            }
          },
          "id": {
            "type": "Identifier",
            "start": 233,
            "end": 238,
            "loc": {
              "start": {
                "line": 6,
                "column": 4
              },
              "end": {
                "line": 6,
                "column": 9
              }
            },
            "name": "slice"
          },
          "init": {
            "type": "MemberExpression",
            "start": 241,
            "end": 262,
            "loc": {
              "start": {
                "line": 6,
                "column": 12
              },
              "end": {
                "line": 6,
                "column": 33
              }
            },
            "object": {
              "type": "MemberExpression",
              "start": 241,
              "end": 256,
              "loc": {
                "start": {
                  "line": 6,
                  "column": 12
                },
                "end": {
                  "line": 6,
                  "column": 27
                }
              },
              "object": {
                "type": "Identifier",
                "start": 241,
                "end": 246,
                "loc": {
                  "start": {
                    "line": 6,
                    "column": 12
                  },
                  "end": {
                    "line": 6,
                    "column": 17
                  }
                },
                "name": "Array"
              },
              "property": {
                "type": "Identifier",
                "start": 247,
                "end": 256,
                "loc": {
                  "start": {
                    "line": 6,
                    "column": 18
                  },
                  "end": {
                    "line": 6,
                    "column": 27
                  }
                },
                "name": "prototype"
              },
              "computed": false
            },
            "property": {
              "type": "Identifier",
              "start": 257,
              "end": 262,
              "loc": {
                "start": {
                  "line": 6,
                  "column": 28
                },
                "end": {
                  "line": 6,
                  "column": 33
                }
              },
              "name": "slice"
            },
            "computed": false
          }
        }
      ],
      "kind": "let",
      "trailingComments": [
        {
          "type": "CommentLine",
          "value": " Regular expression used to split event strings.",
          "start": 265,
          "end": 315,
          "loc": {
            "start": {
              "line": 8,
              "column": 0
            },
            "end": {
              "line": 8,
              "column": 50
            }
          },
          "range": [
            265,
            315
          ]
        }
      ]
    },
    {
      "type": "VariableDeclaration",
      "start": 316,
      "end": 342,
      "loc": {
        "start": {
          "line": 9,
          "column": 0
        },
        "end": {
          "line": 9,
          "column": 26
        }
      },
      "declarations": [
        {
          "type": "VariableDeclarator",
          "start": 320,
          "end": 341,
          "loc": {
            "start": {
              "line": 9,
              "column": 4
            },
            "end": {
              "line": 9,
              "column": 25
            }
          },
          "id": {
            "type": "Identifier",
            "start": 320,
            "end": 333,
            "loc": {
              "start": {
                "line": 9,
                "column": 4
              },
              "end": {
                "line": 9,
                "column": 17
              }
            },
            "name": "eventSplitter",
            "leadingComments": null
          },
          "init": {
            "type": "Literal",
            "start": 336,
            "end": 341,
            "loc": {
              "start": {
                "line": 9,
                "column": 20
              },
              "end": {
                "line": 9,
                "column": 25
              }
            },
            "value": {},
            "rawValue": {},
            "raw": "/\\s+/",
            "regex": {
              "pattern": "\\s+",
              "flags": ""
            }
          },
          "leadingComments": null
        }
      ],
      "kind": "let",
      "leadingComments": [
        {
          "type": "CommentLine",
          "value": " Regular expression used to split event strings.",
          "start": 265,
          "end": 315,
          "loc": {
            "start": {
              "line": 8,
              "column": 0
            },
            "end": {
              "line": 8,
              "column": 50
            }
          },
          "range": [
            265,
            315
          ]
        }
      ],
      "trailingComments": [
        {
          "type": "CommentLine",
          "value": " Implement fancy features of the Events API such as multiple event",
          "start": 344,
          "end": 412,
          "loc": {
            "start": {
              "line": 11,
              "column": 0
            },
            "end": {
              "line": 11,
              "column": 68
            }
          },
          "range": [
            344,
            412
          ]
        },
        {
          "type": "CommentLine",
          "value": " names `\"change blur\"` and jQuery-style event maps `{change: action}`",
          "start": 413,
          "end": 484,
          "loc": {
            "start": {
              "line": 12,
              "column": 0
            },
            "end": {
              "line": 12,
              "column": 71
            }
          },
          "range": [
            413,
            484
          ]
        },
        {
          "type": "CommentLine",
          "value": " in terms of the existing API.",
          "start": 485,
          "end": 517,
          "loc": {
            "start": {
              "line": 13,
              "column": 0
            },
            "end": {
              "line": 13,
              "column": 32
            }
          },
          "range": [
            485,
            517
          ]
        }
      ]
    },
    {
      "type": "FunctionDeclaration",
      "start": 518,
      "end": 1037,
      "loc": {
        "start": {
          "line": 14,
          "column": 0
        },
        "end": {
          "line": 35,
          "column": 1
        }
      },
      "id": {
        "type": "Identifier",
        "start": 527,
        "end": 536,
        "loc": {
          "start": {
            "line": 14,
            "column": 9
          },
          "end": {
            "line": 14,
            "column": 18
          }
        },
        "name": "eventsApi",
        "leadingComments": null
      },
      "generator": false,
      "expression": false,
      "async": false,
      "params": [
        {
          "type": "Identifier",
          "start": 537,
          "end": 540,
          "loc": {
            "start": {
              "line": 14,
              "column": 19
            },
            "end": {
              "line": 14,
              "column": 22
            }
          },
          "name": "obj"
        },
        {
          "type": "Identifier",
          "start": 542,
          "end": 548,
          "loc": {
            "start": {
              "line": 14,
              "column": 24
            },
            "end": {
              "line": 14,
              "column": 30
            }
          },
          "name": "action"
        },
        {
          "type": "Identifier",
          "start": 550,
          "end": 554,
          "loc": {
            "start": {
              "line": 14,
              "column": 32
            },
            "end": {
              "line": 14,
              "column": 36
            }
          },
          "name": "name"
        },
        {
          "type": "Identifier",
          "start": 556,
          "end": 560,
          "loc": {
            "start": {
              "line": 14,
              "column": 38
            },
            "end": {
              "line": 14,
              "column": 42
            }
          },
          "name": "rest"
        }
      ],
      "body": {
        "type": "BlockStatement",
        "start": 562,
        "end": 1037,
        "loc": {
          "start": {
            "line": 14,
            "column": 44
          },
          "end": {
            "line": 35,
            "column": 1
          }
        },
        "body": [
          {
            "type": "IfStatement",
            "start": 566,
            "end": 589,
            "loc": {
              "start": {
                "line": 15,
                "column": 2
              },
              "end": {
                "line": 15,
                "column": 25
              }
            },
            "test": {
              "type": "UnaryExpression",
              "start": 570,
              "end": 575,
              "loc": {
                "start": {
                  "line": 15,
                  "column": 6
                },
                "end": {
                  "line": 15,
                  "column": 11
                }
              },
              "operator": "!",
              "prefix": true,
              "argument": {
                "type": "Identifier",
                "start": 571,
                "end": 575,
                "loc": {
                  "start": {
                    "line": 15,
                    "column": 7
                  },
                  "end": {
                    "line": 15,
                    "column": 11
                  }
                },
                "name": "name"
              }
            },
            "consequent": {
              "type": "ReturnStatement",
              "start": 577,
              "end": 589,
              "loc": {
                "start": {
                  "line": 15,
                  "column": 13
                },
                "end": {
                  "line": 15,
                  "column": 25
                }
              },
              "argument": {
                "type": "Literal",
                "start": 584,
                "end": 588,
                "loc": {
                  "start": {
                    "line": 15,
                    "column": 20
                  },
                  "end": {
                    "line": 15,
                    "column": 24
                  }
                },
                "value": true,
                "rawValue": true,
                "raw": "true"
              },
              "trailingComments": null
            },
            "alternate": null,
            "trailingComments": [
              {
                "type": "CommentLine",
                "value": " Handle event maps.",
                "start": 593,
                "end": 614,
                "loc": {
                  "start": {
                    "line": 17,
                    "column": 2
                  },
                  "end": {
                    "line": 17,
                    "column": 23
                  }
                },
                "range": [
                  593,
                  614
                ]
              }
            ]
          },
          {
            "type": "IfStatement",
            "start": 617,
            "end": 765,
            "loc": {
              "start": {
                "line": 18,
                "column": 2
              },
              "end": {
                "line": 23,
                "column": 3
              }
            },
            "test": {
              "type": "BinaryExpression",
              "start": 621,
              "end": 645,
              "loc": {
                "start": {
                  "line": 18,
                  "column": 6
                },
                "end": {
                  "line": 18,
                  "column": 30
                }
              },
              "left": {
                "type": "UnaryExpression",
                "start": 621,
                "end": 632,
                "loc": {
                  "start": {
                    "line": 18,
                    "column": 6
                  },
                  "end": {
                    "line": 18,
                    "column": 17
                  }
                },
                "operator": "typeof",
                "prefix": true,
                "argument": {
                  "type": "Identifier",
                  "start": 628,
                  "end": 632,
                  "loc": {
                    "start": {
                      "line": 18,
                      "column": 13
                    },
                    "end": {
                      "line": 18,
                      "column": 17
                    }
                  },
                  "name": "name",
                  "leadingComments": null
                },
                "leadingComments": null
              },
              "operator": "===",
              "right": {
                "type": "Literal",
                "start": 637,
                "end": 645,
                "loc": {
                  "start": {
                    "line": 18,
                    "column": 22
                  },
                  "end": {
                    "line": 18,
                    "column": 30
                  }
                },
                "value": "object",
                "rawValue": "object",
                "raw": "\"object\""
              },
              "leadingComments": null
            },
            "consequent": {
              "type": "BlockStatement",
              "start": 647,
              "end": 765,
              "loc": {
                "start": {
                  "line": 18,
                  "column": 32
                },
                "end": {
                  "line": 23,
                  "column": 3
                }
              },
              "body": [
                {
                  "type": "ForInStatement",
                  "start": 653,
                  "end": 743,
                  "loc": {
                    "start": {
                      "line": 19,
                      "column": 4
                    },
                    "end": {
                      "line": 21,
                      "column": 5
                    }
                  },
                  "left": {
                    "type": "VariableDeclaration",
                    "start": 658,
                    "end": 665,
                    "loc": {
                      "start": {
                        "line": 19,
                        "column": 9
                      },
                      "end": {
                        "line": 19,
                        "column": 16
                      }
                    },
                    "declarations": [
                      {
                        "type": "VariableDeclarator",
                        "start": 662,
                        "end": 665,
                        "loc": {
                          "start": {
                            "line": 19,
                            "column": 13
                          },
                          "end": {
                            "line": 19,
                            "column": 16
                          }
                        },
                        "id": {
                          "type": "Identifier",
                          "start": 662,
                          "end": 665,
                          "loc": {
                            "start": {
                              "line": 19,
                              "column": 13
                            },
                            "end": {
                              "line": 19,
                              "column": 16
                            }
                          },
                          "name": "key"
                        },
                        "init": null
                      }
                    ],
                    "kind": "let"
                  },
                  "right": {
                    "type": "Identifier",
                    "start": 669,
                    "end": 673,
                    "loc": {
                      "start": {
                        "line": 19,
                        "column": 20
                      },
                      "end": {
                        "line": 19,
                        "column": 24
                      }
                    },
                    "name": "name"
                  },
                  "body": {
                    "type": "BlockStatement",
                    "start": 675,
                    "end": 743,
                    "loc": {
                      "start": {
                        "line": 19,
                        "column": 26
                      },
                      "end": {
                        "line": 21,
                        "column": 5
                      }
                    },
                    "body": [
                      {
                        "type": "ExpressionStatement",
                        "start": 683,
                        "end": 737,
                        "loc": {
                          "start": {
                            "line": 20,
                            "column": 6
                          },
                          "end": {
                            "line": 20,
                            "column": 60
                          }
                        },
                        "expression": {
                          "type": "CallExpression",
                          "start": 683,
                          "end": 736,
                          "loc": {
                            "start": {
                              "line": 20,
                              "column": 6
                            },
                            "end": {
                              "line": 20,
                              "column": 59
                            }
                          },
                          "callee": {
                            "type": "MemberExpression",
                            "start": 683,
                            "end": 700,
                            "loc": {
                              "start": {
                                "line": 20,
                                "column": 6
                              },
                              "end": {
                                "line": 20,
                                "column": 23
                              }
                            },
                            "object": {
                              "type": "MemberExpression",
                              "start": 683,
                              "end": 694,
                              "loc": {
                                "start": {
                                  "line": 20,
                                  "column": 6
                                },
                                "end": {
                                  "line": 20,
                                  "column": 17
                                }
                              },
                              "object": {
                                "type": "Identifier",
                                "start": 683,
                                "end": 686,
                                "loc": {
                                  "start": {
                                    "line": 20,
                                    "column": 6
                                  },
                                  "end": {
                                    "line": 20,
                                    "column": 9
                                  }
                                },
                                "name": "obj"
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 687,
                                "end": 693,
                                "loc": {
                                  "start": {
                                    "line": 20,
                                    "column": 10
                                  },
                                  "end": {
                                    "line": 20,
                                    "column": 16
                                  }
                                },
                                "name": "action"
                              },
                              "computed": true
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 695,
                              "end": 700,
                              "loc": {
                                "start": {
                                  "line": 20,
                                  "column": 18
                                },
                                "end": {
                                  "line": 20,
                                  "column": 23
                                }
                              },
                              "name": "apply"
                            },
                            "computed": false
                          },
                          "arguments": [
                            {
                              "type": "Identifier",
                              "start": 701,
                              "end": 704,
                              "loc": {
                                "start": {
                                  "line": 20,
                                  "column": 24
                                },
                                "end": {
                                  "line": 20,
                                  "column": 27
                                }
                              },
                              "name": "obj"
                            },
                            {
                              "type": "CallExpression",
                              "start": 706,
                              "end": 735,
                              "loc": {
                                "start": {
                                  "line": 20,
                                  "column": 29
                                },
                                "end": {
                                  "line": 20,
                                  "column": 58
                                }
                              },
                              "callee": {
                                "type": "MemberExpression",
                                "start": 706,
                                "end": 729,
                                "loc": {
                                  "start": {
                                    "line": 20,
                                    "column": 29
                                  },
                                  "end": {
                                    "line": 20,
                                    "column": 52
                                  }
                                },
                                "object": {
                                  "type": "ArrayExpression",
                                  "start": 706,
                                  "end": 722,
                                  "loc": {
                                    "start": {
                                      "line": 20,
                                      "column": 29
                                    },
                                    "end": {
                                      "line": 20,
                                      "column": 45
                                    }
                                  },
                                  "elements": [
                                    {
                                      "type": "Identifier",
                                      "start": 707,
                                      "end": 710,
                                      "loc": {
                                        "start": {
                                          "line": 20,
                                          "column": 30
                                        },
                                        "end": {
                                          "line": 20,
                                          "column": 33
                                        }
                                      },
                                      "name": "key"
                                    },
                                    {
                                      "type": "MemberExpression",
                                      "start": 712,
                                      "end": 721,
                                      "loc": {
                                        "start": {
                                          "line": 20,
                                          "column": 35
                                        },
                                        "end": {
                                          "line": 20,
                                          "column": 44
                                        }
                                      },
                                      "object": {
                                        "type": "Identifier",
                                        "start": 712,
                                        "end": 716,
                                        "loc": {
                                          "start": {
                                            "line": 20,
                                            "column": 35
                                          },
                                          "end": {
                                            "line": 20,
                                            "column": 39
                                          }
                                        },
                                        "name": "name"
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "start": 717,
                                        "end": 720,
                                        "loc": {
                                          "start": {
                                            "line": 20,
                                            "column": 40
                                          },
                                          "end": {
                                            "line": 20,
                                            "column": 43
                                          }
                                        },
                                        "name": "key"
                                      },
                                      "computed": true
                                    }
                                  ]
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 723,
                                  "end": 729,
                                  "loc": {
                                    "start": {
                                      "line": 20,
                                      "column": 46
                                    },
                                    "end": {
                                      "line": 20,
                                      "column": 52
                                    }
                                  },
                                  "name": "concat"
                                },
                                "computed": false
                              },
                              "arguments": [
                                {
                                  "type": "Identifier",
                                  "start": 730,
                                  "end": 734,
                                  "loc": {
                                    "start": {
                                      "line": 20,
                                      "column": 53
                                    },
                                    "end": {
                                      "line": 20,
                                      "column": 57
                                    }
                                  },
                                  "name": "rest"
                                }
                              ]
                            }
                          ]
                        }
                      }
                    ]
                  }
                },
                {
                  "type": "ReturnStatement",
                  "start": 748,
                  "end": 761,
                  "loc": {
                    "start": {
                      "line": 22,
                      "column": 4
                    },
                    "end": {
                      "line": 22,
                      "column": 17
                    }
                  },
                  "argument": {
                    "type": "Literal",
                    "start": 755,
                    "end": 760,
                    "loc": {
                      "start": {
                        "line": 22,
                        "column": 11
                      },
                      "end": {
                        "line": 22,
                        "column": 16
                      }
                    },
                    "value": false,
                    "rawValue": false,
                    "raw": "false"
                  }
                }
              ],
              "trailingComments": null
            },
            "alternate": null,
            "leadingComments": [
              {
                "type": "CommentLine",
                "value": " Handle event maps.",
                "start": 593,
                "end": 614,
                "loc": {
                  "start": {
                    "line": 17,
                    "column": 2
                  },
                  "end": {
                    "line": 17,
                    "column": 23
                  }
                },
                "range": [
                  593,
                  614
                ]
              }
            ],
            "trailingComments": [
              {
                "type": "CommentLine",
                "value": " Handle space separated event names.",
                "start": 769,
                "end": 807,
                "loc": {
                  "start": {
                    "line": 25,
                    "column": 2
                  },
                  "end": {
                    "line": 25,
                    "column": 40
                  }
                },
                "range": [
                  769,
                  807
                ]
              }
            ]
          },
          {
            "type": "IfStatement",
            "start": 810,
            "end": 1019,
            "loc": {
              "start": {
                "line": 26,
                "column": 2
              },
              "end": {
                "line": 32,
                "column": 3
              }
            },
            "test": {
              "type": "CallExpression",
              "start": 814,
              "end": 838,
              "loc": {
                "start": {
                  "line": 26,
                  "column": 6
                },
                "end": {
                  "line": 26,
                  "column": 30
                }
              },
              "callee": {
                "type": "MemberExpression",
                "start": 814,
                "end": 832,
                "loc": {
                  "start": {
                    "line": 26,
                    "column": 6
                  },
                  "end": {
                    "line": 26,
                    "column": 24
                  }
                },
                "object": {
                  "type": "Identifier",
                  "start": 814,
                  "end": 827,
                  "loc": {
                    "start": {
                      "line": 26,
                      "column": 6
                    },
                    "end": {
                      "line": 26,
                      "column": 19
                    }
                  },
                  "name": "eventSplitter",
                  "leadingComments": null
                },
                "property": {
                  "type": "Identifier",
                  "start": 828,
                  "end": 832,
                  "loc": {
                    "start": {
                      "line": 26,
                      "column": 20
                    },
                    "end": {
                      "line": 26,
                      "column": 24
                    }
                  },
                  "name": "test"
                },
                "computed": false,
                "leadingComments": null
              },
              "arguments": [
                {
                  "type": "Identifier",
                  "start": 833,
                  "end": 837,
                  "loc": {
                    "start": {
                      "line": 26,
                      "column": 25
                    },
                    "end": {
                      "line": 26,
                      "column": 29
                    }
                  },
                  "name": "name"
                }
              ],
              "leadingComments": null
            },
            "consequent": {
              "type": "BlockStatement",
              "start": 840,
              "end": 1019,
              "loc": {
                "start": {
                  "line": 26,
                  "column": 32
                },
                "end": {
                  "line": 32,
                  "column": 3
                }
              },
              "body": [
                {
                  "type": "VariableDeclaration",
                  "start": 846,
                  "end": 884,
                  "loc": {
                    "start": {
                      "line": 27,
                      "column": 4
                    },
                    "end": {
                      "line": 27,
                      "column": 42
                    }
                  },
                  "declarations": [
                    {
                      "type": "VariableDeclarator",
                      "start": 850,
                      "end": 883,
                      "loc": {
                        "start": {
                          "line": 27,
                          "column": 8
                        },
                        "end": {
                          "line": 27,
                          "column": 41
                        }
                      },
                      "id": {
                        "type": "Identifier",
                        "start": 850,
                        "end": 855,
                        "loc": {
                          "start": {
                            "line": 27,
                            "column": 8
                          },
                          "end": {
                            "line": 27,
                            "column": 13
                          }
                        },
                        "name": "names"
                      },
                      "init": {
                        "type": "CallExpression",
                        "start": 858,
                        "end": 883,
                        "loc": {
                          "start": {
                            "line": 27,
                            "column": 16
                          },
                          "end": {
                            "line": 27,
                            "column": 41
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 858,
                          "end": 868,
                          "loc": {
                            "start": {
                              "line": 27,
                              "column": 16
                            },
                            "end": {
                              "line": 27,
                              "column": 26
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 858,
                            "end": 862,
                            "loc": {
                              "start": {
                                "line": 27,
                                "column": 16
                              },
                              "end": {
                                "line": 27,
                                "column": 20
                              }
                            },
                            "name": "name"
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 863,
                            "end": 868,
                            "loc": {
                              "start": {
                                "line": 27,
                                "column": 21
                              },
                              "end": {
                                "line": 27,
                                "column": 26
                              }
                            },
                            "name": "split"
                          },
                          "computed": false
                        },
                        "arguments": [
                          {
                            "type": "Identifier",
                            "start": 869,
                            "end": 882,
                            "loc": {
                              "start": {
                                "line": 27,
                                "column": 27
                              },
                              "end": {
                                "line": 27,
                                "column": 40
                              }
                            },
                            "name": "eventSplitter"
                          }
                        ]
                      }
                    }
                  ],
                  "kind": "let"
                },
                {
                  "type": "ForStatement",
                  "start": 889,
                  "end": 997,
                  "loc": {
                    "start": {
                      "line": 28,
                      "column": 4
                    },
                    "end": {
                      "line": 30,
                      "column": 5
                    }
                  },
                  "init": {
                    "type": "VariableDeclaration",
                    "start": 894,
                    "end": 921,
                    "loc": {
                      "start": {
                        "line": 28,
                        "column": 9
                      },
                      "end": {
                        "line": 28,
                        "column": 36
                      }
                    },
                    "declarations": [
                      {
                        "type": "VariableDeclarator",
                        "start": 898,
                        "end": 903,
                        "loc": {
                          "start": {
                            "line": 28,
                            "column": 13
                          },
                          "end": {
                            "line": 28,
                            "column": 18
                          }
                        },
                        "id": {
                          "type": "Identifier",
                          "start": 898,
                          "end": 899,
                          "loc": {
                            "start": {
                              "line": 28,
                              "column": 13
                            },
                            "end": {
                              "line": 28,
                              "column": 14
                            }
                          },
                          "name": "i"
                        },
                        "init": {
                          "type": "Literal",
                          "start": 902,
                          "end": 903,
                          "loc": {
                            "start": {
                              "line": 28,
                              "column": 17
                            },
                            "end": {
                              "line": 28,
                              "column": 18
                            }
                          },
                          "value": 0,
                          "rawValue": 0,
                          "raw": "0"
                        }
                      },
                      {
                        "type": "VariableDeclarator",
                        "start": 905,
                        "end": 921,
                        "loc": {
                          "start": {
                            "line": 28,
                            "column": 20
                          },
                          "end": {
                            "line": 28,
                            "column": 36
                          }
                        },
                        "id": {
                          "type": "Identifier",
                          "start": 905,
                          "end": 906,
                          "loc": {
                            "start": {
                              "line": 28,
                              "column": 20
                            },
                            "end": {
                              "line": 28,
                              "column": 21
                            }
                          },
                          "name": "l"
                        },
                        "init": {
                          "type": "MemberExpression",
                          "start": 909,
                          "end": 921,
                          "loc": {
                            "start": {
                              "line": 28,
                              "column": 24
                            },
                            "end": {
                              "line": 28,
                              "column": 36
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 909,
                            "end": 914,
                            "loc": {
                              "start": {
                                "line": 28,
                                "column": 24
                              },
                              "end": {
                                "line": 28,
                                "column": 29
                              }
                            },
                            "name": "names"
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 915,
                            "end": 921,
                            "loc": {
                              "start": {
                                "line": 28,
                                "column": 30
                              },
                              "end": {
                                "line": 28,
                                "column": 36
                              }
                            },
                            "name": "length"
                          },
                          "computed": false
                        }
                      }
                    ],
                    "kind": "let"
                  },
                  "test": {
                    "type": "BinaryExpression",
                    "start": 923,
                    "end": 928,
                    "loc": {
                      "start": {
                        "line": 28,
                        "column": 38
                      },
                      "end": {
                        "line": 28,
                        "column": 43
                      }
                    },
                    "left": {
                      "type": "Identifier",
                      "start": 923,
                      "end": 924,
                      "loc": {
                        "start": {
                          "line": 28,
                          "column": 38
                        },
                        "end": {
                          "line": 28,
                          "column": 39
                        }
                      },
                      "name": "i"
                    },
                    "operator": "<",
                    "right": {
                      "type": "Identifier",
                      "start": 927,
                      "end": 928,
                      "loc": {
                        "start": {
                          "line": 28,
                          "column": 42
                        },
                        "end": {
                          "line": 28,
                          "column": 43
                        }
                      },
                      "name": "l"
                    }
                  },
                  "update": {
                    "type": "UpdateExpression",
                    "start": 930,
                    "end": 933,
                    "loc": {
                      "start": {
                        "line": 28,
                        "column": 45
                      },
                      "end": {
                        "line": 28,
                        "column": 48
                      }
                    },
                    "operator": "++",
                    "prefix": false,
                    "argument": {
                      "type": "Identifier",
                      "start": 930,
                      "end": 931,
                      "loc": {
                        "start": {
                          "line": 28,
                          "column": 45
                        },
                        "end": {
                          "line": 28,
                          "column": 46
                        }
                      },
                      "name": "i"
                    }
                  },
                  "body": {
                    "type": "BlockStatement",
                    "start": 935,
                    "end": 997,
                    "loc": {
                      "start": {
                        "line": 28,
                        "column": 50
                      },
                      "end": {
                        "line": 30,
                        "column": 5
                      }
                    },
                    "body": [
                      {
                        "type": "ExpressionStatement",
                        "start": 943,
                        "end": 991,
                        "loc": {
                          "start": {
                            "line": 29,
                            "column": 6
                          },
                          "end": {
                            "line": 29,
                            "column": 54
                          }
                        },
                        "expression": {
                          "type": "CallExpression",
                          "start": 943,
                          "end": 990,
                          "loc": {
                            "start": {
                              "line": 29,
                              "column": 6
                            },
                            "end": {
                              "line": 29,
                              "column": 53
                            }
                          },
                          "callee": {
                            "type": "MemberExpression",
                            "start": 943,
                            "end": 960,
                            "loc": {
                              "start": {
                                "line": 29,
                                "column": 6
                              },
                              "end": {
                                "line": 29,
                                "column": 23
                              }
                            },
                            "object": {
                              "type": "MemberExpression",
                              "start": 943,
                              "end": 954,
                              "loc": {
                                "start": {
                                  "line": 29,
                                  "column": 6
                                },
                                "end": {
                                  "line": 29,
                                  "column": 17
                                }
                              },
                              "object": {
                                "type": "Identifier",
                                "start": 943,
                                "end": 946,
                                "loc": {
                                  "start": {
                                    "line": 29,
                                    "column": 6
                                  },
                                  "end": {
                                    "line": 29,
                                    "column": 9
                                  }
                                },
                                "name": "obj"
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 947,
                                "end": 953,
                                "loc": {
                                  "start": {
                                    "line": 29,
                                    "column": 10
                                  },
                                  "end": {
                                    "line": 29,
                                    "column": 16
                                  }
                                },
                                "name": "action"
                              },
                              "computed": true
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 955,
                              "end": 960,
                              "loc": {
                                "start": {
                                  "line": 29,
                                  "column": 18
                                },
                                "end": {
                                  "line": 29,
                                  "column": 23
                                }
                              },
                              "name": "apply"
                            },
                            "computed": false
                          },
                          "arguments": [
                            {
                              "type": "Identifier",
                              "start": 961,
                              "end": 964,
                              "loc": {
                                "start": {
                                  "line": 29,
                                  "column": 24
                                },
                                "end": {
                                  "line": 29,
                                  "column": 27
                                }
                              },
                              "name": "obj"
                            },
                            {
                              "type": "CallExpression",
                              "start": 966,
                              "end": 989,
                              "loc": {
                                "start": {
                                  "line": 29,
                                  "column": 29
                                },
                                "end": {
                                  "line": 29,
                                  "column": 52
                                }
                              },
                              "callee": {
                                "type": "MemberExpression",
                                "start": 966,
                                "end": 983,
                                "loc": {
                                  "start": {
                                    "line": 29,
                                    "column": 29
                                  },
                                  "end": {
                                    "line": 29,
                                    "column": 46
                                  }
                                },
                                "object": {
                                  "type": "ArrayExpression",
                                  "start": 966,
                                  "end": 976,
                                  "loc": {
                                    "start": {
                                      "line": 29,
                                      "column": 29
                                    },
                                    "end": {
                                      "line": 29,
                                      "column": 39
                                    }
                                  },
                                  "elements": [
                                    {
                                      "type": "MemberExpression",
                                      "start": 967,
                                      "end": 975,
                                      "loc": {
                                        "start": {
                                          "line": 29,
                                          "column": 30
                                        },
                                        "end": {
                                          "line": 29,
                                          "column": 38
                                        }
                                      },
                                      "object": {
                                        "type": "Identifier",
                                        "start": 967,
                                        "end": 972,
                                        "loc": {
                                          "start": {
                                            "line": 29,
                                            "column": 30
                                          },
                                          "end": {
                                            "line": 29,
                                            "column": 35
                                          }
                                        },
                                        "name": "names"
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "start": 973,
                                        "end": 974,
                                        "loc": {
                                          "start": {
                                            "line": 29,
                                            "column": 36
                                          },
                                          "end": {
                                            "line": 29,
                                            "column": 37
                                          }
                                        },
                                        "name": "i"
                                      },
                                      "computed": true
                                    }
                                  ]
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 977,
                                  "end": 983,
                                  "loc": {
                                    "start": {
                                      "line": 29,
                                      "column": 40
                                    },
                                    "end": {
                                      "line": 29,
                                      "column": 46
                                    }
                                  },
                                  "name": "concat"
                                },
                                "computed": false
                              },
                              "arguments": [
                                {
                                  "type": "Identifier",
                                  "start": 984,
                                  "end": 988,
                                  "loc": {
                                    "start": {
                                      "line": 29,
                                      "column": 47
                                    },
                                    "end": {
                                      "line": 29,
                                      "column": 51
                                    }
                                  },
                                  "name": "rest"
                                }
                              ]
                            }
                          ]
                        }
                      }
                    ]
                  }
                },
                {
                  "type": "ReturnStatement",
                  "start": 1002,
                  "end": 1015,
                  "loc": {
                    "start": {
                      "line": 31,
                      "column": 4
                    },
                    "end": {
                      "line": 31,
                      "column": 17
                    }
                  },
                  "argument": {
                    "type": "Literal",
                    "start": 1009,
                    "end": 1014,
                    "loc": {
                      "start": {
                        "line": 31,
                        "column": 11
                      },
                      "end": {
                        "line": 31,
                        "column": 16
                      }
                    },
                    "value": false,
                    "rawValue": false,
                    "raw": "false"
                  }
                }
              ]
            },
            "alternate": null,
            "leadingComments": [
              {
                "type": "CommentLine",
                "value": " Handle space separated event names.",
                "start": 769,
                "end": 807,
                "loc": {
                  "start": {
                    "line": 25,
                    "column": 2
                  },
                  "end": {
                    "line": 25,
                    "column": 40
                  }
                },
                "range": [
                  769,
                  807
                ]
              }
            ]
          },
          {
            "type": "ReturnStatement",
            "start": 1023,
            "end": 1035,
            "loc": {
              "start": {
                "line": 34,
                "column": 2
              },
              "end": {
                "line": 34,
                "column": 14
              }
            },
            "argument": {
              "type": "Literal",
              "start": 1030,
              "end": 1034,
              "loc": {
                "start": {
                  "line": 34,
                  "column": 9
                },
                "end": {
                  "line": 34,
                  "column": 13
                }
              },
              "value": true,
              "rawValue": true,
              "raw": "true"
            }
          }
        ],
        "trailingComments": null
      },
      "leadingComments": [
        {
          "type": "CommentLine",
          "value": " Implement fancy features of the Events API such as multiple event",
          "start": 344,
          "end": 412,
          "loc": {
            "start": {
              "line": 11,
              "column": 0
            },
            "end": {
              "line": 11,
              "column": 68
            }
          },
          "range": [
            344,
            412
          ]
        },
        {
          "type": "CommentLine",
          "value": " names `\"change blur\"` and jQuery-style event maps `{change: action}`",
          "start": 413,
          "end": 484,
          "loc": {
            "start": {
              "line": 12,
              "column": 0
            },
            "end": {
              "line": 12,
              "column": 71
            }
          },
          "range": [
            413,
            484
          ]
        },
        {
          "type": "CommentLine",
          "value": " in terms of the existing API.",
          "start": 485,
          "end": 517,
          "loc": {
            "start": {
              "line": 13,
              "column": 0
            },
            "end": {
              "line": 13,
              "column": 32
            }
          },
          "range": [
            485,
            517
          ]
        }
      ],
      "trailingComments": [
        {
          "type": "CommentLine",
          "value": " A difficult-to-believe, but optimized internal dispatch function for",
          "start": 1039,
          "end": 1110,
          "loc": {
            "start": {
              "line": 37,
              "column": 0
            },
            "end": {
              "line": 37,
              "column": 71
            }
          },
          "range": [
            1039,
            1110
          ]
        },
        {
          "type": "CommentLine",
          "value": " triggering events. Tries to keep the usual cases speedy (most internal",
          "start": 1111,
          "end": 1184,
          "loc": {
            "start": {
              "line": 38,
              "column": 0
            },
            "end": {
              "line": 38,
              "column": 73
            }
          },
          "range": [
            1111,
            1184
          ]
        },
        {
          "type": "CommentLine",
          "value": " Backbone events have 3 arguments).",
          "start": 1185,
          "end": 1222,
          "loc": {
            "start": {
              "line": 39,
              "column": 0
            },
            "end": {
              "line": 39,
              "column": 37
            }
          },
          "range": [
            1185,
            1222
          ]
        }
      ]
    },
    {
      "type": "FunctionDeclaration",
      "start": 1223,
      "end": 1783,
      "loc": {
        "start": {
          "line": 40,
          "column": 0
        },
        "end": {
          "line": 49,
          "column": 1
        }
      },
      "id": {
        "type": "Identifier",
        "start": 1232,
        "end": 1245,
        "loc": {
          "start": {
            "line": 40,
            "column": 9
          },
          "end": {
            "line": 40,
            "column": 22
          }
        },
        "name": "triggerEvents",
        "leadingComments": null
      },
      "generator": false,
      "expression": false,
      "async": false,
      "params": [
        {
          "type": "Identifier",
          "start": 1246,
          "end": 1252,
          "loc": {
            "start": {
              "line": 40,
              "column": 23
            },
            "end": {
              "line": 40,
              "column": 29
            }
          },
          "name": "events"
        },
        {
          "type": "Identifier",
          "start": 1254,
          "end": 1258,
          "loc": {
            "start": {
              "line": 40,
              "column": 31
            },
            "end": {
              "line": 40,
              "column": 35
            }
          },
          "name": "args"
        }
      ],
      "body": {
        "type": "BlockStatement",
        "start": 1260,
        "end": 1783,
        "loc": {
          "start": {
            "line": 40,
            "column": 37
          },
          "end": {
            "line": 49,
            "column": 1
          }
        },
        "body": [
          {
            "type": "VariableDeclaration",
            "start": 1264,
            "end": 1340,
            "loc": {
              "start": {
                "line": 41,
                "column": 2
              },
              "end": {
                "line": 41,
                "column": 78
              }
            },
            "declarations": [
              {
                "type": "VariableDeclarator",
                "start": 1268,
                "end": 1270,
                "loc": {
                  "start": {
                    "line": 41,
                    "column": 6
                  },
                  "end": {
                    "line": 41,
                    "column": 8
                  }
                },
                "id": {
                  "type": "Identifier",
                  "start": 1268,
                  "end": 1270,
                  "loc": {
                    "start": {
                      "line": 41,
                      "column": 6
                    },
                    "end": {
                      "line": 41,
                      "column": 8
                    }
                  },
                  "name": "ev"
                },
                "init": null
              },
              {
                "type": "VariableDeclarator",
                "start": 1272,
                "end": 1278,
                "loc": {
                  "start": {
                    "line": 41,
                    "column": 10
                  },
                  "end": {
                    "line": 41,
                    "column": 16
                  }
                },
                "id": {
                  "type": "Identifier",
                  "start": 1272,
                  "end": 1273,
                  "loc": {
                    "start": {
                      "line": 41,
                      "column": 10
                    },
                    "end": {
                      "line": 41,
                      "column": 11
                    }
                  },
                  "name": "i"
                },
                "init": {
                  "type": "UnaryExpression",
                  "start": 1276,
                  "end": 1278,
                  "loc": {
                    "start": {
                      "line": 41,
                      "column": 14
                    },
                    "end": {
                      "line": 41,
                      "column": 16
                    }
                  },
                  "operator": "-",
                  "prefix": true,
                  "argument": {
                    "type": "Literal",
                    "start": 1277,
                    "end": 1278,
                    "loc": {
                      "start": {
                        "line": 41,
                        "column": 15
                      },
                      "end": {
                        "line": 41,
                        "column": 16
                      }
                    },
                    "value": 1,
                    "rawValue": 1,
                    "raw": "1"
                  }
                }
              },
              {
                "type": "VariableDeclarator",
                "start": 1280,
                "end": 1297,
                "loc": {
                  "start": {
                    "line": 41,
                    "column": 18
                  },
                  "end": {
                    "line": 41,
                    "column": 35
                  }
                },
                "id": {
                  "type": "Identifier",
                  "start": 1280,
                  "end": 1281,
                  "loc": {
                    "start": {
                      "line": 41,
                      "column": 18
                    },
                    "end": {
                      "line": 41,
                      "column": 19
                    }
                  },
                  "name": "l"
                },
                "init": {
                  "type": "MemberExpression",
                  "start": 1284,
                  "end": 1297,
                  "loc": {
                    "start": {
                      "line": 41,
                      "column": 22
                    },
                    "end": {
                      "line": 41,
                      "column": 35
                    }
                  },
                  "object": {
                    "type": "Identifier",
                    "start": 1284,
                    "end": 1290,
                    "loc": {
                      "start": {
                        "line": 41,
                        "column": 22
                      },
                      "end": {
                        "line": 41,
                        "column": 28
                      }
                    },
                    "name": "events"
                  },
                  "property": {
                    "type": "Identifier",
                    "start": 1291,
                    "end": 1297,
                    "loc": {
                      "start": {
                        "line": 41,
                        "column": 29
                      },
                      "end": {
                        "line": 41,
                        "column": 35
                      }
                    },
                    "name": "length"
                  },
                  "computed": false
                }
              },
              {
                "type": "VariableDeclarator",
                "start": 1299,
                "end": 1311,
                "loc": {
                  "start": {
                    "line": 41,
                    "column": 37
                  },
                  "end": {
                    "line": 41,
                    "column": 49
                  }
                },
                "id": {
                  "type": "Identifier",
                  "start": 1299,
                  "end": 1301,
                  "loc": {
                    "start": {
                      "line": 41,
                      "column": 37
                    },
                    "end": {
                      "line": 41,
                      "column": 39
                    }
                  },
                  "name": "a1"
                },
                "init": {
                  "type": "MemberExpression",
                  "start": 1304,
                  "end": 1311,
                  "loc": {
                    "start": {
                      "line": 41,
                      "column": 42
                    },
                    "end": {
                      "line": 41,
                      "column": 49
                    }
                  },
                  "object": {
                    "type": "Identifier",
                    "start": 1304,
                    "end": 1308,
                    "loc": {
                      "start": {
                        "line": 41,
                        "column": 42
                      },
                      "end": {
                        "line": 41,
                        "column": 46
                      }
                    },
                    "name": "args"
                  },
                  "property": {
                    "type": "Literal",
                    "start": 1309,
                    "end": 1310,
                    "loc": {
                      "start": {
                        "line": 41,
                        "column": 47
                      },
                      "end": {
                        "line": 41,
                        "column": 48
                      }
                    },
                    "value": 0,
                    "rawValue": 0,
                    "raw": "0"
                  },
                  "computed": true
                }
              },
              {
                "type": "VariableDeclarator",
                "start": 1313,
                "end": 1325,
                "loc": {
                  "start": {
                    "line": 41,
                    "column": 51
                  },
                  "end": {
                    "line": 41,
                    "column": 63
                  }
                },
                "id": {
                  "type": "Identifier",
                  "start": 1313,
                  "end": 1315,
                  "loc": {
                    "start": {
                      "line": 41,
                      "column": 51
                    },
                    "end": {
                      "line": 41,
                      "column": 53
                    }
                  },
                  "name": "a2"
                },
                "init": {
                  "type": "MemberExpression",
                  "start": 1318,
                  "end": 1325,
                  "loc": {
                    "start": {
                      "line": 41,
                      "column": 56
                    },
                    "end": {
                      "line": 41,
                      "column": 63
                    }
                  },
                  "object": {
                    "type": "Identifier",
                    "start": 1318,
                    "end": 1322,
                    "loc": {
                      "start": {
                        "line": 41,
                        "column": 56
                      },
                      "end": {
                        "line": 41,
                        "column": 60
                      }
                    },
                    "name": "args"
                  },
                  "property": {
                    "type": "Literal",
                    "start": 1323,
                    "end": 1324,
                    "loc": {
                      "start": {
                        "line": 41,
                        "column": 61
                      },
                      "end": {
                        "line": 41,
                        "column": 62
                      }
                    },
                    "value": 1,
                    "rawValue": 1,
                    "raw": "1"
                  },
                  "computed": true
                }
              },
              {
                "type": "VariableDeclarator",
                "start": 1327,
                "end": 1339,
                "loc": {
                  "start": {
                    "line": 41,
                    "column": 65
                  },
                  "end": {
                    "line": 41,
                    "column": 77
                  }
                },
                "id": {
                  "type": "Identifier",
                  "start": 1327,
                  "end": 1329,
                  "loc": {
                    "start": {
                      "line": 41,
                      "column": 65
                    },
                    "end": {
                      "line": 41,
                      "column": 67
                    }
                  },
                  "name": "a3"
                },
                "init": {
                  "type": "MemberExpression",
                  "start": 1332,
                  "end": 1339,
                  "loc": {
                    "start": {
                      "line": 41,
                      "column": 70
                    },
                    "end": {
                      "line": 41,
                      "column": 77
                    }
                  },
                  "object": {
                    "type": "Identifier",
                    "start": 1332,
                    "end": 1336,
                    "loc": {
                      "start": {
                        "line": 41,
                        "column": 70
                      },
                      "end": {
                        "line": 41,
                        "column": 74
                      }
                    },
                    "name": "args"
                  },
                  "property": {
                    "type": "Literal",
                    "start": 1337,
                    "end": 1338,
                    "loc": {
                      "start": {
                        "line": 41,
                        "column": 75
                      },
                      "end": {
                        "line": 41,
                        "column": 76
                      }
                    },
                    "value": 2,
                    "rawValue": 2,
                    "raw": "2"
                  },
                  "computed": true
                }
              }
            ],
            "kind": "let"
          },
          {
            "type": "SwitchStatement",
            "start": 1343,
            "end": 1781,
            "loc": {
              "start": {
                "line": 42,
                "column": 2
              },
              "end": {
                "line": 48,
                "column": 3
              }
            },
            "discriminant": {
              "type": "MemberExpression",
              "start": 1351,
              "end": 1362,
              "loc": {
                "start": {
                  "line": 42,
                  "column": 10
                },
                "end": {
                  "line": 42,
                  "column": 21
                }
              },
              "object": {
                "type": "Identifier",
                "start": 1351,
                "end": 1355,
                "loc": {
                  "start": {
                    "line": 42,
                    "column": 10
                  },
                  "end": {
                    "line": 42,
                    "column": 14
                  }
                },
                "name": "args"
              },
              "property": {
                "type": "Identifier",
                "start": 1356,
                "end": 1362,
                "loc": {
                  "start": {
                    "line": 42,
                    "column": 15
                  },
                  "end": {
                    "line": 42,
                    "column": 21
                  }
                },
                "name": "length"
              },
              "computed": false
            },
            "cases": [
              {
                "type": "SwitchCase",
                "start": 1370,
                "end": 1441,
                "loc": {
                  "start": {
                    "line": 43,
                    "column": 4
                  },
                  "end": {
                    "line": 43,
                    "column": 75
                  }
                },
                "consequent": [
                  {
                    "type": "WhileStatement",
                    "start": 1378,
                    "end": 1433,
                    "loc": {
                      "start": {
                        "line": 43,
                        "column": 12
                      },
                      "end": {
                        "line": 43,
                        "column": 67
                      }
                    },
                    "test": {
                      "type": "BinaryExpression",
                      "start": 1385,
                      "end": 1392,
                      "loc": {
                        "start": {
                          "line": 43,
                          "column": 19
                        },
                        "end": {
                          "line": 43,
                          "column": 26
                        }
                      },
                      "left": {
                        "type": "UpdateExpression",
                        "start": 1385,
                        "end": 1388,
                        "loc": {
                          "start": {
                            "line": 43,
                            "column": 19
                          },
                          "end": {
                            "line": 43,
                            "column": 22
                          }
                        },
                        "operator": "++",
                        "prefix": true,
                        "argument": {
                          "type": "Identifier",
                          "start": 1387,
                          "end": 1388,
                          "loc": {
                            "start": {
                              "line": 43,
                              "column": 21
                            },
                            "end": {
                              "line": 43,
                              "column": 22
                            }
                          },
                          "name": "i"
                        }
                      },
                      "operator": "<",
                      "right": {
                        "type": "Identifier",
                        "start": 1391,
                        "end": 1392,
                        "loc": {
                          "start": {
                            "line": 43,
                            "column": 25
                          },
                          "end": {
                            "line": 43,
                            "column": 26
                          }
                        },
                        "name": "l"
                      }
                    },
                    "body": {
                      "type": "ExpressionStatement",
                      "start": 1394,
                      "end": 1433,
                      "loc": {
                        "start": {
                          "line": 43,
                          "column": 28
                        },
                        "end": {
                          "line": 43,
                          "column": 67
                        }
                      },
                      "expression": {
                        "type": "CallExpression",
                        "start": 1394,
                        "end": 1432,
                        "loc": {
                          "start": {
                            "line": 43,
                            "column": 28
                          },
                          "end": {
                            "line": 43,
                            "column": 66
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 1394,
                          "end": 1424,
                          "loc": {
                            "start": {
                              "line": 43,
                              "column": 28
                            },
                            "end": {
                              "line": 43,
                              "column": 58
                            }
                          },
                          "object": {
                            "type": "MemberExpression",
                            "start": 1394,
                            "end": 1419,
                            "loc": {
                              "start": {
                                "line": 43,
                                "column": 28
                              },
                              "end": {
                                "line": 43,
                                "column": 53
                              }
                            },
                            "object": {
                              "type": "AssignmentExpression",
                              "start": 1395,
                              "end": 1409,
                              "loc": {
                                "start": {
                                  "line": 43,
                                  "column": 29
                                },
                                "end": {
                                  "line": 43,
                                  "column": 43
                                }
                              },
                              "operator": "=",
                              "left": {
                                "type": "Identifier",
                                "start": 1395,
                                "end": 1397,
                                "loc": {
                                  "start": {
                                    "line": 43,
                                    "column": 29
                                  },
                                  "end": {
                                    "line": 43,
                                    "column": 31
                                  }
                                },
                                "name": "ev"
                              },
                              "right": {
                                "type": "MemberExpression",
                                "start": 1400,
                                "end": 1409,
                                "loc": {
                                  "start": {
                                    "line": 43,
                                    "column": 34
                                  },
                                  "end": {
                                    "line": 43,
                                    "column": 43
                                  }
                                },
                                "object": {
                                  "type": "Identifier",
                                  "start": 1400,
                                  "end": 1406,
                                  "loc": {
                                    "start": {
                                      "line": 43,
                                      "column": 34
                                    },
                                    "end": {
                                      "line": 43,
                                      "column": 40
                                    }
                                  },
                                  "name": "events"
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 1407,
                                  "end": 1408,
                                  "loc": {
                                    "start": {
                                      "line": 43,
                                      "column": 41
                                    },
                                    "end": {
                                      "line": 43,
                                      "column": 42
                                    }
                                  },
                                  "name": "i"
                                },
                                "computed": true
                              },
                              "parenthesizedExpression": true
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 1411,
                              "end": 1419,
                              "loc": {
                                "start": {
                                  "line": 43,
                                  "column": 45
                                },
                                "end": {
                                  "line": 43,
                                  "column": 53
                                }
                              },
                              "name": "callback"
                            },
                            "computed": false
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 1420,
                            "end": 1424,
                            "loc": {
                              "start": {
                                "line": 43,
                                "column": 54
                              },
                              "end": {
                                "line": 43,
                                "column": 58
                              }
                            },
                            "name": "call"
                          },
                          "computed": false
                        },
                        "arguments": [
                          {
                            "type": "MemberExpression",
                            "start": 1425,
                            "end": 1431,
                            "loc": {
                              "start": {
                                "line": 43,
                                "column": 59
                              },
                              "end": {
                                "line": 43,
                                "column": 65
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 1425,
                              "end": 1427,
                              "loc": {
                                "start": {
                                  "line": 43,
                                  "column": 59
                                },
                                "end": {
                                  "line": 43,
                                  "column": 61
                                }
                              },
                              "name": "ev"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 1428,
                              "end": 1431,
                              "loc": {
                                "start": {
                                  "line": 43,
                                  "column": 62
                                },
                                "end": {
                                  "line": 43,
                                  "column": 65
                                }
                              },
                              "name": "ctx"
                            },
                            "computed": false
                          }
                        ]
                      }
                    }
                  },
                  {
                    "type": "ReturnStatement",
                    "start": 1434,
                    "end": 1441,
                    "loc": {
                      "start": {
                        "line": 43,
                        "column": 68
                      },
                      "end": {
                        "line": 43,
                        "column": 75
                      }
                    },
                    "argument": null
                  }
                ],
                "test": {
                  "type": "Literal",
                  "start": 1375,
                  "end": 1376,
                  "loc": {
                    "start": {
                      "line": 43,
                      "column": 9
                    },
                    "end": {
                      "line": 43,
                      "column": 10
                    }
                  },
                  "value": 0,
                  "rawValue": 0,
                  "raw": "0"
                }
              },
              {
                "type": "SwitchCase",
                "start": 1446,
                "end": 1521,
                "loc": {
                  "start": {
                    "line": 44,
                    "column": 4
                  },
                  "end": {
                    "line": 44,
                    "column": 79
                  }
                },
                "consequent": [
                  {
                    "type": "WhileStatement",
                    "start": 1454,
                    "end": 1513,
                    "loc": {
                      "start": {
                        "line": 44,
                        "column": 12
                      },
                      "end": {
                        "line": 44,
                        "column": 71
                      }
                    },
                    "test": {
                      "type": "BinaryExpression",
                      "start": 1461,
                      "end": 1468,
                      "loc": {
                        "start": {
                          "line": 44,
                          "column": 19
                        },
                        "end": {
                          "line": 44,
                          "column": 26
                        }
                      },
                      "left": {
                        "type": "UpdateExpression",
                        "start": 1461,
                        "end": 1464,
                        "loc": {
                          "start": {
                            "line": 44,
                            "column": 19
                          },
                          "end": {
                            "line": 44,
                            "column": 22
                          }
                        },
                        "operator": "++",
                        "prefix": true,
                        "argument": {
                          "type": "Identifier",
                          "start": 1463,
                          "end": 1464,
                          "loc": {
                            "start": {
                              "line": 44,
                              "column": 21
                            },
                            "end": {
                              "line": 44,
                              "column": 22
                            }
                          },
                          "name": "i"
                        }
                      },
                      "operator": "<",
                      "right": {
                        "type": "Identifier",
                        "start": 1467,
                        "end": 1468,
                        "loc": {
                          "start": {
                            "line": 44,
                            "column": 25
                          },
                          "end": {
                            "line": 44,
                            "column": 26
                          }
                        },
                        "name": "l"
                      }
                    },
                    "body": {
                      "type": "ExpressionStatement",
                      "start": 1470,
                      "end": 1513,
                      "loc": {
                        "start": {
                          "line": 44,
                          "column": 28
                        },
                        "end": {
                          "line": 44,
                          "column": 71
                        }
                      },
                      "expression": {
                        "type": "CallExpression",
                        "start": 1470,
                        "end": 1512,
                        "loc": {
                          "start": {
                            "line": 44,
                            "column": 28
                          },
                          "end": {
                            "line": 44,
                            "column": 70
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 1470,
                          "end": 1500,
                          "loc": {
                            "start": {
                              "line": 44,
                              "column": 28
                            },
                            "end": {
                              "line": 44,
                              "column": 58
                            }
                          },
                          "object": {
                            "type": "MemberExpression",
                            "start": 1470,
                            "end": 1495,
                            "loc": {
                              "start": {
                                "line": 44,
                                "column": 28
                              },
                              "end": {
                                "line": 44,
                                "column": 53
                              }
                            },
                            "object": {
                              "type": "AssignmentExpression",
                              "start": 1471,
                              "end": 1485,
                              "loc": {
                                "start": {
                                  "line": 44,
                                  "column": 29
                                },
                                "end": {
                                  "line": 44,
                                  "column": 43
                                }
                              },
                              "operator": "=",
                              "left": {
                                "type": "Identifier",
                                "start": 1471,
                                "end": 1473,
                                "loc": {
                                  "start": {
                                    "line": 44,
                                    "column": 29
                                  },
                                  "end": {
                                    "line": 44,
                                    "column": 31
                                  }
                                },
                                "name": "ev"
                              },
                              "right": {
                                "type": "MemberExpression",
                                "start": 1476,
                                "end": 1485,
                                "loc": {
                                  "start": {
                                    "line": 44,
                                    "column": 34
                                  },
                                  "end": {
                                    "line": 44,
                                    "column": 43
                                  }
                                },
                                "object": {
                                  "type": "Identifier",
                                  "start": 1476,
                                  "end": 1482,
                                  "loc": {
                                    "start": {
                                      "line": 44,
                                      "column": 34
                                    },
                                    "end": {
                                      "line": 44,
                                      "column": 40
                                    }
                                  },
                                  "name": "events"
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 1483,
                                  "end": 1484,
                                  "loc": {
                                    "start": {
                                      "line": 44,
                                      "column": 41
                                    },
                                    "end": {
                                      "line": 44,
                                      "column": 42
                                    }
                                  },
                                  "name": "i"
                                },
                                "computed": true
                              },
                              "parenthesizedExpression": true
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 1487,
                              "end": 1495,
                              "loc": {
                                "start": {
                                  "line": 44,
                                  "column": 45
                                },
                                "end": {
                                  "line": 44,
                                  "column": 53
                                }
                              },
                              "name": "callback"
                            },
                            "computed": false
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 1496,
                            "end": 1500,
                            "loc": {
                              "start": {
                                "line": 44,
                                "column": 54
                              },
                              "end": {
                                "line": 44,
                                "column": 58
                              }
                            },
                            "name": "call"
                          },
                          "computed": false
                        },
                        "arguments": [
                          {
                            "type": "MemberExpression",
                            "start": 1501,
                            "end": 1507,
                            "loc": {
                              "start": {
                                "line": 44,
                                "column": 59
                              },
                              "end": {
                                "line": 44,
                                "column": 65
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 1501,
                              "end": 1503,
                              "loc": {
                                "start": {
                                  "line": 44,
                                  "column": 59
                                },
                                "end": {
                                  "line": 44,
                                  "column": 61
                                }
                              },
                              "name": "ev"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 1504,
                              "end": 1507,
                              "loc": {
                                "start": {
                                  "line": 44,
                                  "column": 62
                                },
                                "end": {
                                  "line": 44,
                                  "column": 65
                                }
                              },
                              "name": "ctx"
                            },
                            "computed": false
                          },
                          {
                            "type": "Identifier",
                            "start": 1509,
                            "end": 1511,
                            "loc": {
                              "start": {
                                "line": 44,
                                "column": 67
                              },
                              "end": {
                                "line": 44,
                                "column": 69
                              }
                            },
                            "name": "a1"
                          }
                        ]
                      }
                    }
                  },
                  {
                    "type": "ReturnStatement",
                    "start": 1514,
                    "end": 1521,
                    "loc": {
                      "start": {
                        "line": 44,
                        "column": 72
                      },
                      "end": {
                        "line": 44,
                        "column": 79
                      }
                    },
                    "argument": null
                  }
                ],
                "test": {
                  "type": "Literal",
                  "start": 1451,
                  "end": 1452,
                  "loc": {
                    "start": {
                      "line": 44,
                      "column": 9
                    },
                    "end": {
                      "line": 44,
                      "column": 10
                    }
                  },
                  "value": 1,
                  "rawValue": 1,
                  "raw": "1"
                }
              },
              {
                "type": "SwitchCase",
                "start": 1526,
                "end": 1605,
                "loc": {
                  "start": {
                    "line": 45,
                    "column": 4
                  },
                  "end": {
                    "line": 45,
                    "column": 83
                  }
                },
                "consequent": [
                  {
                    "type": "WhileStatement",
                    "start": 1534,
                    "end": 1597,
                    "loc": {
                      "start": {
                        "line": 45,
                        "column": 12
                      },
                      "end": {
                        "line": 45,
                        "column": 75
                      }
                    },
                    "test": {
                      "type": "BinaryExpression",
                      "start": 1541,
                      "end": 1548,
                      "loc": {
                        "start": {
                          "line": 45,
                          "column": 19
                        },
                        "end": {
                          "line": 45,
                          "column": 26
                        }
                      },
                      "left": {
                        "type": "UpdateExpression",
                        "start": 1541,
                        "end": 1544,
                        "loc": {
                          "start": {
                            "line": 45,
                            "column": 19
                          },
                          "end": {
                            "line": 45,
                            "column": 22
                          }
                        },
                        "operator": "++",
                        "prefix": true,
                        "argument": {
                          "type": "Identifier",
                          "start": 1543,
                          "end": 1544,
                          "loc": {
                            "start": {
                              "line": 45,
                              "column": 21
                            },
                            "end": {
                              "line": 45,
                              "column": 22
                            }
                          },
                          "name": "i"
                        }
                      },
                      "operator": "<",
                      "right": {
                        "type": "Identifier",
                        "start": 1547,
                        "end": 1548,
                        "loc": {
                          "start": {
                            "line": 45,
                            "column": 25
                          },
                          "end": {
                            "line": 45,
                            "column": 26
                          }
                        },
                        "name": "l"
                      }
                    },
                    "body": {
                      "type": "ExpressionStatement",
                      "start": 1550,
                      "end": 1597,
                      "loc": {
                        "start": {
                          "line": 45,
                          "column": 28
                        },
                        "end": {
                          "line": 45,
                          "column": 75
                        }
                      },
                      "expression": {
                        "type": "CallExpression",
                        "start": 1550,
                        "end": 1596,
                        "loc": {
                          "start": {
                            "line": 45,
                            "column": 28
                          },
                          "end": {
                            "line": 45,
                            "column": 74
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 1550,
                          "end": 1580,
                          "loc": {
                            "start": {
                              "line": 45,
                              "column": 28
                            },
                            "end": {
                              "line": 45,
                              "column": 58
                            }
                          },
                          "object": {
                            "type": "MemberExpression",
                            "start": 1550,
                            "end": 1575,
                            "loc": {
                              "start": {
                                "line": 45,
                                "column": 28
                              },
                              "end": {
                                "line": 45,
                                "column": 53
                              }
                            },
                            "object": {
                              "type": "AssignmentExpression",
                              "start": 1551,
                              "end": 1565,
                              "loc": {
                                "start": {
                                  "line": 45,
                                  "column": 29
                                },
                                "end": {
                                  "line": 45,
                                  "column": 43
                                }
                              },
                              "operator": "=",
                              "left": {
                                "type": "Identifier",
                                "start": 1551,
                                "end": 1553,
                                "loc": {
                                  "start": {
                                    "line": 45,
                                    "column": 29
                                  },
                                  "end": {
                                    "line": 45,
                                    "column": 31
                                  }
                                },
                                "name": "ev"
                              },
                              "right": {
                                "type": "MemberExpression",
                                "start": 1556,
                                "end": 1565,
                                "loc": {
                                  "start": {
                                    "line": 45,
                                    "column": 34
                                  },
                                  "end": {
                                    "line": 45,
                                    "column": 43
                                  }
                                },
                                "object": {
                                  "type": "Identifier",
                                  "start": 1556,
                                  "end": 1562,
                                  "loc": {
                                    "start": {
                                      "line": 45,
                                      "column": 34
                                    },
                                    "end": {
                                      "line": 45,
                                      "column": 40
                                    }
                                  },
                                  "name": "events"
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 1563,
                                  "end": 1564,
                                  "loc": {
                                    "start": {
                                      "line": 45,
                                      "column": 41
                                    },
                                    "end": {
                                      "line": 45,
                                      "column": 42
                                    }
                                  },
                                  "name": "i"
                                },
                                "computed": true
                              },
                              "parenthesizedExpression": true
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 1567,
                              "end": 1575,
                              "loc": {
                                "start": {
                                  "line": 45,
                                  "column": 45
                                },
                                "end": {
                                  "line": 45,
                                  "column": 53
                                }
                              },
                              "name": "callback"
                            },
                            "computed": false
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 1576,
                            "end": 1580,
                            "loc": {
                              "start": {
                                "line": 45,
                                "column": 54
                              },
                              "end": {
                                "line": 45,
                                "column": 58
                              }
                            },
                            "name": "call"
                          },
                          "computed": false
                        },
                        "arguments": [
                          {
                            "type": "MemberExpression",
                            "start": 1581,
                            "end": 1587,
                            "loc": {
                              "start": {
                                "line": 45,
                                "column": 59
                              },
                              "end": {
                                "line": 45,
                                "column": 65
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 1581,
                              "end": 1583,
                              "loc": {
                                "start": {
                                  "line": 45,
                                  "column": 59
                                },
                                "end": {
                                  "line": 45,
                                  "column": 61
                                }
                              },
                              "name": "ev"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 1584,
                              "end": 1587,
                              "loc": {
                                "start": {
                                  "line": 45,
                                  "column": 62
                                },
                                "end": {
                                  "line": 45,
                                  "column": 65
                                }
                              },
                              "name": "ctx"
                            },
                            "computed": false
                          },
                          {
                            "type": "Identifier",
                            "start": 1589,
                            "end": 1591,
                            "loc": {
                              "start": {
                                "line": 45,
                                "column": 67
                              },
                              "end": {
                                "line": 45,
                                "column": 69
                              }
                            },
                            "name": "a1"
                          },
                          {
                            "type": "Identifier",
                            "start": 1593,
                            "end": 1595,
                            "loc": {
                              "start": {
                                "line": 45,
                                "column": 71
                              },
                              "end": {
                                "line": 45,
                                "column": 73
                              }
                            },
                            "name": "a2"
                          }
                        ]
                      }
                    }
                  },
                  {
                    "type": "ReturnStatement",
                    "start": 1598,
                    "end": 1605,
                    "loc": {
                      "start": {
                        "line": 45,
                        "column": 76
                      },
                      "end": {
                        "line": 45,
                        "column": 83
                      }
                    },
                    "argument": null
                  }
                ],
                "test": {
                  "type": "Literal",
                  "start": 1531,
                  "end": 1532,
                  "loc": {
                    "start": {
                      "line": 45,
                      "column": 9
                    },
                    "end": {
                      "line": 45,
                      "column": 10
                    }
                  },
                  "value": 2,
                  "rawValue": 2,
                  "raw": "2"
                }
              },
              {
                "type": "SwitchCase",
                "start": 1610,
                "end": 1693,
                "loc": {
                  "start": {
                    "line": 46,
                    "column": 4
                  },
                  "end": {
                    "line": 46,
                    "column": 87
                  }
                },
                "consequent": [
                  {
                    "type": "WhileStatement",
                    "start": 1618,
                    "end": 1685,
                    "loc": {
                      "start": {
                        "line": 46,
                        "column": 12
                      },
                      "end": {
                        "line": 46,
                        "column": 79
                      }
                    },
                    "test": {
                      "type": "BinaryExpression",
                      "start": 1625,
                      "end": 1632,
                      "loc": {
                        "start": {
                          "line": 46,
                          "column": 19
                        },
                        "end": {
                          "line": 46,
                          "column": 26
                        }
                      },
                      "left": {
                        "type": "UpdateExpression",
                        "start": 1625,
                        "end": 1628,
                        "loc": {
                          "start": {
                            "line": 46,
                            "column": 19
                          },
                          "end": {
                            "line": 46,
                            "column": 22
                          }
                        },
                        "operator": "++",
                        "prefix": true,
                        "argument": {
                          "type": "Identifier",
                          "start": 1627,
                          "end": 1628,
                          "loc": {
                            "start": {
                              "line": 46,
                              "column": 21
                            },
                            "end": {
                              "line": 46,
                              "column": 22
                            }
                          },
                          "name": "i"
                        }
                      },
                      "operator": "<",
                      "right": {
                        "type": "Identifier",
                        "start": 1631,
                        "end": 1632,
                        "loc": {
                          "start": {
                            "line": 46,
                            "column": 25
                          },
                          "end": {
                            "line": 46,
                            "column": 26
                          }
                        },
                        "name": "l"
                      }
                    },
                    "body": {
                      "type": "ExpressionStatement",
                      "start": 1634,
                      "end": 1685,
                      "loc": {
                        "start": {
                          "line": 46,
                          "column": 28
                        },
                        "end": {
                          "line": 46,
                          "column": 79
                        }
                      },
                      "expression": {
                        "type": "CallExpression",
                        "start": 1634,
                        "end": 1684,
                        "loc": {
                          "start": {
                            "line": 46,
                            "column": 28
                          },
                          "end": {
                            "line": 46,
                            "column": 78
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 1634,
                          "end": 1664,
                          "loc": {
                            "start": {
                              "line": 46,
                              "column": 28
                            },
                            "end": {
                              "line": 46,
                              "column": 58
                            }
                          },
                          "object": {
                            "type": "MemberExpression",
                            "start": 1634,
                            "end": 1659,
                            "loc": {
                              "start": {
                                "line": 46,
                                "column": 28
                              },
                              "end": {
                                "line": 46,
                                "column": 53
                              }
                            },
                            "object": {
                              "type": "AssignmentExpression",
                              "start": 1635,
                              "end": 1649,
                              "loc": {
                                "start": {
                                  "line": 46,
                                  "column": 29
                                },
                                "end": {
                                  "line": 46,
                                  "column": 43
                                }
                              },
                              "operator": "=",
                              "left": {
                                "type": "Identifier",
                                "start": 1635,
                                "end": 1637,
                                "loc": {
                                  "start": {
                                    "line": 46,
                                    "column": 29
                                  },
                                  "end": {
                                    "line": 46,
                                    "column": 31
                                  }
                                },
                                "name": "ev"
                              },
                              "right": {
                                "type": "MemberExpression",
                                "start": 1640,
                                "end": 1649,
                                "loc": {
                                  "start": {
                                    "line": 46,
                                    "column": 34
                                  },
                                  "end": {
                                    "line": 46,
                                    "column": 43
                                  }
                                },
                                "object": {
                                  "type": "Identifier",
                                  "start": 1640,
                                  "end": 1646,
                                  "loc": {
                                    "start": {
                                      "line": 46,
                                      "column": 34
                                    },
                                    "end": {
                                      "line": 46,
                                      "column": 40
                                    }
                                  },
                                  "name": "events"
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 1647,
                                  "end": 1648,
                                  "loc": {
                                    "start": {
                                      "line": 46,
                                      "column": 41
                                    },
                                    "end": {
                                      "line": 46,
                                      "column": 42
                                    }
                                  },
                                  "name": "i"
                                },
                                "computed": true
                              },
                              "parenthesizedExpression": true
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 1651,
                              "end": 1659,
                              "loc": {
                                "start": {
                                  "line": 46,
                                  "column": 45
                                },
                                "end": {
                                  "line": 46,
                                  "column": 53
                                }
                              },
                              "name": "callback"
                            },
                            "computed": false
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 1660,
                            "end": 1664,
                            "loc": {
                              "start": {
                                "line": 46,
                                "column": 54
                              },
                              "end": {
                                "line": 46,
                                "column": 58
                              }
                            },
                            "name": "call"
                          },
                          "computed": false
                        },
                        "arguments": [
                          {
                            "type": "MemberExpression",
                            "start": 1665,
                            "end": 1671,
                            "loc": {
                              "start": {
                                "line": 46,
                                "column": 59
                              },
                              "end": {
                                "line": 46,
                                "column": 65
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 1665,
                              "end": 1667,
                              "loc": {
                                "start": {
                                  "line": 46,
                                  "column": 59
                                },
                                "end": {
                                  "line": 46,
                                  "column": 61
                                }
                              },
                              "name": "ev"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 1668,
                              "end": 1671,
                              "loc": {
                                "start": {
                                  "line": 46,
                                  "column": 62
                                },
                                "end": {
                                  "line": 46,
                                  "column": 65
                                }
                              },
                              "name": "ctx"
                            },
                            "computed": false
                          },
                          {
                            "type": "Identifier",
                            "start": 1673,
                            "end": 1675,
                            "loc": {
                              "start": {
                                "line": 46,
                                "column": 67
                              },
                              "end": {
                                "line": 46,
                                "column": 69
                              }
                            },
                            "name": "a1"
                          },
                          {
                            "type": "Identifier",
                            "start": 1677,
                            "end": 1679,
                            "loc": {
                              "start": {
                                "line": 46,
                                "column": 71
                              },
                              "end": {
                                "line": 46,
                                "column": 73
                              }
                            },
                            "name": "a2"
                          },
                          {
                            "type": "Identifier",
                            "start": 1681,
                            "end": 1683,
                            "loc": {
                              "start": {
                                "line": 46,
                                "column": 75
                              },
                              "end": {
                                "line": 46,
                                "column": 77
                              }
                            },
                            "name": "a3"
                          }
                        ]
                      }
                    }
                  },
                  {
                    "type": "ReturnStatement",
                    "start": 1686,
                    "end": 1693,
                    "loc": {
                      "start": {
                        "line": 46,
                        "column": 80
                      },
                      "end": {
                        "line": 46,
                        "column": 87
                      }
                    },
                    "argument": null
                  }
                ],
                "test": {
                  "type": "Literal",
                  "start": 1615,
                  "end": 1616,
                  "loc": {
                    "start": {
                      "line": 46,
                      "column": 9
                    },
                    "end": {
                      "line": 46,
                      "column": 10
                    }
                  },
                  "value": 3,
                  "rawValue": 3,
                  "raw": "3"
                }
              },
              {
                "type": "SwitchCase",
                "start": 1698,
                "end": 1777,
                "loc": {
                  "start": {
                    "line": 47,
                    "column": 4
                  },
                  "end": {
                    "line": 47,
                    "column": 83
                  }
                },
                "consequent": [
                  {
                    "type": "WhileStatement",
                    "start": 1707,
                    "end": 1769,
                    "loc": {
                      "start": {
                        "line": 47,
                        "column": 13
                      },
                      "end": {
                        "line": 47,
                        "column": 75
                      }
                    },
                    "test": {
                      "type": "BinaryExpression",
                      "start": 1714,
                      "end": 1721,
                      "loc": {
                        "start": {
                          "line": 47,
                          "column": 20
                        },
                        "end": {
                          "line": 47,
                          "column": 27
                        }
                      },
                      "left": {
                        "type": "UpdateExpression",
                        "start": 1714,
                        "end": 1717,
                        "loc": {
                          "start": {
                            "line": 47,
                            "column": 20
                          },
                          "end": {
                            "line": 47,
                            "column": 23
                          }
                        },
                        "operator": "++",
                        "prefix": true,
                        "argument": {
                          "type": "Identifier",
                          "start": 1716,
                          "end": 1717,
                          "loc": {
                            "start": {
                              "line": 47,
                              "column": 22
                            },
                            "end": {
                              "line": 47,
                              "column": 23
                            }
                          },
                          "name": "i"
                        }
                      },
                      "operator": "<",
                      "right": {
                        "type": "Identifier",
                        "start": 1720,
                        "end": 1721,
                        "loc": {
                          "start": {
                            "line": 47,
                            "column": 26
                          },
                          "end": {
                            "line": 47,
                            "column": 27
                          }
                        },
                        "name": "l"
                      }
                    },
                    "body": {
                      "type": "ExpressionStatement",
                      "start": 1723,
                      "end": 1769,
                      "loc": {
                        "start": {
                          "line": 47,
                          "column": 29
                        },
                        "end": {
                          "line": 47,
                          "column": 75
                        }
                      },
                      "expression": {
                        "type": "CallExpression",
                        "start": 1723,
                        "end": 1768,
                        "loc": {
                          "start": {
                            "line": 47,
                            "column": 29
                          },
                          "end": {
                            "line": 47,
                            "column": 74
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 1723,
                          "end": 1754,
                          "loc": {
                            "start": {
                              "line": 47,
                              "column": 29
                            },
                            "end": {
                              "line": 47,
                              "column": 60
                            }
                          },
                          "object": {
                            "type": "MemberExpression",
                            "start": 1723,
                            "end": 1748,
                            "loc": {
                              "start": {
                                "line": 47,
                                "column": 29
                              },
                              "end": {
                                "line": 47,
                                "column": 54
                              }
                            },
                            "object": {
                              "type": "AssignmentExpression",
                              "start": 1724,
                              "end": 1738,
                              "loc": {
                                "start": {
                                  "line": 47,
                                  "column": 30
                                },
                                "end": {
                                  "line": 47,
                                  "column": 44
                                }
                              },
                              "operator": "=",
                              "left": {
                                "type": "Identifier",
                                "start": 1724,
                                "end": 1726,
                                "loc": {
                                  "start": {
                                    "line": 47,
                                    "column": 30
                                  },
                                  "end": {
                                    "line": 47,
                                    "column": 32
                                  }
                                },
                                "name": "ev"
                              },
                              "right": {
                                "type": "MemberExpression",
                                "start": 1729,
                                "end": 1738,
                                "loc": {
                                  "start": {
                                    "line": 47,
                                    "column": 35
                                  },
                                  "end": {
                                    "line": 47,
                                    "column": 44
                                  }
                                },
                                "object": {
                                  "type": "Identifier",
                                  "start": 1729,
                                  "end": 1735,
                                  "loc": {
                                    "start": {
                                      "line": 47,
                                      "column": 35
                                    },
                                    "end": {
                                      "line": 47,
                                      "column": 41
                                    }
                                  },
                                  "name": "events"
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 1736,
                                  "end": 1737,
                                  "loc": {
                                    "start": {
                                      "line": 47,
                                      "column": 42
                                    },
                                    "end": {
                                      "line": 47,
                                      "column": 43
                                    }
                                  },
                                  "name": "i"
                                },
                                "computed": true
                              },
                              "parenthesizedExpression": true
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 1740,
                              "end": 1748,
                              "loc": {
                                "start": {
                                  "line": 47,
                                  "column": 46
                                },
                                "end": {
                                  "line": 47,
                                  "column": 54
                                }
                              },
                              "name": "callback"
                            },
                            "computed": false
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 1749,
                            "end": 1754,
                            "loc": {
                              "start": {
                                "line": 47,
                                "column": 55
                              },
                              "end": {
                                "line": 47,
                                "column": 60
                              }
                            },
                            "name": "apply"
                          },
                          "computed": false
                        },
                        "arguments": [
                          {
                            "type": "MemberExpression",
                            "start": 1755,
                            "end": 1761,
                            "loc": {
                              "start": {
                                "line": 47,
                                "column": 61
                              },
                              "end": {
                                "line": 47,
                                "column": 67
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 1755,
                              "end": 1757,
                              "loc": {
                                "start": {
                                  "line": 47,
                                  "column": 61
                                },
                                "end": {
                                  "line": 47,
                                  "column": 63
                                }
                              },
                              "name": "ev"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 1758,
                              "end": 1761,
                              "loc": {
                                "start": {
                                  "line": 47,
                                  "column": 64
                                },
                                "end": {
                                  "line": 47,
                                  "column": 67
                                }
                              },
                              "name": "ctx"
                            },
                            "computed": false
                          },
                          {
                            "type": "Identifier",
                            "start": 1763,
                            "end": 1767,
                            "loc": {
                              "start": {
                                "line": 47,
                                "column": 69
                              },
                              "end": {
                                "line": 47,
                                "column": 73
                              }
                            },
                            "name": "args"
                          }
                        ]
                      }
                    }
                  },
                  {
                    "type": "ReturnStatement",
                    "start": 1770,
                    "end": 1777,
                    "loc": {
                      "start": {
                        "line": 47,
                        "column": 76
                      },
                      "end": {
                        "line": 47,
                        "column": 83
                      }
                    },
                    "argument": null
                  }
                ],
                "test": null
              }
            ]
          }
        ]
      },
      "leadingComments": [
        {
          "type": "CommentLine",
          "value": " A difficult-to-believe, but optimized internal dispatch function for",
          "start": 1039,
          "end": 1110,
          "loc": {
            "start": {
              "line": 37,
              "column": 0
            },
            "end": {
              "line": 37,
              "column": 71
            }
          },
          "range": [
            1039,
            1110
          ]
        },
        {
          "type": "CommentLine",
          "value": " triggering events. Tries to keep the usual cases speedy (most internal",
          "start": 1111,
          "end": 1184,
          "loc": {
            "start": {
              "line": 38,
              "column": 0
            },
            "end": {
              "line": 38,
              "column": 73
            }
          },
          "range": [
            1111,
            1184
          ]
        },
        {
          "type": "CommentLine",
          "value": " Backbone events have 3 arguments).",
          "start": 1185,
          "end": 1222,
          "loc": {
            "start": {
              "line": 39,
              "column": 0
            },
            "end": {
              "line": 39,
              "column": 37
            }
          },
          "range": [
            1185,
            1222
          ]
        }
      ]
    },
    {
      "type": "Identifier",
      "start": 1785,
      "end": 5116,
      "loc": {
        "start": {
          "line": 51,
          "column": 0
        },
        "end": {
          "line": 137,
          "column": 2
        }
      },
      "declarations": [
        {
          "type": "VariableDeclarator",
          "start": 1789,
          "end": 5115,
          "loc": {
            "start": {
              "line": 51,
              "column": 4
            },
            "end": {
              "line": 137,
              "column": 1
            }
          },
          "id": {
            "type": "Identifier",
            "start": 1789,
            "end": 1795,
            "loc": {
              "start": {
                "line": 51,
                "column": 4
              },
              "end": {
                "line": 51,
                "column": 10
              }
            },
            "name": "Events"
          },
          "init": {
            "type": "ObjectExpression",
            "start": 1798,
            "end": 5115,
            "loc": {
              "start": {
                "line": 51,
                "column": 13
              },
              "end": {
                "line": 137,
                "column": 1
              }
            },
            "properties": [
              {
                "type": "Property",
                "start": 1912,
                "end": 2243,
                "loc": {
                  "start": {
                    "line": 54,
                    "column": 2
                  },
                  "end": {
                    "line": 60,
                    "column": 3
                  }
                },
                "method": false,
                "shorthand": false,
                "computed": false,
                "key": {
                  "type": "Identifier",
                  "start": 1912,
                  "end": 1914,
                  "loc": {
                    "start": {
                      "line": 54,
                      "column": 2
                    },
                    "end": {
                      "line": 54,
                      "column": 4
                    }
                  },
                  "name": "on",
                  "leadingComments": null
                },
                "value": {
                  "type": "FunctionExpression",
                  "start": 1916,
                  "end": 2243,
                  "loc": {
                    "start": {
                      "line": 54,
                      "column": 6
                    },
                    "end": {
                      "line": 60,
                      "column": 3
                    }
                  },
                  "id": null,
                  "generator": false,
                  "expression": false,
                  "async": false,
                  "params": [
                    {
                      "type": "Identifier",
                      "start": 1925,
                      "end": 1929,
                      "loc": {
                        "start": {
                          "line": 54,
                          "column": 15
                        },
                        "end": {
                          "line": 54,
                          "column": 19
                        }
                      },
                      "name": "name"
                    },
                    {
                      "type": "Identifier",
                      "start": 1931,
                      "end": 1939,
                      "loc": {
                        "start": {
                          "line": 54,
                          "column": 21
                        },
                        "end": {
                          "line": 54,
                          "column": 29
                        }
                      },
                      "name": "callback"
                    },
                    {
                      "type": "Identifier",
                      "start": 1941,
                      "end": 1948,
                      "loc": {
                        "start": {
                          "line": 54,
                          "column": 31
                        },
                        "end": {
                          "line": 54,
                          "column": 38
                        }
                      },
                      "name": "context"
                    }
                  ],
                  "body": {
                    "type": "BlockStatement",
                    "start": 1950,
                    "end": 2243,
                    "loc": {
                      "start": {
                        "line": 54,
                        "column": 40
                      },
                      "end": {
                        "line": 60,
                        "column": 3
                      }
                    },
                    "body": [
                      {
                        "type": "IfStatement",
                        "start": 1956,
                        "end": 2036,
                        "loc": {
                          "start": {
                            "line": 55,
                            "column": 4
                          },
                          "end": {
                            "line": 55,
                            "column": 84
                          }
                        },
                        "test": {
                          "type": "LogicalExpression",
                          "start": 1960,
                          "end": 2022,
                          "loc": {
                            "start": {
                              "line": 55,
                              "column": 8
                            },
                            "end": {
                              "line": 55,
                              "column": 70
                            }
                          },
                          "left": {
                            "type": "UnaryExpression",
                            "start": 1960,
                            "end": 2009,
                            "loc": {
                              "start": {
                                "line": 55,
                                "column": 8
                              },
                              "end": {
                                "line": 55,
                                "column": 57
                              }
                            },
                            "operator": "!",
                            "prefix": true,
                            "argument": {
                              "type": "CallExpression",
                              "start": 1961,
                              "end": 2009,
                              "loc": {
                                "start": {
                                  "line": 55,
                                  "column": 9
                                },
                                "end": {
                                  "line": 55,
                                  "column": 57
                                }
                              },
                              "callee": {
                                "type": "Identifier",
                                "start": 1961,
                                "end": 1970,
                                "loc": {
                                  "start": {
                                    "line": 55,
                                    "column": 9
                                  },
                                  "end": {
                                    "line": 55,
                                    "column": 18
                                  }
                                },
                                "name": "eventsApi"
                              },
                              "arguments": [
                                {
                                  "type": "ThisExpression",
                                  "start": 1971,
                                  "end": 1975,
                                  "loc": {
                                    "start": {
                                      "line": 55,
                                      "column": 19
                                    },
                                    "end": {
                                      "line": 55,
                                      "column": 23
                                    }
                                  }
                                },
                                {
                                  "type": "Literal",
                                  "start": 1977,
                                  "end": 1981,
                                  "loc": {
                                    "start": {
                                      "line": 55,
                                      "column": 25
                                    },
                                    "end": {
                                      "line": 55,
                                      "column": 29
                                    }
                                  },
                                  "value": "on",
                                  "rawValue": "on",
                                  "raw": "\"on\""
                                },
                                {
                                  "type": "Identifier",
                                  "start": 1983,
                                  "end": 1987,
                                  "loc": {
                                    "start": {
                                      "line": 55,
                                      "column": 31
                                    },
                                    "end": {
                                      "line": 55,
                                      "column": 35
                                    }
                                  },
                                  "name": "name"
                                },
                                {
                                  "type": "ArrayExpression",
                                  "start": 1989,
                                  "end": 2008,
                                  "loc": {
                                    "start": {
                                      "line": 55,
                                      "column": 37
                                    },
                                    "end": {
                                      "line": 55,
                                      "column": 56
                                    }
                                  },
                                  "elements": [
                                    {
                                      "type": "Identifier",
                                      "start": 1990,
                                      "end": 1998,
                                      "loc": {
                                        "start": {
                                          "line": 55,
                                          "column": 38
                                        },
                                        "end": {
                                          "line": 55,
                                          "column": 46
                                        }
                                      },
                                      "name": "callback"
                                    },
                                    {
                                      "type": "Identifier",
                                      "start": 2000,
                                      "end": 2007,
                                      "loc": {
                                        "start": {
                                          "line": 55,
                                          "column": 48
                                        },
                                        "end": {
                                          "line": 55,
                                          "column": 55
                                        }
                                      },
                                      "name": "context"
                                    }
                                  ]
                                }
                              ]
                            }
                          },
                          "operator": "||",
                          "right": {
                            "type": "UnaryExpression",
                            "start": 2013,
                            "end": 2022,
                            "loc": {
                              "start": {
                                "line": 55,
                                "column": 61
                              },
                              "end": {
                                "line": 55,
                                "column": 70
                              }
                            },
                            "operator": "!",
                            "prefix": true,
                            "argument": {
                              "type": "Identifier",
                              "start": 2014,
                              "end": 2022,
                              "loc": {
                                "start": {
                                  "line": 55,
                                  "column": 62
                                },
                                "end": {
                                  "line": 55,
                                  "column": 70
                                }
                              },
                              "name": "callback"
                            }
                          }
                        },
                        "consequent": {
                          "type": "ReturnStatement",
                          "start": 2024,
                          "end": 2036,
                          "loc": {
                            "start": {
                              "line": 55,
                              "column": 72
                            },
                            "end": {
                              "line": 55,
                              "column": 84
                            }
                          },
                          "argument": {
                            "type": "ThisExpression",
                            "start": 2031,
                            "end": 2035,
                            "loc": {
                              "start": {
                                "line": 55,
                                "column": 79
                              },
                              "end": {
                                "line": 55,
                                "column": 83
                              }
                            }
                          }
                        },
                        "alternate": null
                      },
                      {
                        "type": "ExpressionStatement",
                        "start": 2041,
                        "end": 2077,
                        "loc": {
                          "start": {
                            "line": 56,
                            "column": 4
                          },
                          "end": {
                            "line": 56,
                            "column": 40
                          }
                        },
                        "expression": {
                          "type": "LogicalExpression",
                          "start": 2041,
                          "end": 2076,
                          "loc": {
                            "start": {
                              "line": 56,
                              "column": 4
                            },
                            "end": {
                              "line": 56,
                              "column": 39
                            }
                          },
                          "left": {
                            "type": "MemberExpression",
                            "start": 2041,
                            "end": 2053,
                            "loc": {
                              "start": {
                                "line": 56,
                                "column": 4
                              },
                              "end": {
                                "line": 56,
                                "column": 16
                              }
                            },
                            "object": {
                              "type": "ThisExpression",
                              "start": 2041,
                              "end": 2045,
                              "loc": {
                                "start": {
                                  "line": 56,
                                  "column": 4
                                },
                                "end": {
                                  "line": 56,
                                  "column": 8
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 2046,
                              "end": 2053,
                              "loc": {
                                "start": {
                                  "line": 56,
                                  "column": 9
                                },
                                "end": {
                                  "line": 56,
                                  "column": 16
                                }
                              },
                              "name": "_events"
                            },
                            "computed": false
                          },
                          "operator": "||",
                          "right": {
                            "type": "AssignmentExpression",
                            "start": 2058,
                            "end": 2075,
                            "loc": {
                              "start": {
                                "line": 56,
                                "column": 21
                              },
                              "end": {
                                "line": 56,
                                "column": 38
                              }
                            },
                            "operator": "=",
                            "left": {
                              "type": "MemberExpression",
                              "start": 2058,
                              "end": 2070,
                              "loc": {
                                "start": {
                                  "line": 56,
                                  "column": 21
                                },
                                "end": {
                                  "line": 56,
                                  "column": 33
                                }
                              },
                              "object": {
                                "type": "ThisExpression",
                                "start": 2058,
                                "end": 2062,
                                "loc": {
                                  "start": {
                                    "line": 56,
                                    "column": 21
                                  },
                                  "end": {
                                    "line": 56,
                                    "column": 25
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 2063,
                                "end": 2070,
                                "loc": {
                                  "start": {
                                    "line": 56,
                                    "column": 26
                                  },
                                  "end": {
                                    "line": 56,
                                    "column": 33
                                  }
                                },
                                "name": "_events"
                              },
                              "computed": false
                            },
                            "right": {
                              "type": "ObjectExpression",
                              "start": 2073,
                              "end": 2075,
                              "loc": {
                                "start": {
                                  "line": 56,
                                  "column": 36
                                },
                                "end": {
                                  "line": 56,
                                  "column": 38
                                }
                              },
                              "properties": []
                            },
                            "parenthesizedExpression": true
                          }
                        }
                      },
                      {
                        "type": "VariableDeclaration",
                        "start": 2082,
                        "end": 2143,
                        "loc": {
                          "start": {
                            "line": 57,
                            "column": 4
                          },
                          "end": {
                            "line": 57,
                            "column": 65
                          }
                        },
                        "declarations": [
                          {
                            "type": "VariableDeclarator",
                            "start": 2086,
                            "end": 2142,
                            "loc": {
                              "start": {
                                "line": 57,
                                "column": 8
                              },
                              "end": {
                                "line": 57,
                                "column": 64
                              }
                            },
                            "id": {
                              "type": "Identifier",
                              "start": 2086,
                              "end": 2092,
                              "loc": {
                                "start": {
                                  "line": 57,
                                  "column": 8
                                },
                                "end": {
                                  "line": 57,
                                  "column": 14
                                }
                              },
                              "name": "events"
                            },
                            "init": {
                              "type": "LogicalExpression",
                              "start": 2095,
                              "end": 2142,
                              "loc": {
                                "start": {
                                  "line": 57,
                                  "column": 17
                                },
                                "end": {
                                  "line": 57,
                                  "column": 64
                                }
                              },
                              "left": {
                                "type": "MemberExpression",
                                "start": 2095,
                                "end": 2113,
                                "loc": {
                                  "start": {
                                    "line": 57,
                                    "column": 17
                                  },
                                  "end": {
                                    "line": 57,
                                    "column": 35
                                  }
                                },
                                "object": {
                                  "type": "MemberExpression",
                                  "start": 2095,
                                  "end": 2107,
                                  "loc": {
                                    "start": {
                                      "line": 57,
                                      "column": 17
                                    },
                                    "end": {
                                      "line": 57,
                                      "column": 29
                                    }
                                  },
                                  "object": {
                                    "type": "ThisExpression",
                                    "start": 2095,
                                    "end": 2099,
                                    "loc": {
                                      "start": {
                                        "line": 57,
                                        "column": 17
                                      },
                                      "end": {
                                        "line": 57,
                                        "column": 21
                                      }
                                    }
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 2100,
                                    "end": 2107,
                                    "loc": {
                                      "start": {
                                        "line": 57,
                                        "column": 22
                                      },
                                      "end": {
                                        "line": 57,
                                        "column": 29
                                      }
                                    },
                                    "name": "_events"
                                  },
                                  "computed": false
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 2108,
                                  "end": 2112,
                                  "loc": {
                                    "start": {
                                      "line": 57,
                                      "column": 30
                                    },
                                    "end": {
                                      "line": 57,
                                      "column": 34
                                    }
                                  },
                                  "name": "name"
                                },
                                "computed": true
                              },
                              "operator": "||",
                              "right": {
                                "type": "AssignmentExpression",
                                "start": 2118,
                                "end": 2141,
                                "loc": {
                                  "start": {
                                    "line": 57,
                                    "column": 40
                                  },
                                  "end": {
                                    "line": 57,
                                    "column": 63
                                  }
                                },
                                "operator": "=",
                                "left": {
                                  "type": "MemberExpression",
                                  "start": 2118,
                                  "end": 2136,
                                  "loc": {
                                    "start": {
                                      "line": 57,
                                      "column": 40
                                    },
                                    "end": {
                                      "line": 57,
                                      "column": 58
                                    }
                                  },
                                  "object": {
                                    "type": "MemberExpression",
                                    "start": 2118,
                                    "end": 2130,
                                    "loc": {
                                      "start": {
                                        "line": 57,
                                        "column": 40
                                      },
                                      "end": {
                                        "line": 57,
                                        "column": 52
                                      }
                                    },
                                    "object": {
                                      "type": "ThisExpression",
                                      "start": 2118,
                                      "end": 2122,
                                      "loc": {
                                        "start": {
                                          "line": 57,
                                          "column": 40
                                        },
                                        "end": {
                                          "line": 57,
                                          "column": 44
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 2123,
                                      "end": 2130,
                                      "loc": {
                                        "start": {
                                          "line": 57,
                                          "column": 45
                                        },
                                        "end": {
                                          "line": 57,
                                          "column": 52
                                        }
                                      },
                                      "name": "_events"
                                    },
                                    "computed": false
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 2131,
                                    "end": 2135,
                                    "loc": {
                                      "start": {
                                        "line": 57,
                                        "column": 53
                                      },
                                      "end": {
                                        "line": 57,
                                        "column": 57
                                      }
                                    },
                                    "name": "name"
                                  },
                                  "computed": true
                                },
                                "right": {
                                  "type": "ArrayExpression",
                                  "start": 2139,
                                  "end": 2141,
                                  "loc": {
                                    "start": {
                                      "line": 57,
                                      "column": 61
                                    },
                                    "end": {
                                      "line": 57,
                                      "column": 63
                                    }
                                  },
                                  "elements": []
                                },
                                "parenthesizedExpression": true
                              }
                            }
                          }
                        ],
                        "kind": "let"
                      },
                      {
                        "type": "ExpressionStatement",
                        "start": 2148,
                        "end": 2222,
                        "loc": {
                          "start": {
                            "line": 58,
                            "column": 4
                          },
                          "end": {
                            "line": 58,
                            "column": 78
                          }
                        },
                        "expression": {
                          "type": "CallExpression",
                          "start": 2148,
                          "end": 2221,
                          "loc": {
                            "start": {
                              "line": 58,
                              "column": 4
                            },
                            "end": {
                              "line": 58,
                              "column": 77
                            }
                          },
                          "callee": {
                            "type": "MemberExpression",
                            "start": 2148,
                            "end": 2159,
                            "loc": {
                              "start": {
                                "line": 58,
                                "column": 4
                              },
                              "end": {
                                "line": 58,
                                "column": 15
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 2148,
                              "end": 2154,
                              "loc": {
                                "start": {
                                  "line": 58,
                                  "column": 4
                                },
                                "end": {
                                  "line": 58,
                                  "column": 10
                                }
                              },
                              "name": "events"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 2155,
                              "end": 2159,
                              "loc": {
                                "start": {
                                  "line": 58,
                                  "column": 11
                                },
                                "end": {
                                  "line": 58,
                                  "column": 15
                                }
                              },
                              "name": "push"
                            },
                            "computed": false
                          },
                          "arguments": [
                            {
                              "type": "ObjectExpression",
                              "start": 2160,
                              "end": 2220,
                              "loc": {
                                "start": {
                                  "line": 58,
                                  "column": 16
                                },
                                "end": {
                                  "line": 58,
                                  "column": 76
                                }
                              },
                              "properties": [
                                {
                                  "type": "Property",
                                  "start": 2161,
                                  "end": 2179,
                                  "loc": {
                                    "start": {
                                      "line": 58,
                                      "column": 17
                                    },
                                    "end": {
                                      "line": 58,
                                      "column": 35
                                    }
                                  },
                                  "method": false,
                                  "shorthand": false,
                                  "computed": false,
                                  "key": {
                                    "type": "Identifier",
                                    "start": 2161,
                                    "end": 2169,
                                    "loc": {
                                      "start": {
                                        "line": 58,
                                        "column": 17
                                      },
                                      "end": {
                                        "line": 58,
                                        "column": 25
                                      }
                                    },
                                    "name": "callback"
                                  },
                                  "value": {
                                    "type": "Identifier",
                                    "start": 2171,
                                    "end": 2179,
                                    "loc": {
                                      "start": {
                                        "line": 58,
                                        "column": 27
                                      },
                                      "end": {
                                        "line": 58,
                                        "column": 35
                                      }
                                    },
                                    "name": "callback"
                                  },
                                  "kind": "init"
                                },
                                {
                                  "type": "Property",
                                  "start": 2181,
                                  "end": 2197,
                                  "loc": {
                                    "start": {
                                      "line": 58,
                                      "column": 37
                                    },
                                    "end": {
                                      "line": 58,
                                      "column": 53
                                    }
                                  },
                                  "method": false,
                                  "shorthand": false,
                                  "computed": false,
                                  "key": {
                                    "type": "Identifier",
                                    "start": 2181,
                                    "end": 2188,
                                    "loc": {
                                      "start": {
                                        "line": 58,
                                        "column": 37
                                      },
                                      "end": {
                                        "line": 58,
                                        "column": 44
                                      }
                                    },
                                    "name": "context"
                                  },
                                  "value": {
                                    "type": "Identifier",
                                    "start": 2190,
                                    "end": 2197,
                                    "loc": {
                                      "start": {
                                        "line": 58,
                                        "column": 46
                                      },
                                      "end": {
                                        "line": 58,
                                        "column": 53
                                      }
                                    },
                                    "name": "context"
                                  },
                                  "kind": "init"
                                },
                                {
                                  "type": "Property",
                                  "start": 2199,
                                  "end": 2219,
                                  "loc": {
                                    "start": {
                                      "line": 58,
                                      "column": 55
                                    },
                                    "end": {
                                      "line": 58,
                                      "column": 75
                                    }
                                  },
                                  "method": false,
                                  "shorthand": false,
                                  "computed": false,
                                  "key": {
                                    "type": "Identifier",
                                    "start": 2199,
                                    "end": 2202,
                                    "loc": {
                                      "start": {
                                        "line": 58,
                                        "column": 55
                                      },
                                      "end": {
                                        "line": 58,
                                        "column": 58
                                      }
                                    },
                                    "name": "ctx"
                                  },
                                  "value": {
                                    "type": "LogicalExpression",
                                    "start": 2204,
                                    "end": 2219,
                                    "loc": {
                                      "start": {
                                        "line": 58,
                                        "column": 60
                                      },
                                      "end": {
                                        "line": 58,
                                        "column": 75
                                      }
                                    },
                                    "left": {
                                      "type": "Identifier",
                                      "start": 2204,
                                      "end": 2211,
                                      "loc": {
                                        "start": {
                                          "line": 58,
                                          "column": 60
                                        },
                                        "end": {
                                          "line": 58,
                                          "column": 67
                                        }
                                      },
                                      "name": "context"
                                    },
                                    "operator": "||",
                                    "right": {
                                      "type": "ThisExpression",
                                      "start": 2215,
                                      "end": 2219,
                                      "loc": {
                                        "start": {
                                          "line": 58,
                                          "column": 71
                                        },
                                        "end": {
                                          "line": 58,
                                          "column": 75
                                        }
                                      }
                                    }
                                  },
                                  "kind": "init"
                                }
                              ]
                            }
                          ]
                        }
                      },
                      {
                        "type": "ReturnStatement",
                        "start": 2227,
                        "end": 2239,
                        "loc": {
                          "start": {
                            "line": 59,
                            "column": 4
                          },
                          "end": {
                            "line": 59,
                            "column": 16
                          }
                        },
                        "argument": {
                          "type": "ThisExpression",
                          "start": 2234,
                          "end": 2238,
                          "loc": {
                            "start": {
                              "line": 59,
                              "column": 11
                            },
                            "end": {
                              "line": 59,
                              "column": 15
                            }
                          }
                        }
                      }
                    ]
                  }
                },
                "kind": "init",
                "leadingComments": [
                  {
                    "type": "CommentLine",
                    "value": " Bind an event to a `callback` function. Passing `\"all\"` will bind",
                    "start": 1802,
                    "end": 1870,
                    "loc": {
                      "start": {
                        "line": 52,
                        "column": 2
                      },
                      "end": {
                        "line": 52,
                        "column": 70
                      }
                    },
                    "range": [
                      1802,
                      1870
                    ]
                  },
                  {
                    "type": "CommentLine",
                    "value": " the callback to all events fired.",
                    "start": 1873,
                    "end": 1909,
                    "loc": {
                      "start": {
                        "line": 53,
                        "column": 2
                      },
                      "end": {
                        "line": 53,
                        "column": 38
                      }
                    },
                    "range": [
                      1873,
                      1909
                    ]
                  }
                ]
              },
              {
                "type": "Property",
                "start": 2374,
                "end": 2710,
                "loc": {
                  "start": {
                    "line": 64,
                    "column": 2
                  },
                  "end": {
                    "line": 73,
                    "column": 3
                  }
                },
                "method": false,
                "shorthand": false,
                "computed": false,
                "key": {
                  "type": "Identifier",
                  "start": 2374,
                  "end": 2378,
                  "loc": {
                    "start": {
                      "line": 64,
                      "column": 2
                    },
                    "end": {
                      "line": 64,
                      "column": 6
                    }
                  },
                  "name": "once",
                  "leadingComments": null
                },
                "value": {
                  "type": "FunctionExpression",
                  "start": 2380,
                  "end": 2710,
                  "loc": {
                    "start": {
                      "line": 64,
                      "column": 8
                    },
                    "end": {
                      "line": 73,
                      "column": 3
                    }
                  },
                  "id": null,
                  "generator": false,
                  "expression": false,
                  "async": false,
                  "params": [
                    {
                      "type": "Identifier",
                      "start": 2389,
                      "end": 2393,
                      "loc": {
                        "start": {
                          "line": 64,
                          "column": 17
                        },
                        "end": {
                          "line": 64,
                          "column": 21
                        }
                      },
                      "name": "name"
                    },
                    {
                      "type": "Identifier",
                      "start": 2395,
                      "end": 2403,
                      "loc": {
                        "start": {
                          "line": 64,
                          "column": 23
                        },
                        "end": {
                          "line": 64,
                          "column": 31
                        }
                      },
                      "name": "callback"
                    },
                    {
                      "type": "Identifier",
                      "start": 2405,
                      "end": 2412,
                      "loc": {
                        "start": {
                          "line": 64,
                          "column": 33
                        },
                        "end": {
                          "line": 64,
                          "column": 40
                        }
                      },
                      "name": "context"
                    }
                  ],
                  "body": {
                    "type": "BlockStatement",
                    "start": 2414,
                    "end": 2710,
                    "loc": {
                      "start": {
                        "line": 64,
                        "column": 42
                      },
                      "end": {
                        "line": 73,
                        "column": 3
                      }
                    },
                    "body": [
                      {
                        "type": "IfStatement",
                        "start": 2420,
                        "end": 2502,
                        "loc": {
                          "start": {
                            "line": 65,
                            "column": 4
                          },
                          "end": {
                            "line": 65,
                            "column": 86
                          }
                        },
                        "test": {
                          "type": "LogicalExpression",
                          "start": 2424,
                          "end": 2488,
                          "loc": {
                            "start": {
                              "line": 65,
                              "column": 8
                            },
                            "end": {
                              "line": 65,
                              "column": 72
                            }
                          },
                          "left": {
                            "type": "UnaryExpression",
                            "start": 2424,
                            "end": 2475,
                            "loc": {
                              "start": {
                                "line": 65,
                                "column": 8
                              },
                              "end": {
                                "line": 65,
                                "column": 59
                              }
                            },
                            "operator": "!",
                            "prefix": true,
                            "argument": {
                              "type": "CallExpression",
                              "start": 2425,
                              "end": 2475,
                              "loc": {
                                "start": {
                                  "line": 65,
                                  "column": 9
                                },
                                "end": {
                                  "line": 65,
                                  "column": 59
                                }
                              },
                              "callee": {
                                "type": "Identifier",
                                "start": 2425,
                                "end": 2434,
                                "loc": {
                                  "start": {
                                    "line": 65,
                                    "column": 9
                                  },
                                  "end": {
                                    "line": 65,
                                    "column": 18
                                  }
                                },
                                "name": "eventsApi"
                              },
                              "arguments": [
                                {
                                  "type": "ThisExpression",
                                  "start": 2435,
                                  "end": 2439,
                                  "loc": {
                                    "start": {
                                      "line": 65,
                                      "column": 19
                                    },
                                    "end": {
                                      "line": 65,
                                      "column": 23
                                    }
                                  }
                                },
                                {
                                  "type": "Literal",
                                  "start": 2441,
                                  "end": 2447,
                                  "loc": {
                                    "start": {
                                      "line": 65,
                                      "column": 25
                                    },
                                    "end": {
                                      "line": 65,
                                      "column": 31
                                    }
                                  },
                                  "value": "once",
                                  "rawValue": "once",
                                  "raw": "\"once\""
                                },
                                {
                                  "type": "Identifier",
                                  "start": 2449,
                                  "end": 2453,
                                  "loc": {
                                    "start": {
                                      "line": 65,
                                      "column": 33
                                    },
                                    "end": {
                                      "line": 65,
                                      "column": 37
                                    }
                                  },
                                  "name": "name"
                                },
                                {
                                  "type": "ArrayExpression",
                                  "start": 2455,
                                  "end": 2474,
                                  "loc": {
                                    "start": {
                                      "line": 65,
                                      "column": 39
                                    },
                                    "end": {
                                      "line": 65,
                                      "column": 58
                                    }
                                  },
                                  "elements": [
                                    {
                                      "type": "Identifier",
                                      "start": 2456,
                                      "end": 2464,
                                      "loc": {
                                        "start": {
                                          "line": 65,
                                          "column": 40
                                        },
                                        "end": {
                                          "line": 65,
                                          "column": 48
                                        }
                                      },
                                      "name": "callback"
                                    },
                                    {
                                      "type": "Identifier",
                                      "start": 2466,
                                      "end": 2473,
                                      "loc": {
                                        "start": {
                                          "line": 65,
                                          "column": 50
                                        },
                                        "end": {
                                          "line": 65,
                                          "column": 57
                                        }
                                      },
                                      "name": "context"
                                    }
                                  ]
                                }
                              ]
                            }
                          },
                          "operator": "||",
                          "right": {
                            "type": "UnaryExpression",
                            "start": 2479,
                            "end": 2488,
                            "loc": {
                              "start": {
                                "line": 65,
                                "column": 63
                              },
                              "end": {
                                "line": 65,
                                "column": 72
                              }
                            },
                            "operator": "!",
                            "prefix": true,
                            "argument": {
                              "type": "Identifier",
                              "start": 2480,
                              "end": 2488,
                              "loc": {
                                "start": {
                                  "line": 65,
                                  "column": 64
                                },
                                "end": {
                                  "line": 65,
                                  "column": 72
                                }
                              },
                              "name": "callback"
                            }
                          }
                        },
                        "consequent": {
                          "type": "ReturnStatement",
                          "start": 2490,
                          "end": 2502,
                          "loc": {
                            "start": {
                              "line": 65,
                              "column": 74
                            },
                            "end": {
                              "line": 65,
                              "column": 86
                            }
                          },
                          "argument": {
                            "type": "ThisExpression",
                            "start": 2497,
                            "end": 2501,
                            "loc": {
                              "start": {
                                "line": 65,
                                "column": 81
                              },
                              "end": {
                                "line": 65,
                                "column": 85
                              }
                            }
                          }
                        },
                        "alternate": null
                      },
                      {
                        "type": "VariableDeclaration",
                        "start": 2507,
                        "end": 2523,
                        "loc": {
                          "start": {
                            "line": 66,
                            "column": 4
                          },
                          "end": {
                            "line": 66,
                            "column": 20
                          }
                        },
                        "declarations": [
                          {
                            "type": "VariableDeclarator",
                            "start": 2511,
                            "end": 2522,
                            "loc": {
                              "start": {
                                "line": 66,
                                "column": 8
                              },
                              "end": {
                                "line": 66,
                                "column": 19
                              }
                            },
                            "id": {
                              "type": "Identifier",
                              "start": 2511,
                              "end": 2515,
                              "loc": {
                                "start": {
                                  "line": 66,
                                  "column": 8
                                },
                                "end": {
                                  "line": 66,
                                  "column": 12
                                }
                              },
                              "name": "self"
                            },
                            "init": {
                              "type": "ThisExpression",
                              "start": 2518,
                              "end": 2522,
                              "loc": {
                                "start": {
                                  "line": 66,
                                  "column": 15
                                },
                                "end": {
                                  "line": 66,
                                  "column": 19
                                }
                              }
                            }
                          }
                        ],
                        "kind": "let"
                      },
                      {
                        "type": "VariableDeclaration",
                        "start": 2528,
                        "end": 2632,
                        "loc": {
                          "start": {
                            "line": 67,
                            "column": 4
                          },
                          "end": {
                            "line": 70,
                            "column": 7
                          }
                        },
                        "declarations": [
                          {
                            "type": "VariableDeclarator",
                            "start": 2532,
                            "end": 2631,
                            "loc": {
                              "start": {
                                "line": 67,
                                "column": 8
                              },
                              "end": {
                                "line": 70,
                                "column": 6
                              }
                            },
                            "id": {
                              "type": "Identifier",
                              "start": 2532,
                              "end": 2537,
                              "loc": {
                                "start": {
                                  "line": 67,
                                  "column": 8
                                },
                                "end": {
                                  "line": 67,
                                  "column": 13
                                }
                              },
                              "name": "onced"
                            },
                            "init": {
                              "type": "CallExpression",
                              "start": 2540,
                              "end": 2631,
                              "loc": {
                                "start": {
                                  "line": 67,
                                  "column": 16
                                },
                                "end": {
                                  "line": 70,
                                  "column": 6
                                }
                              },
                              "callee": {
                                "type": "Identifier",
                                "start": 2540,
                                "end": 2544,
                                "loc": {
                                  "start": {
                                    "line": 67,
                                    "column": 16
                                  },
                                  "end": {
                                    "line": 67,
                                    "column": 20
                                  }
                                },
                                "name": "once"
                              },
                              "arguments": [
                                {
                                  "type": "FunctionExpression",
                                  "start": 2545,
                                  "end": 2630,
                                  "loc": {
                                    "start": {
                                      "line": 67,
                                      "column": 21
                                    },
                                    "end": {
                                      "line": 70,
                                      "column": 5
                                    }
                                  },
                                  "id": null,
                                  "generator": false,
                                  "expression": false,
                                  "async": false,
                                  "params": [],
                                  "body": {
                                    "type": "BlockStatement",
                                    "start": 2556,
                                    "end": 2630,
                                    "loc": {
                                      "start": {
                                        "line": 67,
                                        "column": 32
                                      },
                                      "end": {
                                        "line": 70,
                                        "column": 5
                                      }
                                    },
                                    "body": [
                                      {
                                        "type": "ExpressionStatement",
                                        "start": 2564,
                                        "end": 2585,
                                        "loc": {
                                          "start": {
                                            "line": 68,
                                            "column": 6
                                          },
                                          "end": {
                                            "line": 68,
                                            "column": 27
                                          }
                                        },
                                        "expression": {
                                          "type": "CallExpression",
                                          "start": 2564,
                                          "end": 2584,
                                          "loc": {
                                            "start": {
                                              "line": 68,
                                              "column": 6
                                            },
                                            "end": {
                                              "line": 68,
                                              "column": 26
                                            }
                                          },
                                          "callee": {
                                            "type": "MemberExpression",
                                            "start": 2564,
                                            "end": 2572,
                                            "loc": {
                                              "start": {
                                                "line": 68,
                                                "column": 6
                                              },
                                              "end": {
                                                "line": 68,
                                                "column": 14
                                              }
                                            },
                                            "object": {
                                              "type": "Identifier",
                                              "start": 2564,
                                              "end": 2568,
                                              "loc": {
                                                "start": {
                                                  "line": 68,
                                                  "column": 6
                                                },
                                                "end": {
                                                  "line": 68,
                                                  "column": 10
                                                }
                                              },
                                              "name": "self"
                                            },
                                            "property": {
                                              "type": "Identifier",
                                              "start": 2569,
                                              "end": 2572,
                                              "loc": {
                                                "start": {
                                                  "line": 68,
                                                  "column": 11
                                                },
                                                "end": {
                                                  "line": 68,
                                                  "column": 14
                                                }
                                              },
                                              "name": "off"
                                            },
                                            "computed": false
                                          },
                                          "arguments": [
                                            {
                                              "type": "Identifier",
                                              "start": 2573,
                                              "end": 2577,
                                              "loc": {
                                                "start": {
                                                  "line": 68,
                                                  "column": 15
                                                },
                                                "end": {
                                                  "line": 68,
                                                  "column": 19
                                                }
                                              },
                                              "name": "name"
                                            },
                                            {
                                              "type": "Identifier",
                                              "start": 2579,
                                              "end": 2583,
                                              "loc": {
                                                "start": {
                                                  "line": 68,
                                                  "column": 21
                                                },
                                                "end": {
                                                  "line": 68,
                                                  "column": 25
                                                }
                                              },
                                              "name": "once"
                                            }
                                          ]
                                        }
                                      },
                                      {
                                        "type": "ExpressionStatement",
                                        "start": 2592,
                                        "end": 2624,
                                        "loc": {
                                          "start": {
                                            "line": 69,
                                            "column": 6
                                          },
                                          "end": {
                                            "line": 69,
                                            "column": 38
                                          }
                                        },
                                        "expression": {
                                          "type": "CallExpression",
                                          "start": 2592,
                                          "end": 2623,
                                          "loc": {
                                            "start": {
                                              "line": 69,
                                              "column": 6
                                            },
                                            "end": {
                                              "line": 69,
                                              "column": 37
                                            }
                                          },
                                          "callee": {
                                            "type": "MemberExpression",
                                            "start": 2592,
                                            "end": 2606,
                                            "loc": {
                                              "start": {
                                                "line": 69,
                                                "column": 6
                                              },
                                              "end": {
                                                "line": 69,
                                                "column": 20
                                              }
                                            },
                                            "object": {
                                              "type": "Identifier",
                                              "start": 2592,
                                              "end": 2600,
                                              "loc": {
                                                "start": {
                                                  "line": 69,
                                                  "column": 6
                                                },
                                                "end": {
                                                  "line": 69,
                                                  "column": 14
                                                }
                                              },
                                              "name": "callback"
                                            },
                                            "property": {
                                              "type": "Identifier",
                                              "start": 2601,
                                              "end": 2606,
                                              "loc": {
                                                "start": {
                                                  "line": 69,
                                                  "column": 15
                                                },
                                                "end": {
                                                  "line": 69,
                                                  "column": 20
                                                }
                                              },
                                              "name": "apply"
                                            },
                                            "computed": false
                                          },
                                          "arguments": [
                                            {
                                              "type": "ThisExpression",
                                              "start": 2607,
                                              "end": 2611,
                                              "loc": {
                                                "start": {
                                                  "line": 69,
                                                  "column": 21
                                                },
                                                "end": {
                                                  "line": 69,
                                                  "column": 25
                                                }
                                              }
                                            },
                                            {
                                              "type": "Identifier",
                                              "start": 2613,
                                              "end": 2622,
                                              "loc": {
                                                "start": {
                                                  "line": 69,
                                                  "column": 27
                                                },
                                                "end": {
                                                  "line": 69,
                                                  "column": 36
                                                }
                                              },
                                              "name": "arguments"
                                            }
                                          ]
                                        }
                                      }
                                    ]
                                  }
                                }
                              ]
                            }
                          }
                        ],
                        "kind": "let"
                      },
                      {
                        "type": "ExpressionStatement",
                        "start": 2637,
                        "end": 2664,
                        "loc": {
                          "start": {
                            "line": 71,
                            "column": 4
                          },
                          "end": {
                            "line": 71,
                            "column": 31
                          }
                        },
                        "expression": {
                          "type": "AssignmentExpression",
                          "start": 2637,
                          "end": 2663,
                          "loc": {
                            "start": {
                              "line": 71,
                              "column": 4
                            },
                            "end": {
                              "line": 71,
                              "column": 30
                            }
                          },
                          "operator": "=",
                          "left": {
                            "type": "MemberExpression",
                            "start": 2637,
                            "end": 2652,
                            "loc": {
                              "start": {
                                "line": 71,
                                "column": 4
                              },
                              "end": {
                                "line": 71,
                                "column": 19
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 2637,
                              "end": 2642,
                              "loc": {
                                "start": {
                                  "line": 71,
                                  "column": 4
                                },
                                "end": {
                                  "line": 71,
                                  "column": 9
                                }
                              },
                              "name": "onced"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 2643,
                              "end": 2652,
                              "loc": {
                                "start": {
                                  "line": 71,
                                  "column": 10
                                },
                                "end": {
                                  "line": 71,
                                  "column": 19
                                }
                              },
                              "name": "_callback"
                            },
                            "computed": false
                          },
                          "right": {
                            "type": "Identifier",
                            "start": 2655,
                            "end": 2663,
                            "loc": {
                              "start": {
                                "line": 71,
                                "column": 22
                              },
                              "end": {
                                "line": 71,
                                "column": 30
                              }
                            },
                            "name": "callback"
                          }
                        }
                      },
                      {
                        "type": "ReturnStatement",
                        "start": 2669,
                        "end": 2706,
                        "loc": {
                          "start": {
                            "line": 72,
                            "column": 4
                          },
                          "end": {
                            "line": 72,
                            "column": 41
                          }
                        },
                        "argument": {
                          "type": "CallExpression",
                          "start": 2676,
                          "end": 2705,
                          "loc": {
                            "start": {
                              "line": 72,
                              "column": 11
                            },
                            "end": {
                              "line": 72,
                              "column": 40
                            }
                          },
                          "callee": {
                            "type": "MemberExpression",
                            "start": 2676,
                            "end": 2683,
                            "loc": {
                              "start": {
                                "line": 72,
                                "column": 11
                              },
                              "end": {
                                "line": 72,
                                "column": 18
                              }
                            },
                            "object": {
                              "type": "ThisExpression",
                              "start": 2676,
                              "end": 2680,
                              "loc": {
                                "start": {
                                  "line": 72,
                                  "column": 11
                                },
                                "end": {
                                  "line": 72,
                                  "column": 15
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 2681,
                              "end": 2683,
                              "loc": {
                                "start": {
                                  "line": 72,
                                  "column": 16
                                },
                                "end": {
                                  "line": 72,
                                  "column": 18
                                }
                              },
                              "name": "on"
                            },
                            "computed": false
                          },
                          "arguments": [
                            {
                              "type": "Identifier",
                              "start": 2684,
                              "end": 2688,
                              "loc": {
                                "start": {
                                  "line": 72,
                                  "column": 19
                                },
                                "end": {
                                  "line": 72,
                                  "column": 23
                                }
                              },
                              "name": "name"
                            },
                            {
                              "type": "Identifier",
                              "start": 2690,
                              "end": 2695,
                              "loc": {
                                "start": {
                                  "line": 72,
                                  "column": 25
                                },
                                "end": {
                                  "line": 72,
                                  "column": 30
                                }
                              },
                              "name": "onced"
                            },
                            {
                              "type": "Identifier",
                              "start": 2697,
                              "end": 2704,
                              "loc": {
                                "start": {
                                  "line": 72,
                                  "column": 32
                                },
                                "end": {
                                  "line": 72,
                                  "column": 39
                                }
                              },
                              "name": "context"
                            }
                          ]
                        }
                      }
                    ]
                  }
                },
                "kind": "init",
                "leadingComments": [
                  {
                    "type": "CommentLine",
                    "value": " Bind an event to only be triggered a single time. After the first time",
                    "start": 2248,
                    "end": 2321,
                    "loc": {
                      "start": {
                        "line": 62,
                        "column": 2
                      },
                      "end": {
                        "line": 62,
                        "column": 75
                      }
                    },
                    "range": [
                      2248,
                      2321
                    ]
                  },
                  {
                    "type": "CommentLine",
                    "value": " the callback is invoked, it will be removed.",
                    "start": 2324,
                    "end": 2371,
                    "loc": {
                      "start": {
                        "line": 63,
                        "column": 2
                      },
                      "end": {
                        "line": 63,
                        "column": 49
                      }
                    },
                    "range": [
                      2324,
                      2371
                    ]
                  }
                ]
              },
              {
                "type": "Property",
                "start": 2952,
                "end": 3854,
                "loc": {
                  "start": {
                    "line": 79,
                    "column": 2
                  },
                  "end": {
                    "line": 105,
                    "column": 3
                  }
                },
                "method": false,
                "shorthand": false,
                "computed": false,
                "key": {
                  "type": "Identifier",
                  "start": 2952,
                  "end": 2955,
                  "loc": {
                    "start": {
                      "line": 79,
                      "column": 2
                    },
                    "end": {
                      "line": 79,
                      "column": 5
                    }
                  },
                  "name": "off",
                  "leadingComments": null
                },
                "value": {
                  "type": "FunctionExpression",
                  "start": 2957,
                  "end": 3854,
                  "loc": {
                    "start": {
                      "line": 79,
                      "column": 7
                    },
                    "end": {
                      "line": 105,
                      "column": 3
                    }
                  },
                  "id": null,
                  "generator": false,
                  "expression": false,
                  "async": false,
                  "params": [
                    {
                      "type": "Identifier",
                      "start": 2966,
                      "end": 2970,
                      "loc": {
                        "start": {
                          "line": 79,
                          "column": 16
                        },
                        "end": {
                          "line": 79,
                          "column": 20
                        }
                      },
                      "name": "name"
                    },
                    {
                      "type": "Identifier",
                      "start": 2972,
                      "end": 2980,
                      "loc": {
                        "start": {
                          "line": 79,
                          "column": 22
                        },
                        "end": {
                          "line": 79,
                          "column": 30
                        }
                      },
                      "name": "callback"
                    },
                    {
                      "type": "Identifier",
                      "start": 2982,
                      "end": 2989,
                      "loc": {
                        "start": {
                          "line": 79,
                          "column": 32
                        },
                        "end": {
                          "line": 79,
                          "column": 39
                        }
                      },
                      "name": "context"
                    }
                  ],
                  "body": {
                    "type": "BlockStatement",
                    "start": 2991,
                    "end": 3854,
                    "loc": {
                      "start": {
                        "line": 79,
                        "column": 41
                      },
                      "end": {
                        "line": 105,
                        "column": 3
                      }
                    },
                    "body": [
                      {
                        "type": "VariableDeclaration",
                        "start": 2997,
                        "end": 3039,
                        "loc": {
                          "start": {
                            "line": 80,
                            "column": 4
                          },
                          "end": {
                            "line": 80,
                            "column": 46
                          }
                        },
                        "declarations": [
                          {
                            "type": "VariableDeclarator",
                            "start": 3001,
                            "end": 3007,
                            "loc": {
                              "start": {
                                "line": 80,
                                "column": 8
                              },
                              "end": {
                                "line": 80,
                                "column": 14
                              }
                            },
                            "id": {
                              "type": "Identifier",
                              "start": 3001,
                              "end": 3007,
                              "loc": {
                                "start": {
                                  "line": 80,
                                  "column": 8
                                },
                                "end": {
                                  "line": 80,
                                  "column": 14
                                }
                              },
                              "name": "retain"
                            },
                            "init": null
                          },
                          {
                            "type": "VariableDeclarator",
                            "start": 3009,
                            "end": 3011,
                            "loc": {
                              "start": {
                                "line": 80,
                                "column": 16
                              },
                              "end": {
                                "line": 80,
                                "column": 18
                              }
                            },
                            "id": {
                              "type": "Identifier",
                              "start": 3009,
                              "end": 3011,
                              "loc": {
                                "start": {
                                  "line": 80,
                                  "column": 16
                                },
                                "end": {
                                  "line": 80,
                                  "column": 18
                                }
                              },
                              "name": "ev"
                            },
                            "init": null
                          },
                          {
                            "type": "VariableDeclarator",
                            "start": 3013,
                            "end": 3019,
                            "loc": {
                              "start": {
                                "line": 80,
                                "column": 20
                              },
                              "end": {
                                "line": 80,
                                "column": 26
                              }
                            },
                            "id": {
                              "type": "Identifier",
                              "start": 3013,
                              "end": 3019,
                              "loc": {
                                "start": {
                                  "line": 80,
                                  "column": 20
                                },
                                "end": {
                                  "line": 80,
                                  "column": 26
                                }
                              },
                              "name": "events"
                            },
                            "init": null
                          },
                          {
                            "type": "VariableDeclarator",
                            "start": 3021,
                            "end": 3026,
                            "loc": {
                              "start": {
                                "line": 80,
                                "column": 28
                              },
                              "end": {
                                "line": 80,
                                "column": 33
                              }
                            },
                            "id": {
                              "type": "Identifier",
                              "start": 3021,
                              "end": 3026,
                              "loc": {
                                "start": {
                                  "line": 80,
                                  "column": 28
                                },
                                "end": {
                                  "line": 80,
                                  "column": 33
                                }
                              },
                              "name": "names"
                            },
                            "init": null
                          },
                          {
                            "type": "VariableDeclarator",
                            "start": 3028,
                            "end": 3029,
                            "loc": {
                              "start": {
                                "line": 80,
                                "column": 35
                              },
                              "end": {
                                "line": 80,
                                "column": 36
                              }
                            },
                            "id": {
                              "type": "Identifier",
                              "start": 3028,
                              "end": 3029,
                              "loc": {
                                "start": {
                                  "line": 80,
                                  "column": 35
                                },
                                "end": {
                                  "line": 80,
                                  "column": 36
                                }
                              },
                              "name": "i"
                            },
                            "init": null
                          },
                          {
                            "type": "VariableDeclarator",
                            "start": 3031,
                            "end": 3032,
                            "loc": {
                              "start": {
                                "line": 80,
                                "column": 38
                              },
                              "end": {
                                "line": 80,
                                "column": 39
                              }
                            },
                            "id": {
                              "type": "Identifier",
                              "start": 3031,
                              "end": 3032,
                              "loc": {
                                "start": {
                                  "line": 80,
                                  "column": 38
                                },
                                "end": {
                                  "line": 80,
                                  "column": 39
                                }
                              },
                              "name": "l"
                            },
                            "init": null
                          },
                          {
                            "type": "VariableDeclarator",
                            "start": 3034,
                            "end": 3035,
                            "loc": {
                              "start": {
                                "line": 80,
                                "column": 41
                              },
                              "end": {
                                "line": 80,
                                "column": 42
                              }
                            },
                            "id": {
                              "type": "Identifier",
                              "start": 3034,
                              "end": 3035,
                              "loc": {
                                "start": {
                                  "line": 80,
                                  "column": 41
                                },
                                "end": {
                                  "line": 80,
                                  "column": 42
                                }
                              },
                              "name": "j"
                            },
                            "init": null
                          },
                          {
                            "type": "VariableDeclarator",
                            "start": 3037,
                            "end": 3038,
                            "loc": {
                              "start": {
                                "line": 80,
                                "column": 44
                              },
                              "end": {
                                "line": 80,
                                "column": 45
                              }
                            },
                            "id": {
                              "type": "Identifier",
                              "start": 3037,
                              "end": 3038,
                              "loc": {
                                "start": {
                                  "line": 80,
                                  "column": 44
                                },
                                "end": {
                                  "line": 80,
                                  "column": 45
                                }
                              },
                              "name": "k"
                            },
                            "init": null
                          }
                        ],
                        "kind": "let"
                      },
                      {
                        "type": "IfStatement",
                        "start": 3044,
                        "end": 3129,
                        "loc": {
                          "start": {
                            "line": 81,
                            "column": 4
                          },
                          "end": {
                            "line": 81,
                            "column": 89
                          }
                        },
                        "test": {
                          "type": "LogicalExpression",
                          "start": 3048,
                          "end": 3115,
                          "loc": {
                            "start": {
                              "line": 81,
                              "column": 8
                            },
                            "end": {
                              "line": 81,
                              "column": 75
                            }
                          },
                          "left": {
                            "type": "UnaryExpression",
                            "start": 3048,
                            "end": 3061,
                            "loc": {
                              "start": {
                                "line": 81,
                                "column": 8
                              },
                              "end": {
                                "line": 81,
                                "column": 21
                              }
                            },
                            "operator": "!",
                            "prefix": true,
                            "argument": {
                              "type": "MemberExpression",
                              "start": 3049,
                              "end": 3061,
                              "loc": {
                                "start": {
                                  "line": 81,
                                  "column": 9
                                },
                                "end": {
                                  "line": 81,
                                  "column": 21
                                }
                              },
                              "object": {
                                "type": "ThisExpression",
                                "start": 3049,
                                "end": 3053,
                                "loc": {
                                  "start": {
                                    "line": 81,
                                    "column": 9
                                  },
                                  "end": {
                                    "line": 81,
                                    "column": 13
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 3054,
                                "end": 3061,
                                "loc": {
                                  "start": {
                                    "line": 81,
                                    "column": 14
                                  },
                                  "end": {
                                    "line": 81,
                                    "column": 21
                                  }
                                },
                                "name": "_events"
                              },
                              "computed": false
                            }
                          },
                          "operator": "||",
                          "right": {
                            "type": "UnaryExpression",
                            "start": 3065,
                            "end": 3115,
                            "loc": {
                              "start": {
                                "line": 81,
                                "column": 25
                              },
                              "end": {
                                "line": 81,
                                "column": 75
                              }
                            },
                            "operator": "!",
                            "prefix": true,
                            "argument": {
                              "type": "CallExpression",
                              "start": 3066,
                              "end": 3115,
                              "loc": {
                                "start": {
                                  "line": 81,
                                  "column": 26
                                },
                                "end": {
                                  "line": 81,
                                  "column": 75
                                }
                              },
                              "callee": {
                                "type": "Identifier",
                                "start": 3066,
                                "end": 3075,
                                "loc": {
                                  "start": {
                                    "line": 81,
                                    "column": 26
                                  },
                                  "end": {
                                    "line": 81,
                                    "column": 35
                                  }
                                },
                                "name": "eventsApi"
                              },
                              "arguments": [
                                {
                                  "type": "ThisExpression",
                                  "start": 3076,
                                  "end": 3080,
                                  "loc": {
                                    "start": {
                                      "line": 81,
                                      "column": 36
                                    },
                                    "end": {
                                      "line": 81,
                                      "column": 40
                                    }
                                  }
                                },
                                {
                                  "type": "Literal",
                                  "start": 3082,
                                  "end": 3087,
                                  "loc": {
                                    "start": {
                                      "line": 81,
                                      "column": 42
                                    },
                                    "end": {
                                      "line": 81,
                                      "column": 47
                                    }
                                  },
                                  "value": "off",
                                  "rawValue": "off",
                                  "raw": "\"off\""
                                },
                                {
                                  "type": "Identifier",
                                  "start": 3089,
                                  "end": 3093,
                                  "loc": {
                                    "start": {
                                      "line": 81,
                                      "column": 49
                                    },
                                    "end": {
                                      "line": 81,
                                      "column": 53
                                    }
                                  },
                                  "name": "name"
                                },
                                {
                                  "type": "ArrayExpression",
                                  "start": 3095,
                                  "end": 3114,
                                  "loc": {
                                    "start": {
                                      "line": 81,
                                      "column": 55
                                    },
                                    "end": {
                                      "line": 81,
                                      "column": 74
                                    }
                                  },
                                  "elements": [
                                    {
                                      "type": "Identifier",
                                      "start": 3096,
                                      "end": 3104,
                                      "loc": {
                                        "start": {
                                          "line": 81,
                                          "column": 56
                                        },
                                        "end": {
                                          "line": 81,
                                          "column": 64
                                        }
                                      },
                                      "name": "callback"
                                    },
                                    {
                                      "type": "Identifier",
                                      "start": 3106,
                                      "end": 3113,
                                      "loc": {
                                        "start": {
                                          "line": 81,
                                          "column": 66
                                        },
                                        "end": {
                                          "line": 81,
                                          "column": 73
                                        }
                                      },
                                      "name": "context"
                                    }
                                  ]
                                }
                              ]
                            }
                          }
                        },
                        "consequent": {
                          "type": "ReturnStatement",
                          "start": 3117,
                          "end": 3129,
                          "loc": {
                            "start": {
                              "line": 81,
                              "column": 77
                            },
                            "end": {
                              "line": 81,
                              "column": 89
                            }
                          },
                          "argument": {
                            "type": "ThisExpression",
                            "start": 3124,
                            "end": 3128,
                            "loc": {
                              "start": {
                                "line": 81,
                                "column": 84
                              },
                              "end": {
                                "line": 81,
                                "column": 88
                              }
                            }
                          }
                        },
                        "alternate": null
                      },
                      {
                        "type": "IfStatement",
                        "start": 3134,
                        "end": 3225,
                        "loc": {
                          "start": {
                            "line": 82,
                            "column": 4
                          },
                          "end": {
                            "line": 85,
                            "column": 5
                          }
                        },
                        "test": {
                          "type": "LogicalExpression",
                          "start": 3138,
                          "end": 3168,
                          "loc": {
                            "start": {
                              "line": 82,
                              "column": 8
                            },
                            "end": {
                              "line": 82,
                              "column": 38
                            }
                          },
                          "left": {
                            "type": "LogicalExpression",
                            "start": 3138,
                            "end": 3156,
                            "loc": {
                              "start": {
                                "line": 82,
                                "column": 8
                              },
                              "end": {
                                "line": 82,
                                "column": 26
                              }
                            },
                            "left": {
                              "type": "UnaryExpression",
                              "start": 3138,
                              "end": 3143,
                              "loc": {
                                "start": {
                                  "line": 82,
                                  "column": 8
                                },
                                "end": {
                                  "line": 82,
                                  "column": 13
                                }
                              },
                              "operator": "!",
                              "prefix": true,
                              "argument": {
                                "type": "Identifier",
                                "start": 3139,
                                "end": 3143,
                                "loc": {
                                  "start": {
                                    "line": 82,
                                    "column": 9
                                  },
                                  "end": {
                                    "line": 82,
                                    "column": 13
                                  }
                                },
                                "name": "name"
                              }
                            },
                            "operator": "&&",
                            "right": {
                              "type": "UnaryExpression",
                              "start": 3147,
                              "end": 3156,
                              "loc": {
                                "start": {
                                  "line": 82,
                                  "column": 17
                                },
                                "end": {
                                  "line": 82,
                                  "column": 26
                                }
                              },
                              "operator": "!",
                              "prefix": true,
                              "argument": {
                                "type": "Identifier",
                                "start": 3148,
                                "end": 3156,
                                "loc": {
                                  "start": {
                                    "line": 82,
                                    "column": 18
                                  },
                                  "end": {
                                    "line": 82,
                                    "column": 26
                                  }
                                },
                                "name": "callback"
                              }
                            }
                          },
                          "operator": "&&",
                          "right": {
                            "type": "UnaryExpression",
                            "start": 3160,
                            "end": 3168,
                            "loc": {
                              "start": {
                                "line": 82,
                                "column": 30
                              },
                              "end": {
                                "line": 82,
                                "column": 38
                              }
                            },
                            "operator": "!",
                            "prefix": true,
                            "argument": {
                              "type": "Identifier",
                              "start": 3161,
                              "end": 3168,
                              "loc": {
                                "start": {
                                  "line": 82,
                                  "column": 31
                                },
                                "end": {
                                  "line": 82,
                                  "column": 38
                                }
                              },
                              "name": "context"
                            }
                          }
                        },
                        "consequent": {
                          "type": "BlockStatement",
                          "start": 3170,
                          "end": 3225,
                          "loc": {
                            "start": {
                              "line": 82,
                              "column": 40
                            },
                            "end": {
                              "line": 85,
                              "column": 5
                            }
                          },
                          "body": [
                            {
                              "type": "ExpressionStatement",
                              "start": 3178,
                              "end": 3200,
                              "loc": {
                                "start": {
                                  "line": 83,
                                  "column": 6
                                },
                                "end": {
                                  "line": 83,
                                  "column": 28
                                }
                              },
                              "expression": {
                                "type": "AssignmentExpression",
                                "start": 3178,
                                "end": 3199,
                                "loc": {
                                  "start": {
                                    "line": 83,
                                    "column": 6
                                  },
                                  "end": {
                                    "line": 83,
                                    "column": 27
                                  }
                                },
                                "operator": "=",
                                "left": {
                                  "type": "MemberExpression",
                                  "start": 3178,
                                  "end": 3190,
                                  "loc": {
                                    "start": {
                                      "line": 83,
                                      "column": 6
                                    },
                                    "end": {
                                      "line": 83,
                                      "column": 18
                                    }
                                  },
                                  "object": {
                                    "type": "ThisExpression",
                                    "start": 3178,
                                    "end": 3182,
                                    "loc": {
                                      "start": {
                                        "line": 83,
                                        "column": 6
                                      },
                                      "end": {
                                        "line": 83,
                                        "column": 10
                                      }
                                    }
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 3183,
                                    "end": 3190,
                                    "loc": {
                                      "start": {
                                        "line": 83,
                                        "column": 11
                                      },
                                      "end": {
                                        "line": 83,
                                        "column": 18
                                      }
                                    },
                                    "name": "_events"
                                  },
                                  "computed": false
                                },
                                "right": {
                                  "type": "UnaryExpression",
                                  "start": 3193,
                                  "end": 3199,
                                  "loc": {
                                    "start": {
                                      "line": 83,
                                      "column": 21
                                    },
                                    "end": {
                                      "line": 83,
                                      "column": 27
                                    }
                                  },
                                  "operator": "void",
                                  "prefix": true,
                                  "argument": {
                                    "type": "Literal",
                                    "start": 3198,
                                    "end": 3199,
                                    "loc": {
                                      "start": {
                                        "line": 83,
                                        "column": 26
                                      },
                                      "end": {
                                        "line": 83,
                                        "column": 27
                                      }
                                    },
                                    "value": 0,
                                    "rawValue": 0,
                                    "raw": "0"
                                  }
                                }
                              }
                            },
                            {
                              "type": "ReturnStatement",
                              "start": 3207,
                              "end": 3219,
                              "loc": {
                                "start": {
                                  "line": 84,
                                  "column": 6
                                },
                                "end": {
                                  "line": 84,
                                  "column": 18
                                }
                              },
                              "argument": {
                                "type": "ThisExpression",
                                "start": 3214,
                                "end": 3218,
                                "loc": {
                                  "start": {
                                    "line": 84,
                                    "column": 13
                                  },
                                  "end": {
                                    "line": 84,
                                    "column": 17
                                  }
                                }
                              }
                            }
                          ]
                        },
                        "alternate": null
                      },
                      {
                        "type": "ExpressionStatement",
                        "start": 3230,
                        "end": 3273,
                        "loc": {
                          "start": {
                            "line": 86,
                            "column": 4
                          },
                          "end": {
                            "line": 86,
                            "column": 47
                          }
                        },
                        "expression": {
                          "type": "AssignmentExpression",
                          "start": 3230,
                          "end": 3272,
                          "loc": {
                            "start": {
                              "line": 86,
                              "column": 4
                            },
                            "end": {
                              "line": 86,
                              "column": 46
                            }
                          },
                          "operator": "=",
                          "left": {
                            "type": "Identifier",
                            "start": 3230,
                            "end": 3235,
                            "loc": {
                              "start": {
                                "line": 86,
                                "column": 4
                              },
                              "end": {
                                "line": 86,
                                "column": 9
                              }
                            },
                            "name": "names"
                          },
                          "right": {
                            "type": "ConditionalExpression",
                            "start": 3238,
                            "end": 3272,
                            "loc": {
                              "start": {
                                "line": 86,
                                "column": 12
                              },
                              "end": {
                                "line": 86,
                                "column": 46
                              }
                            },
                            "test": {
                              "type": "Identifier",
                              "start": 3238,
                              "end": 3242,
                              "loc": {
                                "start": {
                                  "line": 86,
                                  "column": 12
                                },
                                "end": {
                                  "line": 86,
                                  "column": 16
                                }
                              },
                              "name": "name"
                            },
                            "consequent": {
                              "type": "ArrayExpression",
                              "start": 3245,
                              "end": 3251,
                              "loc": {
                                "start": {
                                  "line": 86,
                                  "column": 19
                                },
                                "end": {
                                  "line": 86,
                                  "column": 25
                                }
                              },
                              "elements": [
                                {
                                  "type": "Identifier",
                                  "start": 3246,
                                  "end": 3250,
                                  "loc": {
                                    "start": {
                                      "line": 86,
                                      "column": 20
                                    },
                                    "end": {
                                      "line": 86,
                                      "column": 24
                                    }
                                  },
                                  "name": "name"
                                }
                              ]
                            },
                            "alternate": {
                              "type": "CallExpression",
                              "start": 3254,
                              "end": 3272,
                              "loc": {
                                "start": {
                                  "line": 86,
                                  "column": 28
                                },
                                "end": {
                                  "line": 86,
                                  "column": 46
                                }
                              },
                              "callee": {
                                "type": "Identifier",
                                "start": 3254,
                                "end": 3258,
                                "loc": {
                                  "start": {
                                    "line": 86,
                                    "column": 28
                                  },
                                  "end": {
                                    "line": 86,
                                    "column": 32
                                  }
                                },
                                "name": "keys"
                              },
                              "arguments": [
                                {
                                  "type": "MemberExpression",
                                  "start": 3259,
                                  "end": 3271,
                                  "loc": {
                                    "start": {
                                      "line": 86,
                                      "column": 33
                                    },
                                    "end": {
                                      "line": 86,
                                      "column": 45
                                    }
                                  },
                                  "object": {
                                    "type": "ThisExpression",
                                    "start": 3259,
                                    "end": 3263,
                                    "loc": {
                                      "start": {
                                        "line": 86,
                                        "column": 33
                                      },
                                      "end": {
                                        "line": 86,
                                        "column": 37
                                      }
                                    }
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 3264,
                                    "end": 3271,
                                    "loc": {
                                      "start": {
                                        "line": 86,
                                        "column": 38
                                      },
                                      "end": {
                                        "line": 86,
                                        "column": 45
                                      }
                                    },
                                    "name": "_events"
                                  },
                                  "computed": false
                                }
                              ]
                            }
                          }
                        }
                      },
                      {
                        "type": "ForStatement",
                        "start": 3278,
                        "end": 3832,
                        "loc": {
                          "start": {
                            "line": 87,
                            "column": 4
                          },
                          "end": {
                            "line": 102,
                            "column": 5
                          }
                        },
                        "init": {
                          "type": "SequenceExpression",
                          "start": 3283,
                          "end": 3306,
                          "loc": {
                            "start": {
                              "line": 87,
                              "column": 9
                            },
                            "end": {
                              "line": 87,
                              "column": 32
                            }
                          },
                          "expressions": [
                            {
                              "type": "AssignmentExpression",
                              "start": 3283,
                              "end": 3288,
                              "loc": {
                                "start": {
                                  "line": 87,
                                  "column": 9
                                },
                                "end": {
                                  "line": 87,
                                  "column": 14
                                }
                              },
                              "operator": "=",
                              "left": {
                                "type": "Identifier",
                                "start": 3283,
                                "end": 3284,
                                "loc": {
                                  "start": {
                                    "line": 87,
                                    "column": 9
                                  },
                                  "end": {
                                    "line": 87,
                                    "column": 10
                                  }
                                },
                                "name": "i"
                              },
                              "right": {
                                "type": "Literal",
                                "start": 3287,
                                "end": 3288,
                                "loc": {
                                  "start": {
                                    "line": 87,
                                    "column": 13
                                  },
                                  "end": {
                                    "line": 87,
                                    "column": 14
                                  }
                                },
                                "value": 0,
                                "rawValue": 0,
                                "raw": "0"
                              }
                            },
                            {
                              "type": "AssignmentExpression",
                              "start": 3290,
                              "end": 3306,
                              "loc": {
                                "start": {
                                  "line": 87,
                                  "column": 16
                                },
                                "end": {
                                  "line": 87,
                                  "column": 32
                                }
                              },
                              "operator": "=",
                              "left": {
                                "type": "Identifier",
                                "start": 3290,
                                "end": 3291,
                                "loc": {
                                  "start": {
                                    "line": 87,
                                    "column": 16
                                  },
                                  "end": {
                                    "line": 87,
                                    "column": 17
                                  }
                                },
                                "name": "l"
                              },
                              "right": {
                                "type": "MemberExpression",
                                "start": 3294,
                                "end": 3306,
                                "loc": {
                                  "start": {
                                    "line": 87,
                                    "column": 20
                                  },
                                  "end": {
                                    "line": 87,
                                    "column": 32
                                  }
                                },
                                "object": {
                                  "type": "Identifier",
                                  "start": 3294,
                                  "end": 3299,
                                  "loc": {
                                    "start": {
                                      "line": 87,
                                      "column": 20
                                    },
                                    "end": {
                                      "line": 87,
                                      "column": 25
                                    }
                                  },
                                  "name": "names"
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 3300,
                                  "end": 3306,
                                  "loc": {
                                    "start": {
                                      "line": 87,
                                      "column": 26
                                    },
                                    "end": {
                                      "line": 87,
                                      "column": 32
                                    }
                                  },
                                  "name": "length"
                                },
                                "computed": false
                              }
                            }
                          ]
                        },
                        "test": {
                          "type": "BinaryExpression",
                          "start": 3308,
                          "end": 3313,
                          "loc": {
                            "start": {
                              "line": 87,
                              "column": 34
                            },
                            "end": {
                              "line": 87,
                              "column": 39
                            }
                          },
                          "left": {
                            "type": "Identifier",
                            "start": 3308,
                            "end": 3309,
                            "loc": {
                              "start": {
                                "line": 87,
                                "column": 34
                              },
                              "end": {
                                "line": 87,
                                "column": 35
                              }
                            },
                            "name": "i"
                          },
                          "operator": "<",
                          "right": {
                            "type": "Identifier",
                            "start": 3312,
                            "end": 3313,
                            "loc": {
                              "start": {
                                "line": 87,
                                "column": 38
                              },
                              "end": {
                                "line": 87,
                                "column": 39
                              }
                            },
                            "name": "l"
                          }
                        },
                        "update": {
                          "type": "UpdateExpression",
                          "start": 3315,
                          "end": 3318,
                          "loc": {
                            "start": {
                              "line": 87,
                              "column": 41
                            },
                            "end": {
                              "line": 87,
                              "column": 44
                            }
                          },
                          "operator": "++",
                          "prefix": false,
                          "argument": {
                            "type": "Identifier",
                            "start": 3315,
                            "end": 3316,
                            "loc": {
                              "start": {
                                "line": 87,
                                "column": 41
                              },
                              "end": {
                                "line": 87,
                                "column": 42
                              }
                            },
                            "name": "i"
                          }
                        },
                        "body": {
                          "type": "BlockStatement",
                          "start": 3320,
                          "end": 3832,
                          "loc": {
                            "start": {
                              "line": 87,
                              "column": 46
                            },
                            "end": {
                              "line": 102,
                              "column": 5
                            }
                          },
                          "body": [
                            {
                              "type": "ExpressionStatement",
                              "start": 3328,
                              "end": 3344,
                              "loc": {
                                "start": {
                                  "line": 88,
                                  "column": 6
                                },
                                "end": {
                                  "line": 88,
                                  "column": 22
                                }
                              },
                              "expression": {
                                "type": "AssignmentExpression",
                                "start": 3328,
                                "end": 3343,
                                "loc": {
                                  "start": {
                                    "line": 88,
                                    "column": 6
                                  },
                                  "end": {
                                    "line": 88,
                                    "column": 21
                                  }
                                },
                                "operator": "=",
                                "left": {
                                  "type": "Identifier",
                                  "start": 3328,
                                  "end": 3332,
                                  "loc": {
                                    "start": {
                                      "line": 88,
                                      "column": 6
                                    },
                                    "end": {
                                      "line": 88,
                                      "column": 10
                                    }
                                  },
                                  "name": "name"
                                },
                                "right": {
                                  "type": "MemberExpression",
                                  "start": 3335,
                                  "end": 3343,
                                  "loc": {
                                    "start": {
                                      "line": 88,
                                      "column": 13
                                    },
                                    "end": {
                                      "line": 88,
                                      "column": 21
                                    }
                                  },
                                  "object": {
                                    "type": "Identifier",
                                    "start": 3335,
                                    "end": 3340,
                                    "loc": {
                                      "start": {
                                        "line": 88,
                                        "column": 13
                                      },
                                      "end": {
                                        "line": 88,
                                        "column": 18
                                      }
                                    },
                                    "name": "names"
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 3341,
                                    "end": 3342,
                                    "loc": {
                                      "start": {
                                        "line": 88,
                                        "column": 19
                                      },
                                      "end": {
                                        "line": 88,
                                        "column": 20
                                      }
                                    },
                                    "name": "i"
                                  },
                                  "computed": true
                                }
                              }
                            },
                            {
                              "type": "IfStatement",
                              "start": 3351,
                              "end": 3826,
                              "loc": {
                                "start": {
                                  "line": 89,
                                  "column": 6
                                },
                                "end": {
                                  "line": 101,
                                  "column": 7
                                }
                              },
                              "test": {
                                "type": "AssignmentExpression",
                                "start": 3355,
                                "end": 3382,
                                "loc": {
                                  "start": {
                                    "line": 89,
                                    "column": 10
                                  },
                                  "end": {
                                    "line": 89,
                                    "column": 37
                                  }
                                },
                                "operator": "=",
                                "left": {
                                  "type": "Identifier",
                                  "start": 3355,
                                  "end": 3361,
                                  "loc": {
                                    "start": {
                                      "line": 89,
                                      "column": 10
                                    },
                                    "end": {
                                      "line": 89,
                                      "column": 16
                                    }
                                  },
                                  "name": "events"
                                },
                                "right": {
                                  "type": "MemberExpression",
                                  "start": 3364,
                                  "end": 3382,
                                  "loc": {
                                    "start": {
                                      "line": 89,
                                      "column": 19
                                    },
                                    "end": {
                                      "line": 89,
                                      "column": 37
                                    }
                                  },
                                  "object": {
                                    "type": "MemberExpression",
                                    "start": 3364,
                                    "end": 3376,
                                    "loc": {
                                      "start": {
                                        "line": 89,
                                        "column": 19
                                      },
                                      "end": {
                                        "line": 89,
                                        "column": 31
                                      }
                                    },
                                    "object": {
                                      "type": "ThisExpression",
                                      "start": 3364,
                                      "end": 3368,
                                      "loc": {
                                        "start": {
                                          "line": 89,
                                          "column": 19
                                        },
                                        "end": {
                                          "line": 89,
                                          "column": 23
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 3369,
                                      "end": 3376,
                                      "loc": {
                                        "start": {
                                          "line": 89,
                                          "column": 24
                                        },
                                        "end": {
                                          "line": 89,
                                          "column": 31
                                        }
                                      },
                                      "name": "_events"
                                    },
                                    "computed": false
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 3377,
                                    "end": 3381,
                                    "loc": {
                                      "start": {
                                        "line": 89,
                                        "column": 32
                                      },
                                      "end": {
                                        "line": 89,
                                        "column": 36
                                      }
                                    },
                                    "name": "name"
                                  },
                                  "computed": true
                                }
                              },
                              "consequent": {
                                "type": "BlockStatement",
                                "start": 3384,
                                "end": 3826,
                                "loc": {
                                  "start": {
                                    "line": 89,
                                    "column": 39
                                  },
                                  "end": {
                                    "line": 101,
                                    "column": 7
                                  }
                                },
                                "body": [
                                  {
                                    "type": "ExpressionStatement",
                                    "start": 3394,
                                    "end": 3427,
                                    "loc": {
                                      "start": {
                                        "line": 90,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 90,
                                        "column": 41
                                      }
                                    },
                                    "expression": {
                                      "type": "AssignmentExpression",
                                      "start": 3394,
                                      "end": 3426,
                                      "loc": {
                                        "start": {
                                          "line": 90,
                                          "column": 8
                                        },
                                        "end": {
                                          "line": 90,
                                          "column": 40
                                        }
                                      },
                                      "operator": "=",
                                      "left": {
                                        "type": "MemberExpression",
                                        "start": 3394,
                                        "end": 3412,
                                        "loc": {
                                          "start": {
                                            "line": 90,
                                            "column": 8
                                          },
                                          "end": {
                                            "line": 90,
                                            "column": 26
                                          }
                                        },
                                        "object": {
                                          "type": "MemberExpression",
                                          "start": 3394,
                                          "end": 3406,
                                          "loc": {
                                            "start": {
                                              "line": 90,
                                              "column": 8
                                            },
                                            "end": {
                                              "line": 90,
                                              "column": 20
                                            }
                                          },
                                          "object": {
                                            "type": "ThisExpression",
                                            "start": 3394,
                                            "end": 3398,
                                            "loc": {
                                              "start": {
                                                "line": 90,
                                                "column": 8
                                              },
                                              "end": {
                                                "line": 90,
                                                "column": 12
                                              }
                                            }
                                          },
                                          "property": {
                                            "type": "Identifier",
                                            "start": 3399,
                                            "end": 3406,
                                            "loc": {
                                              "start": {
                                                "line": 90,
                                                "column": 13
                                              },
                                              "end": {
                                                "line": 90,
                                                "column": 20
                                              }
                                            },
                                            "name": "_events"
                                          },
                                          "computed": false
                                        },
                                        "property": {
                                          "type": "Identifier",
                                          "start": 3407,
                                          "end": 3411,
                                          "loc": {
                                            "start": {
                                              "line": 90,
                                              "column": 21
                                            },
                                            "end": {
                                              "line": 90,
                                              "column": 25
                                            }
                                          },
                                          "name": "name"
                                        },
                                        "computed": true
                                      },
                                      "right": {
                                        "type": "AssignmentExpression",
                                        "start": 3415,
                                        "end": 3426,
                                        "loc": {
                                          "start": {
                                            "line": 90,
                                            "column": 29
                                          },
                                          "end": {
                                            "line": 90,
                                            "column": 40
                                          }
                                        },
                                        "operator": "=",
                                        "left": {
                                          "type": "Identifier",
                                          "start": 3415,
                                          "end": 3421,
                                          "loc": {
                                            "start": {
                                              "line": 90,
                                              "column": 29
                                            },
                                            "end": {
                                              "line": 90,
                                              "column": 35
                                            }
                                          },
                                          "name": "retain"
                                        },
                                        "right": {
                                          "type": "ArrayExpression",
                                          "start": 3424,
                                          "end": 3426,
                                          "loc": {
                                            "start": {
                                              "line": 90,
                                              "column": 38
                                            },
                                            "end": {
                                              "line": 90,
                                              "column": 40
                                            }
                                          },
                                          "elements": []
                                        }
                                      }
                                    }
                                  },
                                  {
                                    "type": "IfStatement",
                                    "start": 3436,
                                    "end": 3763,
                                    "loc": {
                                      "start": {
                                        "line": 91,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 99,
                                        "column": 9
                                      }
                                    },
                                    "test": {
                                      "type": "LogicalExpression",
                                      "start": 3440,
                                      "end": 3459,
                                      "loc": {
                                        "start": {
                                          "line": 91,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 91,
                                          "column": 31
                                        }
                                      },
                                      "left": {
                                        "type": "Identifier",
                                        "start": 3440,
                                        "end": 3448,
                                        "loc": {
                                          "start": {
                                            "line": 91,
                                            "column": 12
                                          },
                                          "end": {
                                            "line": 91,
                                            "column": 20
                                          }
                                        },
                                        "name": "callback"
                                      },
                                      "operator": "||",
                                      "right": {
                                        "type": "Identifier",
                                        "start": 3452,
                                        "end": 3459,
                                        "loc": {
                                          "start": {
                                            "line": 91,
                                            "column": 24
                                          },
                                          "end": {
                                            "line": 91,
                                            "column": 31
                                          }
                                        },
                                        "name": "context"
                                      }
                                    },
                                    "consequent": {
                                      "type": "BlockStatement",
                                      "start": 3461,
                                      "end": 3763,
                                      "loc": {
                                        "start": {
                                          "line": 91,
                                          "column": 33
                                        },
                                        "end": {
                                          "line": 99,
                                          "column": 9
                                        }
                                      },
                                      "body": [
                                        {
                                          "type": "ForStatement",
                                          "start": 3473,
                                          "end": 3753,
                                          "loc": {
                                            "start": {
                                              "line": 92,
                                              "column": 10
                                            },
                                            "end": {
                                              "line": 98,
                                              "column": 11
                                            }
                                          },
                                          "init": {
                                            "type": "SequenceExpression",
                                            "start": 3478,
                                            "end": 3502,
                                            "loc": {
                                              "start": {
                                                "line": 92,
                                                "column": 15
                                              },
                                              "end": {
                                                "line": 92,
                                                "column": 39
                                              }
                                            },
                                            "expressions": [
                                              {
                                                "type": "AssignmentExpression",
                                                "start": 3478,
                                                "end": 3483,
                                                "loc": {
                                                  "start": {
                                                    "line": 92,
                                                    "column": 15
                                                  },
                                                  "end": {
                                                    "line": 92,
                                                    "column": 20
                                                  }
                                                },
                                                "operator": "=",
                                                "left": {
                                                  "type": "Identifier",
                                                  "start": 3478,
                                                  "end": 3479,
                                                  "loc": {
                                                    "start": {
                                                      "line": 92,
                                                      "column": 15
                                                    },
                                                    "end": {
                                                      "line": 92,
                                                      "column": 16
                                                    }
                                                  },
                                                  "name": "j"
                                                },
                                                "right": {
                                                  "type": "Literal",
                                                  "start": 3482,
                                                  "end": 3483,
                                                  "loc": {
                                                    "start": {
                                                      "line": 92,
                                                      "column": 19
                                                    },
                                                    "end": {
                                                      "line": 92,
                                                      "column": 20
                                                    }
                                                  },
                                                  "value": 0,
                                                  "rawValue": 0,
                                                  "raw": "0"
                                                }
                                              },
                                              {
                                                "type": "AssignmentExpression",
                                                "start": 3485,
                                                "end": 3502,
                                                "loc": {
                                                  "start": {
                                                    "line": 92,
                                                    "column": 22
                                                  },
                                                  "end": {
                                                    "line": 92,
                                                    "column": 39
                                                  }
                                                },
                                                "operator": "=",
                                                "left": {
                                                  "type": "Identifier",
                                                  "start": 3485,
                                                  "end": 3486,
                                                  "loc": {
                                                    "start": {
                                                      "line": 92,
                                                      "column": 22
                                                    },
                                                    "end": {
                                                      "line": 92,
                                                      "column": 23
                                                    }
                                                  },
                                                  "name": "k"
                                                },
                                                "right": {
                                                  "type": "MemberExpression",
                                                  "start": 3489,
                                                  "end": 3502,
                                                  "loc": {
                                                    "start": {
                                                      "line": 92,
                                                      "column": 26
                                                    },
                                                    "end": {
                                                      "line": 92,
                                                      "column": 39
                                                    }
                                                  },
                                                  "object": {
                                                    "type": "Identifier",
                                                    "start": 3489,
                                                    "end": 3495,
                                                    "loc": {
                                                      "start": {
                                                        "line": 92,
                                                        "column": 26
                                                      },
                                                      "end": {
                                                        "line": 92,
                                                        "column": 32
                                                      }
                                                    },
                                                    "name": "events"
                                                  },
                                                  "property": {
                                                    "type": "Identifier",
                                                    "start": 3496,
                                                    "end": 3502,
                                                    "loc": {
                                                      "start": {
                                                        "line": 92,
                                                        "column": 33
                                                      },
                                                      "end": {
                                                        "line": 92,
                                                        "column": 39
                                                      }
                                                    },
                                                    "name": "length"
                                                  },
                                                  "computed": false
                                                }
                                              }
                                            ]
                                          },
                                          "test": {
                                            "type": "BinaryExpression",
                                            "start": 3504,
                                            "end": 3509,
                                            "loc": {
                                              "start": {
                                                "line": 92,
                                                "column": 41
                                              },
                                              "end": {
                                                "line": 92,
                                                "column": 46
                                              }
                                            },
                                            "left": {
                                              "type": "Identifier",
                                              "start": 3504,
                                              "end": 3505,
                                              "loc": {
                                                "start": {
                                                  "line": 92,
                                                  "column": 41
                                                },
                                                "end": {
                                                  "line": 92,
                                                  "column": 42
                                                }
                                              },
                                              "name": "j"
                                            },
                                            "operator": "<",
                                            "right": {
                                              "type": "Identifier",
                                              "start": 3508,
                                              "end": 3509,
                                              "loc": {
                                                "start": {
                                                  "line": 92,
                                                  "column": 45
                                                },
                                                "end": {
                                                  "line": 92,
                                                  "column": 46
                                                }
                                              },
                                              "name": "k"
                                            }
                                          },
                                          "update": {
                                            "type": "UpdateExpression",
                                            "start": 3511,
                                            "end": 3514,
                                            "loc": {
                                              "start": {
                                                "line": 92,
                                                "column": 48
                                              },
                                              "end": {
                                                "line": 92,
                                                "column": 51
                                              }
                                            },
                                            "operator": "++",
                                            "prefix": false,
                                            "argument": {
                                              "type": "Identifier",
                                              "start": 3511,
                                              "end": 3512,
                                              "loc": {
                                                "start": {
                                                  "line": 92,
                                                  "column": 48
                                                },
                                                "end": {
                                                  "line": 92,
                                                  "column": 49
                                                }
                                              },
                                              "name": "j"
                                            }
                                          },
                                          "body": {
                                            "type": "BlockStatement",
                                            "start": 3516,
                                            "end": 3753,
                                            "loc": {
                                              "start": {
                                                "line": 92,
                                                "column": 53
                                              },
                                              "end": {
                                                "line": 98,
                                                "column": 11
                                              }
                                            },
                                            "body": [
                                              {
                                                "type": "ExpressionStatement",
                                                "start": 3530,
                                                "end": 3545,
                                                "loc": {
                                                  "start": {
                                                    "line": 93,
                                                    "column": 12
                                                  },
                                                  "end": {
                                                    "line": 93,
                                                    "column": 27
                                                  }
                                                },
                                                "expression": {
                                                  "type": "AssignmentExpression",
                                                  "start": 3530,
                                                  "end": 3544,
                                                  "loc": {
                                                    "start": {
                                                      "line": 93,
                                                      "column": 12
                                                    },
                                                    "end": {
                                                      "line": 93,
                                                      "column": 26
                                                    }
                                                  },
                                                  "operator": "=",
                                                  "left": {
                                                    "type": "Identifier",
                                                    "start": 3530,
                                                    "end": 3532,
                                                    "loc": {
                                                      "start": {
                                                        "line": 93,
                                                        "column": 12
                                                      },
                                                      "end": {
                                                        "line": 93,
                                                        "column": 14
                                                      }
                                                    },
                                                    "name": "ev"
                                                  },
                                                  "right": {
                                                    "type": "MemberExpression",
                                                    "start": 3535,
                                                    "end": 3544,
                                                    "loc": {
                                                      "start": {
                                                        "line": 93,
                                                        "column": 17
                                                      },
                                                      "end": {
                                                        "line": 93,
                                                        "column": 26
                                                      }
                                                    },
                                                    "object": {
                                                      "type": "Identifier",
                                                      "start": 3535,
                                                      "end": 3541,
                                                      "loc": {
                                                        "start": {
                                                          "line": 93,
                                                          "column": 17
                                                        },
                                                        "end": {
                                                          "line": 93,
                                                          "column": 23
                                                        }
                                                      },
                                                      "name": "events"
                                                    },
                                                    "property": {
                                                      "type": "Identifier",
                                                      "start": 3542,
                                                      "end": 3543,
                                                      "loc": {
                                                        "start": {
                                                          "line": 93,
                                                          "column": 24
                                                        },
                                                        "end": {
                                                          "line": 93,
                                                          "column": 25
                                                        }
                                                      },
                                                      "name": "j"
                                                    },
                                                    "computed": true
                                                  }
                                                }
                                              },
                                              {
                                                "type": "IfStatement",
                                                "start": 3558,
                                                "end": 3741,
                                                "loc": {
                                                  "start": {
                                                    "line": 94,
                                                    "column": 12
                                                  },
                                                  "end": {
                                                    "line": 97,
                                                    "column": 13
                                                  }
                                                },
                                                "test": {
                                                  "type": "LogicalExpression",
                                                  "start": 3562,
                                                  "end": 3693,
                                                  "loc": {
                                                    "start": {
                                                      "line": 94,
                                                      "column": 16
                                                    },
                                                    "end": {
                                                      "line": 95,
                                                      "column": 51
                                                    }
                                                  },
                                                  "left": {
                                                    "type": "LogicalExpression",
                                                    "start": 3563,
                                                    "end": 3637,
                                                    "loc": {
                                                      "start": {
                                                        "line": 94,
                                                        "column": 17
                                                      },
                                                      "end": {
                                                        "line": 94,
                                                        "column": 91
                                                      }
                                                    },
                                                    "left": {
                                                      "type": "LogicalExpression",
                                                      "start": 3563,
                                                      "end": 3599,
                                                      "loc": {
                                                        "start": {
                                                          "line": 94,
                                                          "column": 17
                                                        },
                                                        "end": {
                                                          "line": 94,
                                                          "column": 53
                                                        }
                                                      },
                                                      "left": {
                                                        "type": "Identifier",
                                                        "start": 3563,
                                                        "end": 3571,
                                                        "loc": {
                                                          "start": {
                                                            "line": 94,
                                                            "column": 17
                                                          },
                                                          "end": {
                                                            "line": 94,
                                                            "column": 25
                                                          }
                                                        },
                                                        "name": "callback"
                                                      },
                                                      "operator": "&&",
                                                      "right": {
                                                        "type": "BinaryExpression",
                                                        "start": 3575,
                                                        "end": 3599,
                                                        "loc": {
                                                          "start": {
                                                            "line": 94,
                                                            "column": 29
                                                          },
                                                          "end": {
                                                            "line": 94,
                                                            "column": 53
                                                          }
                                                        },
                                                        "left": {
                                                          "type": "Identifier",
                                                          "start": 3575,
                                                          "end": 3583,
                                                          "loc": {
                                                            "start": {
                                                              "line": 94,
                                                              "column": 29
                                                            },
                                                            "end": {
                                                              "line": 94,
                                                              "column": 37
                                                            }
                                                          },
                                                          "name": "callback"
                                                        },
                                                        "operator": "!==",
                                                        "right": {
                                                          "type": "MemberExpression",
                                                          "start": 3588,
                                                          "end": 3599,
                                                          "loc": {
                                                            "start": {
                                                              "line": 94,
                                                              "column": 42
                                                            },
                                                            "end": {
                                                              "line": 94,
                                                              "column": 53
                                                            }
                                                          },
                                                          "object": {
                                                            "type": "Identifier",
                                                            "start": 3588,
                                                            "end": 3590,
                                                            "loc": {
                                                              "start": {
                                                                "line": 94,
                                                                "column": 42
                                                              },
                                                              "end": {
                                                                "line": 94,
                                                                "column": 44
                                                              }
                                                            },
                                                            "name": "ev"
                                                          },
                                                          "property": {
                                                            "type": "Identifier",
                                                            "start": 3591,
                                                            "end": 3599,
                                                            "loc": {
                                                              "start": {
                                                                "line": 94,
                                                                "column": 45
                                                              },
                                                              "end": {
                                                                "line": 94,
                                                                "column": 53
                                                              }
                                                            },
                                                            "name": "callback"
                                                          },
                                                          "computed": false
                                                        }
                                                      }
                                                    },
                                                    "operator": "&&",
                                                    "right": {
                                                      "type": "BinaryExpression",
                                                      "start": 3603,
                                                      "end": 3637,
                                                      "loc": {
                                                        "start": {
                                                          "line": 94,
                                                          "column": 57
                                                        },
                                                        "end": {
                                                          "line": 94,
                                                          "column": 91
                                                        }
                                                      },
                                                      "left": {
                                                        "type": "Identifier",
                                                        "start": 3603,
                                                        "end": 3611,
                                                        "loc": {
                                                          "start": {
                                                            "line": 94,
                                                            "column": 57
                                                          },
                                                          "end": {
                                                            "line": 94,
                                                            "column": 65
                                                          }
                                                        },
                                                        "name": "callback"
                                                      },
                                                      "operator": "!==",
                                                      "right": {
                                                        "type": "MemberExpression",
                                                        "start": 3616,
                                                        "end": 3637,
                                                        "loc": {
                                                          "start": {
                                                            "line": 94,
                                                            "column": 70
                                                          },
                                                          "end": {
                                                            "line": 94,
                                                            "column": 91
                                                          }
                                                        },
                                                        "object": {
                                                          "type": "MemberExpression",
                                                          "start": 3616,
                                                          "end": 3627,
                                                          "loc": {
                                                            "start": {
                                                              "line": 94,
                                                              "column": 70
                                                            },
                                                            "end": {
                                                              "line": 94,
                                                              "column": 81
                                                            }
                                                          },
                                                          "object": {
                                                            "type": "Identifier",
                                                            "start": 3616,
                                                            "end": 3618,
                                                            "loc": {
                                                              "start": {
                                                                "line": 94,
                                                                "column": 70
                                                              },
                                                              "end": {
                                                                "line": 94,
                                                                "column": 72
                                                              }
                                                            },
                                                            "name": "ev"
                                                          },
                                                          "property": {
                                                            "type": "Identifier",
                                                            "start": 3619,
                                                            "end": 3627,
                                                            "loc": {
                                                              "start": {
                                                                "line": 94,
                                                                "column": 73
                                                              },
                                                              "end": {
                                                                "line": 94,
                                                                "column": 81
                                                              }
                                                            },
                                                            "name": "callback"
                                                          },
                                                          "computed": false
                                                        },
                                                        "property": {
                                                          "type": "Identifier",
                                                          "start": 3628,
                                                          "end": 3637,
                                                          "loc": {
                                                            "start": {
                                                              "line": 94,
                                                              "column": 82
                                                            },
                                                            "end": {
                                                              "line": 94,
                                                              "column": 91
                                                            }
                                                          },
                                                          "name": "_callback"
                                                        },
                                                        "computed": false
                                                      }
                                                    },
                                                    "parenthesizedExpression": true
                                                  },
                                                  "operator": "||",
                                                  "right": {
                                                    "type": "LogicalExpression",
                                                    "start": 3659,
                                                    "end": 3692,
                                                    "loc": {
                                                      "start": {
                                                        "line": 95,
                                                        "column": 17
                                                      },
                                                      "end": {
                                                        "line": 95,
                                                        "column": 50
                                                      }
                                                    },
                                                    "left": {
                                                      "type": "Identifier",
                                                      "start": 3659,
                                                      "end": 3666,
                                                      "loc": {
                                                        "start": {
                                                          "line": 95,
                                                          "column": 17
                                                        },
                                                        "end": {
                                                          "line": 95,
                                                          "column": 24
                                                        }
                                                      },
                                                      "name": "context"
                                                    },
                                                    "operator": "&&",
                                                    "right": {
                                                      "type": "BinaryExpression",
                                                      "start": 3670,
                                                      "end": 3692,
                                                      "loc": {
                                                        "start": {
                                                          "line": 95,
                                                          "column": 28
                                                        },
                                                        "end": {
                                                          "line": 95,
                                                          "column": 50
                                                        }
                                                      },
                                                      "left": {
                                                        "type": "Identifier",
                                                        "start": 3670,
                                                        "end": 3677,
                                                        "loc": {
                                                          "start": {
                                                            "line": 95,
                                                            "column": 28
                                                          },
                                                          "end": {
                                                            "line": 95,
                                                            "column": 35
                                                          }
                                                        },
                                                        "name": "context"
                                                      },
                                                      "operator": "!==",
                                                      "right": {
                                                        "type": "MemberExpression",
                                                        "start": 3682,
                                                        "end": 3692,
                                                        "loc": {
                                                          "start": {
                                                            "line": 95,
                                                            "column": 40
                                                          },
                                                          "end": {
                                                            "line": 95,
                                                            "column": 50
                                                          }
                                                        },
                                                        "object": {
                                                          "type": "Identifier",
                                                          "start": 3682,
                                                          "end": 3684,
                                                          "loc": {
                                                            "start": {
                                                              "line": 95,
                                                              "column": 40
                                                            },
                                                            "end": {
                                                              "line": 95,
                                                              "column": 42
                                                            }
                                                          },
                                                          "name": "ev"
                                                        },
                                                        "property": {
                                                          "type": "Identifier",
                                                          "start": 3685,
                                                          "end": 3692,
                                                          "loc": {
                                                            "start": {
                                                              "line": 95,
                                                              "column": 43
                                                            },
                                                            "end": {
                                                              "line": 95,
                                                              "column": 50
                                                            }
                                                          },
                                                          "name": "context"
                                                        },
                                                        "computed": false
                                                      }
                                                    },
                                                    "parenthesizedExpression": true
                                                  }
                                                },
                                                "consequent": {
                                                  "type": "BlockStatement",
                                                  "start": 3695,
                                                  "end": 3741,
                                                  "loc": {
                                                    "start": {
                                                      "line": 95,
                                                      "column": 53
                                                    },
                                                    "end": {
                                                      "line": 97,
                                                      "column": 13
                                                    }
                                                  },
                                                  "body": [
                                                    {
                                                      "type": "ExpressionStatement",
                                                      "start": 3711,
                                                      "end": 3727,
                                                      "loc": {
                                                        "start": {
                                                          "line": 96,
                                                          "column": 14
                                                        },
                                                        "end": {
                                                          "line": 96,
                                                          "column": 30
                                                        }
                                                      },
                                                      "expression": {
                                                        "type": "CallExpression",
                                                        "start": 3711,
                                                        "end": 3726,
                                                        "loc": {
                                                          "start": {
                                                            "line": 96,
                                                            "column": 14
                                                          },
                                                          "end": {
                                                            "line": 96,
                                                            "column": 29
                                                          }
                                                        },
                                                        "callee": {
                                                          "type": "MemberExpression",
                                                          "start": 3711,
                                                          "end": 3722,
                                                          "loc": {
                                                            "start": {
                                                              "line": 96,
                                                              "column": 14
                                                            },
                                                            "end": {
                                                              "line": 96,
                                                              "column": 25
                                                            }
                                                          },
                                                          "object": {
                                                            "type": "Identifier",
                                                            "start": 3711,
                                                            "end": 3717,
                                                            "loc": {
                                                              "start": {
                                                                "line": 96,
                                                                "column": 14
                                                              },
                                                              "end": {
                                                                "line": 96,
                                                                "column": 20
                                                              }
                                                            },
                                                            "name": "retain"
                                                          },
                                                          "property": {
                                                            "type": "Identifier",
                                                            "start": 3718,
                                                            "end": 3722,
                                                            "loc": {
                                                              "start": {
                                                                "line": 96,
                                                                "column": 21
                                                              },
                                                              "end": {
                                                                "line": 96,
                                                                "column": 25
                                                              }
                                                            },
                                                            "name": "push"
                                                          },
                                                          "computed": false
                                                        },
                                                        "arguments": [
                                                          {
                                                            "type": "Identifier",
                                                            "start": 3723,
                                                            "end": 3725,
                                                            "loc": {
                                                              "start": {
                                                                "line": 96,
                                                                "column": 26
                                                              },
                                                              "end": {
                                                                "line": 96,
                                                                "column": 28
                                                              }
                                                            },
                                                            "name": "ev"
                                                          }
                                                        ]
                                                      }
                                                    }
                                                  ]
                                                },
                                                "alternate": null
                                              }
                                            ]
                                          }
                                        }
                                      ]
                                    },
                                    "alternate": null
                                  },
                                  {
                                    "type": "IfStatement",
                                    "start": 3772,
                                    "end": 3818,
                                    "loc": {
                                      "start": {
                                        "line": 100,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 100,
                                        "column": 54
                                      }
                                    },
                                    "test": {
                                      "type": "UnaryExpression",
                                      "start": 3776,
                                      "end": 3790,
                                      "loc": {
                                        "start": {
                                          "line": 100,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 100,
                                          "column": 26
                                        }
                                      },
                                      "operator": "!",
                                      "prefix": true,
                                      "argument": {
                                        "type": "MemberExpression",
                                        "start": 3777,
                                        "end": 3790,
                                        "loc": {
                                          "start": {
                                            "line": 100,
                                            "column": 13
                                          },
                                          "end": {
                                            "line": 100,
                                            "column": 26
                                          }
                                        },
                                        "object": {
                                          "type": "Identifier",
                                          "start": 3777,
                                          "end": 3783,
                                          "loc": {
                                            "start": {
                                              "line": 100,
                                              "column": 13
                                            },
                                            "end": {
                                              "line": 100,
                                              "column": 19
                                            }
                                          },
                                          "name": "retain"
                                        },
                                        "property": {
                                          "type": "Identifier",
                                          "start": 3784,
                                          "end": 3790,
                                          "loc": {
                                            "start": {
                                              "line": 100,
                                              "column": 20
                                            },
                                            "end": {
                                              "line": 100,
                                              "column": 26
                                            }
                                          },
                                          "name": "length"
                                        },
                                        "computed": false
                                      }
                                    },
                                    "consequent": {
                                      "type": "ExpressionStatement",
                                      "start": 3792,
                                      "end": 3818,
                                      "loc": {
                                        "start": {
                                          "line": 100,
                                          "column": 28
                                        },
                                        "end": {
                                          "line": 100,
                                          "column": 54
                                        }
                                      },
                                      "expression": {
                                        "type": "UnaryExpression",
                                        "start": 3792,
                                        "end": 3817,
                                        "loc": {
                                          "start": {
                                            "line": 100,
                                            "column": 28
                                          },
                                          "end": {
                                            "line": 100,
                                            "column": 53
                                          }
                                        },
                                        "operator": "delete",
                                        "prefix": true,
                                        "argument": {
                                          "type": "MemberExpression",
                                          "start": 3799,
                                          "end": 3817,
                                          "loc": {
                                            "start": {
                                              "line": 100,
                                              "column": 35
                                            },
                                            "end": {
                                              "line": 100,
                                              "column": 53
                                            }
                                          },
                                          "object": {
                                            "type": "MemberExpression",
                                            "start": 3799,
                                            "end": 3811,
                                            "loc": {
                                              "start": {
                                                "line": 100,
                                                "column": 35
                                              },
                                              "end": {
                                                "line": 100,
                                                "column": 47
                                              }
                                            },
                                            "object": {
                                              "type": "ThisExpression",
                                              "start": 3799,
                                              "end": 3803,
                                              "loc": {
                                                "start": {
                                                  "line": 100,
                                                  "column": 35
                                                },
                                                "end": {
                                                  "line": 100,
                                                  "column": 39
                                                }
                                              }
                                            },
                                            "property": {
                                              "type": "Identifier",
                                              "start": 3804,
                                              "end": 3811,
                                              "loc": {
                                                "start": {
                                                  "line": 100,
                                                  "column": 40
                                                },
                                                "end": {
                                                  "line": 100,
                                                  "column": 47
                                                }
                                              },
                                              "name": "_events"
                                            },
                                            "computed": false
                                          },
                                          "property": {
                                            "type": "Identifier",
                                            "start": 3812,
                                            "end": 3816,
                                            "loc": {
                                              "start": {
                                                "line": 100,
                                                "column": 48
                                              },
                                              "end": {
                                                "line": 100,
                                                "column": 52
                                              }
                                            },
                                            "name": "name"
                                          },
                                          "computed": true
                                        }
                                      }
                                    },
                                    "alternate": null
                                  }
                                ]
                              },
                              "alternate": null
                            }
                          ]
                        }
                      },
                      {
                        "type": "ReturnStatement",
                        "start": 3838,
                        "end": 3850,
                        "loc": {
                          "start": {
                            "line": 104,
                            "column": 4
                          },
                          "end": {
                            "line": 104,
                            "column": 16
                          }
                        },
                        "argument": {
                          "type": "ThisExpression",
                          "start": 3845,
                          "end": 3849,
                          "loc": {
                            "start": {
                              "line": 104,
                              "column": 11
                            },
                            "end": {
                              "line": 104,
                              "column": 15
                            }
                          }
                        }
                      }
                    ]
                  }
                },
                "kind": "init",
                "leadingComments": [
                  {
                    "type": "CommentLine",
                    "value": " Remove one or many callbacks. If `context` is null, removes all",
                    "start": 2715,
                    "end": 2781,
                    "loc": {
                      "start": {
                        "line": 75,
                        "column": 2
                      },
                      "end": {
                        "line": 75,
                        "column": 68
                      }
                    },
                    "range": [
                      2715,
                      2781
                    ]
                  },
                  {
                    "type": "CommentLine",
                    "value": " callbacks with that function. If `callback` is null, removes all",
                    "start": 2784,
                    "end": 2851,
                    "loc": {
                      "start": {
                        "line": 76,
                        "column": 2
                      },
                      "end": {
                        "line": 76,
                        "column": 69
                      }
                    },
                    "range": [
                      2784,
                      2851
                    ]
                  },
                  {
                    "type": "CommentLine",
                    "value": " callbacks for the event. If `name` is null, removes all bound",
                    "start": 2854,
                    "end": 2918,
                    "loc": {
                      "start": {
                        "line": 77,
                        "column": 2
                      },
                      "end": {
                        "line": 77,
                        "column": 66
                      }
                    },
                    "range": [
                      2854,
                      2918
                    ]
                  },
                  {
                    "type": "CommentLine",
                    "value": " callbacks for all events.",
                    "start": 2921,
                    "end": 2949,
                    "loc": {
                      "start": {
                        "line": 78,
                        "column": 2
                      },
                      "end": {
                        "line": 78,
                        "column": 30
                      }
                    },
                    "range": [
                      2921,
                      2949
                    ]
                  }
                ]
              },
              {
                "type": "Property",
                "start": 4148,
                "end": 4509,
                "loc": {
                  "start": {
                    "line": 111,
                    "column": 2
                  },
                  "end": {
                    "line": 120,
                    "column": 3
                  }
                },
                "method": false,
                "shorthand": false,
                "computed": false,
                "key": {
                  "type": "Identifier",
                  "start": 4148,
                  "end": 4155,
                  "loc": {
                    "start": {
                      "line": 111,
                      "column": 2
                    },
                    "end": {
                      "line": 111,
                      "column": 9
                    }
                  },
                  "name": "trigger",
                  "leadingComments": null
                },
                "value": {
                  "type": "FunctionExpression",
                  "start": 4157,
                  "end": 4509,
                  "loc": {
                    "start": {
                      "line": 111,
                      "column": 11
                    },
                    "end": {
                      "line": 120,
                      "column": 3
                    }
                  },
                  "id": null,
                  "generator": false,
                  "expression": false,
                  "async": false,
                  "params": [
                    {
                      "type": "Identifier",
                      "start": 4166,
                      "end": 4170,
                      "loc": {
                        "start": {
                          "line": 111,
                          "column": 20
                        },
                        "end": {
                          "line": 111,
                          "column": 24
                        }
                      },
                      "name": "name"
                    }
                  ],
                  "body": {
                    "type": "BlockStatement",
                    "start": 4172,
                    "end": 4509,
                    "loc": {
                      "start": {
                        "line": 111,
                        "column": 26
                      },
                      "end": {
                        "line": 120,
                        "column": 3
                      }
                    },
                    "body": [
                      {
                        "type": "IfStatement",
                        "start": 4178,
                        "end": 4209,
                        "loc": {
                          "start": {
                            "line": 112,
                            "column": 4
                          },
                          "end": {
                            "line": 112,
                            "column": 35
                          }
                        },
                        "test": {
                          "type": "UnaryExpression",
                          "start": 4182,
                          "end": 4195,
                          "loc": {
                            "start": {
                              "line": 112,
                              "column": 8
                            },
                            "end": {
                              "line": 112,
                              "column": 21
                            }
                          },
                          "operator": "!",
                          "prefix": true,
                          "argument": {
                            "type": "MemberExpression",
                            "start": 4183,
                            "end": 4195,
                            "loc": {
                              "start": {
                                "line": 112,
                                "column": 9
                              },
                              "end": {
                                "line": 112,
                                "column": 21
                              }
                            },
                            "object": {
                              "type": "ThisExpression",
                              "start": 4183,
                              "end": 4187,
                              "loc": {
                                "start": {
                                  "line": 112,
                                  "column": 9
                                },
                                "end": {
                                  "line": 112,
                                  "column": 13
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 4188,
                              "end": 4195,
                              "loc": {
                                "start": {
                                  "line": 112,
                                  "column": 14
                                },
                                "end": {
                                  "line": 112,
                                  "column": 21
                                }
                              },
                              "name": "_events"
                            },
                            "computed": false
                          }
                        },
                        "consequent": {
                          "type": "ReturnStatement",
                          "start": 4197,
                          "end": 4209,
                          "loc": {
                            "start": {
                              "line": 112,
                              "column": 23
                            },
                            "end": {
                              "line": 112,
                              "column": 35
                            }
                          },
                          "argument": {
                            "type": "ThisExpression",
                            "start": 4204,
                            "end": 4208,
                            "loc": {
                              "start": {
                                "line": 112,
                                "column": 30
                              },
                              "end": {
                                "line": 112,
                                "column": 34
                              }
                            }
                          }
                        },
                        "alternate": null
                      },
                      {
                        "type": "VariableDeclaration",
                        "start": 4214,
                        "end": 4250,
                        "loc": {
                          "start": {
                            "line": 113,
                            "column": 4
                          },
                          "end": {
                            "line": 113,
                            "column": 40
                          }
                        },
                        "declarations": [
                          {
                            "type": "VariableDeclarator",
                            "start": 4218,
                            "end": 4249,
                            "loc": {
                              "start": {
                                "line": 113,
                                "column": 8
                              },
                              "end": {
                                "line": 113,
                                "column": 39
                              }
                            },
                            "id": {
                              "type": "Identifier",
                              "start": 4218,
                              "end": 4222,
                              "loc": {
                                "start": {
                                  "line": 113,
                                  "column": 8
                                },
                                "end": {
                                  "line": 113,
                                  "column": 12
                                }
                              },
                              "name": "args"
                            },
                            "init": {
                              "type": "CallExpression",
                              "start": 4225,
                              "end": 4249,
                              "loc": {
                                "start": {
                                  "line": 113,
                                  "column": 15
                                },
                                "end": {
                                  "line": 113,
                                  "column": 39
                                }
                              },
                              "callee": {
                                "type": "MemberExpression",
                                "start": 4225,
                                "end": 4235,
                                "loc": {
                                  "start": {
                                    "line": 113,
                                    "column": 15
                                  },
                                  "end": {
                                    "line": 113,
                                    "column": 25
                                  }
                                },
                                "object": {
                                  "type": "Identifier",
                                  "start": 4225,
                                  "end": 4230,
                                  "loc": {
                                    "start": {
                                      "line": 113,
                                      "column": 15
                                    },
                                    "end": {
                                      "line": 113,
                                      "column": 20
                                    }
                                  },
                                  "name": "slice"
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 4231,
                                  "end": 4235,
                                  "loc": {
                                    "start": {
                                      "line": 113,
                                      "column": 21
                                    },
                                    "end": {
                                      "line": 113,
                                      "column": 25
                                    }
                                  },
                                  "name": "call"
                                },
                                "computed": false
                              },
                              "arguments": [
                                {
                                  "type": "Identifier",
                                  "start": 4236,
                                  "end": 4245,
                                  "loc": {
                                    "start": {
                                      "line": 113,
                                      "column": 26
                                    },
                                    "end": {
                                      "line": 113,
                                      "column": 35
                                    }
                                  },
                                  "name": "arguments"
                                },
                                {
                                  "type": "Literal",
                                  "start": 4247,
                                  "end": 4248,
                                  "loc": {
                                    "start": {
                                      "line": 113,
                                      "column": 37
                                    },
                                    "end": {
                                      "line": 113,
                                      "column": 38
                                    }
                                  },
                                  "value": 1,
                                  "rawValue": 1,
                                  "raw": "1"
                                }
                              ]
                            }
                          }
                        ],
                        "kind": "let"
                      },
                      {
                        "type": "IfStatement",
                        "start": 4255,
                        "end": 4312,
                        "loc": {
                          "start": {
                            "line": 114,
                            "column": 4
                          },
                          "end": {
                            "line": 114,
                            "column": 61
                          }
                        },
                        "test": {
                          "type": "UnaryExpression",
                          "start": 4259,
                          "end": 4298,
                          "loc": {
                            "start": {
                              "line": 114,
                              "column": 8
                            },
                            "end": {
                              "line": 114,
                              "column": 47
                            }
                          },
                          "operator": "!",
                          "prefix": true,
                          "argument": {
                            "type": "CallExpression",
                            "start": 4260,
                            "end": 4298,
                            "loc": {
                              "start": {
                                "line": 114,
                                "column": 9
                              },
                              "end": {
                                "line": 114,
                                "column": 47
                              }
                            },
                            "callee": {
                              "type": "Identifier",
                              "start": 4260,
                              "end": 4269,
                              "loc": {
                                "start": {
                                  "line": 114,
                                  "column": 9
                                },
                                "end": {
                                  "line": 114,
                                  "column": 18
                                }
                              },
                              "name": "eventsApi"
                            },
                            "arguments": [
                              {
                                "type": "ThisExpression",
                                "start": 4270,
                                "end": 4274,
                                "loc": {
                                  "start": {
                                    "line": 114,
                                    "column": 19
                                  },
                                  "end": {
                                    "line": 114,
                                    "column": 23
                                  }
                                }
                              },
                              {
                                "type": "Literal",
                                "start": 4276,
                                "end": 4285,
                                "loc": {
                                  "start": {
                                    "line": 114,
                                    "column": 25
                                  },
                                  "end": {
                                    "line": 114,
                                    "column": 34
                                  }
                                },
                                "value": "trigger",
                                "rawValue": "trigger",
                                "raw": "\"trigger\""
                              },
                              {
                                "type": "Identifier",
                                "start": 4287,
                                "end": 4291,
                                "loc": {
                                  "start": {
                                    "line": 114,
                                    "column": 36
                                  },
                                  "end": {
                                    "line": 114,
                                    "column": 40
                                  }
                                },
                                "name": "name"
                              },
                              {
                                "type": "Identifier",
                                "start": 4293,
                                "end": 4297,
                                "loc": {
                                  "start": {
                                    "line": 114,
                                    "column": 42
                                  },
                                  "end": {
                                    "line": 114,
                                    "column": 46
                                  }
                                },
                                "name": "args"
                              }
                            ]
                          }
                        },
                        "consequent": {
                          "type": "ReturnStatement",
                          "start": 4300,
                          "end": 4312,
                          "loc": {
                            "start": {
                              "line": 114,
                              "column": 49
                            },
                            "end": {
                              "line": 114,
                              "column": 61
                            }
                          },
                          "argument": {
                            "type": "ThisExpression",
                            "start": 4307,
                            "end": 4311,
                            "loc": {
                              "start": {
                                "line": 114,
                                "column": 56
                              },
                              "end": {
                                "line": 114,
                                "column": 60
                              }
                            }
                          }
                        },
                        "alternate": null
                      },
                      {
                        "type": "VariableDeclaration",
                        "start": 4317,
                        "end": 4349,
                        "loc": {
                          "start": {
                            "line": 115,
                            "column": 4
                          },
                          "end": {
                            "line": 115,
                            "column": 36
                          }
                        },
                        "declarations": [
                          {
                            "type": "VariableDeclarator",
                            "start": 4321,
                            "end": 4348,
                            "loc": {
                              "start": {
                                "line": 115,
                                "column": 8
                              },
                              "end": {
                                "line": 115,
                                "column": 35
                              }
                            },
                            "id": {
                              "type": "Identifier",
                              "start": 4321,
                              "end": 4327,
                              "loc": {
                                "start": {
                                  "line": 115,
                                  "column": 8
                                },
                                "end": {
                                  "line": 115,
                                  "column": 14
                                }
                              },
                              "name": "events"
                            },
                            "init": {
                              "type": "MemberExpression",
                              "start": 4330,
                              "end": 4348,
                              "loc": {
                                "start": {
                                  "line": 115,
                                  "column": 17
                                },
                                "end": {
                                  "line": 115,
                                  "column": 35
                                }
                              },
                              "object": {
                                "type": "MemberExpression",
                                "start": 4330,
                                "end": 4342,
                                "loc": {
                                  "start": {
                                    "line": 115,
                                    "column": 17
                                  },
                                  "end": {
                                    "line": 115,
                                    "column": 29
                                  }
                                },
                                "object": {
                                  "type": "ThisExpression",
                                  "start": 4330,
                                  "end": 4334,
                                  "loc": {
                                    "start": {
                                      "line": 115,
                                      "column": 17
                                    },
                                    "end": {
                                      "line": 115,
                                      "column": 21
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 4335,
                                  "end": 4342,
                                  "loc": {
                                    "start": {
                                      "line": 115,
                                      "column": 22
                                    },
                                    "end": {
                                      "line": 115,
                                      "column": 29
                                    }
                                  },
                                  "name": "_events"
                                },
                                "computed": false
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 4343,
                                "end": 4347,
                                "loc": {
                                  "start": {
                                    "line": 115,
                                    "column": 30
                                  },
                                  "end": {
                                    "line": 115,
                                    "column": 34
                                  }
                                },
                                "name": "name"
                              },
                              "computed": true
                            }
                          }
                        ],
                        "kind": "let"
                      },
                      {
                        "type": "VariableDeclaration",
                        "start": 4354,
                        "end": 4387,
                        "loc": {
                          "start": {
                            "line": 116,
                            "column": 4
                          },
                          "end": {
                            "line": 116,
                            "column": 37
                          }
                        },
                        "declarations": [
                          {
                            "type": "VariableDeclarator",
                            "start": 4358,
                            "end": 4386,
                            "loc": {
                              "start": {
                                "line": 116,
                                "column": 8
                              },
                              "end": {
                                "line": 116,
                                "column": 36
                              }
                            },
                            "id": {
                              "type": "Identifier",
                              "start": 4358,
                              "end": 4367,
                              "loc": {
                                "start": {
                                  "line": 116,
                                  "column": 8
                                },
                                "end": {
                                  "line": 116,
                                  "column": 17
                                }
                              },
                              "name": "allEvents"
                            },
                            "init": {
                              "type": "MemberExpression",
                              "start": 4370,
                              "end": 4386,
                              "loc": {
                                "start": {
                                  "line": 116,
                                  "column": 20
                                },
                                "end": {
                                  "line": 116,
                                  "column": 36
                                }
                              },
                              "object": {
                                "type": "MemberExpression",
                                "start": 4370,
                                "end": 4382,
                                "loc": {
                                  "start": {
                                    "line": 116,
                                    "column": 20
                                  },
                                  "end": {
                                    "line": 116,
                                    "column": 32
                                  }
                                },
                                "object": {
                                  "type": "ThisExpression",
                                  "start": 4370,
                                  "end": 4374,
                                  "loc": {
                                    "start": {
                                      "line": 116,
                                      "column": 20
                                    },
                                    "end": {
                                      "line": 116,
                                      "column": 24
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 4375,
                                  "end": 4382,
                                  "loc": {
                                    "start": {
                                      "line": 116,
                                      "column": 25
                                    },
                                    "end": {
                                      "line": 116,
                                      "column": 32
                                    }
                                  },
                                  "name": "_events"
                                },
                                "computed": false
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 4383,
                                "end": 4386,
                                "loc": {
                                  "start": {
                                    "line": 116,
                                    "column": 33
                                  },
                                  "end": {
                                    "line": 116,
                                    "column": 36
                                  }
                                },
                                "name": "all"
                              },
                              "computed": false
                            }
                          }
                        ],
                        "kind": "let"
                      },
                      {
                        "type": "IfStatement",
                        "start": 4392,
                        "end": 4432,
                        "loc": {
                          "start": {
                            "line": 117,
                            "column": 4
                          },
                          "end": {
                            "line": 117,
                            "column": 44
                          }
                        },
                        "test": {
                          "type": "Identifier",
                          "start": 4396,
                          "end": 4402,
                          "loc": {
                            "start": {
                              "line": 117,
                              "column": 8
                            },
                            "end": {
                              "line": 117,
                              "column": 14
                            }
                          },
                          "name": "events"
                        },
                        "consequent": {
                          "type": "ExpressionStatement",
                          "start": 4404,
                          "end": 4432,
                          "loc": {
                            "start": {
                              "line": 117,
                              "column": 16
                            },
                            "end": {
                              "line": 117,
                              "column": 44
                            }
                          },
                          "expression": {
                            "type": "CallExpression",
                            "start": 4404,
                            "end": 4431,
                            "loc": {
                              "start": {
                                "line": 117,
                                "column": 16
                              },
                              "end": {
                                "line": 117,
                                "column": 43
                              }
                            },
                            "callee": {
                              "type": "Identifier",
                              "start": 4404,
                              "end": 4417,
                              "loc": {
                                "start": {
                                  "line": 117,
                                  "column": 16
                                },
                                "end": {
                                  "line": 117,
                                  "column": 29
                                }
                              },
                              "name": "triggerEvents"
                            },
                            "arguments": [
                              {
                                "type": "Identifier",
                                "start": 4418,
                                "end": 4424,
                                "loc": {
                                  "start": {
                                    "line": 117,
                                    "column": 30
                                  },
                                  "end": {
                                    "line": 117,
                                    "column": 36
                                  }
                                },
                                "name": "events"
                              },
                              {
                                "type": "Identifier",
                                "start": 4426,
                                "end": 4430,
                                "loc": {
                                  "start": {
                                    "line": 117,
                                    "column": 38
                                  },
                                  "end": {
                                    "line": 117,
                                    "column": 42
                                  }
                                },
                                "name": "args"
                              }
                            ]
                          }
                        },
                        "alternate": null
                      },
                      {
                        "type": "IfStatement",
                        "start": 4437,
                        "end": 4488,
                        "loc": {
                          "start": {
                            "line": 118,
                            "column": 4
                          },
                          "end": {
                            "line": 118,
                            "column": 55
                          }
                        },
                        "test": {
                          "type": "Identifier",
                          "start": 4441,
                          "end": 4450,
                          "loc": {
                            "start": {
                              "line": 118,
                              "column": 8
                            },
                            "end": {
                              "line": 118,
                              "column": 17
                            }
                          },
                          "name": "allEvents"
                        },
                        "consequent": {
                          "type": "ExpressionStatement",
                          "start": 4452,
                          "end": 4488,
                          "loc": {
                            "start": {
                              "line": 118,
                              "column": 19
                            },
                            "end": {
                              "line": 118,
                              "column": 55
                            }
                          },
                          "expression": {
                            "type": "CallExpression",
                            "start": 4452,
                            "end": 4487,
                            "loc": {
                              "start": {
                                "line": 118,
                                "column": 19
                              },
                              "end": {
                                "line": 118,
                                "column": 54
                              }
                            },
                            "callee": {
                              "type": "Identifier",
                              "start": 4452,
                              "end": 4465,
                              "loc": {
                                "start": {
                                  "line": 118,
                                  "column": 19
                                },
                                "end": {
                                  "line": 118,
                                  "column": 32
                                }
                              },
                              "name": "triggerEvents"
                            },
                            "arguments": [
                              {
                                "type": "Identifier",
                                "start": 4466,
                                "end": 4475,
                                "loc": {
                                  "start": {
                                    "line": 118,
                                    "column": 33
                                  },
                                  "end": {
                                    "line": 118,
                                    "column": 42
                                  }
                                },
                                "name": "allEvents"
                              },
                              {
                                "type": "Identifier",
                                "start": 4477,
                                "end": 4486,
                                "loc": {
                                  "start": {
                                    "line": 118,
                                    "column": 44
                                  },
                                  "end": {
                                    "line": 118,
                                    "column": 53
                                  }
                                },
                                "name": "arguments"
                              }
                            ]
                          }
                        },
                        "alternate": null
                      },
                      {
                        "type": "ReturnStatement",
                        "start": 4493,
                        "end": 4505,
                        "loc": {
                          "start": {
                            "line": 119,
                            "column": 4
                          },
                          "end": {
                            "line": 119,
                            "column": 16
                          }
                        },
                        "argument": {
                          "type": "ThisExpression",
                          "start": 4500,
                          "end": 4504,
                          "loc": {
                            "start": {
                              "line": 119,
                              "column": 11
                            },
                            "end": {
                              "line": 119,
                              "column": 15
                            }
                          }
                        }
                      }
                    ]
                  }
                },
                "kind": "init",
                "leadingComments": [
                  {
                    "type": "CommentLine",
                    "value": " Trigger one or many events, firing all bound callbacks. Callbacks are",
                    "start": 3859,
                    "end": 3931,
                    "loc": {
                      "start": {
                        "line": 107,
                        "column": 2
                      },
                      "end": {
                        "line": 107,
                        "column": 74
                      }
                    },
                    "range": [
                      3859,
                      3931
                    ]
                  },
                  {
                    "type": "CommentLine",
                    "value": " passed the same arguments as `trigger` is, apart from the event name",
                    "start": 3934,
                    "end": 4005,
                    "loc": {
                      "start": {
                        "line": 108,
                        "column": 2
                      },
                      "end": {
                        "line": 108,
                        "column": 73
                      }
                    },
                    "range": [
                      3934,
                      4005
                    ]
                  },
                  {
                    "type": "CommentLine",
                    "value": " (unless you're listening on `\"all\"`, which will cause your callback to",
                    "start": 4008,
                    "end": 4081,
                    "loc": {
                      "start": {
                        "line": 109,
                        "column": 2
                      },
                      "end": {
                        "line": 109,
                        "column": 75
                      }
                    },
                    "range": [
                      4008,
                      4081
                    ]
                  },
                  {
                    "type": "CommentLine",
                    "value": " receive the true name of the event as the first argument).",
                    "start": 4084,
                    "end": 4145,
                    "loc": {
                      "start": {
                        "line": 110,
                        "column": 2
                      },
                      "end": {
                        "line": 110,
                        "column": 63
                      }
                    },
                    "range": [
                      4084,
                      4145
                    ]
                  }
                ]
              },
              {
                "type": "Property",
                "start": 4637,
                "end": 5113,
                "loc": {
                  "start": {
                    "line": 124,
                    "column": 2
                  },
                  "end": {
                    "line": 136,
                    "column": 3
                  }
                },
                "method": false,
                "shorthand": false,
                "computed": false,
                "key": {
                  "type": "Identifier",
                  "start": 4637,
                  "end": 4650,
                  "loc": {
                    "start": {
                      "line": 124,
                      "column": 2
                    },
                    "end": {
                      "line": 124,
                      "column": 15
                    }
                  },
                  "name": "stopListening",
                  "leadingComments": null
                },
                "value": {
                  "type": "FunctionExpression",
                  "start": 4652,
                  "end": 5113,
                  "loc": {
                    "start": {
                      "line": 124,
                      "column": 17
                    },
                    "end": {
                      "line": 136,
                      "column": 3
                    }
                  },
                  "id": null,
                  "generator": false,
                  "expression": false,
                  "async": false,
                  "params": [
                    {
                      "type": "Identifier",
                      "start": 4661,
                      "end": 4664,
                      "loc": {
                        "start": {
                          "line": 124,
                          "column": 26
                        },
                        "end": {
                          "line": 124,
                          "column": 29
                        }
                      },
                      "name": "obj"
                    },
                    {
                      "type": "Identifier",
                      "start": 4666,
                      "end": 4670,
                      "loc": {
                        "start": {
                          "line": 124,
                          "column": 31
                        },
                        "end": {
                          "line": 124,
                          "column": 35
                        }
                      },
                      "name": "name"
                    },
                    {
                      "type": "Identifier",
                      "start": 4672,
                      "end": 4680,
                      "loc": {
                        "start": {
                          "line": 124,
                          "column": 37
                        },
                        "end": {
                          "line": 124,
                          "column": 45
                        }
                      },
                      "name": "callback"
                    }
                  ],
                  "body": {
                    "type": "BlockStatement",
                    "start": 4682,
                    "end": 5113,
                    "loc": {
                      "start": {
                        "line": 124,
                        "column": 47
                      },
                      "end": {
                        "line": 136,
                        "column": 3
                      }
                    },
                    "body": [
                      {
                        "type": "VariableDeclaration",
                        "start": 4688,
                        "end": 4724,
                        "loc": {
                          "start": {
                            "line": 125,
                            "column": 4
                          },
                          "end": {
                            "line": 125,
                            "column": 40
                          }
                        },
                        "declarations": [
                          {
                            "type": "VariableDeclarator",
                            "start": 4692,
                            "end": 4723,
                            "loc": {
                              "start": {
                                "line": 125,
                                "column": 8
                              },
                              "end": {
                                "line": 125,
                                "column": 39
                              }
                            },
                            "id": {
                              "type": "Identifier",
                              "start": 4692,
                              "end": 4703,
                              "loc": {
                                "start": {
                                  "line": 125,
                                  "column": 8
                                },
                                "end": {
                                  "line": 125,
                                  "column": 19
                                }
                              },
                              "name": "listeningTo"
                            },
                            "init": {
                              "type": "MemberExpression",
                              "start": 4706,
                              "end": 4723,
                              "loc": {
                                "start": {
                                  "line": 125,
                                  "column": 22
                                },
                                "end": {
                                  "line": 125,
                                  "column": 39
                                }
                              },
                              "object": {
                                "type": "ThisExpression",
                                "start": 4706,
                                "end": 4710,
                                "loc": {
                                  "start": {
                                    "line": 125,
                                    "column": 22
                                  },
                                  "end": {
                                    "line": 125,
                                    "column": 26
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 4711,
                                "end": 4723,
                                "loc": {
                                  "start": {
                                    "line": 125,
                                    "column": 27
                                  },
                                  "end": {
                                    "line": 125,
                                    "column": 39
                                  }
                                },
                                "name": "_listeningTo"
                              },
                              "computed": false
                            }
                          }
                        ],
                        "kind": "let"
                      },
                      {
                        "type": "IfStatement",
                        "start": 4729,
                        "end": 4759,
                        "loc": {
                          "start": {
                            "line": 126,
                            "column": 4
                          },
                          "end": {
                            "line": 126,
                            "column": 34
                          }
                        },
                        "test": {
                          "type": "UnaryExpression",
                          "start": 4733,
                          "end": 4745,
                          "loc": {
                            "start": {
                              "line": 126,
                              "column": 8
                            },
                            "end": {
                              "line": 126,
                              "column": 20
                            }
                          },
                          "operator": "!",
                          "prefix": true,
                          "argument": {
                            "type": "Identifier",
                            "start": 4734,
                            "end": 4745,
                            "loc": {
                              "start": {
                                "line": 126,
                                "column": 9
                              },
                              "end": {
                                "line": 126,
                                "column": 20
                              }
                            },
                            "name": "listeningTo"
                          }
                        },
                        "consequent": {
                          "type": "ReturnStatement",
                          "start": 4747,
                          "end": 4759,
                          "loc": {
                            "start": {
                              "line": 126,
                              "column": 22
                            },
                            "end": {
                              "line": 126,
                              "column": 34
                            }
                          },
                          "argument": {
                            "type": "ThisExpression",
                            "start": 4754,
                            "end": 4758,
                            "loc": {
                              "start": {
                                "line": 126,
                                "column": 29
                              },
                              "end": {
                                "line": 126,
                                "column": 33
                              }
                            }
                          }
                        },
                        "alternate": null
                      },
                      {
                        "type": "VariableDeclaration",
                        "start": 4764,
                        "end": 4796,
                        "loc": {
                          "start": {
                            "line": 127,
                            "column": 4
                          },
                          "end": {
                            "line": 127,
                            "column": 36
                          }
                        },
                        "declarations": [
                          {
                            "type": "VariableDeclarator",
                            "start": 4768,
                            "end": 4795,
                            "loc": {
                              "start": {
                                "line": 127,
                                "column": 8
                              },
                              "end": {
                                "line": 127,
                                "column": 35
                              }
                            },
                            "id": {
                              "type": "Identifier",
                              "start": 4768,
                              "end": 4774,
                              "loc": {
                                "start": {
                                  "line": 127,
                                  "column": 8
                                },
                                "end": {
                                  "line": 127,
                                  "column": 14
                                }
                              },
                              "name": "remove"
                            },
                            "init": {
                              "type": "LogicalExpression",
                              "start": 4777,
                              "end": 4795,
                              "loc": {
                                "start": {
                                  "line": 127,
                                  "column": 17
                                },
                                "end": {
                                  "line": 127,
                                  "column": 35
                                }
                              },
                              "left": {
                                "type": "UnaryExpression",
                                "start": 4777,
                                "end": 4782,
                                "loc": {
                                  "start": {
                                    "line": 127,
                                    "column": 17
                                  },
                                  "end": {
                                    "line": 127,
                                    "column": 22
                                  }
                                },
                                "operator": "!",
                                "prefix": true,
                                "argument": {
                                  "type": "Identifier",
                                  "start": 4778,
                                  "end": 4782,
                                  "loc": {
                                    "start": {
                                      "line": 127,
                                      "column": 18
                                    },
                                    "end": {
                                      "line": 127,
                                      "column": 22
                                    }
                                  },
                                  "name": "name"
                                }
                              },
                              "operator": "&&",
                              "right": {
                                "type": "UnaryExpression",
                                "start": 4786,
                                "end": 4795,
                                "loc": {
                                  "start": {
                                    "line": 127,
                                    "column": 26
                                  },
                                  "end": {
                                    "line": 127,
                                    "column": 35
                                  }
                                },
                                "operator": "!",
                                "prefix": true,
                                "argument": {
                                  "type": "Identifier",
                                  "start": 4787,
                                  "end": 4795,
                                  "loc": {
                                    "start": {
                                      "line": 127,
                                      "column": 27
                                    },
                                    "end": {
                                      "line": 127,
                                      "column": 35
                                    }
                                  },
                                  "name": "callback"
                                }
                              }
                            }
                          }
                        ],
                        "kind": "let"
                      },
                      {
                        "type": "IfStatement",
                        "start": 4801,
                        "end": 4860,
                        "loc": {
                          "start": {
                            "line": 128,
                            "column": 4
                          },
                          "end": {
                            "line": 128,
                            "column": 63
                          }
                        },
                        "test": {
                          "type": "LogicalExpression",
                          "start": 4805,
                          "end": 4842,
                          "loc": {
                            "start": {
                              "line": 128,
                              "column": 8
                            },
                            "end": {
                              "line": 128,
                              "column": 45
                            }
                          },
                          "left": {
                            "type": "UnaryExpression",
                            "start": 4805,
                            "end": 4814,
                            "loc": {
                              "start": {
                                "line": 128,
                                "column": 8
                              },
                              "end": {
                                "line": 128,
                                "column": 17
                              }
                            },
                            "operator": "!",
                            "prefix": true,
                            "argument": {
                              "type": "Identifier",
                              "start": 4806,
                              "end": 4814,
                              "loc": {
                                "start": {
                                  "line": 128,
                                  "column": 9
                                },
                                "end": {
                                  "line": 128,
                                  "column": 17
                                }
                              },
                              "name": "callback"
                            }
                          },
                          "operator": "&&",
                          "right": {
                            "type": "BinaryExpression",
                            "start": 4818,
                            "end": 4842,
                            "loc": {
                              "start": {
                                "line": 128,
                                "column": 21
                              },
                              "end": {
                                "line": 128,
                                "column": 45
                              }
                            },
                            "left": {
                              "type": "UnaryExpression",
                              "start": 4818,
                              "end": 4829,
                              "loc": {
                                "start": {
                                  "line": 128,
                                  "column": 21
                                },
                                "end": {
                                  "line": 128,
                                  "column": 32
                                }
                              },
                              "operator": "typeof",
                              "prefix": true,
                              "argument": {
                                "type": "Identifier",
                                "start": 4825,
                                "end": 4829,
                                "loc": {
                                  "start": {
                                    "line": 128,
                                    "column": 28
                                  },
                                  "end": {
                                    "line": 128,
                                    "column": 32
                                  }
                                },
                                "name": "name"
                              }
                            },
                            "operator": "===",
                            "right": {
                              "type": "Literal",
                              "start": 4834,
                              "end": 4842,
                              "loc": {
                                "start": {
                                  "line": 128,
                                  "column": 37
                                },
                                "end": {
                                  "line": 128,
                                  "column": 45
                                }
                              },
                              "value": "object",
                              "rawValue": "object",
                              "raw": "\"object\""
                            }
                          }
                        },
                        "consequent": {
                          "type": "ExpressionStatement",
                          "start": 4844,
                          "end": 4860,
                          "loc": {
                            "start": {
                              "line": 128,
                              "column": 47
                            },
                            "end": {
                              "line": 128,
                              "column": 63
                            }
                          },
                          "expression": {
                            "type": "AssignmentExpression",
                            "start": 4844,
                            "end": 4859,
                            "loc": {
                              "start": {
                                "line": 128,
                                "column": 47
                              },
                              "end": {
                                "line": 128,
                                "column": 62
                              }
                            },
                            "operator": "=",
                            "left": {
                              "type": "Identifier",
                              "start": 4844,
                              "end": 4852,
                              "loc": {
                                "start": {
                                  "line": 128,
                                  "column": 47
                                },
                                "end": {
                                  "line": 128,
                                  "column": 55
                                }
                              },
                              "name": "callback"
                            },
                            "right": {
                              "type": "ThisExpression",
                              "start": 4855,
                              "end": 4859,
                              "loc": {
                                "start": {
                                  "line": 128,
                                  "column": 58
                                },
                                "end": {
                                  "line": 128,
                                  "column": 62
                                }
                              }
                            }
                          }
                        },
                        "alternate": null
                      },
                      {
                        "type": "IfStatement",
                        "start": 4865,
                        "end": 4914,
                        "loc": {
                          "start": {
                            "line": 129,
                            "column": 4
                          },
                          "end": {
                            "line": 129,
                            "column": 53
                          }
                        },
                        "test": {
                          "type": "Identifier",
                          "start": 4869,
                          "end": 4872,
                          "loc": {
                            "start": {
                              "line": 129,
                              "column": 8
                            },
                            "end": {
                              "line": 129,
                              "column": 11
                            }
                          },
                          "name": "obj"
                        },
                        "consequent": {
                          "type": "ExpressionStatement",
                          "start": 4874,
                          "end": 4914,
                          "loc": {
                            "start": {
                              "line": 129,
                              "column": 13
                            },
                            "end": {
                              "line": 129,
                              "column": 53
                            }
                          },
                          "expression": {
                            "type": "AssignmentExpression",
                            "start": 4874,
                            "end": 4913,
                            "loc": {
                              "start": {
                                "line": 129,
                                "column": 13
                              },
                              "end": {
                                "line": 129,
                                "column": 52
                              }
                            },
                            "operator": "=",
                            "left": {
                              "type": "MemberExpression",
                              "start": 4874,
                              "end": 4907,
                              "loc": {
                                "start": {
                                  "line": 129,
                                  "column": 13
                                },
                                "end": {
                                  "line": 129,
                                  "column": 46
                                }
                              },
                              "object": {
                                "type": "AssignmentExpression",
                                "start": 4875,
                                "end": 4891,
                                "loc": {
                                  "start": {
                                    "line": 129,
                                    "column": 14
                                  },
                                  "end": {
                                    "line": 129,
                                    "column": 30
                                  }
                                },
                                "operator": "=",
                                "left": {
                                  "type": "Identifier",
                                  "start": 4875,
                                  "end": 4886,
                                  "loc": {
                                    "start": {
                                      "line": 129,
                                      "column": 14
                                    },
                                    "end": {
                                      "line": 129,
                                      "column": 25
                                    }
                                  },
                                  "name": "listeningTo"
                                },
                                "right": {
                                  "type": "ObjectExpression",
                                  "start": 4889,
                                  "end": 4891,
                                  "loc": {
                                    "start": {
                                      "line": 129,
                                      "column": 28
                                    },
                                    "end": {
                                      "line": 129,
                                      "column": 30
                                    }
                                  },
                                  "properties": []
                                },
                                "parenthesizedExpression": true
                              },
                              "property": {
                                "type": "MemberExpression",
                                "start": 4893,
                                "end": 4906,
                                "loc": {
                                  "start": {
                                    "line": 129,
                                    "column": 32
                                  },
                                  "end": {
                                    "line": 129,
                                    "column": 45
                                  }
                                },
                                "object": {
                                  "type": "Identifier",
                                  "start": 4893,
                                  "end": 4896,
                                  "loc": {
                                    "start": {
                                      "line": 129,
                                      "column": 32
                                    },
                                    "end": {
                                      "line": 129,
                                      "column": 35
                                    }
                                  },
                                  "name": "obj"
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 4897,
                                  "end": 4906,
                                  "loc": {
                                    "start": {
                                      "line": 129,
                                      "column": 36
                                    },
                                    "end": {
                                      "line": 129,
                                      "column": 45
                                    }
                                  },
                                  "name": "_listenId"
                                },
                                "computed": false
                              },
                              "computed": true
                            },
                            "right": {
                              "type": "Identifier",
                              "start": 4910,
                              "end": 4913,
                              "loc": {
                                "start": {
                                  "line": 129,
                                  "column": 49
                                },
                                "end": {
                                  "line": 129,
                                  "column": 52
                                }
                              },
                              "name": "obj"
                            }
                          }
                        },
                        "alternate": null
                      },
                      {
                        "type": "ForInStatement",
                        "start": 4919,
                        "end": 5092,
                        "loc": {
                          "start": {
                            "line": 130,
                            "column": 4
                          },
                          "end": {
                            "line": 134,
                            "column": 5
                          }
                        },
                        "left": {
                          "type": "VariableDeclaration",
                          "start": 4924,
                          "end": 4930,
                          "loc": {
                            "start": {
                              "line": 130,
                              "column": 9
                            },
                            "end": {
                              "line": 130,
                              "column": 15
                            }
                          },
                          "declarations": [
                            {
                              "type": "VariableDeclarator",
                              "start": 4928,
                              "end": 4930,
                              "loc": {
                                "start": {
                                  "line": 130,
                                  "column": 13
                                },
                                "end": {
                                  "line": 130,
                                  "column": 15
                                }
                              },
                              "id": {
                                "type": "Identifier",
                                "start": 4928,
                                "end": 4930,
                                "loc": {
                                  "start": {
                                    "line": 130,
                                    "column": 13
                                  },
                                  "end": {
                                    "line": 130,
                                    "column": 15
                                  }
                                },
                                "name": "id"
                              },
                              "init": null
                            }
                          ],
                          "kind": "let"
                        },
                        "right": {
                          "type": "Identifier",
                          "start": 4934,
                          "end": 4945,
                          "loc": {
                            "start": {
                              "line": 130,
                              "column": 19
                            },
                            "end": {
                              "line": 130,
                              "column": 30
                            }
                          },
                          "name": "listeningTo"
                        },
                        "body": {
                          "type": "BlockStatement",
                          "start": 4947,
                          "end": 5092,
                          "loc": {
                            "start": {
                              "line": 130,
                              "column": 32
                            },
                            "end": {
                              "line": 134,
                              "column": 5
                            }
                          },
                          "body": [
                            {
                              "type": "ExpressionStatement",
                              "start": 4955,
                              "end": 4977,
                              "loc": {
                                "start": {
                                  "line": 131,
                                  "column": 6
                                },
                                "end": {
                                  "line": 131,
                                  "column": 28
                                }
                              },
                              "expression": {
                                "type": "AssignmentExpression",
                                "start": 4955,
                                "end": 4976,
                                "loc": {
                                  "start": {
                                    "line": 131,
                                    "column": 6
                                  },
                                  "end": {
                                    "line": 131,
                                    "column": 27
                                  }
                                },
                                "operator": "=",
                                "left": {
                                  "type": "Identifier",
                                  "start": 4955,
                                  "end": 4958,
                                  "loc": {
                                    "start": {
                                      "line": 131,
                                      "column": 6
                                    },
                                    "end": {
                                      "line": 131,
                                      "column": 9
                                    }
                                  },
                                  "name": "obj"
                                },
                                "right": {
                                  "type": "MemberExpression",
                                  "start": 4961,
                                  "end": 4976,
                                  "loc": {
                                    "start": {
                                      "line": 131,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 131,
                                      "column": 27
                                    }
                                  },
                                  "object": {
                                    "type": "Identifier",
                                    "start": 4961,
                                    "end": 4972,
                                    "loc": {
                                      "start": {
                                        "line": 131,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 131,
                                        "column": 23
                                      }
                                    },
                                    "name": "listeningTo"
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 4973,
                                    "end": 4975,
                                    "loc": {
                                      "start": {
                                        "line": 131,
                                        "column": 24
                                      },
                                      "end": {
                                        "line": 131,
                                        "column": 26
                                      }
                                    },
                                    "name": "id"
                                  },
                                  "computed": true
                                }
                              }
                            },
                            {
                              "type": "ExpressionStatement",
                              "start": 4984,
                              "end": 5014,
                              "loc": {
                                "start": {
                                  "line": 132,
                                  "column": 6
                                },
                                "end": {
                                  "line": 132,
                                  "column": 36
                                }
                              },
                              "expression": {
                                "type": "CallExpression",
                                "start": 4984,
                                "end": 5013,
                                "loc": {
                                  "start": {
                                    "line": 132,
                                    "column": 6
                                  },
                                  "end": {
                                    "line": 132,
                                    "column": 35
                                  }
                                },
                                "callee": {
                                  "type": "MemberExpression",
                                  "start": 4984,
                                  "end": 4991,
                                  "loc": {
                                    "start": {
                                      "line": 132,
                                      "column": 6
                                    },
                                    "end": {
                                      "line": 132,
                                      "column": 13
                                    }
                                  },
                                  "object": {
                                    "type": "Identifier",
                                    "start": 4984,
                                    "end": 4987,
                                    "loc": {
                                      "start": {
                                        "line": 132,
                                        "column": 6
                                      },
                                      "end": {
                                        "line": 132,
                                        "column": 9
                                      }
                                    },
                                    "name": "obj"
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 4988,
                                    "end": 4991,
                                    "loc": {
                                      "start": {
                                        "line": 132,
                                        "column": 10
                                      },
                                      "end": {
                                        "line": 132,
                                        "column": 13
                                      }
                                    },
                                    "name": "off"
                                  },
                                  "computed": false
                                },
                                "arguments": [
                                  {
                                    "type": "Identifier",
                                    "start": 4992,
                                    "end": 4996,
                                    "loc": {
                                      "start": {
                                        "line": 132,
                                        "column": 14
                                      },
                                      "end": {
                                        "line": 132,
                                        "column": 18
                                      }
                                    },
                                    "name": "name"
                                  },
                                  {
                                    "type": "Identifier",
                                    "start": 4998,
                                    "end": 5006,
                                    "loc": {
                                      "start": {
                                        "line": 132,
                                        "column": 20
                                      },
                                      "end": {
                                        "line": 132,
                                        "column": 28
                                      }
                                    },
                                    "name": "callback"
                                  },
                                  {
                                    "type": "ThisExpression",
                                    "start": 5008,
                                    "end": 5012,
                                    "loc": {
                                      "start": {
                                        "line": 132,
                                        "column": 30
                                      },
                                      "end": {
                                        "line": 132,
                                        "column": 34
                                      }
                                    }
                                  }
                                ]
                              }
                            },
                            {
                              "type": "IfStatement",
                              "start": 5021,
                              "end": 5086,
                              "loc": {
                                "start": {
                                  "line": 133,
                                  "column": 6
                                },
                                "end": {
                                  "line": 133,
                                  "column": 71
                                }
                              },
                              "test": {
                                "type": "LogicalExpression",
                                "start": 5025,
                                "end": 5055,
                                "loc": {
                                  "start": {
                                    "line": 133,
                                    "column": 10
                                  },
                                  "end": {
                                    "line": 133,
                                    "column": 40
                                  }
                                },
                                "left": {
                                  "type": "Identifier",
                                  "start": 5025,
                                  "end": 5031,
                                  "loc": {
                                    "start": {
                                      "line": 133,
                                      "column": 10
                                    },
                                    "end": {
                                      "line": 133,
                                      "column": 16
                                    }
                                  },
                                  "name": "remove"
                                },
                                "operator": "||",
                                "right": {
                                  "type": "CallExpression",
                                  "start": 5035,
                                  "end": 5055,
                                  "loc": {
                                    "start": {
                                      "line": 133,
                                      "column": 20
                                    },
                                    "end": {
                                      "line": 133,
                                      "column": 40
                                    }
                                  },
                                  "callee": {
                                    "type": "Identifier",
                                    "start": 5035,
                                    "end": 5042,
                                    "loc": {
                                      "start": {
                                        "line": 133,
                                        "column": 20
                                      },
                                      "end": {
                                        "line": 133,
                                        "column": 27
                                      }
                                    },
                                    "name": "isEmpty"
                                  },
                                  "arguments": [
                                    {
                                      "type": "MemberExpression",
                                      "start": 5043,
                                      "end": 5054,
                                      "loc": {
                                        "start": {
                                          "line": 133,
                                          "column": 28
                                        },
                                        "end": {
                                          "line": 133,
                                          "column": 39
                                        }
                                      },
                                      "object": {
                                        "type": "Identifier",
                                        "start": 5043,
                                        "end": 5046,
                                        "loc": {
                                          "start": {
                                            "line": 133,
                                            "column": 28
                                          },
                                          "end": {
                                            "line": 133,
                                            "column": 31
                                          }
                                        },
                                        "name": "obj"
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "start": 5047,
                                        "end": 5054,
                                        "loc": {
                                          "start": {
                                            "line": 133,
                                            "column": 32
                                          },
                                          "end": {
                                            "line": 133,
                                            "column": 39
                                          }
                                        },
                                        "name": "_events"
                                      },
                                      "computed": false
                                    }
                                  ]
                                }
                              },
                              "consequent": {
                                "type": "ExpressionStatement",
                                "start": 5057,
                                "end": 5086,
                                "loc": {
                                  "start": {
                                    "line": 133,
                                    "column": 42
                                  },
                                  "end": {
                                    "line": 133,
                                    "column": 71
                                  }
                                },
                                "expression": {
                                  "type": "UnaryExpression",
                                  "start": 5057,
                                  "end": 5085,
                                  "loc": {
                                    "start": {
                                      "line": 133,
                                      "column": 42
                                    },
                                    "end": {
                                      "line": 133,
                                      "column": 70
                                    }
                                  },
                                  "operator": "delete",
                                  "prefix": true,
                                  "argument": {
                                    "type": "MemberExpression",
                                    "start": 5064,
                                    "end": 5085,
                                    "loc": {
                                      "start": {
                                        "line": 133,
                                        "column": 49
                                      },
                                      "end": {
                                        "line": 133,
                                        "column": 70
                                      }
                                    },
                                    "object": {
                                      "type": "MemberExpression",
                                      "start": 5064,
                                      "end": 5081,
                                      "loc": {
                                        "start": {
                                          "line": 133,
                                          "column": 49
                                        },
                                        "end": {
                                          "line": 133,
                                          "column": 66
                                        }
                                      },
                                      "object": {
                                        "type": "ThisExpression",
                                        "start": 5064,
                                        "end": 5068,
                                        "loc": {
                                          "start": {
                                            "line": 133,
                                            "column": 49
                                          },
                                          "end": {
                                            "line": 133,
                                            "column": 53
                                          }
                                        }
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "start": 5069,
                                        "end": 5081,
                                        "loc": {
                                          "start": {
                                            "line": 133,
                                            "column": 54
                                          },
                                          "end": {
                                            "line": 133,
                                            "column": 66
                                          }
                                        },
                                        "name": "_listeningTo"
                                      },
                                      "computed": false
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 5082,
                                      "end": 5084,
                                      "loc": {
                                        "start": {
                                          "line": 133,
                                          "column": 67
                                        },
                                        "end": {
                                          "line": 133,
                                          "column": 69
                                        }
                                      },
                                      "name": "id"
                                    },
                                    "computed": true
                                  }
                                }
                              },
                              "alternate": null
                            }
                          ]
                        }
                      },
                      {
                        "type": "ReturnStatement",
                        "start": 5097,
                        "end": 5109,
                        "loc": {
                          "start": {
                            "line": 135,
                            "column": 4
                          },
                          "end": {
                            "line": 135,
                            "column": 16
                          }
                        },
                        "argument": {
                          "type": "ThisExpression",
                          "start": 5104,
                          "end": 5108,
                          "loc": {
                            "start": {
                              "line": 135,
                              "column": 11
                            },
                            "end": {
                              "line": 135,
                              "column": 15
                            }
                          }
                        }
                      }
                    ]
                  }
                },
                "kind": "init",
                "leadingComments": [
                  {
                    "type": "CommentLine",
                    "value": " Tell this object to stop listening to either specific events ... or",
                    "start": 4514,
                    "end": 4584,
                    "loc": {
                      "start": {
                        "line": 122,
                        "column": 2
                      },
                      "end": {
                        "line": 122,
                        "column": 72
                      }
                    },
                    "range": [
                      4514,
                      4584
                    ]
                  },
                  {
                    "type": "CommentLine",
                    "value": " to every object it's currently listening to.",
                    "start": 4587,
                    "end": 4634,
                    "loc": {
                      "start": {
                        "line": 123,
                        "column": 2
                      },
                      "end": {
                        "line": 123,
                        "column": 49
                      }
                    },
                    "range": [
                      4587,
                      4634
                    ]
                  }
                ]
              }
            ]
          }
        }
      ],
      "kind": "let",
      "name": "_",
      "leadingComments": [],
      "trailingComments": []
    },
    {
      "type": "VariableDeclaration",
      "start": 5118,
      "end": 5177,
      "loc": {
        "start": {
          "line": 139,
          "column": 0
        },
        "end": {
          "line": 139,
          "column": 59
        }
      },
      "declarations": [
        {
          "type": "VariableDeclarator",
          "start": 5122,
          "end": 5176,
          "loc": {
            "start": {
              "line": 139,
              "column": 4
            },
            "end": {
              "line": 139,
              "column": 58
            }
          },
          "id": {
            "type": "Identifier",
            "start": 5122,
            "end": 5135,
            "loc": {
              "start": {
                "line": 139,
                "column": 4
              },
              "end": {
                "line": 139,
                "column": 17
              }
            },
            "name": "listenMethods"
          },
          "init": {
            "type": "ObjectExpression",
            "start": 5138,
            "end": 5176,
            "loc": {
              "start": {
                "line": 139,
                "column": 20
              },
              "end": {
                "line": 139,
                "column": 58
              }
            },
            "properties": [
              {
                "type": "Property",
                "start": 5139,
                "end": 5153,
                "loc": {
                  "start": {
                    "line": 139,
                    "column": 21
                  },
                  "end": {
                    "line": 139,
                    "column": 35
                  }
                },
                "method": false,
                "shorthand": false,
                "computed": false,
                "key": {
                  "type": "Identifier",
                  "start": 5139,
                  "end": 5147,
                  "loc": {
                    "start": {
                      "line": 139,
                      "column": 21
                    },
                    "end": {
                      "line": 139,
                      "column": 29
                    }
                  },
                  "name": "listenTo"
                },
                "value": {
                  "type": "Literal",
                  "start": 5149,
                  "end": 5153,
                  "loc": {
                    "start": {
                      "line": 139,
                      "column": 31
                    },
                    "end": {
                      "line": 139,
                      "column": 35
                    }
                  },
                  "value": "on",
                  "rawValue": "on",
                  "raw": "\"on\""
                },
                "kind": "init"
              },
              {
                "type": "Property",
                "start": 5155,
                "end": 5175,
                "loc": {
                  "start": {
                    "line": 139,
                    "column": 37
                  },
                  "end": {
                    "line": 139,
                    "column": 57
                  }
                },
                "method": false,
                "shorthand": false,
                "computed": false,
                "key": {
                  "type": "Identifier",
                  "start": 5155,
                  "end": 5167,
                  "loc": {
                    "start": {
                      "line": 139,
                      "column": 37
                    },
                    "end": {
                      "line": 139,
                      "column": 49
                    }
                  },
                  "name": "listenToOnce"
                },
                "value": {
                  "type": "Literal",
                  "start": 5169,
                  "end": 5175,
                  "loc": {
                    "start": {
                      "line": 139,
                      "column": 51
                    },
                    "end": {
                      "line": 139,
                      "column": 57
                    }
                  },
                  "value": "once",
                  "rawValue": "once",
                  "raw": "\"once\""
                },
                "kind": "init"
              }
            ]
          }
        }
      ],
      "kind": "let",
      "trailingComments": [
        {
          "type": "CommentLine",
          "value": " Inversion-of-control versions of `on` and `once`. Tell *this* object to",
          "start": 5179,
          "end": 5253,
          "loc": {
            "start": {
              "line": 141,
              "column": 0
            },
            "end": {
              "line": 141,
              "column": 74
            }
          },
          "range": [
            5179,
            5253
          ]
        },
        {
          "type": "CommentLine",
          "value": " listen to an event in another object ... keeping track of what it's",
          "start": 5254,
          "end": 5324,
          "loc": {
            "start": {
              "line": 142,
              "column": 0
            },
            "end": {
              "line": 142,
              "column": 70
            }
          },
          "range": [
            5254,
            5324
          ]
        },
        {
          "type": "CommentLine",
          "value": " listening to.",
          "start": 5325,
          "end": 5341,
          "loc": {
            "start": {
              "line": 143,
              "column": 0
            },
            "end": {
              "line": 143,
              "column": 16
            }
          },
          "range": [
            5325,
            5341
          ]
        }
      ]
    },
    {
      "type": "ExpressionStatement",
      "start": 5342,
      "end": 5743,
      "loc": {
        "start": {
          "line": 144,
          "column": 0
        },
        "end": {
          "line": 153,
          "column": 3
        }
      },
      "expression": {
        "type": "CallExpression",
        "start": 5342,
        "end": 5742,
        "loc": {
          "start": {
            "line": 144,
            "column": 0
          },
          "end": {
            "line": 153,
            "column": 2
          }
        },
        "callee": {
          "type": "Identifier",
          "start": 5342,
          "end": 5346,
          "loc": {
            "start": {
              "line": 144,
              "column": 0
            },
            "end": {
              "line": 144,
              "column": 4
            }
          },
          "name": "each",
          "leadingComments": null
        },
        "arguments": [
          {
            "type": "Identifier",
            "start": 5347,
            "end": 5360,
            "loc": {
              "start": {
                "line": 144,
                "column": 5
              },
              "end": {
                "line": 144,
                "column": 18
              }
            },
            "name": "listenMethods"
          },
          {
            "type": "FunctionExpression",
            "start": 5362,
            "end": 5741,
            "loc": {
              "start": {
                "line": 144,
                "column": 20
              },
              "end": {
                "line": 153,
                "column": 1
              }
            },
            "id": null,
            "generator": false,
            "expression": false,
            "async": false,
            "params": [
              {
                "type": "Identifier",
                "start": 5371,
                "end": 5385,
                "loc": {
                  "start": {
                    "line": 144,
                    "column": 29
                  },
                  "end": {
                    "line": 144,
                    "column": 43
                  }
                },
                "name": "implementation"
              },
              {
                "type": "Identifier",
                "start": 5387,
                "end": 5393,
                "loc": {
                  "start": {
                    "line": 144,
                    "column": 45
                  },
                  "end": {
                    "line": 144,
                    "column": 51
                  }
                },
                "name": "method"
              }
            ],
            "body": {
              "type": "BlockStatement",
              "start": 5395,
              "end": 5741,
              "loc": {
                "start": {
                  "line": 144,
                  "column": 53
                },
                "end": {
                  "line": 153,
                  "column": 1
                }
              },
              "body": [
                {
                  "type": "ExpressionStatement",
                  "start": 5399,
                  "end": 5739,
                  "loc": {
                    "start": {
                      "line": 145,
                      "column": 2
                    },
                    "end": {
                      "line": 152,
                      "column": 4
                    }
                  },
                  "expression": {
                    "type": "AssignmentExpression",
                    "start": 5399,
                    "end": 5738,
                    "loc": {
                      "start": {
                        "line": 145,
                        "column": 2
                      },
                      "end": {
                        "line": 152,
                        "column": 3
                      }
                    },
                    "operator": "=",
                    "left": {
                      "type": "MemberExpression",
                      "start": 5399,
                      "end": 5413,
                      "loc": {
                        "start": {
                          "line": 145,
                          "column": 2
                        },
                        "end": {
                          "line": 145,
                          "column": 16
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 5399,
                        "end": 5405,
                        "loc": {
                          "start": {
                            "line": 145,
                            "column": 2
                          },
                          "end": {
                            "line": 145,
                            "column": 8
                          }
                        },
                        "name": "Events"
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 5406,
                        "end": 5412,
                        "loc": {
                          "start": {
                            "line": 145,
                            "column": 9
                          },
                          "end": {
                            "line": 145,
                            "column": 15
                          }
                        },
                        "name": "method"
                      },
                      "computed": true
                    },
                    "right": {
                      "type": "FunctionExpression",
                      "start": 5416,
                      "end": 5738,
                      "loc": {
                        "start": {
                          "line": 145,
                          "column": 19
                        },
                        "end": {
                          "line": 152,
                          "column": 3
                        }
                      },
                      "id": null,
                      "generator": false,
                      "expression": false,
                      "async": false,
                      "params": [
                        {
                          "type": "Identifier",
                          "start": 5425,
                          "end": 5428,
                          "loc": {
                            "start": {
                              "line": 145,
                              "column": 28
                            },
                            "end": {
                              "line": 145,
                              "column": 31
                            }
                          },
                          "name": "obj"
                        },
                        {
                          "type": "Identifier",
                          "start": 5430,
                          "end": 5434,
                          "loc": {
                            "start": {
                              "line": 145,
                              "column": 33
                            },
                            "end": {
                              "line": 145,
                              "column": 37
                            }
                          },
                          "name": "name"
                        },
                        {
                          "type": "Identifier",
                          "start": 5436,
                          "end": 5444,
                          "loc": {
                            "start": {
                              "line": 145,
                              "column": 39
                            },
                            "end": {
                              "line": 145,
                              "column": 47
                            }
                          },
                          "name": "callback"
                        }
                      ],
                      "body": {
                        "type": "BlockStatement",
                        "start": 5446,
                        "end": 5738,
                        "loc": {
                          "start": {
                            "line": 145,
                            "column": 49
                          },
                          "end": {
                            "line": 152,
                            "column": 3
                          }
                        },
                        "body": [
                          {
                            "type": "VariableDeclaration",
                            "start": 5452,
                            "end": 5516,
                            "loc": {
                              "start": {
                                "line": 146,
                                "column": 4
                              },
                              "end": {
                                "line": 146,
                                "column": 68
                              }
                            },
                            "declarations": [
                              {
                                "type": "VariableDeclarator",
                                "start": 5456,
                                "end": 5515,
                                "loc": {
                                  "start": {
                                    "line": 146,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 146,
                                    "column": 67
                                  }
                                },
                                "id": {
                                  "type": "Identifier",
                                  "start": 5456,
                                  "end": 5467,
                                  "loc": {
                                    "start": {
                                      "line": 146,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 146,
                                      "column": 19
                                    }
                                  },
                                  "name": "listeningTo"
                                },
                                "init": {
                                  "type": "LogicalExpression",
                                  "start": 5470,
                                  "end": 5515,
                                  "loc": {
                                    "start": {
                                      "line": 146,
                                      "column": 22
                                    },
                                    "end": {
                                      "line": 146,
                                      "column": 67
                                    }
                                  },
                                  "left": {
                                    "type": "MemberExpression",
                                    "start": 5470,
                                    "end": 5487,
                                    "loc": {
                                      "start": {
                                        "line": 146,
                                        "column": 22
                                      },
                                      "end": {
                                        "line": 146,
                                        "column": 39
                                      }
                                    },
                                    "object": {
                                      "type": "ThisExpression",
                                      "start": 5470,
                                      "end": 5474,
                                      "loc": {
                                        "start": {
                                          "line": 146,
                                          "column": 22
                                        },
                                        "end": {
                                          "line": 146,
                                          "column": 26
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 5475,
                                      "end": 5487,
                                      "loc": {
                                        "start": {
                                          "line": 146,
                                          "column": 27
                                        },
                                        "end": {
                                          "line": 146,
                                          "column": 39
                                        }
                                      },
                                      "name": "_listeningTo"
                                    },
                                    "computed": false
                                  },
                                  "operator": "||",
                                  "right": {
                                    "type": "AssignmentExpression",
                                    "start": 5492,
                                    "end": 5514,
                                    "loc": {
                                      "start": {
                                        "line": 146,
                                        "column": 44
                                      },
                                      "end": {
                                        "line": 146,
                                        "column": 66
                                      }
                                    },
                                    "operator": "=",
                                    "left": {
                                      "type": "MemberExpression",
                                      "start": 5492,
                                      "end": 5509,
                                      "loc": {
                                        "start": {
                                          "line": 146,
                                          "column": 44
                                        },
                                        "end": {
                                          "line": 146,
                                          "column": 61
                                        }
                                      },
                                      "object": {
                                        "type": "ThisExpression",
                                        "start": 5492,
                                        "end": 5496,
                                        "loc": {
                                          "start": {
                                            "line": 146,
                                            "column": 44
                                          },
                                          "end": {
                                            "line": 146,
                                            "column": 48
                                          }
                                        }
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "start": 5497,
                                        "end": 5509,
                                        "loc": {
                                          "start": {
                                            "line": 146,
                                            "column": 49
                                          },
                                          "end": {
                                            "line": 146,
                                            "column": 61
                                          }
                                        },
                                        "name": "_listeningTo"
                                      },
                                      "computed": false
                                    },
                                    "right": {
                                      "type": "ObjectExpression",
                                      "start": 5512,
                                      "end": 5514,
                                      "loc": {
                                        "start": {
                                          "line": 146,
                                          "column": 64
                                        },
                                        "end": {
                                          "line": 146,
                                          "column": 66
                                        }
                                      },
                                      "properties": []
                                    },
                                    "parenthesizedExpression": true
                                  }
                                }
                              }
                            ],
                            "kind": "let"
                          },
                          {
                            "type": "VariableDeclaration",
                            "start": 5521,
                            "end": 5579,
                            "loc": {
                              "start": {
                                "line": 147,
                                "column": 4
                              },
                              "end": {
                                "line": 147,
                                "column": 62
                              }
                            },
                            "declarations": [
                              {
                                "type": "VariableDeclarator",
                                "start": 5525,
                                "end": 5578,
                                "loc": {
                                  "start": {
                                    "line": 147,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 147,
                                    "column": 61
                                  }
                                },
                                "id": {
                                  "type": "Identifier",
                                  "start": 5525,
                                  "end": 5527,
                                  "loc": {
                                    "start": {
                                      "line": 147,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 147,
                                      "column": 10
                                    }
                                  },
                                  "name": "id"
                                },
                                "init": {
                                  "type": "LogicalExpression",
                                  "start": 5530,
                                  "end": 5578,
                                  "loc": {
                                    "start": {
                                      "line": 147,
                                      "column": 13
                                    },
                                    "end": {
                                      "line": 147,
                                      "column": 61
                                    }
                                  },
                                  "left": {
                                    "type": "MemberExpression",
                                    "start": 5530,
                                    "end": 5543,
                                    "loc": {
                                      "start": {
                                        "line": 147,
                                        "column": 13
                                      },
                                      "end": {
                                        "line": 147,
                                        "column": 26
                                      }
                                    },
                                    "object": {
                                      "type": "Identifier",
                                      "start": 5530,
                                      "end": 5533,
                                      "loc": {
                                        "start": {
                                          "line": 147,
                                          "column": 13
                                        },
                                        "end": {
                                          "line": 147,
                                          "column": 16
                                        }
                                      },
                                      "name": "obj"
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 5534,
                                      "end": 5543,
                                      "loc": {
                                        "start": {
                                          "line": 147,
                                          "column": 17
                                        },
                                        "end": {
                                          "line": 147,
                                          "column": 26
                                        }
                                      },
                                      "name": "_listenId"
                                    },
                                    "computed": false
                                  },
                                  "operator": "||",
                                  "right": {
                                    "type": "AssignmentExpression",
                                    "start": 5548,
                                    "end": 5577,
                                    "loc": {
                                      "start": {
                                        "line": 147,
                                        "column": 31
                                      },
                                      "end": {
                                        "line": 147,
                                        "column": 60
                                      }
                                    },
                                    "operator": "=",
                                    "left": {
                                      "type": "MemberExpression",
                                      "start": 5548,
                                      "end": 5561,
                                      "loc": {
                                        "start": {
                                          "line": 147,
                                          "column": 31
                                        },
                                        "end": {
                                          "line": 147,
                                          "column": 44
                                        }
                                      },
                                      "object": {
                                        "type": "Identifier",
                                        "start": 5548,
                                        "end": 5551,
                                        "loc": {
                                          "start": {
                                            "line": 147,
                                            "column": 31
                                          },
                                          "end": {
                                            "line": 147,
                                            "column": 34
                                          }
                                        },
                                        "name": "obj"
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "start": 5552,
                                        "end": 5561,
                                        "loc": {
                                          "start": {
                                            "line": 147,
                                            "column": 35
                                          },
                                          "end": {
                                            "line": 147,
                                            "column": 44
                                          }
                                        },
                                        "name": "_listenId"
                                      },
                                      "computed": false
                                    },
                                    "right": {
                                      "type": "CallExpression",
                                      "start": 5564,
                                      "end": 5577,
                                      "loc": {
                                        "start": {
                                          "line": 147,
                                          "column": 47
                                        },
                                        "end": {
                                          "line": 147,
                                          "column": 60
                                        }
                                      },
                                      "callee": {
                                        "type": "Identifier",
                                        "start": 5564,
                                        "end": 5572,
                                        "loc": {
                                          "start": {
                                            "line": 147,
                                            "column": 47
                                          },
                                          "end": {
                                            "line": 147,
                                            "column": 55
                                          }
                                        },
                                        "name": "uniqueId"
                                      },
                                      "arguments": [
                                        {
                                          "type": "Literal",
                                          "start": 5573,
                                          "end": 5576,
                                          "loc": {
                                            "start": {
                                              "line": 147,
                                              "column": 56
                                            },
                                            "end": {
                                              "line": 147,
                                              "column": 59
                                            }
                                          },
                                          "value": "l",
                                          "rawValue": "l",
                                          "raw": "\"l\""
                                        }
                                      ]
                                    },
                                    "parenthesizedExpression": true
                                  }
                                }
                              }
                            ],
                            "kind": "let"
                          },
                          {
                            "type": "ExpressionStatement",
                            "start": 5584,
                            "end": 5606,
                            "loc": {
                              "start": {
                                "line": 148,
                                "column": 4
                              },
                              "end": {
                                "line": 148,
                                "column": 26
                              }
                            },
                            "expression": {
                              "type": "AssignmentExpression",
                              "start": 5584,
                              "end": 5605,
                              "loc": {
                                "start": {
                                  "line": 148,
                                  "column": 4
                                },
                                "end": {
                                  "line": 148,
                                  "column": 25
                                }
                              },
                              "operator": "=",
                              "left": {
                                "type": "MemberExpression",
                                "start": 5584,
                                "end": 5599,
                                "loc": {
                                  "start": {
                                    "line": 148,
                                    "column": 4
                                  },
                                  "end": {
                                    "line": 148,
                                    "column": 19
                                  }
                                },
                                "object": {
                                  "type": "Identifier",
                                  "start": 5584,
                                  "end": 5595,
                                  "loc": {
                                    "start": {
                                      "line": 148,
                                      "column": 4
                                    },
                                    "end": {
                                      "line": 148,
                                      "column": 15
                                    }
                                  },
                                  "name": "listeningTo"
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 5596,
                                  "end": 5598,
                                  "loc": {
                                    "start": {
                                      "line": 148,
                                      "column": 16
                                    },
                                    "end": {
                                      "line": 148,
                                      "column": 18
                                    }
                                  },
                                  "name": "id"
                                },
                                "computed": true
                              },
                              "right": {
                                "type": "Identifier",
                                "start": 5602,
                                "end": 5605,
                                "loc": {
                                  "start": {
                                    "line": 148,
                                    "column": 22
                                  },
                                  "end": {
                                    "line": 148,
                                    "column": 25
                                  }
                                },
                                "name": "obj"
                              }
                            }
                          },
                          {
                            "type": "IfStatement",
                            "start": 5611,
                            "end": 5670,
                            "loc": {
                              "start": {
                                "line": 149,
                                "column": 4
                              },
                              "end": {
                                "line": 149,
                                "column": 63
                              }
                            },
                            "test": {
                              "type": "LogicalExpression",
                              "start": 5615,
                              "end": 5652,
                              "loc": {
                                "start": {
                                  "line": 149,
                                  "column": 8
                                },
                                "end": {
                                  "line": 149,
                                  "column": 45
                                }
                              },
                              "left": {
                                "type": "UnaryExpression",
                                "start": 5615,
                                "end": 5624,
                                "loc": {
                                  "start": {
                                    "line": 149,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 149,
                                    "column": 17
                                  }
                                },
                                "operator": "!",
                                "prefix": true,
                                "argument": {
                                  "type": "Identifier",
                                  "start": 5616,
                                  "end": 5624,
                                  "loc": {
                                    "start": {
                                      "line": 149,
                                      "column": 9
                                    },
                                    "end": {
                                      "line": 149,
                                      "column": 17
                                    }
                                  },
                                  "name": "callback"
                                }
                              },
                              "operator": "&&",
                              "right": {
                                "type": "BinaryExpression",
                                "start": 5628,
                                "end": 5652,
                                "loc": {
                                  "start": {
                                    "line": 149,
                                    "column": 21
                                  },
                                  "end": {
                                    "line": 149,
                                    "column": 45
                                  }
                                },
                                "left": {
                                  "type": "UnaryExpression",
                                  "start": 5628,
                                  "end": 5639,
                                  "loc": {
                                    "start": {
                                      "line": 149,
                                      "column": 21
                                    },
                                    "end": {
                                      "line": 149,
                                      "column": 32
                                    }
                                  },
                                  "operator": "typeof",
                                  "prefix": true,
                                  "argument": {
                                    "type": "Identifier",
                                    "start": 5635,
                                    "end": 5639,
                                    "loc": {
                                      "start": {
                                        "line": 149,
                                        "column": 28
                                      },
                                      "end": {
                                        "line": 149,
                                        "column": 32
                                      }
                                    },
                                    "name": "name"
                                  }
                                },
                                "operator": "===",
                                "right": {
                                  "type": "Literal",
                                  "start": 5644,
                                  "end": 5652,
                                  "loc": {
                                    "start": {
                                      "line": 149,
                                      "column": 37
                                    },
                                    "end": {
                                      "line": 149,
                                      "column": 45
                                    }
                                  },
                                  "value": "object",
                                  "rawValue": "object",
                                  "raw": "\"object\""
                                }
                              }
                            },
                            "consequent": {
                              "type": "ExpressionStatement",
                              "start": 5654,
                              "end": 5670,
                              "loc": {
                                "start": {
                                  "line": 149,
                                  "column": 47
                                },
                                "end": {
                                  "line": 149,
                                  "column": 63
                                }
                              },
                              "expression": {
                                "type": "AssignmentExpression",
                                "start": 5654,
                                "end": 5669,
                                "loc": {
                                  "start": {
                                    "line": 149,
                                    "column": 47
                                  },
                                  "end": {
                                    "line": 149,
                                    "column": 62
                                  }
                                },
                                "operator": "=",
                                "left": {
                                  "type": "Identifier",
                                  "start": 5654,
                                  "end": 5662,
                                  "loc": {
                                    "start": {
                                      "line": 149,
                                      "column": 47
                                    },
                                    "end": {
                                      "line": 149,
                                      "column": 55
                                    }
                                  },
                                  "name": "callback"
                                },
                                "right": {
                                  "type": "ThisExpression",
                                  "start": 5665,
                                  "end": 5669,
                                  "loc": {
                                    "start": {
                                      "line": 149,
                                      "column": 58
                                    },
                                    "end": {
                                      "line": 149,
                                      "column": 62
                                    }
                                  }
                                }
                              }
                            },
                            "alternate": null
                          },
                          {
                            "type": "ExpressionStatement",
                            "start": 5675,
                            "end": 5717,
                            "loc": {
                              "start": {
                                "line": 150,
                                "column": 4
                              },
                              "end": {
                                "line": 150,
                                "column": 46
                              }
                            },
                            "expression": {
                              "type": "CallExpression",
                              "start": 5675,
                              "end": 5716,
                              "loc": {
                                "start": {
                                  "line": 150,
                                  "column": 4
                                },
                                "end": {
                                  "line": 150,
                                  "column": 45
                                }
                              },
                              "callee": {
                                "type": "MemberExpression",
                                "start": 5675,
                                "end": 5694,
                                "loc": {
                                  "start": {
                                    "line": 150,
                                    "column": 4
                                  },
                                  "end": {
                                    "line": 150,
                                    "column": 23
                                  }
                                },
                                "object": {
                                  "type": "Identifier",
                                  "start": 5675,
                                  "end": 5678,
                                  "loc": {
                                    "start": {
                                      "line": 150,
                                      "column": 4
                                    },
                                    "end": {
                                      "line": 150,
                                      "column": 7
                                    }
                                  },
                                  "name": "obj"
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 5679,
                                  "end": 5693,
                                  "loc": {
                                    "start": {
                                      "line": 150,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 150,
                                      "column": 22
                                    }
                                  },
                                  "name": "implementation"
                                },
                                "computed": true
                              },
                              "arguments": [
                                {
                                  "type": "Identifier",
                                  "start": 5695,
                                  "end": 5699,
                                  "loc": {
                                    "start": {
                                      "line": 150,
                                      "column": 24
                                    },
                                    "end": {
                                      "line": 150,
                                      "column": 28
                                    }
                                  },
                                  "name": "name"
                                },
                                {
                                  "type": "Identifier",
                                  "start": 5701,
                                  "end": 5709,
                                  "loc": {
                                    "start": {
                                      "line": 150,
                                      "column": 30
                                    },
                                    "end": {
                                      "line": 150,
                                      "column": 38
                                    }
                                  },
                                  "name": "callback"
                                },
                                {
                                  "type": "ThisExpression",
                                  "start": 5711,
                                  "end": 5715,
                                  "loc": {
                                    "start": {
                                      "line": 150,
                                      "column": 40
                                    },
                                    "end": {
                                      "line": 150,
                                      "column": 44
                                    }
                                  }
                                }
                              ]
                            }
                          },
                          {
                            "type": "ReturnStatement",
                            "start": 5722,
                            "end": 5734,
                            "loc": {
                              "start": {
                                "line": 151,
                                "column": 4
                              },
                              "end": {
                                "line": 151,
                                "column": 16
                              }
                            },
                            "argument": {
                              "type": "ThisExpression",
                              "start": 5729,
                              "end": 5733,
                              "loc": {
                                "start": {
                                  "line": 151,
                                  "column": 11
                                },
                                "end": {
                                  "line": 151,
                                  "column": 15
                                }
                              }
                            }
                          }
                        ]
                      }
                    }
                  }
                }
              ]
            }
          }
        ],
        "leadingComments": null
      },
      "leadingComments": [
        {
          "type": "CommentLine",
          "value": " Inversion-of-control versions of `on` and `once`. Tell *this* object to",
          "start": 5179,
          "end": 5253,
          "loc": {
            "start": {
              "line": 141,
              "column": 0
            },
            "end": {
              "line": 141,
              "column": 74
            }
          },
          "range": [
            5179,
            5253
          ]
        },
        {
          "type": "CommentLine",
          "value": " listen to an event in another object ... keeping track of what it's",
          "start": 5254,
          "end": 5324,
          "loc": {
            "start": {
              "line": 142,
              "column": 0
            },
            "end": {
              "line": 142,
              "column": 70
            }
          },
          "range": [
            5254,
            5324
          ]
        },
        {
          "type": "CommentLine",
          "value": " listening to.",
          "start": 5325,
          "end": 5341,
          "loc": {
            "start": {
              "line": 143,
              "column": 0
            },
            "end": {
              "line": 143,
              "column": 16
            }
          },
          "range": [
            5325,
            5341
          ]
        }
      ],
      "trailingComments": [
        {
          "type": "CommentLine",
          "value": " Aliases for backwards compatibility.",
          "start": 5745,
          "end": 5784,
          "loc": {
            "start": {
              "line": 155,
              "column": 0
            },
            "end": {
              "line": 155,
              "column": 39
            }
          },
          "range": [
            5745,
            5784
          ]
        }
      ]
    },
    {
      "type": "ExpressionStatement",
      "start": 5785,
      "end": 5811,
      "loc": {
        "start": {
          "line": 156,
          "column": 0
        },
        "end": {
          "line": 156,
          "column": 26
        }
      },
      "expression": {
        "type": "AssignmentExpression",
        "start": 5785,
        "end": 5810,
        "loc": {
          "start": {
            "line": 156,
            "column": 0
          },
          "end": {
            "line": 156,
            "column": 25
          }
        },
        "operator": "=",
        "left": {
          "type": "MemberExpression",
          "start": 5785,
          "end": 5796,
          "loc": {
            "start": {
              "line": 156,
              "column": 0
            },
            "end": {
              "line": 156,
              "column": 11
            }
          },
          "object": {
            "type": "Identifier",
            "start": 5785,
            "end": 5791,
            "loc": {
              "start": {
                "line": 156,
                "column": 0
              },
              "end": {
                "line": 156,
                "column": 6
              }
            },
            "name": "Events",
            "leadingComments": null
          },
          "property": {
            "type": "Identifier",
            "start": 5792,
            "end": 5796,
            "loc": {
              "start": {
                "line": 156,
                "column": 7
              },
              "end": {
                "line": 156,
                "column": 11
              }
            },
            "name": "bind"
          },
          "computed": false,
          "leadingComments": null
        },
        "right": {
          "type": "MemberExpression",
          "start": 5801,
          "end": 5810,
          "loc": {
            "start": {
              "line": 156,
              "column": 16
            },
            "end": {
              "line": 156,
              "column": 25
            }
          },
          "object": {
            "type": "Identifier",
            "start": 5801,
            "end": 5807,
            "loc": {
              "start": {
                "line": 156,
                "column": 16
              },
              "end": {
                "line": 156,
                "column": 22
              }
            },
            "name": "Events"
          },
          "property": {
            "type": "Identifier",
            "start": 5808,
            "end": 5810,
            "loc": {
              "start": {
                "line": 156,
                "column": 23
              },
              "end": {
                "line": 156,
                "column": 25
              }
            },
            "name": "on"
          },
          "computed": false
        },
        "leadingComments": null
      },
      "leadingComments": [
        {
          "type": "CommentLine",
          "value": " Aliases for backwards compatibility.",
          "start": 5745,
          "end": 5784,
          "loc": {
            "start": {
              "line": 155,
              "column": 0
            },
            "end": {
              "line": 155,
              "column": 39
            }
          },
          "range": [
            5745,
            5784
          ]
        }
      ]
    },
    {
      "type": "ExpressionStatement",
      "start": 5812,
      "end": 5839,
      "loc": {
        "start": {
          "line": 157,
          "column": 0
        },
        "end": {
          "line": 157,
          "column": 27
        }
      },
      "expression": {
        "type": "AssignmentExpression",
        "start": 5812,
        "end": 5838,
        "loc": {
          "start": {
            "line": 157,
            "column": 0
          },
          "end": {
            "line": 157,
            "column": 26
          }
        },
        "operator": "=",
        "left": {
          "type": "MemberExpression",
          "start": 5812,
          "end": 5825,
          "loc": {
            "start": {
              "line": 157,
              "column": 0
            },
            "end": {
              "line": 157,
              "column": 13
            }
          },
          "object": {
            "type": "Identifier",
            "start": 5812,
            "end": 5818,
            "loc": {
              "start": {
                "line": 157,
                "column": 0
              },
              "end": {
                "line": 157,
                "column": 6
              }
            },
            "name": "Events"
          },
          "property": {
            "type": "Identifier",
            "start": 5819,
            "end": 5825,
            "loc": {
              "start": {
                "line": 157,
                "column": 7
              },
              "end": {
                "line": 157,
                "column": 13
              }
            },
            "name": "unbind"
          },
          "computed": false
        },
        "right": {
          "type": "MemberExpression",
          "start": 5828,
          "end": 5838,
          "loc": {
            "start": {
              "line": 157,
              "column": 16
            },
            "end": {
              "line": 157,
              "column": 26
            }
          },
          "object": {
            "type": "Identifier",
            "start": 5828,
            "end": 5834,
            "loc": {
              "start": {
                "line": 157,
                "column": 16
              },
              "end": {
                "line": 157,
                "column": 22
              }
            },
            "name": "Events"
          },
          "property": {
            "type": "Identifier",
            "start": 5835,
            "end": 5838,
            "loc": {
              "start": {
                "line": 157,
                "column": 23
              },
              "end": {
                "line": 157,
                "column": 26
              }
            },
            "name": "off"
          },
          "computed": false
        }
      }
    },
    {
      "type": "Identifier",
      "start": 5841,
      "end": 5863,
      "loc": {
        "start": {
          "line": 159,
          "column": 0
        },
        "end": {
          "line": 159,
          "column": 22
        }
      },
      "declaration": {
        "type": "Identifier",
        "start": 5856,
        "end": 5862,
        "loc": {
          "start": {
            "line": 159,
            "column": 15
          },
          "end": {
            "line": 159,
            "column": 21
          }
        },
        "name": "Events"
      },
      "name": "_",
      "leadingComments": [],
      "trailingComments": []
    },
    {
      "type": "ExportDefaultDeclaration",
      "start": 5841,
      "end": 5863,
      "loc": {
        "start": {
          "line": 159,
          "column": 0
        },
        "end": {
          "line": 159,
          "column": 22
        }
      },
      "declaration": {
        "type": "VariableDeclaration",
        "start": 1785,
        "end": 5116,
        "loc": {
          "start": {
            "line": 51,
            "column": 0
          },
          "end": {
            "line": 137,
            "column": 2
          }
        },
        "declarations": [
          {
            "type": "VariableDeclarator",
            "start": 1789,
            "end": 5115,
            "loc": {
              "start": {
                "line": 51,
                "column": 4
              },
              "end": {
                "line": 137,
                "column": 1
              }
            },
            "id": {
              "type": "Identifier",
              "start": 1789,
              "end": 1795,
              "loc": {
                "start": {
                  "line": 51,
                  "column": 4
                },
                "end": {
                  "line": 51,
                  "column": 10
                }
              },
              "name": "Events"
            },
            "init": {
              "type": "ObjectExpression",
              "start": 1798,
              "end": 5115,
              "loc": {
                "start": {
                  "line": 51,
                  "column": 13
                },
                "end": {
                  "line": 137,
                  "column": 1
                }
              },
              "properties": [
                {
                  "type": "Property",
                  "start": 1912,
                  "end": 2243,
                  "loc": {
                    "start": {
                      "line": 54,
                      "column": 2
                    },
                    "end": {
                      "line": 60,
                      "column": 3
                    }
                  },
                  "method": false,
                  "shorthand": false,
                  "computed": false,
                  "key": {
                    "type": "Identifier",
                    "start": 1912,
                    "end": 1914,
                    "loc": {
                      "start": {
                        "line": 54,
                        "column": 2
                      },
                      "end": {
                        "line": 54,
                        "column": 4
                      }
                    },
                    "name": "on",
                    "leadingComments": null
                  },
                  "value": {
                    "type": "FunctionExpression",
                    "start": 1916,
                    "end": 2243,
                    "loc": {
                      "start": {
                        "line": 54,
                        "column": 6
                      },
                      "end": {
                        "line": 60,
                        "column": 3
                      }
                    },
                    "id": null,
                    "generator": false,
                    "expression": false,
                    "async": false,
                    "params": [
                      {
                        "type": "Identifier",
                        "start": 1925,
                        "end": 1929,
                        "loc": {
                          "start": {
                            "line": 54,
                            "column": 15
                          },
                          "end": {
                            "line": 54,
                            "column": 19
                          }
                        },
                        "name": "name"
                      },
                      {
                        "type": "Identifier",
                        "start": 1931,
                        "end": 1939,
                        "loc": {
                          "start": {
                            "line": 54,
                            "column": 21
                          },
                          "end": {
                            "line": 54,
                            "column": 29
                          }
                        },
                        "name": "callback"
                      },
                      {
                        "type": "Identifier",
                        "start": 1941,
                        "end": 1948,
                        "loc": {
                          "start": {
                            "line": 54,
                            "column": 31
                          },
                          "end": {
                            "line": 54,
                            "column": 38
                          }
                        },
                        "name": "context"
                      }
                    ],
                    "body": {
                      "type": "BlockStatement",
                      "start": 1950,
                      "end": 2243,
                      "loc": {
                        "start": {
                          "line": 54,
                          "column": 40
                        },
                        "end": {
                          "line": 60,
                          "column": 3
                        }
                      },
                      "body": [
                        {
                          "type": "IfStatement",
                          "start": 1956,
                          "end": 2036,
                          "loc": {
                            "start": {
                              "line": 55,
                              "column": 4
                            },
                            "end": {
                              "line": 55,
                              "column": 84
                            }
                          },
                          "test": {
                            "type": "LogicalExpression",
                            "start": 1960,
                            "end": 2022,
                            "loc": {
                              "start": {
                                "line": 55,
                                "column": 8
                              },
                              "end": {
                                "line": 55,
                                "column": 70
                              }
                            },
                            "left": {
                              "type": "UnaryExpression",
                              "start": 1960,
                              "end": 2009,
                              "loc": {
                                "start": {
                                  "line": 55,
                                  "column": 8
                                },
                                "end": {
                                  "line": 55,
                                  "column": 57
                                }
                              },
                              "operator": "!",
                              "prefix": true,
                              "argument": {
                                "type": "CallExpression",
                                "start": 1961,
                                "end": 2009,
                                "loc": {
                                  "start": {
                                    "line": 55,
                                    "column": 9
                                  },
                                  "end": {
                                    "line": 55,
                                    "column": 57
                                  }
                                },
                                "callee": {
                                  "type": "Identifier",
                                  "start": 1961,
                                  "end": 1970,
                                  "loc": {
                                    "start": {
                                      "line": 55,
                                      "column": 9
                                    },
                                    "end": {
                                      "line": 55,
                                      "column": 18
                                    }
                                  },
                                  "name": "eventsApi"
                                },
                                "arguments": [
                                  {
                                    "type": "ThisExpression",
                                    "start": 1971,
                                    "end": 1975,
                                    "loc": {
                                      "start": {
                                        "line": 55,
                                        "column": 19
                                      },
                                      "end": {
                                        "line": 55,
                                        "column": 23
                                      }
                                    }
                                  },
                                  {
                                    "type": "Literal",
                                    "start": 1977,
                                    "end": 1981,
                                    "loc": {
                                      "start": {
                                        "line": 55,
                                        "column": 25
                                      },
                                      "end": {
                                        "line": 55,
                                        "column": 29
                                      }
                                    },
                                    "value": "on",
                                    "rawValue": "on",
                                    "raw": "\"on\""
                                  },
                                  {
                                    "type": "Identifier",
                                    "start": 1983,
                                    "end": 1987,
                                    "loc": {
                                      "start": {
                                        "line": 55,
                                        "column": 31
                                      },
                                      "end": {
                                        "line": 55,
                                        "column": 35
                                      }
                                    },
                                    "name": "name"
                                  },
                                  {
                                    "type": "ArrayExpression",
                                    "start": 1989,
                                    "end": 2008,
                                    "loc": {
                                      "start": {
                                        "line": 55,
                                        "column": 37
                                      },
                                      "end": {
                                        "line": 55,
                                        "column": 56
                                      }
                                    },
                                    "elements": [
                                      {
                                        "type": "Identifier",
                                        "start": 1990,
                                        "end": 1998,
                                        "loc": {
                                          "start": {
                                            "line": 55,
                                            "column": 38
                                          },
                                          "end": {
                                            "line": 55,
                                            "column": 46
                                          }
                                        },
                                        "name": "callback"
                                      },
                                      {
                                        "type": "Identifier",
                                        "start": 2000,
                                        "end": 2007,
                                        "loc": {
                                          "start": {
                                            "line": 55,
                                            "column": 48
                                          },
                                          "end": {
                                            "line": 55,
                                            "column": 55
                                          }
                                        },
                                        "name": "context"
                                      }
                                    ]
                                  }
                                ]
                              }
                            },
                            "operator": "||",
                            "right": {
                              "type": "UnaryExpression",
                              "start": 2013,
                              "end": 2022,
                              "loc": {
                                "start": {
                                  "line": 55,
                                  "column": 61
                                },
                                "end": {
                                  "line": 55,
                                  "column": 70
                                }
                              },
                              "operator": "!",
                              "prefix": true,
                              "argument": {
                                "type": "Identifier",
                                "start": 2014,
                                "end": 2022,
                                "loc": {
                                  "start": {
                                    "line": 55,
                                    "column": 62
                                  },
                                  "end": {
                                    "line": 55,
                                    "column": 70
                                  }
                                },
                                "name": "callback"
                              }
                            }
                          },
                          "consequent": {
                            "type": "ReturnStatement",
                            "start": 2024,
                            "end": 2036,
                            "loc": {
                              "start": {
                                "line": 55,
                                "column": 72
                              },
                              "end": {
                                "line": 55,
                                "column": 84
                              }
                            },
                            "argument": {
                              "type": "ThisExpression",
                              "start": 2031,
                              "end": 2035,
                              "loc": {
                                "start": {
                                  "line": 55,
                                  "column": 79
                                },
                                "end": {
                                  "line": 55,
                                  "column": 83
                                }
                              }
                            }
                          },
                          "alternate": null
                        },
                        {
                          "type": "ExpressionStatement",
                          "start": 2041,
                          "end": 2077,
                          "loc": {
                            "start": {
                              "line": 56,
                              "column": 4
                            },
                            "end": {
                              "line": 56,
                              "column": 40
                            }
                          },
                          "expression": {
                            "type": "LogicalExpression",
                            "start": 2041,
                            "end": 2076,
                            "loc": {
                              "start": {
                                "line": 56,
                                "column": 4
                              },
                              "end": {
                                "line": 56,
                                "column": 39
                              }
                            },
                            "left": {
                              "type": "MemberExpression",
                              "start": 2041,
                              "end": 2053,
                              "loc": {
                                "start": {
                                  "line": 56,
                                  "column": 4
                                },
                                "end": {
                                  "line": 56,
                                  "column": 16
                                }
                              },
                              "object": {
                                "type": "ThisExpression",
                                "start": 2041,
                                "end": 2045,
                                "loc": {
                                  "start": {
                                    "line": 56,
                                    "column": 4
                                  },
                                  "end": {
                                    "line": 56,
                                    "column": 8
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 2046,
                                "end": 2053,
                                "loc": {
                                  "start": {
                                    "line": 56,
                                    "column": 9
                                  },
                                  "end": {
                                    "line": 56,
                                    "column": 16
                                  }
                                },
                                "name": "_events"
                              },
                              "computed": false
                            },
                            "operator": "||",
                            "right": {
                              "type": "AssignmentExpression",
                              "start": 2058,
                              "end": 2075,
                              "loc": {
                                "start": {
                                  "line": 56,
                                  "column": 21
                                },
                                "end": {
                                  "line": 56,
                                  "column": 38
                                }
                              },
                              "operator": "=",
                              "left": {
                                "type": "MemberExpression",
                                "start": 2058,
                                "end": 2070,
                                "loc": {
                                  "start": {
                                    "line": 56,
                                    "column": 21
                                  },
                                  "end": {
                                    "line": 56,
                                    "column": 33
                                  }
                                },
                                "object": {
                                  "type": "ThisExpression",
                                  "start": 2058,
                                  "end": 2062,
                                  "loc": {
                                    "start": {
                                      "line": 56,
                                      "column": 21
                                    },
                                    "end": {
                                      "line": 56,
                                      "column": 25
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 2063,
                                  "end": 2070,
                                  "loc": {
                                    "start": {
                                      "line": 56,
                                      "column": 26
                                    },
                                    "end": {
                                      "line": 56,
                                      "column": 33
                                    }
                                  },
                                  "name": "_events"
                                },
                                "computed": false
                              },
                              "right": {
                                "type": "ObjectExpression",
                                "start": 2073,
                                "end": 2075,
                                "loc": {
                                  "start": {
                                    "line": 56,
                                    "column": 36
                                  },
                                  "end": {
                                    "line": 56,
                                    "column": 38
                                  }
                                },
                                "properties": []
                              },
                              "parenthesizedExpression": true
                            }
                          }
                        },
                        {
                          "type": "VariableDeclaration",
                          "start": 2082,
                          "end": 2143,
                          "loc": {
                            "start": {
                              "line": 57,
                              "column": 4
                            },
                            "end": {
                              "line": 57,
                              "column": 65
                            }
                          },
                          "declarations": [
                            {
                              "type": "VariableDeclarator",
                              "start": 2086,
                              "end": 2142,
                              "loc": {
                                "start": {
                                  "line": 57,
                                  "column": 8
                                },
                                "end": {
                                  "line": 57,
                                  "column": 64
                                }
                              },
                              "id": {
                                "type": "Identifier",
                                "start": 2086,
                                "end": 2092,
                                "loc": {
                                  "start": {
                                    "line": 57,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 57,
                                    "column": 14
                                  }
                                },
                                "name": "events"
                              },
                              "init": {
                                "type": "LogicalExpression",
                                "start": 2095,
                                "end": 2142,
                                "loc": {
                                  "start": {
                                    "line": 57,
                                    "column": 17
                                  },
                                  "end": {
                                    "line": 57,
                                    "column": 64
                                  }
                                },
                                "left": {
                                  "type": "MemberExpression",
                                  "start": 2095,
                                  "end": 2113,
                                  "loc": {
                                    "start": {
                                      "line": 57,
                                      "column": 17
                                    },
                                    "end": {
                                      "line": 57,
                                      "column": 35
                                    }
                                  },
                                  "object": {
                                    "type": "MemberExpression",
                                    "start": 2095,
                                    "end": 2107,
                                    "loc": {
                                      "start": {
                                        "line": 57,
                                        "column": 17
                                      },
                                      "end": {
                                        "line": 57,
                                        "column": 29
                                      }
                                    },
                                    "object": {
                                      "type": "ThisExpression",
                                      "start": 2095,
                                      "end": 2099,
                                      "loc": {
                                        "start": {
                                          "line": 57,
                                          "column": 17
                                        },
                                        "end": {
                                          "line": 57,
                                          "column": 21
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 2100,
                                      "end": 2107,
                                      "loc": {
                                        "start": {
                                          "line": 57,
                                          "column": 22
                                        },
                                        "end": {
                                          "line": 57,
                                          "column": 29
                                        }
                                      },
                                      "name": "_events"
                                    },
                                    "computed": false
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 2108,
                                    "end": 2112,
                                    "loc": {
                                      "start": {
                                        "line": 57,
                                        "column": 30
                                      },
                                      "end": {
                                        "line": 57,
                                        "column": 34
                                      }
                                    },
                                    "name": "name"
                                  },
                                  "computed": true
                                },
                                "operator": "||",
                                "right": {
                                  "type": "AssignmentExpression",
                                  "start": 2118,
                                  "end": 2141,
                                  "loc": {
                                    "start": {
                                      "line": 57,
                                      "column": 40
                                    },
                                    "end": {
                                      "line": 57,
                                      "column": 63
                                    }
                                  },
                                  "operator": "=",
                                  "left": {
                                    "type": "MemberExpression",
                                    "start": 2118,
                                    "end": 2136,
                                    "loc": {
                                      "start": {
                                        "line": 57,
                                        "column": 40
                                      },
                                      "end": {
                                        "line": 57,
                                        "column": 58
                                      }
                                    },
                                    "object": {
                                      "type": "MemberExpression",
                                      "start": 2118,
                                      "end": 2130,
                                      "loc": {
                                        "start": {
                                          "line": 57,
                                          "column": 40
                                        },
                                        "end": {
                                          "line": 57,
                                          "column": 52
                                        }
                                      },
                                      "object": {
                                        "type": "ThisExpression",
                                        "start": 2118,
                                        "end": 2122,
                                        "loc": {
                                          "start": {
                                            "line": 57,
                                            "column": 40
                                          },
                                          "end": {
                                            "line": 57,
                                            "column": 44
                                          }
                                        }
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "start": 2123,
                                        "end": 2130,
                                        "loc": {
                                          "start": {
                                            "line": 57,
                                            "column": 45
                                          },
                                          "end": {
                                            "line": 57,
                                            "column": 52
                                          }
                                        },
                                        "name": "_events"
                                      },
                                      "computed": false
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 2131,
                                      "end": 2135,
                                      "loc": {
                                        "start": {
                                          "line": 57,
                                          "column": 53
                                        },
                                        "end": {
                                          "line": 57,
                                          "column": 57
                                        }
                                      },
                                      "name": "name"
                                    },
                                    "computed": true
                                  },
                                  "right": {
                                    "type": "ArrayExpression",
                                    "start": 2139,
                                    "end": 2141,
                                    "loc": {
                                      "start": {
                                        "line": 57,
                                        "column": 61
                                      },
                                      "end": {
                                        "line": 57,
                                        "column": 63
                                      }
                                    },
                                    "elements": []
                                  },
                                  "parenthesizedExpression": true
                                }
                              }
                            }
                          ],
                          "kind": "let"
                        },
                        {
                          "type": "ExpressionStatement",
                          "start": 2148,
                          "end": 2222,
                          "loc": {
                            "start": {
                              "line": 58,
                              "column": 4
                            },
                            "end": {
                              "line": 58,
                              "column": 78
                            }
                          },
                          "expression": {
                            "type": "CallExpression",
                            "start": 2148,
                            "end": 2221,
                            "loc": {
                              "start": {
                                "line": 58,
                                "column": 4
                              },
                              "end": {
                                "line": 58,
                                "column": 77
                              }
                            },
                            "callee": {
                              "type": "MemberExpression",
                              "start": 2148,
                              "end": 2159,
                              "loc": {
                                "start": {
                                  "line": 58,
                                  "column": 4
                                },
                                "end": {
                                  "line": 58,
                                  "column": 15
                                }
                              },
                              "object": {
                                "type": "Identifier",
                                "start": 2148,
                                "end": 2154,
                                "loc": {
                                  "start": {
                                    "line": 58,
                                    "column": 4
                                  },
                                  "end": {
                                    "line": 58,
                                    "column": 10
                                  }
                                },
                                "name": "events"
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 2155,
                                "end": 2159,
                                "loc": {
                                  "start": {
                                    "line": 58,
                                    "column": 11
                                  },
                                  "end": {
                                    "line": 58,
                                    "column": 15
                                  }
                                },
                                "name": "push"
                              },
                              "computed": false
                            },
                            "arguments": [
                              {
                                "type": "ObjectExpression",
                                "start": 2160,
                                "end": 2220,
                                "loc": {
                                  "start": {
                                    "line": 58,
                                    "column": 16
                                  },
                                  "end": {
                                    "line": 58,
                                    "column": 76
                                  }
                                },
                                "properties": [
                                  {
                                    "type": "Property",
                                    "start": 2161,
                                    "end": 2179,
                                    "loc": {
                                      "start": {
                                        "line": 58,
                                        "column": 17
                                      },
                                      "end": {
                                        "line": 58,
                                        "column": 35
                                      }
                                    },
                                    "method": false,
                                    "shorthand": false,
                                    "computed": false,
                                    "key": {
                                      "type": "Identifier",
                                      "start": 2161,
                                      "end": 2169,
                                      "loc": {
                                        "start": {
                                          "line": 58,
                                          "column": 17
                                        },
                                        "end": {
                                          "line": 58,
                                          "column": 25
                                        }
                                      },
                                      "name": "callback"
                                    },
                                    "value": {
                                      "type": "Identifier",
                                      "start": 2171,
                                      "end": 2179,
                                      "loc": {
                                        "start": {
                                          "line": 58,
                                          "column": 27
                                        },
                                        "end": {
                                          "line": 58,
                                          "column": 35
                                        }
                                      },
                                      "name": "callback"
                                    },
                                    "kind": "init"
                                  },
                                  {
                                    "type": "Property",
                                    "start": 2181,
                                    "end": 2197,
                                    "loc": {
                                      "start": {
                                        "line": 58,
                                        "column": 37
                                      },
                                      "end": {
                                        "line": 58,
                                        "column": 53
                                      }
                                    },
                                    "method": false,
                                    "shorthand": false,
                                    "computed": false,
                                    "key": {
                                      "type": "Identifier",
                                      "start": 2181,
                                      "end": 2188,
                                      "loc": {
                                        "start": {
                                          "line": 58,
                                          "column": 37
                                        },
                                        "end": {
                                          "line": 58,
                                          "column": 44
                                        }
                                      },
                                      "name": "context"
                                    },
                                    "value": {
                                      "type": "Identifier",
                                      "start": 2190,
                                      "end": 2197,
                                      "loc": {
                                        "start": {
                                          "line": 58,
                                          "column": 46
                                        },
                                        "end": {
                                          "line": 58,
                                          "column": 53
                                        }
                                      },
                                      "name": "context"
                                    },
                                    "kind": "init"
                                  },
                                  {
                                    "type": "Property",
                                    "start": 2199,
                                    "end": 2219,
                                    "loc": {
                                      "start": {
                                        "line": 58,
                                        "column": 55
                                      },
                                      "end": {
                                        "line": 58,
                                        "column": 75
                                      }
                                    },
                                    "method": false,
                                    "shorthand": false,
                                    "computed": false,
                                    "key": {
                                      "type": "Identifier",
                                      "start": 2199,
                                      "end": 2202,
                                      "loc": {
                                        "start": {
                                          "line": 58,
                                          "column": 55
                                        },
                                        "end": {
                                          "line": 58,
                                          "column": 58
                                        }
                                      },
                                      "name": "ctx"
                                    },
                                    "value": {
                                      "type": "LogicalExpression",
                                      "start": 2204,
                                      "end": 2219,
                                      "loc": {
                                        "start": {
                                          "line": 58,
                                          "column": 60
                                        },
                                        "end": {
                                          "line": 58,
                                          "column": 75
                                        }
                                      },
                                      "left": {
                                        "type": "Identifier",
                                        "start": 2204,
                                        "end": 2211,
                                        "loc": {
                                          "start": {
                                            "line": 58,
                                            "column": 60
                                          },
                                          "end": {
                                            "line": 58,
                                            "column": 67
                                          }
                                        },
                                        "name": "context"
                                      },
                                      "operator": "||",
                                      "right": {
                                        "type": "ThisExpression",
                                        "start": 2215,
                                        "end": 2219,
                                        "loc": {
                                          "start": {
                                            "line": 58,
                                            "column": 71
                                          },
                                          "end": {
                                            "line": 58,
                                            "column": 75
                                          }
                                        }
                                      }
                                    },
                                    "kind": "init"
                                  }
                                ]
                              }
                            ]
                          }
                        },
                        {
                          "type": "ReturnStatement",
                          "start": 2227,
                          "end": 2239,
                          "loc": {
                            "start": {
                              "line": 59,
                              "column": 4
                            },
                            "end": {
                              "line": 59,
                              "column": 16
                            }
                          },
                          "argument": {
                            "type": "ThisExpression",
                            "start": 2234,
                            "end": 2238,
                            "loc": {
                              "start": {
                                "line": 59,
                                "column": 11
                              },
                              "end": {
                                "line": 59,
                                "column": 15
                              }
                            }
                          }
                        }
                      ]
                    }
                  },
                  "kind": "init",
                  "leadingComments": [
                    {
                      "type": "CommentLine",
                      "value": " Bind an event to a `callback` function. Passing `\"all\"` will bind",
                      "start": 1802,
                      "end": 1870,
                      "loc": {
                        "start": {
                          "line": 52,
                          "column": 2
                        },
                        "end": {
                          "line": 52,
                          "column": 70
                        }
                      },
                      "range": [
                        1802,
                        1870
                      ]
                    },
                    {
                      "type": "CommentLine",
                      "value": " the callback to all events fired.",
                      "start": 1873,
                      "end": 1909,
                      "loc": {
                        "start": {
                          "line": 53,
                          "column": 2
                        },
                        "end": {
                          "line": 53,
                          "column": 38
                        }
                      },
                      "range": [
                        1873,
                        1909
                      ]
                    }
                  ]
                },
                {
                  "type": "Property",
                  "start": 2374,
                  "end": 2710,
                  "loc": {
                    "start": {
                      "line": 64,
                      "column": 2
                    },
                    "end": {
                      "line": 73,
                      "column": 3
                    }
                  },
                  "method": false,
                  "shorthand": false,
                  "computed": false,
                  "key": {
                    "type": "Identifier",
                    "start": 2374,
                    "end": 2378,
                    "loc": {
                      "start": {
                        "line": 64,
                        "column": 2
                      },
                      "end": {
                        "line": 64,
                        "column": 6
                      }
                    },
                    "name": "once",
                    "leadingComments": null
                  },
                  "value": {
                    "type": "FunctionExpression",
                    "start": 2380,
                    "end": 2710,
                    "loc": {
                      "start": {
                        "line": 64,
                        "column": 8
                      },
                      "end": {
                        "line": 73,
                        "column": 3
                      }
                    },
                    "id": null,
                    "generator": false,
                    "expression": false,
                    "async": false,
                    "params": [
                      {
                        "type": "Identifier",
                        "start": 2389,
                        "end": 2393,
                        "loc": {
                          "start": {
                            "line": 64,
                            "column": 17
                          },
                          "end": {
                            "line": 64,
                            "column": 21
                          }
                        },
                        "name": "name"
                      },
                      {
                        "type": "Identifier",
                        "start": 2395,
                        "end": 2403,
                        "loc": {
                          "start": {
                            "line": 64,
                            "column": 23
                          },
                          "end": {
                            "line": 64,
                            "column": 31
                          }
                        },
                        "name": "callback"
                      },
                      {
                        "type": "Identifier",
                        "start": 2405,
                        "end": 2412,
                        "loc": {
                          "start": {
                            "line": 64,
                            "column": 33
                          },
                          "end": {
                            "line": 64,
                            "column": 40
                          }
                        },
                        "name": "context"
                      }
                    ],
                    "body": {
                      "type": "BlockStatement",
                      "start": 2414,
                      "end": 2710,
                      "loc": {
                        "start": {
                          "line": 64,
                          "column": 42
                        },
                        "end": {
                          "line": 73,
                          "column": 3
                        }
                      },
                      "body": [
                        {
                          "type": "IfStatement",
                          "start": 2420,
                          "end": 2502,
                          "loc": {
                            "start": {
                              "line": 65,
                              "column": 4
                            },
                            "end": {
                              "line": 65,
                              "column": 86
                            }
                          },
                          "test": {
                            "type": "LogicalExpression",
                            "start": 2424,
                            "end": 2488,
                            "loc": {
                              "start": {
                                "line": 65,
                                "column": 8
                              },
                              "end": {
                                "line": 65,
                                "column": 72
                              }
                            },
                            "left": {
                              "type": "UnaryExpression",
                              "start": 2424,
                              "end": 2475,
                              "loc": {
                                "start": {
                                  "line": 65,
                                  "column": 8
                                },
                                "end": {
                                  "line": 65,
                                  "column": 59
                                }
                              },
                              "operator": "!",
                              "prefix": true,
                              "argument": {
                                "type": "CallExpression",
                                "start": 2425,
                                "end": 2475,
                                "loc": {
                                  "start": {
                                    "line": 65,
                                    "column": 9
                                  },
                                  "end": {
                                    "line": 65,
                                    "column": 59
                                  }
                                },
                                "callee": {
                                  "type": "Identifier",
                                  "start": 2425,
                                  "end": 2434,
                                  "loc": {
                                    "start": {
                                      "line": 65,
                                      "column": 9
                                    },
                                    "end": {
                                      "line": 65,
                                      "column": 18
                                    }
                                  },
                                  "name": "eventsApi"
                                },
                                "arguments": [
                                  {
                                    "type": "ThisExpression",
                                    "start": 2435,
                                    "end": 2439,
                                    "loc": {
                                      "start": {
                                        "line": 65,
                                        "column": 19
                                      },
                                      "end": {
                                        "line": 65,
                                        "column": 23
                                      }
                                    }
                                  },
                                  {
                                    "type": "Literal",
                                    "start": 2441,
                                    "end": 2447,
                                    "loc": {
                                      "start": {
                                        "line": 65,
                                        "column": 25
                                      },
                                      "end": {
                                        "line": 65,
                                        "column": 31
                                      }
                                    },
                                    "value": "once",
                                    "rawValue": "once",
                                    "raw": "\"once\""
                                  },
                                  {
                                    "type": "Identifier",
                                    "start": 2449,
                                    "end": 2453,
                                    "loc": {
                                      "start": {
                                        "line": 65,
                                        "column": 33
                                      },
                                      "end": {
                                        "line": 65,
                                        "column": 37
                                      }
                                    },
                                    "name": "name"
                                  },
                                  {
                                    "type": "ArrayExpression",
                                    "start": 2455,
                                    "end": 2474,
                                    "loc": {
                                      "start": {
                                        "line": 65,
                                        "column": 39
                                      },
                                      "end": {
                                        "line": 65,
                                        "column": 58
                                      }
                                    },
                                    "elements": [
                                      {
                                        "type": "Identifier",
                                        "start": 2456,
                                        "end": 2464,
                                        "loc": {
                                          "start": {
                                            "line": 65,
                                            "column": 40
                                          },
                                          "end": {
                                            "line": 65,
                                            "column": 48
                                          }
                                        },
                                        "name": "callback"
                                      },
                                      {
                                        "type": "Identifier",
                                        "start": 2466,
                                        "end": 2473,
                                        "loc": {
                                          "start": {
                                            "line": 65,
                                            "column": 50
                                          },
                                          "end": {
                                            "line": 65,
                                            "column": 57
                                          }
                                        },
                                        "name": "context"
                                      }
                                    ]
                                  }
                                ]
                              }
                            },
                            "operator": "||",
                            "right": {
                              "type": "UnaryExpression",
                              "start": 2479,
                              "end": 2488,
                              "loc": {
                                "start": {
                                  "line": 65,
                                  "column": 63
                                },
                                "end": {
                                  "line": 65,
                                  "column": 72
                                }
                              },
                              "operator": "!",
                              "prefix": true,
                              "argument": {
                                "type": "Identifier",
                                "start": 2480,
                                "end": 2488,
                                "loc": {
                                  "start": {
                                    "line": 65,
                                    "column": 64
                                  },
                                  "end": {
                                    "line": 65,
                                    "column": 72
                                  }
                                },
                                "name": "callback"
                              }
                            }
                          },
                          "consequent": {
                            "type": "ReturnStatement",
                            "start": 2490,
                            "end": 2502,
                            "loc": {
                              "start": {
                                "line": 65,
                                "column": 74
                              },
                              "end": {
                                "line": 65,
                                "column": 86
                              }
                            },
                            "argument": {
                              "type": "ThisExpression",
                              "start": 2497,
                              "end": 2501,
                              "loc": {
                                "start": {
                                  "line": 65,
                                  "column": 81
                                },
                                "end": {
                                  "line": 65,
                                  "column": 85
                                }
                              }
                            }
                          },
                          "alternate": null
                        },
                        {
                          "type": "VariableDeclaration",
                          "start": 2507,
                          "end": 2523,
                          "loc": {
                            "start": {
                              "line": 66,
                              "column": 4
                            },
                            "end": {
                              "line": 66,
                              "column": 20
                            }
                          },
                          "declarations": [
                            {
                              "type": "VariableDeclarator",
                              "start": 2511,
                              "end": 2522,
                              "loc": {
                                "start": {
                                  "line": 66,
                                  "column": 8
                                },
                                "end": {
                                  "line": 66,
                                  "column": 19
                                }
                              },
                              "id": {
                                "type": "Identifier",
                                "start": 2511,
                                "end": 2515,
                                "loc": {
                                  "start": {
                                    "line": 66,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 66,
                                    "column": 12
                                  }
                                },
                                "name": "self"
                              },
                              "init": {
                                "type": "ThisExpression",
                                "start": 2518,
                                "end": 2522,
                                "loc": {
                                  "start": {
                                    "line": 66,
                                    "column": 15
                                  },
                                  "end": {
                                    "line": 66,
                                    "column": 19
                                  }
                                }
                              }
                            }
                          ],
                          "kind": "let"
                        },
                        {
                          "type": "VariableDeclaration",
                          "start": 2528,
                          "end": 2632,
                          "loc": {
                            "start": {
                              "line": 67,
                              "column": 4
                            },
                            "end": {
                              "line": 70,
                              "column": 7
                            }
                          },
                          "declarations": [
                            {
                              "type": "VariableDeclarator",
                              "start": 2532,
                              "end": 2631,
                              "loc": {
                                "start": {
                                  "line": 67,
                                  "column": 8
                                },
                                "end": {
                                  "line": 70,
                                  "column": 6
                                }
                              },
                              "id": {
                                "type": "Identifier",
                                "start": 2532,
                                "end": 2537,
                                "loc": {
                                  "start": {
                                    "line": 67,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 67,
                                    "column": 13
                                  }
                                },
                                "name": "onced"
                              },
                              "init": {
                                "type": "CallExpression",
                                "start": 2540,
                                "end": 2631,
                                "loc": {
                                  "start": {
                                    "line": 67,
                                    "column": 16
                                  },
                                  "end": {
                                    "line": 70,
                                    "column": 6
                                  }
                                },
                                "callee": {
                                  "type": "Identifier",
                                  "start": 2540,
                                  "end": 2544,
                                  "loc": {
                                    "start": {
                                      "line": 67,
                                      "column": 16
                                    },
                                    "end": {
                                      "line": 67,
                                      "column": 20
                                    }
                                  },
                                  "name": "once"
                                },
                                "arguments": [
                                  {
                                    "type": "FunctionExpression",
                                    "start": 2545,
                                    "end": 2630,
                                    "loc": {
                                      "start": {
                                        "line": 67,
                                        "column": 21
                                      },
                                      "end": {
                                        "line": 70,
                                        "column": 5
                                      }
                                    },
                                    "id": null,
                                    "generator": false,
                                    "expression": false,
                                    "async": false,
                                    "params": [],
                                    "body": {
                                      "type": "BlockStatement",
                                      "start": 2556,
                                      "end": 2630,
                                      "loc": {
                                        "start": {
                                          "line": 67,
                                          "column": 32
                                        },
                                        "end": {
                                          "line": 70,
                                          "column": 5
                                        }
                                      },
                                      "body": [
                                        {
                                          "type": "ExpressionStatement",
                                          "start": 2564,
                                          "end": 2585,
                                          "loc": {
                                            "start": {
                                              "line": 68,
                                              "column": 6
                                            },
                                            "end": {
                                              "line": 68,
                                              "column": 27
                                            }
                                          },
                                          "expression": {
                                            "type": "CallExpression",
                                            "start": 2564,
                                            "end": 2584,
                                            "loc": {
                                              "start": {
                                                "line": 68,
                                                "column": 6
                                              },
                                              "end": {
                                                "line": 68,
                                                "column": 26
                                              }
                                            },
                                            "callee": {
                                              "type": "MemberExpression",
                                              "start": 2564,
                                              "end": 2572,
                                              "loc": {
                                                "start": {
                                                  "line": 68,
                                                  "column": 6
                                                },
                                                "end": {
                                                  "line": 68,
                                                  "column": 14
                                                }
                                              },
                                              "object": {
                                                "type": "Identifier",
                                                "start": 2564,
                                                "end": 2568,
                                                "loc": {
                                                  "start": {
                                                    "line": 68,
                                                    "column": 6
                                                  },
                                                  "end": {
                                                    "line": 68,
                                                    "column": 10
                                                  }
                                                },
                                                "name": "self"
                                              },
                                              "property": {
                                                "type": "Identifier",
                                                "start": 2569,
                                                "end": 2572,
                                                "loc": {
                                                  "start": {
                                                    "line": 68,
                                                    "column": 11
                                                  },
                                                  "end": {
                                                    "line": 68,
                                                    "column": 14
                                                  }
                                                },
                                                "name": "off"
                                              },
                                              "computed": false
                                            },
                                            "arguments": [
                                              {
                                                "type": "Identifier",
                                                "start": 2573,
                                                "end": 2577,
                                                "loc": {
                                                  "start": {
                                                    "line": 68,
                                                    "column": 15
                                                  },
                                                  "end": {
                                                    "line": 68,
                                                    "column": 19
                                                  }
                                                },
                                                "name": "name"
                                              },
                                              {
                                                "type": "Identifier",
                                                "start": 2579,
                                                "end": 2583,
                                                "loc": {
                                                  "start": {
                                                    "line": 68,
                                                    "column": 21
                                                  },
                                                  "end": {
                                                    "line": 68,
                                                    "column": 25
                                                  }
                                                },
                                                "name": "once"
                                              }
                                            ]
                                          }
                                        },
                                        {
                                          "type": "ExpressionStatement",
                                          "start": 2592,
                                          "end": 2624,
                                          "loc": {
                                            "start": {
                                              "line": 69,
                                              "column": 6
                                            },
                                            "end": {
                                              "line": 69,
                                              "column": 38
                                            }
                                          },
                                          "expression": {
                                            "type": "CallExpression",
                                            "start": 2592,
                                            "end": 2623,
                                            "loc": {
                                              "start": {
                                                "line": 69,
                                                "column": 6
                                              },
                                              "end": {
                                                "line": 69,
                                                "column": 37
                                              }
                                            },
                                            "callee": {
                                              "type": "MemberExpression",
                                              "start": 2592,
                                              "end": 2606,
                                              "loc": {
                                                "start": {
                                                  "line": 69,
                                                  "column": 6
                                                },
                                                "end": {
                                                  "line": 69,
                                                  "column": 20
                                                }
                                              },
                                              "object": {
                                                "type": "Identifier",
                                                "start": 2592,
                                                "end": 2600,
                                                "loc": {
                                                  "start": {
                                                    "line": 69,
                                                    "column": 6
                                                  },
                                                  "end": {
                                                    "line": 69,
                                                    "column": 14
                                                  }
                                                },
                                                "name": "callback"
                                              },
                                              "property": {
                                                "type": "Identifier",
                                                "start": 2601,
                                                "end": 2606,
                                                "loc": {
                                                  "start": {
                                                    "line": 69,
                                                    "column": 15
                                                  },
                                                  "end": {
                                                    "line": 69,
                                                    "column": 20
                                                  }
                                                },
                                                "name": "apply"
                                              },
                                              "computed": false
                                            },
                                            "arguments": [
                                              {
                                                "type": "ThisExpression",
                                                "start": 2607,
                                                "end": 2611,
                                                "loc": {
                                                  "start": {
                                                    "line": 69,
                                                    "column": 21
                                                  },
                                                  "end": {
                                                    "line": 69,
                                                    "column": 25
                                                  }
                                                }
                                              },
                                              {
                                                "type": "Identifier",
                                                "start": 2613,
                                                "end": 2622,
                                                "loc": {
                                                  "start": {
                                                    "line": 69,
                                                    "column": 27
                                                  },
                                                  "end": {
                                                    "line": 69,
                                                    "column": 36
                                                  }
                                                },
                                                "name": "arguments"
                                              }
                                            ]
                                          }
                                        }
                                      ]
                                    }
                                  }
                                ]
                              }
                            }
                          ],
                          "kind": "let"
                        },
                        {
                          "type": "ExpressionStatement",
                          "start": 2637,
                          "end": 2664,
                          "loc": {
                            "start": {
                              "line": 71,
                              "column": 4
                            },
                            "end": {
                              "line": 71,
                              "column": 31
                            }
                          },
                          "expression": {
                            "type": "AssignmentExpression",
                            "start": 2637,
                            "end": 2663,
                            "loc": {
                              "start": {
                                "line": 71,
                                "column": 4
                              },
                              "end": {
                                "line": 71,
                                "column": 30
                              }
                            },
                            "operator": "=",
                            "left": {
                              "type": "MemberExpression",
                              "start": 2637,
                              "end": 2652,
                              "loc": {
                                "start": {
                                  "line": 71,
                                  "column": 4
                                },
                                "end": {
                                  "line": 71,
                                  "column": 19
                                }
                              },
                              "object": {
                                "type": "Identifier",
                                "start": 2637,
                                "end": 2642,
                                "loc": {
                                  "start": {
                                    "line": 71,
                                    "column": 4
                                  },
                                  "end": {
                                    "line": 71,
                                    "column": 9
                                  }
                                },
                                "name": "onced"
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 2643,
                                "end": 2652,
                                "loc": {
                                  "start": {
                                    "line": 71,
                                    "column": 10
                                  },
                                  "end": {
                                    "line": 71,
                                    "column": 19
                                  }
                                },
                                "name": "_callback"
                              },
                              "computed": false
                            },
                            "right": {
                              "type": "Identifier",
                              "start": 2655,
                              "end": 2663,
                              "loc": {
                                "start": {
                                  "line": 71,
                                  "column": 22
                                },
                                "end": {
                                  "line": 71,
                                  "column": 30
                                }
                              },
                              "name": "callback"
                            }
                          }
                        },
                        {
                          "type": "ReturnStatement",
                          "start": 2669,
                          "end": 2706,
                          "loc": {
                            "start": {
                              "line": 72,
                              "column": 4
                            },
                            "end": {
                              "line": 72,
                              "column": 41
                            }
                          },
                          "argument": {
                            "type": "CallExpression",
                            "start": 2676,
                            "end": 2705,
                            "loc": {
                              "start": {
                                "line": 72,
                                "column": 11
                              },
                              "end": {
                                "line": 72,
                                "column": 40
                              }
                            },
                            "callee": {
                              "type": "MemberExpression",
                              "start": 2676,
                              "end": 2683,
                              "loc": {
                                "start": {
                                  "line": 72,
                                  "column": 11
                                },
                                "end": {
                                  "line": 72,
                                  "column": 18
                                }
                              },
                              "object": {
                                "type": "ThisExpression",
                                "start": 2676,
                                "end": 2680,
                                "loc": {
                                  "start": {
                                    "line": 72,
                                    "column": 11
                                  },
                                  "end": {
                                    "line": 72,
                                    "column": 15
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 2681,
                                "end": 2683,
                                "loc": {
                                  "start": {
                                    "line": 72,
                                    "column": 16
                                  },
                                  "end": {
                                    "line": 72,
                                    "column": 18
                                  }
                                },
                                "name": "on"
                              },
                              "computed": false
                            },
                            "arguments": [
                              {
                                "type": "Identifier",
                                "start": 2684,
                                "end": 2688,
                                "loc": {
                                  "start": {
                                    "line": 72,
                                    "column": 19
                                  },
                                  "end": {
                                    "line": 72,
                                    "column": 23
                                  }
                                },
                                "name": "name"
                              },
                              {
                                "type": "Identifier",
                                "start": 2690,
                                "end": 2695,
                                "loc": {
                                  "start": {
                                    "line": 72,
                                    "column": 25
                                  },
                                  "end": {
                                    "line": 72,
                                    "column": 30
                                  }
                                },
                                "name": "onced"
                              },
                              {
                                "type": "Identifier",
                                "start": 2697,
                                "end": 2704,
                                "loc": {
                                  "start": {
                                    "line": 72,
                                    "column": 32
                                  },
                                  "end": {
                                    "line": 72,
                                    "column": 39
                                  }
                                },
                                "name": "context"
                              }
                            ]
                          }
                        }
                      ]
                    }
                  },
                  "kind": "init",
                  "leadingComments": [
                    {
                      "type": "CommentLine",
                      "value": " Bind an event to only be triggered a single time. After the first time",
                      "start": 2248,
                      "end": 2321,
                      "loc": {
                        "start": {
                          "line": 62,
                          "column": 2
                        },
                        "end": {
                          "line": 62,
                          "column": 75
                        }
                      },
                      "range": [
                        2248,
                        2321
                      ]
                    },
                    {
                      "type": "CommentLine",
                      "value": " the callback is invoked, it will be removed.",
                      "start": 2324,
                      "end": 2371,
                      "loc": {
                        "start": {
                          "line": 63,
                          "column": 2
                        },
                        "end": {
                          "line": 63,
                          "column": 49
                        }
                      },
                      "range": [
                        2324,
                        2371
                      ]
                    }
                  ]
                },
                {
                  "type": "Property",
                  "start": 2952,
                  "end": 3854,
                  "loc": {
                    "start": {
                      "line": 79,
                      "column": 2
                    },
                    "end": {
                      "line": 105,
                      "column": 3
                    }
                  },
                  "method": false,
                  "shorthand": false,
                  "computed": false,
                  "key": {
                    "type": "Identifier",
                    "start": 2952,
                    "end": 2955,
                    "loc": {
                      "start": {
                        "line": 79,
                        "column": 2
                      },
                      "end": {
                        "line": 79,
                        "column": 5
                      }
                    },
                    "name": "off",
                    "leadingComments": null
                  },
                  "value": {
                    "type": "FunctionExpression",
                    "start": 2957,
                    "end": 3854,
                    "loc": {
                      "start": {
                        "line": 79,
                        "column": 7
                      },
                      "end": {
                        "line": 105,
                        "column": 3
                      }
                    },
                    "id": null,
                    "generator": false,
                    "expression": false,
                    "async": false,
                    "params": [
                      {
                        "type": "Identifier",
                        "start": 2966,
                        "end": 2970,
                        "loc": {
                          "start": {
                            "line": 79,
                            "column": 16
                          },
                          "end": {
                            "line": 79,
                            "column": 20
                          }
                        },
                        "name": "name"
                      },
                      {
                        "type": "Identifier",
                        "start": 2972,
                        "end": 2980,
                        "loc": {
                          "start": {
                            "line": 79,
                            "column": 22
                          },
                          "end": {
                            "line": 79,
                            "column": 30
                          }
                        },
                        "name": "callback"
                      },
                      {
                        "type": "Identifier",
                        "start": 2982,
                        "end": 2989,
                        "loc": {
                          "start": {
                            "line": 79,
                            "column": 32
                          },
                          "end": {
                            "line": 79,
                            "column": 39
                          }
                        },
                        "name": "context"
                      }
                    ],
                    "body": {
                      "type": "BlockStatement",
                      "start": 2991,
                      "end": 3854,
                      "loc": {
                        "start": {
                          "line": 79,
                          "column": 41
                        },
                        "end": {
                          "line": 105,
                          "column": 3
                        }
                      },
                      "body": [
                        {
                          "type": "VariableDeclaration",
                          "start": 2997,
                          "end": 3039,
                          "loc": {
                            "start": {
                              "line": 80,
                              "column": 4
                            },
                            "end": {
                              "line": 80,
                              "column": 46
                            }
                          },
                          "declarations": [
                            {
                              "type": "VariableDeclarator",
                              "start": 3001,
                              "end": 3007,
                              "loc": {
                                "start": {
                                  "line": 80,
                                  "column": 8
                                },
                                "end": {
                                  "line": 80,
                                  "column": 14
                                }
                              },
                              "id": {
                                "type": "Identifier",
                                "start": 3001,
                                "end": 3007,
                                "loc": {
                                  "start": {
                                    "line": 80,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 80,
                                    "column": 14
                                  }
                                },
                                "name": "retain"
                              },
                              "init": null
                            },
                            {
                              "type": "VariableDeclarator",
                              "start": 3009,
                              "end": 3011,
                              "loc": {
                                "start": {
                                  "line": 80,
                                  "column": 16
                                },
                                "end": {
                                  "line": 80,
                                  "column": 18
                                }
                              },
                              "id": {
                                "type": "Identifier",
                                "start": 3009,
                                "end": 3011,
                                "loc": {
                                  "start": {
                                    "line": 80,
                                    "column": 16
                                  },
                                  "end": {
                                    "line": 80,
                                    "column": 18
                                  }
                                },
                                "name": "ev"
                              },
                              "init": null
                            },
                            {
                              "type": "VariableDeclarator",
                              "start": 3013,
                              "end": 3019,
                              "loc": {
                                "start": {
                                  "line": 80,
                                  "column": 20
                                },
                                "end": {
                                  "line": 80,
                                  "column": 26
                                }
                              },
                              "id": {
                                "type": "Identifier",
                                "start": 3013,
                                "end": 3019,
                                "loc": {
                                  "start": {
                                    "line": 80,
                                    "column": 20
                                  },
                                  "end": {
                                    "line": 80,
                                    "column": 26
                                  }
                                },
                                "name": "events"
                              },
                              "init": null
                            },
                            {
                              "type": "VariableDeclarator",
                              "start": 3021,
                              "end": 3026,
                              "loc": {
                                "start": {
                                  "line": 80,
                                  "column": 28
                                },
                                "end": {
                                  "line": 80,
                                  "column": 33
                                }
                              },
                              "id": {
                                "type": "Identifier",
                                "start": 3021,
                                "end": 3026,
                                "loc": {
                                  "start": {
                                    "line": 80,
                                    "column": 28
                                  },
                                  "end": {
                                    "line": 80,
                                    "column": 33
                                  }
                                },
                                "name": "names"
                              },
                              "init": null
                            },
                            {
                              "type": "VariableDeclarator",
                              "start": 3028,
                              "end": 3029,
                              "loc": {
                                "start": {
                                  "line": 80,
                                  "column": 35
                                },
                                "end": {
                                  "line": 80,
                                  "column": 36
                                }
                              },
                              "id": {
                                "type": "Identifier",
                                "start": 3028,
                                "end": 3029,
                                "loc": {
                                  "start": {
                                    "line": 80,
                                    "column": 35
                                  },
                                  "end": {
                                    "line": 80,
                                    "column": 36
                                  }
                                },
                                "name": "i"
                              },
                              "init": null
                            },
                            {
                              "type": "VariableDeclarator",
                              "start": 3031,
                              "end": 3032,
                              "loc": {
                                "start": {
                                  "line": 80,
                                  "column": 38
                                },
                                "end": {
                                  "line": 80,
                                  "column": 39
                                }
                              },
                              "id": {
                                "type": "Identifier",
                                "start": 3031,
                                "end": 3032,
                                "loc": {
                                  "start": {
                                    "line": 80,
                                    "column": 38
                                  },
                                  "end": {
                                    "line": 80,
                                    "column": 39
                                  }
                                },
                                "name": "l"
                              },
                              "init": null
                            },
                            {
                              "type": "VariableDeclarator",
                              "start": 3034,
                              "end": 3035,
                              "loc": {
                                "start": {
                                  "line": 80,
                                  "column": 41
                                },
                                "end": {
                                  "line": 80,
                                  "column": 42
                                }
                              },
                              "id": {
                                "type": "Identifier",
                                "start": 3034,
                                "end": 3035,
                                "loc": {
                                  "start": {
                                    "line": 80,
                                    "column": 41
                                  },
                                  "end": {
                                    "line": 80,
                                    "column": 42
                                  }
                                },
                                "name": "j"
                              },
                              "init": null
                            },
                            {
                              "type": "VariableDeclarator",
                              "start": 3037,
                              "end": 3038,
                              "loc": {
                                "start": {
                                  "line": 80,
                                  "column": 44
                                },
                                "end": {
                                  "line": 80,
                                  "column": 45
                                }
                              },
                              "id": {
                                "type": "Identifier",
                                "start": 3037,
                                "end": 3038,
                                "loc": {
                                  "start": {
                                    "line": 80,
                                    "column": 44
                                  },
                                  "end": {
                                    "line": 80,
                                    "column": 45
                                  }
                                },
                                "name": "k"
                              },
                              "init": null
                            }
                          ],
                          "kind": "let"
                        },
                        {
                          "type": "IfStatement",
                          "start": 3044,
                          "end": 3129,
                          "loc": {
                            "start": {
                              "line": 81,
                              "column": 4
                            },
                            "end": {
                              "line": 81,
                              "column": 89
                            }
                          },
                          "test": {
                            "type": "LogicalExpression",
                            "start": 3048,
                            "end": 3115,
                            "loc": {
                              "start": {
                                "line": 81,
                                "column": 8
                              },
                              "end": {
                                "line": 81,
                                "column": 75
                              }
                            },
                            "left": {
                              "type": "UnaryExpression",
                              "start": 3048,
                              "end": 3061,
                              "loc": {
                                "start": {
                                  "line": 81,
                                  "column": 8
                                },
                                "end": {
                                  "line": 81,
                                  "column": 21
                                }
                              },
                              "operator": "!",
                              "prefix": true,
                              "argument": {
                                "type": "MemberExpression",
                                "start": 3049,
                                "end": 3061,
                                "loc": {
                                  "start": {
                                    "line": 81,
                                    "column": 9
                                  },
                                  "end": {
                                    "line": 81,
                                    "column": 21
                                  }
                                },
                                "object": {
                                  "type": "ThisExpression",
                                  "start": 3049,
                                  "end": 3053,
                                  "loc": {
                                    "start": {
                                      "line": 81,
                                      "column": 9
                                    },
                                    "end": {
                                      "line": 81,
                                      "column": 13
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 3054,
                                  "end": 3061,
                                  "loc": {
                                    "start": {
                                      "line": 81,
                                      "column": 14
                                    },
                                    "end": {
                                      "line": 81,
                                      "column": 21
                                    }
                                  },
                                  "name": "_events"
                                },
                                "computed": false
                              }
                            },
                            "operator": "||",
                            "right": {
                              "type": "UnaryExpression",
                              "start": 3065,
                              "end": 3115,
                              "loc": {
                                "start": {
                                  "line": 81,
                                  "column": 25
                                },
                                "end": {
                                  "line": 81,
                                  "column": 75
                                }
                              },
                              "operator": "!",
                              "prefix": true,
                              "argument": {
                                "type": "CallExpression",
                                "start": 3066,
                                "end": 3115,
                                "loc": {
                                  "start": {
                                    "line": 81,
                                    "column": 26
                                  },
                                  "end": {
                                    "line": 81,
                                    "column": 75
                                  }
                                },
                                "callee": {
                                  "type": "Identifier",
                                  "start": 3066,
                                  "end": 3075,
                                  "loc": {
                                    "start": {
                                      "line": 81,
                                      "column": 26
                                    },
                                    "end": {
                                      "line": 81,
                                      "column": 35
                                    }
                                  },
                                  "name": "eventsApi"
                                },
                                "arguments": [
                                  {
                                    "type": "ThisExpression",
                                    "start": 3076,
                                    "end": 3080,
                                    "loc": {
                                      "start": {
                                        "line": 81,
                                        "column": 36
                                      },
                                      "end": {
                                        "line": 81,
                                        "column": 40
                                      }
                                    }
                                  },
                                  {
                                    "type": "Literal",
                                    "start": 3082,
                                    "end": 3087,
                                    "loc": {
                                      "start": {
                                        "line": 81,
                                        "column": 42
                                      },
                                      "end": {
                                        "line": 81,
                                        "column": 47
                                      }
                                    },
                                    "value": "off",
                                    "rawValue": "off",
                                    "raw": "\"off\""
                                  },
                                  {
                                    "type": "Identifier",
                                    "start": 3089,
                                    "end": 3093,
                                    "loc": {
                                      "start": {
                                        "line": 81,
                                        "column": 49
                                      },
                                      "end": {
                                        "line": 81,
                                        "column": 53
                                      }
                                    },
                                    "name": "name"
                                  },
                                  {
                                    "type": "ArrayExpression",
                                    "start": 3095,
                                    "end": 3114,
                                    "loc": {
                                      "start": {
                                        "line": 81,
                                        "column": 55
                                      },
                                      "end": {
                                        "line": 81,
                                        "column": 74
                                      }
                                    },
                                    "elements": [
                                      {
                                        "type": "Identifier",
                                        "start": 3096,
                                        "end": 3104,
                                        "loc": {
                                          "start": {
                                            "line": 81,
                                            "column": 56
                                          },
                                          "end": {
                                            "line": 81,
                                            "column": 64
                                          }
                                        },
                                        "name": "callback"
                                      },
                                      {
                                        "type": "Identifier",
                                        "start": 3106,
                                        "end": 3113,
                                        "loc": {
                                          "start": {
                                            "line": 81,
                                            "column": 66
                                          },
                                          "end": {
                                            "line": 81,
                                            "column": 73
                                          }
                                        },
                                        "name": "context"
                                      }
                                    ]
                                  }
                                ]
                              }
                            }
                          },
                          "consequent": {
                            "type": "ReturnStatement",
                            "start": 3117,
                            "end": 3129,
                            "loc": {
                              "start": {
                                "line": 81,
                                "column": 77
                              },
                              "end": {
                                "line": 81,
                                "column": 89
                              }
                            },
                            "argument": {
                              "type": "ThisExpression",
                              "start": 3124,
                              "end": 3128,
                              "loc": {
                                "start": {
                                  "line": 81,
                                  "column": 84
                                },
                                "end": {
                                  "line": 81,
                                  "column": 88
                                }
                              }
                            }
                          },
                          "alternate": null
                        },
                        {
                          "type": "IfStatement",
                          "start": 3134,
                          "end": 3225,
                          "loc": {
                            "start": {
                              "line": 82,
                              "column": 4
                            },
                            "end": {
                              "line": 85,
                              "column": 5
                            }
                          },
                          "test": {
                            "type": "LogicalExpression",
                            "start": 3138,
                            "end": 3168,
                            "loc": {
                              "start": {
                                "line": 82,
                                "column": 8
                              },
                              "end": {
                                "line": 82,
                                "column": 38
                              }
                            },
                            "left": {
                              "type": "LogicalExpression",
                              "start": 3138,
                              "end": 3156,
                              "loc": {
                                "start": {
                                  "line": 82,
                                  "column": 8
                                },
                                "end": {
                                  "line": 82,
                                  "column": 26
                                }
                              },
                              "left": {
                                "type": "UnaryExpression",
                                "start": 3138,
                                "end": 3143,
                                "loc": {
                                  "start": {
                                    "line": 82,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 82,
                                    "column": 13
                                  }
                                },
                                "operator": "!",
                                "prefix": true,
                                "argument": {
                                  "type": "Identifier",
                                  "start": 3139,
                                  "end": 3143,
                                  "loc": {
                                    "start": {
                                      "line": 82,
                                      "column": 9
                                    },
                                    "end": {
                                      "line": 82,
                                      "column": 13
                                    }
                                  },
                                  "name": "name"
                                }
                              },
                              "operator": "&&",
                              "right": {
                                "type": "UnaryExpression",
                                "start": 3147,
                                "end": 3156,
                                "loc": {
                                  "start": {
                                    "line": 82,
                                    "column": 17
                                  },
                                  "end": {
                                    "line": 82,
                                    "column": 26
                                  }
                                },
                                "operator": "!",
                                "prefix": true,
                                "argument": {
                                  "type": "Identifier",
                                  "start": 3148,
                                  "end": 3156,
                                  "loc": {
                                    "start": {
                                      "line": 82,
                                      "column": 18
                                    },
                                    "end": {
                                      "line": 82,
                                      "column": 26
                                    }
                                  },
                                  "name": "callback"
                                }
                              }
                            },
                            "operator": "&&",
                            "right": {
                              "type": "UnaryExpression",
                              "start": 3160,
                              "end": 3168,
                              "loc": {
                                "start": {
                                  "line": 82,
                                  "column": 30
                                },
                                "end": {
                                  "line": 82,
                                  "column": 38
                                }
                              },
                              "operator": "!",
                              "prefix": true,
                              "argument": {
                                "type": "Identifier",
                                "start": 3161,
                                "end": 3168,
                                "loc": {
                                  "start": {
                                    "line": 82,
                                    "column": 31
                                  },
                                  "end": {
                                    "line": 82,
                                    "column": 38
                                  }
                                },
                                "name": "context"
                              }
                            }
                          },
                          "consequent": {
                            "type": "BlockStatement",
                            "start": 3170,
                            "end": 3225,
                            "loc": {
                              "start": {
                                "line": 82,
                                "column": 40
                              },
                              "end": {
                                "line": 85,
                                "column": 5
                              }
                            },
                            "body": [
                              {
                                "type": "ExpressionStatement",
                                "start": 3178,
                                "end": 3200,
                                "loc": {
                                  "start": {
                                    "line": 83,
                                    "column": 6
                                  },
                                  "end": {
                                    "line": 83,
                                    "column": 28
                                  }
                                },
                                "expression": {
                                  "type": "AssignmentExpression",
                                  "start": 3178,
                                  "end": 3199,
                                  "loc": {
                                    "start": {
                                      "line": 83,
                                      "column": 6
                                    },
                                    "end": {
                                      "line": 83,
                                      "column": 27
                                    }
                                  },
                                  "operator": "=",
                                  "left": {
                                    "type": "MemberExpression",
                                    "start": 3178,
                                    "end": 3190,
                                    "loc": {
                                      "start": {
                                        "line": 83,
                                        "column": 6
                                      },
                                      "end": {
                                        "line": 83,
                                        "column": 18
                                      }
                                    },
                                    "object": {
                                      "type": "ThisExpression",
                                      "start": 3178,
                                      "end": 3182,
                                      "loc": {
                                        "start": {
                                          "line": 83,
                                          "column": 6
                                        },
                                        "end": {
                                          "line": 83,
                                          "column": 10
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 3183,
                                      "end": 3190,
                                      "loc": {
                                        "start": {
                                          "line": 83,
                                          "column": 11
                                        },
                                        "end": {
                                          "line": 83,
                                          "column": 18
                                        }
                                      },
                                      "name": "_events"
                                    },
                                    "computed": false
                                  },
                                  "right": {
                                    "type": "UnaryExpression",
                                    "start": 3193,
                                    "end": 3199,
                                    "loc": {
                                      "start": {
                                        "line": 83,
                                        "column": 21
                                      },
                                      "end": {
                                        "line": 83,
                                        "column": 27
                                      }
                                    },
                                    "operator": "void",
                                    "prefix": true,
                                    "argument": {
                                      "type": "Literal",
                                      "start": 3198,
                                      "end": 3199,
                                      "loc": {
                                        "start": {
                                          "line": 83,
                                          "column": 26
                                        },
                                        "end": {
                                          "line": 83,
                                          "column": 27
                                        }
                                      },
                                      "value": 0,
                                      "rawValue": 0,
                                      "raw": "0"
                                    }
                                  }
                                }
                              },
                              {
                                "type": "ReturnStatement",
                                "start": 3207,
                                "end": 3219,
                                "loc": {
                                  "start": {
                                    "line": 84,
                                    "column": 6
                                  },
                                  "end": {
                                    "line": 84,
                                    "column": 18
                                  }
                                },
                                "argument": {
                                  "type": "ThisExpression",
                                  "start": 3214,
                                  "end": 3218,
                                  "loc": {
                                    "start": {
                                      "line": 84,
                                      "column": 13
                                    },
                                    "end": {
                                      "line": 84,
                                      "column": 17
                                    }
                                  }
                                }
                              }
                            ]
                          },
                          "alternate": null
                        },
                        {
                          "type": "ExpressionStatement",
                          "start": 3230,
                          "end": 3273,
                          "loc": {
                            "start": {
                              "line": 86,
                              "column": 4
                            },
                            "end": {
                              "line": 86,
                              "column": 47
                            }
                          },
                          "expression": {
                            "type": "AssignmentExpression",
                            "start": 3230,
                            "end": 3272,
                            "loc": {
                              "start": {
                                "line": 86,
                                "column": 4
                              },
                              "end": {
                                "line": 86,
                                "column": 46
                              }
                            },
                            "operator": "=",
                            "left": {
                              "type": "Identifier",
                              "start": 3230,
                              "end": 3235,
                              "loc": {
                                "start": {
                                  "line": 86,
                                  "column": 4
                                },
                                "end": {
                                  "line": 86,
                                  "column": 9
                                }
                              },
                              "name": "names"
                            },
                            "right": {
                              "type": "ConditionalExpression",
                              "start": 3238,
                              "end": 3272,
                              "loc": {
                                "start": {
                                  "line": 86,
                                  "column": 12
                                },
                                "end": {
                                  "line": 86,
                                  "column": 46
                                }
                              },
                              "test": {
                                "type": "Identifier",
                                "start": 3238,
                                "end": 3242,
                                "loc": {
                                  "start": {
                                    "line": 86,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 86,
                                    "column": 16
                                  }
                                },
                                "name": "name"
                              },
                              "consequent": {
                                "type": "ArrayExpression",
                                "start": 3245,
                                "end": 3251,
                                "loc": {
                                  "start": {
                                    "line": 86,
                                    "column": 19
                                  },
                                  "end": {
                                    "line": 86,
                                    "column": 25
                                  }
                                },
                                "elements": [
                                  {
                                    "type": "Identifier",
                                    "start": 3246,
                                    "end": 3250,
                                    "loc": {
                                      "start": {
                                        "line": 86,
                                        "column": 20
                                      },
                                      "end": {
                                        "line": 86,
                                        "column": 24
                                      }
                                    },
                                    "name": "name"
                                  }
                                ]
                              },
                              "alternate": {
                                "type": "CallExpression",
                                "start": 3254,
                                "end": 3272,
                                "loc": {
                                  "start": {
                                    "line": 86,
                                    "column": 28
                                  },
                                  "end": {
                                    "line": 86,
                                    "column": 46
                                  }
                                },
                                "callee": {
                                  "type": "Identifier",
                                  "start": 3254,
                                  "end": 3258,
                                  "loc": {
                                    "start": {
                                      "line": 86,
                                      "column": 28
                                    },
                                    "end": {
                                      "line": 86,
                                      "column": 32
                                    }
                                  },
                                  "name": "keys"
                                },
                                "arguments": [
                                  {
                                    "type": "MemberExpression",
                                    "start": 3259,
                                    "end": 3271,
                                    "loc": {
                                      "start": {
                                        "line": 86,
                                        "column": 33
                                      },
                                      "end": {
                                        "line": 86,
                                        "column": 45
                                      }
                                    },
                                    "object": {
                                      "type": "ThisExpression",
                                      "start": 3259,
                                      "end": 3263,
                                      "loc": {
                                        "start": {
                                          "line": 86,
                                          "column": 33
                                        },
                                        "end": {
                                          "line": 86,
                                          "column": 37
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 3264,
                                      "end": 3271,
                                      "loc": {
                                        "start": {
                                          "line": 86,
                                          "column": 38
                                        },
                                        "end": {
                                          "line": 86,
                                          "column": 45
                                        }
                                      },
                                      "name": "_events"
                                    },
                                    "computed": false
                                  }
                                ]
                              }
                            }
                          }
                        },
                        {
                          "type": "ForStatement",
                          "start": 3278,
                          "end": 3832,
                          "loc": {
                            "start": {
                              "line": 87,
                              "column": 4
                            },
                            "end": {
                              "line": 102,
                              "column": 5
                            }
                          },
                          "init": {
                            "type": "SequenceExpression",
                            "start": 3283,
                            "end": 3306,
                            "loc": {
                              "start": {
                                "line": 87,
                                "column": 9
                              },
                              "end": {
                                "line": 87,
                                "column": 32
                              }
                            },
                            "expressions": [
                              {
                                "type": "AssignmentExpression",
                                "start": 3283,
                                "end": 3288,
                                "loc": {
                                  "start": {
                                    "line": 87,
                                    "column": 9
                                  },
                                  "end": {
                                    "line": 87,
                                    "column": 14
                                  }
                                },
                                "operator": "=",
                                "left": {
                                  "type": "Identifier",
                                  "start": 3283,
                                  "end": 3284,
                                  "loc": {
                                    "start": {
                                      "line": 87,
                                      "column": 9
                                    },
                                    "end": {
                                      "line": 87,
                                      "column": 10
                                    }
                                  },
                                  "name": "i"
                                },
                                "right": {
                                  "type": "Literal",
                                  "start": 3287,
                                  "end": 3288,
                                  "loc": {
                                    "start": {
                                      "line": 87,
                                      "column": 13
                                    },
                                    "end": {
                                      "line": 87,
                                      "column": 14
                                    }
                                  },
                                  "value": 0,
                                  "rawValue": 0,
                                  "raw": "0"
                                }
                              },
                              {
                                "type": "AssignmentExpression",
                                "start": 3290,
                                "end": 3306,
                                "loc": {
                                  "start": {
                                    "line": 87,
                                    "column": 16
                                  },
                                  "end": {
                                    "line": 87,
                                    "column": 32
                                  }
                                },
                                "operator": "=",
                                "left": {
                                  "type": "Identifier",
                                  "start": 3290,
                                  "end": 3291,
                                  "loc": {
                                    "start": {
                                      "line": 87,
                                      "column": 16
                                    },
                                    "end": {
                                      "line": 87,
                                      "column": 17
                                    }
                                  },
                                  "name": "l"
                                },
                                "right": {
                                  "type": "MemberExpression",
                                  "start": 3294,
                                  "end": 3306,
                                  "loc": {
                                    "start": {
                                      "line": 87,
                                      "column": 20
                                    },
                                    "end": {
                                      "line": 87,
                                      "column": 32
                                    }
                                  },
                                  "object": {
                                    "type": "Identifier",
                                    "start": 3294,
                                    "end": 3299,
                                    "loc": {
                                      "start": {
                                        "line": 87,
                                        "column": 20
                                      },
                                      "end": {
                                        "line": 87,
                                        "column": 25
                                      }
                                    },
                                    "name": "names"
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 3300,
                                    "end": 3306,
                                    "loc": {
                                      "start": {
                                        "line": 87,
                                        "column": 26
                                      },
                                      "end": {
                                        "line": 87,
                                        "column": 32
                                      }
                                    },
                                    "name": "length"
                                  },
                                  "computed": false
                                }
                              }
                            ]
                          },
                          "test": {
                            "type": "BinaryExpression",
                            "start": 3308,
                            "end": 3313,
                            "loc": {
                              "start": {
                                "line": 87,
                                "column": 34
                              },
                              "end": {
                                "line": 87,
                                "column": 39
                              }
                            },
                            "left": {
                              "type": "Identifier",
                              "start": 3308,
                              "end": 3309,
                              "loc": {
                                "start": {
                                  "line": 87,
                                  "column": 34
                                },
                                "end": {
                                  "line": 87,
                                  "column": 35
                                }
                              },
                              "name": "i"
                            },
                            "operator": "<",
                            "right": {
                              "type": "Identifier",
                              "start": 3312,
                              "end": 3313,
                              "loc": {
                                "start": {
                                  "line": 87,
                                  "column": 38
                                },
                                "end": {
                                  "line": 87,
                                  "column": 39
                                }
                              },
                              "name": "l"
                            }
                          },
                          "update": {
                            "type": "UpdateExpression",
                            "start": 3315,
                            "end": 3318,
                            "loc": {
                              "start": {
                                "line": 87,
                                "column": 41
                              },
                              "end": {
                                "line": 87,
                                "column": 44
                              }
                            },
                            "operator": "++",
                            "prefix": false,
                            "argument": {
                              "type": "Identifier",
                              "start": 3315,
                              "end": 3316,
                              "loc": {
                                "start": {
                                  "line": 87,
                                  "column": 41
                                },
                                "end": {
                                  "line": 87,
                                  "column": 42
                                }
                              },
                              "name": "i"
                            }
                          },
                          "body": {
                            "type": "BlockStatement",
                            "start": 3320,
                            "end": 3832,
                            "loc": {
                              "start": {
                                "line": 87,
                                "column": 46
                              },
                              "end": {
                                "line": 102,
                                "column": 5
                              }
                            },
                            "body": [
                              {
                                "type": "ExpressionStatement",
                                "start": 3328,
                                "end": 3344,
                                "loc": {
                                  "start": {
                                    "line": 88,
                                    "column": 6
                                  },
                                  "end": {
                                    "line": 88,
                                    "column": 22
                                  }
                                },
                                "expression": {
                                  "type": "AssignmentExpression",
                                  "start": 3328,
                                  "end": 3343,
                                  "loc": {
                                    "start": {
                                      "line": 88,
                                      "column": 6
                                    },
                                    "end": {
                                      "line": 88,
                                      "column": 21
                                    }
                                  },
                                  "operator": "=",
                                  "left": {
                                    "type": "Identifier",
                                    "start": 3328,
                                    "end": 3332,
                                    "loc": {
                                      "start": {
                                        "line": 88,
                                        "column": 6
                                      },
                                      "end": {
                                        "line": 88,
                                        "column": 10
                                      }
                                    },
                                    "name": "name"
                                  },
                                  "right": {
                                    "type": "MemberExpression",
                                    "start": 3335,
                                    "end": 3343,
                                    "loc": {
                                      "start": {
                                        "line": 88,
                                        "column": 13
                                      },
                                      "end": {
                                        "line": 88,
                                        "column": 21
                                      }
                                    },
                                    "object": {
                                      "type": "Identifier",
                                      "start": 3335,
                                      "end": 3340,
                                      "loc": {
                                        "start": {
                                          "line": 88,
                                          "column": 13
                                        },
                                        "end": {
                                          "line": 88,
                                          "column": 18
                                        }
                                      },
                                      "name": "names"
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 3341,
                                      "end": 3342,
                                      "loc": {
                                        "start": {
                                          "line": 88,
                                          "column": 19
                                        },
                                        "end": {
                                          "line": 88,
                                          "column": 20
                                        }
                                      },
                                      "name": "i"
                                    },
                                    "computed": true
                                  }
                                }
                              },
                              {
                                "type": "IfStatement",
                                "start": 3351,
                                "end": 3826,
                                "loc": {
                                  "start": {
                                    "line": 89,
                                    "column": 6
                                  },
                                  "end": {
                                    "line": 101,
                                    "column": 7
                                  }
                                },
                                "test": {
                                  "type": "AssignmentExpression",
                                  "start": 3355,
                                  "end": 3382,
                                  "loc": {
                                    "start": {
                                      "line": 89,
                                      "column": 10
                                    },
                                    "end": {
                                      "line": 89,
                                      "column": 37
                                    }
                                  },
                                  "operator": "=",
                                  "left": {
                                    "type": "Identifier",
                                    "start": 3355,
                                    "end": 3361,
                                    "loc": {
                                      "start": {
                                        "line": 89,
                                        "column": 10
                                      },
                                      "end": {
                                        "line": 89,
                                        "column": 16
                                      }
                                    },
                                    "name": "events"
                                  },
                                  "right": {
                                    "type": "MemberExpression",
                                    "start": 3364,
                                    "end": 3382,
                                    "loc": {
                                      "start": {
                                        "line": 89,
                                        "column": 19
                                      },
                                      "end": {
                                        "line": 89,
                                        "column": 37
                                      }
                                    },
                                    "object": {
                                      "type": "MemberExpression",
                                      "start": 3364,
                                      "end": 3376,
                                      "loc": {
                                        "start": {
                                          "line": 89,
                                          "column": 19
                                        },
                                        "end": {
                                          "line": 89,
                                          "column": 31
                                        }
                                      },
                                      "object": {
                                        "type": "ThisExpression",
                                        "start": 3364,
                                        "end": 3368,
                                        "loc": {
                                          "start": {
                                            "line": 89,
                                            "column": 19
                                          },
                                          "end": {
                                            "line": 89,
                                            "column": 23
                                          }
                                        }
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "start": 3369,
                                        "end": 3376,
                                        "loc": {
                                          "start": {
                                            "line": 89,
                                            "column": 24
                                          },
                                          "end": {
                                            "line": 89,
                                            "column": 31
                                          }
                                        },
                                        "name": "_events"
                                      },
                                      "computed": false
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 3377,
                                      "end": 3381,
                                      "loc": {
                                        "start": {
                                          "line": 89,
                                          "column": 32
                                        },
                                        "end": {
                                          "line": 89,
                                          "column": 36
                                        }
                                      },
                                      "name": "name"
                                    },
                                    "computed": true
                                  }
                                },
                                "consequent": {
                                  "type": "BlockStatement",
                                  "start": 3384,
                                  "end": 3826,
                                  "loc": {
                                    "start": {
                                      "line": 89,
                                      "column": 39
                                    },
                                    "end": {
                                      "line": 101,
                                      "column": 7
                                    }
                                  },
                                  "body": [
                                    {
                                      "type": "ExpressionStatement",
                                      "start": 3394,
                                      "end": 3427,
                                      "loc": {
                                        "start": {
                                          "line": 90,
                                          "column": 8
                                        },
                                        "end": {
                                          "line": 90,
                                          "column": 41
                                        }
                                      },
                                      "expression": {
                                        "type": "AssignmentExpression",
                                        "start": 3394,
                                        "end": 3426,
                                        "loc": {
                                          "start": {
                                            "line": 90,
                                            "column": 8
                                          },
                                          "end": {
                                            "line": 90,
                                            "column": 40
                                          }
                                        },
                                        "operator": "=",
                                        "left": {
                                          "type": "MemberExpression",
                                          "start": 3394,
                                          "end": 3412,
                                          "loc": {
                                            "start": {
                                              "line": 90,
                                              "column": 8
                                            },
                                            "end": {
                                              "line": 90,
                                              "column": 26
                                            }
                                          },
                                          "object": {
                                            "type": "MemberExpression",
                                            "start": 3394,
                                            "end": 3406,
                                            "loc": {
                                              "start": {
                                                "line": 90,
                                                "column": 8
                                              },
                                              "end": {
                                                "line": 90,
                                                "column": 20
                                              }
                                            },
                                            "object": {
                                              "type": "ThisExpression",
                                              "start": 3394,
                                              "end": 3398,
                                              "loc": {
                                                "start": {
                                                  "line": 90,
                                                  "column": 8
                                                },
                                                "end": {
                                                  "line": 90,
                                                  "column": 12
                                                }
                                              }
                                            },
                                            "property": {
                                              "type": "Identifier",
                                              "start": 3399,
                                              "end": 3406,
                                              "loc": {
                                                "start": {
                                                  "line": 90,
                                                  "column": 13
                                                },
                                                "end": {
                                                  "line": 90,
                                                  "column": 20
                                                }
                                              },
                                              "name": "_events"
                                            },
                                            "computed": false
                                          },
                                          "property": {
                                            "type": "Identifier",
                                            "start": 3407,
                                            "end": 3411,
                                            "loc": {
                                              "start": {
                                                "line": 90,
                                                "column": 21
                                              },
                                              "end": {
                                                "line": 90,
                                                "column": 25
                                              }
                                            },
                                            "name": "name"
                                          },
                                          "computed": true
                                        },
                                        "right": {
                                          "type": "AssignmentExpression",
                                          "start": 3415,
                                          "end": 3426,
                                          "loc": {
                                            "start": {
                                              "line": 90,
                                              "column": 29
                                            },
                                            "end": {
                                              "line": 90,
                                              "column": 40
                                            }
                                          },
                                          "operator": "=",
                                          "left": {
                                            "type": "Identifier",
                                            "start": 3415,
                                            "end": 3421,
                                            "loc": {
                                              "start": {
                                                "line": 90,
                                                "column": 29
                                              },
                                              "end": {
                                                "line": 90,
                                                "column": 35
                                              }
                                            },
                                            "name": "retain"
                                          },
                                          "right": {
                                            "type": "ArrayExpression",
                                            "start": 3424,
                                            "end": 3426,
                                            "loc": {
                                              "start": {
                                                "line": 90,
                                                "column": 38
                                              },
                                              "end": {
                                                "line": 90,
                                                "column": 40
                                              }
                                            },
                                            "elements": []
                                          }
                                        }
                                      }
                                    },
                                    {
                                      "type": "IfStatement",
                                      "start": 3436,
                                      "end": 3763,
                                      "loc": {
                                        "start": {
                                          "line": 91,
                                          "column": 8
                                        },
                                        "end": {
                                          "line": 99,
                                          "column": 9
                                        }
                                      },
                                      "test": {
                                        "type": "LogicalExpression",
                                        "start": 3440,
                                        "end": 3459,
                                        "loc": {
                                          "start": {
                                            "line": 91,
                                            "column": 12
                                          },
                                          "end": {
                                            "line": 91,
                                            "column": 31
                                          }
                                        },
                                        "left": {
                                          "type": "Identifier",
                                          "start": 3440,
                                          "end": 3448,
                                          "loc": {
                                            "start": {
                                              "line": 91,
                                              "column": 12
                                            },
                                            "end": {
                                              "line": 91,
                                              "column": 20
                                            }
                                          },
                                          "name": "callback"
                                        },
                                        "operator": "||",
                                        "right": {
                                          "type": "Identifier",
                                          "start": 3452,
                                          "end": 3459,
                                          "loc": {
                                            "start": {
                                              "line": 91,
                                              "column": 24
                                            },
                                            "end": {
                                              "line": 91,
                                              "column": 31
                                            }
                                          },
                                          "name": "context"
                                        }
                                      },
                                      "consequent": {
                                        "type": "BlockStatement",
                                        "start": 3461,
                                        "end": 3763,
                                        "loc": {
                                          "start": {
                                            "line": 91,
                                            "column": 33
                                          },
                                          "end": {
                                            "line": 99,
                                            "column": 9
                                          }
                                        },
                                        "body": [
                                          {
                                            "type": "ForStatement",
                                            "start": 3473,
                                            "end": 3753,
                                            "loc": {
                                              "start": {
                                                "line": 92,
                                                "column": 10
                                              },
                                              "end": {
                                                "line": 98,
                                                "column": 11
                                              }
                                            },
                                            "init": {
                                              "type": "SequenceExpression",
                                              "start": 3478,
                                              "end": 3502,
                                              "loc": {
                                                "start": {
                                                  "line": 92,
                                                  "column": 15
                                                },
                                                "end": {
                                                  "line": 92,
                                                  "column": 39
                                                }
                                              },
                                              "expressions": [
                                                {
                                                  "type": "AssignmentExpression",
                                                  "start": 3478,
                                                  "end": 3483,
                                                  "loc": {
                                                    "start": {
                                                      "line": 92,
                                                      "column": 15
                                                    },
                                                    "end": {
                                                      "line": 92,
                                                      "column": 20
                                                    }
                                                  },
                                                  "operator": "=",
                                                  "left": {
                                                    "type": "Identifier",
                                                    "start": 3478,
                                                    "end": 3479,
                                                    "loc": {
                                                      "start": {
                                                        "line": 92,
                                                        "column": 15
                                                      },
                                                      "end": {
                                                        "line": 92,
                                                        "column": 16
                                                      }
                                                    },
                                                    "name": "j"
                                                  },
                                                  "right": {
                                                    "type": "Literal",
                                                    "start": 3482,
                                                    "end": 3483,
                                                    "loc": {
                                                      "start": {
                                                        "line": 92,
                                                        "column": 19
                                                      },
                                                      "end": {
                                                        "line": 92,
                                                        "column": 20
                                                      }
                                                    },
                                                    "value": 0,
                                                    "rawValue": 0,
                                                    "raw": "0"
                                                  }
                                                },
                                                {
                                                  "type": "AssignmentExpression",
                                                  "start": 3485,
                                                  "end": 3502,
                                                  "loc": {
                                                    "start": {
                                                      "line": 92,
                                                      "column": 22
                                                    },
                                                    "end": {
                                                      "line": 92,
                                                      "column": 39
                                                    }
                                                  },
                                                  "operator": "=",
                                                  "left": {
                                                    "type": "Identifier",
                                                    "start": 3485,
                                                    "end": 3486,
                                                    "loc": {
                                                      "start": {
                                                        "line": 92,
                                                        "column": 22
                                                      },
                                                      "end": {
                                                        "line": 92,
                                                        "column": 23
                                                      }
                                                    },
                                                    "name": "k"
                                                  },
                                                  "right": {
                                                    "type": "MemberExpression",
                                                    "start": 3489,
                                                    "end": 3502,
                                                    "loc": {
                                                      "start": {
                                                        "line": 92,
                                                        "column": 26
                                                      },
                                                      "end": {
                                                        "line": 92,
                                                        "column": 39
                                                      }
                                                    },
                                                    "object": {
                                                      "type": "Identifier",
                                                      "start": 3489,
                                                      "end": 3495,
                                                      "loc": {
                                                        "start": {
                                                          "line": 92,
                                                          "column": 26
                                                        },
                                                        "end": {
                                                          "line": 92,
                                                          "column": 32
                                                        }
                                                      },
                                                      "name": "events"
                                                    },
                                                    "property": {
                                                      "type": "Identifier",
                                                      "start": 3496,
                                                      "end": 3502,
                                                      "loc": {
                                                        "start": {
                                                          "line": 92,
                                                          "column": 33
                                                        },
                                                        "end": {
                                                          "line": 92,
                                                          "column": 39
                                                        }
                                                      },
                                                      "name": "length"
                                                    },
                                                    "computed": false
                                                  }
                                                }
                                              ]
                                            },
                                            "test": {
                                              "type": "BinaryExpression",
                                              "start": 3504,
                                              "end": 3509,
                                              "loc": {
                                                "start": {
                                                  "line": 92,
                                                  "column": 41
                                                },
                                                "end": {
                                                  "line": 92,
                                                  "column": 46
                                                }
                                              },
                                              "left": {
                                                "type": "Identifier",
                                                "start": 3504,
                                                "end": 3505,
                                                "loc": {
                                                  "start": {
                                                    "line": 92,
                                                    "column": 41
                                                  },
                                                  "end": {
                                                    "line": 92,
                                                    "column": 42
                                                  }
                                                },
                                                "name": "j"
                                              },
                                              "operator": "<",
                                              "right": {
                                                "type": "Identifier",
                                                "start": 3508,
                                                "end": 3509,
                                                "loc": {
                                                  "start": {
                                                    "line": 92,
                                                    "column": 45
                                                  },
                                                  "end": {
                                                    "line": 92,
                                                    "column": 46
                                                  }
                                                },
                                                "name": "k"
                                              }
                                            },
                                            "update": {
                                              "type": "UpdateExpression",
                                              "start": 3511,
                                              "end": 3514,
                                              "loc": {
                                                "start": {
                                                  "line": 92,
                                                  "column": 48
                                                },
                                                "end": {
                                                  "line": 92,
                                                  "column": 51
                                                }
                                              },
                                              "operator": "++",
                                              "prefix": false,
                                              "argument": {
                                                "type": "Identifier",
                                                "start": 3511,
                                                "end": 3512,
                                                "loc": {
                                                  "start": {
                                                    "line": 92,
                                                    "column": 48
                                                  },
                                                  "end": {
                                                    "line": 92,
                                                    "column": 49
                                                  }
                                                },
                                                "name": "j"
                                              }
                                            },
                                            "body": {
                                              "type": "BlockStatement",
                                              "start": 3516,
                                              "end": 3753,
                                              "loc": {
                                                "start": {
                                                  "line": 92,
                                                  "column": 53
                                                },
                                                "end": {
                                                  "line": 98,
                                                  "column": 11
                                                }
                                              },
                                              "body": [
                                                {
                                                  "type": "ExpressionStatement",
                                                  "start": 3530,
                                                  "end": 3545,
                                                  "loc": {
                                                    "start": {
                                                      "line": 93,
                                                      "column": 12
                                                    },
                                                    "end": {
                                                      "line": 93,
                                                      "column": 27
                                                    }
                                                  },
                                                  "expression": {
                                                    "type": "AssignmentExpression",
                                                    "start": 3530,
                                                    "end": 3544,
                                                    "loc": {
                                                      "start": {
                                                        "line": 93,
                                                        "column": 12
                                                      },
                                                      "end": {
                                                        "line": 93,
                                                        "column": 26
                                                      }
                                                    },
                                                    "operator": "=",
                                                    "left": {
                                                      "type": "Identifier",
                                                      "start": 3530,
                                                      "end": 3532,
                                                      "loc": {
                                                        "start": {
                                                          "line": 93,
                                                          "column": 12
                                                        },
                                                        "end": {
                                                          "line": 93,
                                                          "column": 14
                                                        }
                                                      },
                                                      "name": "ev"
                                                    },
                                                    "right": {
                                                      "type": "MemberExpression",
                                                      "start": 3535,
                                                      "end": 3544,
                                                      "loc": {
                                                        "start": {
                                                          "line": 93,
                                                          "column": 17
                                                        },
                                                        "end": {
                                                          "line": 93,
                                                          "column": 26
                                                        }
                                                      },
                                                      "object": {
                                                        "type": "Identifier",
                                                        "start": 3535,
                                                        "end": 3541,
                                                        "loc": {
                                                          "start": {
                                                            "line": 93,
                                                            "column": 17
                                                          },
                                                          "end": {
                                                            "line": 93,
                                                            "column": 23
                                                          }
                                                        },
                                                        "name": "events"
                                                      },
                                                      "property": {
                                                        "type": "Identifier",
                                                        "start": 3542,
                                                        "end": 3543,
                                                        "loc": {
                                                          "start": {
                                                            "line": 93,
                                                            "column": 24
                                                          },
                                                          "end": {
                                                            "line": 93,
                                                            "column": 25
                                                          }
                                                        },
                                                        "name": "j"
                                                      },
                                                      "computed": true
                                                    }
                                                  }
                                                },
                                                {
                                                  "type": "IfStatement",
                                                  "start": 3558,
                                                  "end": 3741,
                                                  "loc": {
                                                    "start": {
                                                      "line": 94,
                                                      "column": 12
                                                    },
                                                    "end": {
                                                      "line": 97,
                                                      "column": 13
                                                    }
                                                  },
                                                  "test": {
                                                    "type": "LogicalExpression",
                                                    "start": 3562,
                                                    "end": 3693,
                                                    "loc": {
                                                      "start": {
                                                        "line": 94,
                                                        "column": 16
                                                      },
                                                      "end": {
                                                        "line": 95,
                                                        "column": 51
                                                      }
                                                    },
                                                    "left": {
                                                      "type": "LogicalExpression",
                                                      "start": 3563,
                                                      "end": 3637,
                                                      "loc": {
                                                        "start": {
                                                          "line": 94,
                                                          "column": 17
                                                        },
                                                        "end": {
                                                          "line": 94,
                                                          "column": 91
                                                        }
                                                      },
                                                      "left": {
                                                        "type": "LogicalExpression",
                                                        "start": 3563,
                                                        "end": 3599,
                                                        "loc": {
                                                          "start": {
                                                            "line": 94,
                                                            "column": 17
                                                          },
                                                          "end": {
                                                            "line": 94,
                                                            "column": 53
                                                          }
                                                        },
                                                        "left": {
                                                          "type": "Identifier",
                                                          "start": 3563,
                                                          "end": 3571,
                                                          "loc": {
                                                            "start": {
                                                              "line": 94,
                                                              "column": 17
                                                            },
                                                            "end": {
                                                              "line": 94,
                                                              "column": 25
                                                            }
                                                          },
                                                          "name": "callback"
                                                        },
                                                        "operator": "&&",
                                                        "right": {
                                                          "type": "BinaryExpression",
                                                          "start": 3575,
                                                          "end": 3599,
                                                          "loc": {
                                                            "start": {
                                                              "line": 94,
                                                              "column": 29
                                                            },
                                                            "end": {
                                                              "line": 94,
                                                              "column": 53
                                                            }
                                                          },
                                                          "left": {
                                                            "type": "Identifier",
                                                            "start": 3575,
                                                            "end": 3583,
                                                            "loc": {
                                                              "start": {
                                                                "line": 94,
                                                                "column": 29
                                                              },
                                                              "end": {
                                                                "line": 94,
                                                                "column": 37
                                                              }
                                                            },
                                                            "name": "callback"
                                                          },
                                                          "operator": "!==",
                                                          "right": {
                                                            "type": "MemberExpression",
                                                            "start": 3588,
                                                            "end": 3599,
                                                            "loc": {
                                                              "start": {
                                                                "line": 94,
                                                                "column": 42
                                                              },
                                                              "end": {
                                                                "line": 94,
                                                                "column": 53
                                                              }
                                                            },
                                                            "object": {
                                                              "type": "Identifier",
                                                              "start": 3588,
                                                              "end": 3590,
                                                              "loc": {
                                                                "start": {
                                                                  "line": 94,
                                                                  "column": 42
                                                                },
                                                                "end": {
                                                                  "line": 94,
                                                                  "column": 44
                                                                }
                                                              },
                                                              "name": "ev"
                                                            },
                                                            "property": {
                                                              "type": "Identifier",
                                                              "start": 3591,
                                                              "end": 3599,
                                                              "loc": {
                                                                "start": {
                                                                  "line": 94,
                                                                  "column": 45
                                                                },
                                                                "end": {
                                                                  "line": 94,
                                                                  "column": 53
                                                                }
                                                              },
                                                              "name": "callback"
                                                            },
                                                            "computed": false
                                                          }
                                                        }
                                                      },
                                                      "operator": "&&",
                                                      "right": {
                                                        "type": "BinaryExpression",
                                                        "start": 3603,
                                                        "end": 3637,
                                                        "loc": {
                                                          "start": {
                                                            "line": 94,
                                                            "column": 57
                                                          },
                                                          "end": {
                                                            "line": 94,
                                                            "column": 91
                                                          }
                                                        },
                                                        "left": {
                                                          "type": "Identifier",
                                                          "start": 3603,
                                                          "end": 3611,
                                                          "loc": {
                                                            "start": {
                                                              "line": 94,
                                                              "column": 57
                                                            },
                                                            "end": {
                                                              "line": 94,
                                                              "column": 65
                                                            }
                                                          },
                                                          "name": "callback"
                                                        },
                                                        "operator": "!==",
                                                        "right": {
                                                          "type": "MemberExpression",
                                                          "start": 3616,
                                                          "end": 3637,
                                                          "loc": {
                                                            "start": {
                                                              "line": 94,
                                                              "column": 70
                                                            },
                                                            "end": {
                                                              "line": 94,
                                                              "column": 91
                                                            }
                                                          },
                                                          "object": {
                                                            "type": "MemberExpression",
                                                            "start": 3616,
                                                            "end": 3627,
                                                            "loc": {
                                                              "start": {
                                                                "line": 94,
                                                                "column": 70
                                                              },
                                                              "end": {
                                                                "line": 94,
                                                                "column": 81
                                                              }
                                                            },
                                                            "object": {
                                                              "type": "Identifier",
                                                              "start": 3616,
                                                              "end": 3618,
                                                              "loc": {
                                                                "start": {
                                                                  "line": 94,
                                                                  "column": 70
                                                                },
                                                                "end": {
                                                                  "line": 94,
                                                                  "column": 72
                                                                }
                                                              },
                                                              "name": "ev"
                                                            },
                                                            "property": {
                                                              "type": "Identifier",
                                                              "start": 3619,
                                                              "end": 3627,
                                                              "loc": {
                                                                "start": {
                                                                  "line": 94,
                                                                  "column": 73
                                                                },
                                                                "end": {
                                                                  "line": 94,
                                                                  "column": 81
                                                                }
                                                              },
                                                              "name": "callback"
                                                            },
                                                            "computed": false
                                                          },
                                                          "property": {
                                                            "type": "Identifier",
                                                            "start": 3628,
                                                            "end": 3637,
                                                            "loc": {
                                                              "start": {
                                                                "line": 94,
                                                                "column": 82
                                                              },
                                                              "end": {
                                                                "line": 94,
                                                                "column": 91
                                                              }
                                                            },
                                                            "name": "_callback"
                                                          },
                                                          "computed": false
                                                        }
                                                      },
                                                      "parenthesizedExpression": true
                                                    },
                                                    "operator": "||",
                                                    "right": {
                                                      "type": "LogicalExpression",
                                                      "start": 3659,
                                                      "end": 3692,
                                                      "loc": {
                                                        "start": {
                                                          "line": 95,
                                                          "column": 17
                                                        },
                                                        "end": {
                                                          "line": 95,
                                                          "column": 50
                                                        }
                                                      },
                                                      "left": {
                                                        "type": "Identifier",
                                                        "start": 3659,
                                                        "end": 3666,
                                                        "loc": {
                                                          "start": {
                                                            "line": 95,
                                                            "column": 17
                                                          },
                                                          "end": {
                                                            "line": 95,
                                                            "column": 24
                                                          }
                                                        },
                                                        "name": "context"
                                                      },
                                                      "operator": "&&",
                                                      "right": {
                                                        "type": "BinaryExpression",
                                                        "start": 3670,
                                                        "end": 3692,
                                                        "loc": {
                                                          "start": {
                                                            "line": 95,
                                                            "column": 28
                                                          },
                                                          "end": {
                                                            "line": 95,
                                                            "column": 50
                                                          }
                                                        },
                                                        "left": {
                                                          "type": "Identifier",
                                                          "start": 3670,
                                                          "end": 3677,
                                                          "loc": {
                                                            "start": {
                                                              "line": 95,
                                                              "column": 28
                                                            },
                                                            "end": {
                                                              "line": 95,
                                                              "column": 35
                                                            }
                                                          },
                                                          "name": "context"
                                                        },
                                                        "operator": "!==",
                                                        "right": {
                                                          "type": "MemberExpression",
                                                          "start": 3682,
                                                          "end": 3692,
                                                          "loc": {
                                                            "start": {
                                                              "line": 95,
                                                              "column": 40
                                                            },
                                                            "end": {
                                                              "line": 95,
                                                              "column": 50
                                                            }
                                                          },
                                                          "object": {
                                                            "type": "Identifier",
                                                            "start": 3682,
                                                            "end": 3684,
                                                            "loc": {
                                                              "start": {
                                                                "line": 95,
                                                                "column": 40
                                                              },
                                                              "end": {
                                                                "line": 95,
                                                                "column": 42
                                                              }
                                                            },
                                                            "name": "ev"
                                                          },
                                                          "property": {
                                                            "type": "Identifier",
                                                            "start": 3685,
                                                            "end": 3692,
                                                            "loc": {
                                                              "start": {
                                                                "line": 95,
                                                                "column": 43
                                                              },
                                                              "end": {
                                                                "line": 95,
                                                                "column": 50
                                                              }
                                                            },
                                                            "name": "context"
                                                          },
                                                          "computed": false
                                                        }
                                                      },
                                                      "parenthesizedExpression": true
                                                    }
                                                  },
                                                  "consequent": {
                                                    "type": "BlockStatement",
                                                    "start": 3695,
                                                    "end": 3741,
                                                    "loc": {
                                                      "start": {
                                                        "line": 95,
                                                        "column": 53
                                                      },
                                                      "end": {
                                                        "line": 97,
                                                        "column": 13
                                                      }
                                                    },
                                                    "body": [
                                                      {
                                                        "type": "ExpressionStatement",
                                                        "start": 3711,
                                                        "end": 3727,
                                                        "loc": {
                                                          "start": {
                                                            "line": 96,
                                                            "column": 14
                                                          },
                                                          "end": {
                                                            "line": 96,
                                                            "column": 30
                                                          }
                                                        },
                                                        "expression": {
                                                          "type": "CallExpression",
                                                          "start": 3711,
                                                          "end": 3726,
                                                          "loc": {
                                                            "start": {
                                                              "line": 96,
                                                              "column": 14
                                                            },
                                                            "end": {
                                                              "line": 96,
                                                              "column": 29
                                                            }
                                                          },
                                                          "callee": {
                                                            "type": "MemberExpression",
                                                            "start": 3711,
                                                            "end": 3722,
                                                            "loc": {
                                                              "start": {
                                                                "line": 96,
                                                                "column": 14
                                                              },
                                                              "end": {
                                                                "line": 96,
                                                                "column": 25
                                                              }
                                                            },
                                                            "object": {
                                                              "type": "Identifier",
                                                              "start": 3711,
                                                              "end": 3717,
                                                              "loc": {
                                                                "start": {
                                                                  "line": 96,
                                                                  "column": 14
                                                                },
                                                                "end": {
                                                                  "line": 96,
                                                                  "column": 20
                                                                }
                                                              },
                                                              "name": "retain"
                                                            },
                                                            "property": {
                                                              "type": "Identifier",
                                                              "start": 3718,
                                                              "end": 3722,
                                                              "loc": {
                                                                "start": {
                                                                  "line": 96,
                                                                  "column": 21
                                                                },
                                                                "end": {
                                                                  "line": 96,
                                                                  "column": 25
                                                                }
                                                              },
                                                              "name": "push"
                                                            },
                                                            "computed": false
                                                          },
                                                          "arguments": [
                                                            {
                                                              "type": "Identifier",
                                                              "start": 3723,
                                                              "end": 3725,
                                                              "loc": {
                                                                "start": {
                                                                  "line": 96,
                                                                  "column": 26
                                                                },
                                                                "end": {
                                                                  "line": 96,
                                                                  "column": 28
                                                                }
                                                              },
                                                              "name": "ev"
                                                            }
                                                          ]
                                                        }
                                                      }
                                                    ]
                                                  },
                                                  "alternate": null
                                                }
                                              ]
                                            }
                                          }
                                        ]
                                      },
                                      "alternate": null
                                    },
                                    {
                                      "type": "IfStatement",
                                      "start": 3772,
                                      "end": 3818,
                                      "loc": {
                                        "start": {
                                          "line": 100,
                                          "column": 8
                                        },
                                        "end": {
                                          "line": 100,
                                          "column": 54
                                        }
                                      },
                                      "test": {
                                        "type": "UnaryExpression",
                                        "start": 3776,
                                        "end": 3790,
                                        "loc": {
                                          "start": {
                                            "line": 100,
                                            "column": 12
                                          },
                                          "end": {
                                            "line": 100,
                                            "column": 26
                                          }
                                        },
                                        "operator": "!",
                                        "prefix": true,
                                        "argument": {
                                          "type": "MemberExpression",
                                          "start": 3777,
                                          "end": 3790,
                                          "loc": {
                                            "start": {
                                              "line": 100,
                                              "column": 13
                                            },
                                            "end": {
                                              "line": 100,
                                              "column": 26
                                            }
                                          },
                                          "object": {
                                            "type": "Identifier",
                                            "start": 3777,
                                            "end": 3783,
                                            "loc": {
                                              "start": {
                                                "line": 100,
                                                "column": 13
                                              },
                                              "end": {
                                                "line": 100,
                                                "column": 19
                                              }
                                            },
                                            "name": "retain"
                                          },
                                          "property": {
                                            "type": "Identifier",
                                            "start": 3784,
                                            "end": 3790,
                                            "loc": {
                                              "start": {
                                                "line": 100,
                                                "column": 20
                                              },
                                              "end": {
                                                "line": 100,
                                                "column": 26
                                              }
                                            },
                                            "name": "length"
                                          },
                                          "computed": false
                                        }
                                      },
                                      "consequent": {
                                        "type": "ExpressionStatement",
                                        "start": 3792,
                                        "end": 3818,
                                        "loc": {
                                          "start": {
                                            "line": 100,
                                            "column": 28
                                          },
                                          "end": {
                                            "line": 100,
                                            "column": 54
                                          }
                                        },
                                        "expression": {
                                          "type": "UnaryExpression",
                                          "start": 3792,
                                          "end": 3817,
                                          "loc": {
                                            "start": {
                                              "line": 100,
                                              "column": 28
                                            },
                                            "end": {
                                              "line": 100,
                                              "column": 53
                                            }
                                          },
                                          "operator": "delete",
                                          "prefix": true,
                                          "argument": {
                                            "type": "MemberExpression",
                                            "start": 3799,
                                            "end": 3817,
                                            "loc": {
                                              "start": {
                                                "line": 100,
                                                "column": 35
                                              },
                                              "end": {
                                                "line": 100,
                                                "column": 53
                                              }
                                            },
                                            "object": {
                                              "type": "MemberExpression",
                                              "start": 3799,
                                              "end": 3811,
                                              "loc": {
                                                "start": {
                                                  "line": 100,
                                                  "column": 35
                                                },
                                                "end": {
                                                  "line": 100,
                                                  "column": 47
                                                }
                                              },
                                              "object": {
                                                "type": "ThisExpression",
                                                "start": 3799,
                                                "end": 3803,
                                                "loc": {
                                                  "start": {
                                                    "line": 100,
                                                    "column": 35
                                                  },
                                                  "end": {
                                                    "line": 100,
                                                    "column": 39
                                                  }
                                                }
                                              },
                                              "property": {
                                                "type": "Identifier",
                                                "start": 3804,
                                                "end": 3811,
                                                "loc": {
                                                  "start": {
                                                    "line": 100,
                                                    "column": 40
                                                  },
                                                  "end": {
                                                    "line": 100,
                                                    "column": 47
                                                  }
                                                },
                                                "name": "_events"
                                              },
                                              "computed": false
                                            },
                                            "property": {
                                              "type": "Identifier",
                                              "start": 3812,
                                              "end": 3816,
                                              "loc": {
                                                "start": {
                                                  "line": 100,
                                                  "column": 48
                                                },
                                                "end": {
                                                  "line": 100,
                                                  "column": 52
                                                }
                                              },
                                              "name": "name"
                                            },
                                            "computed": true
                                          }
                                        }
                                      },
                                      "alternate": null
                                    }
                                  ]
                                },
                                "alternate": null
                              }
                            ]
                          }
                        },
                        {
                          "type": "ReturnStatement",
                          "start": 3838,
                          "end": 3850,
                          "loc": {
                            "start": {
                              "line": 104,
                              "column": 4
                            },
                            "end": {
                              "line": 104,
                              "column": 16
                            }
                          },
                          "argument": {
                            "type": "ThisExpression",
                            "start": 3845,
                            "end": 3849,
                            "loc": {
                              "start": {
                                "line": 104,
                                "column": 11
                              },
                              "end": {
                                "line": 104,
                                "column": 15
                              }
                            }
                          }
                        }
                      ]
                    }
                  },
                  "kind": "init",
                  "leadingComments": [
                    {
                      "type": "CommentLine",
                      "value": " Remove one or many callbacks. If `context` is null, removes all",
                      "start": 2715,
                      "end": 2781,
                      "loc": {
                        "start": {
                          "line": 75,
                          "column": 2
                        },
                        "end": {
                          "line": 75,
                          "column": 68
                        }
                      },
                      "range": [
                        2715,
                        2781
                      ]
                    },
                    {
                      "type": "CommentLine",
                      "value": " callbacks with that function. If `callback` is null, removes all",
                      "start": 2784,
                      "end": 2851,
                      "loc": {
                        "start": {
                          "line": 76,
                          "column": 2
                        },
                        "end": {
                          "line": 76,
                          "column": 69
                        }
                      },
                      "range": [
                        2784,
                        2851
                      ]
                    },
                    {
                      "type": "CommentLine",
                      "value": " callbacks for the event. If `name` is null, removes all bound",
                      "start": 2854,
                      "end": 2918,
                      "loc": {
                        "start": {
                          "line": 77,
                          "column": 2
                        },
                        "end": {
                          "line": 77,
                          "column": 66
                        }
                      },
                      "range": [
                        2854,
                        2918
                      ]
                    },
                    {
                      "type": "CommentLine",
                      "value": " callbacks for all events.",
                      "start": 2921,
                      "end": 2949,
                      "loc": {
                        "start": {
                          "line": 78,
                          "column": 2
                        },
                        "end": {
                          "line": 78,
                          "column": 30
                        }
                      },
                      "range": [
                        2921,
                        2949
                      ]
                    }
                  ]
                },
                {
                  "type": "Property",
                  "start": 4148,
                  "end": 4509,
                  "loc": {
                    "start": {
                      "line": 111,
                      "column": 2
                    },
                    "end": {
                      "line": 120,
                      "column": 3
                    }
                  },
                  "method": false,
                  "shorthand": false,
                  "computed": false,
                  "key": {
                    "type": "Identifier",
                    "start": 4148,
                    "end": 4155,
                    "loc": {
                      "start": {
                        "line": 111,
                        "column": 2
                      },
                      "end": {
                        "line": 111,
                        "column": 9
                      }
                    },
                    "name": "trigger",
                    "leadingComments": null
                  },
                  "value": {
                    "type": "FunctionExpression",
                    "start": 4157,
                    "end": 4509,
                    "loc": {
                      "start": {
                        "line": 111,
                        "column": 11
                      },
                      "end": {
                        "line": 120,
                        "column": 3
                      }
                    },
                    "id": null,
                    "generator": false,
                    "expression": false,
                    "async": false,
                    "params": [
                      {
                        "type": "Identifier",
                        "start": 4166,
                        "end": 4170,
                        "loc": {
                          "start": {
                            "line": 111,
                            "column": 20
                          },
                          "end": {
                            "line": 111,
                            "column": 24
                          }
                        },
                        "name": "name"
                      }
                    ],
                    "body": {
                      "type": "BlockStatement",
                      "start": 4172,
                      "end": 4509,
                      "loc": {
                        "start": {
                          "line": 111,
                          "column": 26
                        },
                        "end": {
                          "line": 120,
                          "column": 3
                        }
                      },
                      "body": [
                        {
                          "type": "IfStatement",
                          "start": 4178,
                          "end": 4209,
                          "loc": {
                            "start": {
                              "line": 112,
                              "column": 4
                            },
                            "end": {
                              "line": 112,
                              "column": 35
                            }
                          },
                          "test": {
                            "type": "UnaryExpression",
                            "start": 4182,
                            "end": 4195,
                            "loc": {
                              "start": {
                                "line": 112,
                                "column": 8
                              },
                              "end": {
                                "line": 112,
                                "column": 21
                              }
                            },
                            "operator": "!",
                            "prefix": true,
                            "argument": {
                              "type": "MemberExpression",
                              "start": 4183,
                              "end": 4195,
                              "loc": {
                                "start": {
                                  "line": 112,
                                  "column": 9
                                },
                                "end": {
                                  "line": 112,
                                  "column": 21
                                }
                              },
                              "object": {
                                "type": "ThisExpression",
                                "start": 4183,
                                "end": 4187,
                                "loc": {
                                  "start": {
                                    "line": 112,
                                    "column": 9
                                  },
                                  "end": {
                                    "line": 112,
                                    "column": 13
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 4188,
                                "end": 4195,
                                "loc": {
                                  "start": {
                                    "line": 112,
                                    "column": 14
                                  },
                                  "end": {
                                    "line": 112,
                                    "column": 21
                                  }
                                },
                                "name": "_events"
                              },
                              "computed": false
                            }
                          },
                          "consequent": {
                            "type": "ReturnStatement",
                            "start": 4197,
                            "end": 4209,
                            "loc": {
                              "start": {
                                "line": 112,
                                "column": 23
                              },
                              "end": {
                                "line": 112,
                                "column": 35
                              }
                            },
                            "argument": {
                              "type": "ThisExpression",
                              "start": 4204,
                              "end": 4208,
                              "loc": {
                                "start": {
                                  "line": 112,
                                  "column": 30
                                },
                                "end": {
                                  "line": 112,
                                  "column": 34
                                }
                              }
                            }
                          },
                          "alternate": null
                        },
                        {
                          "type": "VariableDeclaration",
                          "start": 4214,
                          "end": 4250,
                          "loc": {
                            "start": {
                              "line": 113,
                              "column": 4
                            },
                            "end": {
                              "line": 113,
                              "column": 40
                            }
                          },
                          "declarations": [
                            {
                              "type": "VariableDeclarator",
                              "start": 4218,
                              "end": 4249,
                              "loc": {
                                "start": {
                                  "line": 113,
                                  "column": 8
                                },
                                "end": {
                                  "line": 113,
                                  "column": 39
                                }
                              },
                              "id": {
                                "type": "Identifier",
                                "start": 4218,
                                "end": 4222,
                                "loc": {
                                  "start": {
                                    "line": 113,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 113,
                                    "column": 12
                                  }
                                },
                                "name": "args"
                              },
                              "init": {
                                "type": "CallExpression",
                                "start": 4225,
                                "end": 4249,
                                "loc": {
                                  "start": {
                                    "line": 113,
                                    "column": 15
                                  },
                                  "end": {
                                    "line": 113,
                                    "column": 39
                                  }
                                },
                                "callee": {
                                  "type": "MemberExpression",
                                  "start": 4225,
                                  "end": 4235,
                                  "loc": {
                                    "start": {
                                      "line": 113,
                                      "column": 15
                                    },
                                    "end": {
                                      "line": 113,
                                      "column": 25
                                    }
                                  },
                                  "object": {
                                    "type": "Identifier",
                                    "start": 4225,
                                    "end": 4230,
                                    "loc": {
                                      "start": {
                                        "line": 113,
                                        "column": 15
                                      },
                                      "end": {
                                        "line": 113,
                                        "column": 20
                                      }
                                    },
                                    "name": "slice"
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 4231,
                                    "end": 4235,
                                    "loc": {
                                      "start": {
                                        "line": 113,
                                        "column": 21
                                      },
                                      "end": {
                                        "line": 113,
                                        "column": 25
                                      }
                                    },
                                    "name": "call"
                                  },
                                  "computed": false
                                },
                                "arguments": [
                                  {
                                    "type": "Identifier",
                                    "start": 4236,
                                    "end": 4245,
                                    "loc": {
                                      "start": {
                                        "line": 113,
                                        "column": 26
                                      },
                                      "end": {
                                        "line": 113,
                                        "column": 35
                                      }
                                    },
                                    "name": "arguments"
                                  },
                                  {
                                    "type": "Literal",
                                    "start": 4247,
                                    "end": 4248,
                                    "loc": {
                                      "start": {
                                        "line": 113,
                                        "column": 37
                                      },
                                      "end": {
                                        "line": 113,
                                        "column": 38
                                      }
                                    },
                                    "value": 1,
                                    "rawValue": 1,
                                    "raw": "1"
                                  }
                                ]
                              }
                            }
                          ],
                          "kind": "let"
                        },
                        {
                          "type": "IfStatement",
                          "start": 4255,
                          "end": 4312,
                          "loc": {
                            "start": {
                              "line": 114,
                              "column": 4
                            },
                            "end": {
                              "line": 114,
                              "column": 61
                            }
                          },
                          "test": {
                            "type": "UnaryExpression",
                            "start": 4259,
                            "end": 4298,
                            "loc": {
                              "start": {
                                "line": 114,
                                "column": 8
                              },
                              "end": {
                                "line": 114,
                                "column": 47
                              }
                            },
                            "operator": "!",
                            "prefix": true,
                            "argument": {
                              "type": "CallExpression",
                              "start": 4260,
                              "end": 4298,
                              "loc": {
                                "start": {
                                  "line": 114,
                                  "column": 9
                                },
                                "end": {
                                  "line": 114,
                                  "column": 47
                                }
                              },
                              "callee": {
                                "type": "Identifier",
                                "start": 4260,
                                "end": 4269,
                                "loc": {
                                  "start": {
                                    "line": 114,
                                    "column": 9
                                  },
                                  "end": {
                                    "line": 114,
                                    "column": 18
                                  }
                                },
                                "name": "eventsApi"
                              },
                              "arguments": [
                                {
                                  "type": "ThisExpression",
                                  "start": 4270,
                                  "end": 4274,
                                  "loc": {
                                    "start": {
                                      "line": 114,
                                      "column": 19
                                    },
                                    "end": {
                                      "line": 114,
                                      "column": 23
                                    }
                                  }
                                },
                                {
                                  "type": "Literal",
                                  "start": 4276,
                                  "end": 4285,
                                  "loc": {
                                    "start": {
                                      "line": 114,
                                      "column": 25
                                    },
                                    "end": {
                                      "line": 114,
                                      "column": 34
                                    }
                                  },
                                  "value": "trigger",
                                  "rawValue": "trigger",
                                  "raw": "\"trigger\""
                                },
                                {
                                  "type": "Identifier",
                                  "start": 4287,
                                  "end": 4291,
                                  "loc": {
                                    "start": {
                                      "line": 114,
                                      "column": 36
                                    },
                                    "end": {
                                      "line": 114,
                                      "column": 40
                                    }
                                  },
                                  "name": "name"
                                },
                                {
                                  "type": "Identifier",
                                  "start": 4293,
                                  "end": 4297,
                                  "loc": {
                                    "start": {
                                      "line": 114,
                                      "column": 42
                                    },
                                    "end": {
                                      "line": 114,
                                      "column": 46
                                    }
                                  },
                                  "name": "args"
                                }
                              ]
                            }
                          },
                          "consequent": {
                            "type": "ReturnStatement",
                            "start": 4300,
                            "end": 4312,
                            "loc": {
                              "start": {
                                "line": 114,
                                "column": 49
                              },
                              "end": {
                                "line": 114,
                                "column": 61
                              }
                            },
                            "argument": {
                              "type": "ThisExpression",
                              "start": 4307,
                              "end": 4311,
                              "loc": {
                                "start": {
                                  "line": 114,
                                  "column": 56
                                },
                                "end": {
                                  "line": 114,
                                  "column": 60
                                }
                              }
                            }
                          },
                          "alternate": null
                        },
                        {
                          "type": "VariableDeclaration",
                          "start": 4317,
                          "end": 4349,
                          "loc": {
                            "start": {
                              "line": 115,
                              "column": 4
                            },
                            "end": {
                              "line": 115,
                              "column": 36
                            }
                          },
                          "declarations": [
                            {
                              "type": "VariableDeclarator",
                              "start": 4321,
                              "end": 4348,
                              "loc": {
                                "start": {
                                  "line": 115,
                                  "column": 8
                                },
                                "end": {
                                  "line": 115,
                                  "column": 35
                                }
                              },
                              "id": {
                                "type": "Identifier",
                                "start": 4321,
                                "end": 4327,
                                "loc": {
                                  "start": {
                                    "line": 115,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 115,
                                    "column": 14
                                  }
                                },
                                "name": "events"
                              },
                              "init": {
                                "type": "MemberExpression",
                                "start": 4330,
                                "end": 4348,
                                "loc": {
                                  "start": {
                                    "line": 115,
                                    "column": 17
                                  },
                                  "end": {
                                    "line": 115,
                                    "column": 35
                                  }
                                },
                                "object": {
                                  "type": "MemberExpression",
                                  "start": 4330,
                                  "end": 4342,
                                  "loc": {
                                    "start": {
                                      "line": 115,
                                      "column": 17
                                    },
                                    "end": {
                                      "line": 115,
                                      "column": 29
                                    }
                                  },
                                  "object": {
                                    "type": "ThisExpression",
                                    "start": 4330,
                                    "end": 4334,
                                    "loc": {
                                      "start": {
                                        "line": 115,
                                        "column": 17
                                      },
                                      "end": {
                                        "line": 115,
                                        "column": 21
                                      }
                                    }
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 4335,
                                    "end": 4342,
                                    "loc": {
                                      "start": {
                                        "line": 115,
                                        "column": 22
                                      },
                                      "end": {
                                        "line": 115,
                                        "column": 29
                                      }
                                    },
                                    "name": "_events"
                                  },
                                  "computed": false
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 4343,
                                  "end": 4347,
                                  "loc": {
                                    "start": {
                                      "line": 115,
                                      "column": 30
                                    },
                                    "end": {
                                      "line": 115,
                                      "column": 34
                                    }
                                  },
                                  "name": "name"
                                },
                                "computed": true
                              }
                            }
                          ],
                          "kind": "let"
                        },
                        {
                          "type": "VariableDeclaration",
                          "start": 4354,
                          "end": 4387,
                          "loc": {
                            "start": {
                              "line": 116,
                              "column": 4
                            },
                            "end": {
                              "line": 116,
                              "column": 37
                            }
                          },
                          "declarations": [
                            {
                              "type": "VariableDeclarator",
                              "start": 4358,
                              "end": 4386,
                              "loc": {
                                "start": {
                                  "line": 116,
                                  "column": 8
                                },
                                "end": {
                                  "line": 116,
                                  "column": 36
                                }
                              },
                              "id": {
                                "type": "Identifier",
                                "start": 4358,
                                "end": 4367,
                                "loc": {
                                  "start": {
                                    "line": 116,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 116,
                                    "column": 17
                                  }
                                },
                                "name": "allEvents"
                              },
                              "init": {
                                "type": "MemberExpression",
                                "start": 4370,
                                "end": 4386,
                                "loc": {
                                  "start": {
                                    "line": 116,
                                    "column": 20
                                  },
                                  "end": {
                                    "line": 116,
                                    "column": 36
                                  }
                                },
                                "object": {
                                  "type": "MemberExpression",
                                  "start": 4370,
                                  "end": 4382,
                                  "loc": {
                                    "start": {
                                      "line": 116,
                                      "column": 20
                                    },
                                    "end": {
                                      "line": 116,
                                      "column": 32
                                    }
                                  },
                                  "object": {
                                    "type": "ThisExpression",
                                    "start": 4370,
                                    "end": 4374,
                                    "loc": {
                                      "start": {
                                        "line": 116,
                                        "column": 20
                                      },
                                      "end": {
                                        "line": 116,
                                        "column": 24
                                      }
                                    }
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 4375,
                                    "end": 4382,
                                    "loc": {
                                      "start": {
                                        "line": 116,
                                        "column": 25
                                      },
                                      "end": {
                                        "line": 116,
                                        "column": 32
                                      }
                                    },
                                    "name": "_events"
                                  },
                                  "computed": false
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 4383,
                                  "end": 4386,
                                  "loc": {
                                    "start": {
                                      "line": 116,
                                      "column": 33
                                    },
                                    "end": {
                                      "line": 116,
                                      "column": 36
                                    }
                                  },
                                  "name": "all"
                                },
                                "computed": false
                              }
                            }
                          ],
                          "kind": "let"
                        },
                        {
                          "type": "IfStatement",
                          "start": 4392,
                          "end": 4432,
                          "loc": {
                            "start": {
                              "line": 117,
                              "column": 4
                            },
                            "end": {
                              "line": 117,
                              "column": 44
                            }
                          },
                          "test": {
                            "type": "Identifier",
                            "start": 4396,
                            "end": 4402,
                            "loc": {
                              "start": {
                                "line": 117,
                                "column": 8
                              },
                              "end": {
                                "line": 117,
                                "column": 14
                              }
                            },
                            "name": "events"
                          },
                          "consequent": {
                            "type": "ExpressionStatement",
                            "start": 4404,
                            "end": 4432,
                            "loc": {
                              "start": {
                                "line": 117,
                                "column": 16
                              },
                              "end": {
                                "line": 117,
                                "column": 44
                              }
                            },
                            "expression": {
                              "type": "CallExpression",
                              "start": 4404,
                              "end": 4431,
                              "loc": {
                                "start": {
                                  "line": 117,
                                  "column": 16
                                },
                                "end": {
                                  "line": 117,
                                  "column": 43
                                }
                              },
                              "callee": {
                                "type": "Identifier",
                                "start": 4404,
                                "end": 4417,
                                "loc": {
                                  "start": {
                                    "line": 117,
                                    "column": 16
                                  },
                                  "end": {
                                    "line": 117,
                                    "column": 29
                                  }
                                },
                                "name": "triggerEvents"
                              },
                              "arguments": [
                                {
                                  "type": "Identifier",
                                  "start": 4418,
                                  "end": 4424,
                                  "loc": {
                                    "start": {
                                      "line": 117,
                                      "column": 30
                                    },
                                    "end": {
                                      "line": 117,
                                      "column": 36
                                    }
                                  },
                                  "name": "events"
                                },
                                {
                                  "type": "Identifier",
                                  "start": 4426,
                                  "end": 4430,
                                  "loc": {
                                    "start": {
                                      "line": 117,
                                      "column": 38
                                    },
                                    "end": {
                                      "line": 117,
                                      "column": 42
                                    }
                                  },
                                  "name": "args"
                                }
                              ]
                            }
                          },
                          "alternate": null
                        },
                        {
                          "type": "IfStatement",
                          "start": 4437,
                          "end": 4488,
                          "loc": {
                            "start": {
                              "line": 118,
                              "column": 4
                            },
                            "end": {
                              "line": 118,
                              "column": 55
                            }
                          },
                          "test": {
                            "type": "Identifier",
                            "start": 4441,
                            "end": 4450,
                            "loc": {
                              "start": {
                                "line": 118,
                                "column": 8
                              },
                              "end": {
                                "line": 118,
                                "column": 17
                              }
                            },
                            "name": "allEvents"
                          },
                          "consequent": {
                            "type": "ExpressionStatement",
                            "start": 4452,
                            "end": 4488,
                            "loc": {
                              "start": {
                                "line": 118,
                                "column": 19
                              },
                              "end": {
                                "line": 118,
                                "column": 55
                              }
                            },
                            "expression": {
                              "type": "CallExpression",
                              "start": 4452,
                              "end": 4487,
                              "loc": {
                                "start": {
                                  "line": 118,
                                  "column": 19
                                },
                                "end": {
                                  "line": 118,
                                  "column": 54
                                }
                              },
                              "callee": {
                                "type": "Identifier",
                                "start": 4452,
                                "end": 4465,
                                "loc": {
                                  "start": {
                                    "line": 118,
                                    "column": 19
                                  },
                                  "end": {
                                    "line": 118,
                                    "column": 32
                                  }
                                },
                                "name": "triggerEvents"
                              },
                              "arguments": [
                                {
                                  "type": "Identifier",
                                  "start": 4466,
                                  "end": 4475,
                                  "loc": {
                                    "start": {
                                      "line": 118,
                                      "column": 33
                                    },
                                    "end": {
                                      "line": 118,
                                      "column": 42
                                    }
                                  },
                                  "name": "allEvents"
                                },
                                {
                                  "type": "Identifier",
                                  "start": 4477,
                                  "end": 4486,
                                  "loc": {
                                    "start": {
                                      "line": 118,
                                      "column": 44
                                    },
                                    "end": {
                                      "line": 118,
                                      "column": 53
                                    }
                                  },
                                  "name": "arguments"
                                }
                              ]
                            }
                          },
                          "alternate": null
                        },
                        {
                          "type": "ReturnStatement",
                          "start": 4493,
                          "end": 4505,
                          "loc": {
                            "start": {
                              "line": 119,
                              "column": 4
                            },
                            "end": {
                              "line": 119,
                              "column": 16
                            }
                          },
                          "argument": {
                            "type": "ThisExpression",
                            "start": 4500,
                            "end": 4504,
                            "loc": {
                              "start": {
                                "line": 119,
                                "column": 11
                              },
                              "end": {
                                "line": 119,
                                "column": 15
                              }
                            }
                          }
                        }
                      ]
                    }
                  },
                  "kind": "init",
                  "leadingComments": [
                    {
                      "type": "CommentLine",
                      "value": " Trigger one or many events, firing all bound callbacks. Callbacks are",
                      "start": 3859,
                      "end": 3931,
                      "loc": {
                        "start": {
                          "line": 107,
                          "column": 2
                        },
                        "end": {
                          "line": 107,
                          "column": 74
                        }
                      },
                      "range": [
                        3859,
                        3931
                      ]
                    },
                    {
                      "type": "CommentLine",
                      "value": " passed the same arguments as `trigger` is, apart from the event name",
                      "start": 3934,
                      "end": 4005,
                      "loc": {
                        "start": {
                          "line": 108,
                          "column": 2
                        },
                        "end": {
                          "line": 108,
                          "column": 73
                        }
                      },
                      "range": [
                        3934,
                        4005
                      ]
                    },
                    {
                      "type": "CommentLine",
                      "value": " (unless you're listening on `\"all\"`, which will cause your callback to",
                      "start": 4008,
                      "end": 4081,
                      "loc": {
                        "start": {
                          "line": 109,
                          "column": 2
                        },
                        "end": {
                          "line": 109,
                          "column": 75
                        }
                      },
                      "range": [
                        4008,
                        4081
                      ]
                    },
                    {
                      "type": "CommentLine",
                      "value": " receive the true name of the event as the first argument).",
                      "start": 4084,
                      "end": 4145,
                      "loc": {
                        "start": {
                          "line": 110,
                          "column": 2
                        },
                        "end": {
                          "line": 110,
                          "column": 63
                        }
                      },
                      "range": [
                        4084,
                        4145
                      ]
                    }
                  ]
                },
                {
                  "type": "Property",
                  "start": 4637,
                  "end": 5113,
                  "loc": {
                    "start": {
                      "line": 124,
                      "column": 2
                    },
                    "end": {
                      "line": 136,
                      "column": 3
                    }
                  },
                  "method": false,
                  "shorthand": false,
                  "computed": false,
                  "key": {
                    "type": "Identifier",
                    "start": 4637,
                    "end": 4650,
                    "loc": {
                      "start": {
                        "line": 124,
                        "column": 2
                      },
                      "end": {
                        "line": 124,
                        "column": 15
                      }
                    },
                    "name": "stopListening",
                    "leadingComments": null
                  },
                  "value": {
                    "type": "FunctionExpression",
                    "start": 4652,
                    "end": 5113,
                    "loc": {
                      "start": {
                        "line": 124,
                        "column": 17
                      },
                      "end": {
                        "line": 136,
                        "column": 3
                      }
                    },
                    "id": null,
                    "generator": false,
                    "expression": false,
                    "async": false,
                    "params": [
                      {
                        "type": "Identifier",
                        "start": 4661,
                        "end": 4664,
                        "loc": {
                          "start": {
                            "line": 124,
                            "column": 26
                          },
                          "end": {
                            "line": 124,
                            "column": 29
                          }
                        },
                        "name": "obj"
                      },
                      {
                        "type": "Identifier",
                        "start": 4666,
                        "end": 4670,
                        "loc": {
                          "start": {
                            "line": 124,
                            "column": 31
                          },
                          "end": {
                            "line": 124,
                            "column": 35
                          }
                        },
                        "name": "name"
                      },
                      {
                        "type": "Identifier",
                        "start": 4672,
                        "end": 4680,
                        "loc": {
                          "start": {
                            "line": 124,
                            "column": 37
                          },
                          "end": {
                            "line": 124,
                            "column": 45
                          }
                        },
                        "name": "callback"
                      }
                    ],
                    "body": {
                      "type": "BlockStatement",
                      "start": 4682,
                      "end": 5113,
                      "loc": {
                        "start": {
                          "line": 124,
                          "column": 47
                        },
                        "end": {
                          "line": 136,
                          "column": 3
                        }
                      },
                      "body": [
                        {
                          "type": "VariableDeclaration",
                          "start": 4688,
                          "end": 4724,
                          "loc": {
                            "start": {
                              "line": 125,
                              "column": 4
                            },
                            "end": {
                              "line": 125,
                              "column": 40
                            }
                          },
                          "declarations": [
                            {
                              "type": "VariableDeclarator",
                              "start": 4692,
                              "end": 4723,
                              "loc": {
                                "start": {
                                  "line": 125,
                                  "column": 8
                                },
                                "end": {
                                  "line": 125,
                                  "column": 39
                                }
                              },
                              "id": {
                                "type": "Identifier",
                                "start": 4692,
                                "end": 4703,
                                "loc": {
                                  "start": {
                                    "line": 125,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 125,
                                    "column": 19
                                  }
                                },
                                "name": "listeningTo"
                              },
                              "init": {
                                "type": "MemberExpression",
                                "start": 4706,
                                "end": 4723,
                                "loc": {
                                  "start": {
                                    "line": 125,
                                    "column": 22
                                  },
                                  "end": {
                                    "line": 125,
                                    "column": 39
                                  }
                                },
                                "object": {
                                  "type": "ThisExpression",
                                  "start": 4706,
                                  "end": 4710,
                                  "loc": {
                                    "start": {
                                      "line": 125,
                                      "column": 22
                                    },
                                    "end": {
                                      "line": 125,
                                      "column": 26
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 4711,
                                  "end": 4723,
                                  "loc": {
                                    "start": {
                                      "line": 125,
                                      "column": 27
                                    },
                                    "end": {
                                      "line": 125,
                                      "column": 39
                                    }
                                  },
                                  "name": "_listeningTo"
                                },
                                "computed": false
                              }
                            }
                          ],
                          "kind": "let"
                        },
                        {
                          "type": "IfStatement",
                          "start": 4729,
                          "end": 4759,
                          "loc": {
                            "start": {
                              "line": 126,
                              "column": 4
                            },
                            "end": {
                              "line": 126,
                              "column": 34
                            }
                          },
                          "test": {
                            "type": "UnaryExpression",
                            "start": 4733,
                            "end": 4745,
                            "loc": {
                              "start": {
                                "line": 126,
                                "column": 8
                              },
                              "end": {
                                "line": 126,
                                "column": 20
                              }
                            },
                            "operator": "!",
                            "prefix": true,
                            "argument": {
                              "type": "Identifier",
                              "start": 4734,
                              "end": 4745,
                              "loc": {
                                "start": {
                                  "line": 126,
                                  "column": 9
                                },
                                "end": {
                                  "line": 126,
                                  "column": 20
                                }
                              },
                              "name": "listeningTo"
                            }
                          },
                          "consequent": {
                            "type": "ReturnStatement",
                            "start": 4747,
                            "end": 4759,
                            "loc": {
                              "start": {
                                "line": 126,
                                "column": 22
                              },
                              "end": {
                                "line": 126,
                                "column": 34
                              }
                            },
                            "argument": {
                              "type": "ThisExpression",
                              "start": 4754,
                              "end": 4758,
                              "loc": {
                                "start": {
                                  "line": 126,
                                  "column": 29
                                },
                                "end": {
                                  "line": 126,
                                  "column": 33
                                }
                              }
                            }
                          },
                          "alternate": null
                        },
                        {
                          "type": "VariableDeclaration",
                          "start": 4764,
                          "end": 4796,
                          "loc": {
                            "start": {
                              "line": 127,
                              "column": 4
                            },
                            "end": {
                              "line": 127,
                              "column": 36
                            }
                          },
                          "declarations": [
                            {
                              "type": "VariableDeclarator",
                              "start": 4768,
                              "end": 4795,
                              "loc": {
                                "start": {
                                  "line": 127,
                                  "column": 8
                                },
                                "end": {
                                  "line": 127,
                                  "column": 35
                                }
                              },
                              "id": {
                                "type": "Identifier",
                                "start": 4768,
                                "end": 4774,
                                "loc": {
                                  "start": {
                                    "line": 127,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 127,
                                    "column": 14
                                  }
                                },
                                "name": "remove"
                              },
                              "init": {
                                "type": "LogicalExpression",
                                "start": 4777,
                                "end": 4795,
                                "loc": {
                                  "start": {
                                    "line": 127,
                                    "column": 17
                                  },
                                  "end": {
                                    "line": 127,
                                    "column": 35
                                  }
                                },
                                "left": {
                                  "type": "UnaryExpression",
                                  "start": 4777,
                                  "end": 4782,
                                  "loc": {
                                    "start": {
                                      "line": 127,
                                      "column": 17
                                    },
                                    "end": {
                                      "line": 127,
                                      "column": 22
                                    }
                                  },
                                  "operator": "!",
                                  "prefix": true,
                                  "argument": {
                                    "type": "Identifier",
                                    "start": 4778,
                                    "end": 4782,
                                    "loc": {
                                      "start": {
                                        "line": 127,
                                        "column": 18
                                      },
                                      "end": {
                                        "line": 127,
                                        "column": 22
                                      }
                                    },
                                    "name": "name"
                                  }
                                },
                                "operator": "&&",
                                "right": {
                                  "type": "UnaryExpression",
                                  "start": 4786,
                                  "end": 4795,
                                  "loc": {
                                    "start": {
                                      "line": 127,
                                      "column": 26
                                    },
                                    "end": {
                                      "line": 127,
                                      "column": 35
                                    }
                                  },
                                  "operator": "!",
                                  "prefix": true,
                                  "argument": {
                                    "type": "Identifier",
                                    "start": 4787,
                                    "end": 4795,
                                    "loc": {
                                      "start": {
                                        "line": 127,
                                        "column": 27
                                      },
                                      "end": {
                                        "line": 127,
                                        "column": 35
                                      }
                                    },
                                    "name": "callback"
                                  }
                                }
                              }
                            }
                          ],
                          "kind": "let"
                        },
                        {
                          "type": "IfStatement",
                          "start": 4801,
                          "end": 4860,
                          "loc": {
                            "start": {
                              "line": 128,
                              "column": 4
                            },
                            "end": {
                              "line": 128,
                              "column": 63
                            }
                          },
                          "test": {
                            "type": "LogicalExpression",
                            "start": 4805,
                            "end": 4842,
                            "loc": {
                              "start": {
                                "line": 128,
                                "column": 8
                              },
                              "end": {
                                "line": 128,
                                "column": 45
                              }
                            },
                            "left": {
                              "type": "UnaryExpression",
                              "start": 4805,
                              "end": 4814,
                              "loc": {
                                "start": {
                                  "line": 128,
                                  "column": 8
                                },
                                "end": {
                                  "line": 128,
                                  "column": 17
                                }
                              },
                              "operator": "!",
                              "prefix": true,
                              "argument": {
                                "type": "Identifier",
                                "start": 4806,
                                "end": 4814,
                                "loc": {
                                  "start": {
                                    "line": 128,
                                    "column": 9
                                  },
                                  "end": {
                                    "line": 128,
                                    "column": 17
                                  }
                                },
                                "name": "callback"
                              }
                            },
                            "operator": "&&",
                            "right": {
                              "type": "BinaryExpression",
                              "start": 4818,
                              "end": 4842,
                              "loc": {
                                "start": {
                                  "line": 128,
                                  "column": 21
                                },
                                "end": {
                                  "line": 128,
                                  "column": 45
                                }
                              },
                              "left": {
                                "type": "UnaryExpression",
                                "start": 4818,
                                "end": 4829,
                                "loc": {
                                  "start": {
                                    "line": 128,
                                    "column": 21
                                  },
                                  "end": {
                                    "line": 128,
                                    "column": 32
                                  }
                                },
                                "operator": "typeof",
                                "prefix": true,
                                "argument": {
                                  "type": "Identifier",
                                  "start": 4825,
                                  "end": 4829,
                                  "loc": {
                                    "start": {
                                      "line": 128,
                                      "column": 28
                                    },
                                    "end": {
                                      "line": 128,
                                      "column": 32
                                    }
                                  },
                                  "name": "name"
                                }
                              },
                              "operator": "===",
                              "right": {
                                "type": "Literal",
                                "start": 4834,
                                "end": 4842,
                                "loc": {
                                  "start": {
                                    "line": 128,
                                    "column": 37
                                  },
                                  "end": {
                                    "line": 128,
                                    "column": 45
                                  }
                                },
                                "value": "object",
                                "rawValue": "object",
                                "raw": "\"object\""
                              }
                            }
                          },
                          "consequent": {
                            "type": "ExpressionStatement",
                            "start": 4844,
                            "end": 4860,
                            "loc": {
                              "start": {
                                "line": 128,
                                "column": 47
                              },
                              "end": {
                                "line": 128,
                                "column": 63
                              }
                            },
                            "expression": {
                              "type": "AssignmentExpression",
                              "start": 4844,
                              "end": 4859,
                              "loc": {
                                "start": {
                                  "line": 128,
                                  "column": 47
                                },
                                "end": {
                                  "line": 128,
                                  "column": 62
                                }
                              },
                              "operator": "=",
                              "left": {
                                "type": "Identifier",
                                "start": 4844,
                                "end": 4852,
                                "loc": {
                                  "start": {
                                    "line": 128,
                                    "column": 47
                                  },
                                  "end": {
                                    "line": 128,
                                    "column": 55
                                  }
                                },
                                "name": "callback"
                              },
                              "right": {
                                "type": "ThisExpression",
                                "start": 4855,
                                "end": 4859,
                                "loc": {
                                  "start": {
                                    "line": 128,
                                    "column": 58
                                  },
                                  "end": {
                                    "line": 128,
                                    "column": 62
                                  }
                                }
                              }
                            }
                          },
                          "alternate": null
                        },
                        {
                          "type": "IfStatement",
                          "start": 4865,
                          "end": 4914,
                          "loc": {
                            "start": {
                              "line": 129,
                              "column": 4
                            },
                            "end": {
                              "line": 129,
                              "column": 53
                            }
                          },
                          "test": {
                            "type": "Identifier",
                            "start": 4869,
                            "end": 4872,
                            "loc": {
                              "start": {
                                "line": 129,
                                "column": 8
                              },
                              "end": {
                                "line": 129,
                                "column": 11
                              }
                            },
                            "name": "obj"
                          },
                          "consequent": {
                            "type": "ExpressionStatement",
                            "start": 4874,
                            "end": 4914,
                            "loc": {
                              "start": {
                                "line": 129,
                                "column": 13
                              },
                              "end": {
                                "line": 129,
                                "column": 53
                              }
                            },
                            "expression": {
                              "type": "AssignmentExpression",
                              "start": 4874,
                              "end": 4913,
                              "loc": {
                                "start": {
                                  "line": 129,
                                  "column": 13
                                },
                                "end": {
                                  "line": 129,
                                  "column": 52
                                }
                              },
                              "operator": "=",
                              "left": {
                                "type": "MemberExpression",
                                "start": 4874,
                                "end": 4907,
                                "loc": {
                                  "start": {
                                    "line": 129,
                                    "column": 13
                                  },
                                  "end": {
                                    "line": 129,
                                    "column": 46
                                  }
                                },
                                "object": {
                                  "type": "AssignmentExpression",
                                  "start": 4875,
                                  "end": 4891,
                                  "loc": {
                                    "start": {
                                      "line": 129,
                                      "column": 14
                                    },
                                    "end": {
                                      "line": 129,
                                      "column": 30
                                    }
                                  },
                                  "operator": "=",
                                  "left": {
                                    "type": "Identifier",
                                    "start": 4875,
                                    "end": 4886,
                                    "loc": {
                                      "start": {
                                        "line": 129,
                                        "column": 14
                                      },
                                      "end": {
                                        "line": 129,
                                        "column": 25
                                      }
                                    },
                                    "name": "listeningTo"
                                  },
                                  "right": {
                                    "type": "ObjectExpression",
                                    "start": 4889,
                                    "end": 4891,
                                    "loc": {
                                      "start": {
                                        "line": 129,
                                        "column": 28
                                      },
                                      "end": {
                                        "line": 129,
                                        "column": 30
                                      }
                                    },
                                    "properties": []
                                  },
                                  "parenthesizedExpression": true
                                },
                                "property": {
                                  "type": "MemberExpression",
                                  "start": 4893,
                                  "end": 4906,
                                  "loc": {
                                    "start": {
                                      "line": 129,
                                      "column": 32
                                    },
                                    "end": {
                                      "line": 129,
                                      "column": 45
                                    }
                                  },
                                  "object": {
                                    "type": "Identifier",
                                    "start": 4893,
                                    "end": 4896,
                                    "loc": {
                                      "start": {
                                        "line": 129,
                                        "column": 32
                                      },
                                      "end": {
                                        "line": 129,
                                        "column": 35
                                      }
                                    },
                                    "name": "obj"
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 4897,
                                    "end": 4906,
                                    "loc": {
                                      "start": {
                                        "line": 129,
                                        "column": 36
                                      },
                                      "end": {
                                        "line": 129,
                                        "column": 45
                                      }
                                    },
                                    "name": "_listenId"
                                  },
                                  "computed": false
                                },
                                "computed": true
                              },
                              "right": {
                                "type": "Identifier",
                                "start": 4910,
                                "end": 4913,
                                "loc": {
                                  "start": {
                                    "line": 129,
                                    "column": 49
                                  },
                                  "end": {
                                    "line": 129,
                                    "column": 52
                                  }
                                },
                                "name": "obj"
                              }
                            }
                          },
                          "alternate": null
                        },
                        {
                          "type": "ForInStatement",
                          "start": 4919,
                          "end": 5092,
                          "loc": {
                            "start": {
                              "line": 130,
                              "column": 4
                            },
                            "end": {
                              "line": 134,
                              "column": 5
                            }
                          },
                          "left": {
                            "type": "VariableDeclaration",
                            "start": 4924,
                            "end": 4930,
                            "loc": {
                              "start": {
                                "line": 130,
                                "column": 9
                              },
                              "end": {
                                "line": 130,
                                "column": 15
                              }
                            },
                            "declarations": [
                              {
                                "type": "VariableDeclarator",
                                "start": 4928,
                                "end": 4930,
                                "loc": {
                                  "start": {
                                    "line": 130,
                                    "column": 13
                                  },
                                  "end": {
                                    "line": 130,
                                    "column": 15
                                  }
                                },
                                "id": {
                                  "type": "Identifier",
                                  "start": 4928,
                                  "end": 4930,
                                  "loc": {
                                    "start": {
                                      "line": 130,
                                      "column": 13
                                    },
                                    "end": {
                                      "line": 130,
                                      "column": 15
                                    }
                                  },
                                  "name": "id"
                                },
                                "init": null
                              }
                            ],
                            "kind": "let"
                          },
                          "right": {
                            "type": "Identifier",
                            "start": 4934,
                            "end": 4945,
                            "loc": {
                              "start": {
                                "line": 130,
                                "column": 19
                              },
                              "end": {
                                "line": 130,
                                "column": 30
                              }
                            },
                            "name": "listeningTo"
                          },
                          "body": {
                            "type": "BlockStatement",
                            "start": 4947,
                            "end": 5092,
                            "loc": {
                              "start": {
                                "line": 130,
                                "column": 32
                              },
                              "end": {
                                "line": 134,
                                "column": 5
                              }
                            },
                            "body": [
                              {
                                "type": "ExpressionStatement",
                                "start": 4955,
                                "end": 4977,
                                "loc": {
                                  "start": {
                                    "line": 131,
                                    "column": 6
                                  },
                                  "end": {
                                    "line": 131,
                                    "column": 28
                                  }
                                },
                                "expression": {
                                  "type": "AssignmentExpression",
                                  "start": 4955,
                                  "end": 4976,
                                  "loc": {
                                    "start": {
                                      "line": 131,
                                      "column": 6
                                    },
                                    "end": {
                                      "line": 131,
                                      "column": 27
                                    }
                                  },
                                  "operator": "=",
                                  "left": {
                                    "type": "Identifier",
                                    "start": 4955,
                                    "end": 4958,
                                    "loc": {
                                      "start": {
                                        "line": 131,
                                        "column": 6
                                      },
                                      "end": {
                                        "line": 131,
                                        "column": 9
                                      }
                                    },
                                    "name": "obj"
                                  },
                                  "right": {
                                    "type": "MemberExpression",
                                    "start": 4961,
                                    "end": 4976,
                                    "loc": {
                                      "start": {
                                        "line": 131,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 131,
                                        "column": 27
                                      }
                                    },
                                    "object": {
                                      "type": "Identifier",
                                      "start": 4961,
                                      "end": 4972,
                                      "loc": {
                                        "start": {
                                          "line": 131,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 131,
                                          "column": 23
                                        }
                                      },
                                      "name": "listeningTo"
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 4973,
                                      "end": 4975,
                                      "loc": {
                                        "start": {
                                          "line": 131,
                                          "column": 24
                                        },
                                        "end": {
                                          "line": 131,
                                          "column": 26
                                        }
                                      },
                                      "name": "id"
                                    },
                                    "computed": true
                                  }
                                }
                              },
                              {
                                "type": "ExpressionStatement",
                                "start": 4984,
                                "end": 5014,
                                "loc": {
                                  "start": {
                                    "line": 132,
                                    "column": 6
                                  },
                                  "end": {
                                    "line": 132,
                                    "column": 36
                                  }
                                },
                                "expression": {
                                  "type": "CallExpression",
                                  "start": 4984,
                                  "end": 5013,
                                  "loc": {
                                    "start": {
                                      "line": 132,
                                      "column": 6
                                    },
                                    "end": {
                                      "line": 132,
                                      "column": 35
                                    }
                                  },
                                  "callee": {
                                    "type": "MemberExpression",
                                    "start": 4984,
                                    "end": 4991,
                                    "loc": {
                                      "start": {
                                        "line": 132,
                                        "column": 6
                                      },
                                      "end": {
                                        "line": 132,
                                        "column": 13
                                      }
                                    },
                                    "object": {
                                      "type": "Identifier",
                                      "start": 4984,
                                      "end": 4987,
                                      "loc": {
                                        "start": {
                                          "line": 132,
                                          "column": 6
                                        },
                                        "end": {
                                          "line": 132,
                                          "column": 9
                                        }
                                      },
                                      "name": "obj"
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 4988,
                                      "end": 4991,
                                      "loc": {
                                        "start": {
                                          "line": 132,
                                          "column": 10
                                        },
                                        "end": {
                                          "line": 132,
                                          "column": 13
                                        }
                                      },
                                      "name": "off"
                                    },
                                    "computed": false
                                  },
                                  "arguments": [
                                    {
                                      "type": "Identifier",
                                      "start": 4992,
                                      "end": 4996,
                                      "loc": {
                                        "start": {
                                          "line": 132,
                                          "column": 14
                                        },
                                        "end": {
                                          "line": 132,
                                          "column": 18
                                        }
                                      },
                                      "name": "name"
                                    },
                                    {
                                      "type": "Identifier",
                                      "start": 4998,
                                      "end": 5006,
                                      "loc": {
                                        "start": {
                                          "line": 132,
                                          "column": 20
                                        },
                                        "end": {
                                          "line": 132,
                                          "column": 28
                                        }
                                      },
                                      "name": "callback"
                                    },
                                    {
                                      "type": "ThisExpression",
                                      "start": 5008,
                                      "end": 5012,
                                      "loc": {
                                        "start": {
                                          "line": 132,
                                          "column": 30
                                        },
                                        "end": {
                                          "line": 132,
                                          "column": 34
                                        }
                                      }
                                    }
                                  ]
                                }
                              },
                              {
                                "type": "IfStatement",
                                "start": 5021,
                                "end": 5086,
                                "loc": {
                                  "start": {
                                    "line": 133,
                                    "column": 6
                                  },
                                  "end": {
                                    "line": 133,
                                    "column": 71
                                  }
                                },
                                "test": {
                                  "type": "LogicalExpression",
                                  "start": 5025,
                                  "end": 5055,
                                  "loc": {
                                    "start": {
                                      "line": 133,
                                      "column": 10
                                    },
                                    "end": {
                                      "line": 133,
                                      "column": 40
                                    }
                                  },
                                  "left": {
                                    "type": "Identifier",
                                    "start": 5025,
                                    "end": 5031,
                                    "loc": {
                                      "start": {
                                        "line": 133,
                                        "column": 10
                                      },
                                      "end": {
                                        "line": 133,
                                        "column": 16
                                      }
                                    },
                                    "name": "remove"
                                  },
                                  "operator": "||",
                                  "right": {
                                    "type": "CallExpression",
                                    "start": 5035,
                                    "end": 5055,
                                    "loc": {
                                      "start": {
                                        "line": 133,
                                        "column": 20
                                      },
                                      "end": {
                                        "line": 133,
                                        "column": 40
                                      }
                                    },
                                    "callee": {
                                      "type": "Identifier",
                                      "start": 5035,
                                      "end": 5042,
                                      "loc": {
                                        "start": {
                                          "line": 133,
                                          "column": 20
                                        },
                                        "end": {
                                          "line": 133,
                                          "column": 27
                                        }
                                      },
                                      "name": "isEmpty"
                                    },
                                    "arguments": [
                                      {
                                        "type": "MemberExpression",
                                        "start": 5043,
                                        "end": 5054,
                                        "loc": {
                                          "start": {
                                            "line": 133,
                                            "column": 28
                                          },
                                          "end": {
                                            "line": 133,
                                            "column": 39
                                          }
                                        },
                                        "object": {
                                          "type": "Identifier",
                                          "start": 5043,
                                          "end": 5046,
                                          "loc": {
                                            "start": {
                                              "line": 133,
                                              "column": 28
                                            },
                                            "end": {
                                              "line": 133,
                                              "column": 31
                                            }
                                          },
                                          "name": "obj"
                                        },
                                        "property": {
                                          "type": "Identifier",
                                          "start": 5047,
                                          "end": 5054,
                                          "loc": {
                                            "start": {
                                              "line": 133,
                                              "column": 32
                                            },
                                            "end": {
                                              "line": 133,
                                              "column": 39
                                            }
                                          },
                                          "name": "_events"
                                        },
                                        "computed": false
                                      }
                                    ]
                                  }
                                },
                                "consequent": {
                                  "type": "ExpressionStatement",
                                  "start": 5057,
                                  "end": 5086,
                                  "loc": {
                                    "start": {
                                      "line": 133,
                                      "column": 42
                                    },
                                    "end": {
                                      "line": 133,
                                      "column": 71
                                    }
                                  },
                                  "expression": {
                                    "type": "UnaryExpression",
                                    "start": 5057,
                                    "end": 5085,
                                    "loc": {
                                      "start": {
                                        "line": 133,
                                        "column": 42
                                      },
                                      "end": {
                                        "line": 133,
                                        "column": 70
                                      }
                                    },
                                    "operator": "delete",
                                    "prefix": true,
                                    "argument": {
                                      "type": "MemberExpression",
                                      "start": 5064,
                                      "end": 5085,
                                      "loc": {
                                        "start": {
                                          "line": 133,
                                          "column": 49
                                        },
                                        "end": {
                                          "line": 133,
                                          "column": 70
                                        }
                                      },
                                      "object": {
                                        "type": "MemberExpression",
                                        "start": 5064,
                                        "end": 5081,
                                        "loc": {
                                          "start": {
                                            "line": 133,
                                            "column": 49
                                          },
                                          "end": {
                                            "line": 133,
                                            "column": 66
                                          }
                                        },
                                        "object": {
                                          "type": "ThisExpression",
                                          "start": 5064,
                                          "end": 5068,
                                          "loc": {
                                            "start": {
                                              "line": 133,
                                              "column": 49
                                            },
                                            "end": {
                                              "line": 133,
                                              "column": 53
                                            }
                                          }
                                        },
                                        "property": {
                                          "type": "Identifier",
                                          "start": 5069,
                                          "end": 5081,
                                          "loc": {
                                            "start": {
                                              "line": 133,
                                              "column": 54
                                            },
                                            "end": {
                                              "line": 133,
                                              "column": 66
                                            }
                                          },
                                          "name": "_listeningTo"
                                        },
                                        "computed": false
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "start": 5082,
                                        "end": 5084,
                                        "loc": {
                                          "start": {
                                            "line": 133,
                                            "column": 67
                                          },
                                          "end": {
                                            "line": 133,
                                            "column": 69
                                          }
                                        },
                                        "name": "id"
                                      },
                                      "computed": true
                                    }
                                  }
                                },
                                "alternate": null
                              }
                            ]
                          }
                        },
                        {
                          "type": "ReturnStatement",
                          "start": 5097,
                          "end": 5109,
                          "loc": {
                            "start": {
                              "line": 135,
                              "column": 4
                            },
                            "end": {
                              "line": 135,
                              "column": 16
                            }
                          },
                          "argument": {
                            "type": "ThisExpression",
                            "start": 5104,
                            "end": 5108,
                            "loc": {
                              "start": {
                                "line": 135,
                                "column": 11
                              },
                              "end": {
                                "line": 135,
                                "column": 15
                              }
                            }
                          }
                        }
                      ]
                    }
                  },
                  "kind": "init",
                  "leadingComments": [
                    {
                      "type": "CommentLine",
                      "value": " Tell this object to stop listening to either specific events ... or",
                      "start": 4514,
                      "end": 4584,
                      "loc": {
                        "start": {
                          "line": 122,
                          "column": 2
                        },
                        "end": {
                          "line": 122,
                          "column": 72
                        }
                      },
                      "range": [
                        4514,
                        4584
                      ]
                    },
                    {
                      "type": "CommentLine",
                      "value": " to every object it's currently listening to.",
                      "start": 4587,
                      "end": 4634,
                      "loc": {
                        "start": {
                          "line": 123,
                          "column": 2
                        },
                        "end": {
                          "line": 123,
                          "column": 49
                        }
                      },
                      "range": [
                        4587,
                        4634
                      ]
                    }
                  ]
                }
              ]
            }
          }
        ],
        "kind": "let",
        "leadingComments": [],
        "trailingComments": []
      }
    }
  ]
}