Federal appeals court finds parts of anti-riot law violate free speech