abce059e83f31639dcf58a91b95b93aa::::::::::::::::::::::::