M7FZ5YH4U6TXWMCSM6A5GDXXUH636DROLQJPZV5SG52IR7227VJQC KJSF54YTAY3FMPYFLPRFP3Y7LQWLQKSUO7JARUPHLJJMXRVXSRGAC BVR7DVINVPQG7PA6Z7QYVYNQ43YZL7XCC6AOMSMWMGAAB2Q43STAC 722HZ7UFINNE3YKSYKP2NHZ5XEG5QQLQHSKC7PREJZR3EX6RDYUAC YIQN7NJTGEVKW7JZHL6CTH6EPCIXCNBYNURIGXPYZAOUX3VAJQMAC RCLGQ2LZMFVPBPTU2G55DJ6HZPOGGTPZRZCY54VGP6YLHANJ2LAQC OJZWEAJRLOA5FZAC6FMGBQ6XFQFDNO55IRWLFWDAYWM54MUIU5LAC M5R6KQLXLGYSVKHVAX5AJKD6NYE6IM5Z6WVTR3BTKPJDNNKF3ARAC FEMASUBNU32NSG4DNXZX54CGCA57PVRGYO46L3A6F2EJ4BCSJ3SAC // Taken from// <https://stackoverflow.com/questions/27440953/stdunique-ptr-for-c-functions-that-need-free>struct free_deleter {template <typename T> void operator()(T *p) const {std::free(const_cast<std::remove_const_t<T> *>(p));}};template <typename T> using unique_C_ptr = std::unique_ptr<T, free_deleter>;static_assert(sizeof(char *) == sizeof(unique_C_ptr<char>),""); // ensure no overhead