timesxysumgeneratexygeneratexygenxy0genxyzifgezxxyziftruexyzniliffalsexyzconsygenxyszsumxssum2xs0sum2xsyifsumisNilxsisZeroheadxsxsyifsumtruebxsyyifsumfalsebxsyifsum2bxsyifsum2truexsysum2tailxsyifsum2falsexsysum2conspheadxstailxssyisNilniltrueisNilconsxxsfalsetailnilniltailconsxxsxsheadconsxxsxheadnilerrorisZero0trueisZeros0falseisZerossxisZerosxp0ss0ps00pssxspsxgex0truege0syfalsegesxsygexyacad