include MonksTools; unitsize(4cm); pair[] A; path p; real gap=0.05; A[0]=dir(-90); dot(A[0]); for (int i=1; i<=17; ++i) { A[i]=dir(360/18*i-90); dot(A[i]); p=A[i-1]--A[i]; draw(shorten(p,gap),Arrow); } p=A[17]--A[0]; draw(shorten(p,gap),Arrow); p=A[0]..((A[0]+A[17])/2-.08*(A[8]+A[9])/2)..A[17]; draw(shorten(p,gap),red,Arrow); p=A[1]..A[1]+A[14]..A[15]; draw(shorten(p,gap),red,Arrow); p=A[2]..((A[2]+A[5])/2-.2*(A[3]+A[4])/2)..A[5]; draw(shorten(p,gap),red,Arrow); p=A[3]..((A[3]+A[9])*1.5)..1.2*A[8]..(0.535*(A[8]+A[9]))..A[9]; draw(shorten(p,gap,1.8*gap),red,Arrow); p=A[4]--A[11]; draw(shorten(p,gap),red,Arrow); p=A[5]..(A[5]+A[3])*.63..(A[3]+A[4])*.55 ..A[3]; draw(shorten(p,gap),red,Arrow); p=A[6]--A[17]; draw(shorten(p,gap),red,Arrow); p=A[7]--A[15]; draw(shorten(p,gap),red,Arrow); p=A[8]--A[5]; draw(shorten(p,gap),red,Arrow); p=A[9]{dir(10)}..A[9]+(0,.3)..{dir(-10)}A[9]; draw(shorten(p,gap),red,Arrow); p=A[10]..0.47*(A[10]+A[11])..A[11]; draw(shorten(p,gap),red,Arrow); p=A[11]..(A[11]+A[3])/2+0.1*A[16]..A[3]; draw(shorten(p,gap),red,Arrow); p=A[12]..(A[12]+A[17])/2+0.2*A[8]..A[17]; draw(shorten(p,gap),red,Arrow); p=A[13]..(.45*(A[13]+A[15]))..A[15]; draw(shorten(p,gap),red,Arrow); p=A[14]..(-.1,.1)..A[5]; draw(shorten(p,gap),red,Arrow); p=A[15]..((A[15]+A[9])*1.5)..1.2*A[10]..(0.535*(A[10]+A[9]))..A[9]; draw(shorten(p,gap,1.8*gap),red,Arrow); p=A[16]--A[11]; draw(shorten(p,gap),red,Arrow); p=A[17]--A[3]; draw(shorten(p,gap),red,Arrow); label("$1$",A[0],A[0]); label("$14$",A[1],A[1]); label("$7$",A[2],A[2]); label("$17$",A[3],A[3]); label("$22$",A[4],A[4]); label("$11$",A[5],NE); label("$19$",A[6],A[6]); label("$23$",A[7],A[7]); label("$25$",A[8],A[8]); label("$26$",A[9],A[9]); label("$13$",A[10],A[10]); label("$20$",A[11],A[11]); label("$10$",A[12],A[12]); label("$5$",A[13],A[13]); label("$16$",A[14],A[14]); label("$8$",A[15],A[15]); label("$4$",A[16],A[16]); label("$2$",A[17],A[17]);