Two-Level Logic Optimization