#pragma clang system_header
int abort();
#ifdef NDEBUG
#define assert(x) 1
#else
#define assert(x) \
if (!(x)) \
(void)abort()
#endif
void print(...);
#define assert2(e) (__builtin_expect(!(e), 0) ? \
print (#e, __FILE__, __LINE__) : (void)0)
#ifdef NDEBUG
#define my_assert(x) 1
#else
#define my_assert(x) \
((void)((x) ? 1 : abort()))
#endif
#ifdef NDEBUG
#define not_my_assert(x) 1
#else
#define not_my_assert(x) \
if (!(x)) \
(void)abort()
#endif
#define real_assert(x) ((void)((x) ? 1 : abort()))
#define wrap1(x) real_assert(x)
#define wrap2(x) wrap1(x)
#define convoluted_assert(x) wrap2(x)
#define msvc_assert(expression) (void)( \
(!!(expression)) || \
(abort(), 0) \
)