\documentclass{standalone}
\usepackage{luamplib}
\mplibtextextlabel{enable}
\begin{document}
\begin{mplibcode}
numeric a; a = 56;
path r[];  % the rings
r1 = fullcircle scaled 2a shifted (0, -3/2 a);
r2 = fullcircle scaled 2a shifted (0, -1/2 a);
r3 = fullcircle scaled 2a shifted (0, +1/2 a);
r4 = fullcircle scaled 2a shifted (0, +3/2 a);
r5 = r2 rotatedabout(point 2 of r2, -60);
r6 = r2 rotatedabout(point 2 of r2, +60);
pair o[];  % the centres of rotation for each arc
o1 = point 6 of r5;
o2 = point 2 of r3;
o3 = point 6 of r6;
o4 = whatever[o3, point 2+4/3 of r2] = whatever[o2, point 2-4/3 of r1];
o8 = whatever[o1, point 2-4/3 of r2] = whatever[o2, point 2+4/3 of r1];
o6 = 1/2[point 2-4/3 of r1, point 2+4/3 of r1];
o5 = whatever[o6, point 2-4/3 of r3] = whatever[o4, point 2+4/3 of r1];
o7 = whatever[o6, point 2+4/3 of r3] = whatever[o8, point 2-4/3 of r1];
pair u[], t[];  % directions and points for the egg
u0 = (o8 - o1) rotated 90;  t0 = directionpoint u0 of r6;
u1 = (o2 - o1) rotated 90;  t1 = directionpoint u1 of r4;
u2 = (o2 - o3) rotated 90;  t2 = directionpoint u2 of r4;
u3 = (o4 - o3) rotated 90;  t3 = directionpoint u3 of r5;
u4 = (o5 - o4) rotated 90;
u5 = (o6 - o5) rotated 90;
u6 = (o6 - o7) rotated 90;
u7 = (o7 - o8) rotated 90;
t4 = directionpoint u4 of fullcircle scaled 2 abs (t3 - o4) shifted o4;
t5 = directionpoint u5 of fullcircle scaled 2 abs (t4 - o5) shifted o5;
t6 = directionpoint u6 of fullcircle scaled 2 abs (t5 - o6) shifted o6;
t7 = directionpoint u7 of fullcircle scaled 2 abs (t6 - o7) shifted o7;

path egg; egg = for i=0 upto 7: t[i] {u[i]} .. endfor cycle;

input eggs-common

beginfig(1);
   fill egg withpen pencircle scaled 2 withcolor eggshell;
   picture P; P = currentpicture;

   drawoptions(withpen pencircle scaled 1/4 withcolor dark_eggshell);
   for i=1 upto 6: draw r[i]; endfor
   draw point 2+4/3 of r1 -- point 2-4/3 of r1 -- o2 -- cycle;
   draw point 2+4/3 of r3 -- o7;
   draw point 2-4/3 of r3 -- o5;


   drawoptions(withpen pencircle scaled 1/4 withcolor 1/2);
   draw t0 -- o1 -- t1;
   draw t2 -- o3 -- t3;
   draw o4 -- t4;
   draw o5 -- t5;
   draw o7 -- t6;
   draw o8 -- t7;
   draw egg;

   drawoptions(withpen pencircle scaled 2 withcolor 7/16);
   t8 = t0;
   for i=1 upto 8:
       draw o[i];
       label("$\scriptscriptstyle " & decimal i &"$",
             o[i] + 4.2 (unitvector(t[i-1]-o[i]) + unitvector (t[i]-o[i])));
   endfor
   drawoptions();
   draw numbered_points(egg);

   draw P shifted 240 right;

endfig;
\end{mplibcode}
\end{document}