def do_intersect(segment_one, segment_two):
source_param = "<STR_LIT:source>"<EOL>target_param = "<STR_LIT:target>"<EOL>o1 = orientation(segment_one[source_param], segment_one[target_param], segment_two[source_param])<EOL>o2 = orientation(segment_one[source_param], segment_one[target_param], segment_two[target_param])<EOL>o3 = orientation(segment_two[source_param], segment_two[target_param], segment_one[source_param])<EOL>o4 = orientation(segment_two[source_param], segment_two[target_param], segment_one[target_param])<EOL>if o1 != o2 and o3 != o4:<EOL><INDENT>return True<EOL><DEDENT>if o1 == <NUM_LIT:0> and lies_on_segment(segment_one[source_param], segment_one[target_param], segment_two[source_param]):<EOL><INDENT>return True<EOL><DEDENT>if o2 == <NUM_LIT:0> and lies_on_segment(segment_one[source_param], segment_one[target_param], segment_two[target_param]):<EOL><INDENT>return True<EOL><DEDENT>if o3 == <NUM_LIT:0> and lies_on_segment(segment_two[source_param], segment_two[target_param], segment_one[source_param]):<EOL><INDENT>return True<EOL><DEDENT>if o4 == <NUM_LIT:0> and lies_on_segment(segment_two[source_param], segment_two[target_param], segment_one[target_param]):<EOL><INDENT>return True<EOL><DEDENT>return False<EOL>
:param segment_one:
:param segment_two:
:return: