Fractal uncertainty principle and its applications