vertion1.0 upstream.cpp