D: (4, 0)
B: (2, 0)
A: (1, 0)
d = Circle(B, A)
O = (0, 0)
s = Circle(O, Segment[O, D])
c = Circle(O, A)
G = Point(c)
e = Circle(G, Segment[O, B])
I = Intersect(d, e, 1)
H = Intersect(d, e, 2)
J = If(y(G) > 0, I, H)
B'' = Dilate(J, 4, B)
f = Segment(G, J)
r = Circle(B'', f)
A_1, B_1 = Intersect(r, s)
O' = Mirror(O, G)
q = Circle(O, G)
K = Midpoint(f)
L = Midpoint(K, O')
G' = Mirror(G, L)
p = Circle(G', f)
U, V = Intersect(p, q)
M = If(y(G) < 0, U, V)
O'_{1} = Mirror(O, M)
h_1 = Segment(M, O'_{1})
g_1 = Circle(O, h_1)
m = Segment(M, G')
P = Midpoint(m)
Q = Midpoint(O'_{1}, P)
M' = Mirror(M, Q)
d_1 = Circle(M', Segment[O, B])
W, Z = Intersect(d_1, g_1)
C: (3, 0)
h = Segment(O, G)
g = Segment(B, J)
i = Segment(K, G')
j = Segment(G', O')
k = Segment(O', G)
l = Segment(O, M)
B' = Mirror(B, J)
J' = Mirror(J, B')
n = Segment(B'', J)
N = If(y(G) > 0, B_1, A_1)
t = Segment(B'', N)
a = Segment(N, O)
c_1 = Circle(O'_{1}, M)
e_1 = Circle(O, M)
b = Segment(P, M')
f_1 = Segment(O'_{1}, M')
R = If(y(G) < 0, W, Z)
i_1 = Segment(M', R)
j_1 = Segment(R, O)
R' = Dilate(R, 4, O)
S = Midpoint(R', N)
O'_{2} = Mirror(O, S)
k_1 = Segment(R', R)
l_1 = Segment(R', O'_{2})
m_1 = Segment(O'_{2}, N)
T = Mirror(O'_{2}, N)
n_1 = Segment(N, T)