forked from: flash on 2017-1-25

