Skip to main content

why2025_badge_sys/
lib.rs

1//! Raw bindings to the functions exported by the WHY2025 badge
2//!
3//! ## Example
4//!
5//! ```rust
6//! #![no_std]
7//!
8//! unsafe {
9//!     why2025_badge_sys::printf(b"Hello, world!\n\0".as_ptr());
10//! }
11//! ```
12//!
13//! The bindings are autogenerated from the headers present in the firmware, so they are not exactly idiomatic rust.
14//!
15//! The symbols definitely need more documentation. If you want to add some, please add it to the C code in the firmware repository, it will get picked up when rebuilding lib.rshift
16//! 
17//! ## Interesting symbols
18//!
19//! * [printf]
20//! * [window_create]
21//! * [window_framebuffer_create]
22//! * [window_present]
23
24#![no_std]
25#![allow(nonstandard_style)]
26#![allow(non_camel_case_types)]
27/* automatically generated by rust-bindgen 0.71.1 */
28
29#[derive(PartialEq, Copy, Clone, Hash, Debug, Default)]
30#[repr(C)]
31pub struct __BindgenComplex<T> {
32    pub re: T,
33    pub im: T,
34}
35#[derive(PartialEq, Copy, Clone, Hash, Debug, Default)]
36#[repr(transparent)]
37pub struct __BindgenFloat16(pub u16);
38pub type __uint8_t = ::core::ffi::c_uchar;
39pub type __uint16_t = ::core::ffi::c_ushort;
40pub type __int32_t = ::core::ffi::c_int;
41pub type __uint32_t = ::core::ffi::c_uint;
42pub type __int_least64_t = ::core::ffi::c_longlong;
43pub type __intmax_t = ::core::ffi::c_longlong;
44pub type __uintmax_t = ::core::ffi::c_ulonglong;
45unsafe extern "C" {
46    pub fn cacos(arg1: __BindgenComplex<f64>) -> __BindgenComplex<f64>;
47}
48unsafe extern "C" {
49    pub fn cacosf(arg1: __BindgenComplex<f32>) -> __BindgenComplex<f32>;
50}
51unsafe extern "C" {
52    pub fn casin(arg1: __BindgenComplex<f64>) -> __BindgenComplex<f64>;
53}
54unsafe extern "C" {
55    pub fn casinf(arg1: __BindgenComplex<f32>) -> __BindgenComplex<f32>;
56}
57unsafe extern "C" {
58    pub fn catan(arg1: __BindgenComplex<f64>) -> __BindgenComplex<f64>;
59}
60unsafe extern "C" {
61    pub fn catanf(arg1: __BindgenComplex<f32>) -> __BindgenComplex<f32>;
62}
63unsafe extern "C" {
64    pub fn ccos(arg1: __BindgenComplex<f64>) -> __BindgenComplex<f64>;
65}
66unsafe extern "C" {
67    pub fn ccosf(arg1: __BindgenComplex<f32>) -> __BindgenComplex<f32>;
68}
69unsafe extern "C" {
70    pub fn csin(arg1: __BindgenComplex<f64>) -> __BindgenComplex<f64>;
71}
72unsafe extern "C" {
73    pub fn csinf(arg1: __BindgenComplex<f32>) -> __BindgenComplex<f32>;
74}
75unsafe extern "C" {
76    pub fn ctan(arg1: __BindgenComplex<f64>) -> __BindgenComplex<f64>;
77}
78unsafe extern "C" {
79    pub fn ctanf(arg1: __BindgenComplex<f32>) -> __BindgenComplex<f32>;
80}
81unsafe extern "C" {
82    pub fn cacosh(arg1: __BindgenComplex<f64>) -> __BindgenComplex<f64>;
83}
84unsafe extern "C" {
85    pub fn cacoshf(arg1: __BindgenComplex<f32>) -> __BindgenComplex<f32>;
86}
87unsafe extern "C" {
88    pub fn casinh(arg1: __BindgenComplex<f64>) -> __BindgenComplex<f64>;
89}
90unsafe extern "C" {
91    pub fn casinhf(arg1: __BindgenComplex<f32>) -> __BindgenComplex<f32>;
92}
93unsafe extern "C" {
94    pub fn catanh(arg1: __BindgenComplex<f64>) -> __BindgenComplex<f64>;
95}
96unsafe extern "C" {
97    pub fn catanhf(arg1: __BindgenComplex<f32>) -> __BindgenComplex<f32>;
98}
99unsafe extern "C" {
100    pub fn ccosh(arg1: __BindgenComplex<f64>) -> __BindgenComplex<f64>;
101}
102unsafe extern "C" {
103    pub fn ccoshf(arg1: __BindgenComplex<f32>) -> __BindgenComplex<f32>;
104}
105unsafe extern "C" {
106    pub fn csinh(arg1: __BindgenComplex<f64>) -> __BindgenComplex<f64>;
107}
108unsafe extern "C" {
109    pub fn csinhf(arg1: __BindgenComplex<f32>) -> __BindgenComplex<f32>;
110}
111unsafe extern "C" {
112    pub fn ctanh(arg1: __BindgenComplex<f64>) -> __BindgenComplex<f64>;
113}
114unsafe extern "C" {
115    pub fn ctanhf(arg1: __BindgenComplex<f32>) -> __BindgenComplex<f32>;
116}
117unsafe extern "C" {
118    pub fn cexp(arg1: __BindgenComplex<f64>) -> __BindgenComplex<f64>;
119}
120unsafe extern "C" {
121    pub fn cexpf(arg1: __BindgenComplex<f32>) -> __BindgenComplex<f32>;
122}
123unsafe extern "C" {
124    pub fn clog(arg1: __BindgenComplex<f64>) -> __BindgenComplex<f64>;
125}
126unsafe extern "C" {
127    pub fn clogf(arg1: __BindgenComplex<f32>) -> __BindgenComplex<f32>;
128}
129unsafe extern "C" {
130    pub fn cabs(arg1: __BindgenComplex<f64>) -> f64;
131}
132unsafe extern "C" {
133    pub fn cabsf(arg1: __BindgenComplex<f32>) -> f32;
134}
135unsafe extern "C" {
136    pub fn cpow(arg1: __BindgenComplex<f64>, arg2: __BindgenComplex<f64>) -> __BindgenComplex<f64>;
137}
138unsafe extern "C" {
139    pub fn cpowf(arg1: __BindgenComplex<f32>, arg2: __BindgenComplex<f32>)
140    -> __BindgenComplex<f32>;
141}
142unsafe extern "C" {
143    pub fn csqrt(arg1: __BindgenComplex<f64>) -> __BindgenComplex<f64>;
144}
145unsafe extern "C" {
146    pub fn csqrtf(arg1: __BindgenComplex<f32>) -> __BindgenComplex<f32>;
147}
148unsafe extern "C" {
149    pub fn carg(arg1: __BindgenComplex<f64>) -> f64;
150}
151unsafe extern "C" {
152    pub fn cargf(arg1: __BindgenComplex<f32>) -> f32;
153}
154unsafe extern "C" {
155    pub fn cimag(arg1: __BindgenComplex<f64>) -> f64;
156}
157unsafe extern "C" {
158    pub fn cimagf(arg1: __BindgenComplex<f32>) -> f32;
159}
160unsafe extern "C" {
161    pub fn conj(arg1: __BindgenComplex<f64>) -> __BindgenComplex<f64>;
162}
163unsafe extern "C" {
164    pub fn conjf(arg1: __BindgenComplex<f32>) -> __BindgenComplex<f32>;
165}
166unsafe extern "C" {
167    pub fn cproj(arg1: __BindgenComplex<f64>) -> __BindgenComplex<f64>;
168}
169unsafe extern "C" {
170    pub fn cprojf(arg1: __BindgenComplex<f32>) -> __BindgenComplex<f32>;
171}
172unsafe extern "C" {
173    pub fn creal(arg1: __BindgenComplex<f64>) -> f64;
174}
175unsafe extern "C" {
176    pub fn crealf(arg1: __BindgenComplex<f32>) -> f32;
177}
178unsafe extern "C" {
179    pub fn clog10(arg1: __BindgenComplex<f64>) -> __BindgenComplex<f64>;
180}
181unsafe extern "C" {
182    pub fn clog10f(arg1: __BindgenComplex<f32>) -> __BindgenComplex<f32>;
183}
184unsafe extern "C" {
185    pub fn csqrtl(arg1: __BindgenComplex<f64>) -> __BindgenComplex<f64>;
186}
187unsafe extern "C" {
188    pub fn cabsl(arg1: __BindgenComplex<f64>) -> u128;
189}
190unsafe extern "C" {
191    pub fn cprojl(arg1: __BindgenComplex<f64>) -> __BindgenComplex<f64>;
192}
193unsafe extern "C" {
194    pub fn creall(arg1: __BindgenComplex<f64>) -> u128;
195}
196unsafe extern "C" {
197    pub fn conjl(arg1: __BindgenComplex<f64>) -> __BindgenComplex<f64>;
198}
199unsafe extern "C" {
200    pub fn cimagl(arg1: __BindgenComplex<f64>) -> u128;
201}
202unsafe extern "C" {
203    pub fn cargl(arg1: __BindgenComplex<f64>) -> u128;
204}
205unsafe extern "C" {
206    pub fn casinl(arg1: __BindgenComplex<f64>) -> __BindgenComplex<f64>;
207}
208unsafe extern "C" {
209    pub fn cacosl(arg1: __BindgenComplex<f64>) -> __BindgenComplex<f64>;
210}
211unsafe extern "C" {
212    pub fn catanl(arg1: __BindgenComplex<f64>) -> __BindgenComplex<f64>;
213}
214unsafe extern "C" {
215    pub fn ccosl(arg1: __BindgenComplex<f64>) -> __BindgenComplex<f64>;
216}
217unsafe extern "C" {
218    pub fn csinl(arg1: __BindgenComplex<f64>) -> __BindgenComplex<f64>;
219}
220unsafe extern "C" {
221    pub fn ctanl(arg1: __BindgenComplex<f64>) -> __BindgenComplex<f64>;
222}
223unsafe extern "C" {
224    pub fn cacoshl(arg1: __BindgenComplex<f64>) -> __BindgenComplex<f64>;
225}
226unsafe extern "C" {
227    pub fn casinhl(arg1: __BindgenComplex<f64>) -> __BindgenComplex<f64>;
228}
229unsafe extern "C" {
230    pub fn catanhl(arg1: __BindgenComplex<f64>) -> __BindgenComplex<f64>;
231}
232unsafe extern "C" {
233    pub fn ccoshl(arg1: __BindgenComplex<f64>) -> __BindgenComplex<f64>;
234}
235unsafe extern "C" {
236    pub fn csinhl(arg1: __BindgenComplex<f64>) -> __BindgenComplex<f64>;
237}
238unsafe extern "C" {
239    pub fn ctanhl(arg1: __BindgenComplex<f64>) -> __BindgenComplex<f64>;
240}
241unsafe extern "C" {
242    pub fn cexpl(arg1: __BindgenComplex<f64>) -> __BindgenComplex<f64>;
243}
244unsafe extern "C" {
245    pub fn clogl(arg1: __BindgenComplex<f64>) -> __BindgenComplex<f64>;
246}
247unsafe extern "C" {
248    pub fn cpowl(arg1: __BindgenComplex<f64>, arg2: __BindgenComplex<f64>)
249    -> __BindgenComplex<f64>;
250}
251pub type locale_t = ::core::ffi::c_int;
252unsafe extern "C" {
253    pub fn isalnum(c: ::core::ffi::c_int) -> ::core::ffi::c_int;
254}
255unsafe extern "C" {
256    pub fn isalpha(c: ::core::ffi::c_int) -> ::core::ffi::c_int;
257}
258unsafe extern "C" {
259    pub fn iscntrl(c: ::core::ffi::c_int) -> ::core::ffi::c_int;
260}
261unsafe extern "C" {
262    pub fn isdigit(c: ::core::ffi::c_int) -> ::core::ffi::c_int;
263}
264unsafe extern "C" {
265    pub fn isgraph(c: ::core::ffi::c_int) -> ::core::ffi::c_int;
266}
267unsafe extern "C" {
268    pub fn islower(c: ::core::ffi::c_int) -> ::core::ffi::c_int;
269}
270unsafe extern "C" {
271    pub fn isprint(c: ::core::ffi::c_int) -> ::core::ffi::c_int;
272}
273unsafe extern "C" {
274    pub fn ispunct(c: ::core::ffi::c_int) -> ::core::ffi::c_int;
275}
276unsafe extern "C" {
277    pub fn isspace(c: ::core::ffi::c_int) -> ::core::ffi::c_int;
278}
279unsafe extern "C" {
280    pub fn isupper(c: ::core::ffi::c_int) -> ::core::ffi::c_int;
281}
282unsafe extern "C" {
283    pub fn isxdigit(c: ::core::ffi::c_int) -> ::core::ffi::c_int;
284}
285unsafe extern "C" {
286    pub fn tolower(c: ::core::ffi::c_int) -> ::core::ffi::c_int;
287}
288unsafe extern "C" {
289    pub fn toupper(c: ::core::ffi::c_int) -> ::core::ffi::c_int;
290}
291unsafe extern "C" {
292    pub fn isblank(c: ::core::ffi::c_int) -> ::core::ffi::c_int;
293}
294unsafe extern "C" {
295    pub fn isascii(c: ::core::ffi::c_int) -> ::core::ffi::c_int;
296}
297unsafe extern "C" {
298    pub fn toascii(c: ::core::ffi::c_int) -> ::core::ffi::c_int;
299}
300unsafe extern "C" {
301    pub fn isalnum_l(c: ::core::ffi::c_int, l: locale_t) -> ::core::ffi::c_int;
302}
303unsafe extern "C" {
304    pub fn isalpha_l(c: ::core::ffi::c_int, l: locale_t) -> ::core::ffi::c_int;
305}
306unsafe extern "C" {
307    pub fn isblank_l(c: ::core::ffi::c_int, l: locale_t) -> ::core::ffi::c_int;
308}
309unsafe extern "C" {
310    pub fn iscntrl_l(c: ::core::ffi::c_int, l: locale_t) -> ::core::ffi::c_int;
311}
312unsafe extern "C" {
313    pub fn isdigit_l(c: ::core::ffi::c_int, l: locale_t) -> ::core::ffi::c_int;
314}
315unsafe extern "C" {
316    pub fn isgraph_l(c: ::core::ffi::c_int, l: locale_t) -> ::core::ffi::c_int;
317}
318unsafe extern "C" {
319    pub fn islower_l(c: ::core::ffi::c_int, l: locale_t) -> ::core::ffi::c_int;
320}
321unsafe extern "C" {
322    pub fn isprint_l(c: ::core::ffi::c_int, l: locale_t) -> ::core::ffi::c_int;
323}
324unsafe extern "C" {
325    pub fn ispunct_l(c: ::core::ffi::c_int, l: locale_t) -> ::core::ffi::c_int;
326}
327unsafe extern "C" {
328    pub fn isspace_l(c: ::core::ffi::c_int, l: locale_t) -> ::core::ffi::c_int;
329}
330unsafe extern "C" {
331    pub fn isupper_l(c: ::core::ffi::c_int, l: locale_t) -> ::core::ffi::c_int;
332}
333unsafe extern "C" {
334    pub fn isxdigit_l(c: ::core::ffi::c_int, l: locale_t) -> ::core::ffi::c_int;
335}
336unsafe extern "C" {
337    pub fn tolower_l(c: ::core::ffi::c_int, l: locale_t) -> ::core::ffi::c_int;
338}
339unsafe extern "C" {
340    pub fn toupper_l(c: ::core::ffi::c_int, l: locale_t) -> ::core::ffi::c_int;
341}
342unsafe extern "C" {
343    pub fn isascii_l(c: ::core::ffi::c_int, l: locale_t) -> ::core::ffi::c_int;
344}
345unsafe extern "C" {
346    pub fn toascii_l(c: ::core::ffi::c_int, l: locale_t) -> ::core::ffi::c_int;
347}
348unsafe extern "C" {
349    pub static _ctype_b: [::core::ffi::c_char; 0usize];
350}
351pub type size_t = ::core::ffi::c_uint;
352pub type wchar_t = ::core::ffi::c_int;
353pub type fenv_t = size_t;
354pub type fexcept_t = size_t;
355unsafe extern "C" {
356    pub fn feclearexcept(excepts: ::core::ffi::c_int) -> ::core::ffi::c_int;
357}
358unsafe extern "C" {
359    pub fn fegetexceptflag(
360        flagp: *mut fexcept_t,
361        excepts: ::core::ffi::c_int,
362    ) -> ::core::ffi::c_int;
363}
364unsafe extern "C" {
365    pub fn fesetexceptflag(
366        flagp: *const fexcept_t,
367        excepts: ::core::ffi::c_int,
368    ) -> ::core::ffi::c_int;
369}
370unsafe extern "C" {
371    pub fn feraiseexcept(excepts: ::core::ffi::c_int) -> ::core::ffi::c_int;
372}
373unsafe extern "C" {
374    pub fn fetestexcept(excepts: ::core::ffi::c_int) -> ::core::ffi::c_int;
375}
376unsafe extern "C" {
377    pub fn fegetround() -> ::core::ffi::c_int;
378}
379unsafe extern "C" {
380    pub fn fesetround(rounding_mode: ::core::ffi::c_int) -> ::core::ffi::c_int;
381}
382unsafe extern "C" {
383    pub fn fegetenv(envp: *mut fenv_t) -> ::core::ffi::c_int;
384}
385unsafe extern "C" {
386    pub fn feholdexcept(envp: *mut fenv_t) -> ::core::ffi::c_int;
387}
388unsafe extern "C" {
389    pub fn fesetenv(envp: *const fenv_t) -> ::core::ffi::c_int;
390}
391unsafe extern "C" {
392    pub fn feupdateenv(envp: *const fenv_t) -> ::core::ffi::c_int;
393}
394unsafe extern "C" {
395    pub fn fnmatch(
396        arg1: *const ::core::ffi::c_char,
397        arg2: *const ::core::ffi::c_char,
398        arg3: ::core::ffi::c_int,
399    ) -> ::core::ffi::c_int;
400}
401#[repr(C)]
402#[derive(Debug, Copy, Clone)]
403pub struct option {
404    pub name: *const ::core::ffi::c_char,
405    pub has_arg: ::core::ffi::c_int,
406    pub flag: *mut ::core::ffi::c_int,
407    pub val: ::core::ffi::c_int,
408}
409#[allow(clippy::unnecessary_operation, clippy::identity_op)]
410const _: () = {
411    ["Size of option"][::core::mem::size_of::<option>() - 16usize];
412    ["Alignment of option"][::core::mem::align_of::<option>() - 4usize];
413    ["Offset of field: option::name"][::core::mem::offset_of!(option, name) - 0usize];
414    ["Offset of field: option::has_arg"][::core::mem::offset_of!(option, has_arg) - 4usize];
415    ["Offset of field: option::flag"][::core::mem::offset_of!(option, flag) - 8usize];
416    ["Offset of field: option::val"][::core::mem::offset_of!(option, val) - 12usize];
417};
418unsafe extern "C" {
419    pub fn getopt(
420        __argc: ::core::ffi::c_int,
421        __argv: *const [*mut ::core::ffi::c_char; 0usize],
422        __optstring: *const ::core::ffi::c_char,
423    ) -> ::core::ffi::c_int;
424}
425unsafe extern "C" {
426    pub fn getopt_long(
427        __argc: ::core::ffi::c_int,
428        __argv: *const [*mut ::core::ffi::c_char; 0usize],
429        __shortopts: *const ::core::ffi::c_char,
430        __longopts: *const option,
431        __longind: *mut ::core::ffi::c_int,
432    ) -> ::core::ffi::c_int;
433}
434unsafe extern "C" {
435    pub fn getopt_long_only(
436        __argc: ::core::ffi::c_int,
437        __argv: *const [*mut ::core::ffi::c_char; 0usize],
438        __shortopts: *const ::core::ffi::c_char,
439        __longopts: *const option,
440        __longind: *mut ::core::ffi::c_int,
441    ) -> ::core::ffi::c_int;
442}
443pub type wint_t = ::core::ffi::c_uint;
444pub type __blkcnt_t = ::core::ffi::c_long;
445pub type __blksize_t = ::core::ffi::c_long;
446pub type _off_t = ::core::ffi::c_long;
447pub type __pid_t = ::core::ffi::c_int;
448pub type __dev_t = ::core::ffi::c_short;
449pub type __uid_t = ::core::ffi::c_ushort;
450pub type __gid_t = ::core::ffi::c_ushort;
451pub type __ino_t = ::core::ffi::c_ushort;
452pub type __mode_t = __uint32_t;
453pub type __off_t = _off_t;
454pub type _fpos_t = ::core::ffi::c_long;
455pub type _ssize_t = ::core::ffi::c_int;
456#[repr(C)]
457#[derive(Copy, Clone)]
458pub struct _mbstate_t {
459    pub __count: ::core::ffi::c_int,
460    pub __value: _mbstate_t__bindgen_ty_1,
461}
462#[repr(C)]
463#[derive(Copy, Clone)]
464pub union _mbstate_t__bindgen_ty_1 {
465    pub __wch: wint_t,
466    pub __wchb: [::core::ffi::c_uchar; 4usize],
467    pub __ucs: __uint32_t,
468    pub __ucs2: __uint16_t,
469}
470#[allow(clippy::unnecessary_operation, clippy::identity_op)]
471const _: () = {
472    ["Size of _mbstate_t__bindgen_ty_1"]
473        [::core::mem::size_of::<_mbstate_t__bindgen_ty_1>() - 4usize];
474    ["Alignment of _mbstate_t__bindgen_ty_1"]
475        [::core::mem::align_of::<_mbstate_t__bindgen_ty_1>() - 4usize];
476    ["Offset of field: _mbstate_t__bindgen_ty_1::__wch"]
477        [::core::mem::offset_of!(_mbstate_t__bindgen_ty_1, __wch) - 0usize];
478    ["Offset of field: _mbstate_t__bindgen_ty_1::__wchb"]
479        [::core::mem::offset_of!(_mbstate_t__bindgen_ty_1, __wchb) - 0usize];
480    ["Offset of field: _mbstate_t__bindgen_ty_1::__ucs"]
481        [::core::mem::offset_of!(_mbstate_t__bindgen_ty_1, __ucs) - 0usize];
482    ["Offset of field: _mbstate_t__bindgen_ty_1::__ucs2"]
483        [::core::mem::offset_of!(_mbstate_t__bindgen_ty_1, __ucs2) - 0usize];
484};
485impl ::core::fmt::Debug for _mbstate_t__bindgen_ty_1 {
486    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
487        write!(f, "_mbstate_t__bindgen_ty_1 {{ union }}")
488    }
489}
490#[allow(clippy::unnecessary_operation, clippy::identity_op)]
491const _: () = {
492    ["Size of _mbstate_t"][::core::mem::size_of::<_mbstate_t>() - 8usize];
493    ["Alignment of _mbstate_t"][::core::mem::align_of::<_mbstate_t>() - 4usize];
494    ["Offset of field: _mbstate_t::__count"][::core::mem::offset_of!(_mbstate_t, __count) - 0usize];
495    ["Offset of field: _mbstate_t::__value"][::core::mem::offset_of!(_mbstate_t, __value) - 4usize];
496};
497impl ::core::fmt::Debug for _mbstate_t {
498    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
499        write!(
500            f,
501            "_mbstate_t {{ __count: {:?}, __value: {:?} }}",
502            self.__count, self.__value
503        )
504    }
505}
506#[repr(C)]
507#[derive(Debug, Copy, Clone)]
508pub struct __iconv_t {
509    _unused: [u8; 0],
510}
511pub type _iconv_t = *mut __iconv_t;
512pub type __clockid_t = ::core::ffi::c_ulong;
513pub type __nl_item = __int32_t;
514pub type __nlink_t = ::core::ffi::c_ushort;
515pub type __suseconds_t = ::core::ffi::c_long;
516pub type __useconds_t = ::core::ffi::c_ulong;
517pub type iconv_t = _iconv_t;
518unsafe extern "C" {
519    pub fn iconv_open(
520        arg1: *const ::core::ffi::c_char,
521        arg2: *const ::core::ffi::c_char,
522    ) -> iconv_t;
523}
524unsafe extern "C" {
525    pub fn iconv(
526        arg1: iconv_t,
527        arg2: *mut *mut ::core::ffi::c_char,
528        arg3: *mut size_t,
529        arg4: *mut *mut ::core::ffi::c_char,
530        arg5: *mut size_t,
531    ) -> size_t;
532}
533unsafe extern "C" {
534    pub fn iconv_close(arg1: iconv_t) -> ::core::ffi::c_int;
535}
536pub type fp_rnd = ::core::ffi::c_int;
537unsafe extern "C" {
538    pub fn fpgetround() -> fp_rnd;
539}
540unsafe extern "C" {
541    pub fn fpsetround(arg1: fp_rnd) -> fp_rnd;
542}
543pub type fp_except = ::core::ffi::c_int;
544unsafe extern "C" {
545    pub fn fpgetmask() -> fp_except;
546}
547unsafe extern "C" {
548    pub fn fpsetmask(arg1: fp_except) -> fp_except;
549}
550unsafe extern "C" {
551    pub fn fpgetsticky() -> fp_except;
552}
553unsafe extern "C" {
554    pub fn fpsetsticky(arg1: fp_except) -> fp_except;
555}
556pub type intmax_t = __intmax_t;
557pub type uintmax_t = __uintmax_t;
558#[repr(C)]
559#[derive(Debug, Copy, Clone)]
560pub struct imaxdiv_t {
561    pub quot: intmax_t,
562    pub rem: intmax_t,
563}
564#[allow(clippy::unnecessary_operation, clippy::identity_op)]
565const _: () = {
566    ["Size of imaxdiv_t"][::core::mem::size_of::<imaxdiv_t>() - 16usize];
567    ["Alignment of imaxdiv_t"][::core::mem::align_of::<imaxdiv_t>() - 8usize];
568    ["Offset of field: imaxdiv_t::quot"][::core::mem::offset_of!(imaxdiv_t, quot) - 0usize];
569    ["Offset of field: imaxdiv_t::rem"][::core::mem::offset_of!(imaxdiv_t, rem) - 8usize];
570};
571pub type _wchar_t = ::core::ffi::c_int;
572unsafe extern "C" {
573    pub fn imaxabs(arg1: intmax_t) -> intmax_t;
574}
575unsafe extern "C" {
576    pub fn imaxdiv(__numer: intmax_t, __denomer: intmax_t) -> imaxdiv_t;
577}
578unsafe extern "C" {
579    pub fn strtoimax(
580        arg1: *const ::core::ffi::c_char,
581        arg2: *mut *mut ::core::ffi::c_char,
582        arg3: ::core::ffi::c_int,
583    ) -> intmax_t;
584}
585unsafe extern "C" {
586    pub fn strtoumax(
587        arg1: *const ::core::ffi::c_char,
588        arg2: *mut *mut ::core::ffi::c_char,
589        arg3: ::core::ffi::c_int,
590    ) -> uintmax_t;
591}
592unsafe extern "C" {
593    pub fn wcstoimax(
594        arg1: *const _wchar_t,
595        arg2: *mut *mut _wchar_t,
596        arg3: ::core::ffi::c_int,
597    ) -> intmax_t;
598}
599unsafe extern "C" {
600    pub fn wcstoumax(
601        arg1: *const _wchar_t,
602        arg2: *mut *mut _wchar_t,
603        arg3: ::core::ffi::c_int,
604    ) -> uintmax_t;
605}
606unsafe extern "C" {
607    pub fn strtoimax_l(
608        arg1: *const ::core::ffi::c_char,
609        _restrict: *mut *mut ::core::ffi::c_char,
610        arg2: ::core::ffi::c_int,
611        arg3: locale_t,
612    ) -> intmax_t;
613}
614unsafe extern "C" {
615    pub fn strtoumax_l(
616        arg1: *const ::core::ffi::c_char,
617        _restrict: *mut *mut ::core::ffi::c_char,
618        arg2: ::core::ffi::c_int,
619        arg3: locale_t,
620    ) -> uintmax_t;
621}
622unsafe extern "C" {
623    pub fn wcstoimax_l(
624        arg1: *const _wchar_t,
625        _restrict: *mut *mut _wchar_t,
626        arg2: ::core::ffi::c_int,
627        arg3: locale_t,
628    ) -> intmax_t;
629}
630unsafe extern "C" {
631    pub fn wcstoumax_l(
632        arg1: *const _wchar_t,
633        _restrict: *mut *mut _wchar_t,
634        arg2: ::core::ffi::c_int,
635        arg3: locale_t,
636    ) -> uintmax_t;
637}
638pub type nl_item = __nl_item;
639unsafe extern "C" {
640    pub fn nl_langinfo(arg1: nl_item) -> *mut ::core::ffi::c_char;
641}
642unsafe extern "C" {
643    pub fn nl_langinfo_l(arg1: nl_item, arg2: locale_t) -> *mut ::core::ffi::c_char;
644}
645#[repr(C)]
646#[derive(Debug, Copy, Clone)]
647pub struct lconv {
648    pub decimal_point: *mut ::core::ffi::c_char,
649    pub thousands_sep: *mut ::core::ffi::c_char,
650    pub grouping: *mut ::core::ffi::c_char,
651    pub int_curr_symbol: *mut ::core::ffi::c_char,
652    pub currency_symbol: *mut ::core::ffi::c_char,
653    pub mon_decimal_point: *mut ::core::ffi::c_char,
654    pub mon_thousands_sep: *mut ::core::ffi::c_char,
655    pub mon_grouping: *mut ::core::ffi::c_char,
656    pub positive_sign: *mut ::core::ffi::c_char,
657    pub negative_sign: *mut ::core::ffi::c_char,
658    pub int_frac_digits: ::core::ffi::c_char,
659    pub frac_digits: ::core::ffi::c_char,
660    pub p_cs_precedes: ::core::ffi::c_char,
661    pub p_sep_by_space: ::core::ffi::c_char,
662    pub n_cs_precedes: ::core::ffi::c_char,
663    pub n_sep_by_space: ::core::ffi::c_char,
664    pub p_sign_posn: ::core::ffi::c_char,
665    pub n_sign_posn: ::core::ffi::c_char,
666    pub int_n_cs_precedes: ::core::ffi::c_char,
667    pub int_n_sep_by_space: ::core::ffi::c_char,
668    pub int_n_sign_posn: ::core::ffi::c_char,
669    pub int_p_cs_precedes: ::core::ffi::c_char,
670    pub int_p_sep_by_space: ::core::ffi::c_char,
671    pub int_p_sign_posn: ::core::ffi::c_char,
672}
673#[allow(clippy::unnecessary_operation, clippy::identity_op)]
674const _: () = {
675    ["Size of lconv"][::core::mem::size_of::<lconv>() - 56usize];
676    ["Alignment of lconv"][::core::mem::align_of::<lconv>() - 4usize];
677    ["Offset of field: lconv::decimal_point"]
678        [::core::mem::offset_of!(lconv, decimal_point) - 0usize];
679    ["Offset of field: lconv::thousands_sep"]
680        [::core::mem::offset_of!(lconv, thousands_sep) - 4usize];
681    ["Offset of field: lconv::grouping"][::core::mem::offset_of!(lconv, grouping) - 8usize];
682    ["Offset of field: lconv::int_curr_symbol"]
683        [::core::mem::offset_of!(lconv, int_curr_symbol) - 12usize];
684    ["Offset of field: lconv::currency_symbol"]
685        [::core::mem::offset_of!(lconv, currency_symbol) - 16usize];
686    ["Offset of field: lconv::mon_decimal_point"]
687        [::core::mem::offset_of!(lconv, mon_decimal_point) - 20usize];
688    ["Offset of field: lconv::mon_thousands_sep"]
689        [::core::mem::offset_of!(lconv, mon_thousands_sep) - 24usize];
690    ["Offset of field: lconv::mon_grouping"]
691        [::core::mem::offset_of!(lconv, mon_grouping) - 28usize];
692    ["Offset of field: lconv::positive_sign"]
693        [::core::mem::offset_of!(lconv, positive_sign) - 32usize];
694    ["Offset of field: lconv::negative_sign"]
695        [::core::mem::offset_of!(lconv, negative_sign) - 36usize];
696    ["Offset of field: lconv::int_frac_digits"]
697        [::core::mem::offset_of!(lconv, int_frac_digits) - 40usize];
698    ["Offset of field: lconv::frac_digits"][::core::mem::offset_of!(lconv, frac_digits) - 41usize];
699    ["Offset of field: lconv::p_cs_precedes"]
700        [::core::mem::offset_of!(lconv, p_cs_precedes) - 42usize];
701    ["Offset of field: lconv::p_sep_by_space"]
702        [::core::mem::offset_of!(lconv, p_sep_by_space) - 43usize];
703    ["Offset of field: lconv::n_cs_precedes"]
704        [::core::mem::offset_of!(lconv, n_cs_precedes) - 44usize];
705    ["Offset of field: lconv::n_sep_by_space"]
706        [::core::mem::offset_of!(lconv, n_sep_by_space) - 45usize];
707    ["Offset of field: lconv::p_sign_posn"][::core::mem::offset_of!(lconv, p_sign_posn) - 46usize];
708    ["Offset of field: lconv::n_sign_posn"][::core::mem::offset_of!(lconv, n_sign_posn) - 47usize];
709    ["Offset of field: lconv::int_n_cs_precedes"]
710        [::core::mem::offset_of!(lconv, int_n_cs_precedes) - 48usize];
711    ["Offset of field: lconv::int_n_sep_by_space"]
712        [::core::mem::offset_of!(lconv, int_n_sep_by_space) - 49usize];
713    ["Offset of field: lconv::int_n_sign_posn"]
714        [::core::mem::offset_of!(lconv, int_n_sign_posn) - 50usize];
715    ["Offset of field: lconv::int_p_cs_precedes"]
716        [::core::mem::offset_of!(lconv, int_p_cs_precedes) - 51usize];
717    ["Offset of field: lconv::int_p_sep_by_space"]
718        [::core::mem::offset_of!(lconv, int_p_sep_by_space) - 52usize];
719    ["Offset of field: lconv::int_p_sign_posn"]
720        [::core::mem::offset_of!(lconv, int_p_sign_posn) - 53usize];
721};
722unsafe extern "C" {
723    pub fn localeconv() -> *mut lconv;
724}
725unsafe extern "C" {
726    pub fn uselocale(arg1: locale_t) -> locale_t;
727}
728unsafe extern "C" {
729    pub fn atan(arg1: f64) -> f64;
730}
731unsafe extern "C" {
732    pub fn cos(arg1: f64) -> f64;
733}
734unsafe extern "C" {
735    pub fn sin(arg1: f64) -> f64;
736}
737unsafe extern "C" {
738    pub fn tan(arg1: f64) -> f64;
739}
740unsafe extern "C" {
741    pub fn tanh(arg1: f64) -> f64;
742}
743unsafe extern "C" {
744    pub fn frexp(arg1: f64, arg2: *mut ::core::ffi::c_int) -> f64;
745}
746unsafe extern "C" {
747    pub fn modf(arg1: f64, arg2: *mut f64) -> f64;
748}
749unsafe extern "C" {
750    pub fn ceil(arg1: f64) -> f64;
751}
752unsafe extern "C" {
753    pub fn fabs(arg1: f64) -> f64;
754}
755unsafe extern "C" {
756    pub fn floor(arg1: f64) -> f64;
757}
758unsafe extern "C" {
759    pub fn acos(arg1: f64) -> f64;
760}
761unsafe extern "C" {
762    pub fn asin(arg1: f64) -> f64;
763}
764unsafe extern "C" {
765    pub fn atan2(arg1: f64, arg2: f64) -> f64;
766}
767unsafe extern "C" {
768    pub fn cosh(arg1: f64) -> f64;
769}
770unsafe extern "C" {
771    pub fn sinh(arg1: f64) -> f64;
772}
773unsafe extern "C" {
774    pub fn exp(arg1: f64) -> f64;
775}
776unsafe extern "C" {
777    pub fn ldexp(arg1: f64, arg2: ::core::ffi::c_int) -> f64;
778}
779unsafe extern "C" {
780    pub fn log(arg1: f64) -> f64;
781}
782unsafe extern "C" {
783    pub fn log10(arg1: f64) -> f64;
784}
785unsafe extern "C" {
786    pub fn pow(arg1: f64, arg2: f64) -> f64;
787}
788unsafe extern "C" {
789    pub fn sqrt(arg1: f64) -> f64;
790}
791unsafe extern "C" {
792    pub fn fmod(arg1: f64, arg2: f64) -> f64;
793}
794unsafe extern "C" {
795    pub fn finite(arg1: f64) -> ::core::ffi::c_int;
796}
797unsafe extern "C" {
798    pub fn finitef(arg1: f32) -> ::core::ffi::c_int;
799}
800unsafe extern "C" {
801    pub fn isinf(arg1: f64) -> ::core::ffi::c_int;
802}
803unsafe extern "C" {
804    pub fn isinff(arg1: f32) -> ::core::ffi::c_int;
805}
806unsafe extern "C" {
807    pub fn isnan(arg1: f64) -> ::core::ffi::c_int;
808}
809unsafe extern "C" {
810    pub fn isnanf(arg1: f32) -> ::core::ffi::c_int;
811}
812unsafe extern "C" {
813    pub fn finitel(arg1: u128) -> ::core::ffi::c_int;
814}
815unsafe extern "C" {
816    pub fn infinity() -> f64;
817}
818unsafe extern "C" {
819    pub fn nan(arg1: *const ::core::ffi::c_char) -> f64;
820}
821unsafe extern "C" {
822    pub fn copysign(arg1: f64, arg2: f64) -> f64;
823}
824unsafe extern "C" {
825    pub fn logb(arg1: f64) -> f64;
826}
827unsafe extern "C" {
828    pub fn ilogb(arg1: f64) -> ::core::ffi::c_int;
829}
830unsafe extern "C" {
831    pub fn asinh(arg1: f64) -> f64;
832}
833unsafe extern "C" {
834    pub fn cbrt(arg1: f64) -> f64;
835}
836unsafe extern "C" {
837    pub fn nextafter(arg1: f64, arg2: f64) -> f64;
838}
839unsafe extern "C" {
840    pub fn rint(arg1: f64) -> f64;
841}
842unsafe extern "C" {
843    pub fn scalbn(arg1: f64, arg2: ::core::ffi::c_int) -> f64;
844}
845unsafe extern "C" {
846    pub fn exp2(arg1: f64) -> f64;
847}
848unsafe extern "C" {
849    pub fn scalbln(arg1: f64, arg2: ::core::ffi::c_long) -> f64;
850}
851unsafe extern "C" {
852    pub fn tgamma(arg1: f64) -> f64;
853}
854unsafe extern "C" {
855    pub fn nearbyint(arg1: f64) -> f64;
856}
857unsafe extern "C" {
858    pub fn lrint(arg1: f64) -> ::core::ffi::c_long;
859}
860unsafe extern "C" {
861    pub fn llrint(arg1: f64) -> ::core::ffi::c_longlong;
862}
863unsafe extern "C" {
864    pub fn round(arg1: f64) -> f64;
865}
866unsafe extern "C" {
867    pub fn lround(arg1: f64) -> ::core::ffi::c_long;
868}
869unsafe extern "C" {
870    pub fn llround(arg1: f64) -> ::core::ffi::c_longlong;
871}
872unsafe extern "C" {
873    pub fn trunc(arg1: f64) -> f64;
874}
875unsafe extern "C" {
876    pub fn remquo(arg1: f64, arg2: f64, arg3: *mut ::core::ffi::c_int) -> f64;
877}
878unsafe extern "C" {
879    pub fn fdim(arg1: f64, arg2: f64) -> f64;
880}
881unsafe extern "C" {
882    pub fn fmax(arg1: f64, arg2: f64) -> f64;
883}
884unsafe extern "C" {
885    pub fn fmin(arg1: f64, arg2: f64) -> f64;
886}
887unsafe extern "C" {
888    pub fn fma(arg1: f64, arg2: f64, arg3: f64) -> f64;
889}
890unsafe extern "C" {
891    pub fn log1p(arg1: f64) -> f64;
892}
893unsafe extern "C" {
894    pub fn expm1(arg1: f64) -> f64;
895}
896unsafe extern "C" {
897    pub fn acosh(arg1: f64) -> f64;
898}
899unsafe extern "C" {
900    pub fn atanh(arg1: f64) -> f64;
901}
902unsafe extern "C" {
903    pub fn remainder(arg1: f64, arg2: f64) -> f64;
904}
905unsafe extern "C" {
906    pub fn gamma(arg1: f64) -> f64;
907}
908unsafe extern "C" {
909    pub fn lgamma(arg1: f64) -> f64;
910}
911unsafe extern "C" {
912    pub fn erf(arg1: f64) -> f64;
913}
914unsafe extern "C" {
915    pub fn erfc(arg1: f64) -> f64;
916}
917unsafe extern "C" {
918    pub fn log2(arg1: f64) -> f64;
919}
920unsafe extern "C" {
921    pub fn hypot(arg1: f64, arg2: f64) -> f64;
922}
923unsafe extern "C" {
924    pub fn atanf(arg1: f32) -> f32;
925}
926unsafe extern "C" {
927    pub fn cosf(arg1: f32) -> f32;
928}
929unsafe extern "C" {
930    pub fn sinf(arg1: f32) -> f32;
931}
932unsafe extern "C" {
933    pub fn tanf(arg1: f32) -> f32;
934}
935unsafe extern "C" {
936    pub fn tanhf(arg1: f32) -> f32;
937}
938unsafe extern "C" {
939    pub fn frexpf(arg1: f32, arg2: *mut ::core::ffi::c_int) -> f32;
940}
941unsafe extern "C" {
942    pub fn modff(arg1: f32, arg2: *mut f32) -> f32;
943}
944unsafe extern "C" {
945    pub fn ceilf(arg1: f32) -> f32;
946}
947unsafe extern "C" {
948    pub fn fabsf(arg1: f32) -> f32;
949}
950unsafe extern "C" {
951    pub fn floorf(arg1: f32) -> f32;
952}
953unsafe extern "C" {
954    pub fn acosf(arg1: f32) -> f32;
955}
956unsafe extern "C" {
957    pub fn asinf(arg1: f32) -> f32;
958}
959unsafe extern "C" {
960    pub fn atan2f(arg1: f32, arg2: f32) -> f32;
961}
962unsafe extern "C" {
963    pub fn coshf(arg1: f32) -> f32;
964}
965unsafe extern "C" {
966    pub fn sinhf(arg1: f32) -> f32;
967}
968unsafe extern "C" {
969    pub fn expf(arg1: f32) -> f32;
970}
971unsafe extern "C" {
972    pub fn ldexpf(arg1: f32, arg2: ::core::ffi::c_int) -> f32;
973}
974unsafe extern "C" {
975    pub fn logf(arg1: f32) -> f32;
976}
977unsafe extern "C" {
978    pub fn log10f(arg1: f32) -> f32;
979}
980unsafe extern "C" {
981    pub fn powf(arg1: f32, arg2: f32) -> f32;
982}
983unsafe extern "C" {
984    pub fn sqrtf(arg1: f32) -> f32;
985}
986unsafe extern "C" {
987    pub fn fmodf(arg1: f32, arg2: f32) -> f32;
988}
989unsafe extern "C" {
990    pub fn exp2f(arg1: f32) -> f32;
991}
992unsafe extern "C" {
993    pub fn scalblnf(arg1: f32, arg2: ::core::ffi::c_long) -> f32;
994}
995unsafe extern "C" {
996    pub fn tgammaf(arg1: f32) -> f32;
997}
998unsafe extern "C" {
999    pub fn nearbyintf(arg1: f32) -> f32;
1000}
1001unsafe extern "C" {
1002    pub fn lrintf(arg1: f32) -> ::core::ffi::c_long;
1003}
1004unsafe extern "C" {
1005    pub fn llrintf(arg1: f32) -> ::core::ffi::c_longlong;
1006}
1007unsafe extern "C" {
1008    pub fn roundf(arg1: f32) -> f32;
1009}
1010unsafe extern "C" {
1011    pub fn lroundf(arg1: f32) -> ::core::ffi::c_long;
1012}
1013unsafe extern "C" {
1014    pub fn llroundf(arg1: f32) -> ::core::ffi::c_longlong;
1015}
1016unsafe extern "C" {
1017    pub fn truncf(arg1: f32) -> f32;
1018}
1019unsafe extern "C" {
1020    pub fn remquof(arg1: f32, arg2: f32, arg3: *mut ::core::ffi::c_int) -> f32;
1021}
1022unsafe extern "C" {
1023    pub fn fdimf(arg1: f32, arg2: f32) -> f32;
1024}
1025unsafe extern "C" {
1026    pub fn fmaxf(arg1: f32, arg2: f32) -> f32;
1027}
1028unsafe extern "C" {
1029    pub fn fminf(arg1: f32, arg2: f32) -> f32;
1030}
1031unsafe extern "C" {
1032    pub fn fmaf(arg1: f32, arg2: f32, arg3: f32) -> f32;
1033}
1034unsafe extern "C" {
1035    pub fn infinityf() -> f32;
1036}
1037unsafe extern "C" {
1038    pub fn nanf(arg1: *const ::core::ffi::c_char) -> f32;
1039}
1040unsafe extern "C" {
1041    pub fn copysignf(arg1: f32, arg2: f32) -> f32;
1042}
1043unsafe extern "C" {
1044    pub fn logbf(arg1: f32) -> f32;
1045}
1046unsafe extern "C" {
1047    pub fn ilogbf(arg1: f32) -> ::core::ffi::c_int;
1048}
1049unsafe extern "C" {
1050    pub fn asinhf(arg1: f32) -> f32;
1051}
1052unsafe extern "C" {
1053    pub fn cbrtf(arg1: f32) -> f32;
1054}
1055unsafe extern "C" {
1056    pub fn nextafterf(arg1: f32, arg2: f32) -> f32;
1057}
1058unsafe extern "C" {
1059    pub fn rintf(arg1: f32) -> f32;
1060}
1061unsafe extern "C" {
1062    pub fn scalbnf(arg1: f32, arg2: ::core::ffi::c_int) -> f32;
1063}
1064unsafe extern "C" {
1065    pub fn log1pf(arg1: f32) -> f32;
1066}
1067unsafe extern "C" {
1068    pub fn expm1f(arg1: f32) -> f32;
1069}
1070unsafe extern "C" {
1071    pub fn acoshf(arg1: f32) -> f32;
1072}
1073unsafe extern "C" {
1074    pub fn atanhf(arg1: f32) -> f32;
1075}
1076unsafe extern "C" {
1077    pub fn remainderf(arg1: f32, arg2: f32) -> f32;
1078}
1079unsafe extern "C" {
1080    pub fn gammaf(arg1: f32) -> f32;
1081}
1082unsafe extern "C" {
1083    pub fn lgammaf(arg1: f32) -> f32;
1084}
1085unsafe extern "C" {
1086    pub fn erff(arg1: f32) -> f32;
1087}
1088unsafe extern "C" {
1089    pub fn erfcf(arg1: f32) -> f32;
1090}
1091unsafe extern "C" {
1092    pub fn log2f(arg1: f32) -> f32;
1093}
1094unsafe extern "C" {
1095    pub fn hypotf(arg1: f32, arg2: f32) -> f32;
1096}
1097unsafe extern "C" {
1098    pub fn hypotl(arg1: u128, arg2: u128) -> u128;
1099}
1100unsafe extern "C" {
1101    pub fn sqrtl(arg1: u128) -> u128;
1102}
1103unsafe extern "C" {
1104    pub fn frexpl(arg1: u128, arg2: *mut ::core::ffi::c_int) -> u128;
1105}
1106unsafe extern "C" {
1107    pub fn scalbnl(arg1: u128, arg2: ::core::ffi::c_int) -> u128;
1108}
1109unsafe extern "C" {
1110    pub fn scalblnl(arg1: u128, arg2: ::core::ffi::c_long) -> u128;
1111}
1112unsafe extern "C" {
1113    pub fn rintl(arg1: u128) -> u128;
1114}
1115unsafe extern "C" {
1116    pub fn lrintl(arg1: u128) -> ::core::ffi::c_long;
1117}
1118unsafe extern "C" {
1119    pub fn llrintl(arg1: u128) -> ::core::ffi::c_longlong;
1120}
1121unsafe extern "C" {
1122    pub fn ilogbl(arg1: u128) -> ::core::ffi::c_int;
1123}
1124unsafe extern "C" {
1125    pub fn logbl(arg1: u128) -> u128;
1126}
1127unsafe extern "C" {
1128    pub fn ldexpl(arg1: u128, arg2: ::core::ffi::c_int) -> u128;
1129}
1130unsafe extern "C" {
1131    pub fn nearbyintl(arg1: u128) -> u128;
1132}
1133unsafe extern "C" {
1134    pub fn ceill(arg1: u128) -> u128;
1135}
1136unsafe extern "C" {
1137    pub fn fmaxl(arg1: u128, arg2: u128) -> u128;
1138}
1139unsafe extern "C" {
1140    pub fn fminl(arg1: u128, arg2: u128) -> u128;
1141}
1142unsafe extern "C" {
1143    pub fn roundl(arg1: u128) -> u128;
1144}
1145unsafe extern "C" {
1146    pub fn lroundl(arg1: u128) -> ::core::ffi::c_long;
1147}
1148unsafe extern "C" {
1149    pub fn llroundl(arg1: u128) -> ::core::ffi::c_longlong;
1150}
1151unsafe extern "C" {
1152    pub fn truncl(arg1: u128) -> u128;
1153}
1154unsafe extern "C" {
1155    pub fn floorl(arg1: u128) -> u128;
1156}
1157unsafe extern "C" {
1158    pub fn fabsl(arg1: u128) -> u128;
1159}
1160unsafe extern "C" {
1161    pub fn copysignl(arg1: u128, arg2: u128) -> u128;
1162}
1163unsafe extern "C" {
1164    pub fn atanl(arg1: u128) -> u128;
1165}
1166unsafe extern "C" {
1167    pub fn cosl(arg1: u128) -> u128;
1168}
1169unsafe extern "C" {
1170    pub fn sinl(arg1: u128) -> u128;
1171}
1172unsafe extern "C" {
1173    pub fn tanl(arg1: u128) -> u128;
1174}
1175unsafe extern "C" {
1176    pub fn tanhl(arg1: u128) -> u128;
1177}
1178unsafe extern "C" {
1179    pub fn log1pl(arg1: u128) -> u128;
1180}
1181unsafe extern "C" {
1182    pub fn expm1l(arg1: u128) -> u128;
1183}
1184unsafe extern "C" {
1185    pub fn acosl(arg1: u128) -> u128;
1186}
1187unsafe extern "C" {
1188    pub fn asinl(arg1: u128) -> u128;
1189}
1190unsafe extern "C" {
1191    pub fn atan2l(arg1: u128, arg2: u128) -> u128;
1192}
1193unsafe extern "C" {
1194    pub fn coshl(arg1: u128) -> u128;
1195}
1196unsafe extern "C" {
1197    pub fn sinhl(arg1: u128) -> u128;
1198}
1199unsafe extern "C" {
1200    pub fn expl(arg1: u128) -> u128;
1201}
1202unsafe extern "C" {
1203    pub fn logl(arg1: u128) -> u128;
1204}
1205unsafe extern "C" {
1206    pub fn log10l(arg1: u128) -> u128;
1207}
1208unsafe extern "C" {
1209    pub fn powl(arg1: u128, arg2: u128) -> u128;
1210}
1211unsafe extern "C" {
1212    pub fn fmodl(arg1: u128, arg2: u128) -> u128;
1213}
1214unsafe extern "C" {
1215    pub fn asinhl(arg1: u128) -> u128;
1216}
1217unsafe extern "C" {
1218    pub fn cbrtl(arg1: u128) -> u128;
1219}
1220unsafe extern "C" {
1221    pub fn nextafterl(arg1: u128, arg2: u128) -> u128;
1222}
1223unsafe extern "C" {
1224    pub fn nexttowardf(arg1: f32, arg2: u128) -> f32;
1225}
1226unsafe extern "C" {
1227    pub fn nexttoward(arg1: f64, arg2: u128) -> f64;
1228}
1229unsafe extern "C" {
1230    pub fn nexttowardl(arg1: u128, arg2: u128) -> u128;
1231}
1232unsafe extern "C" {
1233    pub fn log2l(arg1: u128) -> u128;
1234}
1235unsafe extern "C" {
1236    pub fn exp2l(arg1: u128) -> u128;
1237}
1238unsafe extern "C" {
1239    pub fn tgammal(arg1: u128) -> u128;
1240}
1241unsafe extern "C" {
1242    pub fn remquol(arg1: u128, arg2: u128, arg3: *mut ::core::ffi::c_int) -> u128;
1243}
1244unsafe extern "C" {
1245    pub fn fdiml(arg1: u128, arg2: u128) -> u128;
1246}
1247unsafe extern "C" {
1248    pub fn fmal(arg1: u128, arg2: u128, arg3: u128) -> u128;
1249}
1250unsafe extern "C" {
1251    pub fn acoshl(arg1: u128) -> u128;
1252}
1253unsafe extern "C" {
1254    pub fn atanhl(arg1: u128) -> u128;
1255}
1256unsafe extern "C" {
1257    pub fn remainderl(arg1: u128, arg2: u128) -> u128;
1258}
1259unsafe extern "C" {
1260    pub fn lgammal(arg1: u128) -> u128;
1261}
1262unsafe extern "C" {
1263    pub fn erfl(arg1: u128) -> u128;
1264}
1265unsafe extern "C" {
1266    pub fn erfcl(arg1: u128) -> u128;
1267}
1268unsafe extern "C" {
1269    pub fn drem(arg1: f64, arg2: f64) -> f64;
1270}
1271unsafe extern "C" {
1272    pub fn dremf(arg1: f32, arg2: f32) -> f32;
1273}
1274unsafe extern "C" {
1275    pub fn lgamma_r(arg1: f64, arg2: *mut ::core::ffi::c_int) -> f64;
1276}
1277unsafe extern "C" {
1278    pub fn lgammaf_r(arg1: f32, arg2: *mut ::core::ffi::c_int) -> f32;
1279}
1280unsafe extern "C" {
1281    pub fn y0(arg1: f64) -> f64;
1282}
1283unsafe extern "C" {
1284    pub fn y1(arg1: f64) -> f64;
1285}
1286unsafe extern "C" {
1287    pub fn yn(arg1: ::core::ffi::c_int, arg2: f64) -> f64;
1288}
1289unsafe extern "C" {
1290    pub fn j0(arg1: f64) -> f64;
1291}
1292unsafe extern "C" {
1293    pub fn j1(arg1: f64) -> f64;
1294}
1295unsafe extern "C" {
1296    pub fn jn(arg1: ::core::ffi::c_int, arg2: f64) -> f64;
1297}
1298unsafe extern "C" {
1299    pub fn y0f(arg1: f32) -> f32;
1300}
1301unsafe extern "C" {
1302    pub fn y1f(arg1: f32) -> f32;
1303}
1304unsafe extern "C" {
1305    pub fn ynf(arg1: ::core::ffi::c_int, arg2: f32) -> f32;
1306}
1307unsafe extern "C" {
1308    pub fn j0f(arg1: f32) -> f32;
1309}
1310unsafe extern "C" {
1311    pub fn j1f(arg1: f32) -> f32;
1312}
1313unsafe extern "C" {
1314    pub fn jnf(arg1: ::core::ffi::c_int, arg2: f32) -> f32;
1315}
1316unsafe extern "C" {
1317    pub fn sincos(arg1: f64, arg2: *mut f64, arg3: *mut f64);
1318}
1319unsafe extern "C" {
1320    pub fn sincosf(arg1: f32, arg2: *mut f32, arg3: *mut f32);
1321}
1322unsafe extern "C" {
1323    pub fn exp10(arg1: f64) -> f64;
1324}
1325unsafe extern "C" {
1326    pub fn pow10(arg1: f64) -> f64;
1327}
1328unsafe extern "C" {
1329    pub fn exp10f(arg1: f32) -> f32;
1330}
1331unsafe extern "C" {
1332    pub fn pow10f(arg1: f32) -> f32;
1333}
1334pub type regoff_t = isize;
1335#[repr(C)]
1336#[derive(Debug, Copy, Clone)]
1337pub struct regex_t {
1338    pub re_magic: ::core::ffi::c_uint,
1339    pub re_nsub: size_t,
1340    pub re_endp: *const ::core::ffi::c_char,
1341    pub re_g: *mut re_guts,
1342}
1343#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1344const _: () = {
1345    ["Size of regex_t"][::core::mem::size_of::<regex_t>() - 16usize];
1346    ["Alignment of regex_t"][::core::mem::align_of::<regex_t>() - 4usize];
1347    ["Offset of field: regex_t::re_magic"][::core::mem::offset_of!(regex_t, re_magic) - 0usize];
1348    ["Offset of field: regex_t::re_nsub"][::core::mem::offset_of!(regex_t, re_nsub) - 4usize];
1349    ["Offset of field: regex_t::re_endp"][::core::mem::offset_of!(regex_t, re_endp) - 8usize];
1350    ["Offset of field: regex_t::re_g"][::core::mem::offset_of!(regex_t, re_g) - 12usize];
1351};
1352#[repr(C)]
1353#[derive(Debug, Copy, Clone)]
1354pub struct regmatch_t {
1355    pub rm_so: regoff_t,
1356    pub rm_eo: regoff_t,
1357}
1358#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1359const _: () = {
1360    ["Size of regmatch_t"][::core::mem::size_of::<regmatch_t>() - 8usize];
1361    ["Alignment of regmatch_t"][::core::mem::align_of::<regmatch_t>() - 4usize];
1362    ["Offset of field: regmatch_t::rm_so"][::core::mem::offset_of!(regmatch_t, rm_so) - 0usize];
1363    ["Offset of field: regmatch_t::rm_eo"][::core::mem::offset_of!(regmatch_t, rm_eo) - 4usize];
1364};
1365unsafe extern "C" {
1366    pub fn regcomp(
1367        arg1: *mut regex_t,
1368        arg2: *const ::core::ffi::c_char,
1369        arg3: ::core::ffi::c_int,
1370    ) -> ::core::ffi::c_int;
1371}
1372unsafe extern "C" {
1373    pub fn regerror(
1374        arg1: ::core::ffi::c_int,
1375        arg2: *const regex_t,
1376        arg3: *mut ::core::ffi::c_char,
1377        arg4: size_t,
1378    ) -> size_t;
1379}
1380unsafe extern "C" {
1381    pub fn regexec(
1382        arg1: *const regex_t,
1383        arg2: *const ::core::ffi::c_char,
1384        arg3: size_t,
1385        arg4: *mut [regmatch_t; 0usize],
1386        arg5: ::core::ffi::c_int,
1387    ) -> ::core::ffi::c_int;
1388}
1389unsafe extern "C" {
1390    pub fn regfree(arg1: *mut regex_t);
1391}
1392pub type in_addr_t = __uint32_t;
1393pub type blkcnt_t = __blkcnt_t;
1394pub type blksize_t = __blksize_t;
1395pub type clock_t = ::core::ffi::c_ulong;
1396pub type time_t = __int_least64_t;
1397pub type ino_t = __ino_t;
1398pub type ssize_t = _ssize_t;
1399pub type off_t = __off_t;
1400pub type dev_t = __dev_t;
1401pub type uid_t = __uid_t;
1402pub type gid_t = __gid_t;
1403pub type pid_t = __pid_t;
1404pub type mode_t = __mode_t;
1405pub type nlink_t = __nlink_t;
1406pub type clockid_t = __clockid_t;
1407pub type useconds_t = __useconds_t;
1408pub type suseconds_t = __suseconds_t;
1409#[repr(u32)]
1410#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1411pub enum VISIT {
1412    preorder = 0,
1413    postorder = 1,
1414    endorder = 2,
1415    leaf = 3,
1416}
1417pub type __compar_fn_t = ::core::option::Option<
1418    unsafe extern "C" fn(
1419        arg1: *const ::core::ffi::c_void,
1420        arg2: *const ::core::ffi::c_void,
1421    ) -> ::core::ffi::c_int,
1422>;
1423unsafe extern "C" {
1424    pub fn tdelete(
1425        arg1: *const ::core::ffi::c_void,
1426        arg2: *mut *mut ::core::ffi::c_void,
1427        arg3: __compar_fn_t,
1428    ) -> *mut ::core::ffi::c_void;
1429}
1430unsafe extern "C" {
1431    pub fn tdestroy(
1432        arg1: *mut ::core::ffi::c_void,
1433        arg2: ::core::option::Option<unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void)>,
1434    );
1435}
1436unsafe extern "C" {
1437    pub fn tfind(
1438        arg1: *const ::core::ffi::c_void,
1439        arg2: *mut *mut ::core::ffi::c_void,
1440        arg3: __compar_fn_t,
1441    ) -> *mut ::core::ffi::c_void;
1442}
1443unsafe extern "C" {
1444    pub fn tsearch(
1445        arg1: *const ::core::ffi::c_void,
1446        arg2: *mut *mut ::core::ffi::c_void,
1447        arg3: __compar_fn_t,
1448    ) -> *mut ::core::ffi::c_void;
1449}
1450unsafe extern "C" {
1451    pub fn twalk(
1452        arg1: *const ::core::ffi::c_void,
1453        arg2: ::core::option::Option<
1454            unsafe extern "C" fn(
1455                arg1: *const ::core::ffi::c_void,
1456                arg2: VISIT,
1457                arg3: ::core::ffi::c_int,
1458            ),
1459        >,
1460    );
1461}
1462unsafe extern "C" {
1463    pub fn longjmp(__jmpb: *mut ::core::ffi::c_longlong, __retval: ::core::ffi::c_int) -> !;
1464}
1465unsafe extern "C" {
1466    pub fn setjmp(__jmpb: *mut ::core::ffi::c_longlong) -> ::core::ffi::c_int;
1467}
1468pub type __gnuc_va_list = __builtin_va_list;
1469pub type __ungetc_t = __uint32_t;
1470#[repr(C)]
1471#[derive(Debug, Copy, Clone)]
1472pub struct __file {
1473    pub unget: __ungetc_t,
1474    pub flags: __uint8_t,
1475    pub put: ::core::option::Option<
1476        unsafe extern "C" fn(arg1: ::core::ffi::c_char, arg2: *mut __file) -> ::core::ffi::c_int,
1477    >,
1478    pub get: ::core::option::Option<unsafe extern "C" fn(arg1: *mut __file) -> ::core::ffi::c_int>,
1479    pub flush:
1480        ::core::option::Option<unsafe extern "C" fn(arg1: *mut __file) -> ::core::ffi::c_int>,
1481}
1482#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1483const _: () = {
1484    ["Size of __file"][::core::mem::size_of::<__file>() - 20usize];
1485    ["Alignment of __file"][::core::mem::align_of::<__file>() - 4usize];
1486    ["Offset of field: __file::unget"][::core::mem::offset_of!(__file, unget) - 0usize];
1487    ["Offset of field: __file::flags"][::core::mem::offset_of!(__file, flags) - 4usize];
1488    ["Offset of field: __file::put"][::core::mem::offset_of!(__file, put) - 8usize];
1489    ["Offset of field: __file::get"][::core::mem::offset_of!(__file, get) - 12usize];
1490    ["Offset of field: __file::flush"][::core::mem::offset_of!(__file, flush) - 16usize];
1491};
1492pub type __FILE = __file;
1493pub type FILE = __FILE;
1494unsafe extern "C" {
1495    pub static stdin: *mut FILE;
1496}
1497unsafe extern "C" {
1498    pub static stdout: *mut FILE;
1499}
1500unsafe extern "C" {
1501    pub static stderr: *mut FILE;
1502}
1503unsafe extern "C" {
1504    pub fn fclose(__stream: *mut FILE) -> ::core::ffi::c_int;
1505}
1506unsafe extern "C" {
1507    pub fn fflush(stream: *mut FILE) -> ::core::ffi::c_int;
1508}
1509unsafe extern "C" {
1510    pub fn fputc(__c: ::core::ffi::c_int, __stream: *mut FILE) -> ::core::ffi::c_int;
1511}
1512unsafe extern "C" {
1513    pub fn putchar(__c: ::core::ffi::c_int) -> ::core::ffi::c_int;
1514}
1515unsafe extern "C" {
1516    pub fn printf(__fmt: *const ::core::ffi::c_char, ...) -> ::core::ffi::c_int;
1517}
1518unsafe extern "C" {
1519    pub fn fprintf(
1520        __stream: *mut FILE,
1521        __fmt: *const ::core::ffi::c_char,
1522        ...
1523    ) -> ::core::ffi::c_int;
1524}
1525unsafe extern "C" {
1526    pub fn vprintf(
1527        __fmt: *const ::core::ffi::c_char,
1528        __ap: __builtin_va_list,
1529    ) -> ::core::ffi::c_int;
1530}
1531unsafe extern "C" {
1532    pub fn vfprintf(
1533        __stream: *mut FILE,
1534        __fmt: *const ::core::ffi::c_char,
1535        __ap: __builtin_va_list,
1536    ) -> ::core::ffi::c_int;
1537}
1538unsafe extern "C" {
1539    pub fn sprintf(
1540        __s: *mut ::core::ffi::c_char,
1541        __fmt: *const ::core::ffi::c_char,
1542        ...
1543    ) -> ::core::ffi::c_int;
1544}
1545unsafe extern "C" {
1546    pub fn snprintf(
1547        __s: *mut ::core::ffi::c_char,
1548        __n: ::core::ffi::c_uint,
1549        __fmt: *const ::core::ffi::c_char,
1550        ...
1551    ) -> ::core::ffi::c_int;
1552}
1553unsafe extern "C" {
1554    pub fn vsprintf(
1555        __s: *mut ::core::ffi::c_char,
1556        __fmt: *const ::core::ffi::c_char,
1557        ap: __builtin_va_list,
1558    ) -> ::core::ffi::c_int;
1559}
1560unsafe extern "C" {
1561    pub fn vsnprintf(
1562        __s: *mut ::core::ffi::c_char,
1563        __n: ::core::ffi::c_uint,
1564        __fmt: *const ::core::ffi::c_char,
1565        ap: __builtin_va_list,
1566    ) -> ::core::ffi::c_int;
1567}
1568unsafe extern "C" {
1569    pub fn asprintf(
1570        strp: *mut *mut ::core::ffi::c_char,
1571        fmt: *const ::core::ffi::c_char,
1572        ...
1573    ) -> ::core::ffi::c_int;
1574}
1575unsafe extern "C" {
1576    pub fn asnprintf(
1577        str_: *mut ::core::ffi::c_char,
1578        lenp: *mut size_t,
1579        fmt: *const ::core::ffi::c_char,
1580        ...
1581    ) -> *mut ::core::ffi::c_char;
1582}
1583unsafe extern "C" {
1584    pub fn vasprintf(
1585        strp: *mut *mut ::core::ffi::c_char,
1586        fmt: *const ::core::ffi::c_char,
1587        ap: __gnuc_va_list,
1588    ) -> ::core::ffi::c_int;
1589}
1590unsafe extern "C" {
1591    pub fn fputs(__str: *const ::core::ffi::c_char, __stream: *mut FILE) -> ::core::ffi::c_int;
1592}
1593unsafe extern "C" {
1594    pub fn puts(__str: *const ::core::ffi::c_char) -> ::core::ffi::c_int;
1595}
1596unsafe extern "C" {
1597    pub fn fwrite(
1598        __ptr: *const ::core::ffi::c_void,
1599        __size: ::core::ffi::c_uint,
1600        __nmemb: ::core::ffi::c_uint,
1601        __stream: *mut FILE,
1602    ) -> ::core::ffi::c_uint;
1603}
1604unsafe extern "C" {
1605    pub fn fgetc(__stream: *mut FILE) -> ::core::ffi::c_int;
1606}
1607unsafe extern "C" {
1608    pub fn getc(__stream: *mut FILE) -> ::core::ffi::c_int;
1609}
1610unsafe extern "C" {
1611    pub fn getchar() -> ::core::ffi::c_int;
1612}
1613unsafe extern "C" {
1614    pub fn ungetc(__c: ::core::ffi::c_int, __stream: *mut FILE) -> ::core::ffi::c_int;
1615}
1616unsafe extern "C" {
1617    pub fn scanf(__fmt: *const ::core::ffi::c_char, ...) -> ::core::ffi::c_int;
1618}
1619unsafe extern "C" {
1620    pub fn fscanf(
1621        __stream: *mut FILE,
1622        __fmt: *const ::core::ffi::c_char,
1623        ...
1624    ) -> ::core::ffi::c_int;
1625}
1626unsafe extern "C" {
1627    pub fn vscanf(__fmt: *const ::core::ffi::c_char, __ap: __builtin_va_list)
1628    -> ::core::ffi::c_int;
1629}
1630unsafe extern "C" {
1631    pub fn vfscanf(
1632        __stream: *mut FILE,
1633        __fmt: *const ::core::ffi::c_char,
1634        __ap: __builtin_va_list,
1635    ) -> ::core::ffi::c_int;
1636}
1637unsafe extern "C" {
1638    pub fn sscanf(
1639        __buf: *const ::core::ffi::c_char,
1640        __fmt: *const ::core::ffi::c_char,
1641        ...
1642    ) -> ::core::ffi::c_int;
1643}
1644unsafe extern "C" {
1645    pub fn vsscanf(
1646        __buf: *const ::core::ffi::c_char,
1647        __fmt: *const ::core::ffi::c_char,
1648        ap: __builtin_va_list,
1649    ) -> ::core::ffi::c_int;
1650}
1651unsafe extern "C" {
1652    pub fn fgets(
1653        __str: *mut ::core::ffi::c_char,
1654        __size: ::core::ffi::c_int,
1655        __stream: *mut FILE,
1656    ) -> *mut ::core::ffi::c_char;
1657}
1658unsafe extern "C" {
1659    pub fn fread(
1660        __ptr: *mut ::core::ffi::c_void,
1661        __size: ::core::ffi::c_uint,
1662        __nmemb: ::core::ffi::c_uint,
1663        __stream: *mut FILE,
1664    ) -> ::core::ffi::c_uint;
1665}
1666unsafe extern "C" {
1667    pub fn clearerr(__stream: *mut FILE);
1668}
1669unsafe extern "C" {
1670    pub fn ferror(__stream: *mut FILE) -> ::core::ffi::c_int;
1671}
1672unsafe extern "C" {
1673    pub fn feof(__stream: *mut FILE) -> ::core::ffi::c_int;
1674}
1675unsafe extern "C" {
1676    pub fn clearerr_unlocked(__stream: *mut FILE);
1677}
1678pub type fpos_t = _fpos_t;
1679unsafe extern "C" {
1680    pub fn fgetpos(stream: *mut FILE, pos: *mut fpos_t) -> ::core::ffi::c_int;
1681}
1682unsafe extern "C" {
1683    pub fn fopen(path: *const ::core::ffi::c_char, mode: *const ::core::ffi::c_char) -> *mut FILE;
1684}
1685unsafe extern "C" {
1686    pub fn freopen(
1687        path: *const ::core::ffi::c_char,
1688        mode: *const ::core::ffi::c_char,
1689        stream: *mut FILE,
1690    ) -> *mut FILE;
1691}
1692unsafe extern "C" {
1693    pub fn fdopen(arg1: ::core::ffi::c_int, arg2: *const ::core::ffi::c_char) -> *mut FILE;
1694}
1695unsafe extern "C" {
1696    pub fn fmemopen(
1697        buf: *mut ::core::ffi::c_void,
1698        size: size_t,
1699        mode: *const ::core::ffi::c_char,
1700    ) -> *mut FILE;
1701}
1702unsafe extern "C" {
1703    pub fn fseek(
1704        stream: *mut FILE,
1705        offset: ::core::ffi::c_long,
1706        whence: ::core::ffi::c_int,
1707    ) -> ::core::ffi::c_int;
1708}
1709unsafe extern "C" {
1710    pub fn fseeko(
1711        stream: *mut FILE,
1712        offset: __off_t,
1713        whence: ::core::ffi::c_int,
1714    ) -> ::core::ffi::c_int;
1715}
1716unsafe extern "C" {
1717    pub fn ftell(stream: *mut FILE) -> ::core::ffi::c_long;
1718}
1719unsafe extern "C" {
1720    pub fn ftello(stream: *mut FILE) -> __off_t;
1721}
1722unsafe extern "C" {
1723    pub fn fileno(arg1: *mut FILE) -> ::core::ffi::c_int;
1724}
1725unsafe extern "C" {
1726    pub fn remove(pathname: *const ::core::ffi::c_char) -> ::core::ffi::c_int;
1727}
1728unsafe extern "C" {
1729    pub fn rename(
1730        oldpath: *const ::core::ffi::c_char,
1731        newpath: *const ::core::ffi::c_char,
1732    ) -> ::core::ffi::c_int;
1733}
1734unsafe extern "C" {
1735    pub fn rewind(stream: *mut FILE);
1736}
1737unsafe extern "C" {
1738    pub fn setbuf(stream: *mut FILE, buf: *mut ::core::ffi::c_char);
1739}
1740unsafe extern "C" {
1741    pub fn setbuffer(stream: *mut FILE, buf: *mut ::core::ffi::c_char, size: size_t);
1742}
1743unsafe extern "C" {
1744    pub fn setlinebuf(stream: *mut FILE);
1745}
1746unsafe extern "C" {
1747    pub fn setvbuf(
1748        stream: *mut FILE,
1749        buf: *mut ::core::ffi::c_char,
1750        mode: ::core::ffi::c_int,
1751        size: size_t,
1752    ) -> ::core::ffi::c_int;
1753}
1754unsafe extern "C" {
1755    pub fn getline(
1756        lineptr: *mut *mut ::core::ffi::c_char,
1757        n: *mut size_t,
1758        stream: *mut FILE,
1759    ) -> _ssize_t;
1760}
1761unsafe extern "C" {
1762    pub fn getdelim(
1763        lineptr: *mut *mut ::core::ffi::c_char,
1764        n: *mut size_t,
1765        delim: ::core::ffi::c_int,
1766        stream: *mut FILE,
1767    ) -> _ssize_t;
1768}
1769unsafe extern "C" {
1770    pub fn funopen(
1771        cookie: *const ::core::ffi::c_void,
1772        readfn: ::core::option::Option<
1773            unsafe extern "C" fn(
1774                cookie: *mut ::core::ffi::c_void,
1775                buf: *mut ::core::ffi::c_void,
1776                n: size_t,
1777            ) -> _ssize_t,
1778        >,
1779        writefn: ::core::option::Option<
1780            unsafe extern "C" fn(
1781                cookie: *mut ::core::ffi::c_void,
1782                buf: *const ::core::ffi::c_void,
1783                n: size_t,
1784            ) -> _ssize_t,
1785        >,
1786        seekfn: ::core::option::Option<
1787            unsafe extern "C" fn(
1788                cookie: *mut ::core::ffi::c_void,
1789                off: __off_t,
1790                whence: ::core::ffi::c_int,
1791            ) -> __off_t,
1792        >,
1793        closefn: ::core::option::Option<
1794            unsafe extern "C" fn(cookie: *mut ::core::ffi::c_void) -> ::core::ffi::c_int,
1795        >,
1796    ) -> *mut FILE;
1797}
1798unsafe extern "C" {
1799    pub fn getchar_unlocked() -> ::core::ffi::c_int;
1800}
1801#[repr(C)]
1802#[derive(Debug, Copy, Clone)]
1803pub struct div_t {
1804    pub quot: ::core::ffi::c_int,
1805    pub rem: ::core::ffi::c_int,
1806}
1807#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1808const _: () = {
1809    ["Size of div_t"][::core::mem::size_of::<div_t>() - 8usize];
1810    ["Alignment of div_t"][::core::mem::align_of::<div_t>() - 4usize];
1811    ["Offset of field: div_t::quot"][::core::mem::offset_of!(div_t, quot) - 0usize];
1812    ["Offset of field: div_t::rem"][::core::mem::offset_of!(div_t, rem) - 4usize];
1813};
1814#[repr(C)]
1815#[derive(Debug, Copy, Clone)]
1816pub struct ldiv_t {
1817    pub quot: ::core::ffi::c_long,
1818    pub rem: ::core::ffi::c_long,
1819}
1820#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1821const _: () = {
1822    ["Size of ldiv_t"][::core::mem::size_of::<ldiv_t>() - 8usize];
1823    ["Alignment of ldiv_t"][::core::mem::align_of::<ldiv_t>() - 4usize];
1824    ["Offset of field: ldiv_t::quot"][::core::mem::offset_of!(ldiv_t, quot) - 0usize];
1825    ["Offset of field: ldiv_t::rem"][::core::mem::offset_of!(ldiv_t, rem) - 4usize];
1826};
1827#[repr(C)]
1828#[derive(Debug, Copy, Clone)]
1829pub struct lldiv_t {
1830    pub quot: ::core::ffi::c_longlong,
1831    pub rem: ::core::ffi::c_longlong,
1832}
1833#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1834const _: () = {
1835    ["Size of lldiv_t"][::core::mem::size_of::<lldiv_t>() - 16usize];
1836    ["Alignment of lldiv_t"][::core::mem::align_of::<lldiv_t>() - 8usize];
1837    ["Offset of field: lldiv_t::quot"][::core::mem::offset_of!(lldiv_t, quot) - 0usize];
1838    ["Offset of field: lldiv_t::rem"][::core::mem::offset_of!(lldiv_t, rem) - 8usize];
1839};
1840unsafe extern "C" {
1841    pub fn free(arg1: *mut ::core::ffi::c_void);
1842}
1843unsafe extern "C" {
1844    pub fn _Exit(__status: ::core::ffi::c_int) -> !;
1845}
1846unsafe extern "C" {
1847    pub fn a64l(__input: *const ::core::ffi::c_char) -> ::core::ffi::c_long;
1848}
1849unsafe extern "C" {
1850    pub fn abort() -> !;
1851}
1852unsafe extern "C" {
1853    pub fn abs(arg1: ::core::ffi::c_int) -> ::core::ffi::c_int;
1854}
1855unsafe extern "C" {
1856    pub fn atexit(__func: ::core::option::Option<unsafe extern "C" fn()>) -> ::core::ffi::c_int;
1857}
1858unsafe extern "C" {
1859    pub fn atof(__nptr: *const ::core::ffi::c_char) -> f64;
1860}
1861unsafe extern "C" {
1862    pub fn atoff(__nptr: *const ::core::ffi::c_char) -> f32;
1863}
1864unsafe extern "C" {
1865    pub fn atoi(__nptr: *const ::core::ffi::c_char) -> ::core::ffi::c_int;
1866}
1867unsafe extern "C" {
1868    pub fn atol(__nptr: *const ::core::ffi::c_char) -> ::core::ffi::c_long;
1869}
1870unsafe extern "C" {
1871    pub fn atoll(__nptr: *const ::core::ffi::c_char) -> ::core::ffi::c_longlong;
1872}
1873unsafe extern "C" {
1874    pub fn bsearch(
1875        __key: *const ::core::ffi::c_void,
1876        __base: *const ::core::ffi::c_void,
1877        __nmemb: size_t,
1878        __size: size_t,
1879        _compar: __compar_fn_t,
1880    ) -> *mut ::core::ffi::c_void;
1881}
1882unsafe extern "C" {
1883    pub fn calloc(arg1: ::core::ffi::c_uint, arg2: ::core::ffi::c_uint)
1884    -> *mut ::core::ffi::c_void;
1885}
1886unsafe extern "C" {
1887    pub fn div(__numer: ::core::ffi::c_int, __denom: ::core::ffi::c_int) -> div_t;
1888}
1889unsafe extern "C" {
1890    pub fn exit(__status: ::core::ffi::c_int) -> !;
1891}
1892unsafe extern "C" {
1893    pub fn getenv(__string: *const ::core::ffi::c_char) -> *mut ::core::ffi::c_char;
1894}
1895unsafe extern "C" {
1896    pub fn getsubopt(
1897        arg1: *mut *mut ::core::ffi::c_char,
1898        arg2: *const *mut ::core::ffi::c_char,
1899        arg3: *mut *mut ::core::ffi::c_char,
1900    ) -> ::core::ffi::c_int;
1901}
1902unsafe extern "C" {
1903    pub fn labs(arg1: ::core::ffi::c_long) -> ::core::ffi::c_long;
1904}
1905unsafe extern "C" {
1906    pub fn ldiv(__numer: ::core::ffi::c_long, __denom: ::core::ffi::c_long) -> ldiv_t;
1907}
1908unsafe extern "C" {
1909    pub fn llabs(arg1: ::core::ffi::c_longlong) -> ::core::ffi::c_longlong;
1910}
1911unsafe extern "C" {
1912    pub fn lldiv(__numer: ::core::ffi::c_longlong, __denom: ::core::ffi::c_longlong) -> lldiv_t;
1913}
1914unsafe extern "C" {
1915    pub fn malloc(arg1: ::core::ffi::c_uint) -> *mut ::core::ffi::c_void;
1916}
1917unsafe extern "C" {
1918    pub fn mblen(arg1: *const ::core::ffi::c_char, arg2: size_t) -> ::core::ffi::c_int;
1919}
1920unsafe extern "C" {
1921    pub fn mbstowcs(arg1: *mut wchar_t, arg2: *const ::core::ffi::c_char, arg3: size_t) -> size_t;
1922}
1923unsafe extern "C" {
1924    pub fn mbtowc(
1925        arg1: *mut wchar_t,
1926        arg2: *const ::core::ffi::c_char,
1927        arg3: size_t,
1928    ) -> ::core::ffi::c_int;
1929}
1930unsafe extern "C" {
1931    pub fn qsort(
1932        __base: *mut ::core::ffi::c_void,
1933        __nmemb: size_t,
1934        __size: size_t,
1935        _compar: __compar_fn_t,
1936    );
1937}
1938unsafe extern "C" {
1939    pub fn qsort_r(
1940        __base: *mut ::core::ffi::c_void,
1941        __nmemb: size_t,
1942        __size: size_t,
1943        _compar: ::core::option::Option<
1944            unsafe extern "C" fn(
1945                arg1: *const ::core::ffi::c_void,
1946                arg2: *const ::core::ffi::c_void,
1947                arg3: *mut ::core::ffi::c_void,
1948            ) -> ::core::ffi::c_int,
1949        >,
1950        __thunk: *mut ::core::ffi::c_void,
1951    );
1952}
1953unsafe extern "C" {
1954    pub fn rand() -> ::core::ffi::c_int;
1955}
1956unsafe extern "C" {
1957    pub fn rand_r(__seed: *mut ::core::ffi::c_uint) -> ::core::ffi::c_int;
1958}
1959unsafe extern "C" {
1960    pub fn random() -> ::core::ffi::c_long;
1961}
1962unsafe extern "C" {
1963    pub fn realloc(
1964        arg1: *mut ::core::ffi::c_void,
1965        arg2: ::core::ffi::c_uint,
1966    ) -> *mut ::core::ffi::c_void;
1967}
1968unsafe extern "C" {
1969    pub fn reallocarray(
1970        arg1: *mut ::core::ffi::c_void,
1971        arg2: size_t,
1972        arg3: size_t,
1973    ) -> *mut ::core::ffi::c_void;
1974}
1975unsafe extern "C" {
1976    pub fn rpmatch(response: *const ::core::ffi::c_char) -> ::core::ffi::c_int;
1977}
1978unsafe extern "C" {
1979    pub fn srand(__seed: ::core::ffi::c_uint);
1980}
1981unsafe extern "C" {
1982    pub fn srandom(arg1: ::core::ffi::c_uint);
1983}
1984unsafe extern "C" {
1985    pub fn strtod(__n: *const ::core::ffi::c_char, __end_PTR: *mut *mut ::core::ffi::c_char)
1986    -> f64;
1987}
1988unsafe extern "C" {
1989    pub fn strtof(__n: *const ::core::ffi::c_char, __end_PTR: *mut *mut ::core::ffi::c_char)
1990    -> f32;
1991}
1992unsafe extern "C" {
1993    pub fn strtold(
1994        __n: *const ::core::ffi::c_char,
1995        __end_PTR: *mut *mut ::core::ffi::c_char,
1996    ) -> u128;
1997}
1998unsafe extern "C" {
1999    pub fn strtol(
2000        __n: *const ::core::ffi::c_char,
2001        __end_PTR: *mut *mut ::core::ffi::c_char,
2002        __base: ::core::ffi::c_int,
2003    ) -> ::core::ffi::c_long;
2004}
2005unsafe extern "C" {
2006    pub fn strtoll(
2007        __n: *const ::core::ffi::c_char,
2008        __end_PTR: *mut *mut ::core::ffi::c_char,
2009        __base: ::core::ffi::c_int,
2010    ) -> ::core::ffi::c_longlong;
2011}
2012unsafe extern "C" {
2013    pub fn strtoul(
2014        __n: *const ::core::ffi::c_char,
2015        __end_PTR: *mut *mut ::core::ffi::c_char,
2016        __base: ::core::ffi::c_int,
2017    ) -> ::core::ffi::c_ulong;
2018}
2019unsafe extern "C" {
2020    pub fn strtoull(
2021        __n: *const ::core::ffi::c_char,
2022        __end_PTR: *mut *mut ::core::ffi::c_char,
2023        __base: ::core::ffi::c_int,
2024    ) -> ::core::ffi::c_ulonglong;
2025}
2026unsafe extern "C" {
2027    pub fn strtod_l(
2028        arg1: *const ::core::ffi::c_char,
2029        arg2: *mut *mut ::core::ffi::c_char,
2030        arg3: locale_t,
2031    ) -> f64;
2032}
2033unsafe extern "C" {
2034    pub fn strtof_l(
2035        arg1: *const ::core::ffi::c_char,
2036        arg2: *mut *mut ::core::ffi::c_char,
2037        arg3: locale_t,
2038    ) -> f32;
2039}
2040unsafe extern "C" {
2041    pub fn strtold_l(
2042        arg1: *const ::core::ffi::c_char,
2043        arg2: *mut *mut ::core::ffi::c_char,
2044        arg3: locale_t,
2045    ) -> u128;
2046}
2047unsafe extern "C" {
2048    pub fn strtol_l(
2049        arg1: *const ::core::ffi::c_char,
2050        arg2: *mut *mut ::core::ffi::c_char,
2051        arg3: ::core::ffi::c_int,
2052        arg4: locale_t,
2053    ) -> ::core::ffi::c_long;
2054}
2055unsafe extern "C" {
2056    pub fn strtoul_l(
2057        arg1: *const ::core::ffi::c_char,
2058        arg2: *mut *mut ::core::ffi::c_char,
2059        arg3: ::core::ffi::c_int,
2060        __loc: locale_t,
2061    ) -> ::core::ffi::c_ulong;
2062}
2063unsafe extern "C" {
2064    pub fn strtoll_l(
2065        arg1: *const ::core::ffi::c_char,
2066        arg2: *mut *mut ::core::ffi::c_char,
2067        arg3: ::core::ffi::c_int,
2068        arg4: locale_t,
2069    ) -> ::core::ffi::c_longlong;
2070}
2071unsafe extern "C" {
2072    pub fn strtoull_l(
2073        arg1: *const ::core::ffi::c_char,
2074        arg2: *mut *mut ::core::ffi::c_char,
2075        arg3: ::core::ffi::c_int,
2076        __loc: locale_t,
2077    ) -> ::core::ffi::c_ulonglong;
2078}
2079unsafe extern "C" {
2080    pub fn system(__string: *const ::core::ffi::c_char) -> ::core::ffi::c_int;
2081}
2082unsafe extern "C" {
2083    pub fn wcstombs(arg1: *mut ::core::ffi::c_char, arg2: *const wchar_t, arg3: size_t) -> size_t;
2084}
2085unsafe extern "C" {
2086    pub fn wctomb(arg1: *mut ::core::ffi::c_char, arg2: wchar_t) -> ::core::ffi::c_int;
2087}
2088unsafe extern "C" {
2089    pub fn l64a(__input: ::core::ffi::c_long) -> *mut ::core::ffi::c_char;
2090}
2091unsafe extern "C" {
2092    pub fn gcvt(
2093        arg1: f64,
2094        arg2: ::core::ffi::c_int,
2095        arg3: *mut ::core::ffi::c_char,
2096    ) -> *mut ::core::ffi::c_char;
2097}
2098unsafe extern "C" {
2099    pub fn gcvtf(
2100        arg1: f32,
2101        arg2: ::core::ffi::c_int,
2102        arg3: *mut ::core::ffi::c_char,
2103    ) -> *mut ::core::ffi::c_char;
2104}
2105unsafe extern "C" {
2106    pub fn gcvtl(
2107        arg1: u128,
2108        arg2: ::core::ffi::c_int,
2109        arg3: *mut ::core::ffi::c_char,
2110    ) -> *mut ::core::ffi::c_char;
2111}
2112unsafe extern "C" {
2113    pub fn itoa(
2114        arg1: ::core::ffi::c_int,
2115        arg2: *mut ::core::ffi::c_char,
2116        arg3: ::core::ffi::c_int,
2117    ) -> *mut ::core::ffi::c_char;
2118}
2119unsafe extern "C" {
2120    pub fn utoa(
2121        arg1: ::core::ffi::c_uint,
2122        arg2: *mut ::core::ffi::c_char,
2123        arg3: ::core::ffi::c_int,
2124    ) -> *mut ::core::ffi::c_char;
2125}
2126unsafe extern "C" {
2127    pub fn bcmp(
2128        arg1: *const ::core::ffi::c_void,
2129        arg2: *const ::core::ffi::c_void,
2130        arg3: ::core::ffi::c_uint,
2131    ) -> ::core::ffi::c_int;
2132}
2133unsafe extern "C" {
2134    pub fn bcopy(
2135        arg1: *const ::core::ffi::c_void,
2136        arg2: *mut ::core::ffi::c_void,
2137        arg3: ::core::ffi::c_uint,
2138    );
2139}
2140unsafe extern "C" {
2141    pub fn bzero(arg1: *mut ::core::ffi::c_void, arg2: ::core::ffi::c_uint);
2142}
2143unsafe extern "C" {
2144    pub fn explicit_bzero(arg1: *mut ::core::ffi::c_void, arg2: size_t);
2145}
2146unsafe extern "C" {
2147    pub fn ffs(arg1: ::core::ffi::c_int) -> ::core::ffi::c_int;
2148}
2149unsafe extern "C" {
2150    pub fn ffsl(arg1: ::core::ffi::c_long) -> ::core::ffi::c_int;
2151}
2152unsafe extern "C" {
2153    pub fn ffsll(arg1: ::core::ffi::c_longlong) -> ::core::ffi::c_int;
2154}
2155unsafe extern "C" {
2156    pub fn fls(arg1: ::core::ffi::c_int) -> ::core::ffi::c_int;
2157}
2158unsafe extern "C" {
2159    pub fn flsl(arg1: ::core::ffi::c_long) -> ::core::ffi::c_int;
2160}
2161unsafe extern "C" {
2162    pub fn flsll(arg1: ::core::ffi::c_longlong) -> ::core::ffi::c_int;
2163}
2164unsafe extern "C" {
2165    pub fn index(
2166        arg1: *const ::core::ffi::c_char,
2167        arg2: ::core::ffi::c_int,
2168    ) -> *mut ::core::ffi::c_char;
2169}
2170unsafe extern "C" {
2171    pub fn rindex(
2172        arg1: *const ::core::ffi::c_char,
2173        arg2: ::core::ffi::c_int,
2174    ) -> *mut ::core::ffi::c_char;
2175}
2176unsafe extern "C" {
2177    pub fn strcasecmp(
2178        arg1: *const ::core::ffi::c_char,
2179        arg2: *const ::core::ffi::c_char,
2180    ) -> ::core::ffi::c_int;
2181}
2182unsafe extern "C" {
2183    pub fn strncasecmp(
2184        arg1: *const ::core::ffi::c_char,
2185        arg2: *const ::core::ffi::c_char,
2186        arg3: ::core::ffi::c_uint,
2187    ) -> ::core::ffi::c_int;
2188}
2189unsafe extern "C" {
2190    pub fn strcasecmp_l(
2191        arg1: *const ::core::ffi::c_char,
2192        arg2: *const ::core::ffi::c_char,
2193        arg3: locale_t,
2194    ) -> ::core::ffi::c_int;
2195}
2196unsafe extern "C" {
2197    pub fn strncasecmp_l(
2198        arg1: *const ::core::ffi::c_char,
2199        arg2: *const ::core::ffi::c_char,
2200        arg3: size_t,
2201        arg4: locale_t,
2202    ) -> ::core::ffi::c_int;
2203}
2204unsafe extern "C" {
2205    pub fn memccpy(
2206        arg1: *mut ::core::ffi::c_void,
2207        arg2: *const ::core::ffi::c_void,
2208        arg3: ::core::ffi::c_int,
2209        arg4: ::core::ffi::c_uint,
2210    ) -> *mut ::core::ffi::c_void;
2211}
2212unsafe extern "C" {
2213    pub fn memchr(
2214        arg1: *const ::core::ffi::c_void,
2215        arg2: ::core::ffi::c_int,
2216        arg3: ::core::ffi::c_uint,
2217    ) -> *mut ::core::ffi::c_void;
2218}
2219unsafe extern "C" {
2220    pub fn memcmp(
2221        arg1: *const ::core::ffi::c_void,
2222        arg2: *const ::core::ffi::c_void,
2223        arg3: ::core::ffi::c_uint,
2224    ) -> ::core::ffi::c_int;
2225}
2226unsafe extern "C" {
2227    pub fn memcpy(
2228        arg1: *mut ::core::ffi::c_void,
2229        arg2: *const ::core::ffi::c_void,
2230        arg3: ::core::ffi::c_uint,
2231    ) -> *mut ::core::ffi::c_void;
2232}
2233unsafe extern "C" {
2234    pub fn memmem(
2235        arg1: *const ::core::ffi::c_void,
2236        arg2: size_t,
2237        arg3: *const ::core::ffi::c_void,
2238        arg4: size_t,
2239    ) -> *mut ::core::ffi::c_void;
2240}
2241unsafe extern "C" {
2242    pub fn memmove(
2243        arg1: *mut ::core::ffi::c_void,
2244        arg2: *const ::core::ffi::c_void,
2245        arg3: ::core::ffi::c_uint,
2246    ) -> *mut ::core::ffi::c_void;
2247}
2248unsafe extern "C" {
2249    pub fn mempcpy(
2250        arg1: *mut ::core::ffi::c_void,
2251        arg2: *const ::core::ffi::c_void,
2252        arg3: ::core::ffi::c_uint,
2253    ) -> *mut ::core::ffi::c_void;
2254}
2255unsafe extern "C" {
2256    pub fn memrchr(
2257        arg1: *const ::core::ffi::c_void,
2258        arg2: ::core::ffi::c_int,
2259        arg3: size_t,
2260    ) -> *mut ::core::ffi::c_void;
2261}
2262unsafe extern "C" {
2263    pub fn memset(
2264        arg1: *mut ::core::ffi::c_void,
2265        arg2: ::core::ffi::c_int,
2266        arg3: ::core::ffi::c_uint,
2267    ) -> *mut ::core::ffi::c_void;
2268}
2269unsafe extern "C" {
2270    pub fn rawmemchr(
2271        arg1: *const ::core::ffi::c_void,
2272        arg2: ::core::ffi::c_int,
2273    ) -> *mut ::core::ffi::c_void;
2274}
2275unsafe extern "C" {
2276    pub fn stpcpy(
2277        arg1: *mut ::core::ffi::c_char,
2278        arg2: *const ::core::ffi::c_char,
2279    ) -> *mut ::core::ffi::c_char;
2280}
2281unsafe extern "C" {
2282    pub fn stpncpy(
2283        arg1: *mut ::core::ffi::c_char,
2284        arg2: *const ::core::ffi::c_char,
2285        arg3: ::core::ffi::c_uint,
2286    ) -> *mut ::core::ffi::c_char;
2287}
2288unsafe extern "C" {
2289    pub fn strcasestr(
2290        arg1: *const ::core::ffi::c_char,
2291        arg2: *const ::core::ffi::c_char,
2292    ) -> *mut ::core::ffi::c_char;
2293}
2294unsafe extern "C" {
2295    pub fn strcat(
2296        arg1: *mut ::core::ffi::c_char,
2297        arg2: *const ::core::ffi::c_char,
2298    ) -> *mut ::core::ffi::c_char;
2299}
2300unsafe extern "C" {
2301    pub fn strchr(
2302        arg1: *const ::core::ffi::c_char,
2303        arg2: ::core::ffi::c_int,
2304    ) -> *mut ::core::ffi::c_char;
2305}
2306unsafe extern "C" {
2307    pub fn strchrnul(
2308        arg1: *const ::core::ffi::c_char,
2309        arg2: ::core::ffi::c_int,
2310    ) -> *mut ::core::ffi::c_char;
2311}
2312unsafe extern "C" {
2313    pub fn strcmp(
2314        arg1: *const ::core::ffi::c_char,
2315        arg2: *const ::core::ffi::c_char,
2316    ) -> ::core::ffi::c_int;
2317}
2318unsafe extern "C" {
2319    pub fn strcoll(
2320        arg1: *const ::core::ffi::c_char,
2321        arg2: *const ::core::ffi::c_char,
2322    ) -> ::core::ffi::c_int;
2323}
2324unsafe extern "C" {
2325    pub fn strcoll_l(
2326        arg1: *const ::core::ffi::c_char,
2327        arg2: *const ::core::ffi::c_char,
2328        arg3: locale_t,
2329    ) -> ::core::ffi::c_int;
2330}
2331unsafe extern "C" {
2332    pub fn strcpy(
2333        arg1: *mut ::core::ffi::c_char,
2334        arg2: *const ::core::ffi::c_char,
2335    ) -> *mut ::core::ffi::c_char;
2336}
2337unsafe extern "C" {
2338    pub fn strcspn(
2339        arg1: *const ::core::ffi::c_char,
2340        arg2: *const ::core::ffi::c_char,
2341    ) -> ::core::ffi::c_uint;
2342}
2343unsafe extern "C" {
2344    pub fn strdup(arg1: *const ::core::ffi::c_char) -> *mut ::core::ffi::c_char;
2345}
2346unsafe extern "C" {
2347    pub fn strerror(arg1: ::core::ffi::c_int) -> *mut ::core::ffi::c_char;
2348}
2349unsafe extern "C" {
2350    pub fn strerror_r(
2351        arg1: ::core::ffi::c_int,
2352        arg2: *mut ::core::ffi::c_char,
2353        arg3: size_t,
2354    ) -> *mut ::core::ffi::c_char;
2355}
2356unsafe extern "C" {
2357    pub fn strlcat(
2358        arg1: *mut ::core::ffi::c_char,
2359        arg2: *const ::core::ffi::c_char,
2360        arg3: ::core::ffi::c_uint,
2361    ) -> ::core::ffi::c_uint;
2362}
2363unsafe extern "C" {
2364    pub fn strlen(arg1: *const ::core::ffi::c_char) -> ::core::ffi::c_uint;
2365}
2366unsafe extern "C" {
2367    pub fn strlcpy(
2368        arg1: *mut ::core::ffi::c_char,
2369        arg2: *const ::core::ffi::c_char,
2370        arg3: ::core::ffi::c_uint,
2371    ) -> ::core::ffi::c_uint;
2372}
2373unsafe extern "C" {
2374    pub fn strlwr(arg1: *mut ::core::ffi::c_char) -> *mut ::core::ffi::c_char;
2375}
2376unsafe extern "C" {
2377    pub fn strncat(
2378        arg1: *mut ::core::ffi::c_char,
2379        arg2: *const ::core::ffi::c_char,
2380        arg3: ::core::ffi::c_uint,
2381    ) -> *mut ::core::ffi::c_char;
2382}
2383unsafe extern "C" {
2384    pub fn strncmp(
2385        arg1: *const ::core::ffi::c_char,
2386        arg2: *const ::core::ffi::c_char,
2387        arg3: ::core::ffi::c_uint,
2388    ) -> ::core::ffi::c_int;
2389}
2390unsafe extern "C" {
2391    pub fn strncpy(
2392        arg1: *mut ::core::ffi::c_char,
2393        arg2: *const ::core::ffi::c_char,
2394        arg3: ::core::ffi::c_uint,
2395    ) -> *mut ::core::ffi::c_char;
2396}
2397unsafe extern "C" {
2398    pub fn strndup(
2399        arg1: *const ::core::ffi::c_char,
2400        arg2: ::core::ffi::c_uint,
2401    ) -> *mut ::core::ffi::c_char;
2402}
2403unsafe extern "C" {
2404    pub fn strnlen(arg1: *const ::core::ffi::c_char, arg2: size_t) -> size_t;
2405}
2406unsafe extern "C" {
2407    pub fn strnstr(
2408        arg1: *const ::core::ffi::c_char,
2409        arg2: *const ::core::ffi::c_char,
2410        arg3: size_t,
2411    ) -> *mut ::core::ffi::c_char;
2412}
2413unsafe extern "C" {
2414    pub fn strpbrk(
2415        arg1: *const ::core::ffi::c_char,
2416        arg2: *const ::core::ffi::c_char,
2417    ) -> *mut ::core::ffi::c_char;
2418}
2419unsafe extern "C" {
2420    pub fn strrchr(
2421        arg1: *const ::core::ffi::c_char,
2422        arg2: ::core::ffi::c_int,
2423    ) -> *mut ::core::ffi::c_char;
2424}
2425unsafe extern "C" {
2426    pub fn strsep(
2427        arg1: *mut *mut ::core::ffi::c_char,
2428        arg2: *const ::core::ffi::c_char,
2429    ) -> *mut ::core::ffi::c_char;
2430}
2431unsafe extern "C" {
2432    pub fn strspn(
2433        arg1: *const ::core::ffi::c_char,
2434        arg2: *const ::core::ffi::c_char,
2435    ) -> ::core::ffi::c_uint;
2436}
2437unsafe extern "C" {
2438    pub fn strstr(
2439        arg1: *const ::core::ffi::c_char,
2440        arg2: *const ::core::ffi::c_char,
2441    ) -> *mut ::core::ffi::c_char;
2442}
2443unsafe extern "C" {
2444    pub fn strtok(
2445        arg1: *mut ::core::ffi::c_char,
2446        arg2: *const ::core::ffi::c_char,
2447    ) -> *mut ::core::ffi::c_char;
2448}
2449unsafe extern "C" {
2450    pub fn strtok_r(
2451        arg1: *mut ::core::ffi::c_char,
2452        arg2: *const ::core::ffi::c_char,
2453        arg3: *mut *mut ::core::ffi::c_char,
2454    ) -> *mut ::core::ffi::c_char;
2455}
2456unsafe extern "C" {
2457    pub fn strupr(arg1: *mut ::core::ffi::c_char) -> *mut ::core::ffi::c_char;
2458}
2459unsafe extern "C" {
2460    pub fn strverscmp(
2461        arg1: *const ::core::ffi::c_char,
2462        arg2: *const ::core::ffi::c_char,
2463    ) -> ::core::ffi::c_int;
2464}
2465unsafe extern "C" {
2466    pub fn strxfrm(
2467        arg1: *mut ::core::ffi::c_char,
2468        arg2: *const ::core::ffi::c_char,
2469        arg3: ::core::ffi::c_uint,
2470    ) -> ::core::ffi::c_uint;
2471}
2472unsafe extern "C" {
2473    pub fn strxfrm_l(
2474        arg1: *mut ::core::ffi::c_char,
2475        arg2: *const ::core::ffi::c_char,
2476        arg3: size_t,
2477        arg4: locale_t,
2478    ) -> size_t;
2479}
2480unsafe extern "C" {
2481    pub fn timingsafe_bcmp(
2482        arg1: *const ::core::ffi::c_void,
2483        arg2: *const ::core::ffi::c_void,
2484        arg3: size_t,
2485    ) -> ::core::ffi::c_int;
2486}
2487unsafe extern "C" {
2488    pub fn timingsafe_memcmp(
2489        arg1: *const ::core::ffi::c_void,
2490        arg2: *const ::core::ffi::c_void,
2491        arg3: size_t,
2492    ) -> ::core::ffi::c_int;
2493}
2494#[repr(C)]
2495#[derive(Debug, Copy, Clone)]
2496pub struct timeval {
2497    pub tv_sec: time_t,
2498    pub tv_usec: suseconds_t,
2499}
2500#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2501const _: () = {
2502    ["Size of timeval"][::core::mem::size_of::<timeval>() - 16usize];
2503    ["Alignment of timeval"][::core::mem::align_of::<timeval>() - 8usize];
2504    ["Offset of field: timeval::tv_sec"][::core::mem::offset_of!(timeval, tv_sec) - 0usize];
2505    ["Offset of field: timeval::tv_usec"][::core::mem::offset_of!(timeval, tv_usec) - 8usize];
2506};
2507#[repr(C)]
2508#[derive(Debug, Copy, Clone)]
2509pub struct timespec {
2510    pub tv_sec: time_t,
2511    pub tv_nsec: ::core::ffi::c_long,
2512}
2513#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2514const _: () = {
2515    ["Size of timespec"][::core::mem::size_of::<timespec>() - 16usize];
2516    ["Alignment of timespec"][::core::mem::align_of::<timespec>() - 8usize];
2517    ["Offset of field: timespec::tv_sec"][::core::mem::offset_of!(timespec, tv_sec) - 0usize];
2518    ["Offset of field: timespec::tv_nsec"][::core::mem::offset_of!(timespec, tv_nsec) - 8usize];
2519};
2520pub type __fd_mask = ::core::ffi::c_ulong;
2521#[repr(C)]
2522#[derive(Debug, Copy, Clone)]
2523pub struct fd_set {
2524    pub __fds_bits: [__fd_mask; 2usize],
2525}
2526#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2527const _: () = {
2528    ["Size of fd_set"][::core::mem::size_of::<fd_set>() - 8usize];
2529    ["Alignment of fd_set"][::core::mem::align_of::<fd_set>() - 4usize];
2530    ["Offset of field: fd_set::__fds_bits"][::core::mem::offset_of!(fd_set, __fds_bits) - 0usize];
2531};
2532unsafe extern "C" {
2533    pub fn select(
2534        __n: ::core::ffi::c_int,
2535        __readfds: *mut fd_set,
2536        __writefds: *mut fd_set,
2537        __exceptfds: *mut fd_set,
2538        __timeout: *mut timeval,
2539    ) -> ::core::ffi::c_int;
2540}
2541unsafe extern "C" {
2542    pub fn gettimeofday(__p: *mut timeval, __tz: *mut ::core::ffi::c_void) -> ::core::ffi::c_int;
2543}
2544#[repr(C)]
2545#[derive(Debug, Copy, Clone)]
2546pub struct tms {
2547    pub tms_utime: clock_t,
2548    pub tms_stime: clock_t,
2549    pub tms_cutime: clock_t,
2550    pub tms_cstime: clock_t,
2551}
2552#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2553const _: () = {
2554    ["Size of tms"][::core::mem::size_of::<tms>() - 16usize];
2555    ["Alignment of tms"][::core::mem::align_of::<tms>() - 4usize];
2556    ["Offset of field: tms::tms_utime"][::core::mem::offset_of!(tms, tms_utime) - 0usize];
2557    ["Offset of field: tms::tms_stime"][::core::mem::offset_of!(tms, tms_stime) - 4usize];
2558    ["Offset of field: tms::tms_cutime"][::core::mem::offset_of!(tms, tms_cutime) - 8usize];
2559    ["Offset of field: tms::tms_cstime"][::core::mem::offset_of!(tms, tms_cstime) - 12usize];
2560};
2561unsafe extern "C" {
2562    pub fn times(arg1: *mut tms) -> clock_t;
2563}
2564#[repr(C)]
2565#[derive(Debug, Copy, Clone)]
2566pub struct tm {
2567    pub tm_sec: ::core::ffi::c_int,
2568    pub tm_min: ::core::ffi::c_int,
2569    pub tm_hour: ::core::ffi::c_int,
2570    pub tm_mday: ::core::ffi::c_int,
2571    pub tm_mon: ::core::ffi::c_int,
2572    pub tm_year: ::core::ffi::c_int,
2573    pub tm_wday: ::core::ffi::c_int,
2574    pub tm_yday: ::core::ffi::c_int,
2575    pub tm_isdst: ::core::ffi::c_int,
2576}
2577#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2578const _: () = {
2579    ["Size of tm"][::core::mem::size_of::<tm>() - 36usize];
2580    ["Alignment of tm"][::core::mem::align_of::<tm>() - 4usize];
2581    ["Offset of field: tm::tm_sec"][::core::mem::offset_of!(tm, tm_sec) - 0usize];
2582    ["Offset of field: tm::tm_min"][::core::mem::offset_of!(tm, tm_min) - 4usize];
2583    ["Offset of field: tm::tm_hour"][::core::mem::offset_of!(tm, tm_hour) - 8usize];
2584    ["Offset of field: tm::tm_mday"][::core::mem::offset_of!(tm, tm_mday) - 12usize];
2585    ["Offset of field: tm::tm_mon"][::core::mem::offset_of!(tm, tm_mon) - 16usize];
2586    ["Offset of field: tm::tm_year"][::core::mem::offset_of!(tm, tm_year) - 20usize];
2587    ["Offset of field: tm::tm_wday"][::core::mem::offset_of!(tm, tm_wday) - 24usize];
2588    ["Offset of field: tm::tm_yday"][::core::mem::offset_of!(tm, tm_yday) - 28usize];
2589    ["Offset of field: tm::tm_isdst"][::core::mem::offset_of!(tm, tm_isdst) - 32usize];
2590};
2591unsafe extern "C" {
2592    pub fn asctime(_tblock: *const tm) -> *mut ::core::ffi::c_char;
2593}
2594unsafe extern "C" {
2595    pub fn asctime_r(
2596        arg1: *const tm,
2597        arg2: *mut [::core::ffi::c_char; 26usize],
2598    ) -> *mut ::core::ffi::c_char;
2599}
2600unsafe extern "C" {
2601    pub fn clock() -> clock_t;
2602}
2603unsafe extern "C" {
2604    pub fn clock_gettime(clock_id: clockid_t, tp: *mut timespec) -> ::core::ffi::c_int;
2605}
2606unsafe extern "C" {
2607    pub fn ctime(_time: *const time_t) -> *mut ::core::ffi::c_char;
2608}
2609unsafe extern "C" {
2610    pub fn ctime_r(
2611        arg1: *const time_t,
2612        arg2: *mut [::core::ffi::c_char; 26usize],
2613    ) -> *mut ::core::ffi::c_char;
2614}
2615unsafe extern "C" {
2616    pub fn difftime(_time2: time_t, _time1: time_t) -> f64;
2617}
2618unsafe extern "C" {
2619    pub fn gmtime(_timer: *const time_t) -> *mut tm;
2620}
2621unsafe extern "C" {
2622    pub fn gmtime_r(arg1: *const time_t, arg2: *mut tm) -> *mut tm;
2623}
2624unsafe extern "C" {
2625    pub fn localtime(_timer: *const time_t) -> *mut tm;
2626}
2627unsafe extern "C" {
2628    pub fn localtime_r(arg1: *const time_t, arg2: *mut tm) -> *mut tm;
2629}
2630unsafe extern "C" {
2631    pub fn mktime(_timeptr: *mut tm) -> time_t;
2632}
2633unsafe extern "C" {
2634    pub fn strftime(
2635        _s: *mut ::core::ffi::c_char,
2636        _maxsize: size_t,
2637        _fmt: *const ::core::ffi::c_char,
2638        _t: *const tm,
2639    ) -> size_t;
2640}
2641unsafe extern "C" {
2642    pub fn strftime_l(
2643        _s: *mut ::core::ffi::c_char,
2644        _maxsize: size_t,
2645        _fmt: *const ::core::ffi::c_char,
2646        _t: *const tm,
2647        _l: locale_t,
2648    ) -> size_t;
2649}
2650unsafe extern "C" {
2651    pub fn strptime(
2652        arg1: *const ::core::ffi::c_char,
2653        arg2: *const ::core::ffi::c_char,
2654        arg3: *mut tm,
2655    ) -> *mut ::core::ffi::c_char;
2656}
2657unsafe extern "C" {
2658    pub fn strptime_l(
2659        arg1: *const ::core::ffi::c_char,
2660        arg2: *const ::core::ffi::c_char,
2661        arg3: *mut tm,
2662        arg4: locale_t,
2663    ) -> *mut ::core::ffi::c_char;
2664}
2665unsafe extern "C" {
2666    pub fn time(_timer: *mut time_t) -> time_t;
2667}
2668unsafe extern "C" {
2669    pub static mut environ: *mut *mut ::core::ffi::c_char;
2670}
2671unsafe extern "C" {
2672    pub fn close(__fildes: ::core::ffi::c_int) -> ::core::ffi::c_int;
2673}
2674unsafe extern "C" {
2675    pub fn getentropy(arg1: *mut ::core::ffi::c_void, arg2: size_t) -> ::core::ffi::c_int;
2676}
2677unsafe extern "C" {
2678    pub fn getpid() -> pid_t;
2679}
2680unsafe extern "C" {
2681    pub fn isatty(__fildes: ::core::ffi::c_int) -> ::core::ffi::c_int;
2682}
2683unsafe extern "C" {
2684    pub fn link(
2685        __path1: *const ::core::ffi::c_char,
2686        __path2: *const ::core::ffi::c_char,
2687    ) -> ::core::ffi::c_int;
2688}
2689unsafe extern "C" {
2690    pub fn lseek(
2691        __fildes: ::core::ffi::c_int,
2692        __offset: off_t,
2693        __whence: ::core::ffi::c_int,
2694    ) -> off_t;
2695}
2696unsafe extern "C" {
2697    pub fn read(
2698        __fd: ::core::ffi::c_int,
2699        __buf: *mut ::core::ffi::c_void,
2700        __nbyte: size_t,
2701    ) -> ssize_t;
2702}
2703unsafe extern "C" {
2704    pub fn rmdir(__path: *const ::core::ffi::c_char) -> ::core::ffi::c_int;
2705}
2706unsafe extern "C" {
2707    pub fn sleep(__seconds: ::core::ffi::c_uint) -> ::core::ffi::c_uint;
2708}
2709unsafe extern "C" {
2710    pub fn swab(arg1: *const ::core::ffi::c_void, arg2: *mut ::core::ffi::c_void, arg3: ssize_t);
2711}
2712unsafe extern "C" {
2713    pub fn unlink(__path: *const ::core::ffi::c_char) -> ::core::ffi::c_int;
2714}
2715unsafe extern "C" {
2716    pub fn usleep(__useconds: useconds_t) -> ::core::ffi::c_int;
2717}
2718unsafe extern "C" {
2719    pub fn write(
2720        __fd: ::core::ffi::c_int,
2721        __buf: *const ::core::ffi::c_void,
2722        __nbyte: size_t,
2723    ) -> ssize_t;
2724}
2725pub type wctype_t = ::core::ffi::c_int;
2726pub type mbstate_t = _mbstate_t;
2727unsafe extern "C" {
2728    pub fn btowc(arg1: ::core::ffi::c_int) -> wint_t;
2729}
2730unsafe extern "C" {
2731    pub fn fwide(arg1: *mut __FILE, arg2: ::core::ffi::c_int) -> ::core::ffi::c_int;
2732}
2733unsafe extern "C" {
2734    pub fn mbrlen(arg1: *const ::core::ffi::c_char, arg2: size_t, arg3: *mut mbstate_t) -> size_t;
2735}
2736unsafe extern "C" {
2737    pub fn mbrtowc(
2738        arg1: *mut wchar_t,
2739        arg2: *const ::core::ffi::c_char,
2740        arg3: size_t,
2741        arg4: *mut mbstate_t,
2742    ) -> size_t;
2743}
2744unsafe extern "C" {
2745    pub fn mbsinit(arg1: *const mbstate_t) -> ::core::ffi::c_int;
2746}
2747unsafe extern "C" {
2748    pub fn mbsnrtowcs(
2749        arg1: *mut wchar_t,
2750        arg2: *mut *const ::core::ffi::c_char,
2751        arg3: size_t,
2752        arg4: size_t,
2753        arg5: *mut mbstate_t,
2754    ) -> size_t;
2755}
2756unsafe extern "C" {
2757    pub fn mbsrtowcs(
2758        arg1: *mut wchar_t,
2759        arg2: *mut *const ::core::ffi::c_char,
2760        arg3: size_t,
2761        arg4: *mut mbstate_t,
2762    ) -> size_t;
2763}
2764unsafe extern "C" {
2765    pub fn wcpcpy(arg1: *mut wchar_t, arg2: *const wchar_t) -> *mut wchar_t;
2766}
2767unsafe extern "C" {
2768    pub fn wcpncpy(arg1: *mut wchar_t, arg2: *const wchar_t, arg3: size_t) -> *mut wchar_t;
2769}
2770unsafe extern "C" {
2771    pub fn wcrtomb(arg1: *mut ::core::ffi::c_char, arg2: wchar_t, arg3: *mut mbstate_t) -> size_t;
2772}
2773unsafe extern "C" {
2774    pub fn wcscasecmp(arg1: *const wchar_t, arg2: *const wchar_t) -> ::core::ffi::c_int;
2775}
2776unsafe extern "C" {
2777    pub fn wcscasecmp_l(
2778        arg1: *const wchar_t,
2779        arg2: *const wchar_t,
2780        arg3: locale_t,
2781    ) -> ::core::ffi::c_int;
2782}
2783unsafe extern "C" {
2784    pub fn wcscat(arg1: *mut wchar_t, arg2: *const wchar_t) -> *mut wchar_t;
2785}
2786unsafe extern "C" {
2787    pub fn wcschr(
2788        arg1: *const ::core::ffi::c_int,
2789        arg2: ::core::ffi::c_int,
2790    ) -> *mut ::core::ffi::c_int;
2791}
2792unsafe extern "C" {
2793    pub fn wcscmp(
2794        arg1: *const ::core::ffi::c_int,
2795        arg2: *const ::core::ffi::c_int,
2796    ) -> ::core::ffi::c_int;
2797}
2798unsafe extern "C" {
2799    pub fn wcscoll(arg1: *const wchar_t, arg2: *const wchar_t) -> ::core::ffi::c_int;
2800}
2801unsafe extern "C" {
2802    pub fn wcscoll_l(
2803        arg1: *const wchar_t,
2804        arg2: *const wchar_t,
2805        arg3: locale_t,
2806    ) -> ::core::ffi::c_int;
2807}
2808unsafe extern "C" {
2809    pub fn wcscpy(arg1: *mut wchar_t, arg2: *const wchar_t) -> *mut wchar_t;
2810}
2811unsafe extern "C" {
2812    pub fn wcscspn(arg1: *const wchar_t, arg2: *const wchar_t) -> size_t;
2813}
2814unsafe extern "C" {
2815    pub fn wcsdup(arg1: *const wchar_t) -> *mut wchar_t;
2816}
2817unsafe extern "C" {
2818    pub fn wcsftime(
2819        arg1: *mut wchar_t,
2820        arg2: size_t,
2821        arg3: *const wchar_t,
2822        arg4: *const tm,
2823    ) -> size_t;
2824}
2825unsafe extern "C" {
2826    pub fn wcsftime_l(
2827        arg1: *mut wchar_t,
2828        arg2: size_t,
2829        arg3: *const wchar_t,
2830        arg4: *const tm,
2831        arg5: locale_t,
2832    ) -> size_t;
2833}
2834unsafe extern "C" {
2835    pub fn wcslcat(arg1: *mut wchar_t, arg2: *const wchar_t, arg3: size_t) -> size_t;
2836}
2837unsafe extern "C" {
2838    pub fn wcslcpy(arg1: *mut wchar_t, arg2: *const wchar_t, arg3: size_t) -> size_t;
2839}
2840unsafe extern "C" {
2841    pub fn wcslen(arg1: *const ::core::ffi::c_int) -> ::core::ffi::c_uint;
2842}
2843unsafe extern "C" {
2844    pub fn wcsncasecmp(
2845        arg1: *const wchar_t,
2846        arg2: *const wchar_t,
2847        arg3: size_t,
2848    ) -> ::core::ffi::c_int;
2849}
2850unsafe extern "C" {
2851    pub fn wcsncasecmp_l(
2852        arg1: *const wchar_t,
2853        arg2: *const wchar_t,
2854        arg3: size_t,
2855        arg4: locale_t,
2856    ) -> ::core::ffi::c_int;
2857}
2858unsafe extern "C" {
2859    pub fn wcsncat(arg1: *mut wchar_t, arg2: *const wchar_t, arg3: size_t) -> *mut wchar_t;
2860}
2861unsafe extern "C" {
2862    pub fn wcsncmp(
2863        arg1: *const ::core::ffi::c_int,
2864        arg2: *const ::core::ffi::c_int,
2865        arg3: ::core::ffi::c_uint,
2866    ) -> ::core::ffi::c_int;
2867}
2868unsafe extern "C" {
2869    pub fn wcsncpy(arg1: *mut wchar_t, arg2: *const wchar_t, arg3: size_t) -> *mut wchar_t;
2870}
2871unsafe extern "C" {
2872    pub fn wcsnlen(arg1: *const wchar_t, arg2: size_t) -> size_t;
2873}
2874unsafe extern "C" {
2875    pub fn wcsnrtombs(
2876        arg1: *mut ::core::ffi::c_char,
2877        arg2: *mut *const wchar_t,
2878        arg3: size_t,
2879        arg4: size_t,
2880        arg5: *mut mbstate_t,
2881    ) -> size_t;
2882}
2883unsafe extern "C" {
2884    pub fn wcspbrk(arg1: *const wchar_t, arg2: *const wchar_t) -> *mut wchar_t;
2885}
2886unsafe extern "C" {
2887    pub fn wcsrchr(arg1: *const wchar_t, arg2: wchar_t) -> *mut wchar_t;
2888}
2889unsafe extern "C" {
2890    pub fn wcsrtombs(
2891        arg1: *mut ::core::ffi::c_char,
2892        arg2: *mut *const wchar_t,
2893        arg3: size_t,
2894        arg4: *mut mbstate_t,
2895    ) -> size_t;
2896}
2897unsafe extern "C" {
2898    pub fn wcsspn(arg1: *const wchar_t, arg2: *const wchar_t) -> size_t;
2899}
2900unsafe extern "C" {
2901    pub fn wcsstr(arg1: *const wchar_t, arg2: *const wchar_t) -> *mut wchar_t;
2902}
2903unsafe extern "C" {
2904    pub fn wcstod(arg1: *const wchar_t, arg2: *mut *mut wchar_t) -> f64;
2905}
2906unsafe extern "C" {
2907    pub fn wcstod_l(arg1: *const wchar_t, arg2: *mut *mut wchar_t, arg3: locale_t) -> f64;
2908}
2909unsafe extern "C" {
2910    pub fn wcstof(arg1: *const wchar_t, arg2: *mut *mut wchar_t) -> f32;
2911}
2912unsafe extern "C" {
2913    pub fn wcstof_l(arg1: *const wchar_t, arg2: *mut *mut wchar_t, arg3: locale_t) -> f32;
2914}
2915unsafe extern "C" {
2916    pub fn wcstok(
2917        arg1: *mut wchar_t,
2918        arg2: *const wchar_t,
2919        arg3: *mut *mut wchar_t,
2920    ) -> *mut wchar_t;
2921}
2922unsafe extern "C" {
2923    pub fn wcstol(
2924        arg1: *const wchar_t,
2925        arg2: *mut *mut wchar_t,
2926        arg3: ::core::ffi::c_int,
2927    ) -> ::core::ffi::c_long;
2928}
2929unsafe extern "C" {
2930    pub fn wcstol_l(
2931        arg1: *const wchar_t,
2932        arg2: *mut *mut wchar_t,
2933        arg3: ::core::ffi::c_int,
2934        arg4: locale_t,
2935    ) -> ::core::ffi::c_long;
2936}
2937unsafe extern "C" {
2938    pub fn wcstold(arg1: *const wchar_t, arg2: *mut *mut wchar_t) -> u128;
2939}
2940unsafe extern "C" {
2941    pub fn wcstold_l(arg1: *const wchar_t, arg2: *mut *mut wchar_t, arg3: locale_t) -> u128;
2942}
2943unsafe extern "C" {
2944    pub fn wcstoll(
2945        arg1: *const wchar_t,
2946        arg2: *mut *mut wchar_t,
2947        arg3: ::core::ffi::c_int,
2948    ) -> ::core::ffi::c_longlong;
2949}
2950unsafe extern "C" {
2951    pub fn wcstoll_l(
2952        arg1: *const wchar_t,
2953        arg2: *mut *mut wchar_t,
2954        arg3: ::core::ffi::c_int,
2955        arg4: locale_t,
2956    ) -> ::core::ffi::c_longlong;
2957}
2958unsafe extern "C" {
2959    pub fn wcstoul(
2960        arg1: *const wchar_t,
2961        arg2: *mut *mut wchar_t,
2962        arg3: ::core::ffi::c_int,
2963    ) -> ::core::ffi::c_ulong;
2964}
2965unsafe extern "C" {
2966    pub fn wcstoul_l(
2967        arg1: *const wchar_t,
2968        arg2: *mut *mut wchar_t,
2969        arg3: ::core::ffi::c_int,
2970        arg4: locale_t,
2971    ) -> ::core::ffi::c_ulong;
2972}
2973unsafe extern "C" {
2974    pub fn wcstoull(
2975        arg1: *const wchar_t,
2976        arg2: *mut *mut wchar_t,
2977        arg3: ::core::ffi::c_int,
2978    ) -> ::core::ffi::c_ulonglong;
2979}
2980unsafe extern "C" {
2981    pub fn wcstoull_l(
2982        arg1: *const wchar_t,
2983        arg2: *mut *mut wchar_t,
2984        arg3: ::core::ffi::c_int,
2985        arg4: locale_t,
2986    ) -> ::core::ffi::c_ulonglong;
2987}
2988unsafe extern "C" {
2989    pub fn wcswidth(arg1: *const wchar_t, arg2: size_t) -> ::core::ffi::c_int;
2990}
2991unsafe extern "C" {
2992    pub fn wcsxfrm(arg1: *mut wchar_t, arg2: *const wchar_t, arg3: size_t) -> size_t;
2993}
2994unsafe extern "C" {
2995    pub fn wcsxfrm_l(
2996        arg1: *mut wchar_t,
2997        arg2: *const wchar_t,
2998        arg3: size_t,
2999        arg4: locale_t,
3000    ) -> size_t;
3001}
3002unsafe extern "C" {
3003    pub fn wctob(arg1: wint_t) -> ::core::ffi::c_int;
3004}
3005unsafe extern "C" {
3006    pub fn wcwidth(arg1: wchar_t) -> ::core::ffi::c_int;
3007}
3008unsafe extern "C" {
3009    pub fn wmemchr(
3010        arg1: *const ::core::ffi::c_int,
3011        arg2: ::core::ffi::c_int,
3012        arg3: ::core::ffi::c_uint,
3013    ) -> *mut ::core::ffi::c_int;
3014}
3015unsafe extern "C" {
3016    pub fn wmemcmp(
3017        arg1: *const ::core::ffi::c_int,
3018        arg2: *const ::core::ffi::c_int,
3019        arg3: ::core::ffi::c_uint,
3020    ) -> ::core::ffi::c_int;
3021}
3022unsafe extern "C" {
3023    pub fn wmemcpy(
3024        arg1: *mut ::core::ffi::c_int,
3025        arg2: *const ::core::ffi::c_int,
3026        arg3: ::core::ffi::c_uint,
3027    ) -> *mut ::core::ffi::c_int;
3028}
3029unsafe extern "C" {
3030    pub fn wmemmove(
3031        arg1: *mut ::core::ffi::c_int,
3032        arg2: *const ::core::ffi::c_int,
3033        arg3: ::core::ffi::c_uint,
3034    ) -> *mut ::core::ffi::c_int;
3035}
3036unsafe extern "C" {
3037    pub fn wmempcpy(arg1: *mut wchar_t, arg2: *const wchar_t, arg3: size_t) -> *mut wchar_t;
3038}
3039unsafe extern "C" {
3040    pub fn wmemset(arg1: *mut wchar_t, arg2: wchar_t, arg3: size_t) -> *mut wchar_t;
3041}
3042pub type wctrans_t = ::core::ffi::c_int;
3043unsafe extern "C" {
3044    pub fn iswalnum(arg1: wint_t) -> ::core::ffi::c_int;
3045}
3046unsafe extern "C" {
3047    pub fn iswalpha(arg1: wint_t) -> ::core::ffi::c_int;
3048}
3049unsafe extern "C" {
3050    pub fn iswblank(arg1: wint_t) -> ::core::ffi::c_int;
3051}
3052unsafe extern "C" {
3053    pub fn iswcntrl(arg1: wint_t) -> ::core::ffi::c_int;
3054}
3055unsafe extern "C" {
3056    pub fn iswctype(arg1: wint_t, arg2: wctype_t) -> ::core::ffi::c_int;
3057}
3058unsafe extern "C" {
3059    pub fn iswdigit(arg1: wint_t) -> ::core::ffi::c_int;
3060}
3061unsafe extern "C" {
3062    pub fn iswgraph(arg1: wint_t) -> ::core::ffi::c_int;
3063}
3064unsafe extern "C" {
3065    pub fn iswlower(arg1: wint_t) -> ::core::ffi::c_int;
3066}
3067unsafe extern "C" {
3068    pub fn iswprint(arg1: wint_t) -> ::core::ffi::c_int;
3069}
3070unsafe extern "C" {
3071    pub fn iswpunct(arg1: wint_t) -> ::core::ffi::c_int;
3072}
3073unsafe extern "C" {
3074    pub fn iswspace(arg1: wint_t) -> ::core::ffi::c_int;
3075}
3076unsafe extern "C" {
3077    pub fn iswupper(arg1: wint_t) -> ::core::ffi::c_int;
3078}
3079unsafe extern "C" {
3080    pub fn iswxdigit(arg1: wint_t) -> ::core::ffi::c_int;
3081}
3082unsafe extern "C" {
3083    pub fn towupper(arg1: wint_t) -> wint_t;
3084}
3085unsafe extern "C" {
3086    pub fn towlower(arg1: wint_t) -> wint_t;
3087}
3088unsafe extern "C" {
3089    pub fn wctrans(arg1: *const ::core::ffi::c_char) -> wctrans_t;
3090}
3091unsafe extern "C" {
3092    pub fn wctype(arg1: *const ::core::ffi::c_char) -> wctype_t;
3093}
3094unsafe extern "C" {
3095    pub fn iswalnum_l(arg1: wint_t, arg2: locale_t) -> ::core::ffi::c_int;
3096}
3097unsafe extern "C" {
3098    pub fn iswalpha_l(arg1: wint_t, arg2: locale_t) -> ::core::ffi::c_int;
3099}
3100unsafe extern "C" {
3101    pub fn iswblank_l(arg1: wint_t, arg2: locale_t) -> ::core::ffi::c_int;
3102}
3103unsafe extern "C" {
3104    pub fn iswcntrl_l(arg1: wint_t, arg2: locale_t) -> ::core::ffi::c_int;
3105}
3106unsafe extern "C" {
3107    pub fn iswctype_l(arg1: wint_t, arg2: wctype_t, arg3: locale_t) -> ::core::ffi::c_int;
3108}
3109unsafe extern "C" {
3110    pub fn iswdigit_l(arg1: wint_t, arg2: locale_t) -> ::core::ffi::c_int;
3111}
3112unsafe extern "C" {
3113    pub fn iswgraph_l(arg1: wint_t, arg2: locale_t) -> ::core::ffi::c_int;
3114}
3115unsafe extern "C" {
3116    pub fn iswlower_l(arg1: wint_t, arg2: locale_t) -> ::core::ffi::c_int;
3117}
3118unsafe extern "C" {
3119    pub fn iswprint_l(arg1: wint_t, arg2: locale_t) -> ::core::ffi::c_int;
3120}
3121unsafe extern "C" {
3122    pub fn iswpunct_l(arg1: wint_t, arg2: locale_t) -> ::core::ffi::c_int;
3123}
3124unsafe extern "C" {
3125    pub fn iswspace_l(arg1: wint_t, arg2: locale_t) -> ::core::ffi::c_int;
3126}
3127unsafe extern "C" {
3128    pub fn iswupper_l(arg1: wint_t, arg2: locale_t) -> ::core::ffi::c_int;
3129}
3130unsafe extern "C" {
3131    pub fn iswxdigit_l(arg1: wint_t, arg2: locale_t) -> ::core::ffi::c_int;
3132}
3133unsafe extern "C" {
3134    pub fn towupper_l(arg1: wint_t, arg2: locale_t) -> wint_t;
3135}
3136unsafe extern "C" {
3137    pub fn towlower_l(arg1: wint_t, arg2: locale_t) -> wint_t;
3138}
3139unsafe extern "C" {
3140    pub fn wctrans_l(arg1: *const ::core::ffi::c_char, arg2: locale_t) -> wctrans_t;
3141}
3142unsafe extern "C" {
3143    pub fn wctype_l(arg1: *const ::core::ffi::c_char, arg2: locale_t) -> wctype_t;
3144}
3145#[repr(C)]
3146#[derive(Debug, Copy, Clone)]
3147pub struct path_t {
3148    pub buffer: *mut ::core::ffi::c_char,
3149    pub device: *mut ::core::ffi::c_char,
3150    pub directory: *mut ::core::ffi::c_char,
3151    pub filename: *mut ::core::ffi::c_char,
3152    pub unixpath: *mut ::core::ffi::c_char,
3153    pub len: size_t,
3154}
3155#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3156const _: () = {
3157    ["Size of path_t"][::core::mem::size_of::<path_t>() - 24usize];
3158    ["Alignment of path_t"][::core::mem::align_of::<path_t>() - 4usize];
3159    ["Offset of field: path_t::buffer"][::core::mem::offset_of!(path_t, buffer) - 0usize];
3160    ["Offset of field: path_t::device"][::core::mem::offset_of!(path_t, device) - 4usize];
3161    ["Offset of field: path_t::directory"][::core::mem::offset_of!(path_t, directory) - 8usize];
3162    ["Offset of field: path_t::filename"][::core::mem::offset_of!(path_t, filename) - 12usize];
3163    ["Offset of field: path_t::unixpath"][::core::mem::offset_of!(path_t, unixpath) - 16usize];
3164    ["Offset of field: path_t::len"][::core::mem::offset_of!(path_t, len) - 20usize];
3165};
3166#[repr(i32)]
3167#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3168pub enum path_parse_result_t {
3169    PATH_PARSE_OK = 0,
3170    PATH_PARSE_EMPTY_DEVICE = -1,
3171    PATH_PARSE_NO_DEVICE = -2,
3172    PATH_PARSE_UNCLOSED_DIRECTORY = -3,
3173    PATH_PARSE_INVALID_DEVICE_CHAR = -4,
3174    PATH_PARSE_INVALID_DIR_CHAR = -5,
3175    PATH_PARSE_INVALID_FILE_CHAR = -6,
3176    PATH_PARSE_EMPTY_PATH = -7,
3177}
3178unsafe extern "C" {
3179    pub fn parse_path(path: *const ::core::ffi::c_char, result: *mut path_t)
3180    -> path_parse_result_t;
3181}
3182unsafe extern "C" {
3183    pub fn path_free(path: *mut path_t);
3184}
3185unsafe extern "C" {
3186    pub fn mkdir_p(path: *const ::core::ffi::c_char) -> bool;
3187}
3188unsafe extern "C" {
3189    pub fn rm_rf(path: *const ::core::ffi::c_char) -> bool;
3190}
3191unsafe extern "C" {
3192    pub fn path_dirname(path: *const ::core::ffi::c_char) -> *mut ::core::ffi::c_char;
3193}
3194unsafe extern "C" {
3195    pub fn path_basename(path: *const ::core::ffi::c_char) -> *mut ::core::ffi::c_char;
3196}
3197unsafe extern "C" {
3198    pub fn path_devname(path: *const ::core::ffi::c_char) -> *mut ::core::ffi::c_char;
3199}
3200unsafe extern "C" {
3201    pub fn path_dirconcat(
3202        path: *const ::core::ffi::c_char,
3203        subdir: *const ::core::ffi::c_char,
3204    ) -> *mut ::core::ffi::c_char;
3205}
3206unsafe extern "C" {
3207    pub fn path_fileconcat(
3208        path: *const ::core::ffi::c_char,
3209        filename: *const ::core::ffi::c_char,
3210    ) -> *mut ::core::ffi::c_char;
3211}
3212unsafe extern "C" {
3213    pub fn path_concat(
3214        base_path: *const ::core::ffi::c_char,
3215        append_path: *const ::core::ffi::c_char,
3216    ) -> *mut ::core::ffi::c_char;
3217}
3218#[repr(u32)]
3219#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3220pub enum application_source_t {
3221    APPLICATION_SOURCE_UNKNOWN = 0,
3222    APPLICATION_SOURCE_BADGEHUB = 1,
3223    APPLICATION_SOURCE_MAX = 2,
3224}
3225#[repr(C)]
3226#[derive(Debug, Copy, Clone)]
3227pub struct application_t {
3228    pub unique_identifier: *const ::core::ffi::c_char,
3229    pub name: *const ::core::ffi::c_char,
3230    pub author: *const ::core::ffi::c_char,
3231    pub version: *const ::core::ffi::c_char,
3232    pub interpreter: *const ::core::ffi::c_char,
3233    pub metadata_file: *const ::core::ffi::c_char,
3234    pub installed_path: *const ::core::ffi::c_char,
3235    pub binary_path: *const ::core::ffi::c_char,
3236    pub source: application_source_t,
3237}
3238#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3239const _: () = {
3240    ["Size of application_t"][::core::mem::size_of::<application_t>() - 36usize];
3241    ["Alignment of application_t"][::core::mem::align_of::<application_t>() - 4usize];
3242    ["Offset of field: application_t::unique_identifier"]
3243        [::core::mem::offset_of!(application_t, unique_identifier) - 0usize];
3244    ["Offset of field: application_t::name"][::core::mem::offset_of!(application_t, name) - 4usize];
3245    ["Offset of field: application_t::author"]
3246        [::core::mem::offset_of!(application_t, author) - 8usize];
3247    ["Offset of field: application_t::version"]
3248        [::core::mem::offset_of!(application_t, version) - 12usize];
3249    ["Offset of field: application_t::interpreter"]
3250        [::core::mem::offset_of!(application_t, interpreter) - 16usize];
3251    ["Offset of field: application_t::metadata_file"]
3252        [::core::mem::offset_of!(application_t, metadata_file) - 20usize];
3253    ["Offset of field: application_t::installed_path"]
3254        [::core::mem::offset_of!(application_t, installed_path) - 24usize];
3255    ["Offset of field: application_t::binary_path"]
3256        [::core::mem::offset_of!(application_t, binary_path) - 28usize];
3257    ["Offset of field: application_t::source"]
3258        [::core::mem::offset_of!(application_t, source) - 32usize];
3259};
3260#[repr(C)]
3261#[derive(Debug, Copy, Clone)]
3262pub struct application_list {
3263    _unused: [u8; 0],
3264}
3265pub type application_list_handle = *mut application_list;
3266unsafe extern "C" {
3267    pub fn application_launch(unique_identifier: *const ::core::ffi::c_char) -> pid_t;
3268}
3269unsafe extern "C" {
3270    pub fn application_create(
3271        unique_identifier: *const ::core::ffi::c_char,
3272        name: *const ::core::ffi::c_char,
3273        author: *const ::core::ffi::c_char,
3274        version: *const ::core::ffi::c_char,
3275        interpreter: *const ::core::ffi::c_char,
3276        source: application_source_t,
3277    ) -> *mut application_t;
3278}
3279unsafe extern "C" {
3280    pub fn application_set_metadata(
3281        application: *mut application_t,
3282        metadata_file: *const ::core::ffi::c_char,
3283    ) -> bool;
3284}
3285unsafe extern "C" {
3286    pub fn application_set_binary_path(
3287        application: *mut application_t,
3288        binary_path: *const ::core::ffi::c_char,
3289    ) -> bool;
3290}
3291unsafe extern "C" {
3292    pub fn application_set_version(
3293        application: *mut application_t,
3294        version: *const ::core::ffi::c_char,
3295    ) -> bool;
3296}
3297unsafe extern "C" {
3298    pub fn application_set_author(
3299        application: *mut application_t,
3300        author: *const ::core::ffi::c_char,
3301    ) -> bool;
3302}
3303unsafe extern "C" {
3304    pub fn application_set_name(
3305        application: *mut application_t,
3306        name: *const ::core::ffi::c_char,
3307    ) -> bool;
3308}
3309unsafe extern "C" {
3310    pub fn application_set_interpreter(
3311        application: *mut application_t,
3312        interpreter: *const ::core::ffi::c_char,
3313    ) -> bool;
3314}
3315unsafe extern "C" {
3316    pub fn application_destroy(application: *mut application_t) -> bool;
3317}
3318unsafe extern "C" {
3319    pub fn application_create_file(
3320        application: *mut application_t,
3321        file_path: *const ::core::ffi::c_char,
3322    ) -> *mut FILE;
3323}
3324unsafe extern "C" {
3325    pub fn application_create_file_string(
3326        application: *mut application_t,
3327        file_path: *const ::core::ffi::c_char,
3328    ) -> *mut ::core::ffi::c_char;
3329}
3330unsafe extern "C" {
3331    pub fn application_list(out: *mut *mut application_t) -> application_list_handle;
3332}
3333unsafe extern "C" {
3334    pub fn application_list_get_next(list: application_list_handle) -> *mut application_t;
3335}
3336unsafe extern "C" {
3337    pub fn application_list_close(list: application_list_handle);
3338}
3339unsafe extern "C" {
3340    pub fn application_get(unique_identifier: *const ::core::ffi::c_char) -> *mut application_t;
3341}
3342unsafe extern "C" {
3343    pub fn application_free(application: *mut application_t);
3344}
3345pub type key_code_t = u32;
3346pub type key_mod_t = u16;
3347#[repr(u32)]
3348#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3349pub enum keyboard_scancode_t {
3350    KEY_SCANCODE_UNKNOWN = 0,
3351    KEY_SCANCODE_A = 4,
3352    KEY_SCANCODE_B = 5,
3353    KEY_SCANCODE_C = 6,
3354    KEY_SCANCODE_D = 7,
3355    KEY_SCANCODE_E = 8,
3356    KEY_SCANCODE_F = 9,
3357    KEY_SCANCODE_G = 10,
3358    KEY_SCANCODE_H = 11,
3359    KEY_SCANCODE_I = 12,
3360    KEY_SCANCODE_J = 13,
3361    KEY_SCANCODE_K = 14,
3362    KEY_SCANCODE_L = 15,
3363    KEY_SCANCODE_M = 16,
3364    KEY_SCANCODE_N = 17,
3365    KEY_SCANCODE_O = 18,
3366    KEY_SCANCODE_P = 19,
3367    KEY_SCANCODE_Q = 20,
3368    KEY_SCANCODE_R = 21,
3369    KEY_SCANCODE_S = 22,
3370    KEY_SCANCODE_T = 23,
3371    KEY_SCANCODE_U = 24,
3372    KEY_SCANCODE_V = 25,
3373    KEY_SCANCODE_W = 26,
3374    KEY_SCANCODE_X = 27,
3375    KEY_SCANCODE_Y = 28,
3376    KEY_SCANCODE_Z = 29,
3377    KEY_SCANCODE_1 = 30,
3378    KEY_SCANCODE_2 = 31,
3379    KEY_SCANCODE_3 = 32,
3380    KEY_SCANCODE_4 = 33,
3381    KEY_SCANCODE_5 = 34,
3382    KEY_SCANCODE_6 = 35,
3383    KEY_SCANCODE_7 = 36,
3384    KEY_SCANCODE_8 = 37,
3385    KEY_SCANCODE_9 = 38,
3386    KEY_SCANCODE_0 = 39,
3387    KEY_SCANCODE_RETURN = 40,
3388    KEY_SCANCODE_ESCAPE = 41,
3389    KEY_SCANCODE_BACKSPACE = 42,
3390    KEY_SCANCODE_TAB = 43,
3391    KEY_SCANCODE_SPACE = 44,
3392    KEY_SCANCODE_MINUS = 45,
3393    KEY_SCANCODE_EQUALS = 46,
3394    KEY_SCANCODE_LEFTBRACKET = 47,
3395    KEY_SCANCODE_RIGHTBRACKET = 48,
3396    #[doc = "< Located at the lower left of the return\n   key on ISO keyboards and at the right end\n   of the QWERTY row on ANSI keyboards.\n   Produces REVERSE SOLIDUS (backslash) and\n   VERTICAL LINE in a US layout, REVERSE\n   SOLIDUS and VERTICAL LINE in a UK Mac\n   layout, NUMBER SIGN and TILDE in a UK\n   Windows layout, DOLLAR SIGN and POUND SIGN\n   in a Swiss German layout, NUMBER SIGN and\n   APOSTROPHE in a German layout, GRAVE\n   ACCENT and POUND SIGN in a French Mac\n   layout, and ASTERISK and MICRO SIGN in a\n   French Windows layout."]
3397    KEY_SCANCODE_BACKSLASH = 49,
3398    #[doc = "< ISO USB keyboards actually use this code\n   instead of 49 for the same key, but all\n   OSes I've seen treat the two codes\n   identically. So, as an implementor, unless\n   your keyboard generates both of those\n   codes and your OS treats them differently,\n   you should generate KEY_SCANCODE_BACKSLASH\n   instead of this code. As a user, you\n   should not rely on this code because SDL\n   will never generate it with most (all?)\n   keyboards."]
3399    KEY_SCANCODE_NONUSHASH = 50,
3400    KEY_SCANCODE_SEMICOLON = 51,
3401    KEY_SCANCODE_APOSTROPHE = 52,
3402    #[doc = "< Located in the top left corner (on both ANSI\n   and ISO keyboards). Produces GRAVE ACCENT and\n   TILDE in a US Windows layout and in US and UK\n   Mac layouts on ANSI keyboards, GRAVE ACCENT\n   and NOT SIGN in a UK Windows layout, SECTION\n   SIGN and PLUS-MINUS SIGN in US and UK Mac\n   layouts on ISO keyboards, SECTION SIGN and\n   DEGREE SIGN in a Swiss German layout (Mac:\n   only on ISO keyboards), CIRCUMFLEX ACCENT and\n   DEGREE SIGN in a German layout (Mac: only on\n   ISO keyboards), SUPERSCRIPT TWO and TILDE in a\n   French Windows layout, COMMERCIAL AT and\n   NUMBER SIGN in a French Mac layout on ISO\n   keyboards, and LESS-THAN SIGN and GREATER-THAN\n   SIGN in a Swiss German, German, or French Mac\n   layout on ANSI keyboards."]
3403    KEY_SCANCODE_GRAVE = 53,
3404    KEY_SCANCODE_COMMA = 54,
3405    KEY_SCANCODE_PERIOD = 55,
3406    KEY_SCANCODE_SLASH = 56,
3407    KEY_SCANCODE_CAPSLOCK = 57,
3408    KEY_SCANCODE_F1 = 58,
3409    KEY_SCANCODE_F2 = 59,
3410    KEY_SCANCODE_F3 = 60,
3411    KEY_SCANCODE_F4 = 61,
3412    KEY_SCANCODE_F5 = 62,
3413    KEY_SCANCODE_F6 = 63,
3414    KEY_SCANCODE_F7 = 64,
3415    KEY_SCANCODE_F8 = 65,
3416    KEY_SCANCODE_F9 = 66,
3417    KEY_SCANCODE_F10 = 67,
3418    KEY_SCANCODE_F11 = 68,
3419    KEY_SCANCODE_F12 = 69,
3420    KEY_SCANCODE_PRINTSCREEN = 70,
3421    KEY_SCANCODE_SCROLLLOCK = 71,
3422    KEY_SCANCODE_PAUSE = 72,
3423    #[doc = "< insert on PC, help on some Mac keyboards (but\ndoes send code 73, not 117)"]
3424    KEY_SCANCODE_INSERT = 73,
3425    KEY_SCANCODE_HOME = 74,
3426    KEY_SCANCODE_PAGEUP = 75,
3427    KEY_SCANCODE_DELETE = 76,
3428    KEY_SCANCODE_END = 77,
3429    KEY_SCANCODE_PAGEDOWN = 78,
3430    KEY_SCANCODE_RIGHT = 79,
3431    KEY_SCANCODE_LEFT = 80,
3432    KEY_SCANCODE_DOWN = 81,
3433    KEY_SCANCODE_UP = 82,
3434    #[doc = "< num lock on PC, clear on Mac keyboards"]
3435    KEY_SCANCODE_NUMLOCKCLEAR = 83,
3436    KEY_SCANCODE_KP_DIVIDE = 84,
3437    KEY_SCANCODE_KP_MULTIPLY = 85,
3438    KEY_SCANCODE_KP_MINUS = 86,
3439    KEY_SCANCODE_KP_PLUS = 87,
3440    KEY_SCANCODE_KP_ENTER = 88,
3441    KEY_SCANCODE_KP_1 = 89,
3442    KEY_SCANCODE_KP_2 = 90,
3443    KEY_SCANCODE_KP_3 = 91,
3444    KEY_SCANCODE_KP_4 = 92,
3445    KEY_SCANCODE_KP_5 = 93,
3446    KEY_SCANCODE_KP_6 = 94,
3447    KEY_SCANCODE_KP_7 = 95,
3448    KEY_SCANCODE_KP_8 = 96,
3449    KEY_SCANCODE_KP_9 = 97,
3450    KEY_SCANCODE_KP_0 = 98,
3451    KEY_SCANCODE_KP_PERIOD = 99,
3452    #[doc = "< This is the additional key that ISO\n   keyboards have over ANSI ones,\n   located between left shift and Y.\n   Produces GRAVE ACCENT and TILDE in a\n   US or UK Mac layout, REVERSE SOLIDUS\n   (backslash) and VERTICAL LINE in a\n   US or UK Windows layout, and\n   LESS-THAN SIGN and GREATER-THAN SIGN\n   in a Swiss German, German, or French\n   layout."]
3453    KEY_SCANCODE_NONUSBACKSLASH = 100,
3454    #[doc = "< windows contextual menu, compose"]
3455    KEY_SCANCODE_APPLICATION = 101,
3456    #[doc = "< The USB document says this is a status flag,\n   not a physical key - but some Mac keyboards\n   do have a power key."]
3457    KEY_SCANCODE_POWER = 102,
3458    KEY_SCANCODE_KP_EQUALS = 103,
3459    KEY_SCANCODE_F13 = 104,
3460    KEY_SCANCODE_F14 = 105,
3461    KEY_SCANCODE_F15 = 106,
3462    KEY_SCANCODE_F16 = 107,
3463    KEY_SCANCODE_F17 = 108,
3464    KEY_SCANCODE_F18 = 109,
3465    KEY_SCANCODE_F19 = 110,
3466    KEY_SCANCODE_F20 = 111,
3467    KEY_SCANCODE_F21 = 112,
3468    KEY_SCANCODE_F22 = 113,
3469    KEY_SCANCODE_F23 = 114,
3470    KEY_SCANCODE_F24 = 115,
3471    KEY_SCANCODE_EXECUTE = 116,
3472    #[doc = "< AL Integrated Help Center"]
3473    KEY_SCANCODE_HELP = 117,
3474    #[doc = "< Menu (show menu)"]
3475    KEY_SCANCODE_MENU = 118,
3476    KEY_SCANCODE_SELECT = 119,
3477    #[doc = "< AC Stop"]
3478    KEY_SCANCODE_STOP = 120,
3479    #[doc = "< AC Redo/Repeat"]
3480    KEY_SCANCODE_AGAIN = 121,
3481    #[doc = "< AC Undo"]
3482    KEY_SCANCODE_UNDO = 122,
3483    #[doc = "< AC Cut"]
3484    KEY_SCANCODE_CUT = 123,
3485    #[doc = "< AC Copy"]
3486    KEY_SCANCODE_COPY = 124,
3487    #[doc = "< AC Paste"]
3488    KEY_SCANCODE_PASTE = 125,
3489    #[doc = "< AC Find"]
3490    KEY_SCANCODE_FIND = 126,
3491    KEY_SCANCODE_MUTE = 127,
3492    KEY_SCANCODE_VOLUMEUP = 128,
3493    KEY_SCANCODE_VOLUMEDOWN = 129,
3494    KEY_SCANCODE_KP_COMMA = 133,
3495    KEY_SCANCODE_KP_EQUALSAS400 = 134,
3496    #[doc = "< used on Asian keyboards, see\nfootnotes in USB doc"]
3497    KEY_SCANCODE_INTERNATIONAL1 = 135,
3498    KEY_SCANCODE_INTERNATIONAL2 = 136,
3499    #[doc = "< Yen"]
3500    KEY_SCANCODE_INTERNATIONAL3 = 137,
3501    KEY_SCANCODE_INTERNATIONAL4 = 138,
3502    KEY_SCANCODE_INTERNATIONAL5 = 139,
3503    KEY_SCANCODE_INTERNATIONAL6 = 140,
3504    KEY_SCANCODE_INTERNATIONAL7 = 141,
3505    KEY_SCANCODE_INTERNATIONAL8 = 142,
3506    KEY_SCANCODE_INTERNATIONAL9 = 143,
3507    #[doc = "< Hangul/English toggle"]
3508    KEY_SCANCODE_LANG1 = 144,
3509    #[doc = "< Hanja conversion"]
3510    KEY_SCANCODE_LANG2 = 145,
3511    #[doc = "< Katakana"]
3512    KEY_SCANCODE_LANG3 = 146,
3513    #[doc = "< Hiragana"]
3514    KEY_SCANCODE_LANG4 = 147,
3515    #[doc = "< Zenkaku/Hankaku"]
3516    KEY_SCANCODE_LANG5 = 148,
3517    #[doc = "< reserved"]
3518    KEY_SCANCODE_LANG6 = 149,
3519    #[doc = "< reserved"]
3520    KEY_SCANCODE_LANG7 = 150,
3521    #[doc = "< reserved"]
3522    KEY_SCANCODE_LANG8 = 151,
3523    #[doc = "< reserved"]
3524    KEY_SCANCODE_LANG9 = 152,
3525    #[doc = "< Erase-Eaze"]
3526    KEY_SCANCODE_ALTERASE = 153,
3527    KEY_SCANCODE_SYSREQ = 154,
3528    #[doc = "< AC Cancel"]
3529    KEY_SCANCODE_CANCEL = 155,
3530    KEY_SCANCODE_CLEAR = 156,
3531    KEY_SCANCODE_PRIOR = 157,
3532    KEY_SCANCODE_RETURN2 = 158,
3533    KEY_SCANCODE_SEPARATOR = 159,
3534    KEY_SCANCODE_OUT = 160,
3535    KEY_SCANCODE_OPER = 161,
3536    KEY_SCANCODE_CLEARAGAIN = 162,
3537    KEY_SCANCODE_CRSEL = 163,
3538    KEY_SCANCODE_EXSEL = 164,
3539    KEY_SCANCODE_KP_00 = 176,
3540    KEY_SCANCODE_KP_000 = 177,
3541    KEY_SCANCODE_THOUSANDSSEPARATOR = 178,
3542    KEY_SCANCODE_DECIMALSEPARATOR = 179,
3543    KEY_SCANCODE_CURRENCYUNIT = 180,
3544    KEY_SCANCODE_CURRENCYSUBUNIT = 181,
3545    KEY_SCANCODE_KP_LEFTPAREN = 182,
3546    KEY_SCANCODE_KP_RIGHTPAREN = 183,
3547    KEY_SCANCODE_KP_LEFTBRACE = 184,
3548    KEY_SCANCODE_KP_RIGHTBRACE = 185,
3549    KEY_SCANCODE_KP_TAB = 186,
3550    KEY_SCANCODE_KP_BACKSPACE = 187,
3551    KEY_SCANCODE_KP_A = 188,
3552    KEY_SCANCODE_KP_B = 189,
3553    KEY_SCANCODE_KP_C = 190,
3554    KEY_SCANCODE_KP_D = 191,
3555    KEY_SCANCODE_KP_E = 192,
3556    KEY_SCANCODE_KP_F = 193,
3557    KEY_SCANCODE_KP_XOR = 194,
3558    KEY_SCANCODE_KP_POWER = 195,
3559    KEY_SCANCODE_KP_PERCENT = 196,
3560    KEY_SCANCODE_KP_LESS = 197,
3561    KEY_SCANCODE_KP_GREATER = 198,
3562    KEY_SCANCODE_KP_AMPERSAND = 199,
3563    KEY_SCANCODE_KP_DBLAMPERSAND = 200,
3564    KEY_SCANCODE_KP_VERTICALBAR = 201,
3565    KEY_SCANCODE_KP_DBLVERTICALBAR = 202,
3566    KEY_SCANCODE_KP_COLON = 203,
3567    KEY_SCANCODE_KP_HASH = 204,
3568    KEY_SCANCODE_KP_SPACE = 205,
3569    KEY_SCANCODE_KP_AT = 206,
3570    KEY_SCANCODE_KP_EXCLAM = 207,
3571    KEY_SCANCODE_KP_MEMSTORE = 208,
3572    KEY_SCANCODE_KP_MEMRECALL = 209,
3573    KEY_SCANCODE_KP_MEMCLEAR = 210,
3574    KEY_SCANCODE_KP_MEMADD = 211,
3575    KEY_SCANCODE_KP_MEMSUBTRACT = 212,
3576    KEY_SCANCODE_KP_MEMMULTIPLY = 213,
3577    KEY_SCANCODE_KP_MEMDIVIDE = 214,
3578    KEY_SCANCODE_KP_PLUSMINUS = 215,
3579    KEY_SCANCODE_KP_CLEAR = 216,
3580    KEY_SCANCODE_KP_CLEARENTRY = 217,
3581    KEY_SCANCODE_KP_BINARY = 218,
3582    KEY_SCANCODE_KP_OCTAL = 219,
3583    KEY_SCANCODE_KP_DECIMAL = 220,
3584    KEY_SCANCODE_KP_HEXADECIMAL = 221,
3585    KEY_SCANCODE_LCTRL = 224,
3586    KEY_SCANCODE_LSHIFT = 225,
3587    #[doc = "< alt, option"]
3588    KEY_SCANCODE_LALT = 226,
3589    #[doc = "< windows, command (apple), meta"]
3590    KEY_SCANCODE_LGUI = 227,
3591    KEY_SCANCODE_RCTRL = 228,
3592    KEY_SCANCODE_RSHIFT = 229,
3593    #[doc = "< alt gr, option"]
3594    KEY_SCANCODE_RALT = 230,
3595    #[doc = "< windows, command (apple), meta"]
3596    KEY_SCANCODE_RGUI = 231,
3597    #[doc = "< I'm not sure if this is really not covered\n   by any of the above, but since there's a\n   special KMOD_MODE for it I'm adding it here"]
3598    KEY_SCANCODE_MODE = 257,
3599    #[doc = "< Sleep"]
3600    KEY_SCANCODE_SLEEP = 258,
3601    #[doc = "< Wake"]
3602    KEY_SCANCODE_WAKE = 259,
3603    #[doc = "< Channel Increment"]
3604    KEY_SCANCODE_CHANNEL_INCREMENT = 260,
3605    #[doc = "< Channel Decrement"]
3606    KEY_SCANCODE_CHANNEL_DECREMENT = 261,
3607    #[doc = "< Play"]
3608    KEY_SCANCODE_MEDIA_PLAY = 262,
3609    #[doc = "< Pause"]
3610    KEY_SCANCODE_MEDIA_PAUSE = 263,
3611    #[doc = "< Record"]
3612    KEY_SCANCODE_MEDIA_RECORD = 264,
3613    #[doc = "< Fast Forward"]
3614    KEY_SCANCODE_MEDIA_FAST_FORWARD = 265,
3615    #[doc = "< Rewind"]
3616    KEY_SCANCODE_MEDIA_REWIND = 266,
3617    #[doc = "< Next Track"]
3618    KEY_SCANCODE_MEDIA_NEXT_TRACK = 267,
3619    #[doc = "< Previous Track"]
3620    KEY_SCANCODE_MEDIA_PREVIOUS_TRACK = 268,
3621    #[doc = "< Stop"]
3622    KEY_SCANCODE_MEDIA_STOP = 269,
3623    #[doc = "< Eject"]
3624    KEY_SCANCODE_MEDIA_EJECT = 270,
3625    #[doc = "< Play / Pause"]
3626    KEY_SCANCODE_MEDIA_PLAY_PAUSE = 271,
3627    KEY_SCANCODE_MEDIA_SELECT = 272,
3628    #[doc = "< AC New"]
3629    KEY_SCANCODE_AC_NEW = 273,
3630    #[doc = "< AC Open"]
3631    KEY_SCANCODE_AC_OPEN = 274,
3632    #[doc = "< AC Close"]
3633    KEY_SCANCODE_AC_CLOSE = 275,
3634    #[doc = "< AC Exit"]
3635    KEY_SCANCODE_AC_EXIT = 276,
3636    #[doc = "< AC Save"]
3637    KEY_SCANCODE_AC_SAVE = 277,
3638    #[doc = "< AC Print"]
3639    KEY_SCANCODE_AC_PRINT = 278,
3640    #[doc = "< AC Properties"]
3641    KEY_SCANCODE_AC_PROPERTIES = 279,
3642    #[doc = "< AC Search"]
3643    KEY_SCANCODE_AC_SEARCH = 280,
3644    #[doc = "< AC Home"]
3645    KEY_SCANCODE_AC_HOME = 281,
3646    #[doc = "< AC Back"]
3647    KEY_SCANCODE_AC_BACK = 282,
3648    #[doc = "< AC Forward"]
3649    KEY_SCANCODE_AC_FORWARD = 283,
3650    #[doc = "< AC Stop"]
3651    KEY_SCANCODE_AC_STOP = 284,
3652    #[doc = "< AC Refresh"]
3653    KEY_SCANCODE_AC_REFRESH = 285,
3654    #[doc = "< AC Bookmarks"]
3655    KEY_SCANCODE_AC_BOOKMARKS = 286,
3656    #[doc = "< Usually situated below the display on phones and\nused as a multi-function feature key for selecting\na software defined function shown on the bottom left\nof the display."]
3657    KEY_SCANCODE_SOFTLEFT = 287,
3658    #[doc = "< Usually situated below the display on phones and\nused as a multi-function feature key for selecting\na software defined function shown on the bottom right\nof the display."]
3659    KEY_SCANCODE_SOFTRIGHT = 288,
3660    #[doc = "< Used for accepting phone calls."]
3661    KEY_SCANCODE_CALL = 289,
3662    #[doc = "< Used for rejecting phone calls."]
3663    KEY_SCANCODE_ENDCALL = 290,
3664    KEY_SCANCODE_FN = 291,
3665    KEY_SCANCODE_SQUARE = 292,
3666    KEY_SCANCODE_TRIANGLE = 293,
3667    KEY_SCANCODE_CROSS = 294,
3668    KEY_SCANCODE_CIRCLE = 295,
3669    KEY_SCANCODE_CLOUD = 296,
3670    KEY_SCANCODE_DIAMOND = 297,
3671    #[doc = "< 400-500 reserved for dynamic keycodes"]
3672    KEY_SCANCODE_RESERVED = 400,
3673    #[doc = "< not a key, just marks the number of scancodes for array bounds"]
3674    KEY_SCANCODE_COUNT = 512,
3675}
3676#[repr(u32)]
3677#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3678pub enum event_type {
3679    EVENT_NONE = 0,
3680    EVENT_QUIT = 1,
3681    EVENT_KEY_DOWN = 2,
3682    EVENT_KEY_UP = 3,
3683    EVENT_WINDOW_RESIZE = 4,
3684}
3685pub use self::event_type as event_type_t;
3686#[repr(C)]
3687#[derive(Debug, Copy, Clone)]
3688pub struct keyboard_event_t {
3689    #[doc = "< In nanoseconds, populated using gettimeofday"]
3690    pub timestamp: u64,
3691    #[doc = "< SDL physical key code"]
3692    pub scancode: keyboard_scancode_t,
3693    #[doc = "< SDL virtual key code"]
3694    pub key: key_code_t,
3695    #[doc = "< current key modifiers"]
3696    pub mod_: key_mod_t,
3697    #[doc = "< resolved key including mods"]
3698    pub text: ::core::ffi::c_char,
3699    #[doc = "< true if the key is pressed"]
3700    pub down: bool,
3701    #[doc = "< true if this is a key repeat"]
3702    pub repeat: bool,
3703}
3704#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3705const _: () = {
3706    ["Size of keyboard_event_t"][::core::mem::size_of::<keyboard_event_t>() - 24usize];
3707    ["Alignment of keyboard_event_t"][::core::mem::align_of::<keyboard_event_t>() - 8usize];
3708    ["Offset of field: keyboard_event_t::timestamp"]
3709        [::core::mem::offset_of!(keyboard_event_t, timestamp) - 0usize];
3710    ["Offset of field: keyboard_event_t::scancode"]
3711        [::core::mem::offset_of!(keyboard_event_t, scancode) - 8usize];
3712    ["Offset of field: keyboard_event_t::key"]
3713        [::core::mem::offset_of!(keyboard_event_t, key) - 12usize];
3714    ["Offset of field: keyboard_event_t::mod_"]
3715        [::core::mem::offset_of!(keyboard_event_t, mod_) - 16usize];
3716    ["Offset of field: keyboard_event_t::text"]
3717        [::core::mem::offset_of!(keyboard_event_t, text) - 18usize];
3718    ["Offset of field: keyboard_event_t::down"]
3719        [::core::mem::offset_of!(keyboard_event_t, down) - 19usize];
3720    ["Offset of field: keyboard_event_t::repeat"]
3721        [::core::mem::offset_of!(keyboard_event_t, repeat) - 20usize];
3722};
3723#[repr(C)]
3724#[derive(Copy, Clone)]
3725pub struct event_t {
3726    pub type_: event_type_t,
3727    pub __bindgen_anon_1: event_t__bindgen_ty_1,
3728}
3729#[repr(C)]
3730#[derive(Copy, Clone)]
3731pub union event_t__bindgen_ty_1 {
3732    pub keyboard: keyboard_event_t,
3733}
3734#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3735const _: () = {
3736    ["Size of event_t__bindgen_ty_1"][::core::mem::size_of::<event_t__bindgen_ty_1>() - 24usize];
3737    ["Alignment of event_t__bindgen_ty_1"]
3738        [::core::mem::align_of::<event_t__bindgen_ty_1>() - 8usize];
3739    ["Offset of field: event_t__bindgen_ty_1::keyboard"]
3740        [::core::mem::offset_of!(event_t__bindgen_ty_1, keyboard) - 0usize];
3741};
3742impl ::core::fmt::Debug for event_t__bindgen_ty_1 {
3743    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
3744        write!(f, "event_t__bindgen_ty_1 {{ union }}")
3745    }
3746}
3747#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3748const _: () = {
3749    ["Size of event_t"][::core::mem::size_of::<event_t>() - 32usize];
3750    ["Alignment of event_t"][::core::mem::align_of::<event_t>() - 8usize];
3751    ["Offset of field: event_t::type_"][::core::mem::offset_of!(event_t, type_) - 0usize];
3752};
3753impl ::core::fmt::Debug for event_t {
3754    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
3755        write!(
3756            f,
3757            "event_t {{ type: {:?}, __bindgen_anon_1: {:?} }}",
3758            self.type_, self.__bindgen_anon_1
3759        )
3760    }
3761}
3762#[repr(u32)]
3763#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3764pub enum pixel_format_t {
3765    BADGEVMS_PIXELFORMAT_UNKNOWN = 0,
3766    BADGEVMS_PIXELFORMAT_INDEX1LSB = 286261504,
3767    BADGEVMS_PIXELFORMAT_INDEX1MSB = 287310080,
3768    BADGEVMS_PIXELFORMAT_INDEX2LSB = 470811136,
3769    BADGEVMS_PIXELFORMAT_INDEX2MSB = 471859712,
3770    BADGEVMS_PIXELFORMAT_INDEX4LSB = 303039488,
3771    BADGEVMS_PIXELFORMAT_INDEX4MSB = 304088064,
3772    BADGEVMS_PIXELFORMAT_INDEX8 = 318769153,
3773    BADGEVMS_PIXELFORMAT_RGB332 = 336660481,
3774    BADGEVMS_PIXELFORMAT_XRGB4444 = 353504258,
3775    BADGEVMS_PIXELFORMAT_XBGR4444 = 357698562,
3776    BADGEVMS_PIXELFORMAT_XRGB1555 = 353570562,
3777    BADGEVMS_PIXELFORMAT_XBGR1555 = 357764866,
3778    BADGEVMS_PIXELFORMAT_ARGB4444 = 355602434,
3779    BADGEVMS_PIXELFORMAT_RGBA4444 = 356651010,
3780    BADGEVMS_PIXELFORMAT_ABGR4444 = 359796738,
3781    BADGEVMS_PIXELFORMAT_BGRA4444 = 360845314,
3782    BADGEVMS_PIXELFORMAT_ARGB1555 = 355667970,
3783    BADGEVMS_PIXELFORMAT_RGBA5551 = 356782082,
3784    BADGEVMS_PIXELFORMAT_ABGR1555 = 359862274,
3785    BADGEVMS_PIXELFORMAT_BGRA5551 = 360976386,
3786    BADGEVMS_PIXELFORMAT_RGB565 = 353701890,
3787    BADGEVMS_PIXELFORMAT_BGR565 = 357896194,
3788    BADGEVMS_PIXELFORMAT_RGB24 = 386930691,
3789    BADGEVMS_PIXELFORMAT_BGR24 = 390076419,
3790    BADGEVMS_PIXELFORMAT_XRGB8888 = 370546692,
3791    BADGEVMS_PIXELFORMAT_RGBX8888 = 371595268,
3792    BADGEVMS_PIXELFORMAT_XBGR8888 = 374740996,
3793    BADGEVMS_PIXELFORMAT_BGRX8888 = 375789572,
3794    BADGEVMS_PIXELFORMAT_ARGB8888 = 372645892,
3795    BADGEVMS_PIXELFORMAT_RGBA8888 = 373694468,
3796    BADGEVMS_PIXELFORMAT_ABGR8888 = 376840196,
3797    BADGEVMS_PIXELFORMAT_BGRA8888 = 377888772,
3798    BADGEVMS_PIXELFORMAT_XRGB2101010 = 370614276,
3799    BADGEVMS_PIXELFORMAT_XBGR2101010 = 374808580,
3800    BADGEVMS_PIXELFORMAT_ARGB2101010 = 372711428,
3801    BADGEVMS_PIXELFORMAT_ABGR2101010 = 376905732,
3802    BADGEVMS_PIXELFORMAT_RGB48 = 403714054,
3803    BADGEVMS_PIXELFORMAT_BGR48 = 406859782,
3804    BADGEVMS_PIXELFORMAT_RGBA64 = 404766728,
3805    BADGEVMS_PIXELFORMAT_ARGB64 = 405815304,
3806    BADGEVMS_PIXELFORMAT_BGRA64 = 407912456,
3807    BADGEVMS_PIXELFORMAT_ABGR64 = 408961032,
3808    BADGEVMS_PIXELFORMAT_RGB48_FLOAT = 437268486,
3809    BADGEVMS_PIXELFORMAT_BGR48_FLOAT = 440414214,
3810    BADGEVMS_PIXELFORMAT_RGBA64_FLOAT = 438321160,
3811    BADGEVMS_PIXELFORMAT_ARGB64_FLOAT = 439369736,
3812    BADGEVMS_PIXELFORMAT_BGRA64_FLOAT = 441466888,
3813    BADGEVMS_PIXELFORMAT_ABGR64_FLOAT = 442515464,
3814    BADGEVMS_PIXELFORMAT_RGB96_FLOAT = 454057996,
3815    BADGEVMS_PIXELFORMAT_BGR96_FLOAT = 457203724,
3816    BADGEVMS_PIXELFORMAT_RGBA128_FLOAT = 455114768,
3817    BADGEVMS_PIXELFORMAT_ARGB128_FLOAT = 456163344,
3818    BADGEVMS_PIXELFORMAT_BGRA128_FLOAT = 458260496,
3819    BADGEVMS_PIXELFORMAT_ABGR128_FLOAT = 459309072,
3820    #[doc = "< Planar mode: Y + V + U  (3 planes)"]
3821    BADGEVMS_PIXELFORMAT_YV12 = 842094169,
3822    #[doc = "< Planar mode: Y + U + V  (3 planes)"]
3823    BADGEVMS_PIXELFORMAT_IYUV = 1448433993,
3824    #[doc = "< Packed mode: Y0+U0+Y1+V0 (1 plane)"]
3825    BADGEVMS_PIXELFORMAT_YUY2 = 844715353,
3826    #[doc = "< Packed mode: U0+Y0+V0+Y1 (1 plane)"]
3827    BADGEVMS_PIXELFORMAT_UYVY = 1498831189,
3828    #[doc = "< Packed mode: Y0+V0+Y1+U0 (1 plane)"]
3829    BADGEVMS_PIXELFORMAT_YVYU = 1431918169,
3830    #[doc = "< Planar mode: Y + U/V interleaved  (2 planes)"]
3831    BADGEVMS_PIXELFORMAT_NV12 = 842094158,
3832    #[doc = "< Planar mode: Y + V/U interleaved  (2 planes)"]
3833    BADGEVMS_PIXELFORMAT_NV21 = 825382478,
3834    #[doc = "< Planar mode: Y + U/V interleaved  (2 planes)"]
3835    BADGEVMS_PIXELFORMAT_P010 = 808530000,
3836    #[doc = "< Android video texture format"]
3837    BADGEVMS_PIXELFORMAT_EXTERNAL_OES = 542328143,
3838    #[doc = "< Motion JPEG"]
3839    BADGEVMS_PIXELFORMAT_MJPG = 1196444237,
3840}
3841#[repr(C)]
3842#[derive(Debug, Copy, Clone)]
3843pub struct framebuffer_t {
3844    pub w: u32,
3845    pub h: u32,
3846    pub format: pixel_format_t,
3847    pub pixels: *mut u16,
3848}
3849#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3850const _: () = {
3851    ["Size of framebuffer_t"][::core::mem::size_of::<framebuffer_t>() - 16usize];
3852    ["Alignment of framebuffer_t"][::core::mem::align_of::<framebuffer_t>() - 4usize];
3853    ["Offset of field: framebuffer_t::w"][::core::mem::offset_of!(framebuffer_t, w) - 0usize];
3854    ["Offset of field: framebuffer_t::h"][::core::mem::offset_of!(framebuffer_t, h) - 4usize];
3855    ["Offset of field: framebuffer_t::format"]
3856        [::core::mem::offset_of!(framebuffer_t, format) - 8usize];
3857    ["Offset of field: framebuffer_t::pixels"]
3858        [::core::mem::offset_of!(framebuffer_t, pixels) - 12usize];
3859};
3860impl window_flag_t {
3861    pub const WINDOW_FLAG_NONE: window_flag_t = window_flag_t(0);
3862}
3863impl window_flag_t {
3864    pub const WINDOW_FLAG_FULLSCREEN: window_flag_t = window_flag_t(1);
3865}
3866impl window_flag_t {
3867    pub const WINDOW_FLAG_ALWAYS_ON_TOP: window_flag_t = window_flag_t(2);
3868}
3869impl window_flag_t {
3870    pub const WINDOW_FLAG_UNDECORATED: window_flag_t = window_flag_t(4);
3871}
3872impl window_flag_t {
3873    pub const WINDOW_FLAG_MAXIMIZED: window_flag_t = window_flag_t(8);
3874}
3875impl window_flag_t {
3876    pub const WINDOW_FLAG_MAXIMIZED_LEFT: window_flag_t = window_flag_t(16);
3877}
3878impl window_flag_t {
3879    pub const WINDOW_FLAG_MAXIMIZED_RIGHT: window_flag_t = window_flag_t(32);
3880}
3881impl window_flag_t {
3882    pub const WINDOW_FLAG_DOUBLE_BUFFERED: window_flag_t = window_flag_t(64);
3883}
3884impl window_flag_t {
3885    pub const WINDOW_FLAG_LOW_PRIORITY: window_flag_t = window_flag_t(128);
3886}
3887impl ::core::ops::BitOr<window_flag_t> for window_flag_t {
3888    type Output = Self;
3889    #[inline]
3890    fn bitor(self, other: Self) -> Self {
3891        window_flag_t(self.0 | other.0)
3892    }
3893}
3894impl ::core::ops::BitOrAssign for window_flag_t {
3895    #[inline]
3896    fn bitor_assign(&mut self, rhs: window_flag_t) {
3897        self.0 |= rhs.0;
3898    }
3899}
3900impl ::core::ops::BitAnd<window_flag_t> for window_flag_t {
3901    type Output = Self;
3902    #[inline]
3903    fn bitand(self, other: Self) -> Self {
3904        window_flag_t(self.0 & other.0)
3905    }
3906}
3907impl ::core::ops::BitAndAssign for window_flag_t {
3908    #[inline]
3909    fn bitand_assign(&mut self, rhs: window_flag_t) {
3910        self.0 &= rhs.0;
3911    }
3912}
3913#[repr(transparent)]
3914#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3915pub struct window_flag_t(pub ::core::ffi::c_uint);
3916#[repr(C)]
3917#[derive(Debug, Copy, Clone)]
3918pub struct window_coords_t {
3919    pub x: ::core::ffi::c_int,
3920    pub y: ::core::ffi::c_int,
3921}
3922#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3923const _: () = {
3924    ["Size of window_coords_t"][::core::mem::size_of::<window_coords_t>() - 8usize];
3925    ["Alignment of window_coords_t"][::core::mem::align_of::<window_coords_t>() - 4usize];
3926    ["Offset of field: window_coords_t::x"][::core::mem::offset_of!(window_coords_t, x) - 0usize];
3927    ["Offset of field: window_coords_t::y"][::core::mem::offset_of!(window_coords_t, y) - 4usize];
3928};
3929#[repr(C)]
3930#[derive(Debug, Copy, Clone)]
3931pub struct window_size_t {
3932    pub w: ::core::ffi::c_int,
3933    pub h: ::core::ffi::c_int,
3934}
3935#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3936const _: () = {
3937    ["Size of window_size_t"][::core::mem::size_of::<window_size_t>() - 8usize];
3938    ["Alignment of window_size_t"][::core::mem::align_of::<window_size_t>() - 4usize];
3939    ["Offset of field: window_size_t::w"][::core::mem::offset_of!(window_size_t, w) - 0usize];
3940    ["Offset of field: window_size_t::h"][::core::mem::offset_of!(window_size_t, h) - 4usize];
3941};
3942#[repr(C)]
3943#[derive(Debug, Copy, Clone)]
3944pub struct window_rect_t {
3945    pub x: ::core::ffi::c_int,
3946    pub y: ::core::ffi::c_int,
3947    pub w: ::core::ffi::c_int,
3948    pub h: ::core::ffi::c_int,
3949}
3950#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3951const _: () = {
3952    ["Size of window_rect_t"][::core::mem::size_of::<window_rect_t>() - 16usize];
3953    ["Alignment of window_rect_t"][::core::mem::align_of::<window_rect_t>() - 4usize];
3954    ["Offset of field: window_rect_t::x"][::core::mem::offset_of!(window_rect_t, x) - 0usize];
3955    ["Offset of field: window_rect_t::y"][::core::mem::offset_of!(window_rect_t, y) - 4usize];
3956    ["Offset of field: window_rect_t::w"][::core::mem::offset_of!(window_rect_t, w) - 8usize];
3957    ["Offset of field: window_rect_t::h"][::core::mem::offset_of!(window_rect_t, h) - 12usize];
3958};
3959#[repr(C)]
3960#[derive(Debug, Copy, Clone)]
3961pub struct window {
3962    _unused: [u8; 0],
3963}
3964pub type window_handle_t = *mut window;
3965unsafe extern "C" {
3966    pub fn window_create(
3967        title: *const ::core::ffi::c_char,
3968        size: window_size_t,
3969        flags: window_flag_t,
3970    ) -> window_handle_t;
3971}
3972unsafe extern "C" {
3973    pub fn window_framebuffer_create(
3974        window: window_handle_t,
3975        size: window_size_t,
3976        pixel_format: pixel_format_t,
3977    ) -> *mut framebuffer_t;
3978}
3979unsafe extern "C" {
3980    pub fn window_destroy(window: window_handle_t);
3981}
3982unsafe extern "C" {
3983    pub fn window_title_get(window: window_handle_t) -> *const ::core::ffi::c_char;
3984}
3985unsafe extern "C" {
3986    pub fn window_title_set(window: window_handle_t, title: *const ::core::ffi::c_char);
3987}
3988unsafe extern "C" {
3989    pub fn window_position_get(window: window_handle_t) -> window_coords_t;
3990}
3991unsafe extern "C" {
3992    pub fn window_position_set(window: window_handle_t, coords: window_coords_t)
3993    -> window_coords_t;
3994}
3995unsafe extern "C" {
3996    pub fn window_size_get(window: window_handle_t) -> window_size_t;
3997}
3998unsafe extern "C" {
3999    pub fn window_size_set(window: window_handle_t, size: window_size_t) -> window_size_t;
4000}
4001unsafe extern "C" {
4002    pub fn window_flags_get(window: window_handle_t) -> window_flag_t;
4003}
4004unsafe extern "C" {
4005    pub fn window_flags_set(window: window_handle_t, flags: window_flag_t) -> window_flag_t;
4006}
4007unsafe extern "C" {
4008    pub fn window_framebuffer_size_get(window: window_handle_t) -> window_size_t;
4009}
4010unsafe extern "C" {
4011    pub fn window_framebuffer_size_set(
4012        window: window_handle_t,
4013        size: window_size_t,
4014    ) -> window_size_t;
4015}
4016unsafe extern "C" {
4017    pub fn window_framebuffer_format_get(window: window_handle_t) -> pixel_format_t;
4018}
4019unsafe extern "C" {
4020    pub fn window_framebuffer_get(window: window_handle_t) -> *mut framebuffer_t;
4021}
4022unsafe extern "C" {
4023    pub fn window_present(
4024        window: window_handle_t,
4025        block: bool,
4026        rects: *mut window_rect_t,
4027        num_rects: ::core::ffi::c_int,
4028    );
4029}
4030unsafe extern "C" {
4031    pub fn window_event_poll(window: window_handle_t, block: bool, timeout_msec: u32) -> event_t;
4032}
4033unsafe extern "C" {
4034    pub fn get_screen_info(
4035        width: *mut ::core::ffi::c_int,
4036        height: *mut ::core::ffi::c_int,
4037        format: *mut pixel_format_t,
4038        refresh_rate: *mut f32,
4039    );
4040}
4041#[repr(C)]
4042#[derive(Debug, Copy, Clone)]
4043pub struct DIR {
4044    pub dd_vfs_idx: u16,
4045    pub dd_rsv: u16,
4046}
4047#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4048const _: () = {
4049    ["Size of DIR"][::core::mem::size_of::<DIR>() - 4usize];
4050    ["Alignment of DIR"][::core::mem::align_of::<DIR>() - 2usize];
4051    ["Offset of field: DIR::dd_vfs_idx"][::core::mem::offset_of!(DIR, dd_vfs_idx) - 0usize];
4052    ["Offset of field: DIR::dd_rsv"][::core::mem::offset_of!(DIR, dd_rsv) - 2usize];
4053};
4054#[repr(C)]
4055#[derive(Debug, Copy, Clone)]
4056pub struct dirent {
4057    pub d_ino: ino_t,
4058    pub d_type: u8,
4059    pub d_name: [::core::ffi::c_char; 256usize],
4060}
4061#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4062const _: () = {
4063    ["Size of dirent"][::core::mem::size_of::<dirent>() - 260usize];
4064    ["Alignment of dirent"][::core::mem::align_of::<dirent>() - 2usize];
4065    ["Offset of field: dirent::d_ino"][::core::mem::offset_of!(dirent, d_ino) - 0usize];
4066    ["Offset of field: dirent::d_type"][::core::mem::offset_of!(dirent, d_type) - 2usize];
4067    ["Offset of field: dirent::d_name"][::core::mem::offset_of!(dirent, d_name) - 3usize];
4068};
4069unsafe extern "C" {
4070    pub fn opendir(name: *const ::core::ffi::c_char) -> *mut DIR;
4071}
4072unsafe extern "C" {
4073    pub fn readdir(pdir: *mut DIR) -> *mut dirent;
4074}
4075unsafe extern "C" {
4076    pub fn rewinddir(pdir: *mut DIR);
4077}
4078unsafe extern "C" {
4079    pub fn closedir(pdir: *mut DIR) -> ::core::ffi::c_int;
4080}
4081#[repr(C)]
4082#[derive(Debug, Copy, Clone)]
4083pub struct stat {
4084    pub st_dev: dev_t,
4085    pub st_ino: ino_t,
4086    pub st_mode: mode_t,
4087    pub st_nlink: nlink_t,
4088    pub st_uid: uid_t,
4089    pub st_gid: gid_t,
4090    pub st_rdev: dev_t,
4091    pub st_size: off_t,
4092    pub st_atim: timespec,
4093    pub st_mtim: timespec,
4094    pub st_ctim: timespec,
4095    pub st_blksize: blksize_t,
4096    pub st_blocks: blkcnt_t,
4097    pub st_spare4: [::core::ffi::c_long; 2usize],
4098}
4099#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4100const _: () = {
4101    ["Size of stat"][::core::mem::size_of::<stat>() - 88usize];
4102    ["Alignment of stat"][::core::mem::align_of::<stat>() - 8usize];
4103    ["Offset of field: stat::st_dev"][::core::mem::offset_of!(stat, st_dev) - 0usize];
4104    ["Offset of field: stat::st_ino"][::core::mem::offset_of!(stat, st_ino) - 2usize];
4105    ["Offset of field: stat::st_mode"][::core::mem::offset_of!(stat, st_mode) - 4usize];
4106    ["Offset of field: stat::st_nlink"][::core::mem::offset_of!(stat, st_nlink) - 8usize];
4107    ["Offset of field: stat::st_uid"][::core::mem::offset_of!(stat, st_uid) - 10usize];
4108    ["Offset of field: stat::st_gid"][::core::mem::offset_of!(stat, st_gid) - 12usize];
4109    ["Offset of field: stat::st_rdev"][::core::mem::offset_of!(stat, st_rdev) - 14usize];
4110    ["Offset of field: stat::st_size"][::core::mem::offset_of!(stat, st_size) - 16usize];
4111    ["Offset of field: stat::st_atim"][::core::mem::offset_of!(stat, st_atim) - 24usize];
4112    ["Offset of field: stat::st_mtim"][::core::mem::offset_of!(stat, st_mtim) - 40usize];
4113    ["Offset of field: stat::st_ctim"][::core::mem::offset_of!(stat, st_ctim) - 56usize];
4114    ["Offset of field: stat::st_blksize"][::core::mem::offset_of!(stat, st_blksize) - 72usize];
4115    ["Offset of field: stat::st_blocks"][::core::mem::offset_of!(stat, st_blocks) - 76usize];
4116    ["Offset of field: stat::st_spare4"][::core::mem::offset_of!(stat, st_spare4) - 80usize];
4117};
4118unsafe extern "C" {
4119    pub fn fstat(__fd: ::core::ffi::c_int, __sbuf: *mut stat) -> ::core::ffi::c_int;
4120}
4121unsafe extern "C" {
4122    pub fn mkdir(_path: *const ::core::ffi::c_char, __mode: mode_t) -> ::core::ffi::c_int;
4123}
4124unsafe extern "C" {
4125    pub fn stat(__path: *const ::core::ffi::c_char, __sbuf: *mut stat) -> ::core::ffi::c_int;
4126}
4127#[repr(u32)]
4128#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
4129pub enum device_type_t {
4130    DEVICE_TYPE_BLOCK = 0,
4131    DEVICE_TYPE_LCD = 1,
4132    DEVICE_TYPE_KEYBOARD = 2,
4133    DEVICE_TYPE_BUS = 3,
4134    DEVICE_TYPE_WIFI = 4,
4135    DEVICE_TYPE_ORIENTATION = 5,
4136    DEVICE_TYPE_SOCKET = 6,
4137    DEVICE_TYPE_FILESYSTEM = 7,
4138}
4139#[repr(C)]
4140#[derive(Debug, Copy, Clone)]
4141pub struct device {
4142    pub type_: device_type_t,
4143    pub _open: ::core::option::Option<
4144        unsafe extern "C" fn(
4145            dev: *mut ::core::ffi::c_void,
4146            path: *mut path_t,
4147            flags: ::core::ffi::c_int,
4148            mode: mode_t,
4149        ) -> ::core::ffi::c_int,
4150    >,
4151    pub _close: ::core::option::Option<
4152        unsafe extern "C" fn(
4153            dev: *mut ::core::ffi::c_void,
4154            fd: ::core::ffi::c_int,
4155        ) -> ::core::ffi::c_int,
4156    >,
4157    pub _write: ::core::option::Option<
4158        unsafe extern "C" fn(
4159            dev: *mut ::core::ffi::c_void,
4160            fd: ::core::ffi::c_int,
4161            buf: *const ::core::ffi::c_void,
4162            count: size_t,
4163        ) -> ssize_t,
4164    >,
4165    pub _read: ::core::option::Option<
4166        unsafe extern "C" fn(
4167            dev: *mut ::core::ffi::c_void,
4168            fd: ::core::ffi::c_int,
4169            buf: *mut ::core::ffi::c_void,
4170            count: size_t,
4171        ) -> ssize_t,
4172    >,
4173    pub _lseek: ::core::option::Option<
4174        unsafe extern "C" fn(
4175            dev: *mut ::core::ffi::c_void,
4176            fd: ::core::ffi::c_int,
4177            offset: off_t,
4178            whence: ::core::ffi::c_int,
4179        ) -> ssize_t,
4180    >,
4181    pub _destroy: ::core::option::Option<unsafe extern "C" fn(dev: *mut ::core::ffi::c_void)>,
4182}
4183#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4184const _: () = {
4185    ["Size of device"][::core::mem::size_of::<device>() - 28usize];
4186    ["Alignment of device"][::core::mem::align_of::<device>() - 4usize];
4187    ["Offset of field: device::type_"][::core::mem::offset_of!(device, type_) - 0usize];
4188    ["Offset of field: device::_open"][::core::mem::offset_of!(device, _open) - 4usize];
4189    ["Offset of field: device::_close"][::core::mem::offset_of!(device, _close) - 8usize];
4190    ["Offset of field: device::_write"][::core::mem::offset_of!(device, _write) - 12usize];
4191    ["Offset of field: device::_read"][::core::mem::offset_of!(device, _read) - 16usize];
4192    ["Offset of field: device::_lseek"][::core::mem::offset_of!(device, _lseek) - 20usize];
4193    ["Offset of field: device::_destroy"][::core::mem::offset_of!(device, _destroy) - 24usize];
4194};
4195pub type device_t = device;
4196unsafe extern "C" {
4197    pub fn device_get(name: *const ::core::ffi::c_char) -> *mut device_t;
4198}
4199unsafe extern "C" {
4200    pub fn die(reason: *const ::core::ffi::c_char);
4201}
4202unsafe extern "C" {
4203    pub fn vaddr_to_paddr(vaddr: u32) -> u32;
4204}
4205unsafe extern "C" {
4206    pub fn get_mac_address() -> *const ::core::ffi::c_char;
4207}
4208#[repr(C)]
4209#[derive(Debug, Copy, Clone)]
4210pub struct ota_session_t {
4211    _unused: [u8; 0],
4212}
4213pub type ota_handle_t = *mut ota_session_t;
4214unsafe extern "C" {
4215    pub fn ota_session_open() -> ota_handle_t;
4216}
4217unsafe extern "C" {
4218    pub fn ota_write(
4219        session: ota_handle_t,
4220        buffer: *mut ::core::ffi::c_void,
4221        block_size: ::core::ffi::c_int,
4222    ) -> bool;
4223}
4224unsafe extern "C" {
4225    pub fn ota_session_commit(session: ota_handle_t) -> bool;
4226}
4227unsafe extern "C" {
4228    pub fn ota_session_abort(session: ota_handle_t) -> bool;
4229}
4230unsafe extern "C" {
4231    pub fn ota_get_running_version(version: *mut ::core::ffi::c_char) -> bool;
4232}
4233unsafe extern "C" {
4234    pub fn ota_get_invalid_version(version: *mut ::core::ffi::c_char) -> bool;
4235}
4236unsafe extern "C" {
4237    pub fn process_create(
4238        path: *const ::core::ffi::c_char,
4239        stack_size: size_t,
4240        argc: ::core::ffi::c_int,
4241        argv: *mut *mut ::core::ffi::c_char,
4242    ) -> pid_t;
4243}
4244unsafe extern "C" {
4245    pub fn thread_create(
4246        thread_entry: ::core::option::Option<
4247            unsafe extern "C" fn(user_data: *mut ::core::ffi::c_void),
4248        >,
4249        user_data: *mut ::core::ffi::c_void,
4250        stack_size: u16,
4251    ) -> pid_t;
4252}
4253unsafe extern "C" {
4254    pub fn wait(block: bool, timeout_msec: u32) -> pid_t;
4255}
4256unsafe extern "C" {
4257    pub fn task_priority_lower();
4258}
4259unsafe extern "C" {
4260    pub fn task_priority_restore();
4261}
4262unsafe extern "C" {
4263    pub fn get_num_tasks() -> u32;
4264}
4265#[repr(u32)]
4266#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
4267pub enum wifi_status_t {
4268    WIFI_DISABLED = 0,
4269    WIFI_ENABLED = 1,
4270    WIFI_ASK = 2,
4271}
4272#[repr(u32)]
4273#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
4274pub enum wifi_connection_status_t {
4275    WIFI_ERROR = 0,
4276    WIFI_DISCONNECTED = 1,
4277    WIFI_CONNECTED = 2,
4278}
4279#[repr(u32)]
4280#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
4281pub enum wifi_auth_mode_t {
4282    WIFI_AUTH_NONE = 0,
4283    WIFI_AUTH_OPEN = 1,
4284    WIFI_AUTH_WEP = 2,
4285    WIFI_AUTH_WPA_PSK = 3,
4286    WIFI_AUTH_WPA2_PSK = 4,
4287    WIFI_AUTH_WPA_WPA2_PSK = 5,
4288    WIFI_AUTH_WPA2_ENTERPRISE = 6,
4289    WIFI_AUTH_WPA3_PSK = 7,
4290    WIFI_AUTH_WPA2_WPA3_PSK = 8,
4291    WIFI_AUTH_WAPI_PSK = 9,
4292    WIFI_AUTH_OWE = 10,
4293    WIFI_AUTH_WPA3_ENT_192 = 11,
4294    WIFI_AUTH_DPP = 12,
4295    WIFI_AUTH_WPA3_ENTERPRISE = 13,
4296    WIFI_AUTH_WPA2_WPA3_ENTERPRISE = 14,
4297    WIFI_AUTH_WPA_ENTERPRISE = 15,
4298}
4299#[repr(C)]
4300#[derive(Debug, Copy, Clone)]
4301pub struct wifi_station {
4302    _unused: [u8; 0],
4303}
4304pub type wifi_station_handle = *mut wifi_station;
4305pub type mac_address_t = [u8; 6usize];
4306unsafe extern "C" {
4307    pub fn wifi_get_status() -> wifi_status_t;
4308}
4309unsafe extern "C" {
4310    pub fn wifi_get_connection_status() -> wifi_connection_status_t;
4311}
4312unsafe extern "C" {
4313    pub fn wifi_get_connection_station() -> wifi_station_handle;
4314}
4315unsafe extern "C" {
4316    pub fn wifi_connect() -> wifi_connection_status_t;
4317}
4318unsafe extern "C" {
4319    pub fn wifi_disconnect() -> wifi_connection_status_t;
4320}
4321unsafe extern "C" {
4322    pub fn wifi_scan_free_station(station: wifi_station_handle);
4323}
4324unsafe extern "C" {
4325    pub fn wifi_scan_get_num_results() -> ::core::ffi::c_int;
4326}
4327unsafe extern "C" {
4328    pub fn wifi_scan_get_result(num: ::core::ffi::c_int) -> wifi_station_handle;
4329}
4330unsafe extern "C" {
4331    pub fn wifi_station_get_ssid(station: wifi_station_handle) -> *const ::core::ffi::c_char;
4332}
4333unsafe extern "C" {
4334    pub fn wifi_station_get_bssid(station: wifi_station_handle) -> *mut mac_address_t;
4335}
4336unsafe extern "C" {
4337    pub fn wifi_station_get_primary_channel(station: wifi_station_handle) -> ::core::ffi::c_int;
4338}
4339unsafe extern "C" {
4340    pub fn wifi_station_get_secondary_channel(station: wifi_station_handle) -> ::core::ffi::c_int;
4341}
4342unsafe extern "C" {
4343    pub fn wifi_station_get_rssi(station: wifi_station_handle) -> ::core::ffi::c_int;
4344}
4345unsafe extern "C" {
4346    pub fn wifi_station_get_mode(station: wifi_station_handle) -> wifi_auth_mode_t;
4347}
4348unsafe extern "C" {
4349    pub fn wifi_station_wps(station: wifi_station_handle) -> bool;
4350}
4351pub type CURL = ::core::ffi::c_void;
4352pub type CURLcode = ::core::ffi::c_int;
4353pub type CURLoption = ::core::ffi::c_int;
4354#[repr(u32)]
4355#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
4356pub enum curl_easy_info_t {
4357    CURLINFO_RESPONSE_CODE = 2097154,
4358    CURLINFO_CONTENT_LENGTH_DOWNLOAD = 3145731,
4359    CURLINFO_CONTENT_TYPE = 1048594,
4360    CURLINFO_EFFECTIVE_URL = 1048577,
4361}
4362#[repr(C)]
4363#[derive(Debug, Copy, Clone)]
4364pub struct curl_slist {
4365    pub data: *mut ::core::ffi::c_char,
4366    pub next: *mut curl_slist,
4367}
4368#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4369const _: () = {
4370    ["Size of curl_slist"][::core::mem::size_of::<curl_slist>() - 8usize];
4371    ["Alignment of curl_slist"][::core::mem::align_of::<curl_slist>() - 4usize];
4372    ["Offset of field: curl_slist::data"][::core::mem::offset_of!(curl_slist, data) - 0usize];
4373    ["Offset of field: curl_slist::next"][::core::mem::offset_of!(curl_slist, next) - 4usize];
4374};
4375unsafe extern "C" {
4376    pub fn curl_easy_init() -> *mut CURL;
4377}
4378unsafe extern "C" {
4379    pub fn curl_easy_setopt(curl: *mut CURL, option: CURLoption, ...) -> CURLcode;
4380}
4381unsafe extern "C" {
4382    pub fn curl_easy_perform(curl: *mut CURL) -> CURLcode;
4383}
4384unsafe extern "C" {
4385    pub fn curl_easy_cleanup(curl: *mut CURL);
4386}
4387unsafe extern "C" {
4388    pub fn curl_easy_getinfo(curl: *mut CURL, info: curl_easy_info_t, ...) -> CURLcode;
4389}
4390unsafe extern "C" {
4391    pub fn curl_easy_strerror(error: CURLcode) -> *const ::core::ffi::c_char;
4392}
4393unsafe extern "C" {
4394    pub fn curl_slist_append(
4395        list: *mut curl_slist,
4396        string: *const ::core::ffi::c_char,
4397    ) -> *mut curl_slist;
4398}
4399unsafe extern "C" {
4400    pub fn curl_slist_free_all(list: *mut curl_slist);
4401}
4402unsafe extern "C" {
4403    pub fn curl_global_init(flags: ::core::ffi::c_long) -> CURLcode;
4404}
4405unsafe extern "C" {
4406    pub fn curl_global_cleanup();
4407}
4408#[repr(C)]
4409#[derive(Debug, Copy, Clone)]
4410pub struct in_addr {
4411    pub s_addr: in_addr_t,
4412}
4413#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4414const _: () = {
4415    ["Size of in_addr"][::core::mem::size_of::<in_addr>() - 4usize];
4416    ["Alignment of in_addr"][::core::mem::align_of::<in_addr>() - 4usize];
4417    ["Offset of field: in_addr::s_addr"][::core::mem::offset_of!(in_addr, s_addr) - 0usize];
4418};
4419unsafe extern "C" {
4420    pub fn inet_ntoa(__in: in_addr) -> *mut ::core::ffi::c_char;
4421}
4422unsafe extern "C" {
4423    pub fn inet_aton(__cp: *const ::core::ffi::c_char, __inp: *mut in_addr) -> ::core::ffi::c_int;
4424}
4425pub type socklen_t = u32;
4426pub type sa_family_t = u8;
4427#[repr(C)]
4428#[derive(Debug, Copy, Clone)]
4429pub struct sockaddr {
4430    pub sa_len: u8,
4431    pub sa_family: sa_family_t,
4432    pub sa_data: [::core::ffi::c_char; 14usize],
4433}
4434#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4435const _: () = {
4436    ["Size of sockaddr"][::core::mem::size_of::<sockaddr>() - 16usize];
4437    ["Alignment of sockaddr"][::core::mem::align_of::<sockaddr>() - 1usize];
4438    ["Offset of field: sockaddr::sa_len"][::core::mem::offset_of!(sockaddr, sa_len) - 0usize];
4439    ["Offset of field: sockaddr::sa_family"][::core::mem::offset_of!(sockaddr, sa_family) - 1usize];
4440    ["Offset of field: sockaddr::sa_data"][::core::mem::offset_of!(sockaddr, sa_data) - 2usize];
4441};
4442unsafe extern "C" {
4443    pub fn accept(
4444        s: ::core::ffi::c_int,
4445        addr: *mut sockaddr,
4446        addrlen: *mut socklen_t,
4447    ) -> ::core::ffi::c_int;
4448}
4449unsafe extern "C" {
4450    pub fn bind(
4451        s: ::core::ffi::c_int,
4452        name: *const sockaddr,
4453        namelen: socklen_t,
4454    ) -> ::core::ffi::c_int;
4455}
4456unsafe extern "C" {
4457    pub fn connect(
4458        s: ::core::ffi::c_int,
4459        name: *const sockaddr,
4460        namelen: socklen_t,
4461    ) -> ::core::ffi::c_int;
4462}
4463unsafe extern "C" {
4464    pub fn listen(s: ::core::ffi::c_int, backlog: ::core::ffi::c_int) -> ::core::ffi::c_int;
4465}
4466unsafe extern "C" {
4467    pub fn socket(
4468        domain: ::core::ffi::c_int,
4469        type_: ::core::ffi::c_int,
4470        protocol: ::core::ffi::c_int,
4471    ) -> ::core::ffi::c_int;
4472}
4473#[repr(C)]
4474#[derive(Debug, Copy, Clone)]
4475pub struct addrinfo {
4476    pub ai_flags: ::core::ffi::c_int,
4477    pub ai_family: ::core::ffi::c_int,
4478    pub ai_socktype: ::core::ffi::c_int,
4479    pub ai_protocol: ::core::ffi::c_int,
4480    pub ai_addrlen: socklen_t,
4481    pub ai_addr: *mut sockaddr,
4482    pub ai_canonname: *mut ::core::ffi::c_char,
4483    pub ai_next: *mut addrinfo,
4484}
4485#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4486const _: () = {
4487    ["Size of addrinfo"][::core::mem::size_of::<addrinfo>() - 32usize];
4488    ["Alignment of addrinfo"][::core::mem::align_of::<addrinfo>() - 4usize];
4489    ["Offset of field: addrinfo::ai_flags"][::core::mem::offset_of!(addrinfo, ai_flags) - 0usize];
4490    ["Offset of field: addrinfo::ai_family"][::core::mem::offset_of!(addrinfo, ai_family) - 4usize];
4491    ["Offset of field: addrinfo::ai_socktype"]
4492        [::core::mem::offset_of!(addrinfo, ai_socktype) - 8usize];
4493    ["Offset of field: addrinfo::ai_protocol"]
4494        [::core::mem::offset_of!(addrinfo, ai_protocol) - 12usize];
4495    ["Offset of field: addrinfo::ai_addrlen"]
4496        [::core::mem::offset_of!(addrinfo, ai_addrlen) - 16usize];
4497    ["Offset of field: addrinfo::ai_addr"][::core::mem::offset_of!(addrinfo, ai_addr) - 20usize];
4498    ["Offset of field: addrinfo::ai_canonname"]
4499        [::core::mem::offset_of!(addrinfo, ai_canonname) - 24usize];
4500    ["Offset of field: addrinfo::ai_next"][::core::mem::offset_of!(addrinfo, ai_next) - 28usize];
4501};
4502unsafe extern "C" {
4503    pub fn freeaddrinfo(ai: *mut addrinfo);
4504}
4505unsafe extern "C" {
4506    pub fn getaddrinfo(
4507        nodename: *const ::core::ffi::c_char,
4508        servname: *const ::core::ffi::c_char,
4509        hints: *const addrinfo,
4510        res: *mut *mut addrinfo,
4511    ) -> ::core::ffi::c_int;
4512}
4513unsafe extern "C" {
4514    #[doc = " The signature seems to be like this. idk why it's not in our headers"]
4515    pub fn diprintf(
4516        a: ::core::ffi::c_int,
4517        b: *const ::core::ffi::c_char,
4518        ...
4519    ) -> ::core::ffi::c_int;
4520}
4521unsafe extern "C" {
4522    #[doc = " The signature seems to be like lgamma_r. I have no idea what it does"]
4523    pub fn gamma_r(arg1: f64, arg2: *mut ::core::ffi::c_int) -> f64;
4524}
4525unsafe extern "C" {
4526    #[doc = " The signature seems to be like lgammaf_r. I have no idea what it does"]
4527    pub fn gammaf_r(arg1: f32, arg2: *mut ::core::ffi::c_int) -> f32;
4528}
4529unsafe extern "C" {
4530    #[doc = " Probably in symbols, because it's in newlib. idk why it is not in our\n headers"]
4531    pub fn sig2str(
4532        signum: ::core::ffi::c_int,
4533        str_: *mut ::core::ffi::c_char,
4534    ) -> ::core::ffi::c_int;
4535}
4536unsafe extern "C" {
4537    #[doc = " Probably in symbols, because it's in newlib. idk why it is not in our\n headers"]
4538    pub fn str2sig(
4539        str_: *const ::core::ffi::c_char,
4540        pnum: *mut ::core::ffi::c_int,
4541    ) -> ::core::ffi::c_int;
4542}
4543#[doc = " Restart output."]
4544pub type cc_t = u8;
4545pub type speed_t = u32;
4546pub type tcflag_t = u16;
4547#[repr(C)]
4548#[derive(Debug, Copy, Clone)]
4549pub struct termios {
4550    pub c_iflag: tcflag_t,
4551    #[doc = " Input modes"]
4552    pub c_oflag: tcflag_t,
4553    #[doc = " Output modes"]
4554    pub c_cflag: tcflag_t,
4555    #[doc = " Control modes"]
4556    pub c_lflag: tcflag_t,
4557    #[doc = " Local modes"]
4558    pub c_cc: [cc_t; 11usize],
4559    #[doc = " Control characters"]
4560    pub c_ispeed: speed_t,
4561    #[doc = " input baud rate"]
4562    pub c_ospeed: speed_t,
4563}
4564#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4565const _: () = {
4566    ["Size of termios"][::core::mem::size_of::<termios>() - 28usize];
4567    ["Alignment of termios"][::core::mem::align_of::<termios>() - 4usize];
4568    ["Offset of field: termios::c_iflag"][::core::mem::offset_of!(termios, c_iflag) - 0usize];
4569    ["Offset of field: termios::c_oflag"][::core::mem::offset_of!(termios, c_oflag) - 2usize];
4570    ["Offset of field: termios::c_cflag"][::core::mem::offset_of!(termios, c_cflag) - 4usize];
4571    ["Offset of field: termios::c_lflag"][::core::mem::offset_of!(termios, c_lflag) - 6usize];
4572    ["Offset of field: termios::c_cc"][::core::mem::offset_of!(termios, c_cc) - 8usize];
4573    ["Offset of field: termios::c_ispeed"][::core::mem::offset_of!(termios, c_ispeed) - 20usize];
4574    ["Offset of field: termios::c_ospeed"][::core::mem::offset_of!(termios, c_ospeed) - 24usize];
4575};
4576unsafe extern "C" {
4577    #[doc = " @brief Gets the parameters of the terminal\n\n @param fd file descriptor of the terminal\n @param p output termios structure\n @return 0 when successful, -1 otherwise with errno set"]
4578    pub fn tcgetattr(fd: ::core::ffi::c_int, p: *mut termios) -> ::core::ffi::c_int;
4579}
4580unsafe extern "C" {
4581    #[doc = " @brief Sets the parameters of the terminal\n\n @param fd file descriptor of the terminal\n @param optional_actions optional actions\n @param p input termios structure\n @return 0 when successful, -1 otherwise with errno set"]
4582    pub fn tcsetattr(
4583        fd: ::core::ffi::c_int,
4584        optional_actions: ::core::ffi::c_int,
4585        p: *const termios,
4586    ) -> ::core::ffi::c_int;
4587}
4588unsafe extern "C" {
4589    pub fn __adddf3(a: f64, b: f64) -> f64;
4590}
4591unsafe extern "C" {
4592    pub fn __subdf3(a: f64, b: f64) -> f64;
4593}
4594unsafe extern "C" {
4595    pub fn __muldf3(a: f64, b: f64) -> f64;
4596}
4597unsafe extern "C" {
4598    pub fn __divdf3(a: f64, b: f64) -> f64;
4599}
4600unsafe extern "C" {
4601    pub fn __eqdf2(a: f64, b: f64) -> ::core::ffi::c_int;
4602}
4603unsafe extern "C" {
4604    pub fn __gedf2(a: f64, b: f64) -> ::core::ffi::c_int;
4605}
4606unsafe extern "C" {
4607    pub fn __gtdf2(a: f64, b: f64) -> ::core::ffi::c_int;
4608}
4609unsafe extern "C" {
4610    pub fn __ledf2(a: f64, b: f64) -> ::core::ffi::c_int;
4611}
4612unsafe extern "C" {
4613    pub fn __ltdf2(a: f64, b: f64) -> ::core::ffi::c_int;
4614}
4615unsafe extern "C" {
4616    pub fn __extendsfdf2(a: f32) -> f64;
4617}
4618unsafe extern "C" {
4619    pub fn __truncdfsf2(a: f64) -> f32;
4620}
4621unsafe extern "C" {
4622    pub fn __extendhfsf2(a: __BindgenFloat16) -> f32;
4623}
4624unsafe extern "C" {
4625    pub fn __truncsfhf2(a: f32) -> __BindgenFloat16;
4626}
4627unsafe extern "C" {
4628    pub fn __fixdfsi(a: f64) -> i32;
4629}
4630unsafe extern "C" {
4631    pub fn __fixdfdi(a: f64) -> i64;
4632}
4633unsafe extern "C" {
4634    pub fn __fixunsdfsi(a: f64) -> u32;
4635}
4636unsafe extern "C" {
4637    pub fn __floatdisf(a: i64) -> f32;
4638}
4639unsafe extern "C" {
4640    pub fn __floatsidf(a: i32) -> f64;
4641}
4642unsafe extern "C" {
4643    pub fn __floatunsidf(a: u32) -> f64;
4644}
4645unsafe extern "C" {
4646    pub fn __divdi3(a: i64, b: i64) -> i64;
4647}
4648unsafe extern "C" {
4649    pub fn __udivdi3(a: u64, b: u64) -> u64;
4650}
4651unsafe extern "C" {
4652    pub fn __umoddi3(a: u64, b: u64) -> u64;
4653}
4654unsafe extern "C" {
4655    pub fn __clzsi2(a: u32) -> ::core::ffi::c_int;
4656}
4657unsafe extern "C" {
4658    pub fn __popcountsi2(a: u32) -> ::core::ffi::c_int;
4659}
4660unsafe extern "C" {
4661    pub fn __riscv_save_0();
4662}
4663unsafe extern "C" {
4664    pub fn __riscv_save_1();
4665}
4666unsafe extern "C" {
4667    pub fn __riscv_save_2();
4668}
4669unsafe extern "C" {
4670    pub fn __riscv_save_3();
4671}
4672unsafe extern "C" {
4673    pub fn __riscv_save_4();
4674}
4675unsafe extern "C" {
4676    pub fn __riscv_save_5();
4677}
4678unsafe extern "C" {
4679    pub fn __riscv_save_6();
4680}
4681unsafe extern "C" {
4682    pub fn __riscv_save_7();
4683}
4684unsafe extern "C" {
4685    pub fn __riscv_save_8();
4686}
4687unsafe extern "C" {
4688    pub fn __riscv_save_9();
4689}
4690unsafe extern "C" {
4691    pub fn __riscv_save_10();
4692}
4693unsafe extern "C" {
4694    pub fn __riscv_save_11();
4695}
4696unsafe extern "C" {
4697    pub fn __riscv_save_12();
4698}
4699unsafe extern "C" {
4700    pub fn __riscv_restore_0();
4701}
4702unsafe extern "C" {
4703    pub fn __riscv_restore_1();
4704}
4705unsafe extern "C" {
4706    pub fn __riscv_restore_2();
4707}
4708unsafe extern "C" {
4709    pub fn __riscv_restore_3();
4710}
4711unsafe extern "C" {
4712    pub fn __riscv_restore_4();
4713}
4714unsafe extern "C" {
4715    pub fn __riscv_restore_5();
4716}
4717unsafe extern "C" {
4718    pub fn __riscv_restore_6();
4719}
4720unsafe extern "C" {
4721    pub fn __riscv_restore_7();
4722}
4723unsafe extern "C" {
4724    pub fn __riscv_restore_8();
4725}
4726unsafe extern "C" {
4727    pub fn __riscv_restore_9();
4728}
4729unsafe extern "C" {
4730    pub fn __riscv_restore_10();
4731}
4732unsafe extern "C" {
4733    pub fn __riscv_restore_11();
4734}
4735unsafe extern "C" {
4736    pub fn __riscv_restore_12();
4737}
4738#[repr(C)]
4739#[derive(Debug, Copy, Clone)]
4740pub struct re_guts {
4741    pub _address: u8,
4742}
4743pub type __builtin_va_list = *mut ::core::ffi::c_void;