ao.cpp