#include <chrono>
#include <cstring>
#include <iostream>
using namespace std;
using Timestamp = std::chrono::system_clock::time_point;
int main() {
char data[1000] = {};
// check "garbage" values for being C strings or timestamps.
auto check_garbage_value = [&](uint64_t value) {
auto * v = ::new (&data[0]) uint64_t{value};
data[sizeof(uint64_t)] = '\0';
auto t = std::chrono::system_clock::to_time_t(Timestamp(Timestamp::duration(value)));
auto tm = *::gmtime(&t);
cout << *v << " -> '" << (const char *)v << "' or "
<< tm.tm_year + 1900 << "-" << tm.tm_mon + 1 << "-" << tm.tm_mday
<< endl;
};
check_garbage_value(1784067974984445981ull);
check_garbage_value(7310595060589862666ull);
cout << endl;
return 0;
}
I2luY2x1ZGUgPGNocm9ubz4KI2luY2x1ZGUgPGNzdHJpbmc+CiNpbmNsdWRlIDxpb3N0cmVhbT4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnVzaW5nIFRpbWVzdGFtcCA9IHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQ7CgoKaW50IG1haW4oKSB7CgljaGFyIGRhdGFbMTAwMF0gPSB7fTsKCS8vIGNoZWNrICJnYXJiYWdlIiB2YWx1ZXMgZm9yIGJlaW5nIEMgc3RyaW5ncyBvciB0aW1lc3RhbXBzLgoJYXV0byBjaGVja19nYXJiYWdlX3ZhbHVlID0gWyZdKHVpbnQ2NF90IHZhbHVlKSB7CgkJYXV0byAqIHYgPSA6Om5ldyAoJmRhdGFbMF0pIHVpbnQ2NF90e3ZhbHVlfTsKCQlkYXRhW3NpemVvZih1aW50NjRfdCldID0gJ1wwJzsKCQlhdXRvIHQgPSBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0b190aW1lX3QoVGltZXN0YW1wKFRpbWVzdGFtcDo6ZHVyYXRpb24odmFsdWUpKSk7CgkJYXV0byB0bSA9ICo6OmdtdGltZSgmdCk7CgkJY291dCA8PCAqdiA8PCAiIC0+ICciIDw8IChjb25zdCBjaGFyICopdiA8PCAiJyBvciAiCgkJICAgICA8PCB0bS50bV95ZWFyICsgMTkwMCA8PCAiLSIgPDwgdG0udG1fbW9uICsgMSA8PCAiLSIgPDwgdG0udG1fbWRheQoJCSAgICAgPDwgZW5kbDsKCX07CgkKCWNoZWNrX2dhcmJhZ2VfdmFsdWUoMTc4NDA2Nzk3NDk4NDQ0NTk4MXVsbCk7CgljaGVja19nYXJiYWdlX3ZhbHVlKDczMTA1OTUwNjA1ODk4NjI2NjZ1bGwpOwoJCgljb3V0IDw8IGVuZGw7CgkKCXJldHVybiAwOwp9