HDU1846

Signed-off-by: cyberzhg <cyberzhg@gmail.com>
HDU2188

Signed-off-by: cyberzhg <cyberzhg@gmail.com>
HDU1527

Signed-off-by: cyberzhg <cyberzhg@gmail.com>
HDU2117

Signed-off-by: cyberzhg <cyberzhg@gmail.com>