in1(A1);
-in2(A1);
in2(D1);
in1(A2);
-in2(A2);
in2(D2);
out(B2);
out(B1);

-out(C1);
-out(C2);
and(x)&-AB(x)>[out(x)=in1(x)&in2(x)];
xor(x)&-AB(x)>[out(x)=in1(x)&-in2(x)|in2(x)&-in1(x)];
or(x)&-AB(x)>[out(x)=in1(x)|in2(x)];
xor(A1);
xor(B1);
or(C1);
and(D1);
and(E1);
xor(A2);
xor(B2);
or(C2);
and(D2);
and(E2);
out(A1)=in1(B1);
out(A1)=in1(D1);
in2(D1)=in2(B1);
out(D1)=in1(C1);
out(E1)=in2(C1);
in1(A1)=in1(E1);
in2(A1)=in2(E1);
out(A2)=in1(B2);
out(A2)=in1(D2);
in2(D2)=in2(B2);
out(D2)=in1(C2);
out(E2)=in2(C2);
in1(A2)=in1(E2);
in2(A2)=in2(E2);