consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume consume