Code
def outer(side,color):
return rectangle(w=side,h=side,fill=color,stroke="none")
cout = circle(r=145,fill="black",stroke="none")
r1=outer(side=203,color="#8b0000")|repeat(10,rotate(10))
r2=outer(side=189,color="#ff0000")|rotate(5)|repeat(10,rotate(10))
r3=outer(side=174,color="#ff6700")|rotate(10)|repeat(10,rotate(10))
r4=outer(side=160,color="#ffbf00")|rotate(15)|repeat(10,rotate(10))
cin1=circle(r=104,fill="#f4ff59",stroke="none")
c9=ellipse(w=49,h=48,x=2,y=80,fill="#ff04ab",stroke="black") | repeat(12,rotate(30))
cb=circle(r=80,fill="#ff6700",stroke="none")
cd=circle(r=85,fill="#ff0000",stroke="none")
ce=circle(r=90,fill="#8b0000",stroke="none")
c8=ellipse(w=35,h=20,x=1.5,y=65,fill="#f4ff59",stroke="black",stroke_width=1.5) | repeat(12,rotate(30))
cb4=circle(r=44,fill="#8b0000",stroke="none")
cb3=circle(r=52,fill="#ff0000",stroke="none")
cb2=circle(r=60,fill="#ff6700",stroke="none")
ca=circle(r=68,fill="#ffbf00",stroke="none")
l1=line(x1=0,y1=70,x2=0,y2=-70,stroke="black",stroke_widh=3) | rotate(14) | repeat(6,rotate(30))
e1=ellipse(w=30,h=17,x=25,y=0,fill="black",stroke="none")| repeat(12, rotate(30))
ca4=circle(r=24,fill="#8b0000",stroke="none")
ca3=circle(r=20,fill="#ff0000",stroke="none")
ca2=circle(r=16,fill="#ff6700",stroke="none")
ca1=circle(r=12,fill="#ffbf00",stroke="none")
cin=circle(r=8,fill="#f40101",stroke="none")
ci=circle(r=4,fill="#ff04ab",stroke="black")
show(cout,r1,r2,r3,r4,cin1,c9,ce,cd,cb,c8,ca,cb2,cb3,cb4,l1,e1,ca4,ca3,ca2,ca1,cin,ci)