#include <iostream>
#include <vector>
#include <memory>
#include <cstdio>
#include <fstream>
#include <cassert>
#include <functional>
using namespace std;
int main() {
shared_ptr<std::string> shared_ptr1 = std::make_shared<std::string>("Foo");
shared_ptr<std::string> shared_ptr2 = std::make_shared<std::string>("Bar");
std::string* normal_ptr = shared_ptr1.get();
shared_ptr1 = shared_ptr2;
cout << (*normal_ptr) << "\n";
cout << (*shared_ptr1) << "\n";
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8bWVtb3J5PgojaW5jbHVkZSA8Y3N0ZGlvPgojaW5jbHVkZSA8ZnN0cmVhbT4KI2luY2x1ZGUgPGNhc3NlcnQ+CiNpbmNsdWRlIDxmdW5jdGlvbmFsPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKSB7CglzaGFyZWRfcHRyPHN0ZDo6c3RyaW5nPiBzaGFyZWRfcHRyMSA9IHN0ZDo6bWFrZV9zaGFyZWQ8c3RkOjpzdHJpbmc+KCJGb28iKTsKCXNoYXJlZF9wdHI8c3RkOjpzdHJpbmc+IHNoYXJlZF9wdHIyID0gc3RkOjptYWtlX3NoYXJlZDxzdGQ6OnN0cmluZz4oIkJhciIpOyAKCglzdGQ6OnN0cmluZyogbm9ybWFsX3B0ciA9IHNoYXJlZF9wdHIxLmdldCgpOyAKCXNoYXJlZF9wdHIxID0gc2hhcmVkX3B0cjI7IAoJCgljb3V0IDw8ICgqbm9ybWFsX3B0cikgPDwgIlxuIjsgCgljb3V0IDw8ICgqc2hhcmVkX3B0cjEpIDw8ICJcbiI7CgkKCXJldHVybiAwOwp9