holy shit
o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o : o :