generate layputs