<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def find_event_with_outgoing_edges(self, event_name, desired_relations):
 """Gets a list of event nodes with the specified event_name and outgoing edges annotated with each of the specified relations. Parameters event_name : str Look for event nodes with this name desired_relations : list[str] Look for event nodes with outgoing edges annotated with each of these relations Returns ------- event_nodes : list[str] Event nodes that fit the desired criteria """


        G = self.G
        desired_relations = set(desired_relations)

        desired_event_nodes = []

        for node in G.node.keys():
            if G.node[node]['is_event'] and G.node[node]['type'] == event_name:
                has_relations = [G.edges[node, edge[1]]['relation'] for
                                 edge in G.edges(node)]
                has_relations = set(has_relations)
                # Did the outgoing edges from this node have all of the
                # desired relations?
                if desired_relations.issubset(has_relations):
                    desired_event_nodes.append(node)
        return desired_event_nodes