code: def node_to_complex_fault_geometry(node):
      
      assert "complexFaultGeometry" in node.tag
      intermediate_edges = []
      for subnode in node.nodes:
          if "faultTopEdge" in subnode.tag:
              top_edge = linestring_node_to_line(subnode.nodes[0],
                                                 with_depth=True)
          elif "intermediateEdge" in subnode.tag:
              int_edge = linestring_node_to_line(subnode.nodes[0],
                                                 with_depth=True)
              intermediate_edges.append(int_edge)
          elif "faultBottomEdge" in subnode.tag:
              bottom_edge = linestring_node_to_line(subnode.nodes[0],
                                                    with_depth=True)
          else:
              # Redundent
              pass
      return [top_edge] + intermediate_edges + [bottom_edge]
docs: Reads a complex fault geometry node and returns an