forked from: flash on 2016-4-18

