1.a) (push) как только переполнились -> отправляем на output (WeiExpense у которого берутся getNeededAmount()) 2.b) (pull) как только прееполнились -> открылись для вывода и перестаем собирать деньги и отправляем их дальше (не revert'им)
2.a) накапливаем 1 раз 2.b) накапливаем бесконечно раз 2.c) накапилваем бесконечно раз, но с периодом K