__attribute__ ((__nothrow__,__leaf__,__malloc__)) extern void *malloc(unsigned long int __size);
__attribute__ ((__nothrow__,__leaf__)) extern void free(void *__ptr);
__attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void abort(void);
__attribute__ ((__nothrow__,__leaf__,__nonnull__(1))) extern signed int atexit(void (*__func)(void));
__attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void exit(signed int __status);
extern signed int printf(const char *__restrict __format, ...);
__attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void __assert_fail(const char *__assertion, const char *__file, unsigned int __line, const char *__function);
__attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void __assert_perror_fail(signed int __errnum, const char *__file, unsigned int __line, const char *__function);
__attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void __assert(const char *__assertion, const char *__file, signed int __line);
__attribute__ ((noreturn,format(printf, 5, 6))) void __assert_fail_f(const char *assertion, const char *file, unsigned int line, const char *function, const char *fmt, ...);
struct spinlock {
    volatile signed int lock;
    const char *prev_name;
    void *prev_thrd;
};
static inline void ___constructor__F_R9sspinlock_autogen___1(struct spinlock *___dst__R9sspinlock_1);
static inline void ___constructor__F_R9sspinlock9sspinlock_autogen___1(struct spinlock *___dst__R9sspinlock_1, struct spinlock ___src__9sspinlock_1);
static inline void ___destructor__F_R9sspinlock_autogen___1(struct spinlock *___dst__R9sspinlock_1);
static inline struct spinlock ___operator_assign__F9sspinlock_R9sspinlock9sspinlock_autogen___1(struct spinlock *___dst__R9sspinlock_1, struct spinlock ___src__9sspinlock_1);
static inline void ___constructor__F_R9sspinlock_autogen___1(struct spinlock *___dst__R9sspinlock_1){
    ((void)((*((signed int *)(&(*___dst__R9sspinlock_1).lock)))) /* ?{} */);
    ((void)((*___dst__R9sspinlock_1).prev_name) /* ?{} */);
    ((void)((*___dst__R9sspinlock_1).prev_thrd) /* ?{} */);
}
static inline void ___constructor__F_R9sspinlock9sspinlock_autogen___1(struct spinlock *___dst__R9sspinlock_1, struct spinlock ___src__9sspinlock_1){
    ((void)((*((signed int *)(&(*___dst__R9sspinlock_1).lock)))=___src__9sspinlock_1.lock) /* ?{} */);
    ((void)((*___dst__R9sspinlock_1).prev_name=___src__9sspinlock_1.prev_name) /* ?{} */);
    ((void)((*___dst__R9sspinlock_1).prev_thrd=___src__9sspinlock_1.prev_thrd) /* ?{} */);
}
static inline void ___destructor__F_R9sspinlock_autogen___1(struct spinlock *___dst__R9sspinlock_1){
    ((void)((*___dst__R9sspinlock_1).prev_thrd) /* ^?{} */);
    ((void)((*___dst__R9sspinlock_1).prev_name) /* ^?{} */);
    ((void)((*((signed int *)(&(*___dst__R9sspinlock_1).lock)))) /* ^?{} */);
}
static inline struct spinlock ___operator_assign__F9sspinlock_R9sspinlock9sspinlock_autogen___1(struct spinlock *___dst__R9sspinlock_1, struct spinlock ___src__9sspinlock_1){
    struct spinlock ___ret__9sspinlock_1;
    ((void)((*___dst__R9sspinlock_1).lock=___src__9sspinlock_1.lock));
    ((void)((*___dst__R9sspinlock_1).prev_name=___src__9sspinlock_1.prev_name));
    ((void)((*___dst__R9sspinlock_1).prev_thrd=___src__9sspinlock_1.prev_thrd));
    ((void)___constructor__F_R9sspinlock9sspinlock_autogen___1((&___ret__9sspinlock_1), ___src__9sspinlock_1));
    return ((struct spinlock )___ret__9sspinlock_1);
}
static inline void ___constructor__F_R9sspinlockVi_autogen___1(struct spinlock *___dst__R9sspinlock_1, volatile signed int __lock__Vi_1){
    ((void)((*((signed int *)(&(*___dst__R9sspinlock_1).lock)))=__lock__Vi_1) /* ?{} */);
    ((void)((*___dst__R9sspinlock_1).prev_name) /* ?{} */);
    ((void)((*___dst__R9sspinlock_1).prev_thrd) /* ?{} */);
}
static inline void ___constructor__F_R9sspinlockViPCc_autogen___1(struct spinlock *___dst__R9sspinlock_1, volatile signed int __lock__Vi_1, const char *__prev_name__PCc_1){
    ((void)((*((signed int *)(&(*___dst__R9sspinlock_1).lock)))=__lock__Vi_1) /* ?{} */);
    ((void)((*___dst__R9sspinlock_1).prev_name=__prev_name__PCc_1) /* ?{} */);
    ((void)((*___dst__R9sspinlock_1).prev_thrd) /* ?{} */);
}
static inline void ___constructor__F_R9sspinlockViPCcPv_autogen___1(struct spinlock *___dst__R9sspinlock_1, volatile signed int __lock__Vi_1, const char *__prev_name__PCc_1, void *__prev_thrd__Pv_1){
    ((void)((*((signed int *)(&(*___dst__R9sspinlock_1).lock)))=__lock__Vi_1) /* ?{} */);
    ((void)((*___dst__R9sspinlock_1).prev_name=__prev_name__PCc_1) /* ?{} */);
    ((void)((*___dst__R9sspinlock_1).prev_thrd=__prev_thrd__Pv_1) /* ?{} */);
}
struct __thread_queue_t {
    struct thread_desc *head;
    struct thread_desc **tail;
};
static inline void ___constructor__F_R17s__thread_queue_t_autogen___1(struct __thread_queue_t *___dst__R17s__thread_queue_t_1);
static inline void ___constructor__F_R17s__thread_queue_t17s__thread_queue_t_autogen___1(struct __thread_queue_t *___dst__R17s__thread_queue_t_1, struct __thread_queue_t ___src__17s__thread_queue_t_1);
static inline void ___destructor__F_R17s__thread_queue_t_autogen___1(struct __thread_queue_t *___dst__R17s__thread_queue_t_1);
static inline struct __thread_queue_t ___operator_assign__F17s__thread_queue_t_R17s__thread_queue_t17s__thread_queue_t_autogen___1(struct __thread_queue_t *___dst__R17s__thread_queue_t_1, struct __thread_queue_t ___src__17s__thread_queue_t_1);
static inline void ___constructor__F_R17s__thread_queue_t_autogen___1(struct __thread_queue_t *___dst__R17s__thread_queue_t_1){
    ((void)((*___dst__R17s__thread_queue_t_1).head) /* ?{} */);
    ((void)((*___dst__R17s__thread_queue_t_1).tail) /* ?{} */);
}
static inline void ___constructor__F_R17s__thread_queue_t17s__thread_queue_t_autogen___1(struct __thread_queue_t *___dst__R17s__thread_queue_t_1, struct __thread_queue_t ___src__17s__thread_queue_t_1){
    ((void)((*___dst__R17s__thread_queue_t_1).head=___src__17s__thread_queue_t_1.head) /* ?{} */);
    ((void)((*___dst__R17s__thread_queue_t_1).tail=___src__17s__thread_queue_t_1.tail) /* ?{} */);
}
static inline void ___destructor__F_R17s__thread_queue_t_autogen___1(struct __thread_queue_t *___dst__R17s__thread_queue_t_1){
    ((void)((*___dst__R17s__thread_queue_t_1).tail) /* ^?{} */);
    ((void)((*___dst__R17s__thread_queue_t_1).head) /* ^?{} */);
}
static inline struct __thread_queue_t ___operator_assign__F17s__thread_queue_t_R17s__thread_queue_t17s__thread_queue_t_autogen___1(struct __thread_queue_t *___dst__R17s__thread_queue_t_1, struct __thread_queue_t ___src__17s__thread_queue_t_1){
    struct __thread_queue_t ___ret__17s__thread_queue_t_1;
    ((void)((*___dst__R17s__thread_queue_t_1).head=___src__17s__thread_queue_t_1.head));
    ((void)((*___dst__R17s__thread_queue_t_1).tail=___src__17s__thread_queue_t_1.tail));
    ((void)___constructor__F_R17s__thread_queue_t17s__thread_queue_t_autogen___1((&___ret__17s__thread_queue_t_1), ___src__17s__thread_queue_t_1));
    return ((struct __thread_queue_t )___ret__17s__thread_queue_t_1);
}
static inline void ___constructor__F_R17s__thread_queue_tP12sthread_desc_autogen___1(struct __thread_queue_t *___dst__R17s__thread_queue_t_1, struct thread_desc *__head__P12sthread_desc_1){
    ((void)((*___dst__R17s__thread_queue_t_1).head=__head__P12sthread_desc_1) /* ?{} */);
    ((void)((*___dst__R17s__thread_queue_t_1).tail) /* ?{} */);
}
static inline void ___constructor__F_R17s__thread_queue_tP12sthread_descPP12sthread_desc_autogen___1(struct __thread_queue_t *___dst__R17s__thread_queue_t_1, struct thread_desc *__head__P12sthread_desc_1, struct thread_desc **__tail__PP12sthread_desc_1){
    ((void)((*___dst__R17s__thread_queue_t_1).head=__head__P12sthread_desc_1) /* ?{} */);
    ((void)((*___dst__R17s__thread_queue_t_1).tail=__tail__PP12sthread_desc_1) /* ?{} */);
}
struct __condition_stack_t {
    struct __condition_criterion_t *top;
};
static inline void ___constructor__F_R20s__condition_stack_t_autogen___1(struct __condition_stack_t *___dst__R20s__condition_stack_t_1);
static inline void ___constructor__F_R20s__condition_stack_t20s__condition_stack_t_autogen___1(struct __condition_stack_t *___dst__R20s__condition_stack_t_1, struct __condition_stack_t ___src__20s__condition_stack_t_1);
static inline void ___destructor__F_R20s__condition_stack_t_autogen___1(struct __condition_stack_t *___dst__R20s__condition_stack_t_1);
static inline struct __condition_stack_t ___operator_assign__F20s__condition_stack_t_R20s__condition_stack_t20s__condition_stack_t_autogen___1(struct __condition_stack_t *___dst__R20s__condition_stack_t_1, struct __condition_stack_t ___src__20s__condition_stack_t_1);
static inline void ___constructor__F_R20s__condition_stack_t_autogen___1(struct __condition_stack_t *___dst__R20s__condition_stack_t_1){
    ((void)((*___dst__R20s__condition_stack_t_1).top) /* ?{} */);
}
static inline void ___constructor__F_R20s__condition_stack_t20s__condition_stack_t_autogen___1(struct __condition_stack_t *___dst__R20s__condition_stack_t_1, struct __condition_stack_t ___src__20s__condition_stack_t_1){
    ((void)((*___dst__R20s__condition_stack_t_1).top=___src__20s__condition_stack_t_1.top) /* ?{} */);
}
static inline void ___destructor__F_R20s__condition_stack_t_autogen___1(struct __condition_stack_t *___dst__R20s__condition_stack_t_1){
    ((void)((*___dst__R20s__condition_stack_t_1).top) /* ^?{} */);
}
static inline struct __condition_stack_t ___operator_assign__F20s__condition_stack_t_R20s__condition_stack_t20s__condition_stack_t_autogen___1(struct __condition_stack_t *___dst__R20s__condition_stack_t_1, struct __condition_stack_t ___src__20s__condition_stack_t_1){
    struct __condition_stack_t ___ret__20s__condition_stack_t_1;
    ((void)((*___dst__R20s__condition_stack_t_1).top=___src__20s__condition_stack_t_1.top));
    ((void)___constructor__F_R20s__condition_stack_t20s__condition_stack_t_autogen___1((&___ret__20s__condition_stack_t_1), ___src__20s__condition_stack_t_1));
    return ((struct __condition_stack_t )___ret__20s__condition_stack_t_1);
}
static inline void ___constructor__F_R20s__condition_stack_tP24s__condition_criterion_t_autogen___1(struct __condition_stack_t *___dst__R20s__condition_stack_t_1, struct __condition_criterion_t *__top__P24s__condition_criterion_t_1){
    ((void)((*___dst__R20s__condition_stack_t_1).top=__top__P24s__condition_criterion_t_1) /* ?{} */);
}
void ___constructor__F_R17s__thread_queue_t__1(struct __thread_queue_t *__anonymous_object0);
void __append__F_P17s__thread_queue_tP12sthread_desc__1(struct __thread_queue_t *__anonymous_object1, struct thread_desc *__anonymous_object2);
struct thread_desc *__pop_head__FP12sthread_desc_P17s__thread_queue_t__1(struct __thread_queue_t *__anonymous_object3);
struct thread_desc *__remove__FP12sthread_desc_P17s__thread_queue_tPP12sthread_desc__1(struct __thread_queue_t *__anonymous_object4, struct thread_desc **__anonymous_object5);
void ___constructor__F_R20s__condition_stack_t__1(struct __condition_stack_t *__anonymous_object6);
void __push__F_P20s__condition_stack_tP24s__condition_criterion_t__1(struct __condition_stack_t *__anonymous_object7, struct __condition_criterion_t *__anonymous_object8);
struct __condition_criterion_t *__pop__FP24s__condition_criterion_t_P20s__condition_stack_t__1(struct __condition_stack_t *__anonymous_object9);
void ___constructor__F_R9sspinlock__1(struct spinlock *__this__R9sspinlock_1);
void ___destructor__F_R9sspinlock__1(struct spinlock *__this__R9sspinlock_1);
struct coStack_t {
    unsigned int size;
    void *storage;
    void *limit;
    void *base;
    void *context;
    void *top;
    _Bool userStack;
};
static inline void ___constructor__F_R10scoStack_t_autogen___1(struct coStack_t *___dst__R10scoStack_t_1);
static inline void ___constructor__F_R10scoStack_t10scoStack_t_autogen___1(struct coStack_t *___dst__R10scoStack_t_1, struct coStack_t ___src__10scoStack_t_1);
static inline void ___destructor__F_R10scoStack_t_autogen___1(struct coStack_t *___dst__R10scoStack_t_1);
static inline struct coStack_t ___operator_assign__F10scoStack_t_R10scoStack_t10scoStack_t_autogen___1(struct coStack_t *___dst__R10scoStack_t_1, struct coStack_t ___src__10scoStack_t_1);
static inline void ___constructor__F_R10scoStack_t_autogen___1(struct coStack_t *___dst__R10scoStack_t_1){
    ((void)((*___dst__R10scoStack_t_1).size) /* ?{} */);
    ((void)((*___dst__R10scoStack_t_1).storage) /* ?{} */);
    ((void)((*___dst__R10scoStack_t_1).limit) /* ?{} */);
    ((void)((*___dst__R10scoStack_t_1).base) /* ?{} */);
    ((void)((*___dst__R10scoStack_t_1).context) /* ?{} */);
    ((void)((*___dst__R10scoStack_t_1).top) /* ?{} */);
    ((void)((*___dst__R10scoStack_t_1).userStack) /* ?{} */);
}
static inline void ___constructor__F_R10scoStack_t10scoStack_t_autogen___1(struct coStack_t *___dst__R10scoStack_t_1, struct coStack_t ___src__10scoStack_t_1){
    ((void)((*___dst__R10scoStack_t_1).size=___src__10scoStack_t_1.size) /* ?{} */);
    ((void)((*___dst__R10scoStack_t_1).storage=___src__10scoStack_t_1.storage) /* ?{} */);
    ((void)((*___dst__R10scoStack_t_1).limit=___src__10scoStack_t_1.limit) /* ?{} */);
    ((void)((*___dst__R10scoStack_t_1).base=___src__10scoStack_t_1.base) /* ?{} */);
    ((void)((*___dst__R10scoStack_t_1).context=___src__10scoStack_t_1.context) /* ?{} */);
    ((void)((*___dst__R10scoStack_t_1).top=___src__10scoStack_t_1.top) /* ?{} */);
    ((void)((*___dst__R10scoStack_t_1).userStack=___src__10scoStack_t_1.userStack) /* ?{} */);
}
static inline void ___destructor__F_R10scoStack_t_autogen___1(struct coStack_t *___dst__R10scoStack_t_1){
    ((void)((*___dst__R10scoStack_t_1).userStack) /* ^?{} */);
    ((void)((*___dst__R10scoStack_t_1).top) /* ^?{} */);
    ((void)((*___dst__R10scoStack_t_1).context) /* ^?{} */);
    ((void)((*___dst__R10scoStack_t_1).base) /* ^?{} */);
    ((void)((*___dst__R10scoStack_t_1).limit) /* ^?{} */);
    ((void)((*___dst__R10scoStack_t_1).storage) /* ^?{} */);
    ((void)((*___dst__R10scoStack_t_1).size) /* ^?{} */);
}
static inline struct coStack_t ___operator_assign__F10scoStack_t_R10scoStack_t10scoStack_t_autogen___1(struct coStack_t *___dst__R10scoStack_t_1, struct coStack_t ___src__10scoStack_t_1){
    struct coStack_t ___ret__10scoStack_t_1;
    ((void)((*___dst__R10scoStack_t_1).size=___src__10scoStack_t_1.size));
    ((void)((*___dst__R10scoStack_t_1).storage=___src__10scoStack_t_1.storage));
    ((void)((*___dst__R10scoStack_t_1).limit=___src__10scoStack_t_1.limit));
    ((void)((*___dst__R10scoStack_t_1).base=___src__10scoStack_t_1.base));
    ((void)((*___dst__R10scoStack_t_1).context=___src__10scoStack_t_1.context));
    ((void)((*___dst__R10scoStack_t_1).top=___src__10scoStack_t_1.top));
    ((void)((*___dst__R10scoStack_t_1).userStack=___src__10scoStack_t_1.userStack));
    ((void)___constructor__F_R10scoStack_t10scoStack_t_autogen___1((&___ret__10scoStack_t_1), ___src__10scoStack_t_1));
    return ((struct coStack_t )___ret__10scoStack_t_1);
}
static inline void ___constructor__F_R10scoStack_tUi_autogen___1(struct coStack_t *___dst__R10scoStack_t_1, unsigned int __size__Ui_1){
    ((void)((*___dst__R10scoStack_t_1).size=__size__Ui_1) /* ?{} */);
    ((void)((*___dst__R10scoStack_t_1).storage) /* ?{} */);
    ((void)((*___dst__R10scoStack_t_1).limit) /* ?{} */);
    ((void)((*___dst__R10scoStack_t_1).base) /* ?{} */);
    ((void)((*___dst__R10scoStack_t_1).context) /* ?{} */);
    ((void)((*___dst__R10scoStack_t_1).top) /* ?{} */);
    ((void)((*___dst__R10scoStack_t_1).userStack) /* ?{} */);
}
static inline void ___constructor__F_R10scoStack_tUiPv_autogen___1(struct coStack_t *___dst__R10scoStack_t_1, unsigned int __size__Ui_1, void *__storage__Pv_1){
    ((void)((*___dst__R10scoStack_t_1).size=__size__Ui_1) /* ?{} */);
    ((void)((*___dst__R10scoStack_t_1).storage=__storage__Pv_1) /* ?{} */);
    ((void)((*___dst__R10scoStack_t_1).limit) /* ?{} */);
    ((void)((*___dst__R10scoStack_t_1).base) /* ?{} */);
    ((void)((*___dst__R10scoStack_t_1).context) /* ?{} */);
    ((void)((*___dst__R10scoStack_t_1).top) /* ?{} */);
    ((void)((*___dst__R10scoStack_t_1).userStack) /* ?{} */);
}
static inline void ___constructor__F_R10scoStack_tUiPvPv_autogen___1(struct coStack_t *___dst__R10scoStack_t_1, unsigned int __size__Ui_1, void *__storage__Pv_1, void *__limit__Pv_1){
    ((void)((*___dst__R10scoStack_t_1).size=__size__Ui_1) /* ?{} */);
    ((void)((*___dst__R10scoStack_t_1).storage=__storage__Pv_1) /* ?{} */);
    ((void)((*___dst__R10scoStack_t_1).limit=__limit__Pv_1) /* ?{} */);
    ((void)((*___dst__R10scoStack_t_1).base) /* ?{} */);
    ((void)((*___dst__R10scoStack_t_1).context) /* ?{} */);
    ((void)((*___dst__R10scoStack_t_1).top) /* ?{} */);
    ((void)((*___dst__R10scoStack_t_1).userStack) /* ?{} */);
}
static inline void ___constructor__F_R10scoStack_tUiPvPvPv_autogen___1(struct coStack_t *___dst__R10scoStack_t_1, unsigned int __size__Ui_1, void *__storage__Pv_1, void *__limit__Pv_1, void *__base__Pv_1){
    ((void)((*___dst__R10scoStack_t_1).size=__size__Ui_1) /* ?{} */);
    ((void)((*___dst__R10scoStack_t_1).storage=__storage__Pv_1) /* ?{} */);
    ((void)((*___dst__R10scoStack_t_1).limit=__limit__Pv_1) /* ?{} */);
    ((void)((*___dst__R10scoStack_t_1).base=__base__Pv_1) /* ?{} */);
    ((void)((*___dst__R10scoStack_t_1).context) /* ?{} */);
    ((void)((*___dst__R10scoStack_t_1).top) /* ?{} */);
    ((void)((*___dst__R10scoStack_t_1).userStack) /* ?{} */);
}
static inline void ___constructor__F_R10scoStack_tUiPvPvPvPv_autogen___1(struct coStack_t *___dst__R10scoStack_t_1, unsigned int __size__Ui_1, void *__storage__Pv_1, void *__limit__Pv_1, void *__base__Pv_1, void *__context__Pv_1){
    ((void)((*___dst__R10scoStack_t_1).size=__size__Ui_1) /* ?{} */);
    ((void)((*___dst__R10scoStack_t_1).storage=__storage__Pv_1) /* ?{} */);
    ((void)((*___dst__R10scoStack_t_1).limit=__limit__Pv_1) /* ?{} */);
    ((void)((*___dst__R10scoStack_t_1).base=__base__Pv_1) /* ?{} */);
    ((void)((*___dst__R10scoStack_t_1).context=__context__Pv_1) /* ?{} */);
    ((void)((*___dst__R10scoStack_t_1).top) /* ?{} */);
    ((void)((*___dst__R10scoStack_t_1).userStack) /* ?{} */);
}
static inline void ___constructor__F_R10scoStack_tUiPvPvPvPvPv_autogen___1(struct coStack_t *___dst__R10scoStack_t_1, unsigned int __size__Ui_1, void *__storage__Pv_1, void *__limit__Pv_1, void *__base__Pv_1, void *__context__Pv_1, void *__top__Pv_1){
    ((void)((*___dst__R10scoStack_t_1).size=__size__Ui_1) /* ?{} */);
    ((void)((*___dst__R10scoStack_t_1).storage=__storage__Pv_1) /* ?{} */);
    ((void)((*___dst__R10scoStack_t_1).limit=__limit__Pv_1) /* ?{} */);
    ((void)((*___dst__R10scoStack_t_1).base=__base__Pv_1) /* ?{} */);
    ((void)((*___dst__R10scoStack_t_1).context=__context__Pv_1) /* ?{} */);
    ((void)((*___dst__R10scoStack_t_1).top=__top__Pv_1) /* ?{} */);
    ((void)((*___dst__R10scoStack_t_1).userStack) /* ?{} */);
}
static inline void ___constructor__F_R10scoStack_tUiPvPvPvPvPvb_autogen___1(struct coStack_t *___dst__R10scoStack_t_1, unsigned int __size__Ui_1, void *__storage__Pv_1, void *__limit__Pv_1, void *__base__Pv_1, void *__context__Pv_1, void *__top__Pv_1, _Bool __userStack__b_1){
    ((void)((*___dst__R10scoStack_t_1).size=__size__Ui_1) /* ?{} */);
    ((void)((*___dst__R10scoStack_t_1).storage=__storage__Pv_1) /* ?{} */);
    ((void)((*___dst__R10scoStack_t_1).limit=__limit__Pv_1) /* ?{} */);
    ((void)((*___dst__R10scoStack_t_1).base=__base__Pv_1) /* ?{} */);
    ((void)((*___dst__R10scoStack_t_1).context=__context__Pv_1) /* ?{} */);
    ((void)((*___dst__R10scoStack_t_1).top=__top__Pv_1) /* ?{} */);
    ((void)((*___dst__R10scoStack_t_1).userStack=__userStack__b_1) /* ?{} */);
}
enum coroutine_state {
    Halted,
    Start,
    Inactive,
    Active,
    Primed,
};
struct coroutine_desc {
    struct coStack_t stack;
    const char *name;
    signed int errno_;
    enum coroutine_state state;
    struct coroutine_desc *starter;
    struct coroutine_desc *last;
};
struct __waitfor_mask_t {
    signed short int *accepted;
    struct __acceptable_t *clauses;
    signed short int size;
};
static inline void ___constructor__F_R17s__waitfor_mask_t_autogen___1(struct __waitfor_mask_t *___dst__R17s__waitfor_mask_t_1);
static inline void ___constructor__F_R17s__waitfor_mask_t17s__waitfor_mask_t_autogen___1(struct __waitfor_mask_t *___dst__R17s__waitfor_mask_t_1, struct __waitfor_mask_t ___src__17s__waitfor_mask_t_1);
static inline void ___destructor__F_R17s__waitfor_mask_t_autogen___1(struct __waitfor_mask_t *___dst__R17s__waitfor_mask_t_1);
static inline struct __waitfor_mask_t ___operator_assign__F17s__waitfor_mask_t_R17s__waitfor_mask_t17s__waitfor_mask_t_autogen___1(struct __waitfor_mask_t *___dst__R17s__waitfor_mask_t_1, struct __waitfor_mask_t ___src__17s__waitfor_mask_t_1);
static inline void ___constructor__F_R17s__waitfor_mask_t_autogen___1(struct __waitfor_mask_t *___dst__R17s__waitfor_mask_t_1){
    ((void)((*___dst__R17s__waitfor_mask_t_1).accepted) /* ?{} */);
    ((void)((*___dst__R17s__waitfor_mask_t_1).clauses) /* ?{} */);
    ((void)((*___dst__R17s__waitfor_mask_t_1).size) /* ?{} */);
}
static inline void ___constructor__F_R17s__waitfor_mask_t17s__waitfor_mask_t_autogen___1(struct __waitfor_mask_t *___dst__R17s__waitfor_mask_t_1, struct __waitfor_mask_t ___src__17s__waitfor_mask_t_1){
    ((void)((*___dst__R17s__waitfor_mask_t_1).accepted=___src__17s__waitfor_mask_t_1.accepted) /* ?{} */);
    ((void)((*___dst__R17s__waitfor_mask_t_1).clauses=___src__17s__waitfor_mask_t_1.clauses) /* ?{} */);
    ((void)((*___dst__R17s__waitfor_mask_t_1).size=___src__17s__waitfor_mask_t_1.size) /* ?{} */);
}
static inline void ___destructor__F_R17s__waitfor_mask_t_autogen___1(struct __waitfor_mask_t *___dst__R17s__waitfor_mask_t_1){
    ((void)((*___dst__R17s__waitfor_mask_t_1).size) /* ^?{} */);
    ((void)((*___dst__R17s__waitfor_mask_t_1).clauses) /* ^?{} */);
    ((void)((*___dst__R17s__waitfor_mask_t_1).accepted) /* ^?{} */);
}
static inline struct __waitfor_mask_t ___operator_assign__F17s__waitfor_mask_t_R17s__waitfor_mask_t17s__waitfor_mask_t_autogen___1(struct __waitfor_mask_t *___dst__R17s__waitfor_mask_t_1, struct __waitfor_mask_t ___src__17s__waitfor_mask_t_1){
    struct __waitfor_mask_t ___ret__17s__waitfor_mask_t_1;
    ((void)((*___dst__R17s__waitfor_mask_t_1).accepted=___src__17s__waitfor_mask_t_1.accepted));
    ((void)((*___dst__R17s__waitfor_mask_t_1).clauses=___src__17s__waitfor_mask_t_1.clauses));
    ((void)((*___dst__R17s__waitfor_mask_t_1).size=___src__17s__waitfor_mask_t_1.size));
    ((void)___constructor__F_R17s__waitfor_mask_t17s__waitfor_mask_t_autogen___1((&___ret__17s__waitfor_mask_t_1), ___src__17s__waitfor_mask_t_1));
    return ((struct __waitfor_mask_t )___ret__17s__waitfor_mask_t_1);
}
static inline void ___constructor__F_R17s__waitfor_mask_tPs_autogen___1(struct __waitfor_mask_t *___dst__R17s__waitfor_mask_t_1, signed short int *__accepted__Ps_1){
    ((void)((*___dst__R17s__waitfor_mask_t_1).accepted=__accepted__Ps_1) /* ?{} */);
    ((void)((*___dst__R17s__waitfor_mask_t_1).clauses) /* ?{} */);
    ((void)((*___dst__R17s__waitfor_mask_t_1).size) /* ?{} */);
}
static inline void ___constructor__F_R17s__waitfor_mask_tPsP15s__acceptable_t_autogen___1(struct __waitfor_mask_t *___dst__R17s__waitfor_mask_t_1, signed short int *__accepted__Ps_1, struct __acceptable_t *__clauses__P15s__acceptable_t_1){
    ((void)((*___dst__R17s__waitfor_mask_t_1).accepted=__accepted__Ps_1) /* ?{} */);
    ((void)((*___dst__R17s__waitfor_mask_t_1).clauses=__clauses__P15s__acceptable_t_1) /* ?{} */);
    ((void)((*___dst__R17s__waitfor_mask_t_1).size) /* ?{} */);
}
static inline void ___constructor__F_R17s__waitfor_mask_tPsP15s__acceptable_ts_autogen___1(struct __waitfor_mask_t *___dst__R17s__waitfor_mask_t_1, signed short int *__accepted__Ps_1, struct __acceptable_t *__clauses__P15s__acceptable_t_1, signed short int __size__s_1){
    ((void)((*___dst__R17s__waitfor_mask_t_1).accepted=__accepted__Ps_1) /* ?{} */);
    ((void)((*___dst__R17s__waitfor_mask_t_1).clauses=__clauses__P15s__acceptable_t_1) /* ?{} */);
    ((void)((*___dst__R17s__waitfor_mask_t_1).size=__size__s_1) /* ?{} */);
}
struct monitor_desc {
    struct spinlock lock;
    struct thread_desc *owner;
    struct __thread_queue_t entry_queue;
    struct __condition_stack_t signal_stack;
    unsigned int recursion;
    struct __waitfor_mask_t mask;
};
static inline void ___constructor__F_R13smonitor_desc_autogen___1(struct monitor_desc *___dst__R13smonitor_desc_1);
static inline void ___constructor__F_R13smonitor_desc13smonitor_desc_autogen___1(struct monitor_desc *___dst__R13smonitor_desc_1, struct monitor_desc ___src__13smonitor_desc_1);
static inline void ___destructor__F_R13smonitor_desc_autogen___1(struct monitor_desc *___dst__R13smonitor_desc_1);
static inline struct monitor_desc ___operator_assign__F13smonitor_desc_R13smonitor_desc13smonitor_desc_autogen___1(struct monitor_desc *___dst__R13smonitor_desc_1, struct monitor_desc ___src__13smonitor_desc_1);
static inline void ___constructor__F_R13smonitor_desc_autogen___1(struct monitor_desc *___dst__R13smonitor_desc_1){
    ((void)___constructor__F_R9sspinlock__1((&(*___dst__R13smonitor_desc_1).lock)));
    ((void)((*___dst__R13smonitor_desc_1).owner) /* ?{} */);
    ((void)___constructor__F_R17s__thread_queue_t__1((&(*___dst__R13smonitor_desc_1).entry_queue)));
    ((void)___constructor__F_R20s__condition_stack_t__1((&(*___dst__R13smonitor_desc_1).signal_stack)));
    ((void)((*___dst__R13smonitor_desc_1).recursion) /* ?{} */);
    ((void)___constructor__F_R17s__waitfor_mask_t_autogen___1((&(*___dst__R13smonitor_desc_1).mask)));
}
static inline void ___constructor__F_R13smonitor_desc13smonitor_desc_autogen___1(struct monitor_desc *___dst__R13smonitor_desc_1, struct monitor_desc ___src__13smonitor_desc_1){
    ((void)___constructor__F_R9sspinlock9sspinlock_autogen___1((&(*___dst__R13smonitor_desc_1).lock), ___src__13smonitor_desc_1.lock));
    ((void)((*___dst__R13smonitor_desc_1).owner=___src__13smonitor_desc_1.owner) /* ?{} */);
    ((void)___constructor__F_R17s__thread_queue_t17s__thread_queue_t_autogen___1((&(*___dst__R13smonitor_desc_1).entry_queue), ___src__13smonitor_desc_1.entry_queue));
    ((void)___constructor__F_R20s__condition_stack_t20s__condition_stack_t_autogen___1((&(*___dst__R13smonitor_desc_1).signal_stack), ___src__13smonitor_desc_1.signal_stack));
    ((void)((*___dst__R13smonitor_desc_1).recursion=___src__13smonitor_desc_1.recursion) /* ?{} */);
    ((void)___constructor__F_R17s__waitfor_mask_t17s__waitfor_mask_t_autogen___1((&(*___dst__R13smonitor_desc_1).mask), ___src__13smonitor_desc_1.mask));
}
static inline void ___destructor__F_R13smonitor_desc_autogen___1(struct monitor_desc *___dst__R13smonitor_desc_1){
    ((void)___destructor__F_R17s__waitfor_mask_t_autogen___1((&(*___dst__R13smonitor_desc_1).mask)));
    ((void)((*___dst__R13smonitor_desc_1).recursion) /* ^?{} */);
    ((void)___destructor__F_R20s__condition_stack_t_autogen___1((&(*___dst__R13smonitor_desc_1).signal_stack)));
    ((void)___destructor__F_R17s__thread_queue_t_autogen___1((&(*___dst__R13smonitor_desc_1).entry_queue)));
    ((void)((*___dst__R13smonitor_desc_1).owner) /* ^?{} */);
    ((void)___destructor__F_R9sspinlock__1((&(*___dst__R13smonitor_desc_1).lock)));
}
static inline struct monitor_desc ___operator_assign__F13smonitor_desc_R13smonitor_desc13smonitor_desc_autogen___1(struct monitor_desc *___dst__R13smonitor_desc_1, struct monitor_desc ___src__13smonitor_desc_1){
    struct monitor_desc ___ret__13smonitor_desc_1;
    struct spinlock _tmp_cp0;
    struct spinlock _tmp_cp_ret0;
    ((void)(((void)(_tmp_cp_ret0=___operator_assign__F9sspinlock_R9sspinlock9sspinlock_autogen___1((&(*___dst__R13smonitor_desc_1).lock), (((void)___constructor__F_R9sspinlock9sspinlock_autogen___1((&_tmp_cp0), ___src__13smonitor_desc_1.lock)) , _tmp_cp0)))) , _tmp_cp_ret0));
    ((void)___destructor__F_R9sspinlock__1((&_tmp_cp_ret0)));
    ((void)___destructor__F_R9sspinlock__1((&_tmp_cp0)));
    ((void)((*___dst__R13smonitor_desc_1).owner=___src__13smonitor_desc_1.owner));
    struct __thread_queue_t _tmp_cp1;
    struct __thread_queue_t _tmp_cp_ret1;
    ((void)(((void)(_tmp_cp_ret1=___operator_assign__F17s__thread_queue_t_R17s__thread_queue_t17s__thread_queue_t_autogen___1((&(*___dst__R13smonitor_desc_1).entry_queue), (((void)___constructor__F_R17s__thread_queue_t17s__thread_queue_t_autogen___1((&_tmp_cp1), ___src__13smonitor_desc_1.entry_queue)) , _tmp_cp1)))) , _tmp_cp_ret1));
    ((void)___destructor__F_R17s__thread_queue_t_autogen___1((&_tmp_cp_ret1)));
    ((void)___destructor__F_R17s__thread_queue_t_autogen___1((&_tmp_cp1)));
    struct __condition_stack_t _tmp_cp2;
    struct __condition_stack_t _tmp_cp_ret2;
    ((void)(((void)(_tmp_cp_ret2=___operator_assign__F20s__condition_stack_t_R20s__condition_stack_t20s__condition_stack_t_autogen___1((&(*___dst__R13smonitor_desc_1).signal_stack), (((void)___constructor__F_R20s__condition_stack_t20s__condition_stack_t_autogen___1((&_tmp_cp2), ___src__13smonitor_desc_1.signal_stack)) , _tmp_cp2)))) , _tmp_cp_ret2));
    ((void)___destructor__F_R20s__condition_stack_t_autogen___1((&_tmp_cp_ret2)));
    ((void)___destructor__F_R20s__condition_stack_t_autogen___1((&_tmp_cp2)));
    ((void)((*___dst__R13smonitor_desc_1).recursion=___src__13smonitor_desc_1.recursion));
    struct __waitfor_mask_t _tmp_cp3;
    struct __waitfor_mask_t _tmp_cp_ret3;
    ((void)(((void)(_tmp_cp_ret3=___operator_assign__F17s__waitfor_mask_t_R17s__waitfor_mask_t17s__waitfor_mask_t_autogen___1((&(*___dst__R13smonitor_desc_1).mask), (((void)___constructor__F_R17s__waitfor_mask_t17s__waitfor_mask_t_autogen___1((&_tmp_cp3), ___src__13smonitor_desc_1.mask)) , _tmp_cp3)))) , _tmp_cp_ret3));
    ((void)___destructor__F_R17s__waitfor_mask_t_autogen___1((&_tmp_cp_ret3)));
    ((void)___destructor__F_R17s__waitfor_mask_t_autogen___1((&_tmp_cp3)));
    ((void)___constructor__F_R13smonitor_desc13smonitor_desc_autogen___1((&___ret__13smonitor_desc_1), ___src__13smonitor_desc_1));
    return ((struct monitor_desc )___ret__13smonitor_desc_1);
}
static inline void ___constructor__F_R13smonitor_desc9sspinlock_autogen___1(struct monitor_desc *___dst__R13smonitor_desc_1, struct spinlock __lock__9sspinlock_1){
    ((void)___constructor__F_R9sspinlock9sspinlock_autogen___1((&(*___dst__R13smonitor_desc_1).lock), __lock__9sspinlock_1));
    ((void)((*___dst__R13smonitor_desc_1).owner) /* ?{} */);
    ((void)___constructor__F_R17s__thread_queue_t__1((&(*___dst__R13smonitor_desc_1).entry_queue)));
    ((void)___constructor__F_R20s__condition_stack_t__1((&(*___dst__R13smonitor_desc_1).signal_stack)));
    ((void)((*___dst__R13smonitor_desc_1).recursion) /* ?{} */);
    ((void)___constructor__F_R17s__waitfor_mask_t_autogen___1((&(*___dst__R13smonitor_desc_1).mask)));
}
static inline void ___constructor__F_R13smonitor_desc9sspinlockP12sthread_desc_autogen___1(struct monitor_desc *___dst__R13smonitor_desc_1, struct spinlock __lock__9sspinlock_1, struct thread_desc *__owner__P12sthread_desc_1){
    ((void)___constructor__F_R9sspinlock9sspinlock_autogen___1((&(*___dst__R13smonitor_desc_1).lock), __lock__9sspinlock_1));
    ((void)((*___dst__R13smonitor_desc_1).owner=__owner__P12sthread_desc_1) /* ?{} */);
    ((void)___constructor__F_R17s__thread_queue_t__1((&(*___dst__R13smonitor_desc_1).entry_queue)));
    ((void)___constructor__F_R20s__condition_stack_t__1((&(*___dst__R13smonitor_desc_1).signal_stack)));
    ((void)((*___dst__R13smonitor_desc_1).recursion) /* ?{} */);
    ((void)___constructor__F_R17s__waitfor_mask_t_autogen___1((&(*___dst__R13smonitor_desc_1).mask)));
}
static inline void ___constructor__F_R13smonitor_desc9sspinlockP12sthread_desc17s__thread_queue_t_autogen___1(struct monitor_desc *___dst__R13smonitor_desc_1, struct spinlock __lock__9sspinlock_1, struct thread_desc *__owner__P12sthread_desc_1, struct __thread_queue_t __entry_queue__17s__thread_queue_t_1){
    ((void)___constructor__F_R9sspinlock9sspinlock_autogen___1((&(*___dst__R13smonitor_desc_1).lock), __lock__9sspinlock_1));
    ((void)((*___dst__R13smonitor_desc_1).owner=__owner__P12sthread_desc_1) /* ?{} */);
    ((void)___constructor__F_R17s__thread_queue_t17s__thread_queue_t_autogen___1((&(*___dst__R13smonitor_desc_1).entry_queue), __entry_queue__17s__thread_queue_t_1));
    ((void)___constructor__F_R20s__condition_stack_t__1((&(*___dst__R13smonitor_desc_1).signal_stack)));
    ((void)((*___dst__R13smonitor_desc_1).recursion) /* ?{} */);
    ((void)___constructor__F_R17s__waitfor_mask_t_autogen___1((&(*___dst__R13smonitor_desc_1).mask)));
}
static inline void ___constructor__F_R13smonitor_desc9sspinlockP12sthread_desc17s__thread_queue_t20s__condition_stack_t_autogen___1(struct monitor_desc *___dst__R13smonitor_desc_1, struct spinlock __lock__9sspinlock_1, struct thread_desc *__owner__P12sthread_desc_1, struct __thread_queue_t __entry_queue__17s__thread_queue_t_1, struct __condition_stack_t __signal_stack__20s__condition_stack_t_1){
    ((void)___constructor__F_R9sspinlock9sspinlock_autogen___1((&(*___dst__R13smonitor_desc_1).lock), __lock__9sspinlock_1));
    ((void)((*___dst__R13smonitor_desc_1).owner=__owner__P12sthread_desc_1) /* ?{} */);
    ((void)___constructor__F_R17s__thread_queue_t17s__thread_queue_t_autogen___1((&(*___dst__R13smonitor_desc_1).entry_queue), __entry_queue__17s__thread_queue_t_1));
    ((void)___constructor__F_R20s__condition_stack_t20s__condition_stack_t_autogen___1((&(*___dst__R13smonitor_desc_1).signal_stack), __signal_stack__20s__condition_stack_t_1));
    ((void)((*___dst__R13smonitor_desc_1).recursion) /* ?{} */);
    ((void)___constructor__F_R17s__waitfor_mask_t_autogen___1((&(*___dst__R13smonitor_desc_1).mask)));
}
static inline void ___constructor__F_R13smonitor_desc9sspinlockP12sthread_desc17s__thread_queue_t20s__condition_stack_tUi_autogen___1(struct monitor_desc *___dst__R13smonitor_desc_1, struct spinlock __lock__9sspinlock_1, struct thread_desc *__owner__P12sthread_desc_1, struct __thread_queue_t __entry_queue__17s__thread_queue_t_1, struct __condition_stack_t __signal_stack__20s__condition_stack_t_1, unsigned int __recursion__Ui_1){
    ((void)___constructor__F_R9sspinlock9sspinlock_autogen___1((&(*___dst__R13smonitor_desc_1).lock), __lock__9sspinlock_1));
    ((void)((*___dst__R13smonitor_desc_1).owner=__owner__P12sthread_desc_1) /* ?{} */);
    ((void)___constructor__F_R17s__thread_queue_t17s__thread_queue_t_autogen___1((&(*___dst__R13smonitor_desc_1).entry_queue), __entry_queue__17s__thread_queue_t_1));
    ((void)___constructor__F_R20s__condition_stack_t20s__condition_stack_t_autogen___1((&(*___dst__R13smonitor_desc_1).signal_stack), __signal_stack__20s__condition_stack_t_1));
    ((void)((*___dst__R13smonitor_desc_1).recursion=__recursion__Ui_1) /* ?{} */);
    ((void)___constructor__F_R17s__waitfor_mask_t_autogen___1((&(*___dst__R13smonitor_desc_1).mask)));
}
static inline void ___constructor__F_R13smonitor_desc9sspinlockP12sthread_desc17s__thread_queue_t20s__condition_stack_tUi17s__waitfor_mask_t_autogen___1(struct monitor_desc *___dst__R13smonitor_desc_1, struct spinlock __lock__9sspinlock_1, struct thread_desc *__owner__P12sthread_desc_1, struct __thread_queue_t __entry_queue__17s__thread_queue_t_1, struct __condition_stack_t __signal_stack__20s__condition_stack_t_1, unsigned int __recursion__Ui_1, struct __waitfor_mask_t __mask__17s__waitfor_mask_t_1){
    ((void)___constructor__F_R9sspinlock9sspinlock_autogen___1((&(*___dst__R13smonitor_desc_1).lock), __lock__9sspinlock_1));
    ((void)((*___dst__R13smonitor_desc_1).owner=__owner__P12sthread_desc_1) /* ?{} */);
    ((void)___constructor__F_R17s__thread_queue_t17s__thread_queue_t_autogen___1((&(*___dst__R13smonitor_desc_1).entry_queue), __entry_queue__17s__thread_queue_t_1));
    ((void)___constructor__F_R20s__condition_stack_t20s__condition_stack_t_autogen___1((&(*___dst__R13smonitor_desc_1).signal_stack), __signal_stack__20s__condition_stack_t_1));
    ((void)((*___dst__R13smonitor_desc_1).recursion=__recursion__Ui_1) /* ?{} */);
    ((void)___constructor__F_R17s__waitfor_mask_t17s__waitfor_mask_t_autogen___1((&(*___dst__R13smonitor_desc_1).mask), __mask__17s__waitfor_mask_t_1));
}
struct __monitor_group_t {
    struct monitor_desc **list;
    signed short int size;
    void (*func)();
};
static inline void ___constructor__F_R18s__monitor_group_t_autogen___1(struct __monitor_group_t *___dst__R18s__monitor_group_t_1);
static inline void ___constructor__F_R18s__monitor_group_t18s__monitor_group_t_autogen___1(struct __monitor_group_t *___dst__R18s__monitor_group_t_1, struct __monitor_group_t ___src__18s__monitor_group_t_1);
static inline void ___destructor__F_R18s__monitor_group_t_autogen___1(struct __monitor_group_t *___dst__R18s__monitor_group_t_1);
static inline struct __monitor_group_t ___operator_assign__F18s__monitor_group_t_R18s__monitor_group_t18s__monitor_group_t_autogen___1(struct __monitor_group_t *___dst__R18s__monitor_group_t_1, struct __monitor_group_t ___src__18s__monitor_group_t_1);
static inline void ___constructor__F_R18s__monitor_group_t_autogen___1(struct __monitor_group_t *___dst__R18s__monitor_group_t_1){
    ((void)((*___dst__R18s__monitor_group_t_1).list) /* ?{} */);
    ((void)((*___dst__R18s__monitor_group_t_1).size) /* ?{} */);
    ((void)((*___dst__R18s__monitor_group_t_1).func) /* ?{} */);
}
static inline void ___constructor__F_R18s__monitor_group_t18s__monitor_group_t_autogen___1(struct __monitor_group_t *___dst__R18s__monitor_group_t_1, struct __monitor_group_t ___src__18s__monitor_group_t_1){
    ((void)((*___dst__R18s__monitor_group_t_1).list=___src__18s__monitor_group_t_1.list) /* ?{} */);
    ((void)((*___dst__R18s__monitor_group_t_1).size=___src__18s__monitor_group_t_1.size) /* ?{} */);
    ((void)((*___dst__R18s__monitor_group_t_1).func=___src__18s__monitor_group_t_1.func) /* ?{} */);
}
static inline void ___destructor__F_R18s__monitor_group_t_autogen___1(struct __monitor_group_t *___dst__R18s__monitor_group_t_1){
    ((void)((*___dst__R18s__monitor_group_t_1).func) /* ^?{} */);
    ((void)((*___dst__R18s__monitor_group_t_1).size) /* ^?{} */);
    ((void)((*___dst__R18s__monitor_group_t_1).list) /* ^?{} */);
}
static inline struct __monitor_group_t ___operator_assign__F18s__monitor_group_t_R18s__monitor_group_t18s__monitor_group_t_autogen___1(struct __monitor_group_t *___dst__R18s__monitor_group_t_1, struct __monitor_group_t ___src__18s__monitor_group_t_1){
    struct __monitor_group_t ___ret__18s__monitor_group_t_1;
    ((void)((*___dst__R18s__monitor_group_t_1).list=___src__18s__monitor_group_t_1.list));
    ((void)((*___dst__R18s__monitor_group_t_1).size=___src__18s__monitor_group_t_1.size));
    ((void)((*___dst__R18s__monitor_group_t_1).func=___src__18s__monitor_group_t_1.func));
    ((void)___constructor__F_R18s__monitor_group_t18s__monitor_group_t_autogen___1((&___ret__18s__monitor_group_t_1), ___src__18s__monitor_group_t_1));
    return ((struct __monitor_group_t )___ret__18s__monitor_group_t_1);
}
static inline void ___constructor__F_R18s__monitor_group_tPP13smonitor_desc_autogen___1(struct __monitor_group_t *___dst__R18s__monitor_group_t_1, struct monitor_desc **__list__PP13smonitor_desc_1){
    ((void)((*___dst__R18s__monitor_group_t_1).list=__list__PP13smonitor_desc_1) /* ?{} */);
    ((void)((*___dst__R18s__monitor_group_t_1).size) /* ?{} */);
    ((void)((*___dst__R18s__monitor_group_t_1).func) /* ?{} */);
}
static inline void ___constructor__F_R18s__monitor_group_tPP13smonitor_descs_autogen___1(struct __monitor_group_t *___dst__R18s__monitor_group_t_1, struct monitor_desc **__list__PP13smonitor_desc_1, signed short int __size__s_1){
    ((void)((*___dst__R18s__monitor_group_t_1).list=__list__PP13smonitor_desc_1) /* ?{} */);
    ((void)((*___dst__R18s__monitor_group_t_1).size=__size__s_1) /* ?{} */);
    ((void)((*___dst__R18s__monitor_group_t_1).func) /* ?{} */);
}
static inline void ___constructor__F_R18s__monitor_group_tPP13smonitor_descsPF___autogen___1(struct __monitor_group_t *___dst__R18s__monitor_group_t_1, struct monitor_desc **__list__PP13smonitor_desc_1, signed short int __size__s_1, void (*__func__PF___1)()){
    ((void)((*___dst__R18s__monitor_group_t_1).list=__list__PP13smonitor_desc_1) /* ?{} */);
    ((void)((*___dst__R18s__monitor_group_t_1).size=__size__s_1) /* ?{} */);
    ((void)((*___dst__R18s__monitor_group_t_1).func=__func__PF___1) /* ?{} */);
}
struct thread_desc {
    struct coroutine_desc self_cor;
    struct monitor_desc self_mon;
    struct monitor_desc *self_mon_p;
    struct __monitor_group_t monitors;
    struct thread_desc *next;
};
static inline struct monitor_desc *___operator_index__FP13smonitor_desc_RC18s__monitor_group_tl__1(const struct __monitor_group_t *__this__RC18s__monitor_group_t_1, signed long int __index__l_1){
    __attribute__ ((unused)) struct monitor_desc *___retval__operator_index__P13smonitor_desc_1;
    ((void)(___retval__operator_index__P13smonitor_desc_1=(*__this__RC18s__monitor_group_t_1).list[__index__l_1]) /* ?{} */);
    return ((struct monitor_desc *)___retval__operator_index__P13smonitor_desc_1);
}
static inline _Bool ___operator_equal__Fb_RC18s__monitor_group_tRC18s__monitor_group_t__1(const struct __monitor_group_t *__lhs__RC18s__monitor_group_t_1, const struct __monitor_group_t *__rhs__RC18s__monitor_group_t_1){
    __attribute__ ((unused)) _Bool ___retval__operator_equal__b_1;
    if ( ((signed int )((((*__lhs__RC18s__monitor_group_t_1).list!=((struct monitor_desc **)0))!=((*__rhs__RC18s__monitor_group_t_1).list!=((struct monitor_desc **)0)))!=((signed int )0))) ) {
        ((void)(___retval__operator_equal__b_1=((_Bool )0)) /* ?{} */);
        return ((_Bool )___retval__operator_equal__b_1);
    }

    if ( ((signed int )(((*__lhs__RC18s__monitor_group_t_1).size!=(*__rhs__RC18s__monitor_group_t_1).size)!=((signed int )0))) ) {
        ((void)(___retval__operator_equal__b_1=((_Bool )0)) /* ?{} */);
        return ((_Bool )___retval__operator_equal__b_1);
    }

    if ( ((signed int )(((*__lhs__RC18s__monitor_group_t_1).func!=(*__rhs__RC18s__monitor_group_t_1).func)!=((signed int )0))) ) {
        ((void)(___retval__operator_equal__b_1=((_Bool )0)) /* ?{} */);
        return ((_Bool )___retval__operator_equal__b_1);
    }

    {
        signed int __i__i_3 = ((signed int )0);
        for (;((signed int )((__i__i_3<((signed int )(*__lhs__RC18s__monitor_group_t_1).size))!=((signed int )0)));((void)__i__i_3++)) {
            struct monitor_desc *_tmp_cp_ret4;
            struct monitor_desc *_tmp_cp_ret5;
            if ( ((signed int )(((((void)(_tmp_cp_ret4=___operator_index__FP13smonitor_desc_RC18s__monitor_group_tl__1(__lhs__RC18s__monitor_group_t_1, ((signed long int )__i__i_3)))) , _tmp_cp_ret4)!=(((void)(_tmp_cp_ret5=___operator_index__FP13smonitor_desc_RC18s__monitor_group_tl__1(__rhs__RC18s__monitor_group_t_1, ((signed long int )__i__i_3)))) , _tmp_cp_ret5))!=((signed int )0))) ) {
                ((void)(___retval__operator_equal__b_1=((_Bool )0)) /* ?{} */);
                return ((_Bool )___retval__operator_equal__b_1);
            }

            ((void)(_tmp_cp_ret4) /* ^?{} */);
            ((void)(_tmp_cp_ret5) /* ^?{} */);
        }

    }

    ((void)(___retval__operator_equal__b_1=((_Bool )1)) /* ?{} */);
    return ((_Bool )___retval__operator_equal__b_1);
}
static inline void *__malloc__A0_1_0_0__FPd0___1(__attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT){
    __attribute__ ((unused)) void *___retval_malloc__P2tT_1;
    void *_tmp_cp_ret6;
    ((void)(___retval_malloc__P2tT_1=((void *)((void *)(((void)(_tmp_cp_ret6=malloc(((unsigned long int )_sizeof_2tT)))) , _tmp_cp_ret6)))) /* ?{} */);
    ((void)(_tmp_cp_ret6) /* ^?{} */);
    return ((void *)___retval_malloc__P2tT_1);
}
void *calloc(unsigned long int dim, unsigned long int size);
static inline void *__calloc__A0_1_0_0__FPd0_Ul__1(__attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, unsigned long int __dim__Ul_1){
    __attribute__ ((unused)) void *___retval_calloc__P2tT_1;
    void *_tmp_cp_ret7;
    ((void)(___retval_calloc__P2tT_1=((void *)((void *)(((void)(_tmp_cp_ret7=calloc(__dim__Ul_1, _sizeof_2tT))) , _tmp_cp_ret7)))) /* ?{} */);
    ((void)(_tmp_cp_ret7) /* ^?{} */);
    return ((void *)___retval_calloc__P2tT_1);
}
void *realloc(void *ptr, unsigned long int size);
static inline void *__realloc__A0_1_0_0__FPd0_Pd0Ul__1(__attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, void *__ptr__P2tT_1, unsigned long int __size__Ul_1){
    __attribute__ ((unused)) void *___retval_realloc__P2tT_1;
    void *_tmp_cp_ret8;
    ((void)(___retval_realloc__P2tT_1=((void *)((void *)(((void)(_tmp_cp_ret8=realloc(((void *)__ptr__P2tT_1), __size__Ul_1))) , _tmp_cp_ret8)))) /* ?{} */);
    ((void)(_tmp_cp_ret8) /* ^?{} */);
    return ((void *)___retval_realloc__P2tT_1);
}
void *memalign(unsigned long int align, unsigned long int size);
static inline void *__memalign__A0_1_0_0__FPd0_Ul__1(__attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, unsigned long int __align__Ul_1){
    __attribute__ ((unused)) void *___retval_memalign__P2tT_1;
    void *_tmp_cp_ret9;
    ((void)(___retval_memalign__P2tT_1=((void *)(((void)(_tmp_cp_ret9=memalign(__align__Ul_1, _sizeof_2tT))) , _tmp_cp_ret9))) /* ?{} */);
    ((void)(_tmp_cp_ret9) /* ^?{} */);
    return ((void *)___retval_memalign__P2tT_1);
}
static inline void *__aligned_alloc__A0_1_0_0__FPd0_Ul__1(__attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, unsigned long int __align__Ul_1){
    __attribute__ ((unused)) void *___retval_aligned_alloc__P2tT_1;
    void *_tmp_cp_ret10;
    ((void)(___retval_aligned_alloc__P2tT_1=((void *)(((void)(_tmp_cp_ret10=memalign(__align__Ul_1, _sizeof_2tT))) , _tmp_cp_ret10))) /* ?{} */);
    ((void)(_tmp_cp_ret10) /* ^?{} */);
    return ((void *)___retval_aligned_alloc__P2tT_1);
}
signed int posix_memalign(void **ptr, unsigned long int align, unsigned long int size);
static inline signed int __posix_memalign__A0_1_0_0__Fi_PPd0Ul__1(__attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, void **__ptr__PP2tT_1, unsigned long int __align__Ul_1){
    __attribute__ ((unused)) signed int ___retval_posix_memalign__i_1;
    signed int _tmp_cp_ret11;
    ((void)(___retval_posix_memalign__i_1=(((void)(_tmp_cp_ret11=posix_memalign(((void **)__ptr__PP2tT_1), __align__Ul_1, _sizeof_2tT))) , _tmp_cp_ret11)) /* ?{} */);
    ((void)(_tmp_cp_ret11) /* ^?{} */);
    return ((signed int )___retval_posix_memalign__i_1);
}
void *memset(void *dest, signed int c, unsigned long int size);
static inline void *__alloc__A0_1_0_0__FPd0___1(__attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT){
    __attribute__ ((unused)) void *___retval_alloc__P2tT_1;
    void *_tmp_cp_ret12;
    ((void)(___retval_alloc__P2tT_1=((void *)((void *)(((void)(_tmp_cp_ret12=malloc(((unsigned long int )_sizeof_2tT)))) , _tmp_cp_ret12)))) /* ?{} */);
    ((void)(_tmp_cp_ret12) /* ^?{} */);
    return ((void *)___retval_alloc__P2tT_1);
}
static inline void *__alloc__A0_1_0_0__FPd0_c__1(__attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, char __fill__c_1){
    __attribute__ ((unused)) void *___retval_alloc__P2tT_1;
    void *_tmp_cp_ret13;
    void *__ptr__P2tT_2 = ((void *)((void *)((void *)(((void)(_tmp_cp_ret13=malloc(((unsigned long int )_sizeof_2tT)))) , _tmp_cp_ret13))));
    ((void)(_tmp_cp_ret13) /* ^?{} */);
    void *_tmp_cp_ret14;
    ((void)(___retval_alloc__P2tT_1=(((void)(_tmp_cp_ret14=memset(((void *)__ptr__P2tT_2), ((signed int )__fill__c_1), _sizeof_2tT))) , _tmp_cp_ret14)) /* ?{} */);
    ((void)(_tmp_cp_ret14) /* ^?{} */);
    return ((void *)___retval_alloc__P2tT_1);
}
static inline void *__alloc__A0_1_0_0__FPd0_Ul__1(__attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, unsigned long int __dim__Ul_1){
    __attribute__ ((unused)) void *___retval_alloc__P2tT_1;
    void *_tmp_cp_ret15;
    ((void)(___retval_alloc__P2tT_1=((void *)((void *)(((void)(_tmp_cp_ret15=malloc((__dim__Ul_1*((unsigned long int )_sizeof_2tT))))) , _tmp_cp_ret15)))) /* ?{} */);
    ((void)(_tmp_cp_ret15) /* ^?{} */);
    return ((void *)___retval_alloc__P2tT_1);
}
static inline void *__alloc__A0_1_0_0__FPd0_Ulc__1(__attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, unsigned long int __dim__Ul_1, char __fill__c_1){
    __attribute__ ((unused)) void *___retval_alloc__P2tT_1;
    void *_tmp_cp_ret16;
    void *__ptr__P2tT_2 = ((void *)((void *)((void *)(((void)(_tmp_cp_ret16=malloc((__dim__Ul_1*((unsigned long int )_sizeof_2tT))))) , _tmp_cp_ret16))));
    ((void)(_tmp_cp_ret16) /* ^?{} */);
    void *_tmp_cp_ret17;
    ((void)(___retval_alloc__P2tT_1=(((void)(_tmp_cp_ret17=memset(((void *)__ptr__P2tT_2), ((signed int )__fill__c_1), (__dim__Ul_1*_sizeof_2tT)))) , _tmp_cp_ret17)) /* ?{} */);
    ((void)(_tmp_cp_ret17) /* ^?{} */);
    return ((void *)___retval_alloc__P2tT_1);
}
static inline void *__alloc__A0_1_0_0__FPd0_Pd0Ul__1(__attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, void *__ptr__P2tT_1, unsigned long int __dim__Ul_1){
    __attribute__ ((unused)) void *___retval_alloc__P2tT_1;
    void *_tmp_cp_ret18;
    ((void)(___retval_alloc__P2tT_1=((void *)(((void)(_tmp_cp_ret18=realloc(((void *)__ptr__P2tT_1), (__dim__Ul_1*((unsigned long int )_sizeof_2tT))))) , _tmp_cp_ret18))) /* ?{} */);
    ((void)(_tmp_cp_ret18) /* ^?{} */);
    return ((void *)___retval_alloc__P2tT_1);
}
void *__alloc__A0_1_0_0__FPd0_Pd0Ulc__1(__attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, void *__ptr__P2tT_1, unsigned long int __dim__Ul_1, char __fill__c_1);
static inline void *__align_alloc__A0_1_0_0__FPd0_Ul__1(__attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, unsigned long int __align__Ul_1){
    __attribute__ ((unused)) void *___retval_align_alloc__P2tT_1;
    void *_tmp_cp_ret19;
    ((void)(___retval_align_alloc__P2tT_1=((void *)(((void)(_tmp_cp_ret19=memalign(__align__Ul_1, _sizeof_2tT))) , _tmp_cp_ret19))) /* ?{} */);
    ((void)(_tmp_cp_ret19) /* ^?{} */);
    return ((void *)___retval_align_alloc__P2tT_1);
}
static inline void *__align_alloc__A0_1_0_0__FPd0_Ulc__1(__attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, unsigned long int __align__Ul_1, char __fill__c_1){
    __attribute__ ((unused)) void *___retval_align_alloc__P2tT_1;
    void *_tmp_cp_ret20;
    void *__ptr__P2tT_2 = ((void *)((void *)(((void)(_tmp_cp_ret20=memalign(__align__Ul_1, _sizeof_2tT))) , _tmp_cp_ret20)));
    ((void)(_tmp_cp_ret20) /* ^?{} */);
    void *_tmp_cp_ret21;
    ((void)(___retval_align_alloc__P2tT_1=(((void)(_tmp_cp_ret21=memset(((void *)__ptr__P2tT_2), ((signed int )__fill__c_1), _sizeof_2tT))) , _tmp_cp_ret21)) /* ?{} */);
    ((void)(_tmp_cp_ret21) /* ^?{} */);
    return ((void *)___retval_align_alloc__P2tT_1);
}
static inline void *__align_alloc__A0_1_0_0__FPd0_UlUl__1(__attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, unsigned long int __align__Ul_1, unsigned long int __dim__Ul_1){
    __attribute__ ((unused)) void *___retval_align_alloc__P2tT_1;
    void *_tmp_cp_ret22;
    ((void)(___retval_align_alloc__P2tT_1=((void *)(((void)(_tmp_cp_ret22=memalign(__align__Ul_1, (__dim__Ul_1*_sizeof_2tT)))) , _tmp_cp_ret22))) /* ?{} */);
    ((void)(_tmp_cp_ret22) /* ^?{} */);
    return ((void *)___retval_align_alloc__P2tT_1);
}
static inline void *__align_alloc__A0_1_0_0__FPd0_UlUlc__1(__attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, unsigned long int __align__Ul_1, unsigned long int __dim__Ul_1, char __fill__c_1){
    __attribute__ ((unused)) void *___retval_align_alloc__P2tT_1;
    void *_tmp_cp_ret23;
    void *__ptr__P2tT_2 = ((void *)((void *)(((void)(_tmp_cp_ret23=memalign(__align__Ul_1, (__dim__Ul_1*_sizeof_2tT)))) , _tmp_cp_ret23)));
    ((void)(_tmp_cp_ret23) /* ^?{} */);
    void *_tmp_cp_ret24;
    ((void)(___retval_align_alloc__P2tT_1=(((void)(_tmp_cp_ret24=memset(((void *)__ptr__P2tT_2), ((signed int )__fill__c_1), (__dim__Ul_1*_sizeof_2tT)))) , _tmp_cp_ret24)) /* ?{} */);
    ((void)(_tmp_cp_ret24) /* ^?{} */);
    return ((void *)___retval_align_alloc__P2tT_1);
}
static inline void *__memset__A0_1_0_0__FPd0_Pd0c__1(__attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, void *__dest__P2tT_1, char __c__c_1){
    __attribute__ ((unused)) void *___retval_memset__P2tT_1;
    void *_tmp_cp_ret25;
    ((void)(___retval_memset__P2tT_1=(((void)(_tmp_cp_ret25=memset(((void *)__dest__P2tT_1), ((signed int )__c__c_1), _sizeof_2tT))) , _tmp_cp_ret25)) /* ?{} */);
    ((void)(_tmp_cp_ret25) /* ^?{} */);
    return ((void *)___retval_memset__P2tT_1);
}
void *memcpy(void *dest, const void *src, unsigned long int size);
static inline void *__memcpy__A0_1_0_0__FPd0_Pd0PCd0__1(__attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, void *__dest__P2tT_1, const void *__src__PC2tT_1){
    __attribute__ ((unused)) void *___retval_memcpy__P2tT_1;
    void *_tmp_cp_ret26;
    ((void)(___retval_memcpy__P2tT_1=(((void)(_tmp_cp_ret26=memcpy(((void *)__dest__P2tT_1), ((const void *)__src__PC2tT_1), _sizeof_2tT))) , _tmp_cp_ret26)) /* ?{} */);
    ((void)(_tmp_cp_ret26) /* ^?{} */);
    return ((void *)___retval_memcpy__P2tT_1);
}
static inline void *__memset__A0_1_0_0__FPd0_Pd0Ulc__1(__attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, void *__dest__P2tT_1, unsigned long int __dim__Ul_1, char __c__c_1){
    __attribute__ ((unused)) void *___retval_memset__P2tT_1;
    void *_tmp_cp_ret27;
    ((void)(___retval_memset__P2tT_1=((void *)(((void)(_tmp_cp_ret27=memset(((void *)__dest__P2tT_1), ((signed int )__c__c_1), (__dim__Ul_1*_sizeof_2tT)))) , _tmp_cp_ret27))) /* ?{} */);
    ((void)(_tmp_cp_ret27) /* ^?{} */);
    return ((void *)___retval_memset__P2tT_1);
}
static inline void *__memcpy__A0_1_0_0__FPd0_Pd0PCd0Ul__1(__attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, void *__dest__P2tT_1, const void *__src__PC2tT_1, unsigned long int __dim__Ul_1){
    __attribute__ ((unused)) void *___retval_memcpy__P2tT_1;
    void *_tmp_cp_ret28;
    ((void)(___retval_memcpy__P2tT_1=((void *)(((void)(_tmp_cp_ret28=memcpy(((void *)__dest__P2tT_1), ((const void *)__src__PC2tT_1), (__dim__Ul_1*_sizeof_2tT)))) , _tmp_cp_ret28))) /* ?{} */);
    ((void)(_tmp_cp_ret28) /* ^?{} */);
    return ((void *)___retval_memcpy__P2tT_1);
}
void *__new__A0_1_0_1____constructor__PF_Rd0tVARGS1__FPd0_tVARGS1__1(__attribute__ ((unused)) void (*_adapterF_P2tT7tParams__MP)(void (*__anonymous_object10)(), void *__anonymous_object11, void *__anonymous_object12), __attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, __attribute__ ((unused)) unsigned long int _sizeof_7tParams, __attribute__ ((unused)) unsigned long int _alignof_7tParams, __attribute__ ((unused)) void (*___constructor__PF_R2tT7tParams__1)(void *__anonymous_object13, void *__anonymous_object14), void *__p__7tParams_1);
void __delete__A0_1_0_0____destructor__PF_Rd0__F_Pd0__1(__attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, __attribute__ ((unused)) void (*___destructor__PF_R2tT__1)(void *__anonymous_object15), void *__ptr__P2tT_1);
void __delete__A0_1_0_1____destructor__PF_Rd0___delete__PF_tVARGS1__F_Pd0tVARGS1__1(__attribute__ ((unused)) void (*_adapterF_7tParams__P)(void (*__anonymous_object16)(), void *__anonymous_object17), __attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, __attribute__ ((unused)) unsigned long int _sizeof_7tParams, __attribute__ ((unused)) unsigned long int _alignof_7tParams, __attribute__ ((unused)) void (*___destructor__PF_R2tT__1)(void *__anonymous_object18), __attribute__ ((unused)) void (*__delete__PF_7tParams__1)(void *__anonymous_object19), void *__ptr__P2tT_1, void *__rest__7tParams_1);
void *__anew__A0_1_0_1____constructor__PF_Rd0tVARGS1__FPd0_UltVARGS1__1(__attribute__ ((unused)) void (*_adapterF_P2tT7tParams__MP)(void (*__anonymous_object20)(), void *__anonymous_object21, void *__anonymous_object22), __attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, __attribute__ ((unused)) unsigned long int _sizeof_7tParams, __attribute__ ((unused)) unsigned long int _alignof_7tParams, __attribute__ ((unused)) void (*___constructor__PF_R2tT7tParams__1)(void *__anonymous_object23, void *__anonymous_object24), unsigned long int __dim__Ul_1, void *__p__7tParams_1);
void __adelete__A0_1_0_0____destructor__PF_Rd0__F_UlPd0__1(__attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, __attribute__ ((unused)) void (*___destructor__PF_R2tT__1)(void *__anonymous_object25), unsigned long int __dim__Ul_1, void *__arr__P2tT_1);
void __adelete__A0_1_0_1____destructor__PF_Rd0___adelete__PF_tVARGS1__F_UlPd0tVARGS1__1(__attribute__ ((unused)) void (*_adapterF_7tParams__P)(void (*__anonymous_object26)(), void *__anonymous_object27), __attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, __attribute__ ((unused)) unsigned long int _sizeof_7tParams, __attribute__ ((unused)) unsigned long int _alignof_7tParams, __attribute__ ((unused)) void (*___destructor__PF_R2tT__1)(void *__anonymous_object28), __attribute__ ((unused)) void (*__adelete__PF_7tParams__1)(void *__anonymous_object29), unsigned long int __dim__Ul_1, void *__arr__P2tT_1, void *__rest__7tParams_1);
signed int __ato__Fi_PCc__1(const char *__ptr__PCc_1);
unsigned int __ato__FUi_PCc__1(const char *__ptr__PCc_1);
signed long int __ato__Fl_PCc__1(const char *__ptr__PCc_1);
unsigned long int __ato__FUl_PCc__1(const char *__ptr__PCc_1);
signed long long int __ato__Fq_PCc__1(const char *__ptr__PCc_1);
unsigned long long int __ato__FUq_PCc__1(const char *__ptr__PCc_1);
float __ato__Ff_PCc__1(const char *__ptr__PCc_1);
double __ato__Fd_PCc__1(const char *__ptr__PCc_1);
long double __ato__Fr_PCc__1(const char *__ptr__PCc_1);
float _Complex __ato__FXf_PCc__1(const char *__ptr__PCc_1);
double _Complex __ato__FXd_PCc__1(const char *__ptr__PCc_1);
long double _Complex __ato__FXr_PCc__1(const char *__ptr__PCc_1);
signed int __strto__Fi_PCcPPci__1(const char *__sptr__PCc_1, char **__eptr__PPc_1, signed int __base__i_1);
unsigned int __strto__FUi_PCcPPci__1(const char *__sptr__PCc_1, char **__eptr__PPc_1, signed int __base__i_1);
signed long int __strto__Fl_PCcPPci__1(const char *__sptr__PCc_1, char **__eptr__PPc_1, signed int __base__i_1);
unsigned long int __strto__FUl_PCcPPci__1(const char *__sptr__PCc_1, char **__eptr__PPc_1, signed int __base__i_1);
signed long long int __strto__Fq_PCcPPci__1(const char *__sptr__PCc_1, char **__eptr__PPc_1, signed int __base__i_1);
unsigned long long int __strto__FUq_PCcPPci__1(const char *__sptr__PCc_1, char **__eptr__PPc_1, signed int __base__i_1);
float __strto__Ff_PCcPPc__1(const char *__sptr__PCc_1, char **__eptr__PPc_1);
double __strto__Fd_PCcPPc__1(const char *__sptr__PCc_1, char **__eptr__PPc_1);
long double __strto__Fr_PCcPPc__1(const char *__sptr__PCc_1, char **__eptr__PPc_1);
float _Complex __strto__FXf_PCcPPc__1(const char *__sptr__PCc_1, char **__eptr__PPc_1);
double _Complex __strto__FXd_PCcPPc__1(const char *__sptr__PCc_1, char **__eptr__PPc_1);
long double _Complex __strto__FXr_PCcPPc__1(const char *__sptr__PCc_1, char **__eptr__PPc_1);
void *__bsearch__A1_0_0_0____operator_assign__PFt0_Rt0t0____constructor__PF_Rt0____constructor__PF_Rt0t0____destructor__PF_Rt0____operator_less__PFi_t0t0__FPt0_t0PCt0Ul__1(__attribute__ ((unused)) signed int (*_adapterFi_2tT2tT_M_PP)(void (*__anonymous_object30)(), void *__anonymous_object31, void *__anonymous_object32), __attribute__ ((unused)) void (*_adapterF_P2tT2tT__MP)(void (*__anonymous_object33)(), void *__anonymous_object34, void *__anonymous_object35), __attribute__ ((unused)) void (*_adapterF2tT_P2tT2tT_P_MP)(void (*__anonymous_object36)(), __attribute__ ((unused)) void *___retval__operator_assign__2tT_1, void *__anonymous_object37, void *__anonymous_object38), __attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, __attribute__ ((unused)) void *(*___operator_assign__PF2tT_R2tT2tT__1)(void *__anonymous_object39, void *__anonymous_object40), __attribute__ ((unused)) void (*___constructor__PF_R2tT__1)(void *__anonymous_object41), __attribute__ ((unused)) void (*___constructor__PF_R2tT2tT__1)(void *__anonymous_object42, void *__anonymous_object43), __attribute__ ((unused)) void (*___destructor__PF_R2tT__1)(void *__anonymous_object44), __attribute__ ((unused)) signed int (*___operator_less__PFi_2tT2tT__1)(void *__anonymous_object45, void *__anonymous_object46), void *__key__2tT_1, const void *__arr__PC2tT_1, unsigned long int __dim__Ul_1);
unsigned int __bsearch__A1_0_0_0____operator_assign__PFt0_Rt0t0____constructor__PF_Rt0____constructor__PF_Rt0t0____destructor__PF_Rt0____operator_less__PFi_t0t0__FUi_t0PCt0Ul__1(__attribute__ ((unused)) signed int (*_adapterFi_2tT2tT_M_PP)(void (*__anonymous_object47)(), void *__anonymous_object48, void *__anonymous_object49), __attribute__ ((unused)) void (*_adapterF_P2tT2tT__MP)(void (*__anonymous_object50)(), void *__anonymous_object51, void *__anonymous_object52), __attribute__ ((unused)) void (*_adapterF2tT_P2tT2tT_P_MP)(void (*__anonymous_object53)(), __attribute__ ((unused)) void *___retval__operator_assign__2tT_1, void *__anonymous_object54, void *__anonymous_object55), __attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, __attribute__ ((unused)) void *(*___operator_assign__PF2tT_R2tT2tT__1)(void *__anonymous_object56, void *__anonymous_object57), __attribute__ ((unused)) void (*___constructor__PF_R2tT__1)(void *__anonymous_object58), __attribute__ ((unused)) void (*___constructor__PF_R2tT2tT__1)(void *__anonymous_object59, void *__anonymous_object60), __attribute__ ((unused)) void (*___destructor__PF_R2tT__1)(void *__anonymous_object61), __attribute__ ((unused)) signed int (*___operator_less__PFi_2tT2tT__1)(void *__anonymous_object62, void *__anonymous_object63), void *__key__2tT_1, const void *__arr__PC2tT_1, unsigned long int __dim__Ul_1);
void __qsort__A1_0_0_0____operator_assign__PFt0_Rt0t0____constructor__PF_Rt0____constructor__PF_Rt0t0____destructor__PF_Rt0____operator_less__PFi_t0t0__F_PCt0Ul__1(__attribute__ ((unused)) signed int (*_adapterFi_2tT2tT_M_PP)(void (*__anonymous_object64)(), void *__anonymous_object65, void *__anonymous_object66), __attribute__ ((unused)) void (*_adapterF_P2tT2tT__MP)(void (*__anonymous_object67)(), void *__anonymous_object68, void *__anonymous_object69), __attribute__ ((unused)) void (*_adapterF2tT_P2tT2tT_P_MP)(void (*__anonymous_object70)(), __attribute__ ((unused)) void *___retval__operator_assign__2tT_1, void *__anonymous_object71, void *__anonymous_object72), __attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, __attribute__ ((unused)) void *(*___operator_assign__PF2tT_R2tT2tT__1)(void *__anonymous_object73, void *__anonymous_object74), __attribute__ ((unused)) void (*___constructor__PF_R2tT__1)(void *__anonymous_object75), __attribute__ ((unused)) void (*___constructor__PF_R2tT2tT__1)(void *__anonymous_object76, void *__anonymous_object77), __attribute__ ((unused)) void (*___destructor__PF_R2tT__1)(void *__anonymous_object78), __attribute__ ((unused)) signed int (*___operator_less__PFi_2tT2tT__1)(void *__anonymous_object79, void *__anonymous_object80), const void *__arr__PC2tT_1, unsigned long int __dim__Ul_1);
struct _tuple2_ {
};
static inline void _layoutof__tuple2_(unsigned long int *_sizeof__tuple2_, unsigned long int *_alignof__tuple2_, unsigned long int *_offsetof__tuple2_, unsigned long int _sizeof_16ttuple_param_2_0, unsigned long int _alignof_16ttuple_param_2_0, unsigned long int _sizeof_16ttuple_param_2_1, unsigned long int _alignof_16ttuple_param_2_1){
    ((void)((*_sizeof__tuple2_)=0));
    ((void)((*_alignof__tuple2_)=1));
    ((void)(_offsetof__tuple2_[0]=(*_sizeof__tuple2_)));
    ((void)((*_sizeof__tuple2_)+=_sizeof_16ttuple_param_2_0));
    if ( ((*_alignof__tuple2_)<_alignof_16ttuple_param_2_0) ) ((void)((*_alignof__tuple2_)=_alignof_16ttuple_param_2_0));

    if ( ((*_sizeof__tuple2_)&(_alignof_16ttuple_param_2_1-1)) ) ((void)((*_sizeof__tuple2_)+=(_alignof_16ttuple_param_2_1-((*_sizeof__tuple2_)&(_alignof_16ttuple_param_2_1-1)))));

    ((void)(_offsetof__tuple2_[1]=(*_sizeof__tuple2_)));
    ((void)((*_sizeof__tuple2_)+=_sizeof_16ttuple_param_2_1));
    if ( ((*_alignof__tuple2_)<_alignof_16ttuple_param_2_1) ) ((void)((*_alignof__tuple2_)=_alignof_16ttuple_param_2_1));

    if ( ((*_sizeof__tuple2_)&((*_alignof__tuple2_)-1)) ) ((void)((*_sizeof__tuple2_)+=((*_alignof__tuple2_)-((*_sizeof__tuple2_)&((*_alignof__tuple2_)-1)))));

}
struct _conc__tuple2_0 {
    signed int field_0;
    signed int field_1;
};
struct _conc__tuple2_0 __div__FTii__ii__1(signed int __num__i_1, signed int __denom__i_1);
struct _conc__tuple2_1 {
    signed long int field_0;
    signed long int field_1;
};
struct _conc__tuple2_1 __div__FTll__ll__1(signed long int __num__l_1, signed long int __denom__l_1);
struct _conc__tuple2_2 {
    signed long long int field_0;
    signed long long int field_1;
};
struct _conc__tuple2_2 __div__FTqq__qq__1(signed long long int __num__q_1, signed long long int __denom__q_1);
void __div__A1_0_0_0____operator_assign__PFt0_Rt0t0____constructor__PF_Rt0____constructor__PF_Rt0t0____destructor__PF_Rt0____operator_divide__PFt0_t0t0____operator_modulus__PFt0_t0t0__FTt0t0__t0t0__1(__attribute__ ((unused)) void (*_adapterF2tT_2tT2tT_P_PP)(void (*__anonymous_object81)(), __attribute__ ((unused)) void *___retval__operator_divide__2tT_1, void *__anonymous_object82, void *__anonymous_object83), __attribute__ ((unused)) void (*_adapterF_P2tT2tT__MP)(void (*__anonymous_object84)(), void *__anonymous_object85, void *__anonymous_object86), __attribute__ ((unused)) void (*_adapterF2tT_P2tT2tT_P_MP)(void (*__anonymous_object87)(), __attribute__ ((unused)) void *___retval__operator_assign__2tT_1, void *__anonymous_object88, void *__anonymous_object89), __attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, __attribute__ ((unused)) void *(*___operator_assign__PF2tT_R2tT2tT__1)(void *__anonymous_object90, void *__anonymous_object91), __attribute__ ((unused)) void (*___constructor__PF_R2tT__1)(void *__anonymous_object92), __attribute__ ((unused)) void (*___constructor__PF_R2tT2tT__1)(void *__anonymous_object93, void *__anonymous_object94), __attribute__ ((unused)) void (*___destructor__PF_R2tT__1)(void *__anonymous_object95), __attribute__ ((unused)) void *(*___operator_divide__PF2tT_2tT2tT__1)(void *__anonymous_object96, void *__anonymous_object97), __attribute__ ((unused)) void *(*___operator_modulus__PF2tT_2tT2tT__1)(void *__anonymous_object98, void *__anonymous_object99), __attribute__ ((unused)) void *___retval_div__T2tT2tT__1, void *__num__2tT_1, void *__demon__2tT_1);
unsigned char __abs__FUc_Sc__1(signed char __anonymous_object100);
signed int abs(signed int __anonymous_object101);
unsigned long int __abs__FUl_l__1(signed long int __anonymous_object102);
unsigned long long int __abs__FUq_q__1(signed long long int __anonymous_object103);
float __abs__Ff_f__1(float __anonymous_object104);
double __abs__Fd_d__1(double __anonymous_object105);
long double __abs__Fr_r__1(long double __anonymous_object106);
float __abs__Ff_Xf__1(float _Complex __anonymous_object107);
double __abs__Fd_Xd__1(double _Complex __anonymous_object108);
long double __abs__Fr_Xr__1(long double _Complex __anonymous_object109);
void __abs__A1_0_0_0____operator_assign__PFt0_Rt0t0____constructor__PF_Rt0____constructor__PF_Rt0t0____destructor__PF_Rt0____constructor__PF_Rt0Z____operator_less__PFi_t0t0____operator_unaryminus__PFt0_t0__Ft0_t0__1(__attribute__ ((unused)) void (*_adapterF2tT_2tT_P_P)(void (*__anonymous_object110)(), __attribute__ ((unused)) void *___retval__operator_unaryminus__2tT_1, void *__anonymous_object111), __attribute__ ((unused)) signed int (*_adapterFi_2tT2tT_M_PP)(void (*__anonymous_object112)(), void *__anonymous_object113, void *__anonymous_object114), __attribute__ ((unused)) void (*_adapterF_P2tT2tT__MP)(void (*__anonymous_object115)(), void *__anonymous_object116, void *__anonymous_object117), __attribute__ ((unused)) void (*_adapterF2tT_P2tT2tT_P_MP)(void (*__anonymous_object118)(), __attribute__ ((unused)) void *___retval__operator_assign__2tT_1, void *__anonymous_object119, void *__anonymous_object120), __attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, __attribute__ ((unused)) void *(*___operator_assign__PF2tT_R2tT2tT__1)(void *__anonymous_object121, void *__anonymous_object122), __attribute__ ((unused)) void (*___constructor__PF_R2tT__1)(void *__anonymous_object123), __attribute__ ((unused)) void (*___constructor__PF_R2tT2tT__1)(void *__anonymous_object124, void *__anonymous_object125), __attribute__ ((unused)) void (*___destructor__PF_R2tT__1)(void *__anonymous_object126), __attribute__ ((unused)) void (*___constructor__PF_R2tTZ__1)(void *__anonymous_object127, long int __anonymous_object128), __attribute__ ((unused)) signed int (*___operator_less__PFi_2tT2tT__1)(void *__anonymous_object129, void *__anonymous_object130), __attribute__ ((unused)) void *(*___operator_unaryminus__PF2tT_2tT__1)(void *__anonymous_object131), __attribute__ ((unused)) void *___retval_abs__2tT_1, void *__anonymous_object132);
void __rand48seed__F_l__1(signed long int __s__l_1);
char __rand48__Fc___1(void);
signed int __rand48__Fi___1(void);
unsigned int __rand48__FUi___1(void);
signed long int __rand48__Fl___1(void);
unsigned long int __rand48__FUl___1(void);
float __rand48__Ff___1(void);
double __rand48__Fd___1(void);
float _Complex __rand48__FXf___1(void);
double _Complex __rand48__FXd___1(void);
long double _Complex __rand48__FXr___1(void);
void __min__A1_0_0_0____operator_assign__PFt0_Rt0t0____constructor__PF_Rt0____constructor__PF_Rt0t0____destructor__PF_Rt0____operator_less__PFi_t0t0__Ft0_t0t0__1(__attribute__ ((unused)) signed int (*_adapterFi_2tT2tT_M_PP)(void (*__anonymous_object133)(), void *__anonymous_object134, void *__anonymous_object135), __attribute__ ((unused)) void (*_adapterF_P2tT2tT__MP)(void (*__anonymous_object136)(), void *__anonymous_object137, void *__anonymous_object138), __attribute__ ((unused)) void (*_adapterF2tT_P2tT2tT_P_MP)(void (*__anonymous_object139)(), __attribute__ ((unused)) void *___retval__operator_assign__2tT_1, void *__anonymous_object140, void *__anonymous_object141), __attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, __attribute__ ((unused)) void *(*___operator_assign__PF2tT_R2tT2tT__1)(void *__anonymous_object142, void *__anonymous_object143), __attribute__ ((unused)) void (*___constructor__PF_R2tT__1)(void *__anonymous_object144), __attribute__ ((unused)) void (*___constructor__PF_R2tT2tT__1)(void *__anonymous_object145, void *__anonymous_object146), __attribute__ ((unused)) void (*___destructor__PF_R2tT__1)(void *__anonymous_object147), __attribute__ ((unused)) signed int (*___operator_less__PFi_2tT2tT__1)(void *__anonymous_object148, void *__anonymous_object149), __attribute__ ((unused)) void *___retval_min__2tT_1, void *__t1__2tT_1, void *__t2__2tT_1);
void __max__A1_0_0_0____operator_assign__PFt0_Rt0t0____constructor__PF_Rt0____constructor__PF_Rt0t0____destructor__PF_Rt0____operator_greater__PFi_t0t0__Ft0_t0t0__1(__attribute__ ((unused)) signed int (*_adapterFi_2tT2tT_M_PP)(void (*__anonymous_object150)(), void *__anonymous_object151, void *__anonymous_object152), __attribute__ ((unused)) void (*_adapterF_P2tT2tT__MP)(void (*__anonymous_object153)(), void *__anonymous_object154, void *__anonymous_object155), __attribute__ ((unused)) void (*_adapterF2tT_P2tT2tT_P_MP)(void (*__anonymous_object156)(), __attribute__ ((unused)) void *___retval__operator_assign__2tT_1, void *__anonymous_object157, void *__anonymous_object158), __attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, __attribute__ ((unused)) void *(*___operator_assign__PF2tT_R2tT2tT__1)(void *__anonymous_object159, void *__anonymous_object160), __attribute__ ((unused)) void (*___constructor__PF_R2tT__1)(void *__anonymous_object161), __attribute__ ((unused)) void (*___constructor__PF_R2tT2tT__1)(void *__anonymous_object162, void *__anonymous_object163), __attribute__ ((unused)) void (*___destructor__PF_R2tT__1)(void *__anonymous_object164), __attribute__ ((unused)) signed int (*___operator_greater__PFi_2tT2tT__1)(void *__anonymous_object165, void *__anonymous_object166), __attribute__ ((unused)) void *___retval_max__2tT_1, void *__t1__2tT_1, void *__t2__2tT_1);
void __clamp__A1_0_0_0____operator_assign__PFt0_Rt0t0____constructor__PF_Rt0____constructor__PF_Rt0t0____destructor__PF_Rt0___min__PFt0_t0t0___max__PFt0_t0t0__Ft0_t0t0t0__1(__attribute__ ((unused)) void (*_adapterF2tT_2tT2tT_P_PP)(void (*__anonymous_object167)(), __attribute__ ((unused)) void *___retval_min__2tT_1, void *__anonymous_object168, void *__anonymous_object169), __attribute__ ((unused)) void (*_adapterF_P2tT2tT__MP)(void (*__anonymous_object170)(), void *__anonymous_object171, void *__anonymous_object172), __attribute__ ((unused)) void (*_adapterF2tT_P2tT2tT_P_MP)(void (*__anonymous_object173)(), __attribute__ ((unused)) void *___retval__operator_assign__2tT_1, void *__anonymous_object174, void *__anonymous_object175), __attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, __attribute__ ((unused)) void *(*___operator_assign__PF2tT_R2tT2tT__1)(void *__anonymous_object176, void *__anonymous_object177), __attribute__ ((unused)) void (*___constructor__PF_R2tT__1)(void *__anonymous_object178), __attribute__ ((unused)) void (*___constructor__PF_R2tT2tT__1)(void *__anonymous_object179, void *__anonymous_object180), __attribute__ ((unused)) void (*___destructor__PF_R2tT__1)(void *__anonymous_object181), __attribute__ ((unused)) void *(*__min__PF2tT_2tT2tT__1)(void *__anonymous_object182, void *__anonymous_object183), __attribute__ ((unused)) void *(*__max__PF2tT_2tT2tT__1)(void *__anonymous_object184, void *__anonymous_object185), __attribute__ ((unused)) void *___retval_clamp__2tT_1, void *__value__2tT_1, void *__min_val__2tT_1, void *__max_val__2tT_1);
void __swap__A1_0_0_0____operator_assign__PFt0_Rt0t0____constructor__PF_Rt0____constructor__PF_Rt0t0____destructor__PF_Rt0__F_Rt0Rt0__1(__attribute__ ((unused)) void (*_adapterF_P2tT2tT__MP)(void (*__anonymous_object186)(), void *__anonymous_object187, void *__anonymous_object188), __attribute__ ((unused)) void (*_adapterF2tT_P2tT2tT_P_MP)(void (*__anonymous_object189)(), __attribute__ ((unused)) void *___retval__operator_assign__2tT_1, void *__anonymous_object190, void *__anonymous_object191), __attribute__ ((unused)) unsigned long int _sizeof_2tT, __attribute__ ((unused)) unsigned long int _alignof_2tT, __attribute__ ((unused)) void *(*___operator_assign__PF2tT_R2tT2tT__1)(void *__anonymous_object192, void *__anonymous_object193), __attribute__ ((unused)) void (*___constructor__PF_R2tT__1)(void *__anonymous_object194), __attribute__ ((unused)) void (*___constructor__PF_R2tT2tT__1)(void *__anonymous_object195, void *__anonymous_object196), __attribute__ ((unused)) void (*___destructor__PF_R2tT__1)(void *__anonymous_object197), void *__t1__R2tT_1, void *__t2__R2tT_1);
static inline void ___constructor__F_R13smonitor_desc__1(struct monitor_desc *__this__R13smonitor_desc_1){
    ((void)((*__this__R13smonitor_desc_1).owner) /* ?{} */);
    ((void)((*__this__R13smonitor_desc_1).recursion) /* ?{} */);
    ((void)___constructor__F_R17s__waitfor_mask_t_autogen___1((&(*__this__R13smonitor_desc_1).mask)));
    struct spinlock *_tmp_ctor_expr0;
    ((void)(((void)(_tmp_ctor_expr0=(&(*__this__R13smonitor_desc_1).lock))) , (((void)___constructor__F_R9sspinlock__1(_tmp_ctor_expr0)) , _tmp_ctor_expr0)));
    ((void)((*__this__R13smonitor_desc_1).owner=((void *)0)));
    struct __thread_queue_t *_tmp_ctor_expr1;
    ((void)(((void)(_tmp_ctor_expr1=(&(*__this__R13smonitor_desc_1).entry_queue))) , (((void)___constructor__F_R17s__thread_queue_t__1(_tmp_ctor_expr1)) , _tmp_ctor_expr1)));
    struct __condition_stack_t *_tmp_ctor_expr2;
    ((void)(((void)(_tmp_ctor_expr2=(&(*__this__R13smonitor_desc_1).signal_stack))) , (((void)___constructor__F_R20s__condition_stack_t__1(_tmp_ctor_expr2)) , _tmp_ctor_expr2)));
    ((void)((*__this__R13smonitor_desc_1).recursion=((unsigned int )0)));
    ((void)((*__this__R13smonitor_desc_1).mask.accepted=((void *)0)));
    ((void)((*__this__R13smonitor_desc_1).mask.clauses=((void *)0)));
    ((void)((*__this__R13smonitor_desc_1).mask.size=((signed short int )0)));
}
struct monitor_guard_t {
    struct monitor_desc **__m__PP13smonitor_desc_1;
    signed int __count__i_1;
    struct monitor_desc **__prev_mntrs__PP13smonitor_desc_1;
    unsigned short int __prev_count__Us_1;
    void (*__prev_func__PF___1)();
};
static inline void ___constructor__F_R16smonitor_guard_t_autogen___1(struct monitor_guard_t *___dst__R16smonitor_guard_t_1);
static inline void ___constructor__F_R16smonitor_guard_t16smonitor_guard_t_autogen___1(struct monitor_guard_t *___dst__R16smonitor_guard_t_1, struct monitor_guard_t ___src__16smonitor_guard_t_1);
static inline void ___destructor__F_R16smonitor_guard_t_autogen___1(struct monitor_guard_t *___dst__R16smonitor_guard_t_1);
static inline struct monitor_guard_t ___operator_assign__F16smonitor_guard_t_R16smonitor_guard_t16smonitor_guard_t_autogen___1(struct monitor_guard_t *___dst__R16smonitor_guard_t_1, struct monitor_guard_t ___src__16smonitor_guard_t_1);
static inline void ___constructor__F_R16smonitor_guard_t_autogen___1(struct monitor_guard_t *___dst__R16smonitor_guard_t_1){
    ((void)((*___dst__R16smonitor_guard_t_1).__m__PP13smonitor_desc_1) /* ?{} */);
    ((void)((*___dst__R16smonitor_guard_t_1).__count__i_1) /* ?{} */);
    ((void)((*___dst__R16smonitor_guard_t_1).__prev_mntrs__PP13smonitor_desc_1) /* ?{} */);
    ((void)((*___dst__R16smonitor_guard_t_1).__prev_count__Us_1) /* ?{} */);
    ((void)((*___dst__R16smonitor_guard_t_1).__prev_func__PF___1) /* ?{} */);
}
static inline void ___constructor__F_R16smonitor_guard_t16smonitor_guard_t_autogen___1(struct monitor_guard_t *___dst__R16smonitor_guard_t_1, struct monitor_guard_t ___src__16smonitor_guard_t_1){
    ((void)((*___dst__R16smonitor_guard_t_1).__m__PP13smonitor_desc_1=___src__16smonitor_guard_t_1.__m__PP13smonitor_desc_1) /* ?{} */);
    ((void)((*___dst__R16smonitor_guard_t_1).__count__i_1=___src__16smonitor_guard_t_1.__count__i_1) /* ?{} */);
    ((void)((*___dst__R16smonitor_guard_t_1).__prev_mntrs__PP13smonitor_desc_1=___src__16smonitor_guard_t_1.__prev_mntrs__PP13smonitor_desc_1) /* ?{} */);
    ((void)((*___dst__R16smonitor_guard_t_1).__prev_count__Us_1=___src__16smonitor_guard_t_1.__prev_count__Us_1) /* ?{} */);
    ((void)((*___dst__R16smonitor_guard_t_1).__prev_func__PF___1=___src__16smonitor_guard_t_1.__prev_func__PF___1) /* ?{} */);
}
static inline void ___destructor__F_R16smonitor_guard_t_autogen___1(struct monitor_guard_t *___dst__R16smonitor_guard_t_1){
    ((void)((*___dst__R16smonitor_guard_t_1).__prev_func__PF___1) /* ^?{} */);
    ((void)((*___dst__R16smonitor_guard_t_1).__prev_count__Us_1) /* ^?{} */);
    ((void)((*___dst__R16smonitor_guard_t_1).__prev_mntrs__PP13smonitor_desc_1) /* ^?{} */);
    ((void)((*___dst__R16smonitor_guard_t_1).__count__i_1) /* ^?{} */);
    ((void)((*___dst__R16smonitor_guard_t_1).__m__PP13smonitor_desc_1) /* ^?{} */);
}
static inline struct monitor_guard_t ___operator_assign__F16smonitor_guard_t_R16smonitor_guard_t16smonitor_guard_t_autogen___1(struct monitor_guard_t *___dst__R16smonitor_guard_t_1, struct monitor_guard_t ___src__16smonitor_guard_t_1){
    struct monitor_guard_t ___ret__16smonitor_guard_t_1;
    ((void)((*___dst__R16smonitor_guard_t_1).__m__PP13smonitor_desc_1=___src__16smonitor_guard_t_1.__m__PP13smonitor_desc_1));
    ((void)((*___dst__R16smonitor_guard_t_1).__count__i_1=___src__16smonitor_guard_t_1.__count__i_1));
    ((void)((*___dst__R16smonitor_guard_t_1).__prev_mntrs__PP13smonitor_desc_1=___src__16smonitor_guard_t_1.__prev_mntrs__PP13smonitor_desc_1));
    ((void)((*___dst__R16smonitor_guard_t_1).__prev_count__Us_1=___src__16smonitor_guard_t_1.__prev_count__Us_1));
    ((void)((*___dst__R16smonitor_guard_t_1).__prev_func__PF___1=___src__16smonitor_guard_t_1.__prev_func__PF___1));
    ((void)___constructor__F_R16smonitor_guard_t16smonitor_guard_t_autogen___1((&___ret__16smonitor_guard_t_1), ___src__16smonitor_guard_t_1));
    return ((struct monitor_guard_t )___ret__16smonitor_guard_t_1);
}
static inline void ___constructor__F_R16smonitor_guard_tPP13smonitor_desc_autogen___1(struct monitor_guard_t *___dst__R16smonitor_guard_t_1, struct monitor_desc **__m__PP13smonitor_desc_1){
    ((void)((*___dst__R16smonitor_guard_t_1).__m__PP13smonitor_desc_1=__m__PP13smonitor_desc_1) /* ?{} */);
    ((void)((*___dst__R16smonitor_guard_t_1).__count__i_1) /* ?{} */);
    ((void)((*___dst__R16smonitor_guard_t_1).__prev_mntrs__PP13smonitor_desc_1) /* ?{} */);
    ((void)((*___dst__R16smonitor_guard_t_1).__prev_count__Us_1) /* ?{} */);
    ((void)((*___dst__R16smonitor_guard_t_1).__prev_func__PF___1) /* ?{} */);
}
static inline void ___constructor__F_R16smonitor_guard_tPP13smonitor_desci_autogen___1(struct monitor_guard_t *___dst__R16smonitor_guard_t_1, struct monitor_desc **__m__PP13smonitor_desc_1, signed int __count__i_1){
    ((void)((*___dst__R16smonitor_guard_t_1).__m__PP13smonitor_desc_1=__m__PP13smonitor_desc_1) /* ?{} */);
    ((void)((*___dst__R16smonitor_guard_t_1).__count__i_1=__count__i_1) /* ?{} */);
    ((void)((*___dst__R16smonitor_guard_t_1).__prev_mntrs__PP13smonitor_desc_1) /* ?{} */);
    ((void)((*___dst__R16smonitor_guard_t_1).__prev_count__Us_1) /* ?{} */);
    ((void)((*___dst__R16smonitor_guard_t_1).__prev_func__PF___1) /* ?{} */);
}
static inline void ___constructor__F_R16smonitor_guard_tPP13smonitor_desciPP13smonitor_desc_autogen___1(struct monitor_guard_t *___dst__R16smonitor_guard_t_1, struct monitor_desc **__m__PP13smonitor_desc_1, signed int __count__i_1, struct monitor_desc **__prev_mntrs__PP13smonitor_desc_1){
    ((void)((*___dst__R16smonitor_guard_t_1).__m__PP13smonitor_desc_1=__m__PP13smonitor_desc_1) /* ?{} */);
    ((void)((*___dst__R16smonitor_guard_t_1).__count__i_1=__count__i_1) /* ?{} */);
    ((void)((*___dst__R16smonitor_guard_t_1).__prev_mntrs__PP13smonitor_desc_1=__prev_mntrs__PP13smonitor_desc_1) /* ?{} */);
    ((void)((*___dst__R16smonitor_guard_t_1).__prev_count__Us_1) /* ?{} */);
    ((void)((*___dst__R16smonitor_guard_t_1).__prev_func__PF___1) /* ?{} */);
}
static inline void ___constructor__F_R16smonitor_guard_tPP13smonitor_desciPP13smonitor_descUs_autogen___1(struct monitor_guard_t *___dst__R16smonitor_guard_t_1, struct monitor_desc **__m__PP13smonitor_desc_1, signed int __count__i_1, struct monitor_desc **__prev_mntrs__PP13smonitor_desc_1, unsigned short int __prev_count__Us_1){
    ((void)((*___dst__R16smonitor_guard_t_1).__m__PP13smonitor_desc_1=__m__PP13smonitor_desc_1) /* ?{} */);
    ((void)((*___dst__R16smonitor_guard_t_1).__count__i_1=__count__i_1) /* ?{} */);
    ((void)((*___dst__R16smonitor_guard_t_1).__prev_mntrs__PP13smonitor_desc_1=__prev_mntrs__PP13smonitor_desc_1) /* ?{} */);
    ((void)((*___dst__R16smonitor_guard_t_1).__prev_count__Us_1=__prev_count__Us_1) /* ?{} */);
    ((void)((*___dst__R16smonitor_guard_t_1).__prev_func__PF___1) /* ?{} */);
}
static inline void ___constructor__F_R16smonitor_guard_tPP13smonitor_desciPP13smonitor_descUsPF___autogen___1(struct monitor_guard_t *___dst__R16smonitor_guard_t_1, struct monitor_desc **__m__PP13smonitor_desc_1, signed int __count__i_1, struct monitor_desc **__prev_mntrs__PP13smonitor_desc_1, unsigned short int __prev_count__Us_1, void (*__prev_func__PF___1)()){
    ((void)((*___dst__R16smonitor_guard_t_1).__m__PP13smonitor_desc_1=__m__PP13smonitor_desc_1) /* ?{} */);
    ((void)((*___dst__R16smonitor_guard_t_1).__count__i_1=__count__i_1) /* ?{} */);
    ((void)((*___dst__R16smonitor_guard_t_1).__prev_mntrs__PP13smonitor_desc_1=__prev_mntrs__PP13smonitor_desc_1) /* ?{} */);
    ((void)((*___dst__R16smonitor_guard_t_1).__prev_count__Us_1=__prev_count__Us_1) /* ?{} */);
    ((void)((*___dst__R16smonitor_guard_t_1).__prev_func__PF___1=__prev_func__PF___1) /* ?{} */);
}
static inline signed int ___operator_less__Fi_P13smonitor_descP13smonitor_desc__1(struct monitor_desc *__lhs__P13smonitor_desc_1, struct monitor_desc *__rhs__P13smonitor_desc_1){
    __attribute__ ((unused)) signed int ___retval__operator_less__i_1;
    ((void)(___retval__operator_less__i_1=(((signed long int )__lhs__P13smonitor_desc_1)<((signed long int )__rhs__P13smonitor_desc_1))) /* ?{} */);
    return ((signed int )___retval__operator_less__i_1);
}
void ___constructor__F_R16smonitor_guard_tPP13smonitor_desciPF____1(struct monitor_guard_t *__this__R16smonitor_guard_t_1, struct monitor_desc **__m__PP13smonitor_desc_1, signed int __count__i_1, void (*__func__PF___1)());
void ___destructor__F_R16smonitor_guard_t__1(struct monitor_guard_t *__this__R16smonitor_guard_t_1);
struct __condition_criterion_t {
    _Bool __ready__b_1;
    struct monitor_desc *__target__P13smonitor_desc_1;
    struct __condition_node_t *__owner__P19s__condition_node_t_1;
    struct __condition_criterion_t *__next__P24s__condition_criterion_t_1;
};
static inline void ___constructor__F_R24s__condition_criterion_t_autogen___1(struct __condition_criterion_t *___dst__R24s__condition_criterion_t_1);
static inline void ___constructor__F_R24s__condition_criterion_t24s__condition_criterion_t_autogen___1(struct __condition_criterion_t *___dst__R24s__condition_criterion_t_1, struct __condition_criterion_t ___src__24s__condition_criterion_t_1);
static inline void ___destructor__F_R24s__condition_criterion_t_autogen___1(struct __condition_criterion_t *___dst__R24s__condition_criterion_t_1);
static inline struct __condition_criterion_t ___operator_assign__F24s__condition_criterion_t_R24s__condition_criterion_t24s__condition_criterion_t_autogen___1(struct __condition_criterion_t *___dst__R24s__condition_criterion_t_1, struct __condition_criterion_t ___src__24s__condition_criterion_t_1);
static inline void ___constructor__F_R24s__condition_criterion_t_autogen___1(struct __condition_criterion_t *___dst__R24s__condition_criterion_t_1){
    ((void)((*___dst__R24s__condition_criterion_t_1).__ready__b_1) /* ?{} */);
    ((void)((*___dst__R24s__condition_criterion_t_1).__target__P13smonitor_desc_1) /* ?{} */);
    ((void)((*___dst__R24s__condition_criterion_t_1).__owner__P19s__condition_node_t_1) /* ?{} */);
    ((void)((*___dst__R24s__condition_criterion_t_1).__next__P24s__condition_criterion_t_1) /* ?{} */);
}
static inline void ___constructor__F_R24s__condition_criterion_t24s__condition_criterion_t_autogen___1(struct __condition_criterion_t *___dst__R24s__condition_criterion_t_1, struct __condition_criterion_t ___src__24s__condition_criterion_t_1){
    ((void)((*___dst__R24s__condition_criterion_t_1).__ready__b_1=___src__24s__condition_criterion_t_1.__ready__b_1) /* ?{} */);
    ((void)((*___dst__R24s__condition_criterion_t_1).__target__P13smonitor_desc_1=___src__24s__condition_criterion_t_1.__target__P13smonitor_desc_1) /* ?{} */);
    ((void)((*___dst__R24s__condition_criterion_t_1).__owner__P19s__condition_node_t_1=___src__24s__condition_criterion_t_1.__owner__P19s__condition_node_t_1) /* ?{} */);
    ((void)((*___dst__R24s__condition_criterion_t_1).__next__P24s__condition_criterion_t_1=___src__24s__condition_criterion_t_1.__next__P24s__condition_criterion_t_1) /* ?{} */);
}
static inline void ___destructor__F_R24s__condition_criterion_t_autogen___1(struct __condition_criterion_t *___dst__R24s__condition_criterion_t_1){
    ((void)((*___dst__R24s__condition_criterion_t_1).__next__P24s__condition_criterion_t_1) /* ^?{} */);
    ((void)((*___dst__R24s__condition_criterion_t_1).__owner__P19s__condition_node_t_1) /* ^?{} */);
    ((void)((*___dst__R24s__condition_criterion_t_1).__target__P13smonitor_desc_1) /* ^?{} */);
    ((void)((*___dst__R24s__condition_criterion_t_1).__ready__b_1) /* ^?{} */);
}
static inline struct __condition_criterion_t ___operator_assign__F24s__condition_criterion_t_R24s__condition_criterion_t24s__condition_criterion_t_autogen___1(struct __condition_criterion_t *___dst__R24s__condition_criterion_t_1, struct __condition_criterion_t ___src__24s__condition_criterion_t_1){
    struct __condition_criterion_t ___ret__24s__condition_criterion_t_1;
    ((void)((*___dst__R24s__condition_criterion_t_1).__ready__b_1=___src__24s__condition_criterion_t_1.__ready__b_1));
    ((void)((*___dst__R24s__condition_criterion_t_1).__target__P13smonitor_desc_1=___src__24s__condition_criterion_t_1.__target__P13smonitor_desc_1));
    ((void)((*___dst__R24s__condition_criterion_t_1).__owner__P19s__condition_node_t_1=___src__24s__condition_criterion_t_1.__owner__P19s__condition_node_t_1));
    ((void)((*___dst__R24s__condition_criterion_t_1).__next__P24s__condition_criterion_t_1=___src__24s__condition_criterion_t_1.__next__P24s__condition_criterion_t_1));
    ((void)___constructor__F_R24s__condition_criterion_t24s__condition_criterion_t_autogen___1((&___ret__24s__condition_criterion_t_1), ___src__24s__condition_criterion_t_1));
    return ((struct __condition_criterion_t )___ret__24s__condition_criterion_t_1);
}
static inline void ___constructor__F_R24s__condition_criterion_tb_autogen___1(struct __condition_criterion_t *___dst__R24s__condition_criterion_t_1, _Bool __ready__b_1){
    ((void)((*___dst__R24s__condition_criterion_t_1).__ready__b_1=__ready__b_1) /* ?{} */);
    ((void)((*___dst__R24s__condition_criterion_t_1).__target__P13smonitor_desc_1) /* ?{} */);
    ((void)((*___dst__R24s__condition_criterion_t_1).__owner__P19s__condition_node_t_1) /* ?{} */);
    ((void)((*___dst__R24s__condition_criterion_t_1).__next__P24s__condition_criterion_t_1) /* ?{} */);
}
static inline void ___constructor__F_R24s__condition_criterion_tbP13smonitor_desc_autogen___1(struct __condition_criterion_t *___dst__R24s__condition_criterion_t_1, _Bool __ready__b_1, struct monitor_desc *__target__P13smonitor_desc_1){
    ((void)((*___dst__R24s__condition_criterion_t_1).__ready__b_1=__ready__b_1) /* ?{} */);
    ((void)((*___dst__R24s__condition_criterion_t_1).__target__P13smonitor_desc_1=__target__P13smonitor_desc_1) /* ?{} */);
    ((void)((*___dst__R24s__condition_criterion_t_1).__owner__P19s__condition_node_t_1) /* ?{} */);
    ((void)((*___dst__R24s__condition_criterion_t_1).__next__P24s__condition_criterion_t_1) /* ?{} */);
}
static inline void ___constructor__F_R24s__condition_criterion_tbP13smonitor_descP19s__condition_node_t_autogen___1(struct __condition_criterion_t *___dst__R24s__condition_criterion_t_1, _Bool __ready__b_1, struct monitor_desc *__target__P13smonitor_desc_1, struct __condition_node_t *__owner__P19s__condition_node_t_1){
    ((void)((*___dst__R24s__condition_criterion_t_1).__ready__b_1=__ready__b_1) /* ?{} */);
    ((void)((*___dst__R24s__condition_criterion_t_1).__target__P13smonitor_desc_1=__target__P13smonitor_desc_1) /* ?{} */);
    ((void)((*___dst__R24s__condition_criterion_t_1).__owner__P19s__condition_node_t_1=__owner__P19s__condition_node_t_1) /* ?{} */);
    ((void)((*___dst__R24s__condition_criterion_t_1).__next__P24s__condition_criterion_t_1) /* ?{} */);
}
static inline void ___constructor__F_R24s__condition_criterion_tbP13smonitor_descP19s__condition_node_tP24s__condition_criterion_t_autogen___1(struct __condition_criterion_t *___dst__R24s__condition_criterion_t_1, _Bool __ready__b_1, struct monitor_desc *__target__P13smonitor_desc_1, struct __condition_node_t *__owner__P19s__condition_node_t_1, struct __condition_criterion_t *__next__P24s__condition_criterion_t_1){
    ((void)((*___dst__R24s__condition_criterion_t_1).__ready__b_1=__ready__b_1) /* ?{} */);
    ((void)((*___dst__R24s__condition_criterion_t_1).__target__P13smonitor_desc_1=__target__P13smonitor_desc_1) /* ?{} */);
    ((void)((*___dst__R24s__condition_criterion_t_1).__owner__P19s__condition_node_t_1=__owner__P19s__condition_node_t_1) /* ?{} */);
    ((void)((*___dst__R24s__condition_criterion_t_1).__next__P24s__condition_criterion_t_1=__next__P24s__condition_criterion_t_1) /* ?{} */);
}
struct __condition_node_t {
    struct thread_desc *__waiting_thread__P12sthread_desc_1;
    struct __condition_criterion_t *__criteria__P24s__condition_criterion_t_1;
    unsigned short int __count__Us_1;
    struct __condition_node_t *__next__P19s__condition_node_t_1;
    unsigned long int __user_info__Ul_1;
};
static inline void ___constructor__F_R19s__condition_node_t_autogen___1(struct __condition_node_t *___dst__R19s__condition_node_t_1);
static inline void ___constructor__F_R19s__condition_node_t19s__condition_node_t_autogen___1(struct __condition_node_t *___dst__R19s__condition_node_t_1, struct __condition_node_t ___src__19s__condition_node_t_1);
static inline void ___destructor__F_R19s__condition_node_t_autogen___1(struct __condition_node_t *___dst__R19s__condition_node_t_1);
static inline struct __condition_node_t ___operator_assign__F19s__condition_node_t_R19s__condition_node_t19s__condition_node_t_autogen___1(struct __condition_node_t *___dst__R19s__condition_node_t_1, struct __condition_node_t ___src__19s__condition_node_t_1);
static inline void ___constructor__F_R19s__condition_node_t_autogen___1(struct __condition_node_t *___dst__R19s__condition_node_t_1){
    ((void)((*___dst__R19s__condition_node_t_1).__waiting_thread__P12sthread_desc_1) /* ?{} */);
    ((void)((*___dst__R19s__condition_node_t_1).__criteria__P24s__condition_criterion_t_1) /* ?{} */);
    ((void)((*___dst__R19s__condition_node_t_1).__count__Us_1) /* ?{} */);
    ((void)((*___dst__R19s__condition_node_t_1).__next__P19s__condition_node_t_1) /* ?{} */);
    ((void)((*___dst__R19s__condition_node_t_1).__user_info__Ul_1) /* ?{} */);
}
static inline void ___constructor__F_R19s__condition_node_t19s__condition_node_t_autogen___1(struct __condition_node_t *___dst__R19s__condition_node_t_1, struct __condition_node_t ___src__19s__condition_node_t_1){
    ((void)((*___dst__R19s__condition_node_t_1).__waiting_thread__P12sthread_desc_1=___src__19s__condition_node_t_1.__waiting_thread__P12sthread_desc_1) /* ?{} */);
    ((void)((*___dst__R19s__condition_node_t_1).__criteria__P24s__condition_criterion_t_1=___src__19s__condition_node_t_1.__criteria__P24s__condition_criterion_t_1) /* ?{} */);
    ((void)((*___dst__R19s__condition_node_t_1).__count__Us_1=___src__19s__condition_node_t_1.__count__Us_1) /* ?{} */);
    ((void)((*___dst__R19s__condition_node_t_1).__next__P19s__condition_node_t_1=___src__19s__condition_node_t_1.__next__P19s__condition_node_t_1) /* ?{} */);
    ((void)((*___dst__R19s__condition_node_t_1).__user_info__Ul_1=___src__19s__condition_node_t_1.__user_info__Ul_1) /* ?{} */);
}
static inline void ___destructor__F_R19s__condition_node_t_autogen___1(struct __condition_node_t *___dst__R19s__condition_node_t_1){
    ((void)((*___dst__R19s__condition_node_t_1).__user_info__Ul_1) /* ^?{} */);
    ((void)((*___dst__R19s__condition_node_t_1).__next__P19s__condition_node_t_1) /* ^?{} */);
    ((void)((*___dst__R19s__condition_node_t_1).__count__Us_1) /* ^?{} */);
    ((void)((*___dst__R19s__condition_node_t_1).__criteria__P24s__condition_criterion_t_1) /* ^?{} */);
    ((void)((*___dst__R19s__condition_node_t_1).__waiting_thread__P12sthread_desc_1) /* ^?{} */);
}
static inline struct __condition_node_t ___operator_assign__F19s__condition_node_t_R19s__condition_node_t19s__condition_node_t_autogen___1(struct __condition_node_t *___dst__R19s__condition_node_t_1, struct __condition_node_t ___src__19s__condition_node_t_1){
    struct __condition_node_t ___ret__19s__condition_node_t_1;
    ((void)((*___dst__R19s__condition_node_t_1).__waiting_thread__P12sthread_desc_1=___src__19s__condition_node_t_1.__waiting_thread__P12sthread_desc_1));
    ((void)((*___dst__R19s__condition_node_t_1).__criteria__P24s__condition_criterion_t_1=___src__19s__condition_node_t_1.__criteria__P24s__condition_criterion_t_1));
    ((void)((*___dst__R19s__condition_node_t_1).__count__Us_1=___src__19s__condition_node_t_1.__count__Us_1));
    ((void)((*___dst__R19s__condition_node_t_1).__next__P19s__condition_node_t_1=___src__19s__condition_node_t_1.__next__P19s__condition_node_t_1));
    ((void)((*___dst__R19s__condition_node_t_1).__user_info__Ul_1=___src__19s__condition_node_t_1.__user_info__Ul_1));
    ((void)___constructor__F_R19s__condition_node_t19s__condition_node_t_autogen___1((&___ret__19s__condition_node_t_1), ___src__19s__condition_node_t_1));
    return ((struct __condition_node_t )___ret__19s__condition_node_t_1);
}
static inline void ___constructor__F_R19s__condition_node_tP12sthread_desc_autogen___1(struct __condition_node_t *___dst__R19s__condition_node_t_1, struct thread_desc *__waiting_thread__P12sthread_desc_1){
    ((void)((*___dst__R19s__condition_node_t_1).__waiting_thread__P12sthread_desc_1=__waiting_thread__P12sthread_desc_1) /* ?{} */);
    ((void)((*___dst__R19s__condition_node_t_1).__criteria__P24s__condition_criterion_t_1) /* ?{} */);
    ((void)((*___dst__R19s__condition_node_t_1).__count__Us_1) /* ?{} */);
    ((void)((*___dst__R19s__condition_node_t_1).__next__P19s__condition_node_t_1) /* ?{} */);
    ((void)((*___dst__R19s__condition_node_t_1).__user_info__Ul_1) /* ?{} */);
}
static inline void ___constructor__F_R19s__condition_node_tP12sthread_descP24s__condition_criterion_t_autogen___1(struct __condition_node_t *___dst__R19s__condition_node_t_1, struct thread_desc *__waiting_thread__P12sthread_desc_1, struct __condition_criterion_t *__criteria__P24s__condition_criterion_t_1){
    ((void)((*___dst__R19s__condition_node_t_1).__waiting_thread__P12sthread_desc_1=__waiting_thread__P12sthread_desc_1) /* ?{} */);
    ((void)((*___dst__R19s__condition_node_t_1).__criteria__P24s__condition_criterion_t_1=__criteria__P24s__condition_criterion_t_1) /* ?{} */);
    ((void)((*___dst__R19s__condition_node_t_1).__count__Us_1) /* ?{} */);
    ((void)((*___dst__R19s__condition_node_t_1).__next__P19s__condition_node_t_1) /* ?{} */);
    ((void)((*___dst__R19s__condition_node_t_1).__user_info__Ul_1) /* ?{} */);
}
static inline void ___constructor__F_R19s__condition_node_tP12sthread_descP24s__condition_criterion_tUs_autogen___1(struct __condition_node_t *___dst__R19s__condition_node_t_1, struct thread_desc *__waiting_thread__P12sthread_desc_1, struct __condition_criterion_t *__criteria__P24s__condition_criterion_t_1, unsigned short int __count__Us_1){
    ((void)((*___dst__R19s__condition_node_t_1).__waiting_thread__P12sthread_desc_1=__waiting_thread__P12sthread_desc_1) /* ?{} */);
    ((void)((*___dst__R19s__condition_node_t_1).__criteria__P24s__condition_criterion_t_1=__criteria__P24s__condition_criterion_t_1) /* ?{} */);
    ((void)((*___dst__R19s__condition_node_t_1).__count__Us_1=__count__Us_1) /* ?{} */);
    ((void)((*___dst__R19s__condition_node_t_1).__next__P19s__condition_node_t_1) /* ?{} */);
    ((void)((*___dst__R19s__condition_node_t_1).__user_info__Ul_1) /* ?{} */);
}
static inline void ___constructor__F_R19s__condition_node_tP12sthread_descP24s__condition_criterion_tUsP19s__condition_node_t_autogen___1(struct __condition_node_t *___dst__R19s__condition_node_t_1, struct thread_desc *__waiting_thread__P12sthread_desc_1, struct __condition_criterion_t *__criteria__P24s__condition_criterion_t_1, unsigned short int __count__Us_1, struct __condition_node_t *__next__P19s__condition_node_t_1){
    ((void)((*___dst__R19s__condition_node_t_1).__waiting_thread__P12sthread_desc_1=__waiting_thread__P12sthread_desc_1) /* ?{} */);
    ((void)((*___dst__R19s__condition_node_t_1).__criteria__P24s__condition_criterion_t_1=__criteria__P24s__condition_criterion_t_1) /* ?{} */);
    ((void)((*___dst__R19s__condition_node_t_1).__count__Us_1=__count__Us_1) /* ?{} */);
    ((void)((*___dst__R19s__condition_node_t_1).__next__P19s__condition_node_t_1=__next__P19s__condition_node_t_1) /* ?{} */);
    ((void)((*___dst__R19s__condition_node_t_1).__user_info__Ul_1) /* ?{} */);
}
static inline void ___constructor__F_R19s__condition_node_tP12sthread_descP24s__condition_criterion_tUsP19s__condition_node_tUl_autogen___1(struct __condition_node_t *___dst__R19s__condition_node_t_1, struct thread_desc *__waiting_thread__P12sthread_desc_1, struct __condition_criterion_t *__criteria__P24s__condition_criterion_t_1, unsigned short int __count__Us_1, struct __condition_node_t *__next__P19s__condition_node_t_1, unsigned long int __user_info__Ul_1){
    ((void)((*___dst__R19s__condition_node_t_1).__waiting_thread__P12sthread_desc_1=__waiting_thread__P12sthread_desc_1) /* ?{} */);
    ((void)((*___dst__R19s__condition_node_t_1).__criteria__P24s__condition_criterion_t_1=__criteria__P24s__condition_criterion_t_1) /* ?{} */);
    ((void)((*___dst__R19s__condition_node_t_1).__count__Us_1=__count__Us_1) /* ?{} */);
    ((void)((*___dst__R19s__condition_node_t_1).__next__P19s__condition_node_t_1=__next__P19s__condition_node_t_1) /* ?{} */);
    ((void)((*___dst__R19s__condition_node_t_1).__user_info__Ul_1=__user_info__Ul_1) /* ?{} */);
}
struct __condition_blocked_queue_t {
    struct __condition_node_t *__head__P19s__condition_node_t_1;
    struct __condition_node_t **__tail__PP19s__condition_node_t_1;
};
static inline void ___constructor__F_R28s__condition_blocked_queue_t_autogen___1(struct __condition_blocked_queue_t *___dst__R28s__condition_blocked_queue_t_1);
static inline void ___constructor__F_R28s__condition_blocked_queue_t28s__condition_blocked_queue_t_autogen___1(struct __condition_blocked_queue_t *___dst__R28s__condition_blocked_queue_t_1, struct __condition_blocked_queue_t ___src__28s__condition_blocked_queue_t_1);
static inline void ___destructor__F_R28s__condition_blocked_queue_t_autogen___1(struct __condition_blocked_queue_t *___dst__R28s__condition_blocked_queue_t_1);
static inline struct __condition_blocked_queue_t ___operator_assign__F28s__condition_blocked_queue_t_R28s__condition_blocked_queue_t28s__condition_blocked_queue_t_autogen___1(struct __condition_blocked_queue_t *___dst__R28s__condition_blocked_queue_t_1, struct __condition_blocked_queue_t ___src__28s__condition_blocked_queue_t_1);
static inline void ___constructor__F_R28s__condition_blocked_queue_t_autogen___1(struct __condition_blocked_queue_t *___dst__R28s__condition_blocked_queue_t_1){
    ((void)((*___dst__R28s__condition_blocked_queue_t_1).__head__P19s__condition_node_t_1) /* ?{} */);
    ((void)((*___dst__R28s__condition_blocked_queue_t_1).__tail__PP19s__condition_node_t_1) /* ?{} */);
}
static inline void ___constructor__F_R28s__condition_blocked_queue_t28s__condition_blocked_queue_t_autogen___1(struct __condition_blocked_queue_t *___dst__R28s__condition_blocked_queue_t_1, struct __condition_blocked_queue_t ___src__28s__condition_blocked_queue_t_1){
    ((void)((*___dst__R28s__condition_blocked_queue_t_1).__head__P19s__condition_node_t_1=___src__28s__condition_blocked_queue_t_1.__head__P19s__condition_node_t_1) /* ?{} */);
    ((void)((*___dst__R28s__condition_blocked_queue_t_1).__tail__PP19s__condition_node_t_1=___src__28s__condition_blocked_queue_t_1.__tail__PP19s__condition_node_t_1) /* ?{} */);
}
static inline void ___destructor__F_R28s__condition_blocked_queue_t_autogen___1(struct __condition_blocked_queue_t *___dst__R28s__condition_blocked_queue_t_1){
    ((void)((*___dst__R28s__condition_blocked_queue_t_1).__tail__PP19s__condition_node_t_1) /* ^?{} */);
    ((void)((*___dst__R28s__condition_blocked_queue_t_1).__head__P19s__condition_node_t_1) /* ^?{} */);
}
static inline struct __condition_blocked_queue_t ___operator_assign__F28s__condition_blocked_queue_t_R28s__condition_blocked_queue_t28s__condition_blocked_queue_t_autogen___1(struct __condition_blocked_queue_t *___dst__R28s__condition_blocked_queue_t_1, struct __condition_blocked_queue_t ___src__28s__condition_blocked_queue_t_1){
    struct __condition_blocked_queue_t ___ret__28s__condition_blocked_queue_t_1;
    ((void)((*___dst__R28s__condition_blocked_queue_t_1).__head__P19s__condition_node_t_1=___src__28s__condition_blocked_queue_t_1.__head__P19s__condition_node_t_1));
    ((void)((*___dst__R28s__condition_blocked_queue_t_1).__tail__PP19s__condition_node_t_1=___src__28s__condition_blocked_queue_t_1.__tail__PP19s__condition_node_t_1));
    ((void)___constructor__F_R28s__condition_blocked_queue_t28s__condition_blocked_queue_t_autogen___1((&___ret__28s__condition_blocked_queue_t_1), ___src__28s__condition_blocked_queue_t_1));
    return ((struct __condition_blocked_queue_t )___ret__28s__condition_blocked_queue_t_1);
}
static inline void ___constructor__F_R28s__condition_blocked_queue_tP19s__condition_node_t_autogen___1(struct __condition_blocked_queue_t *___dst__R28s__condition_blocked_queue_t_1, struct __condition_node_t *__head__P19s__condition_node_t_1){
    ((void)((*___dst__R28s__condition_blocked_queue_t_1).__head__P19s__condition_node_t_1=__head__P19s__condition_node_t_1) /* ?{} */);
    ((void)((*___dst__R28s__condition_blocked_queue_t_1).__tail__PP19s__condition_node_t_1) /* ?{} */);
}
static inline void ___constructor__F_R28s__condition_blocked_queue_tP19s__condition_node_tPP19s__condition_node_t_autogen___1(struct __condition_blocked_queue_t *___dst__R28s__condition_blocked_queue_t_1, struct __condition_node_t *__head__P19s__condition_node_t_1, struct __condition_node_t **__tail__PP19s__condition_node_t_1){
    ((void)((*___dst__R28s__condition_blocked_queue_t_1).__head__P19s__condition_node_t_1=__head__P19s__condition_node_t_1) /* ?{} */);
    ((void)((*___dst__R28s__condition_blocked_queue_t_1).__tail__PP19s__condition_node_t_1=__tail__PP19s__condition_node_t_1) /* ?{} */);
}
void ___constructor__F_R28s__condition_blocked_queue_t__1(struct __condition_blocked_queue_t *__anonymous_object198);
void __append__F_P28s__condition_blocked_queue_tP19s__condition_node_t__1(struct __condition_blocked_queue_t *__anonymous_object199, struct __condition_node_t *__anonymous_object200);
struct __condition_node_t *__pop_head__FP19s__condition_node_t_P28s__condition_blocked_queue_t__1(struct __condition_blocked_queue_t *__anonymous_object201);
struct condition {
    struct __condition_blocked_queue_t __blocked__28s__condition_blocked_queue_t_1;
    struct monitor_desc **__monitors__PP13smonitor_desc_1;
    unsigned short int __monitor_count__Us_1;
};
static inline void ___constructor__F_R10scondition_autogen___1(struct condition *___dst__R10scondition_1);
static inline void ___constructor__F_R10scondition10scondition_autogen___1(struct condition *___dst__R10scondition_1, struct condition ___src__10scondition_1);
static inline void ___destructor__F_R10scondition_autogen___1(struct condition *___dst__R10scondition_1);
static inline struct condition ___operator_assign__F10scondition_R10scondition10scondition_autogen___1(struct condition *___dst__R10scondition_1, struct condition ___src__10scondition_1);
static inline void ___constructor__F_R10scondition_autogen___1(struct condition *___dst__R10scondition_1){
    ((void)___constructor__F_R28s__condition_blocked_queue_t__1((&(*___dst__R10scondition_1).__blocked__28s__condition_blocked_queue_t_1)));
    ((void)((*___dst__R10scondition_1).__monitors__PP13smonitor_desc_1) /* ?{} */);
    ((void)((*___dst__R10scondition_1).__monitor_count__Us_1) /* ?{} */);
}
static inline void ___constructor__F_R10scondition10scondition_autogen___1(struct condition *___dst__R10scondition_1, struct condition ___src__10scondition_1){
    ((void)___constructor__F_R28s__condition_blocked_queue_t28s__condition_blocked_queue_t_autogen___1((&(*___dst__R10scondition_1).__blocked__28s__condition_blocked_queue_t_1), ___src__10scondition_1.__blocked__28s__condition_blocked_queue_t_1));
    ((void)((*___dst__R10scondition_1).__monitors__PP13smonitor_desc_1=___src__10scondition_1.__monitors__PP13smonitor_desc_1) /* ?{} */);
    ((void)((*___dst__R10scondition_1).__monitor_count__Us_1=___src__10scondition_1.__monitor_count__Us_1) /* ?{} */);
}
static inline void ___destructor__F_R10scondition_autogen___1(struct condition *___dst__R10scondition_1){
    ((void)((*___dst__R10scondition_1).__monitor_count__Us_1) /* ^?{} */);
    ((void)((*___dst__R10scondition_1).__monitors__PP13smonitor_desc_1) /* ^?{} */);
    ((void)___destructor__F_R28s__condition_blocked_queue_t_autogen___1((&(*___dst__R10scondition_1).__blocked__28s__condition_blocked_queue_t_1)));
}
static inline struct condition ___operator_assign__F10scondition_R10scondition10scondition_autogen___1(struct condition *___dst__R10scondition_1, struct condition ___src__10scondition_1){
    struct condition ___ret__10scondition_1;
    struct __condition_blocked_queue_t _tmp_cp4;
    struct __condition_blocked_queue_t _tmp_cp_ret29;
    ((void)(((void)(_tmp_cp_ret29=___operator_assign__F28s__condition_blocked_queue_t_R28s__condition_blocked_queue_t28s__condition_blocked_queue_t_autogen___1((&(*___dst__R10scondition_1).__blocked__28s__condition_blocked_queue_t_1), (((void)___constructor__F_R28s__condition_blocked_queue_t28s__condition_blocked_queue_t_autogen___1((&_tmp_cp4), ___src__10scondition_1.__blocked__28s__condition_blocked_queue_t_1)) , _tmp_cp4)))) , _tmp_cp_ret29));
    ((void)___destructor__F_R28s__condition_blocked_queue_t_autogen___1((&_tmp_cp_ret29)));
    ((void)___destructor__F_R28s__condition_blocked_queue_t_autogen___1((&_tmp_cp4)));
    ((void)((*___dst__R10scondition_1).__monitors__PP13smonitor_desc_1=___src__10scondition_1.__monitors__PP13smonitor_desc_1));
    ((void)((*___dst__R10scondition_1).__monitor_count__Us_1=___src__10scondition_1.__monitor_count__Us_1));
    ((void)___constructor__F_R10scondition10scondition_autogen___1((&___ret__10scondition_1), ___src__10scondition_1));
    return ((struct condition )___ret__10scondition_1);
}
static inline void ___constructor__F_R10scondition28s__condition_blocked_queue_t_autogen___1(struct condition *___dst__R10scondition_1, struct __condition_blocked_queue_t __blocked__28s__condition_blocked_queue_t_1){
    ((void)___constructor__F_R28s__condition_blocked_queue_t28s__condition_blocked_queue_t_autogen___1((&(*___dst__R10scondition_1).__blocked__28s__condition_blocked_queue_t_1), __blocked__28s__condition_blocked_queue_t_1));
    ((void)((*___dst__R10scondition_1).__monitors__PP13smonitor_desc_1) /* ?{} */);
    ((void)((*___dst__R10scondition_1).__monitor_count__Us_1) /* ?{} */);
}
static inline void ___constructor__F_R10scondition28s__condition_blocked_queue_tPP13smonitor_desc_autogen___1(struct condition *___dst__R10scondition_1, struct __condition_blocked_queue_t __blocked__28s__condition_blocked_queue_t_1, struct monitor_desc **__monitors__PP13smonitor_desc_1){
    ((void)___constructor__F_R28s__condition_blocked_queue_t28s__condition_blocked_queue_t_autogen___1((&(*___dst__R10scondition_1).__blocked__28s__condition_blocked_queue_t_1), __blocked__28s__condition_blocked_queue_t_1));
    ((void)((*___dst__R10scondition_1).__monitors__PP13smonitor_desc_1=__monitors__PP13smonitor_desc_1) /* ?{} */);
    ((void)((*___dst__R10scondition_1).__monitor_count__Us_1) /* ?{} */);
}
static inline void ___constructor__F_R10scondition28s__condition_blocked_queue_tPP13smonitor_descUs_autogen___1(struct condition *___dst__R10scondition_1, struct __condition_blocked_queue_t __blocked__28s__condition_blocked_queue_t_1, struct monitor_desc **__monitors__PP13smonitor_desc_1, unsigned short int __monitor_count__Us_1){
    ((void)___constructor__F_R28s__condition_blocked_queue_t28s__condition_blocked_queue_t_autogen___1((&(*___dst__R10scondition_1).__blocked__28s__condition_blocked_queue_t_1), __blocked__28s__condition_blocked_queue_t_1));
    ((void)((*___dst__R10scondition_1).__monitors__PP13smonitor_desc_1=__monitors__PP13smonitor_desc_1) /* ?{} */);
    ((void)((*___dst__R10scondition_1).__monitor_count__Us_1=__monitor_count__Us_1) /* ?{} */);
}
static inline void ___constructor__F_R10scondition__1(struct condition *__this__R10scondition_1){
    ((void)___constructor__F_R28s__condition_blocked_queue_t__1((&(*__this__R10scondition_1).__blocked__28s__condition_blocked_queue_t_1)));
    ((void)((*__this__R10scondition_1).__monitors__PP13smonitor_desc_1) /* ?{} */);
    ((void)((*__this__R10scondition_1).__monitor_count__Us_1) /* ?{} */);
    ((void)((*__this__R10scondition_1).__monitors__PP13smonitor_desc_1=((void *)0)));
    ((void)((*__this__R10scondition_1).__monitor_count__Us_1=((unsigned short int )0)));
}
static inline void ___destructor__F_R10scondition__1(struct condition *__this__R10scondition_1){
    ((void)free(((void *)(*__this__R10scondition_1).__monitors__PP13smonitor_desc_1)));
    ((void)((*__this__R10scondition_1).__monitor_count__Us_1) /* ^?{} */);
    ((void)((*__this__R10scondition_1).__monitors__PP13smonitor_desc_1) /* ^?{} */);
    ((void)___destructor__F_R28s__condition_blocked_queue_t_autogen___1((&(*__this__R10scondition_1).__blocked__28s__condition_blocked_queue_t_1)));
}
void __wait__F_P10sconditionUl__1(struct condition *__this__P10scondition_1, unsigned long int __user_info__Ul_1);
_Bool __signal__Fb_P10scondition__1(struct condition *__this__P10scondition_1);
_Bool __signal_block__Fb_P10scondition__1(struct condition *__this__P10scondition_1);
static inline _Bool __is_empty__Fb_P10scondition__1(struct condition *__this__P10scondition_1){
    __attribute__ ((unused)) _Bool ___retval_is_empty__b_1;
    ((void)(___retval_is_empty__b_1=((_Bool )(!(*__this__P10scondition_1).__blocked__28s__condition_blocked_queue_t_1.__head__P19s__condition_node_t_1))) /* ?{} */);
    return ((_Bool )___retval_is_empty__b_1);
}
unsigned long int __front__FUl_P10scondition__1(struct condition *__this__P10scondition_1);
struct __acceptable_t {
    struct __monitor_group_t __anonymous_object202;
    _Bool __is_dtor__b_1;
};
static inline void ___constructor__F_R15s__acceptable_t_autogen___1(struct __acceptable_t *___dst__R15s__acceptable_t_1);
static inline void ___constructor__F_R15s__acceptable_t15s__acceptable_t_autogen___1(struct __acceptable_t *___dst__R15s__acceptable_t_1, struct __acceptable_t ___src__15s__acceptable_t_1);
static inline void ___destructor__F_R15s__acceptable_t_autogen___1(struct __acceptable_t *___dst__R15s__acceptable_t_1);
static inline struct __acceptable_t ___operator_assign__F15s__acceptable_t_R15s__acceptable_t15s__acceptable_t_autogen___1(struct __acceptable_t *___dst__R15s__acceptable_t_1, struct __acceptable_t ___src__15s__acceptable_t_1);
static inline void ___constructor__F_R15s__acceptable_t_autogen___1(struct __acceptable_t *___dst__R15s__acceptable_t_1){
    ((void)((*___dst__R15s__acceptable_t_1).__is_dtor__b_1) /* ?{} */);
}
static inline void ___constructor__F_R15s__acceptable_t15s__acceptable_t_autogen___1(struct __acceptable_t *___dst__R15s__acceptable_t_1, struct __acceptable_t ___src__15s__acceptable_t_1){
    ((void)((*___dst__R15s__acceptable_t_1).__is_dtor__b_1=___src__15s__acceptable_t_1.__is_dtor__b_1) /* ?{} */);
}
static inline void ___destructor__F_R15s__acceptable_t_autogen___1(struct __acceptable_t *___dst__R15s__acceptable_t_1){
    ((void)((*___dst__R15s__acceptable_t_1).__is_dtor__b_1) /* ^?{} */);
}
static inline struct __acceptable_t ___operator_assign__F15s__acceptable_t_R15s__acceptable_t15s__acceptable_t_autogen___1(struct __acceptable_t *___dst__R15s__acceptable_t_1, struct __acceptable_t ___src__15s__acceptable_t_1){
    struct __acceptable_t ___ret__15s__acceptable_t_1;
    ((void)((*___dst__R15s__acceptable_t_1).__is_dtor__b_1=___src__15s__acceptable_t_1.__is_dtor__b_1));
    ((void)___constructor__F_R15s__acceptable_t15s__acceptable_t_autogen___1((&___ret__15s__acceptable_t_1), ___src__15s__acceptable_t_1));
    return ((struct __acceptable_t )___ret__15s__acceptable_t_1);
}
static inline void ___constructor__F_R15s__acceptable_tb_autogen___1(struct __acceptable_t *___dst__R15s__acceptable_t_1, _Bool __is_dtor__b_1){
    ((void)((*___dst__R15s__acceptable_t_1).__is_dtor__b_1=__is_dtor__b_1) /* ?{} */);
}
void ____waitfor_internal__F_RC17s__waitfor_mask_ti__1(const struct __waitfor_mask_t *__mask__RC17s__waitfor_mask_t_1, signed int __duration__i_1);
struct M;
static inline struct monitor_desc *__get_monitor__FP13smonitor_desc_R2sM__1(struct M *__this__R2sM_1);
struct M {
    struct monitor_desc ____mon__13smonitor_desc_1;
};
static inline void ___constructor__F_R2sM_autogen___1(struct M *___dst__R2sM_1);
static inline void ___constructor__F_R2sM2sM_autogen___1(struct M *___dst__R2sM_1, struct M ___src__2sM_1);
static inline void ___destructor__F_MR2sM_autogen___1(struct M *___dst__MR2sM_1);
static inline struct M ___operator_assign__F2sM_R2sM2sM_autogen___1(struct M *___dst__R2sM_1, struct M ___src__2sM_1);
static inline void ___constructor__F_R2sM_autogen___1(struct M *___dst__R2sM_1){
    ((void)___constructor__F_R13smonitor_desc__1((&(*___dst__R2sM_1).____mon__13smonitor_desc_1)));
}
static inline void ___constructor__F_R2sM2sM_autogen___1(struct M *___dst__R2sM_1, struct M ___src__2sM_1){
    ((void)___constructor__F_R13smonitor_desc13smonitor_desc_autogen___1((&(*___dst__R2sM_1).____mon__13smonitor_desc_1), ___src__2sM_1.____mon__13smonitor_desc_1));
}
static inline void ___destructor__F_MR2sM_autogen___1(struct M *___dst__MR2sM_1){
    struct monitor_desc *_tmp_cp_ret30;
    struct monitor_desc *____monitors__A0P13smonitor_desc_2[((unsigned long int )1)] = { ((struct monitor_desc *)(((void)(_tmp_cp_ret30=__get_monitor__FP13smonitor_desc_R2sM__1(((struct M *)___dst__MR2sM_1)))) , _tmp_cp_ret30)) };
    ((void)(_tmp_cp_ret30) /* ^?{} */);
    struct monitor_guard_t ____guard__16smonitor_guard_t_2;
    ((void)___constructor__F_R16smonitor_guard_tPP13smonitor_desciPF____1((&____guard__16smonitor_guard_t_2), ____monitors__A0P13smonitor_desc_2, ((signed int )1), ((void (*)())((void (*)())___destructor__F_MR2sM_autogen___1))));
    ((void)___destructor__F_R13smonitor_desc_autogen___1((&(*___dst__MR2sM_1).____mon__13smonitor_desc_1)));
    ((void)___destructor__F_R16smonitor_guard_t__1((&____guard__16smonitor_guard_t_2)));
}
static inline struct M ___operator_assign__F2sM_R2sM2sM_autogen___1(struct M *___dst__R2sM_1, struct M ___src__2sM_1){
    struct M ___ret__2sM_1;
    struct monitor_desc _tmp_cp5;
    struct monitor_desc _tmp_cp_ret31;
    ((void)(((void)(_tmp_cp_ret31=___operator_assign__F13smonitor_desc_R13smonitor_desc13smonitor_desc_autogen___1((&(*___dst__R2sM_1).____mon__13smonitor_desc_1), (((void)___constructor__F_R13smonitor_desc13smonitor_desc_autogen___1((&_tmp_cp5), ___src__2sM_1.____mon__13smonitor_desc_1)) , _tmp_cp5)))) , _tmp_cp_ret31));
    ((void)___destructor__F_R13smonitor_desc_autogen___1((&_tmp_cp_ret31)));
    ((void)___destructor__F_R13smonitor_desc_autogen___1((&_tmp_cp5)));
    ((void)___constructor__F_R2sM2sM_autogen___1((&___ret__2sM_1), ___src__2sM_1));
    return ((struct M )___ret__2sM_1);
}
static inline void ___constructor__F_R2sM13smonitor_desc_autogen___1(struct M *___dst__R2sM_1, struct monitor_desc ____mon__13smonitor_desc_1){
    ((void)___constructor__F_R13smonitor_desc13smonitor_desc_autogen___1((&(*___dst__R2sM_1).____mon__13smonitor_desc_1), ____mon__13smonitor_desc_1));
}
static inline struct monitor_desc *__get_monitor__FP13smonitor_desc_R2sM__1(struct M *__this__R2sM_1){
    struct monitor_desc *__ret__P13smonitor_desc_1;
    ((void)(__ret__P13smonitor_desc_1=(&(*__this__R2sM_1).____mon__13smonitor_desc_1)) /* ?{} */);
    return ((struct monitor_desc *)__ret__P13smonitor_desc_1);
}
struct M __a__2sM_1;
void __f1__F_MR2sM__1(struct M *__a__MR2sM_1);
void __f2__F_MR2sM__1(struct M *__a__MR2sM_1);
void __f2__F_MR2sMMR2sM__1(struct M *__a__MR2sM_1, struct M *__b__MR2sM_1);
void __f3__F_MR2sM__1(struct M *__a__MR2sM_1);
void __f3__F_MR2sMMR2sM__1(struct M *__a__MR2sM_1, struct M *__b__MR2sM_1);
void __f3__F_MR2sMMR2sMMR2sM__1(struct M *__a__MR2sM_1, struct M *__b__MR2sM_1, struct M *__c__MR2sM_1);
void __foo__F___1(){
    {
        struct __acceptable_t __acceptables_0[1];
        ((void)__builtin_memset(((void *)__acceptables_0), 0, sizeof(__acceptables_0)));
        _Bool __do_run_0 = 0;
        struct monitor_desc *__monitors_0[1] = { ((struct monitor_desc *)__get_monitor__FP13smonitor_desc_R2sM__1((&__a__2sM_1))) };
        if ( 1 ) {
            ((void)(__acceptables_0[((signed long int )0)].__is_dtor__b_1=0));
            ((void)(__acceptables_0[((signed long int )0)].__anonymous_object202.func=((void (*)())__f1__F_MR2sM__1)));
            ((void)(__acceptables_0[((signed long int )0)].__anonymous_object202.list=__monitors_0));
            ((void)(__acceptables_0[((signed long int )0)].__anonymous_object202.size=((signed short int )1)));
            ((void)(__do_run_0=((_Bool )1)));
        }

        unsigned long long int __timeout_0 = -1;
        if ( __do_run_0 ) {
            signed short int __index_0 = -1;
            struct __waitfor_mask_t __mask_0 = { (&__index_0), __acceptables_0, 1 };
            ((void)____waitfor_internal__F_RC17s__waitfor_mask_ti__1((&__mask_0), __timeout_0));
            switch ( __index_0 ) {
                case 0:
                    {
                        ((void)1);
                    }
                    break;
            }

        }

    }

    {
        struct __acceptable_t __acceptables_1[1];
        ((void)__builtin_memset(((void *)__acceptables_1), 0, sizeof(__acceptables_1)));
        _Bool __do_run_1 = 0;
        struct monitor_desc *__monitors_1[1] = { ((struct monitor_desc *)__get_monitor__FP13smonitor_desc_R2sM__1((&__a__2sM_1))) };
        if ( 1 ) {
            ((void)(__acceptables_1[((signed long int )0)].__is_dtor__b_1=0));
            ((void)(__acceptables_1[((signed long int )0)].__anonymous_object202.func=((void (*)())__f1__F_MR2sM__1)));
            ((void)(__acceptables_1[((signed long int )0)].__anonymous_object202.list=__monitors_1));
            ((void)(__acceptables_1[((signed long int )0)].__anonymous_object202.size=((signed short int )1)));
            ((void)(__do_run_1=((_Bool )1)));
        }

        unsigned long long int __timeout_1 = -1;
        if ( __do_run_1 ) {
            signed short int __index_1 = -1;
            struct __waitfor_mask_t __mask_1 = { (&__index_1), __acceptables_1, 1 };
            ((void)____waitfor_internal__F_RC17s__waitfor_mask_ti__1((&__mask_1), __timeout_1));
            switch ( __index_1 ) {
                case 0:
                    {
                        ((void)2);
                    }
                    break;
            }

        }

    }

    {
        struct __acceptable_t __acceptables_2[1];
        ((void)__builtin_memset(((void *)__acceptables_2), 0, sizeof(__acceptables_2)));
        _Bool __do_run_2 = 0;
        struct monitor_desc *__monitors_2[1] = { ((struct monitor_desc *)__get_monitor__FP13smonitor_desc_R2sM__1((&__a__2sM_1))) };
        if ( 1 ) {
            ((void)(__acceptables_2[((signed long int )0)].__is_dtor__b_1=0));
            ((void)(__acceptables_2[((signed long int )0)].__anonymous_object202.func=((void (*)())__f2__F_MR2sM__1)));
            ((void)(__acceptables_2[((signed long int )0)].__anonymous_object202.list=__monitors_2));
            ((void)(__acceptables_2[((signed long int )0)].__anonymous_object202.size=((signed short int )1)));
            ((void)(__do_run_2=((_Bool )1)));
        }

        unsigned long long int __timeout_2 = -1;
        if ( __do_run_2 ) {
            signed short int __index_2 = -1;
            struct __waitfor_mask_t __mask_2 = { (&__index_2), __acceptables_2, 1 };
            ((void)____waitfor_internal__F_RC17s__waitfor_mask_ti__1((&__mask_2), __timeout_2));
            switch ( __index_2 ) {
                case 0:
                    {
                        ((void)3);
                    }
                    break;
            }

        }

    }

    {
        struct __acceptable_t __acceptables_3[1];
        ((void)__builtin_memset(((void *)__acceptables_3), 0, sizeof(__acceptables_3)));
        _Bool __do_run_3 = 0;
        struct monitor_desc *__monitors_3[2] = { ((struct monitor_desc *)__get_monitor__FP13smonitor_desc_R2sM__1((&__a__2sM_1))), ((struct monitor_desc *)__get_monitor__FP13smonitor_desc_R2sM__1((&__a__2sM_1))) };
        if ( ((signed int )((((signed int )1)<3)!=((signed int )0))) ) {
            ((void)(__acceptables_3[((signed long int )0)].__is_dtor__b_1=0));
            ((void)(__acceptables_3[((signed long int )0)].__anonymous_object202.func=((void (*)())__f2__F_MR2sMMR2sM__1)));
            ((void)(__acceptables_3[((signed long int )0)].__anonymous_object202.list=__monitors_3));
            ((void)(__acceptables_3[((signed long int )0)].__anonymous_object202.size=((signed short int )2)));
            ((void)(__do_run_3=((_Bool )1)));
        }

        unsigned long long int __timeout_3 = -1;
        if ( 1 ) {
            ((void)(__timeout_3=((unsigned long long int )100)));
            ((void)(__do_run_3=((_Bool )1)));
        }

        if ( __do_run_3 ) {
            signed short int __index_3 = -1;
            struct __waitfor_mask_t __mask_3 = { (&__index_3), __acceptables_3, 1 };
            ((void)____waitfor_internal__F_RC17s__waitfor_mask_ti__1((&__mask_3), __timeout_3));
            switch ( __index_3 ) {
                case 0:
                    {
                        ((void)4);
                    }
                    break;
                case -2:
                    {
                        ((void)5);
                    }
                    break;
            }

        }

    }

    {
        struct __acceptable_t __acceptables_4[1];
        ((void)__builtin_memset(((void *)__acceptables_4), 0, sizeof(__acceptables_4)));
        _Bool __do_run_4 = 0;
        struct monitor_desc *__monitors_4[1] = { ((struct monitor_desc *)__get_monitor__FP13smonitor_desc_R2sM__1((&__a__2sM_1))) };
        if ( ((signed int )((2<3)!=((signed int )0))) ) {
            ((void)(__acceptables_4[((signed long int )0)].__is_dtor__b_1=0));
            ((void)(__acceptables_4[((signed long int )0)].__anonymous_object202.func=((void (*)())__f3__F_MR2sM__1)));
            ((void)(__acceptables_4[((signed long int )0)].__anonymous_object202.list=__monitors_4));
            ((void)(__acceptables_4[((signed long int )0)].__anonymous_object202.size=((signed short int )1)));
            ((void)(__do_run_4=((_Bool )1)));
        }

        unsigned long long int __timeout_4 = -1;
        if ( 1 ) {
            ((void)(__timeout_4=0));
            ((void)(__do_run_4=((_Bool )1)));
        }

        if ( __do_run_4 ) {
            signed short int __index_4 = -1;
            struct __waitfor_mask_t __mask_4 = { (&__index_4), __acceptables_4, 1 };
            ((void)____waitfor_internal__F_RC17s__waitfor_mask_ti__1((&__mask_4), __timeout_4));
            switch ( __index_4 ) {
                case 0:
                    {
                        ((void)5);
                    }
                    break;
                case -1:
                    {
                        ((void)6);
                    }
                    break;
            }

        }

    }

    {
        struct __acceptable_t __acceptables_5[1];
        ((void)__builtin_memset(((void *)__acceptables_5), 0, sizeof(__acceptables_5)));
        _Bool __do_run_5 = 0;
        struct monitor_desc *__monitors_5[2] = { ((struct monitor_desc *)__get_monitor__FP13smonitor_desc_R2sM__1((&__a__2sM_1))), ((struct monitor_desc *)__get_monitor__FP13smonitor_desc_R2sM__1((&__a__2sM_1))) };
        if ( ((signed int )((3<3)!=((signed int )0))) ) {
            ((void)(__acceptables_5[((signed long int )0)].__is_dtor__b_1=0));
            ((void)(__acceptables_5[((signed long int )0)].__anonymous_object202.func=((void (*)())__f3__F_MR2sMMR2sM__1)));
            ((void)(__acceptables_5[((signed long int )0)].__anonymous_object202.list=__monitors_5));
            ((void)(__acceptables_5[((signed long int )0)].__anonymous_object202.size=((signed short int )2)));
            ((void)(__do_run_5=((_Bool )1)));
        }

        unsigned long long int __timeout_5 = -1;
        if ( ((signed int )((4<3)!=((signed int )0))) ) {
            ((void)(__timeout_5=((unsigned long long int )101)));
            ((void)(__do_run_5=((_Bool )1)));
        }

        if ( ((signed int )((5<3)!=((signed int )0))) ) {
            ((void)(__timeout_5=0));
            ((void)(__do_run_5=((_Bool )1)));
        }

        if ( __do_run_5 ) {
            signed short int __index_5 = -1;
            struct __waitfor_mask_t __mask_5 = { (&__index_5), __acceptables_5, 1 };
            ((void)____waitfor_internal__F_RC17s__waitfor_mask_ti__1((&__mask_5), __timeout_5));
            switch ( __index_5 ) {
                case 0:
                    {
                        ((void)7);
                    }
                    break;
                case -2:
                    {
                        ((void)8);
                    }
                    break;
                case -1:
                    {
                        ((void)9);
                    }
                    break;
            }

        }

    }

    {
        struct __acceptable_t __acceptables_6[2];
        ((void)__builtin_memset(((void *)__acceptables_6), 0, sizeof(__acceptables_6)));
        _Bool __do_run_6 = 0;
        struct monitor_desc *__monitors_6[3] = { ((struct monitor_desc *)__get_monitor__FP13smonitor_desc_R2sM__1((&__a__2sM_1))), ((struct monitor_desc *)__get_monitor__FP13smonitor_desc_R2sM__1((&__a__2sM_1))), ((struct monitor_desc *)__get_monitor__FP13smonitor_desc_R2sM__1((&__a__2sM_1))) };
        if ( ((signed int )((6<3)!=((signed int )0))) ) {
            ((void)(__acceptables_6[((signed long int )0)].__is_dtor__b_1=0));
            ((void)(__acceptables_6[((signed long int )0)].__anonymous_object202.func=((void (*)())__f3__F_MR2sMMR2sMMR2sM__1)));
            ((void)(__acceptables_6[((signed long int )0)].__anonymous_object202.list=__monitors_6));
            ((void)(__acceptables_6[((signed long int )0)].__anonymous_object202.size=((signed short int )3)));
            ((void)(__do_run_6=((_Bool )1)));
        }

        struct monitor_desc *__monitors_7[1] = { ((struct monitor_desc *)__get_monitor__FP13smonitor_desc_R2sM__1((&__a__2sM_1))) };
        if ( ((signed int )((7<3)!=((signed int )0))) ) {
            ((void)(__acceptables_6[((signed long int )1)].__is_dtor__b_1=0));
            ((void)(__acceptables_6[((signed long int )1)].__anonymous_object202.func=((void (*)())__f1__F_MR2sM__1)));
            ((void)(__acceptables_6[((signed long int )1)].__anonymous_object202.list=__monitors_7));
            ((void)(__acceptables_6[((signed long int )1)].__anonymous_object202.size=((signed short int )1)));
            ((void)(__do_run_6=((_Bool )1)));
        }

        unsigned long long int __timeout_6 = -1;
        if ( 1 ) {
            ((void)(__timeout_6=0));
            ((void)(__do_run_6=((_Bool )1)));
        }

        if ( __do_run_6 ) {
            signed short int __index_6 = -1;
            struct __waitfor_mask_t __mask_6 = { (&__index_6), __acceptables_6, 2 };
            ((void)____waitfor_internal__F_RC17s__waitfor_mask_ti__1((&__mask_6), __timeout_6));
            switch ( __index_6 ) {
                case 0:
                    {
                        ((void)10);
                    }
                    break;
                case 1:
                    {
                        ((void)11);
                    }
                    break;
                case -1:
                    {
                        ((void)12);
                    }
                    break;
            }

        }

    }

    {
        struct __acceptable_t __acceptables_7[2];
        ((void)__builtin_memset(((void *)__acceptables_7), 0, sizeof(__acceptables_7)));
        _Bool __do_run_7 = 0;
        struct monitor_desc *__monitors_8[2] = { ((struct monitor_desc *)__get_monitor__FP13smonitor_desc_R2sM__1((&__a__2sM_1))), ((struct monitor_desc *)__get_monitor__FP13smonitor_desc_R2sM__1((&__a__2sM_1))) };
        if ( ((signed int )((8<3)!=((signed int )0))) ) {
            ((void)(__acceptables_7[((signed long int )0)].__is_dtor__b_1=0));
            ((void)(__acceptables_7[((signed long int )0)].__anonymous_object202.func=((void (*)())__f3__F_MR2sMMR2sM__1)));
            ((void)(__acceptables_7[((signed long int )0)].__anonymous_object202.list=__monitors_8));
            ((void)(__acceptables_7[((signed long int )0)].__anonymous_object202.size=((signed short int )2)));
            ((void)(__do_run_7=((_Bool )1)));
        }

        struct monitor_desc *__monitors_9[1] = { ((struct monitor_desc *)__get_monitor__FP13smonitor_desc_R2sM__1((&__a__2sM_1))) };
        if ( 1 ) {
            ((void)(__acceptables_7[((signed long int )1)].__is_dtor__b_1=0));
            ((void)(__acceptables_7[((signed long int )1)].__anonymous_object202.func=((void (*)())__f1__F_MR2sM__1)));
            ((void)(__acceptables_7[((signed long int )1)].__anonymous_object202.list=__monitors_9));
            ((void)(__acceptables_7[((signed long int )1)].__anonymous_object202.size=((signed short int )1)));
            ((void)(__do_run_7=((_Bool )1)));
        }

        unsigned long long int __timeout_7 = -1;
        if ( ((signed int )((9<3)!=((signed int )0))) ) {
            ((void)(__timeout_7=((unsigned long long int )102)));
            ((void)(__do_run_7=((_Bool )1)));
        }

        if ( __do_run_7 ) {
            signed short int __index_7 = -1;
            struct __waitfor_mask_t __mask_7 = { (&__index_7), __acceptables_7, 2 };
            ((void)____waitfor_internal__F_RC17s__waitfor_mask_ti__1((&__mask_7), __timeout_7));
            switch ( __index_7 ) {
                case 0:
                    {
                        ((void)13);
                    }
                    break;
                case 1:
                    {
                        ((void)14);
                    }
                    break;
                case -2:
                    {
                        ((void)15);
                    }
                    break;
            }

        }

    }

    {
        struct __acceptable_t __acceptables_8[2];
        ((void)__builtin_memset(((void *)__acceptables_8), 0, sizeof(__acceptables_8)));
        _Bool __do_run_8 = 0;
        struct monitor_desc *__monitors_10[1] = { ((struct monitor_desc *)__get_monitor__FP13smonitor_desc_R2sM__1((&__a__2sM_1))) };
        if ( ((signed int )((10<3)!=((signed int )0))) ) {
            ((void)(__acceptables_8[((signed long int )0)].__is_dtor__b_1=0));
            ((void)(__acceptables_8[((signed long int )0)].__anonymous_object202.func=((void (*)())__f1__F_MR2sM__1)));
            ((void)(__acceptables_8[((signed long int )0)].__anonymous_object202.list=__monitors_10));
            ((void)(__acceptables_8[((signed long int )0)].__anonymous_object202.size=((signed short int )1)));
            ((void)(__do_run_8=((_Bool )1)));
        }

        struct monitor_desc *__monitors_11[2] = { ((struct monitor_desc *)__get_monitor__FP13smonitor_desc_R2sM__1((&__a__2sM_1))), ((struct monitor_desc *)__get_monitor__FP13smonitor_desc_R2sM__1((&__a__2sM_1))) };
        if ( 1 ) {
            ((void)(__acceptables_8[((signed long int )1)].__is_dtor__b_1=0));
            ((void)(__acceptables_8[((signed long int )1)].__anonymous_object202.func=((void (*)())__f2__F_MR2sMMR2sM__1)));
            ((void)(__acceptables_8[((signed long int )1)].__anonymous_object202.list=__monitors_11));
            ((void)(__acceptables_8[((signed long int )1)].__anonymous_object202.size=((signed short int )2)));
            ((void)(__do_run_8=((_Bool )1)));
        }

        unsigned long long int __timeout_8 = -1;
        if ( 1 ) {
            ((void)(__timeout_8=((unsigned long long int )103)));
            ((void)(__do_run_8=((_Bool )1)));
        }

        if ( ((signed int )((11<3)!=((signed int )0))) ) {
            ((void)(__timeout_8=0));
            ((void)(__do_run_8=((_Bool )1)));
        }

        if ( __do_run_8 ) {
            signed short int __index_8 = -1;
            struct __waitfor_mask_t __mask_8 = { (&__index_8), __acceptables_8, 2 };
            ((void)____waitfor_internal__F_RC17s__waitfor_mask_ti__1((&__mask_8), __timeout_8));
            switch ( __index_8 ) {
                case 0:
                    {
                        ((void)16);
                    }
                    break;
                case 1:
                    {
                        ((void)17);
                    }
                    break;
                case -2:
                    {
                        ((void)18);
                    }
                    break;
                case -1:
                    {
                        ((void)19);
                    }
                    break;
            }

        }

    }

}
signed int __main__Fi___1(){
    __attribute__ ((unused)) signed int ___retval_main__i_1;
    ((void)(___retval_main__i_1=0) /* ?{} */);
    return ((signed int )___retval_main__i_1);
}
__attribute__ ((constructor)) static void _init_sched_ext_parse(void){
    ((void)___constructor__F_R2sM_autogen___1((&__a__2sM_1)));
}
__attribute__ ((destructor)) static void _destroy_sched_ext_parse(void){
    ((void)___destructor__F_MR2sM_autogen___1((&__a__2sM_1)));
}
static inline int invoke_main(int argc, char* argv[], char* envp[]) { (void)argc; (void)argv; (void)envp; return __main__Fi___1(); }
__attribute__ ((__nothrow__,__leaf__,__malloc__)) extern void *malloc(unsigned long int __size);
__attribute__ ((__nothrow__,__leaf__)) extern void free(void *__ptr);
__attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void abort(void);
__attribute__ ((__nothrow__,__leaf__,__nonnull__(1))) extern signed int atexit(void (*__func)(void));
__attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void exit(signed int __status);
extern signed int printf(const char *__restrict __format, ...);
static inline signed int invoke_main(signed int argc, char **argv, char **envp);
signed int main(signed int __argc__i_1, char **__argv__PPc_1, char **__envp__PPc_1){
    __attribute__ ((unused)) signed int ___retval_main__i_1;
    signed int _tmp_cp_ret0;
    ((void)(___retval_main__i_1=(((void)(_tmp_cp_ret0=invoke_main(__argc__i_1, __argv__PPc_1, __envp__PPc_1))) , _tmp_cp_ret0)) /* ?{} */);
    ((void)(_tmp_cp_ret0) /* ^?{} */);
    return ((signed int )___retval_main__i_1);
}
